summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2015-01-21 23:28:34 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2015-01-21 23:28:34 +0000
commit1903b037de2fb3e75826406b46f055acb70963fa (patch)
tree604cd8b790fe14e5fbe441d4cd647c80d2a36a9a
parentad1141d52f8353457053b925cd674fe1d5c4eafc (diff)
parent953d907e4d6c3a5c2f8aaee6e5e4f73c55ce5985 (diff)
downloadfpc-blocks.tar.gz
* synchronised with trunk till r29513blocks
git-svn-id: http://svn.freepascal.org/svn/fpc/branches/blocks@29516 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--Makefile82
-rw-r--r--Makefile.fpc10
-rw-r--r--compiler/Makefile71
-rw-r--r--compiler/Makefile.fpc4
-rw-r--r--compiler/aarch64/a64att.inc1
-rw-r--r--compiler/aarch64/a64atts.inc1
-rw-r--r--compiler/aarch64/a64ins.dat2
-rw-r--r--compiler/aarch64/a64op.inc1
-rw-r--r--compiler/aarch64/cpuinfo.pas15
-rw-r--r--compiler/aarch64/cpupara.pas2
-rw-r--r--compiler/aasmbase.pas6
-rw-r--r--compiler/aasmdata.pas31
-rw-r--r--compiler/aasmtai.pas25
-rw-r--r--compiler/aggas.pas17
-rw-r--r--compiler/agjasmin.pas4
-rw-r--r--compiler/alpha/cpuinfo.pas23
-rw-r--r--compiler/aoptobj.pas3
-rw-r--r--compiler/arm/aasmcpu.pas20
-rw-r--r--compiler/arm/aoptcpu.pas102
-rw-r--r--compiler/arm/aoptcpub.pas13
-rw-r--r--compiler/arm/cgcpu.pas93
-rw-r--r--compiler/arm/cpuelf.pas44
-rw-r--r--compiler/arm/cpuinfo.pas7
-rw-r--r--compiler/arm/narmadd.pas46
-rw-r--r--compiler/arm/narmset.pas15
-rw-r--r--compiler/arm/raarmgas.pas1
-rw-r--r--compiler/arm/rgcpu.pas14
-rw-r--r--compiler/assemble.pas3
-rw-r--r--compiler/avr/aasmcpu.pas10
-rw-r--r--compiler/avr/agavrgas.pas10
-rw-r--r--compiler/avr/cpuinfo.pas6
-rw-r--r--compiler/avr/cpupara.pas8
-rw-r--r--compiler/avr/navradd.pas12
-rw-r--r--compiler/avr/navrmat.pas4
-rw-r--r--compiler/avr/raavrgas.pas2
-rw-r--r--compiler/cclasses.pas8
-rw-r--r--compiler/cfileutl.pas11
-rw-r--r--compiler/cgobj.pas12
-rw-r--r--compiler/compiler.pas3
-rw-r--r--compiler/compinnr.inc1
-rw-r--r--compiler/comprsrc.pas2
-rw-r--r--compiler/dbgdwarf.pas120
-rw-r--r--compiler/dbgstabs.pas16
-rw-r--r--compiler/defutil.pas40
-rw-r--r--compiler/expunix.pas2
-rw-r--r--compiler/fmodule.pas8
-rw-r--r--compiler/fppu.pas8
-rw-r--r--compiler/generic/cpuinfo.pas24
-rw-r--r--compiler/globals.pas84
-rw-r--r--compiler/globtype.pas12
-rw-r--r--compiler/hlcg2ll.pas1
-rw-r--r--compiler/htypechk.pas85
-rw-r--r--compiler/i386/cgcpu.pas7
-rw-r--r--compiler/i386/cpuelf.pas2
-rw-r--r--compiler/i386/cpuinfo.pas20
-rw-r--r--compiler/i386/cpupara.pas18
-rw-r--r--compiler/i386/cputarg.pas3
-rw-r--r--compiler/i386/n386add.pas148
-rw-r--r--compiler/i386/n386cal.pas38
-rw-r--r--compiler/i386/n386flw.pas15
-rw-r--r--compiler/i386/symcpu.pas59
-rw-r--r--compiler/i8086/cpuinfo.pas20
-rw-r--r--compiler/i8086/n8086add.pas5
-rw-r--r--compiler/i8086/n8086inl.pas46
-rw-r--r--compiler/i8086/n8086mat.pas1
-rw-r--r--compiler/i8086/n8086mem.pas50
-rw-r--r--compiler/i8086/n8086tcon.pas2
-rw-r--r--compiler/i8086/symcpu.pas93
-rw-r--r--compiler/ia64/cpuinfo.pas23
-rw-r--r--compiler/impdef.pas2
-rw-r--r--compiler/jvm/cpuinfo.pas20
-rw-r--r--compiler/jvm/dbgjasm.pas44
-rw-r--r--compiler/jvm/njvmflw.pas6
-rw-r--r--compiler/jvm/njvminl.pas6
-rw-r--r--compiler/jvm/njvmmem.pas2
-rw-r--r--compiler/jvm/njvmutil.pas3
-rw-r--r--compiler/jvm/tgcpu.pas8
-rw-r--r--compiler/m68k/aasmcpu.pas28
-rw-r--r--compiler/m68k/cgcpu.pas232
-rw-r--r--compiler/m68k/cpubase.pas9
-rw-r--r--compiler/m68k/cpuinfo.pas35
-rw-r--r--compiler/m68k/itcpugas.pas2
-rw-r--r--compiler/m68k/n68kadd.pas762
-rw-r--r--compiler/m68k/n68kcnv.pas8
-rw-r--r--compiler/m68k/n68kmat.pas9
-rw-r--r--compiler/m68k/ra68k.pas1
-rw-r--r--compiler/m68k/ra68kmot.pas4
-rw-r--r--compiler/m68k/rgcpu.pas140
-rw-r--r--compiler/m68k/symcpu.pas14
-rw-r--r--compiler/mips/aasmcpu.pas21
-rw-r--r--compiler/mips/aoptcpu.pas316
-rw-r--r--compiler/mips/cgcpu.pas131
-rw-r--r--compiler/mips/cpuelf.pas12
-rw-r--r--compiler/mips/cpugas.pas2
-rw-r--r--compiler/mips/cpuinfo.pas53
-rw-r--r--compiler/mips/ncpuadd.pas120
-rw-r--r--compiler/mips/ncpucnv.pas5
-rw-r--r--compiler/mips/rgcpu.pas42
-rw-r--r--compiler/msg/errorct.msg4
-rw-r--r--compiler/msg/errord.msg137
-rw-r--r--compiler/msg/errorda.msg4
-rw-r--r--compiler/msg/errordu.msg137
-rw-r--r--compiler/msg/errore.msg203
-rw-r--r--compiler/msg/errores.msg4
-rw-r--r--compiler/msg/errorf.msg4
-rw-r--r--compiler/msg/errorfi.msg2
-rw-r--r--compiler/msg/errorhe.msg2
-rw-r--r--compiler/msg/errorheu.msg2
-rw-r--r--compiler/msg/errorid.msg2
-rw-r--r--compiler/msg/erroriu.msg2
-rw-r--r--compiler/msg/errorn.msg2
-rw-r--r--compiler/msg/errorpl.msg4
-rw-r--r--compiler/msg/errorpli.msg4
-rw-r--r--compiler/msg/errorpt.msg6
-rw-r--r--compiler/msg/errorptu.msg6
-rw-r--r--compiler/msg/errorr.msg2
-rw-r--r--compiler/msg/errorru.msg2
-rw-r--r--compiler/msg/errorues.msg4
-rw-r--r--compiler/msgidx.inc14
-rw-r--r--compiler/msgtxt.inc1263
-rw-r--r--compiler/nadd.pas238
-rw-r--r--compiler/ncal.pas56
-rw-r--r--compiler/ncgcal.pas18
-rw-r--r--compiler/ncgcnv.pas10
-rw-r--r--compiler/ncgcon.pas2
-rw-r--r--compiler/ncgmat.pas25
-rw-r--r--compiler/ncgmem.pas14
-rw-r--r--compiler/ncgrtti.pas10
-rw-r--r--compiler/ncgutil.pas24
-rw-r--r--compiler/ncnv.pas34
-rw-r--r--compiler/nflw.pas9
-rw-r--r--compiler/ngenutil.pas16
-rw-r--r--compiler/ngtcon.pas31
-rw-r--r--compiler/ninl.pas207
-rw-r--r--compiler/nmat.pas22
-rw-r--r--compiler/nmem.pas66
-rw-r--r--compiler/nutils.pas37
-rw-r--r--compiler/ogbase.pas4
-rw-r--r--compiler/ogcoff.pas12
-rw-r--r--compiler/ogelf.pas12
-rw-r--r--compiler/optdfa.pas22
-rw-r--r--compiler/options.pas662
-rw-r--r--compiler/optloop.pas11
-rw-r--r--compiler/paramgr.pas12
-rw-r--r--compiler/parser.pas2
-rw-r--r--compiler/pdecl.pas2
-rw-r--r--compiler/pdecobj.pas5
-rw-r--r--compiler/pdecsub.pas94
-rw-r--r--compiler/pexpr.pas7
-rw-r--r--compiler/pgenutil.pas108
-rw-r--r--compiler/pinline.pas62
-rw-r--r--compiler/pmodules.pas5
-rw-r--r--compiler/powerpc/agppcvasm.pas2
-rw-r--r--compiler/powerpc/cpuinfo.pas20
-rw-r--r--compiler/powerpc/cpupara.pas6
-rw-r--r--compiler/powerpc/nppcadd.pas5
-rw-r--r--compiler/powerpc/nppcmat.pas1
-rw-r--r--compiler/powerpc/symcpu.pas14
-rw-r--r--compiler/powerpc64/cpuinfo.pas23
-rw-r--r--compiler/ppcgen/agppcgas.pas2
-rw-r--r--compiler/ppcgen/cgppc.pas24
-rw-r--r--compiler/ppu.pas2
-rw-r--r--compiler/psub.pas38
-rw-r--r--compiler/psystem.pas1
-rw-r--r--compiler/ptconst.pas15
-rw-r--r--compiler/ptype.pas68
-rw-r--r--compiler/raatt.pas3
-rw-r--r--compiler/rautils.pas66
-rw-r--r--compiler/rgobj.pas4
-rw-r--r--compiler/scanner.pas71
-rw-r--r--compiler/sparc/aoptcpu.pas2
-rw-r--r--compiler/sparc/cpuinfo.pas21
-rw-r--r--compiler/sparc/ncpuadd.pas12
-rw-r--r--compiler/symconst.pas4
-rw-r--r--compiler/symdef.pas175
-rw-r--r--compiler/symsym.pas34
-rw-r--r--compiler/symtable.pas65
-rw-r--r--compiler/systems.inc9
-rw-r--r--compiler/systems.pas7
-rw-r--r--compiler/systems/i_aros.pas169
-rw-r--r--compiler/systems/i_bsd.pas73
-rw-r--r--compiler/systems/i_linux.pas5
-rw-r--r--compiler/systems/i_nativent.pas2
-rw-r--r--compiler/systems/t_aix.pas23
-rw-r--r--compiler/systems/t_amiga.pas1
-rw-r--r--compiler/systems/t_aros.pas304
-rw-r--r--compiler/systems/t_bsd.pas9
-rw-r--r--compiler/systems/t_gba.pas1
-rw-r--r--compiler/systems/t_linux.pas1
-rw-r--r--compiler/systems/t_morph.pas2
-rw-r--r--compiler/systems/t_nds.pas142
-rw-r--r--compiler/systems/t_os2.pas8
-rw-r--r--compiler/systems/t_sunos.pas4
-rw-r--r--compiler/tgobj.pas4
-rw-r--r--compiler/tokens.pas2
-rw-r--r--compiler/utils/Makefile61
-rw-r--r--compiler/utils/fpc.pp14
-rw-r--r--compiler/utils/ppuutils/ppudump.pp25
-rw-r--r--compiler/utils/samplecfg2
-rw-r--r--compiler/version.pas4
-rw-r--r--compiler/vis/cpuinfo.pas23
-rw-r--r--compiler/x86/aasmcpu.pas197
-rw-r--r--compiler/x86/agx86att.pas24
-rw-r--r--compiler/x86/agx86nsm.pas2
-rw-r--r--compiler/x86/nx86add.pas27
-rw-r--r--compiler/x86/nx86mat.pas8
-rw-r--r--compiler/x86/rax86.pas28
-rw-r--r--compiler/x86/rax86att.pas4
-rw-r--r--compiler/x86/rax86int.pas63
-rw-r--r--compiler/x86/symx86.pas120
-rw-r--r--compiler/x86_64/cgcpu.pas31
-rw-r--r--compiler/x86_64/cpuelf.pas3
-rw-r--r--compiler/x86_64/cpuinfo.pas24
-rw-r--r--compiler/x86_64/cpupara.pas26
-rw-r--r--compiler/x86_64/nx64flw.pas8
-rw-r--r--compiler/x86_64/rax64att.pas1
-rw-r--r--compiler/x86_64/symcpu.pas2
-rw-r--r--ide/Makefile96
-rw-r--r--ide/Makefile.fpc35
-rw-r--r--ide/Makefile.fpc.fpcmake2
-rw-r--r--ide/compiler/Makefile82
-rw-r--r--ide/fakegdb/Makefile55
-rw-r--r--ide/fp.pas18
-rw-r--r--ide/fpconst.pas47
-rw-r--r--ide/fpdebug.pas153
-rw-r--r--ide/fphelp.pas10
-rw-r--r--ide/fpide.pas37
-rw-r--r--ide/fpini.pas38
-rw-r--r--ide/fpmake.pp27
-rw-r--r--ide/fpmdebug.inc41
-rw-r--r--ide/fpmingw.pas4
-rw-r--r--ide/fpmopts.inc49
-rw-r--r--ide/fpredir.pas8
-rw-r--r--ide/fptemplt.pas4
-rw-r--r--ide/fpusrscr.pas165
-rw-r--r--ide/fputils.pas12
-rw-r--r--ide/fpvars.pas21
-rw-r--r--ide/fpviews.pas9
-rw-r--r--ide/globdir.inc28
-rw-r--r--ide/wconsole.pas3
-rw-r--r--ide/wconstse.inc10
-rw-r--r--ide/whelp.pas22
-rw-r--r--ide/winclip.pas55
-rw-r--r--ide/wini.pas65
-rw-r--r--ide/wutils.pas12
-rw-r--r--installer/Makefile93
-rw-r--r--installer/Makefile.fpc2
-rw-r--r--installer/install.dat372
-rw-r--r--installer/install.pas4
-rw-r--r--installer/winshell.pas4
-rw-r--r--packages/Makefile107
-rw-r--r--packages/Makefile.fpc82
-rw-r--r--packages/Makefile.fpc.fpcmake60
-rw-r--r--packages/a52/Makefile99
-rw-r--r--packages/a52/Makefile.fpc37
-rw-r--r--packages/a52/Makefile.fpc.fpcmake2
-rw-r--r--packages/a52/fpmake.pp2
-rw-r--r--packages/ami-extra/Makefile2407
-rw-r--r--packages/ami-extra/Makefile.fpc100
-rw-r--r--packages/ami-extra/Makefile.fpc.fpcmake23
-rw-r--r--packages/ami-extra/README.txt9
-rw-r--r--packages/ami-extra/fpmake.pp40
-rw-r--r--packages/ami-extra/src/cliputils.pas127
-rw-r--r--packages/amunits/Makefile99
-rw-r--r--packages/amunits/Makefile.fpc37
-rw-r--r--packages/amunits/Makefile.fpc.fpcmake12
-rw-r--r--packages/amunits/examples/asltest.pas4
-rw-r--r--packages/amunits/examples/bezier.pas14
-rw-r--r--packages/amunits/examples/bezier2.pas14
-rw-r--r--packages/amunits/examples/easygadtools.pas2
-rw-r--r--packages/amunits/examples/getfontasl.pas2
-rw-r--r--packages/amunits/examples/imagegadget.pas5
-rw-r--r--packages/amunits/examples/moire.pas6
-rw-r--r--packages/amunits/examples/otherlibs/bestmodeid.pas2
-rw-r--r--packages/amunits/examples/otherlibs/gadgetdemo.pas2
-rw-r--r--packages/amunits/examples/otherlibs/gttest.pas2
-rw-r--r--packages/amunits/examples/otherlibs/openpip.pas2
-rw-r--r--packages/amunits/examples/otherlibs/openscreen.pas2
-rw-r--r--packages/amunits/examples/otherlibs/p96checkboards.pas2
-rw-r--r--packages/amunits/examples/otherlibs/requestmodeid.pas2
-rw-r--r--packages/amunits/examples/otherlibs/rtdemo.pas8
-rw-r--r--packages/amunits/examples/otherlibs/writetruecolordata.pas2
-rw-r--r--packages/amunits/examples/penshare.pas14
-rw-r--r--packages/amunits/examples/snow.pas4
-rw-r--r--packages/amunits/examples/sortdemo.pas4
-rw-r--r--packages/amunits/examples/stars.pas2
-rw-r--r--packages/amunits/examples/talk2boopsi.pas2
-rw-r--r--packages/amunits/examples/wbtest.pas2
-rw-r--r--packages/amunits/fpmake.pp9
-rw-r--r--packages/amunits/src/coreunits/agraphics.pas (renamed from packages/amunits/src/coreunits/graphics.pas)2491
-rw-r--r--packages/amunits/src/coreunits/akeyboard.pas (renamed from packages/amunits/src/coreunits/keyboard.pas)2
-rw-r--r--packages/amunits/src/coreunits/amigados.pas2627
-rw-r--r--packages/amunits/src/coreunits/amigaguide.pas2
-rw-r--r--packages/amunits/src/coreunits/amigaprinter.pas2
-rw-r--r--packages/amunits/src/coreunits/asl.pas124
-rw-r--r--packages/amunits/src/coreunits/bullet.pas83
-rw-r--r--packages/amunits/src/coreunits/colorwheel.pas37
-rw-r--r--packages/amunits/src/coreunits/commodities.pas2
-rw-r--r--packages/amunits/src/coreunits/console.pas41
-rw-r--r--packages/amunits/src/coreunits/datatypes.pas293
-rw-r--r--packages/amunits/src/coreunits/diskfont.pas109
-rw-r--r--packages/amunits/src/coreunits/exec.pas (renamed from packages/amunits/src/coreunits/exec.pp)1821
-rw-r--r--packages/amunits/src/coreunits/expansion.pas2
-rw-r--r--packages/amunits/src/coreunits/gadtools.pas296
-rw-r--r--packages/amunits/src/coreunits/hardware.pas1
-rw-r--r--packages/amunits/src/coreunits/icon.pas345
-rw-r--r--packages/amunits/src/coreunits/iffparse.pas614
-rw-r--r--packages/amunits/src/coreunits/input.pas13
-rw-r--r--packages/amunits/src/coreunits/inputevent.pas2
-rw-r--r--packages/amunits/src/coreunits/intuition.pas1883
-rw-r--r--packages/amunits/src/coreunits/keymap.pas69
-rw-r--r--packages/amunits/src/coreunits/layers.pas6
-rw-r--r--packages/amunits/src/coreunits/locale.pas412
-rw-r--r--packages/amunits/src/coreunits/lowlevel.pas221
-rw-r--r--packages/amunits/src/coreunits/nonvolatile.pas123
-rw-r--r--packages/amunits/src/coreunits/prefs.pas2
-rw-r--r--packages/amunits/src/coreunits/realtime.pas2
-rw-r--r--packages/amunits/src/coreunits/rexx.pas157
-rw-r--r--packages/amunits/src/coreunits/timer.pas77
-rw-r--r--packages/amunits/src/coreunits/translator.pas24
-rw-r--r--packages/amunits/src/coreunits/utility.pas575
-rw-r--r--packages/amunits/src/coreunits/workbench.pas266
-rw-r--r--packages/amunits/src/otherlibs/ahi.pas3
-rw-r--r--packages/amunits/src/otherlibs/ahi_sub.pas3
-rw-r--r--packages/amunits/src/otherlibs/amarquee.pas2
-rw-r--r--packages/amunits/src/otherlibs/cybergraphics.pas4
-rw-r--r--packages/amunits/src/otherlibs/gtlayout.pas4
-rw-r--r--packages/amunits/src/otherlibs/guigfx.pas4
-rw-r--r--packages/amunits/src/otherlibs/identify.pas2
-rw-r--r--packages/amunits/src/otherlibs/lucyplay.pas2
-rw-r--r--packages/amunits/src/otherlibs/mui.pas4
-rw-r--r--packages/amunits/src/otherlibs/mysticview.pas4
-rw-r--r--packages/amunits/src/otherlibs/picasso96api.pas4
-rw-r--r--packages/amunits/src/otherlibs/preferences.pas2
-rw-r--r--packages/amunits/src/otherlibs/ptreplay.pas2
-rw-r--r--packages/amunits/src/otherlibs/render.pas4
-rw-r--r--packages/amunits/src/otherlibs/reqtools.pas4
-rw-r--r--packages/amunits/src/otherlibs/triton.pas4
-rw-r--r--packages/amunits/src/otherlibs/ttengine.pas4
-rw-r--r--packages/amunits/src/otherlibs/xadmaster.pas2
-rw-r--r--packages/amunits/src/otherlibs/zlib.pas169
-rw-r--r--packages/amunits/src/utilunits/Makefile84
-rw-r--r--packages/amunits/src/utilunits/Makefile.fpc2
-rw-r--r--packages/amunits/src/utilunits/amigautils.pas44
-rw-r--r--packages/amunits/src/utilunits/amsgbox.pas (renamed from packages/amunits/src/utilunits/msgbox.pas)24
-rw-r--r--packages/amunits/src/utilunits/doublebuffer.pas2
-rw-r--r--packages/amunits/src/utilunits/easyasl.pas10
-rw-r--r--packages/amunits/src/utilunits/pastoc.pas49
-rw-r--r--packages/amunits/src/utilunits/systemvartags.pas4
-rw-r--r--packages/amunits/src/utilunits/tagsarray.pas114
-rw-r--r--packages/arosunits/Makefile2407
-rw-r--r--packages/arosunits/Makefile.fpc100
-rw-r--r--packages/arosunits/Makefile.fpc.fpcmake25
-rw-r--r--packages/arosunits/fpmake.pp60
-rw-r--r--packages/arosunits/src/agraphics.pas2484
-rw-r--r--packages/arosunits/src/amigados.pas2199
-rw-r--r--packages/arosunits/src/asl.pas555
-rw-r--r--packages/arosunits/src/clipboard.pas179
-rw-r--r--packages/arosunits/src/cybergraphics.pas320
-rw-r--r--packages/arosunits/src/diskfont.pas139
-rw-r--r--packages/arosunits/src/exec.pas1533
-rw-r--r--packages/arosunits/src/gadtools.pas482
-rw-r--r--packages/arosunits/src/hardware.pas588
-rw-r--r--packages/arosunits/src/icon.pas301
-rw-r--r--packages/arosunits/src/iffparse.pas278
-rw-r--r--packages/arosunits/src/inputevent.pas284
-rw-r--r--packages/arosunits/src/intuition.pas3695
-rw-r--r--packages/arosunits/src/keymap.pas111
-rw-r--r--packages/arosunits/src/layers.pas115
-rw-r--r--packages/arosunits/src/longarray.pas111
-rw-r--r--packages/arosunits/src/mui.pas3896
-rw-r--r--packages/arosunits/src/tagsarray.pas111
-rw-r--r--packages/arosunits/src/timer.pas94
-rw-r--r--packages/arosunits/src/utility.pas295
-rw-r--r--packages/arosunits/src/workbench.pas659
-rw-r--r--packages/aspell/Makefile99
-rw-r--r--packages/aspell/Makefile.fpc37
-rw-r--r--packages/aspell/Makefile.fpc.fpcmake2
-rw-r--r--packages/aspell/fpmake.pp4
-rw-r--r--packages/bfd/Makefile99
-rw-r--r--packages/bfd/Makefile.fpc37
-rw-r--r--packages/bfd/Makefile.fpc.fpcmake2
-rw-r--r--packages/bfd/fpmake.pp4
-rw-r--r--packages/bzip2/Makefile99
-rw-r--r--packages/bzip2/Makefile.fpc37
-rw-r--r--packages/bzip2/Makefile.fpc.fpcmake2
-rw-r--r--packages/bzip2/fpmake.pp3
-rw-r--r--packages/cairo/Makefile99
-rw-r--r--packages/cairo/Makefile.fpc37
-rw-r--r--packages/cairo/Makefile.fpc.fpcmake2
-rw-r--r--packages/cairo/fpmake.pp4
-rw-r--r--packages/cdrom/Makefile99
-rw-r--r--packages/cdrom/Makefile.fpc37
-rw-r--r--packages/cdrom/Makefile.fpc.fpcmake2
-rw-r--r--packages/cdrom/examples/Makefile73
-rw-r--r--packages/cdrom/fpmake.pp3
-rw-r--r--packages/chm/Makefile99
-rw-r--r--packages/chm/Makefile.fpc37
-rw-r--r--packages/chm/Makefile.fpc.fpcmake2
-rw-r--r--packages/chm/examples/chmsearch.lpr178
-rw-r--r--packages/chm/fpmake.pp4
-rw-r--r--packages/chm/src/chmbase.pas2
-rw-r--r--packages/chm/src/chmcmd.lpr2
-rw-r--r--packages/chm/src/chmls.lpr4
-rw-r--r--packages/cocoaint/Makefile99
-rw-r--r--packages/cocoaint/Makefile.fpc37
-rw-r--r--packages/cocoaint/Makefile.fpc.fpcmake2
-rw-r--r--packages/cocoaint/fpmake.pp2
-rw-r--r--packages/dblib/Makefile98
-rw-r--r--packages/dblib/Makefile.fpc35
-rw-r--r--packages/dblib/fpmake.pp4
-rw-r--r--packages/dbus/Makefile99
-rw-r--r--packages/dbus/Makefile.fpc37
-rw-r--r--packages/dbus/Makefile.fpc.fpcmake2
-rw-r--r--packages/dbus/examples/Makefile73
-rw-r--r--packages/dbus/fpmake.pp2
-rw-r--r--packages/dts/Makefile99
-rw-r--r--packages/dts/Makefile.fpc37
-rw-r--r--packages/dts/Makefile.fpc.fpcmake2
-rw-r--r--packages/dts/fpmake.pp2
-rw-r--r--packages/fastcgi/Makefile99
-rw-r--r--packages/fastcgi/Makefile.fpc37
-rw-r--r--packages/fastcgi/Makefile.fpc.fpcmake2
-rw-r--r--packages/fastcgi/fpmake.pp4
-rw-r--r--packages/fcl-async/Makefile99
-rw-r--r--packages/fcl-async/Makefile.fpc37
-rw-r--r--packages/fcl-async/Makefile.fpc.fpcmake2
-rw-r--r--packages/fcl-async/fpmake.pp5
-rw-r--r--packages/fcl-base/Makefile99
-rw-r--r--packages/fcl-base/Makefile.fpc37
-rw-r--r--packages/fcl-base/Makefile.fpc.fpcmake2
-rw-r--r--packages/fcl-base/examples/Makefile97
-rw-r--r--packages/fcl-base/fpmake.pp5
-rw-r--r--packages/fcl-base/src/fileinfo.pp3
-rw-r--r--packages/fcl-base/src/whtml.pp6
-rw-r--r--packages/fcl-db/Makefile99
-rw-r--r--packages/fcl-db/Makefile.fpc37
-rw-r--r--packages/fcl-db/Makefile.fpc.fpcmake3
-rw-r--r--packages/fcl-db/examples/dbftool.lpi7
-rw-r--r--packages/fcl-db/examples/dbftool.lpr83
-rw-r--r--packages/fcl-db/fpmake.pp17
-rw-r--r--packages/fcl-db/src/base/Makefile105
-rw-r--r--packages/fcl-db/src/base/Makefile.fpc2
-rw-r--r--packages/fcl-db/src/base/bufdataset.pas52
-rw-r--r--packages/fcl-db/src/base/database.inc16
-rw-r--r--packages/fcl-db/src/base/dataset.inc4
-rw-r--r--packages/fcl-db/src/base/datasource.inc2
-rw-r--r--packages/fcl-db/src/base/db.pas25
-rw-r--r--packages/fcl-db/src/base/dbconst.pas23
-rw-r--r--packages/fcl-db/src/base/dsparams.inc73
-rw-r--r--packages/fcl-db/src/base/fields.inc53
-rw-r--r--packages/fcl-db/src/codegen/Makefile91
-rw-r--r--packages/fcl-db/src/datadict/Makefile94
-rw-r--r--packages/fcl-db/src/dbase/Makefile109
-rw-r--r--packages/fcl-db/src/dbase/dbf_dbffile.pas16
-rw-r--r--packages/fcl-db/src/dbase/dbf_wnix.inc368
-rw-r--r--packages/fcl-db/src/dbase/dbf_wos2.inc305
-rw-r--r--packages/fcl-db/src/dbase/dbf_wtil.pas395
-rw-r--r--packages/fcl-db/src/dbase/fpmake.inc4
-rw-r--r--packages/fcl-db/src/dbase/testdbf.pp1
-rw-r--r--packages/fcl-db/src/export/Makefile94
-rw-r--r--packages/fcl-db/src/json/Makefile76
-rw-r--r--packages/fcl-db/src/memds/Makefile91
-rw-r--r--packages/fcl-db/src/paradox/Makefile85
-rw-r--r--packages/fcl-db/src/sdf/Makefile82
-rw-r--r--packages/fcl-db/src/sql/Makefile100
-rw-r--r--packages/fcl-db/src/sqldb/Makefile91
-rw-r--r--packages/fcl-db/src/sqldb/interbase/Makefile85
-rw-r--r--packages/fcl-db/src/sqldb/interbase/fbadmin.pp17
-rw-r--r--packages/fcl-db/src/sqldb/interbase/fpmake.inc2
-rw-r--r--packages/fcl-db/src/sqldb/interbase/ibconnection.pp99
-rw-r--r--packages/fcl-db/src/sqldb/mssql/Makefile82
-rw-r--r--packages/fcl-db/src/sqldb/mssql/fpmake.inc2
-rw-r--r--packages/fcl-db/src/sqldb/mssql/mssqlconn.pp25
-rw-r--r--packages/fcl-db/src/sqldb/mysql/Makefile94
-rw-r--r--packages/fcl-db/src/sqldb/mysql/fpmake.inc2
-rw-r--r--packages/fcl-db/src/sqldb/mysql/mysqlconn.inc38
-rw-r--r--packages/fcl-db/src/sqldb/odbc/Makefile85
-rw-r--r--packages/fcl-db/src/sqldb/odbc/odbcconn.pas121
-rw-r--r--packages/fcl-db/src/sqldb/oracle/Makefile6460
-rw-r--r--packages/fcl-db/src/sqldb/oracle/oracleconnection.pp284
-rw-r--r--packages/fcl-db/src/sqldb/postgres/Makefile94
-rw-r--r--packages/fcl-db/src/sqldb/postgres/fpmake.inc2
-rw-r--r--packages/fcl-db/src/sqldb/postgres/pqconnection.pp205
-rw-r--r--packages/fcl-db/src/sqldb/sqldb.pp577
-rw-r--r--packages/fcl-db/src/sqldb/sqlite/Makefile85
-rw-r--r--packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp207
-rw-r--r--packages/fcl-db/src/sqlite/Makefile76
-rw-r--r--packages/fcl-db/src/sqlite/customsqliteds.pas91
-rw-r--r--packages/fcl-db/src/sqlite/sqlite3ds.pas20
-rw-r--r--packages/fcl-db/src/sqlite/sqliteds.pas30
-rw-r--r--packages/fcl-db/tests/Makefile6047
-rw-r--r--packages/fcl-db/tests/sqldbtoolsunit.pas54
-rw-r--r--packages/fcl-db/tests/testfieldtypes.pas42
-rw-r--r--packages/fcl-db/tests/testsqldb.pas634
-rw-r--r--packages/fcl-extra/Makefile99
-rw-r--r--packages/fcl-extra/Makefile.fpc37
-rw-r--r--packages/fcl-extra/Makefile.fpc.fpcmake2
-rw-r--r--packages/fcl-extra/examples/Makefile67
-rw-r--r--packages/fcl-extra/fpmake.pp2
-rw-r--r--packages/fcl-fpcunit/Makefile99
-rw-r--r--packages/fcl-fpcunit/Makefile.fpc37
-rw-r--r--packages/fcl-fpcunit/Makefile.fpc.fpcmake2
-rw-r--r--packages/fcl-fpcunit/fpmake.pp3
-rw-r--r--packages/fcl-fpcunit/src/exampletests/Makefile88
-rw-r--r--packages/fcl-fpcunit/src/latextestreport.pp20
-rw-r--r--packages/fcl-fpcunit/src/plaintestreport.pp22
-rw-r--r--packages/fcl-fpcunit/src/tests/Makefile88
-rw-r--r--packages/fcl-fpcunit/src/xmltestreport.pp6
-rw-r--r--packages/fcl-image/Makefile99
-rw-r--r--packages/fcl-image/Makefile.fpc37
-rw-r--r--packages/fcl-image/Makefile.fpc.fpcmake2
-rw-r--r--packages/fcl-image/examples/Makefile73
-rw-r--r--packages/fcl-image/fpmake.pp9
-rw-r--r--packages/fcl-image/src/fpreadpng.pp8
-rw-r--r--packages/fcl-image/src/fpreadtiff.pas18
-rw-r--r--packages/fcl-image/src/freetype.pp4
-rw-r--r--packages/fcl-js/Makefile99
-rw-r--r--packages/fcl-js/Makefile.fpc37
-rw-r--r--packages/fcl-js/Makefile.fpc.fpcmake2
-rw-r--r--packages/fcl-js/fpmake.pp3
-rw-r--r--packages/fcl-json/Makefile99
-rw-r--r--packages/fcl-json/Makefile.fpc37
-rw-r--r--packages/fcl-json/Makefile.fpc.fpcmake2
-rw-r--r--packages/fcl-json/fpmake.pp4
-rw-r--r--packages/fcl-json/src/fpjson.pp225
-rw-r--r--packages/fcl-json/src/jsonscanner.pp2
-rw-r--r--packages/fcl-json/tests/testjson.lpi16
-rw-r--r--packages/fcl-json/tests/testjsondata.pp269
-rw-r--r--packages/fcl-net/Makefile99
-rw-r--r--packages/fcl-net/Makefile.fpc37
-rw-r--r--packages/fcl-net/Makefile.fpc.fpcmake5
-rw-r--r--packages/fcl-net/examples/Makefile97
-rw-r--r--packages/fcl-net/fpmake.pp13
-rw-r--r--packages/fcl-net/src/amiga/resolve.inc99
-rw-r--r--packages/fcl-net/src/aros/resolve.inc99
-rw-r--r--packages/fcl-net/src/cnetdb.pp2
-rw-r--r--packages/fcl-net/src/fpsock.pp12
-rw-r--r--packages/fcl-net/src/netdb.pp6
-rw-r--r--packages/fcl-net/src/ssockets.pp2
-rw-r--r--packages/fcl-passrc/Makefile99
-rw-r--r--packages/fcl-passrc/Makefile.fpc37
-rw-r--r--packages/fcl-passrc/Makefile.fpc.fpcmake2
-rw-r--r--packages/fcl-passrc/fpmake.pp3
-rw-r--r--packages/fcl-process/Makefile84
-rw-r--r--packages/fcl-process/Makefile.fpc37
-rw-r--r--packages/fcl-process/Makefile.fpc.fpcmake2
-rw-r--r--packages/fcl-process/fpmake.pp3
-rw-r--r--packages/fcl-process/src/os2/simpleipc.inc1
-rw-r--r--packages/fcl-process/src/pipes.pp1
-rw-r--r--packages/fcl-process/src/process.pp151
-rw-r--r--packages/fcl-process/src/simpleipc.pp1
-rw-r--r--packages/fcl-process/src/unix/process.inc24
-rw-r--r--packages/fcl-process/src/unix/simpleipc.inc1
-rw-r--r--packages/fcl-process/src/win/process.inc6
-rw-r--r--packages/fcl-process/src/win/simpleipc.inc3
-rw-r--r--packages/fcl-process/src/wince/simpleipc.inc1
-rw-r--r--packages/fcl-registry/Makefile99
-rw-r--r--packages/fcl-registry/Makefile.fpc37
-rw-r--r--packages/fcl-registry/Makefile.fpc.fpcmake2
-rw-r--r--packages/fcl-registry/fpmake.pp3
-rw-r--r--packages/fcl-registry/src/registry.pp17
-rw-r--r--packages/fcl-registry/tests/Makefile55
-rw-r--r--packages/fcl-res/Makefile99
-rw-r--r--packages/fcl-res/Makefile.fpc37
-rw-r--r--packages/fcl-res/Makefile.fpc.fpcmake2
-rw-r--r--packages/fcl-res/fpmake.pp5
-rw-r--r--packages/fcl-sdo/Makefile98
-rw-r--r--packages/fcl-sdo/Makefile.fpc35
-rw-r--r--packages/fcl-sdo/fpmake.pp3
-rw-r--r--packages/fcl-sound/Makefile85
-rw-r--r--packages/fcl-sound/Makefile.fpc37
-rw-r--r--packages/fcl-sound/fpmake.pp3
-rw-r--r--packages/fcl-stl/Makefile99
-rw-r--r--packages/fcl-stl/Makefile.fpc37
-rw-r--r--packages/fcl-stl/Makefile.fpc.fpcmake2
-rw-r--r--packages/fcl-stl/fpmake.pp5
-rw-r--r--packages/fcl-web/Makefile99
-rw-r--r--packages/fcl-web/Makefile.fpc37
-rw-r--r--packages/fcl-web/Makefile.fpc.fpcmake2
-rw-r--r--packages/fcl-web/fpmake.pp15
-rw-r--r--packages/fcl-web/src/base/Makefile111
-rw-r--r--packages/fcl-web/src/base/Makefile.fpc2
-rw-r--r--packages/fcl-web/src/base/fphttpclient.pp7
-rw-r--r--packages/fcl-web/src/jsonrpc/Makefile90
-rw-r--r--packages/fcl-web/src/jsonrpc/Makefile.fpc2
-rw-r--r--packages/fcl-web/src/jsonrpc/fpdispextdirect.pp10
-rw-r--r--packages/fcl-web/src/webdata/Makefile93
-rw-r--r--packages/fcl-web/src/webdata/Makefile.fpc2
-rw-r--r--packages/fcl-xml/Makefile99
-rw-r--r--packages/fcl-xml/Makefile.fpc37
-rw-r--r--packages/fcl-xml/Makefile.fpc.fpcmake2
-rw-r--r--packages/fcl-xml/fpmake.pp5
-rw-r--r--packages/fcl-xml/src/htmlelements.pp2
-rw-r--r--packages/fftw/Makefile99
-rw-r--r--packages/fftw/Makefile.fpc37
-rw-r--r--packages/fftw/Makefile.fpc.fpcmake2
-rw-r--r--packages/fftw/fpmake.pp4
-rw-r--r--packages/fpgtk/Makefile99
-rw-r--r--packages/fpgtk/Makefile.fpc37
-rw-r--r--packages/fpgtk/Makefile.fpc.fpcmake2
-rw-r--r--packages/fpgtk/examples/Makefile82
-rw-r--r--packages/fpgtk/fpmake.pp5
-rw-r--r--packages/fpindexer/Makefile98
-rw-r--r--packages/fpindexer/Makefile.fpc35
-rw-r--r--packages/fpindexer/fpmake.pp8
-rw-r--r--packages/fpmake.pp5
-rw-r--r--packages/fpmake_add.inc3
-rw-r--r--packages/fpmake_proc.inc18
-rw-r--r--packages/fpmkunit/Makefile66
-rw-r--r--packages/fpmkunit/Makefile.fpc8
-rw-r--r--packages/fpmkunit/Makefile.fpc.fpcmake2
-rw-r--r--packages/fpmkunit/fpmake.pp11
-rw-r--r--packages/fpmkunit/src/fpmkunit.pp1338
-rw-r--r--packages/fppkg/Makefile99
-rw-r--r--packages/fppkg/Makefile.fpc37
-rw-r--r--packages/fppkg/Makefile.fpc.fpcmake2
-rw-r--r--packages/fppkg/fpmake.pp5
-rw-r--r--packages/fppkg/src/fpmkunitsrc.inc17499
-rw-r--r--packages/fppkg/src/pkgcommands.pp235
-rw-r--r--packages/fppkg/src/pkgfpmake.pp81
-rw-r--r--packages/fppkg/src/pkgrepos.pp43
-rw-r--r--packages/fuse/Makefile99
-rw-r--r--packages/fuse/Makefile.fpc37
-rw-r--r--packages/fuse/Makefile.fpc.fpcmake2
-rw-r--r--packages/fv/Makefile99
-rw-r--r--packages/fv/Makefile.fpc37
-rw-r--r--packages/fv/Makefile.fpc.fpcmake2
-rw-r--r--packages/fv/examples/Makefile82
-rw-r--r--packages/fv/fpmake.pp7
-rw-r--r--packages/fv/src/amismsg.inc10
-rw-r--r--packages/fv/src/app.pas6
-rw-r--r--packages/fv/src/asciitab.pas2
-rw-r--r--packages/fv/src/drivers.pas15
-rw-r--r--packages/fv/src/platform.inc6
-rw-r--r--packages/fv/src/stddlg.pas31
-rw-r--r--packages/fv/src/sysmsg.pas4
-rw-r--r--packages/gdbint/Makefile99
-rw-r--r--packages/gdbint/Makefile.fpc37
-rw-r--r--packages/gdbint/Makefile.fpc.fpcmake2
-rw-r--r--packages/gdbint/fpmake.pp63
-rwxr-xr-xpackages/gdbint/gen-gdblib-inc.sh22
-rw-r--r--packages/gdbint/src/gdbint.pp105
-rw-r--r--packages/gdbm/Makefile99
-rw-r--r--packages/gdbm/Makefile.fpc37
-rw-r--r--packages/gdbm/Makefile.fpc.fpcmake2
-rw-r--r--packages/gdbm/examples/Makefile73
-rw-r--r--packages/gdbm/fpmake.pp2
-rw-r--r--packages/ggi/Makefile99
-rw-r--r--packages/ggi/Makefile.fpc37
-rw-r--r--packages/ggi/Makefile.fpc.fpcmake2
-rw-r--r--packages/ggi/examples/Makefile73
-rw-r--r--packages/ggi/fpmake.pp4
-rw-r--r--packages/gmp/Makefile99
-rw-r--r--packages/gmp/Makefile.fpc37
-rw-r--r--packages/gmp/Makefile.fpc.fpcmake2
-rw-r--r--packages/gmp/examples/Makefile73
-rw-r--r--packages/gmp/fpmake.pp2
-rw-r--r--packages/gnome1/Makefile99
-rw-r--r--packages/gnome1/Makefile.fpc37
-rw-r--r--packages/gnome1/Makefile.fpc.fpcmake2
-rw-r--r--packages/gnome1/fpmake.pp2
-rw-r--r--packages/graph/Makefile99
-rw-r--r--packages/graph/Makefile.fpc37
-rw-r--r--packages/graph/Makefile.fpc.fpcmake2
-rw-r--r--packages/graph/fpmake.pp3
-rw-r--r--packages/gtk1/Makefile99
-rw-r--r--packages/gtk1/Makefile.fpc37
-rw-r--r--packages/gtk1/Makefile.fpc.fpcmake2
-rw-r--r--packages/gtk1/examples/Makefile100
-rw-r--r--packages/gtk1/examples/tutorial/Makefile64
-rw-r--r--packages/gtk1/fpmake.pp2
-rw-r--r--packages/gtk1/src/gtkgl/Makefile82
-rw-r--r--packages/gtk2/Makefile99
-rw-r--r--packages/gtk2/Makefile.fpc37
-rw-r--r--packages/gtk2/Makefile.fpc.fpcmake2
-rw-r--r--packages/gtk2/examples/Makefile103
-rw-r--r--packages/gtk2/examples/filechooser/Makefile73
-rw-r--r--packages/gtk2/examples/gettingstarted/Makefile73
-rw-r--r--packages/gtk2/examples/gtk_demo/Makefile73
-rw-r--r--packages/gtk2/examples/gtk_demo/drawingarea.inc6
-rw-r--r--packages/gtk2/examples/gtkglext/Makefile76
-rw-r--r--packages/gtk2/examples/helloworld/Makefile73
-rw-r--r--packages/gtk2/examples/helloworld/helloworld.pas2
-rw-r--r--packages/gtk2/examples/helloworld2/Makefile73
-rw-r--r--packages/gtk2/examples/plugins/Makefile73
-rw-r--r--packages/gtk2/examples/scribble_simple/Makefile73
-rw-r--r--packages/gtk2/examples/scribble_simple/scribble_simple.pas6
-rw-r--r--packages/gtk2/fpmake.pp2
-rw-r--r--packages/hash/Makefile75
-rw-r--r--packages/hash/Makefile.fpc37
-rw-r--r--packages/hash/Makefile.fpc.fpcmake2
-rw-r--r--packages/hash/examples/Makefile898
-rw-r--r--packages/hash/examples/Makefile.fpc4
-rw-r--r--packages/hash/examples/md5performancetest.pas29
-rw-r--r--packages/hash/examples/mdtest.pas48
-rw-r--r--packages/hash/examples/sha1performancetest.pas29
-rw-r--r--packages/hash/examples/sha1test.pp29
-rw-r--r--packages/hash/fpmake.pp10
-rw-r--r--packages/hash/src/md5.pp114
-rw-r--r--packages/hash/src/md5i386.inc747
-rw-r--r--packages/hash/src/sha1.pp18
-rw-r--r--packages/hash/src/sha1i386.inc1951
-rw-r--r--packages/hermes/Makefile99
-rw-r--r--packages/hermes/Makefile.fpc37
-rw-r--r--packages/hermes/Makefile.fpc.fpcmake2
-rw-r--r--packages/hermes/fpmake.pp3
-rw-r--r--packages/httpd13/Makefile99
-rw-r--r--packages/httpd13/Makefile.fpc37
-rw-r--r--packages/httpd13/Makefile.fpc.fpcmake2
-rw-r--r--packages/httpd13/fpmake.pp3
-rw-r--r--packages/httpd20/Makefile99
-rw-r--r--packages/httpd20/Makefile.fpc37
-rw-r--r--packages/httpd20/Makefile.fpc.fpcmake2
-rw-r--r--packages/httpd20/examples/Makefile82
-rw-r--r--packages/httpd20/fpmake.pp3
-rw-r--r--packages/httpd22/Makefile99
-rw-r--r--packages/httpd22/Makefile.fpc37
-rw-r--r--packages/httpd22/Makefile.fpc.fpcmake2
-rw-r--r--packages/httpd22/examples/Makefile82
-rw-r--r--packages/httpd22/fpmake.pp3
-rw-r--r--packages/httpd24/Makefile98
-rw-r--r--packages/httpd24/Makefile.fpc35
-rw-r--r--packages/httpd24/examples/Makefile82
-rw-r--r--packages/httpd24/fpmake.pp9
-rw-r--r--packages/ibase/Makefile99
-rw-r--r--packages/ibase/Makefile.fpc37
-rw-r--r--packages/ibase/Makefile.fpc.fpcmake2
-rw-r--r--packages/ibase/examples/Makefile73
-rw-r--r--packages/ibase/fpmake.pp3
-rw-r--r--packages/ibase/src/ibase60.inc54
-rw-r--r--packages/iconvenc/Makefile99
-rw-r--r--packages/iconvenc/Makefile.fpc37
-rw-r--r--packages/iconvenc/Makefile.fpc.fpcmake2
-rw-r--r--packages/iconvenc/examples/Makefile73
-rw-r--r--packages/iconvenc/fpmake.pp2
-rw-r--r--packages/imagemagick/Makefile99
-rw-r--r--packages/imagemagick/Makefile.fpc37
-rw-r--r--packages/imagemagick/Makefile.fpc.fpcmake2
-rw-r--r--packages/imagemagick/fpmake.pp2
-rw-r--r--packages/imagemagick/src/magick_type.inc38
-rw-r--r--packages/imlib/Makefile99
-rw-r--r--packages/imlib/Makefile.fpc37
-rw-r--r--packages/imlib/Makefile.fpc.fpcmake2
-rw-r--r--packages/imlib/fpmake.pp3
-rw-r--r--packages/iosxlocale/Makefile101
-rw-r--r--packages/iosxlocale/Makefile.fpc39
-rw-r--r--packages/iosxlocale/Makefile.fpc.fpcmake2
-rw-r--r--packages/iosxlocale/fpmake.pp2
-rw-r--r--packages/jni/Makefile98
-rw-r--r--packages/jni/Makefile.fpc35
-rw-r--r--packages/jni/fpmake.pp2
-rw-r--r--packages/ldap/Makefile99
-rw-r--r--packages/ldap/Makefile.fpc37
-rw-r--r--packages/ldap/Makefile.fpc.fpcmake2
-rw-r--r--packages/ldap/fpmake.pp2
-rw-r--r--packages/libc/Makefile99
-rw-r--r--packages/libc/Makefile.fpc37
-rw-r--r--packages/libc/Makefile.fpc.fpcmake2
-rw-r--r--packages/libc/fpmake.pp2
-rw-r--r--packages/libcurl/Makefile99
-rw-r--r--packages/libcurl/Makefile.fpc37
-rw-r--r--packages/libcurl/Makefile.fpc.fpcmake2
-rw-r--r--packages/libcurl/examples/Makefile73
-rw-r--r--packages/libcurl/examples/testcurl.pp6
-rw-r--r--packages/libcurl/examples/teststream.pp5
-rw-r--r--packages/libcurl/fpmake.pp4
-rw-r--r--packages/libgbafpc/Makefile99
-rw-r--r--packages/libgbafpc/Makefile.fpc37
-rw-r--r--packages/libgbafpc/Makefile.fpc.fpcmake2
-rw-r--r--packages/libgbafpc/examples/Makefile88
-rw-r--r--packages/libgbafpc/examples/audio/Makefile84
-rw-r--r--packages/libgbafpc/examples/audio/Makefile.fpc2
-rw-r--r--packages/libgbafpc/examples/audio/PlayBoyScout/Makefile91
-rw-r--r--packages/libgbafpc/examples/graphics/Makefile90
-rw-r--r--packages/libgbafpc/examples/graphics/Makefile.fpc2
-rw-r--r--packages/libgbafpc/examples/graphics/PCXView/Makefile91
-rw-r--r--packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile91
-rw-r--r--packages/libgbafpc/examples/graphics/ansi_console/Makefile91
-rw-r--r--packages/libgbafpc/examples/template/Makefile93
-rw-r--r--packages/libgbafpc/examples/template/Makefile.fpc2
-rw-r--r--packages/libgbafpc/fpmake.pp2
-rw-r--r--packages/libgbafpc/src/gba/boyscout.inc (renamed from packages/libgbafpc/src/gba/BoyScout.inc)0
-rw-r--r--packages/libgd/Makefile99
-rw-r--r--packages/libgd/Makefile.fpc37
-rw-r--r--packages/libgd/Makefile.fpc.fpcmake2
-rw-r--r--packages/libgd/examples/Makefile73
-rw-r--r--packages/libgd/fpmake.pp4
-rw-r--r--packages/libgd/src/gd.pas10
-rw-r--r--packages/libndsfpc/Makefile99
-rw-r--r--packages/libndsfpc/Makefile.fpc37
-rw-r--r--packages/libndsfpc/Makefile.fpc.fpcmake4
-rw-r--r--packages/libndsfpc/examples/Makefile112
-rw-r--r--packages/libndsfpc/examples/audio/Makefile85
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/Makefile94
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile331
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile.fpc4
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile109
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/reverb/Makefile331
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/reverb/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile257
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile.fpc2
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile331
-rw-r--r--packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/audio/micrecord/Makefile322
-rw-r--r--packages/libndsfpc/examples/audio/micrecord/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/card/Makefile82
-rw-r--r--packages/libndsfpc/examples/card/eeprom/Makefile322
-rw-r--r--packages/libndsfpc/examples/card/eeprom/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/debugging/Makefile82
-rw-r--r--packages/libndsfpc/examples/debugging/exceptionTest/Makefile322
-rw-r--r--packages/libndsfpc/examples/debugging/exceptionTest/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/ds_motion/Makefile322
-rw-r--r--packages/libndsfpc/examples/ds_motion/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/dswifi/Makefile88
-rw-r--r--packages/libndsfpc/examples/dswifi/ap_search/Makefile322
-rw-r--r--packages/libndsfpc/examples/dswifi/ap_search/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/dswifi/autoconnect/Makefile322
-rw-r--r--packages/libndsfpc/examples/dswifi/autoconnect/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/dswifi/httpget/Makefile322
-rw-r--r--packages/libndsfpc/examples/dswifi/httpget/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/filesystem/Makefile85
-rw-r--r--packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile257
-rw-r--r--packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile.fpc2
-rw-r--r--packages/libndsfpc/examples/filesystem/libfat/Makefile82
-rw-r--r--packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile248
-rw-r--r--packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile248
-rw-r--r--packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile248
-rw-r--r--packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/filesystem/nitrofs/Makefile82
-rw-r--r--packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile248
-rw-r--r--packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/nitrodir.pp2
-rw-r--r--packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile100
-rw-r--r--packages/libndsfpc/examples/gl2d/Makefile97
-rw-r--r--packages/libndsfpc/examples/gl2d/dual_screen/Makefile100
-rw-r--r--packages/libndsfpc/examples/gl2d/fonts/Makefile100
-rw-r--r--packages/libndsfpc/examples/gl2d/primitives/Makefile100
-rw-r--r--packages/libndsfpc/examples/gl2d/scrolling/Makefile100
-rw-r--r--packages/libndsfpc/examples/gl2d/sprites/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Display_List/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Makefile124
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Ortho/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Picking/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/Makefile115
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Backgrounds/Makefile94
-rw-r--r--packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Effects/Makefile2817
-rw-r--r--packages/libndsfpc/examples/graphics/Effects/Makefile.fpc18
-rw-r--r--packages/libndsfpc/examples/graphics/Effects/windows/Makefile3468
-rw-r--r--packages/libndsfpc/examples/graphics/Effects/windows/Makefile.fpc93
-rw-r--r--packages/libndsfpc/examples/graphics/Effects/windows/gfx/drunkenlogo.grit5
-rw-r--r--packages/libndsfpc/examples/graphics/Effects/windows/gfx/drunkenlogo.pngbin0 -> 28875 bytes
-rw-r--r--packages/libndsfpc/examples/graphics/Effects/windows/windows.pp76
-rw-r--r--packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile2817
-rw-r--r--packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile.fpc18
-rw-r--r--packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile3480
-rw-r--r--packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile.fpc95
-rw-r--r--packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/backgrounds.pp85
-rw-r--r--packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/gfx/devkitlogo.grit5
-rw-r--r--packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/gfx/devkitlogo.pngbin0 -> 7414 bytes
-rw-r--r--packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/gfx/drunkenlogo.grit8
-rw-r--r--packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/gfx/drunkenlogo.pngbin0 -> 197199 bytes
-rw-r--r--packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/inc/devkitlogo.inc35
-rw-r--r--packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/inc/drunkenlogo.inc35
-rw-r--r--packages/libndsfpc/examples/graphics/Makefile483
-rw-r--r--packages/libndsfpc/examples/graphics/Makefile.fpc2
-rw-r--r--packages/libndsfpc/examples/graphics/Printing/Makefile94
-rw-r--r--packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Sprites/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Sprites/simple/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile100
-rw-r--r--packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile100
-rw-r--r--packages/libndsfpc/examples/hello_world/Makefile535
-rw-r--r--packages/libndsfpc/examples/hello_world/Makefile.fpc84
-rw-r--r--packages/libndsfpc/examples/input/Makefile85
-rw-r--r--packages/libndsfpc/examples/input/Touch_Pad/Makefile88
-rw-r--r--packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile322
-rw-r--r--packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile248
-rw-r--r--packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile248
-rw-r--r--packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/input/keyboard/Makefile85
-rw-r--r--packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile322
-rw-r--r--packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile322
-rw-r--r--packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/time/Makefile88
-rw-r--r--packages/libndsfpc/examples/time/RealTimeClock/Makefile322
-rw-r--r--packages/libndsfpc/examples/time/RealTimeClock/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/time/stopwatch/Makefile322
-rw-r--r--packages/libndsfpc/examples/time/stopwatch/Makefile.fpc3
-rw-r--r--packages/libndsfpc/examples/time/timercallback/Makefile322
-rw-r--r--packages/libndsfpc/examples/time/timercallback/Makefile.fpc3
-rw-r--r--packages/libndsfpc/fpmake.pp2
-rw-r--r--packages/libndsfpc/src/dswifi/inc/dswifi9.inc12
-rw-r--r--packages/libndsfpc/src/dswifi/inc/dswifi_version.inc4
-rw-r--r--packages/libndsfpc/src/fat/fat.inc2
-rw-r--r--packages/libndsfpc/src/fat/filesystem.inc2
-rw-r--r--packages/libndsfpc/src/nds/arm9/background.inc16
-rw-r--r--packages/libndsfpc/src/nds/arm9/math.inc26
-rw-r--r--packages/libndsfpc/src/nds/arm9/videoGL.inc31
-rw-r--r--packages/libndsfpc/src/nds/arm9/window.inc49
-rw-r--r--packages/libndsfpc/src/nds/libversion.inc4
-rw-r--r--packages/libndsfpc/src/nds/nds.inc1
-rw-r--r--packages/libndsfpc/src/nds/ndsinclude.inc1
-rw-r--r--packages/libogcfpc/Makefile99
-rw-r--r--packages/libogcfpc/Makefile.fpc37
-rw-r--r--packages/libogcfpc/Makefile.fpc.fpcmake2
-rw-r--r--packages/libogcfpc/examples/Makefile94
-rw-r--r--packages/libogcfpc/examples/audio/Makefile85
-rw-r--r--packages/libogcfpc/examples/audio/modplay/Makefile100
-rw-r--r--packages/libogcfpc/examples/audio/mp3player/Makefile100
-rw-r--r--packages/libogcfpc/examples/devices/Makefile88
-rw-r--r--packages/libogcfpc/examples/devices/network/Makefile82
-rw-r--r--packages/libogcfpc/examples/devices/network/sockettest/Makefile100
-rw-r--r--packages/libogcfpc/examples/devices/usbgecko/Makefile82
-rw-r--r--packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile100
-rw-r--r--packages/libogcfpc/examples/devices/usbkeyboard/Makefile82
-rw-r--r--packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile100
-rw-r--r--packages/libogcfpc/examples/filesystem/Makefile82
-rw-r--r--packages/libogcfpc/examples/filesystem/directory/Makefile100
-rw-r--r--packages/libogcfpc/examples/graphics/Makefile82
-rw-r--r--packages/libogcfpc/examples/graphics/gx/Makefile88
-rw-r--r--packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile100
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/Makefile106
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile100
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile100
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile100
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile100
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile100
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile100
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile100
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile100
-rw-r--r--packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile100
-rw-r--r--packages/libogcfpc/examples/graphics/gx/triangle/Makefile100
-rw-r--r--packages/libogcfpc/examples/template/Makefile100
-rw-r--r--packages/libogcfpc/fpmake.pp2
-rw-r--r--packages/libogcfpc/src/fat.pp17
-rw-r--r--packages/libogcfpc/src/ogc/usbgecko.inc2
-rw-r--r--packages/libpng/Makefile99
-rw-r--r--packages/libpng/Makefile.fpc37
-rw-r--r--packages/libpng/Makefile.fpc.fpcmake2
-rw-r--r--packages/libpng/fpmake.pp4
-rw-r--r--packages/librsvg/Makefile99
-rw-r--r--packages/librsvg/Makefile.fpc37
-rw-r--r--packages/librsvg/Makefile.fpc.fpcmake2
-rw-r--r--packages/librsvg/fpmake.pp4
-rw-r--r--packages/libsee/Makefile99
-rw-r--r--packages/libsee/Makefile.fpc37
-rw-r--r--packages/libsee/Makefile.fpc.fpcmake2
-rw-r--r--packages/libsee/examples/Makefile82
-rw-r--r--packages/libsee/fpmake.pp2
-rw-r--r--packages/libtar/Makefile84
-rw-r--r--packages/libtar/Makefile.fpc37
-rw-r--r--packages/libtar/fpmake.pp3
-rw-r--r--packages/libvlc/Makefile98
-rw-r--r--packages/libvlc/Makefile.fpc35
-rw-r--r--packages/libvlc/fpmake.pp2
-rw-r--r--packages/libxml/Makefile99
-rw-r--r--packages/libxml/Makefile.fpc37
-rw-r--r--packages/libxml/Makefile.fpc.fpcmake2
-rw-r--r--packages/libxml/examples/Makefile55
-rw-r--r--packages/libxml/fpmake.pp4
-rw-r--r--packages/lua/Makefile99
-rw-r--r--packages/lua/Makefile.fpc37
-rw-r--r--packages/lua/Makefile.fpc.fpcmake2
-rw-r--r--packages/lua/fpmake.pp2
-rw-r--r--packages/mad/Makefile99
-rw-r--r--packages/mad/Makefile.fpc37
-rw-r--r--packages/mad/Makefile.fpc.fpcmake2
-rw-r--r--packages/mad/fpmake.pp2
-rw-r--r--packages/matroska/Makefile99
-rw-r--r--packages/matroska/Makefile.fpc37
-rw-r--r--packages/matroska/Makefile.fpc.fpcmake2
-rw-r--r--packages/modplug/Makefile99
-rw-r--r--packages/modplug/Makefile.fpc37
-rw-r--r--packages/modplug/Makefile.fpc.fpcmake2
-rw-r--r--packages/modplug/fpmake.pp2
-rw-r--r--packages/morphunits/Makefile2407
-rw-r--r--packages/morphunits/Makefile.fpc100
-rw-r--r--packages/morphunits/Makefile.fpc.fpcmake25
-rw-r--r--packages/morphunits/fpmake.pp60
-rw-r--r--packages/morphunits/src/agraphics.pas (renamed from rtl/morphos/graphics.pas)24
-rw-r--r--packages/morphunits/src/ahi.pas (renamed from rtl/morphos/ahi.pas)4
-rw-r--r--packages/morphunits/src/amigados.pas2164
-rw-r--r--packages/morphunits/src/amigalib.pas (renamed from rtl/morphos/aboxlib.pas)2
-rw-r--r--packages/morphunits/src/asl.pas (renamed from rtl/morphos/asl.pas)10
-rw-r--r--packages/morphunits/src/clipboard.pas (renamed from rtl/morphos/clipboard.pas)0
-rw-r--r--packages/morphunits/src/datatypes.pas (renamed from rtl/morphos/datatypes.pas)4
-rw-r--r--packages/morphunits/src/exec.pas2377
-rw-r--r--packages/morphunits/src/get9.pas (renamed from rtl/morphos/get9.pas)0
-rw-r--r--packages/morphunits/src/hardware.pas (renamed from rtl/morphos/hardware.pas)0
-rw-r--r--packages/morphunits/src/iffparse.pas319
-rw-r--r--packages/morphunits/src/inputevent.pas (renamed from rtl/morphos/inputevent.pas)0
-rw-r--r--packages/morphunits/src/intuition.pas (renamed from rtl/morphos/intuition.pas)61
-rw-r--r--packages/morphunits/src/keymap.pas (renamed from rtl/morphos/keymap.pas)0
-rw-r--r--packages/morphunits/src/kvm.pas (renamed from rtl/morphos/kvm.pp)2
-rw-r--r--packages/morphunits/src/layers.pas (renamed from rtl/morphos/layers.pas)2
-rw-r--r--packages/morphunits/src/mui.pas (renamed from rtl/morphos/mui.pas)2
-rw-r--r--packages/morphunits/src/muihelper.pas (renamed from rtl/morphos/muihelper.pas)2
-rw-r--r--packages/morphunits/src/timer.pas101
-rw-r--r--packages/morphunits/src/tinygl.pas (renamed from rtl/morphos/tinygl.pp)0
-rw-r--r--packages/morphunits/src/utility.pas366
-rw-r--r--packages/mysql/Makefile99
-rw-r--r--packages/mysql/Makefile.fpc37
-rw-r--r--packages/mysql/Makefile.fpc.fpcmake2
-rw-r--r--packages/mysql/examples/Makefile73
-rw-r--r--packages/mysql/fpmake.pp3
-rw-r--r--packages/ncurses/Makefile99
-rw-r--r--packages/ncurses/Makefile.fpc37
-rw-r--r--packages/ncurses/Makefile.fpc.fpcmake2
-rw-r--r--packages/ncurses/examples/Makefile73
-rw-r--r--packages/ncurses/fpmake.pp4
-rw-r--r--packages/ncurses/src/ncurses.pp31
-rw-r--r--packages/newt/Makefile99
-rw-r--r--packages/newt/Makefile.fpc37
-rw-r--r--packages/newt/Makefile.fpc.fpcmake2
-rw-r--r--packages/newt/examples/Makefile73
-rw-r--r--packages/newt/fpmake.pp2
-rw-r--r--packages/numlib/Makefile99
-rw-r--r--packages/numlib/Makefile.fpc37
-rw-r--r--packages/numlib/Makefile.fpc.fpcmake2
-rw-r--r--packages/numlib/examples/Makefile102
-rw-r--r--packages/numlib/examples/Makefile.fpc2
-rw-r--r--packages/numlib/fpmake.pp2
-rw-r--r--packages/nvapi/Makefile99
-rw-r--r--packages/nvapi/Makefile.fpc37
-rw-r--r--packages/nvapi/Makefile.fpc.fpcmake2
-rw-r--r--packages/nvapi/fpmake.pp2
-rw-r--r--packages/objcrtl/Makefile99
-rw-r--r--packages/objcrtl/Makefile.fpc37
-rw-r--r--packages/objcrtl/Makefile.fpc.fpcmake2
-rw-r--r--packages/objcrtl/fpmake.pp2
-rw-r--r--packages/odbc/Makefile99
-rw-r--r--packages/odbc/Makefile.fpc37
-rw-r--r--packages/odbc/Makefile.fpc.fpcmake2
-rw-r--r--packages/odbc/examples/Makefile73
-rw-r--r--packages/odbc/fpmake.pp2
-rw-r--r--packages/oggvorbis/Makefile99
-rw-r--r--packages/oggvorbis/Makefile.fpc37
-rw-r--r--packages/oggvorbis/Makefile.fpc.fpcmake2
-rw-r--r--packages/oggvorbis/fpmake.pp3
-rw-r--r--packages/openal/Makefile99
-rw-r--r--packages/openal/Makefile.fpc37
-rw-r--r--packages/openal/Makefile.fpc.fpcmake2
-rw-r--r--packages/openal/examples/Makefile88
-rw-r--r--packages/openal/fpmake.pp3
-rw-r--r--packages/opencl/Makefile99
-rw-r--r--packages/opencl/Makefile.fpc37
-rw-r--r--packages/opencl/Makefile.fpc.fpcmake2
-rw-r--r--packages/opencl/fpmake.pp2
-rw-r--r--packages/opengl/Makefile99
-rw-r--r--packages/opengl/Makefile.fpc37
-rw-r--r--packages/opengl/Makefile.fpc.fpcmake2
-rw-r--r--packages/opengl/examples/Makefile82
-rw-r--r--packages/opengl/fpmake.pp4
-rw-r--r--packages/opengles/Makefile99
-rw-r--r--packages/opengles/Makefile.fpc37
-rw-r--r--packages/opengles/Makefile.fpc.fpcmake2
-rw-r--r--packages/opengles/examples/Makefile82
-rw-r--r--packages/opengles/fpmake.pp2
-rw-r--r--packages/openssl/Makefile99
-rw-r--r--packages/openssl/Makefile.fpc37
-rw-r--r--packages/openssl/Makefile.fpc.fpcmake2
-rw-r--r--packages/openssl/fpmake.pp6
-rw-r--r--packages/openssl/src/openssl.pas21
-rw-r--r--packages/oracle/Makefile99
-rw-r--r--packages/oracle/Makefile.fpc37
-rw-r--r--packages/oracle/Makefile.fpc.fpcmake2
-rw-r--r--packages/oracle/examples/Makefile91
-rw-r--r--packages/oracle/fpmake.pp3
-rw-r--r--packages/os2units/Makefile99
-rw-r--r--packages/os2units/Makefile.fpc37
-rw-r--r--packages/os2units/Makefile.fpc.fpcmake2
-rw-r--r--packages/os2units/examples/Makefile73
-rw-r--r--packages/os2units/fpmake.pp4
-rw-r--r--packages/palmunits/Makefile99
-rw-r--r--packages/palmunits/Makefile.fpc37
-rw-r--r--packages/palmunits/Makefile.fpc.fpcmake2
-rw-r--r--packages/palmunits/fpmake.pp2
-rw-r--r--packages/pasjpeg/Makefile99
-rw-r--r--packages/pasjpeg/Makefile.fpc37
-rw-r--r--packages/pasjpeg/Makefile.fpc.fpcmake2
-rw-r--r--packages/pasjpeg/fpmake.pp4
-rw-r--r--packages/pastojs/Makefile324
-rw-r--r--packages/pastojs/Makefile.fpc37
-rw-r--r--packages/pastojs/fpmake.pp2
-rw-r--r--packages/paszlib/Makefile84
-rw-r--r--packages/paszlib/Makefile.fpc37
-rw-r--r--packages/paszlib/Makefile.fpc.fpcmake2
-rw-r--r--packages/paszlib/examples/Makefile58
-rw-r--r--packages/paszlib/fpmake.pp6
-rw-r--r--packages/paszlib/src/zbase.pas2
-rw-r--r--packages/paszlib/src/zipper.pp89
-rw-r--r--packages/pcap/Makefile99
-rw-r--r--packages/pcap/Makefile.fpc37
-rw-r--r--packages/pcap/Makefile.fpc.fpcmake2
-rw-r--r--packages/pcap/fpmake.pp2
-rw-r--r--packages/postgres/Makefile99
-rw-r--r--packages/postgres/Makefile.fpc37
-rw-r--r--packages/postgres/Makefile.fpc.fpcmake2
-rw-r--r--packages/postgres/examples/Makefile73
-rw-r--r--packages/postgres/fpmake.pp3
-rw-r--r--packages/proj4/Makefile99
-rw-r--r--packages/proj4/Makefile.fpc37
-rw-r--r--packages/proj4/Makefile.fpc.fpcmake2
-rw-r--r--packages/proj4/fpmake.pp2
-rw-r--r--packages/ptc/Makefile99
-rw-r--r--packages/ptc/Makefile.fpc37
-rw-r--r--packages/ptc/Makefile.fpc.fpcmake2
-rw-r--r--packages/ptc/examples/Makefile87
-rw-r--r--packages/ptc/examples/Makefile.fpc2
-rw-r--r--packages/ptc/fpmake.pp2
-rw-r--r--packages/pthreads/Makefile99
-rw-r--r--packages/pthreads/Makefile.fpc37
-rw-r--r--packages/pthreads/Makefile.fpc.fpcmake2
-rw-r--r--packages/pthreads/fpmake.pp4
-rw-r--r--packages/pxlib/Makefile99
-rw-r--r--packages/pxlib/Makefile.fpc37
-rw-r--r--packages/pxlib/Makefile.fpc.fpcmake2
-rw-r--r--packages/pxlib/examples/Makefile64
-rw-r--r--packages/pxlib/fpmake.pp4
-rw-r--r--packages/regexpr/Makefile99
-rw-r--r--packages/regexpr/Makefile.fpc37
-rw-r--r--packages/regexpr/Makefile.fpc.fpcmake2
-rw-r--r--packages/regexpr/examples/Makefile73
-rw-r--r--packages/regexpr/fpmake.pp4
-rw-r--r--packages/regexpr/src/regexpr.pas209
-rw-r--r--packages/rexx/Makefile99
-rw-r--r--packages/rexx/Makefile.fpc37
-rw-r--r--packages/rexx/Makefile.fpc.fpcmake2
-rw-r--r--packages/rexx/examples/Makefile73
-rw-r--r--packages/rexx/fpmake.pp2
-rw-r--r--packages/rtl-console/Makefile99
-rw-r--r--packages/rtl-console/Makefile.fpc37
-rw-r--r--packages/rtl-console/Makefile.fpc.fpcmake3
-rw-r--r--packages/rtl-console/fpmake.pp16
-rw-r--r--packages/rtl-console/src/amicommon/keyboard.pp632
-rw-r--r--packages/rtl-console/src/amicommon/mouse.pp (renamed from packages/rtl-console/src/morphos/mouse.pp)8
-rw-r--r--packages/rtl-console/src/amicommon/video.pp740
-rw-r--r--packages/rtl-console/src/amicommon/videodata.inc (renamed from packages/rtl-console/src/morphos/videodata.inc)0
-rw-r--r--packages/rtl-console/src/amiga/crt.pp (renamed from rtl/amiga/crt.pp)30
-rw-r--r--packages/rtl-console/src/go32v2/mouse.pp55
-rw-r--r--packages/rtl-console/src/go32v2/video.pp25
-rw-r--r--packages/rtl-console/src/inc/keybrdh.inc5
-rw-r--r--packages/rtl-console/src/morphos/keyboard.pp1170
-rw-r--r--packages/rtl-console/src/morphos/video.pp315
-rw-r--r--packages/rtl-console/src/win/crt.pp87
-rw-r--r--packages/rtl-extra/Makefile99
-rw-r--r--packages/rtl-extra/Makefile.fpc37
-rw-r--r--packages/rtl-extra/Makefile.fpc.fpcmake2
-rw-r--r--packages/rtl-extra/fpmake.pp24
-rw-r--r--packages/rtl-extra/src/amiga/sockets.pp271
-rw-r--r--packages/rtl-extra/src/aros/sockets.pp271
-rw-r--r--packages/rtl-extra/src/inc/sockets.inc18
-rw-r--r--packages/rtl-extra/src/inc/socketsh.inc31
-rw-r--r--packages/rtl-extra/src/inc/sockovl.inc79
-rw-r--r--packages/rtl-extra/src/unix/ipc.pp156
-rw-r--r--packages/rtl-objpas/Makefile99
-rw-r--r--packages/rtl-objpas/Makefile.fpc39
-rw-r--r--packages/rtl-objpas/Makefile.fpc.fpcmake2
-rw-r--r--packages/rtl-objpas/fpmake.pp18
-rw-r--r--packages/rtl-objpas/src/aros/varutils.pp38
-rw-r--r--packages/rtl-objpas/src/inc/variants.pp93
-rw-r--r--packages/rtl-unicode/Makefile2407
-rw-r--r--packages/rtl-unicode/Makefile.fpc100
-rw-r--r--packages/rtl-unicode/fpmake.pp9
-rw-r--r--packages/sdl/Makefile99
-rw-r--r--packages/sdl/Makefile.fpc37
-rw-r--r--packages/sdl/Makefile.fpc.fpcmake2
-rw-r--r--packages/sdl/fpmake.pp5
-rw-r--r--packages/sndfile/Makefile99
-rw-r--r--packages/sndfile/Makefile.fpc37
-rw-r--r--packages/sndfile/Makefile.fpc.fpcmake2
-rw-r--r--packages/sqlite/Makefile99
-rw-r--r--packages/sqlite/Makefile.fpc37
-rw-r--r--packages/sqlite/Makefile.fpc.fpcmake2
-rw-r--r--packages/sqlite/fpmake.pp3
-rw-r--r--packages/sqlite/src/sqlite3.inc174
-rw-r--r--packages/svgalib/Makefile99
-rw-r--r--packages/svgalib/Makefile.fpc37
-rw-r--r--packages/svgalib/Makefile.fpc.fpcmake2
-rw-r--r--packages/svgalib/examples/Makefile73
-rw-r--r--packages/svgalib/fpmake.pp4
-rw-r--r--packages/symbolic/Makefile99
-rw-r--r--packages/symbolic/Makefile.fpc37
-rw-r--r--packages/symbolic/Makefile.fpc.fpcmake2
-rw-r--r--packages/symbolic/examples/Makefile73
-rw-r--r--packages/symbolic/fpmake.pp3
-rw-r--r--packages/syslog/Makefile99
-rw-r--r--packages/syslog/Makefile.fpc37
-rw-r--r--packages/syslog/Makefile.fpc.fpcmake2
-rw-r--r--packages/syslog/examples/Makefile73
-rw-r--r--packages/syslog/fpmake.pp4
-rw-r--r--packages/tcl/Makefile99
-rw-r--r--packages/tcl/Makefile.fpc37
-rw-r--r--packages/tcl/Makefile.fpc.fpcmake2
-rw-r--r--packages/tcl/fpmake.pp3
-rw-r--r--packages/univint/Makefile99
-rw-r--r--packages/univint/Makefile.fpc37
-rw-r--r--packages/univint/Makefile.fpc.fpcmake2
-rw-r--r--packages/univint/examples/Makefile82
-rw-r--r--packages/univint/fpmake.pp2
-rw-r--r--packages/unixutil/Makefile99
-rw-r--r--packages/unixutil/Makefile.fpc37
-rw-r--r--packages/unixutil/Makefile.fpc.fpcmake2
-rw-r--r--packages/unixutil/fpmake.pp2
-rw-r--r--packages/unzip/Makefile99
-rw-r--r--packages/unzip/Makefile.fpc37
-rw-r--r--packages/unzip/Makefile.fpc.fpcmake2
-rw-r--r--packages/unzip/fpmake.pp4
-rw-r--r--packages/users/Makefile99
-rw-r--r--packages/users/Makefile.fpc37
-rw-r--r--packages/users/Makefile.fpc.fpcmake2
-rw-r--r--packages/users/examples/Makefile73
-rw-r--r--packages/users/fpmake.pp2
-rw-r--r--packages/utmp/Makefile99
-rw-r--r--packages/utmp/Makefile.fpc37
-rw-r--r--packages/utmp/Makefile.fpc.fpcmake2
-rw-r--r--packages/utmp/examples/Makefile73
-rw-r--r--packages/utmp/fpmake.pp4
-rw-r--r--packages/uuid/Makefile99
-rw-r--r--packages/uuid/Makefile.fpc37
-rw-r--r--packages/uuid/Makefile.fpc.fpcmake2
-rw-r--r--packages/uuid/examples/Makefile73
-rw-r--r--packages/uuid/fpmake.pp2
-rw-r--r--packages/winceunits/Makefile99
-rw-r--r--packages/winceunits/Makefile.fpc37
-rw-r--r--packages/winceunits/Makefile.fpc.fpcmake2
-rw-r--r--packages/winceunits/fpmake.pp4
-rw-r--r--packages/winunits-base/Makefile99
-rw-r--r--packages/winunits-base/Makefile.fpc37
-rw-r--r--packages/winunits-base/Makefile.fpc.fpcmake2
-rw-r--r--packages/winunits-base/fpmake.pp3
-rw-r--r--packages/winunits-base/src/activex.pp102
-rw-r--r--packages/winunits-base/src/shlobj.pp34
-rw-r--r--packages/winunits-base/src/stdole2.pas114
-rw-r--r--packages/winunits-base/src/typelib.pas27
-rw-r--r--packages/winunits-jedi/Makefile99
-rw-r--r--packages/winunits-jedi/Makefile.fpc37
-rw-r--r--packages/winunits-jedi/Makefile.fpc.fpcmake2
-rw-r--r--packages/winunits-jedi/fpmake.pp2
-rw-r--r--packages/x11/Makefile99
-rw-r--r--packages/x11/Makefile.fpc37
-rw-r--r--packages/x11/Makefile.fpc.fpcmake2
-rw-r--r--packages/x11/fpmake.pp5
-rw-r--r--packages/xforms/Makefile99
-rw-r--r--packages/xforms/Makefile.fpc37
-rw-r--r--packages/xforms/Makefile.fpc.fpcmake2
-rw-r--r--packages/xforms/examples/Makefile73
-rw-r--r--packages/xforms/fpmake.pp4
-rw-r--r--packages/zlib/Makefile99
-rw-r--r--packages/zlib/Makefile.fpc37
-rw-r--r--packages/zlib/Makefile.fpc.fpcmake2
-rw-r--r--packages/zlib/fpmake.pp3
-rw-r--r--packages/zorba/Makefile99
-rw-r--r--packages/zorba/Makefile.fpc37
-rw-r--r--packages/zorba/Makefile.fpc.fpcmake2
-rw-r--r--packages/zorba/fpmake.pp2
-rw-r--r--rtl/Makefile123
-rw-r--r--rtl/Makefile.fpc4
-rw-r--r--rtl/aix/Makefile49
-rw-r--r--rtl/aix/system.pp1
-rw-r--r--rtl/amicommon/README.TXT9
-rw-r--r--rtl/amicommon/classes.pp (renamed from rtl/amiga/classes.pp)5
-rw-r--r--rtl/amicommon/dos.pp (renamed from rtl/amiga/dos.pp)459
-rw-r--r--rtl/amicommon/osdebug.inc44
-rw-r--r--rtl/amicommon/osdebugh.inc18
-rw-r--r--rtl/amicommon/rtldefs.inc (renamed from rtl/amiga/rtldefs.inc)0
-rw-r--r--rtl/amicommon/sysdir.inc (renamed from rtl/amiga/sysdir.inc)27
-rw-r--r--rtl/amicommon/sysfile.inc (renamed from rtl/morphos/sysfile.inc)93
-rw-r--r--rtl/amicommon/sysheap.inc (renamed from rtl/amiga/sysheap.inc)18
-rw-r--r--rtl/amicommon/sysos.inc (renamed from rtl/amiga/sysos.inc)4
-rw-r--r--rtl/amicommon/sysosh.inc (renamed from rtl/amiga/sysosh.inc)6
-rw-r--r--rtl/amicommon/sysutils.pp (renamed from rtl/amiga/sysutils.pp)290
-rw-r--r--rtl/amiga/Makefile361
-rw-r--r--rtl/amiga/Makefile.fpc10
-rw-r--r--rtl/amiga/m68k/doslibf.inc121
-rw-r--r--rtl/amiga/m68k/execf.inc107
-rw-r--r--rtl/amiga/m68k/prt0.as63
-rw-r--r--rtl/amiga/m68k/utilf.inc4
-rw-r--r--rtl/amiga/powerpc/doslibf.inc20
-rw-r--r--rtl/amiga/sysfile.inc389
-rw-r--r--rtl/amiga/system.pp40
-rw-r--r--rtl/android/Makefile74
-rw-r--r--rtl/android/Makefile.fpc7
-rw-r--r--rtl/android/dlandroid.inc91
-rw-r--r--rtl/android/jvm/Makefile49
-rw-r--r--rtl/android/jvm/Makefile.fpc12
-rw-r--r--rtl/arm/arm.inc5
-rw-r--r--rtl/arm/divide.inc191
-rw-r--r--rtl/arm/thumb2.inc12
-rw-r--r--rtl/aros/Makefile2978
-rw-r--r--rtl/aros/Makefile.fpc235
-rw-r--r--rtl/aros/arosthreads.inc590
-rw-r--r--rtl/aros/doslibd.inc1371
-rw-r--r--rtl/aros/i386/doslibf.inc59
-rw-r--r--rtl/aros/i386/execd.inc1792
-rw-r--r--rtl/aros/i386/execf.inc89
-rw-r--r--rtl/aros/i386/prt0.as162
-rw-r--r--rtl/aros/i386/utild1.inc153
-rw-r--r--rtl/aros/i386/utild2.inc53
-rw-r--r--rtl/aros/i386/utilf.inc18
-rw-r--r--rtl/aros/system.pp465
-rw-r--r--rtl/aros/systemthreadh.inc2
-rw-r--r--rtl/aros/systhrd.inc359
-rw-r--r--rtl/aros/timerd.inc67
-rw-r--r--rtl/aros/tthread.inc161
-rw-r--r--rtl/atari/Makefile67
-rw-r--r--rtl/atari/sysfile.inc3
-rw-r--r--rtl/atari/system.pp1
-rw-r--r--rtl/beos/Makefile61
-rw-r--r--rtl/beos/system.pp3
-rw-r--r--rtl/bsd/ossysc.inc33
-rw-r--r--rtl/bsd/ostypes.inc60
-rw-r--r--rtl/bsd/sysctl.pp2
-rw-r--r--rtl/bsd/sysos.inc2
-rw-r--r--rtl/bsd/system.pp12
-rw-r--r--rtl/darwin/Makefile53
-rw-r--r--rtl/darwin/Makefile.fpc4
-rw-r--r--rtl/dragonfly/Makefile3023
-rw-r--r--rtl/dragonfly/Makefile.fpc263
-rw-r--r--rtl/dragonfly/buildrtl.pp20
-rw-r--r--rtl/dragonfly/console.pp3474
-rw-r--r--rtl/dragonfly/errno.inc143
-rw-r--r--rtl/dragonfly/errnostr.inc119
-rw-r--r--rtl/dragonfly/pmutext.inc18
-rw-r--r--rtl/dragonfly/pthread.inc121
-rw-r--r--rtl/dragonfly/ptypes.inc236
-rw-r--r--rtl/dragonfly/rtldefs.inc (renamed from rtl/morphos/rtldefs.inc)0
-rw-r--r--rtl/dragonfly/si_crt.pp (renamed from rtl/morphos/timer.pp)23
-rw-r--r--rtl/dragonfly/si_intf.inc7
-rw-r--r--rtl/dragonfly/sysctlh.inc898
-rw-r--r--rtl/dragonfly/sysnr.inc343
-rw-r--r--rtl/dragonfly/termio.pp39
-rw-r--r--rtl/dragonfly/termios.inc375
-rw-r--r--rtl/dragonfly/termiosproc.inc181
-rw-r--r--rtl/dragonfly/unxconst.inc112
-rw-r--r--rtl/dragonfly/unxfunc.inc57
-rw-r--r--rtl/dragonfly/unxsysc.inc91
-rw-r--r--rtl/dragonfly/x86_64/bsyscall.inc1
-rw-r--r--rtl/dragonfly/x86_64/cprt0.as198
-rw-r--r--rtl/dragonfly/x86_64/dllprt0.as70
-rw-r--r--rtl/dragonfly/x86_64/gprt0.as136
-rw-r--r--rtl/dragonfly/x86_64/prt0.as158
-rw-r--r--rtl/dragonfly/x86_64/si_c.inc92
-rw-r--r--rtl/dragonfly/x86_64/sighnd.inc54
-rw-r--r--rtl/dragonfly/x86_64/signal.inc201
-rw-r--r--rtl/embedded/Makefile43
-rw-r--r--rtl/embedded/heapmgr.pp2
-rw-r--r--rtl/embedded/system.pp11
-rw-r--r--rtl/emx/Makefile206
-rw-r--r--rtl/emx/Makefile.fpc4
-rw-r--r--rtl/emx/sysfile.inc4
-rw-r--r--rtl/emx/system.pas2
-rw-r--r--rtl/fpmake.inc2
-rw-r--r--rtl/fpmake.pp2
-rw-r--r--rtl/freebsd/Makefile55
-rw-r--r--rtl/freebsd/freebsd.pas43
-rw-r--r--rtl/freebsd/sysnr.inc3
-rw-r--r--rtl/freebsd/x86_64/gprt0.as2
-rw-r--r--rtl/gba/Makefile424
-rw-r--r--rtl/gba/Makefile.fpc2
-rw-r--r--rtl/gba/system.pp1
-rw-r--r--rtl/go32v2/Makefile55
-rw-r--r--rtl/go32v2/dos.pp2
-rw-r--r--rtl/go32v2/sysfile.inc1
-rw-r--r--rtl/go32v2/system.pp1
-rw-r--r--rtl/haiku/Makefile61
-rw-r--r--rtl/haiku/system.pp3
-rw-r--r--rtl/i386/int64p.inc197
-rw-r--r--rtl/i8086/i8086.inc4
-rw-r--r--rtl/inc/astrings.inc24
-rw-r--r--rtl/inc/charset.pp37
-rw-r--r--rtl/inc/compproc.inc6
-rw-r--r--rtl/inc/dynarr.inc84
-rw-r--r--rtl/inc/dynarrh.inc8
-rw-r--r--rtl/inc/exeinfo.pp2
-rw-r--r--rtl/inc/fexpand.inc9
-rw-r--r--rtl/inc/file.inc8
-rw-r--r--rtl/inc/generic.inc111
-rw-r--r--rtl/inc/genmath.inc321
-rw-r--r--rtl/inc/innr.inc2
-rw-r--r--rtl/inc/int64.inc13
-rw-r--r--rtl/inc/mathh.inc80
-rw-r--r--rtl/inc/objpash.inc20
-rw-r--r--rtl/inc/rtti.inc16
-rw-r--r--rtl/inc/rttih.inc18
-rw-r--r--rtl/inc/softfpu.pp219
-rw-r--r--rtl/inc/sstrings.inc2
-rw-r--r--rtl/inc/system.fpd2
-rw-r--r--rtl/inc/system.inc27
-rw-r--r--rtl/inc/systemh.inc21
-rw-r--r--rtl/inc/text.inc39
-rw-r--r--rtl/inc/tinyheap.inc544
-rw-r--r--rtl/inc/tnyheaph.inc32
-rw-r--r--rtl/inc/ustringh.inc4
-rw-r--r--rtl/inc/ustrings.inc46
-rw-r--r--rtl/inc/variant.inc5
-rw-r--r--rtl/inc/varianth.inc2
-rw-r--r--rtl/inc/wstringh.inc4
-rw-r--r--rtl/inc/wstrings.inc38
-rw-r--r--rtl/java/Makefile45
-rw-r--r--rtl/java/Makefile.fpc8
-rw-r--r--rtl/java/jcompproc.inc2
-rw-r--r--rtl/java/jsstrings.inc2
-rw-r--r--rtl/java/jsystem.inc48
-rw-r--r--rtl/java/jsystemh.inc16
-rw-r--r--rtl/java/jsystemh_types.inc5
-rw-r--r--rtl/java/justrings.inc2
-rw-r--r--rtl/linux/Makefile67
-rw-r--r--rtl/linux/arm/gprt0.as173
-rw-r--r--rtl/linux/buildrtl.lpi4
-rw-r--r--rtl/linux/i386/syscall.inc17
-rw-r--r--rtl/linux/m68k/prt0.as2
-rw-r--r--rtl/linux/mips/syscall.inc5
-rw-r--r--rtl/linux/osmacro.inc6
-rw-r--r--rtl/linux/ostypes.inc5
-rw-r--r--rtl/linux/system.pp1
-rw-r--r--rtl/m68k/m68k.inc177
-rw-r--r--rtl/macos/Makefile43
-rw-r--r--rtl/macos/sysfile.inc12
-rw-r--r--rtl/macos/system.pp1
-rw-r--r--rtl/mips/mips.inc187
-rw-r--r--rtl/mips/setjump.inc5
-rw-r--r--rtl/mips/setjumph.inc2
-rw-r--r--rtl/morphos/Makefile510
-rw-r--r--rtl/morphos/Makefile.fpc20
-rw-r--r--rtl/morphos/classes.pp50
-rw-r--r--rtl/morphos/dos.pp1016
-rw-r--r--rtl/morphos/doslib.pp136
-rw-r--r--rtl/morphos/doslibf.inc113
-rw-r--r--rtl/morphos/exec.pp51
-rw-r--r--rtl/morphos/sysdir.inc98
-rw-r--r--rtl/morphos/sysheap.inc51
-rw-r--r--rtl/morphos/sysos.inc176
-rw-r--r--rtl/morphos/system.pp31
-rw-r--r--rtl/morphos/sysutils.pp759
-rw-r--r--rtl/morphos/utilf.inc7
-rw-r--r--rtl/morphos/utility.pp52
-rw-r--r--rtl/msdos/Makefile49
-rw-r--r--rtl/msdos/prt0comn.asm23
-rw-r--r--rtl/msdos/sysfile.inc2
-rw-r--r--rtl/msdos/system.pp14
-rw-r--r--rtl/msdos/sysutils.pp6
-rw-r--r--rtl/nativent/Makefile49
-rw-r--r--rtl/nativent/buildrtl.pp2
-rw-r--r--rtl/nativent/sysfile.inc10
-rw-r--r--rtl/nativent/system.pp1
-rw-r--r--rtl/nds/Makefile424
-rw-r--r--rtl/nds/Makefile.fpc2
-rw-r--r--rtl/nds/sysfile.inc19
-rw-r--r--rtl/nds/system.pp6
-rw-r--r--rtl/nds/sysutils.pp27
-rw-r--r--rtl/netbsd/Makefile55
-rw-r--r--rtl/netbsd/pmutext.inc3
-rw-r--r--rtl/netbsd/pthread.inc4
-rw-r--r--rtl/netbsd/ptypes.inc6
-rw-r--r--rtl/netware/Makefile55
-rw-r--r--rtl/netware/sysfile.inc5
-rw-r--r--rtl/netware/system.pp1
-rw-r--r--rtl/netwlibc/Makefile55
-rw-r--r--rtl/netwlibc/sysfile.inc10
-rw-r--r--rtl/netwlibc/system.pp1
-rw-r--r--rtl/objpas/classes/classesh.inc19
-rw-r--r--rtl/objpas/classes/streams.inc26
-rw-r--r--rtl/objpas/classes/stringl.inc20
-rw-r--r--rtl/objpas/sysutils/dati.inc16
-rw-r--r--rtl/objpas/sysutils/filutil.inc6
-rw-r--r--rtl/objpas/sysutils/filutilh.inc13
-rw-r--r--rtl/objpas/sysutils/fina.inc11
-rw-r--r--rtl/objpas/sysutils/sysstr.inc24
-rw-r--r--rtl/objpas/sysutils/sysutils.inc4
-rw-r--r--rtl/objpas/types.pp12
-rw-r--r--rtl/objpas/unicodedata.pas9
-rw-r--r--rtl/openbsd/Makefile213
-rw-r--r--rtl/openbsd/Makefile.fpc17
-rw-r--r--rtl/openbsd/ptypes.inc57
-rw-r--r--rtl/openbsd/setsysnr.inc137
-rw-r--r--rtl/openbsd/sysnr.inc574
-rw-r--r--rtl/os2/Makefile224
-rw-r--r--rtl/os2/Makefile.fpc31
-rw-r--r--rtl/os2/dos.pas164
-rw-r--r--rtl/os2/doscall2.pas2236
-rw-r--r--rtl/os2/doscalls.pas609
-rw-r--r--rtl/os2/dynlibs.inc28
-rw-r--r--rtl/os2/os2def.pas1009
-rw-r--r--rtl/os2/sysdir.inc18
-rw-r--r--rtl/os2/sysfile.inc153
-rw-r--r--rtl/os2/sysheap.inc17
-rw-r--r--rtl/os2/sysos.inc33
-rw-r--r--rtl/os2/system.pas501
-rw-r--r--rtl/os2/systhrd.inc304
-rw-r--r--rtl/os2/sysucode.inc1654
-rw-r--r--rtl/os2/sysutils.pp400
-rw-r--r--rtl/os2/tthread.inc11
-rw-r--r--rtl/palmos/Makefile49
-rw-r--r--rtl/qnx/Makefile67
-rw-r--r--rtl/solaris/Makefile201
-rw-r--r--rtl/solaris/Makefile.fpc5
-rw-r--r--rtl/solaris/system.pp1
-rw-r--r--rtl/symbian/Makefile43
-rw-r--r--rtl/unix/baseunix.pp8
-rw-r--r--rtl/unix/cthreads.pp17
-rw-r--r--rtl/unix/cwstring.pp56
-rw-r--r--rtl/unix/dl.pp9
-rw-r--r--rtl/unix/initc.pp2
-rw-r--r--rtl/unix/syscall.pp8
-rw-r--r--rtl/unix/sysfile.inc7
-rw-r--r--rtl/unix/sysutils.pp6
-rw-r--r--rtl/unix/tthread.inc41
-rw-r--r--rtl/unix/unixcp.pp2
-rw-r--r--rtl/watcom/Makefile67
-rw-r--r--rtl/watcom/sysfile.inc1
-rw-r--r--rtl/watcom/system.pp1
-rw-r--r--rtl/wii/Makefile43
-rw-r--r--rtl/wii/system.pp1
-rw-r--r--rtl/win/sysfile.inc4
-rw-r--r--rtl/win/sysos.inc32
-rw-r--r--rtl/win/syswin.inc12
-rw-r--r--rtl/win/wininc/ascfun.inc6
-rw-r--r--rtl/win/wininc/defines.inc2
-rw-r--r--rtl/win/wininc/redef.inc4
-rw-r--r--rtl/win/wininc/struct.inc72
-rw-r--r--rtl/win/wininc/unifun.inc10
-rw-r--r--rtl/win32/Makefile55
-rw-r--r--rtl/win32/system.pp2
-rw-r--r--rtl/win64/Makefile55
-rw-r--r--rtl/win64/buildrtl.lpi73
-rw-r--r--rtl/win64/signals.pp1
-rw-r--r--rtl/win64/system.pp4
-rw-r--r--rtl/wince/Makefile201
-rw-r--r--rtl/wince/Makefile.fpc15
-rw-r--r--rtl/wince/system.pp1
-rw-r--r--rtl/wince/wininc/base.inc6
-rw-r--r--rtl/wince/wininc/coredll.inc1
-rw-r--r--rtl/x86_64/cpu.pp2
-rw-r--r--rtl/x86_64/math.inc92
-rw-r--r--tests/Makefile101
-rw-r--r--tests/Makefile.fpc69
-rw-r--r--tests/readme.txt4
-rw-r--r--tests/tbf/tb0249.pp8
-rw-r--r--tests/tbf/tb0250.pp22
-rw-r--r--tests/tbs/tb0162.pp9
-rw-r--r--tests/tbs/tb0524.pp6
-rw-r--r--tests/tbs/tb0608.pp9
-rw-r--r--tests/test/cpu16/i8086/tmmc.pp15
-rw-r--r--tests/test/cpu16/i8086/tmml.pp15
-rw-r--r--tests/test/cpu16/i8086/ttheap1.pp181
-rw-r--r--tests/test/jvm/testall.bat12
-rwxr-xr-xtests/test/jvm/testall.sh2
-rw-r--r--tests/test/jvm/tsetstring.pp32
-rw-r--r--tests/test/tcpstransistr2widechararray2.pp31
-rw-r--r--tests/test/tgenconstraint37.pp35
-rw-r--r--tests/test/tgenconstraint38.pp20
-rw-r--r--tests/test/tgenconstraint39.pp23
-rw-r--r--tests/test/tgenconstraint40.pp23
-rw-r--r--tests/test/tgeneric97.pp18
-rw-r--r--tests/test/tgeneric98.pp50
-rw-r--r--tests/test/thlp47.pp56
-rw-r--r--tests/test/thlp48.pp24
-rw-r--r--tests/test/tisorec1.pp2
-rw-r--r--tests/test/tisorec4.pp23
-rw-r--r--tests/test/tobjc41.pp24
-rw-r--r--tests/test/tthlp22.pp4
-rw-r--r--tests/test/units/math/troundm.pp174
-rw-r--r--tests/test/units/system/tfloatrecs.pp273
-rw-r--r--tests/test/units/system/tio.pp20
-rw-r--r--tests/test/units/sysutils/tencodingtest.pp5
-rw-r--r--tests/test/units/variants/tw26370.pp19
-rw-r--r--tests/test/units/variants/tw27044.pp28
-rw-r--r--tests/test/uobjc41.pp23
-rw-r--r--tests/tstunits/Makefile55
-rw-r--r--tests/utils/Makefile55
-rw-r--r--tests/utils/avx/asmtestgenerator.pas192
-rw-r--r--tests/utils/avx/avxopcodes.pas30
-rw-r--r--tests/utils/dbconfig.pp27
-rw-r--r--tests/utils/dbdigest.pp94
-rw-r--r--tests/utils/dbtests.pp288
-rw-r--r--tests/utils/dotest.pp53
-rw-r--r--tests/utils/libtar.pas28
-rw-r--r--tests/utils/prepup.pp40
-rw-r--r--tests/utils/redir.pp82
-rw-r--r--tests/utils/testsuite/Makefile87
-rw-r--r--tests/utils/testsuite/Makefile.fpc2
-rw-r--r--tests/utils/testsuite/testsuite.lpi348
-rw-r--r--tests/utils/testsuite/testsuite.pp2
-rw-r--r--tests/utils/testsuite/utests.pp198
-rw-r--r--tests/utils/testu.pp6
-rw-r--r--tests/webtbf/tw26456.pp16
-rw-r--r--tests/webtbf/tw26704.pp11
-rw-r--r--tests/webtbf/tw9039c.pp2
-rw-r--r--tests/webtbs/tw10247.pp5
-rw-r--r--tests/webtbs/tw10247b.pp3
-rw-r--r--tests/webtbs/tw11563.pp11
-rw-r--r--tests/webtbs/tw17904.pas4
-rw-r--r--tests/webtbs/tw19452.pp17
-rw-r--r--tests/webtbs/tw19452a.pp24
-rw-r--r--tests/webtbs/tw19622.pp34
-rw-r--r--tests/webtbs/tw21449.pp54
-rw-r--r--tests/webtbs/tw22376.pp26
-rw-r--r--tests/webtbs/tw23109.pp13
-rw-r--r--tests/webtbs/tw23212.pp2
-rw-r--r--tests/webtbs/tw24863.pp3
-rw-r--r--tests/webtbs/tw24872.pp23
-rw-r--r--tests/webtbs/tw25606.pp17
-rw-r--r--tests/webtbs/tw25916a.pp14
-rw-r--r--tests/webtbs/tw25916b.pp13
-rw-r--r--tests/webtbs/tw25917.pp34
-rw-r--r--tests/webtbs/tw26069.pp23
-rw-r--r--tests/webtbs/tw26075.pp35
-rw-r--r--tests/webtbs/tw26075b.pp35
-rw-r--r--tests/webtbs/tw26403.pp23
-rw-r--r--tests/webtbs/tw26467.pp19
-rw-r--r--tests/webtbs/tw26481.pp33
-rw-r--r--tests/webtbs/tw26482.pp25
-rw-r--r--tests/webtbs/tw26483.pp24
-rw-r--r--tests/webtbs/tw26536.pp40
-rw-r--r--tests/webtbs/tw26599.pp19
-rw-r--r--tests/webtbs/tw26615.pp29
-rw-r--r--tests/webtbs/tw26627.pp16
-rw-r--r--tests/webtbs/tw26668.pp34
-rw-r--r--tests/webtbs/tw26749.pp27
-rw-r--r--tests/webtbs/tw26773.pp161
-rw-r--r--tests/webtbs/tw26922.pp12
-rw-r--r--tests/webtbs/tw26976.pp17
-rw-r--r--tests/webtbs/tw26993.pp49
-rw-r--r--tests/webtbs/tw26993a.pp50
-rw-r--r--tests/webtbs/tw27029.pp11
-rw-r--r--tests/webtbs/tw27120.pp18
-rw-r--r--tests/webtbs/tw27153.pp3
-rw-r--r--tests/webtbs/tw27173.pp16
-rw-r--r--tests/webtbs/tw27185.pp99
-rw-r--r--tests/webtbs/tw27256.pp25
-rw-r--r--tests/webtbs/tw27294.pp26
-rw-r--r--tests/webtbs/tw27300a.pp22
-rw-r--r--tests/webtbs/tw8513.pp8
-rw-r--r--tests/webtbs/tw9162.pp4
-rw-r--r--tests/webtbs/tw9461.pp2
-rw-r--r--tests/webtbs/uw26922a.pp28
-rw-r--r--tests/webtbs/uw26922b.pp20
-rw-r--r--tests/webtbs/uw27294.pp28
-rw-r--r--utils/Makefile120
-rw-r--r--utils/Makefile.fpc72
-rw-r--r--utils/Makefile.fpc.fpcmake2
-rw-r--r--utils/debugsvr/Makefile98
-rw-r--r--utils/debugsvr/Makefile.fpc37
-rw-r--r--utils/debugsvr/console/Makefile73
-rw-r--r--utils/debugsvr/gtk/Makefile82
-rw-r--r--utils/delp.lpi66
-rw-r--r--utils/delp.pp137
-rw-r--r--utils/dxegen/Makefile98
-rw-r--r--utils/dxegen/Makefile.fpc37
-rw-r--r--utils/dxegen/fpmake.pp5
-rw-r--r--utils/fpcm/Makefile98
-rw-r--r--utils/fpcm/Makefile.fpc37
-rw-r--r--utils/fpcm/Makefile.fpmake.bs.template35
-rw-r--r--utils/fpcm/Makefile.fpmake.template35
-rw-r--r--utils/fpcm/fpcmake.inc806
-rw-r--r--utils/fpcm/fpcmake.ini24
-rw-r--r--utils/fpcm/fpcmmain.pp12
-rw-r--r--utils/fpcm/fpmake.pp17
-rw-r--r--utils/fpcm/revision.inc2
-rw-r--r--utils/fpcmkcfg/Makefile98
-rw-r--r--utils/fpcmkcfg/Makefile.fpc37
-rw-r--r--utils/fpcmkcfg/fpc.cft19
-rw-r--r--utils/fpcmkcfg/fpccfg.inc62
-rw-r--r--utils/fpcmkcfg/fpmake.pp8
-rw-r--r--utils/fpcres/Makefile98
-rw-r--r--utils/fpcres/Makefile.fpc37
-rw-r--r--utils/fpcres/fpcres.pas1
-rw-r--r--utils/fpcres/fpmake.pp7
-rw-r--r--utils/fpcres/target.pas2
-rw-r--r--utils/fpcreslipo/Makefile98
-rw-r--r--utils/fpcreslipo/Makefile.fpc37
-rw-r--r--utils/fpcreslipo/fpmake.pp5
-rw-r--r--utils/fpdoc/Makefile98
-rw-r--r--utils/fpdoc/Makefile.fpc37
-rw-r--r--utils/fpdoc/Makefile.fpc.fpcmake2
-rw-r--r--utils/fpdoc/dwlinear.pp2
-rw-r--r--utils/fpdoc/fpde/Makefile102
-rw-r--r--utils/fpdoc/fpde/Makefile.fpc2
-rw-r--r--utils/fpdoc/fpmake.pp8
-rw-r--r--utils/fpmake.pp10
-rw-r--r--utils/fpmc/Makefile98
-rw-r--r--utils/fpmc/Makefile.fpc37
-rw-r--r--utils/fpmc/fpmake.pp5
-rw-r--r--utils/fppkg/Makefile98
-rw-r--r--utils/fppkg/Makefile.fpc37
-rw-r--r--utils/fppkg/Makefile.fpc.fpcmake2
-rw-r--r--utils/fppkg/fpmake.pp5
-rw-r--r--utils/fppkg/fppkg.pp1
-rw-r--r--utils/fppkg/lnet/lcommon.pp10
-rw-r--r--utils/fppkg/lnet/lcontrolstack.pp62
-rw-r--r--utils/fppkg/lnet/lftp.pp5
-rw-r--r--utils/fppkg/lnet/ltelnet.pp84
-rw-r--r--utils/fprcp/Makefile98
-rw-r--r--utils/fprcp/Makefile.fpc37
-rw-r--r--utils/fprcp/fpmake.pp5
-rw-r--r--utils/h2pas/Makefile98
-rw-r--r--utils/h2pas/Makefile.fpc37
-rw-r--r--utils/h2pas/fpmake.pp7
-rw-r--r--utils/h2pas/h2pas.pas4
-rw-r--r--utils/h2pas/h2pas.y2
-rw-r--r--utils/h2pas/h2plexlib.pas30
-rw-r--r--utils/h2pas/h2poptions.pas4
-rw-r--r--utils/h2pas/h2pyacclib.pas2
-rw-r--r--utils/h2pas/scan.l1
-rw-r--r--utils/h2pas/scan.pas1
-rw-r--r--utils/importtl/Makefile98
-rw-r--r--utils/importtl/Makefile.fpc37
-rw-r--r--utils/importtl/fpmake.pp5
-rw-r--r--utils/instantfpc/Makefile98
-rw-r--r--utils/instantfpc/Makefile.fpc37
-rw-r--r--utils/instantfpc/Makefile.fpc.fpcmake2
-rw-r--r--utils/instantfpc/fpmake.pp5
-rw-r--r--utils/instantfpc/instantfptools.pas20
-rw-r--r--utils/mkinsadd.pp479
-rw-r--r--utils/mksymbian/Makefile98
-rw-r--r--utils/mksymbian/Makefile.fpc37
-rw-r--r--utils/pas2fpm/Makefile98
-rw-r--r--utils/pas2fpm/Makefile.fpc37
-rw-r--r--utils/pas2fpm/Makefile.fpc.fpcmake2
-rw-r--r--utils/pas2fpm/fpmake.pp5
-rw-r--r--utils/pas2jni/Makefile98
-rw-r--r--utils/pas2jni/Makefile.fpc37
-rw-r--r--utils/pas2jni/def.pas1
-rw-r--r--utils/pas2jni/fpmake.pp5
-rw-r--r--utils/pas2jni/ppuparser.pas18
-rw-r--r--utils/pas2jni/readme.txt66
-rw-r--r--utils/pas2jni/writer.pas128
-rw-r--r--utils/pas2js/Makefile436
-rw-r--r--utils/pas2js/Makefile.fpc39
-rw-r--r--utils/pas2js/fpmake.pp4
-rw-r--r--utils/pas2ut/Makefile98
-rw-r--r--utils/pas2ut/Makefile.fpc37
-rw-r--r--utils/pas2ut/Makefile.fpc.fpcmake2
-rw-r--r--utils/pas2ut/fpmake.pp5
-rw-r--r--utils/rmwait/Makefile98
-rw-r--r--utils/rmwait/Makefile.fpc37
-rw-r--r--utils/rmwait/fpmake.pp5
-rw-r--r--utils/tply/Makefile98
-rw-r--r--utils/tply/Makefile.fpc37
-rw-r--r--utils/tply/Makefile.fpc.fpcmake2
-rw-r--r--utils/tply/fpmake.pp8
-rw-r--r--utils/tply/lexbase.pas3
-rw-r--r--utils/tply/plex.pas33
-rw-r--r--utils/tply/pyacc.pas182
-rw-r--r--utils/tply/pyacc.y52
-rw-r--r--utils/tply/yaccbase.pas3
-rw-r--r--utils/unicode/Makefile98
-rw-r--r--utils/unicode/Makefile.fpc37
-rw-r--r--utils/unicode/fpmake.pp5
1792 files changed, 159923 insertions, 50909 deletions
diff --git a/Makefile b/Makefile
index d1ce86c134..dd789474f4 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2015-01-04 rev 29399]
#
default: help
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fpc
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
REQUIREDVERSION=2.6.4
REQUIREDVERSION2=2.6.2
ifndef inOS2
@@ -461,7 +467,7 @@ endif
endif
BuildOnlyBaseCPUs=jvm
ifneq ($(wildcard utils),)
-NOUTILSTARGETS=embedded gba $(BuildOnlyBaseCPUs)
+NOUTILSTARGETS=embedded gba msdos $(BuildOnlyBaseCPUs)
ifeq ($(findstring $(OS_TARGET),$(NOUTILSTARGETS)),)
ifdef BUILDFULLNATIVE
UTILS=1
@@ -537,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=compiler rtl utils packages ide installer
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=compiler rtl utils packages ide installer
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=compiler rtl utils packages ide installer
endif
@@ -624,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=compiler rtl utils packages ide installer
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=compiler rtl utils packages ide installer
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=compiler rtl utils packages ide installer
endif
@@ -678,6 +690,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=compiler rtl utils packages ide installer
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=compiler rtl utils packages ide installer
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=compiler rtl utils packages ide installer
endif
@@ -933,6 +948,12 @@ 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=
@@ -978,6 +999,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1442,8 +1468,8 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
-ifeq ($(CPU_TARGET),x86_64)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel),)
override FPCOPT+=-Cg
endif
endif
@@ -1472,17 +1498,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2008,6 +2040,14 @@ TARGET_DIRS_PACKAGES=1
TARGET_DIRS_IDE=1
TARGET_DIRS_INSTALLER=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_COMPILER=1
+TARGET_DIRS_RTL=1
+TARGET_DIRS_UTILS=1
+TARGET_DIRS_PACKAGES=1
+TARGET_DIRS_IDE=1
+TARGET_DIRS_INSTALLER=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_COMPILER=1
TARGET_DIRS_RTL=1
@@ -2240,6 +2280,14 @@ TARGET_DIRS_PACKAGES=1
TARGET_DIRS_IDE=1
TARGET_DIRS_INSTALLER=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_COMPILER=1
+TARGET_DIRS_RTL=1
+TARGET_DIRS_UTILS=1
+TARGET_DIRS_PACKAGES=1
+TARGET_DIRS_IDE=1
+TARGET_DIRS_INSTALLER=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_COMPILER=1
TARGET_DIRS_RTL=1
@@ -2384,6 +2432,14 @@ TARGET_DIRS_PACKAGES=1
TARGET_DIRS_IDE=1
TARGET_DIRS_INSTALLER=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_COMPILER=1
+TARGET_DIRS_RTL=1
+TARGET_DIRS_UTILS=1
+TARGET_DIRS_PACKAGES=1
+TARGET_DIRS_IDE=1
+TARGET_DIRS_INSTALLER=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_COMPILER=1
TARGET_DIRS_RTL=1
@@ -2726,14 +2782,14 @@ BUILDSTAMP=build-stamp.$(FULL_TARGET)
.PHONY: all clean distclean build buildbase install installbase
.PHONY: installother zipinstallbase zipinstallotherzipinstall
.PHONY: singlezipinstall versioncheckstartingcompiler
-versioncheckstartingcompiler:
+versioncheckstartingcompiler:
ifndef CROSSCOMPILE
ifneq ($(FPC_VERSION),$(REQUIREDVERSION))
ifneq ($(FPC_VERSION),$(REQUIREDVERSION2))
ifndef OVERRIDEVERSIONCHECK
- $(error The only supported starting compiler version is $(REQUIREDVERSION). You are trying to build with $(FPC_VERSION). If you are absolutely sure that the current compiler is built from the exact same version/revision, you can try to use OVERRIDEVERSIONCHECK=1 to override )
+ $(error The only supported starting compiler version is $(REQUIREDVERSION). You are trying to build with $(FPC_VERSION).)
else
- @$(ECHO) You have overriden the starting compiler versioncheck while using starting compiler version $(FPC_VERSION). This situation is not supported and strange things and errors may happen. Remove OVERRIDEVERSIONCHECK=1 to fix this.
+ @$(ECHO) You have overriden the starting compiler versioncheck while using starting compiler version $(FPC_VERSION). This situation is not supported and strange things and errors may happen. Remove OVERRIDEVERSIONCHECK=1 to fix this.
endif
endif
endif
diff --git a/Makefile.fpc b/Makefile.fpc
index 37a3788964..ab5799f147 100644
--- a/Makefile.fpc
+++ b/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fpc
-version=2.7.1
+version=3.1.1
[target]
dirs=compiler rtl utils packages ide installer
@@ -204,7 +204,7 @@ endif
BuildOnlyBaseCPUs=jvm
ifneq ($(wildcard utils),)
-NOUTILSTARGETS=embedded gba $(BuildOnlyBaseCPUs)
+NOUTILSTARGETS=embedded gba msdos $(BuildOnlyBaseCPUs)
ifeq ($(findstring $(OS_TARGET),$(NOUTILSTARGETS)),)
ifdef BUILDFULLNATIVE
UTILS=1
@@ -263,14 +263,14 @@ BUILDSTAMP=build-stamp.$(FULL_TARGET)
.PHONY: installother zipinstallbase zipinstallotherzipinstall
.PHONY: singlezipinstall versioncheckstartingcompiler
-versioncheckstartingcompiler:
+versioncheckstartingcompiler:
ifndef CROSSCOMPILE
ifneq ($(FPC_VERSION),$(REQUIREDVERSION))
ifneq ($(FPC_VERSION),$(REQUIREDVERSION2))
ifndef OVERRIDEVERSIONCHECK
- $(error The only supported starting compiler version is $(REQUIREDVERSION). You are trying to build with $(FPC_VERSION). If you are absolutely sure that the current compiler is built from the exact same version/revision, you can try to use OVERRIDEVERSIONCHECK=1 to override )
+ $(error The only supported starting compiler version is $(REQUIREDVERSION). You are trying to build with $(FPC_VERSION).)
else
- @$(ECHO) You have overriden the starting compiler versioncheck while using starting compiler version $(FPC_VERSION). This situation is not supported and strange things and errors may happen. Remove OVERRIDEVERSIONCHECK=1 to fix this.
+ @$(ECHO) You have overriden the starting compiler versioncheck while using starting compiler version $(FPC_VERSION). This situation is not supported and strange things and errors may happen. Remove OVERRIDEVERSIONCHECK=1 to fix this.
endif
endif
endif
diff --git a/compiler/Makefile b/compiler/Makefile
index a41b00864d..19be5a1b06 100644
--- a/compiler/Makefile
+++ b/compiler/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -326,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=compiler
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
unexport FPC_VERSION FPC_COMPILERINFO
CYCLETARGETS=i386 powerpc sparc arm x86_64 powerpc64 m68k armeb mipsel mips avr jvm i8086
ALLTARGETS=$(CYCLETARGETS)
@@ -525,7 +525,7 @@ override LOCALOPT+=-Fux86
endif
OPTWPOCOLLECT=-OWdevirtcalls,optvmts -FW$(BASEDIR)/pp1.wpo
OPTWPOPERFORM=-Owdevirtcalls,optvmts -Fw$(BASEDIR)/pp1.wpo
-ifneq ($(findstring $(OS_TARGET),darwin linux freebsd solaris),)
+ifneq ($(findstring $(OS_TARGET),darwin linux dragonfly freebsd solaris),)
ifdef LINKSMART
ifdef CREATESMART
OPTWPOCOLLECT+=-OWsymbolliveness -Xs-
@@ -614,6 +614,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=utils
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=utils
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=utils
endif
@@ -701,6 +704,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=utils
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=utils
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=utils
endif
@@ -839,6 +845,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=pp
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=pp
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=pp
endif
@@ -926,6 +935,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=pp
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=pp
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=pp
endif
@@ -1065,6 +1077,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
endif
@@ -1152,6 +1167,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(CPC_TARGET)
endif
@@ -1290,6 +1308,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
endif
@@ -1377,6 +1398,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_UNITDIR+=$(COMPILERSOURCEDIR)
endif
@@ -1515,6 +1539,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -1602,6 +1629,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -1740,6 +1770,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
endif
@@ -1827,6 +1860,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_UNITTARGETDIR+=$(CPU_UNITDIR)/units/$(FULL_TARGET)
endif
@@ -2138,6 +2174,12 @@ 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=
@@ -2183,6 +2225,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2604,6 +2651,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -2691,6 +2741,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -2911,7 +2964,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -3461,6 +3514,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_UTILS=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_UTILS=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_UTILS=1
endif
@@ -3548,6 +3604,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_UTILS=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_UTILS=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_UTILS=1
endif
diff --git a/compiler/Makefile.fpc b/compiler/Makefile.fpc
index f127ab66bb..61ac3c8880 100644
--- a/compiler/Makefile.fpc
+++ b/compiler/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=compiler
-version=2.7.1
+version=3.1.1
[target]
programs=pp
@@ -300,7 +300,7 @@ OPTWPOCOLLECT=-OWdevirtcalls,optvmts -FW$(BASEDIR)/pp1.wpo
OPTWPOPERFORM=-Owdevirtcalls,optvmts -Fw$(BASEDIR)/pp1.wpo
# symbol liveness WPO requires nm, smart linking and no stripping (the latter
# is forced by the Makefile when necessary)
-ifneq ($(findstring $(OS_TARGET),darwin linux freebsd solaris),)
+ifneq ($(findstring $(OS_TARGET),darwin linux dragonfly freebsd solaris),)
ifdef LINKSMART
ifdef CREATESMART
OPTWPOCOLLECT+=-OWsymbolliveness -Xs-
diff --git a/compiler/aarch64/a64att.inc b/compiler/aarch64/a64att.inc
index 21ac05204d..ad0b8050df 100644
--- a/compiler/aarch64/a64att.inc
+++ b/compiler/aarch64/a64att.inc
@@ -1,5 +1,6 @@
{ don't edit, this file is generated from armins.dat }
(
+'nop',
'b',
'cb',
'tb',
diff --git a/compiler/aarch64/a64atts.inc b/compiler/aarch64/a64atts.inc
index 61cfb8663c..6b59b55a9d 100644
--- a/compiler/aarch64/a64atts.inc
+++ b/compiler/aarch64/a64atts.inc
@@ -129,5 +129,6 @@ attsufNONE,
attsufNONE,
attsufNONE,
attsufNONE,
+attsufNONE,
attsufNONE
);
diff --git a/compiler/aarch64/a64ins.dat b/compiler/aarch64/a64ins.dat
index 32d9054933..34fae63c02 100644
--- a/compiler/aarch64/a64ins.dat
+++ b/compiler/aarch64/a64ins.dat
@@ -1,3 +1,5 @@
+[NOP]
+
[B]
[CB]
diff --git a/compiler/aarch64/a64op.inc b/compiler/aarch64/a64op.inc
index bbaec48632..05faf81ab9 100644
--- a/compiler/aarch64/a64op.inc
+++ b/compiler/aarch64/a64op.inc
@@ -1,5 +1,6 @@
{ don't edit, this file is generated from armins.dat }
(
+A_NOP,
A_B,
A_CB,
A_TB,
diff --git a/compiler/aarch64/cpuinfo.pas b/compiler/aarch64/cpuinfo.pas
index 5b27b8a3fa..d253ed77f4 100644
--- a/compiler/aarch64/cpuinfo.pas
+++ b/compiler/aarch64/cpuinfo.pas
@@ -21,6 +21,9 @@ Interface
Type
bestreal = double;
+{$if FPC_FULLVERSION>20700}
+ bestrealrec = TDoubleRec;
+{$endif FPC_FULLVERSION>20700}
ts32real = single;
ts64real = double;
ts80real = type extended;
@@ -47,6 +50,9 @@ Type
Const
+ { Is there support for dealing with multiple microcontrollers available }
+ { for this platform? }
+ ControllerSupport = false; (* Not yet at least ;-) *)
{# Size of native extended floating point type }
extended_size = 8;
{# Size of a multimedia register }
@@ -54,6 +60,15 @@ Const
{ target cpu string (used by compiler options) }
target_cpu_string = 'aarch64';
+ { 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:''; flashbase:0; flashsize:0; srambase:0; sramsize:0));
+ {$POP}
+
{ calling conventions supported by the code generator }
supported_calling_conventions : tproccalloptions = [
pocall_internproc,
diff --git a/compiler/aarch64/cpupara.pas b/compiler/aarch64/cpupara.pas
index 9812fc3db2..e8f6d753d7 100644
--- a/compiler/aarch64/cpupara.pas
+++ b/compiler/aarch64/cpupara.pas
@@ -124,7 +124,7 @@ unit cpupara;
orddef:
getparaloc:=LOC_REGISTER;
floatdef:
- getparaloc:=LOC_MMREGISTER
+ getparaloc:=LOC_MMREGISTER;
enumdef:
getparaloc:=LOC_REGISTER;
pointerdef:
diff --git a/compiler/aasmbase.pas b/compiler/aasmbase.pas
index 38c0c27458..3ad293ec61 100644
--- a/compiler/aasmbase.pas
+++ b/compiler/aasmbase.pas
@@ -62,6 +62,8 @@ interface
const
asmlabeltypeprefix : array[TAsmLabeltype] of char = ('j','a','d','l','f','t','c');
+ asmsymbindname : array[TAsmsymbind] of string = ('none', 'external','common',
+ 'local','global','weak external','private external','lazy','import');
type
TAsmSectiontype=(sec_none,
@@ -197,7 +199,7 @@ interface
function EncodeUleb128(a: qword;out buf) : byte;
function EncodeSleb128(a: int64;out buf) : byte;
- function ReplaceForbiddenAsmSymbolChars(const s: string): string;
+ function ReplaceForbiddenAsmSymbolChars(const s: ansistring): ansistring;
{ dummy default noop callback }
procedure default_global_used;
@@ -348,7 +350,7 @@ implementation
end;
- function ReplaceForbiddenAsmSymbolChars(const s: string): string;
+ function ReplaceForbiddenAsmSymbolChars(const s: ansistring): ansistring;
var
i : longint;
rchar: char;
diff --git a/compiler/aasmdata.pas b/compiler/aasmdata.pas
index b81272c957..001b66009a 100644
--- a/compiler/aasmdata.pas
+++ b/compiler/aasmdata.pas
@@ -122,8 +122,6 @@ interface
type
TAsmList = class(tlinkedlist)
constructor create;
- constructor create_without_marker;
- function empty : boolean;
function getlasttaifilepos : pfileposinfo;
end;
@@ -284,20 +282,6 @@ implementation
constructor TAsmList.create;
begin
inherited create;
- { make sure the optimizer won't remove the first tai of this list}
- insert(tai_marker.create(mark_BlockStart));
- end;
-
- constructor TAsmList.create_without_marker;
- begin
- inherited create;
- end;
-
- function TAsmList.empty : boolean;
- begin
- { there is always a mark_BlockStart available,
- see TAsmList.create }
- result:=(count<=1);
end;
@@ -422,6 +406,21 @@ implementation
internalerror(200603261);
end;
hp.typ:=_typ;
+ { Changing bind from AB_GLOBAL to AB_LOCAL is wrong
+ if bind is already AB_GLOBAL or AB_EXTERNAL,
+ GOT might have been used, so change might be harmful. }
+ if (_bind<>hp.bind) and (hp.getrefs>0) then
+ begin
+{$ifdef extdebug}
+ { the changes that matter must become internalerrors, the rest
+ should be ignored; a used cannot change anything about this,
+ so printing a warning/hint is not useful }
+ if (_bind=AB_LOCAL) then
+ Message3(asmw_w_changing_bind_type,s,asmsymbindname[hp.bind],asmsymbindname[_bind])
+ else
+ Message3(asmw_h_changing_bind_type,s,asmsymbindname[hp.bind],asmsymbindname[_bind]);
+{$endif extdebug}
+ end;
hp.bind:=_bind;
end
else
diff --git a/compiler/aasmtai.pas b/compiler/aasmtai.pas
index e0817beddd..841ce2555f 100644
--- a/compiler/aasmtai.pas
+++ b/compiler/aasmtai.pas
@@ -579,6 +579,8 @@ interface
constructor Create_type_name(_typ:taiconst_type;const name:string;_symtyp:Tasmsymtype;ofs:aint);
constructor Create_nil_codeptr;
constructor Create_nil_dataptr;
+ constructor Create_int_codeptr(_value: int64);
+ constructor Create_int_dataptr(_value: int64);
constructor ppuload(t:taitype;ppufile:tcompilerppufile);override;
procedure ppuwrite(ppufile:tcompilerppufile);override;
procedure derefimpl;override;
@@ -1748,6 +1750,18 @@ implementation
constructor tai_const.Create_nil_codeptr;
begin
+ self.Create_int_codeptr(0);
+ end;
+
+
+ constructor tai_const.Create_nil_dataptr;
+ begin
+ self.Create_int_dataptr(0);
+ end;
+
+
+ constructor tai_const.Create_int_codeptr(_value: int64);
+ begin
inherited Create;
typ:=ait_const;
{$ifdef i8086}
@@ -1759,11 +1773,11 @@ implementation
sym:=nil;
endsym:=nil;
symofs:=0;
- value:=0;
+ value:=_value;
end;
- constructor tai_const.Create_nil_dataptr;
+ constructor tai_const.Create_int_dataptr(_value: int64);
begin
inherited Create;
typ:=ait_const;
@@ -1776,7 +1790,7 @@ implementation
sym:=nil;
endsym:=nil;
symofs:=0;
- value:=0;
+ value:=_value;
end;
@@ -2173,7 +2187,10 @@ implementation
typ:=ait_stab;
stabtype:=_stabtype;
getmem(str,length(s)+1);
- move(s[1],str^,length(s)+1);
+ if length(s)>0 then
+ move(s[1],str^,length(s)+1)
+ else
+ str^:=#0;
end;
destructor tai_stab.destroy;
diff --git a/compiler/aggas.pas b/compiler/aggas.pas
index 2a882abf6f..52acf3b03f 100644
--- a/compiler/aggas.pas
+++ b/compiler/aggas.pas
@@ -843,7 +843,8 @@ implementation
asmwrite(ReplaceForbiddenAsmSymbolChars(tai_datablock(hp).sym.name));
asmwrite(',');
asmwrite(tostr(tai_datablock(hp).size)+',');
- asmwrite('_data.bss_');
+ asmwrite('_data.bss_,');
+ asmwriteln(tostr(last_align));
end;
end
else
@@ -1243,6 +1244,11 @@ implementation
end;
if tai_label(hp).labsym.bind in [AB_GLOBAL,AB_PRIVATE_EXTERN] then
begin
+{$ifdef arm}
+ { do no change arm mode accidently, .globl seems to reset the mode }
+ if GenerateThumbCode or GenerateThumb2Code then
+ AsmWriteln(#9'.thumb_func'#9);
+{$endif arm}
AsmWrite('.globl'#9);
if replaceforbidden then
AsmWriteLn(ReplaceForbiddenAsmSymbolChars(tai_label(hp).labsym.name))
@@ -1446,7 +1452,12 @@ implementation
begin
WriteDirectiveName(tai_directive(hp).directive);
if tai_directive(hp).name <>'' then
- AsmWrite(tai_directive(hp).name);
+ begin
+ if replaceforbidden then
+ AsmWrite(ReplaceForbiddenAsmSymbolChars(tai_directive(hp).name))
+ else
+ AsmWrite(tai_directive(hp).name);
+ end;
AsmLn;
end;
@@ -1712,7 +1723,7 @@ implementation
{ "no executable stack" marker }
{ TODO: used by OpenBSD/NetBSD as well? }
- if (target_info.system in (systems_linux + systems_android + systems_freebsd)) and
+ if (target_info.system in (systems_linux + systems_android + systems_freebsd + systems_dragonfly)) and
not(cs_executable_stack in current_settings.moduleswitches) then
begin
AsmWriteLn('.section .note.GNU-stack,"",%progbits');
diff --git a/compiler/agjasmin.pas b/compiler/agjasmin.pas
index c33747f422..10fee0677a 100644
--- a/compiler/agjasmin.pas
+++ b/compiler/agjasmin.pas
@@ -526,6 +526,8 @@ implementation
i: longint;
toplevelowner: tsymtable;
begin
+ superclass:=nil;
+
{ JVM 1.5+ }
AsmWriteLn('.bytecode 49.0');
// include files are not support by Java, and the directory of the main
@@ -763,6 +765,8 @@ implementation
2:result:=tostr(smallint(csym.value.valueord.svalue));
4:result:=tostr(longint(csym.value.valueord.svalue));
8:result:=tostr(csym.value.valueord.svalue);
+ else
+ internalerror(2014082050);
end;
conststring:
result:=constastr(pchar(csym.value.valueptr),csym.value.len);
diff --git a/compiler/alpha/cpuinfo.pas b/compiler/alpha/cpuinfo.pas
index 4779b4a73a..cdf5a4ac3f 100644
--- a/compiler/alpha/cpuinfo.pas
+++ b/compiler/alpha/cpuinfo.pas
@@ -21,6 +21,9 @@ Unit CPUInfo;
Interface
+uses
+ globtype;
+
Type
{ Natural integer register type and size for the target machine }
{$ifdef FPC}
@@ -38,6 +41,9 @@ Type
TConstPtrUInt = qword;
bestreal = extended;
+{$if FPC_FULLVERSION>20700}
+ bestrealrec = TExtended80Rec;
+{$endif FPC_FULLVERSION>20700}
ts32real = single;
ts64real = double;
ts80real = extended;
@@ -52,7 +58,15 @@ Type
ClassEV8
);
+ tcontrollertype =
+ (ct_none
+ );
+
+
Const
+ { Is there support for dealing with multiple microcontrollers available }
+ { for this platform? }
+ ControllerSupport = false;
{ Size of native extended type }
extended_size = 16;
{# Size of a pointer }
@@ -60,6 +74,15 @@ Const
{# Size of a multimedia register }
mmreg_size = 8;
+ { 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:''; flashbase:0; flashsize:0; srambase:0; sramsize:0));
+ {$POP}
+
{ target cpu string (used by compiler options) }
target_cpu_string = 'alpha';
diff --git a/compiler/aoptobj.pas b/compiler/aoptobj.pas
index 818310a259..619e24e0c5 100644
--- a/compiler/aoptobj.pas
+++ b/compiler/aoptobj.pas
@@ -1041,6 +1041,9 @@ Unit AoptObj;
Repeat
While Assigned(StartPai) And
((StartPai.typ in (SkipInstr - [ait_regAlloc])) Or
+{$if defined(MIPS) or defined(SPARC)}
+ ((startpai.typ=ait_instruction) and (taicpu(startpai).opcode=A_NOP)) or
+{$endif MIPS or SPARC}
((StartPai.typ = ait_label) and
Not(Tai_Label(StartPai).labsym.Is_Used))) Do
StartPai := Tai(StartPai.Next);
diff --git a/compiler/arm/aasmcpu.pas b/compiler/arm/aasmcpu.pas
index 58b8010226..1086f17867 100644
--- a/compiler/arm/aasmcpu.pas
+++ b/compiler/arm/aasmcpu.pas
@@ -212,7 +212,7 @@ uses
function is_same_reg_move(regtype: Tregistertype):boolean; override;
function spilling_get_operation_type(opnr: longint): topertype;override;
-
+ function spilling_get_operation_type_ref(opnr: longint; reg: tregister): topertype;override;
{ assembler }
public
{ the next will reset all instructions that can change in pass 2 }
@@ -777,6 +777,15 @@ implementation
end;
+ function taicpu.spilling_get_operation_type_ref(opnr: longint; reg: tregister): topertype;
+ begin
+ result := operand_read;
+ if (oper[opnr]^.ref^.base = reg) and
+ (oper[opnr]^.ref^.addressmode in [AM_PREINDEXED,AM_POSTINDEXED]) then
+ result := operand_readwrite;
+ end;
+
+
procedure BuildInsTabCache;
var
i : longint;
@@ -1055,15 +1064,16 @@ implementation
(tai(hp).typ=ait_instruction) then
begin
case taicpu(hp).opcode of
- A_BX,
+ A_MOV,
A_LDR,
A_ADD:
{ approximation if we hit a case jump table }
if ((taicpu(hp).opcode in [A_ADD,A_LDR]) and not(GenerateThumbCode or GenerateThumb2Code) and
(taicpu(hp).oper[0]^.typ=top_reg) and
(taicpu(hp).oper[0]^.reg=NR_PC)) or
- ((taicpu(hp).opcode=A_BX) and (GenerateThumbCode) and
- (taicpu(hp).oper[0]^.typ=top_reg))
+ ((taicpu(hp).opcode=A_MOV) and (GenerateThumbCode) and
+ (taicpu(hp).oper[0]^.typ=top_reg) and
+ (taicpu(hp).oper[0]^.reg=NR_PC))
then
begin
penalty:=multiplier;
@@ -1858,7 +1868,7 @@ implementation
ot:=OT_SHIFTEROP;
end;
else
- internalerror(200402261);
+ internalerror(2004022623);
end;
end;
end;
diff --git a/compiler/arm/aoptcpu.pas b/compiler/arm/aoptcpu.pas
index 229a63816f..2cca31ec52 100644
--- a/compiler/arm/aoptcpu.pas
+++ b/compiler/arm/aoptcpu.pas
@@ -30,7 +30,7 @@ Unit aoptcpu;
Interface
-uses cgbase, cpubase, aasmtai, aasmcpu,aopt, aoptobj;
+uses cgbase, cgutils, cpubase, aasmtai, aasmcpu,aopt, aoptobj;
Type
TCpuAsmOptimizer = class(TAsmOptimizer)
@@ -49,7 +49,8 @@ Type
change in program flow.
If there is none, it returns false and
sets p1 to nil }
- Function GetNextInstructionUsingReg(Current: tai; Var Next: tai;reg : TRegister): Boolean;
+ Function GetNextInstructionUsingReg(Current: tai; Out Next: tai; reg: TRegister): Boolean;
+ Function GetNextInstructionUsingRef(Current: tai; Out Next: tai; const ref: TReference; StopOnStore: Boolean = true): Boolean;
{ outputs a debug message into the assembler file }
procedure DebugMsg(const s: string; p: tai);
@@ -79,7 +80,7 @@ Implementation
cutils,verbose,globtype,globals,
systems,
cpuinfo,
- cgobj,cgutils,procinfo,
+ cgobj,procinfo,
aasmbase,aasmdata;
function CanBeCond(p : tai) : boolean;
@@ -317,15 +318,46 @@ Implementation
RegLoadedWithNewValue(reg,p);
end;
-
function TCpuAsmOptimizer.GetNextInstructionUsingReg(Current: tai;
- var Next: tai; reg: TRegister): Boolean;
+ Out 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)) or (RegInInstruction(NR_PC,Next));
+ until not (Result) or
+ not(cs_opt_level3 in current_settings.optimizerswitches) or
+ (Next.typ<>ait_instruction) or
+ RegInInstruction(reg,Next) or
+ is_calljmp(taicpu(Next).opcode) or
+ RegModifiedByInstruction(NR_PC,Next);
+ end;
+
+ function TCpuAsmOptimizer.GetNextInstructionUsingRef(Current: tai;
+ Out Next: tai; const ref: TReference; StopOnStore: Boolean = true): Boolean;
+ begin
+ Next:=Current;
+ repeat
+ Result:=GetNextInstruction(Next,Next);
+ if Result and
+ (Next.typ=ait_instruction) and
+ (taicpu(Next).opcode in [A_LDR, A_STR]) and
+ (
+ ((taicpu(Next).ops = 2) and
+ (taicpu(Next).oper[1]^.typ = top_ref) and
+ RefsEqual(taicpu(Next).oper[1]^.ref^,ref)) or
+ ((taicpu(Next).ops = 3) and { LDRD/STRD }
+ (taicpu(Next).oper[2]^.typ = top_ref) and
+ RefsEqual(taicpu(Next).oper[2]^.ref^,ref))
+ ) then
+ {We've found an instruction LDR or STR with the same reference}
+ exit;
+ until not(Result) or
+ (Next.typ<>ait_instruction) or
+ not(cs_opt_level3 in current_settings.optimizerswitches) or
+ is_calljmp(taicpu(Next).opcode) or
+ (StopOnStore and (taicpu(Next).opcode in [A_STR, A_STM])) or
+ RegModifiedByInstruction(NR_PC,Next);
+ Result:=false;
end;
{$ifdef DEBUG_AOPTCPU}
@@ -482,7 +514,8 @@ Implementation
hp1 : tai;
begin
Result:=false;
- if (p.oper[1]^.ref^.addressmode=AM_OFFSET) and
+ if (p.oper[1]^.typ = top_ref) and
+ (p.oper[1]^.ref^.addressmode=AM_OFFSET) and
(p.oper[1]^.ref^.index=NR_NO) and
(p.oper[1]^.ref^.offset=0) and
GetNextInstructionUsingReg(p, hp1, p.oper[1]^.ref^.base) and
@@ -538,6 +571,7 @@ Implementation
TmpUsedRegs: TAllUsedRegs;
tempop: tasmop;
oldreg: tregister;
+ dealloc: tai_regalloc;
function IsPowerOf2(const value: DWord): boolean; inline;
begin
@@ -607,12 +641,17 @@ Implementation
str reg1,ref
mov reg2,reg1
}
- if (taicpu(p).oper[1]^.ref^.addressmode=AM_OFFSET) and
+ if (taicpu(p).oper[1]^.typ = top_ref) and
+ (taicpu(p).oper[1]^.ref^.addressmode=AM_OFFSET) and
(taicpu(p).oppostfix=PF_None) and
- GetNextInstruction(p,hp1) and
- MatchInstruction(hp1, A_LDR, [taicpu(p).condition, C_None], [PF_None]) and
- RefsEqual(taicpu(p).oper[1]^.ref^,taicpu(hp1).oper[1]^.ref^) and
- (taicpu(hp1).oper[1]^.ref^.addressmode=AM_OFFSET) then
+ (taicpu(p).condition=C_None) and
+ GetNextInstructionUsingRef(p,hp1,taicpu(p).oper[1]^.ref^) and
+ MatchInstruction(hp1, A_LDR, [taicpu(p).condition], [PF_None]) and
+ (taicpu(hp1).oper[1]^.typ=top_ref) and
+ (taicpu(hp1).oper[1]^.ref^.addressmode=AM_OFFSET) and
+ not(RegModifiedBetween(taicpu(p).oper[0]^.reg, p, hp1)) and
+ ((taicpu(hp1).oper[1]^.ref^.index=NR_NO) or not (RegModifiedBetween(taicpu(hp1).oper[1]^.ref^.index, p, hp1))) and
+ ((taicpu(hp1).oper[1]^.ref^.base=NR_NO) or not (RegModifiedBetween(taicpu(hp1).oper[1]^.ref^.base, p, hp1))) then
begin
if taicpu(hp1).oper[0]^.reg=taicpu(p).oper[0]^.reg then
begin
@@ -633,7 +672,7 @@ Implementation
str reg1,ref
str reg2,ref
into
- strd reg1,ref
+ strd reg1,reg2,ref
}
else if (GenerateARMCode or GenerateThumb2Code) and
(CPUARM_HAS_EDSP in cpu_capabilities[current_settings.cputype]) and
@@ -654,6 +693,9 @@ Implementation
begin
DebugMsg('Peephole StrStr2Strd done', p);
taicpu(p).oppostfix:=PF_D;
+ taicpu(p).loadref(2,taicpu(p).oper[1]^.ref^);
+ taicpu(p).loadreg(1, taicpu(hp1).oper[0]^.reg);
+ taicpu(p).ops:=3;
asml.remove(hp1);
hp1.free;
result:=true;
@@ -667,7 +709,8 @@ Implementation
ldr reg2,ref
into ...
}
- if (taicpu(p).oper[1]^.ref^.addressmode=AM_OFFSET) and
+ if (taicpu(p).oper[1]^.typ = top_ref) and
+ (taicpu(p).oper[1]^.ref^.addressmode=AM_OFFSET) and
GetNextInstruction(p,hp1) and
{ ldrd is not allowed here }
MatchInstruction(hp1, A_LDR, [taicpu(p).condition, C_None], [taicpu(p).oppostfix,PF_None]-[PF_D]) then
@@ -700,7 +743,7 @@ Implementation
end
{
...
- ldrd reg1,ref
+ ldrd reg1,reg1+1,ref
}
else if (GenerateARMCode or GenerateThumb2Code) and
(CPUARM_HAS_EDSP in cpu_capabilities[current_settings.cputype]) and
@@ -718,6 +761,9 @@ Implementation
AlignedToQWord(taicpu(p).oper[1]^.ref^) then
begin
DebugMsg('Peephole LdrLdr2Ldrd done', p);
+ taicpu(p).loadref(2,taicpu(p).oper[1]^.ref^);
+ taicpu(p).loadreg(1, taicpu(hp1).oper[0]^.reg);
+ taicpu(p).ops:=3;
taicpu(p).oppostfix:=PF_D;
asml.remove(hp1);
hp1.free;
@@ -1200,6 +1246,7 @@ Implementation
(taicpu(p).oppostfix = PF_NONE) and
GetNextInstructionUsingReg(p, hp1, taicpu(p).oper[0]^.reg) and
MatchInstruction(hp1, [A_LDR, A_STR], [taicpu(p).condition], []) and
+ (taicpu(hp1).oper[1]^.typ = top_ref) and
{ We can change the base register only when the instruction uses AM_OFFSET }
((taicpu(hp1).oper[1]^.ref^.index = taicpu(p).oper[0]^.reg) or
((taicpu(hp1).oper[1]^.ref^.addressmode = AM_OFFSET) and
@@ -1222,6 +1269,13 @@ Implementation
if taicpu(hp1).oper[1]^.ref^.index = taicpu(p).oper[0]^.reg then
taicpu(hp1).oper[1]^.ref^.index := taicpu(p).oper[1]^.reg;
+ dealloc:=FindRegDeAlloc(taicpu(p).oper[1]^.reg, taicpu(p.Next));
+ if Assigned(dealloc) then
+ begin
+ asml.remove(dealloc);
+ asml.InsertAfter(dealloc,hp1);
+ end;
+
GetNextInstruction(p, hp1);
asml.remove(p);
p.free;
@@ -1583,13 +1637,14 @@ Implementation
and reg1,reg0,2^n-1
mov reg2,reg1, lsl imm1
=>
- mov reg2,reg1, lsl imm1
+ mov reg2,reg0, lsl imm1
if imm1>i
}
- else if i>32-taicpu(hp1).oper[2]^.shifterop^.shiftimm then
+ else if (i>32-taicpu(hp1).oper[2]^.shifterop^.shiftimm) and
+ not(RegModifiedBetween(taicpu(p).oper[1]^.reg, p, hp1)) then
begin
DebugMsg('Peephole AndLsl2Lsl done', p);
- taicpu(hp1).oper[1]^.reg:=taicpu(p).oper[0]^.reg;
+ taicpu(hp1).oper[1]^.reg:=taicpu(p).oper[1]^.reg;
GetNextInstruction(p, hp1);
asml.Remove(p);
p.free;
@@ -1616,6 +1671,7 @@ Implementation
while GetNextInstructionUsingReg(hp1, hp1, taicpu(p).oper[0]^.reg) and
{ we cannot check NR_DEFAULTFLAGS for modification yet so don't allow a condition }
MatchInstruction(hp1, [A_LDR, A_STR], [C_None], []) and
+ (taicpu(hp1).oper[1]^.typ = top_ref) and
(taicpu(hp1).oper[1]^.ref^.base=taicpu(p).oper[0]^.reg) and
{ don't optimize if the register is stored/overwritten }
(taicpu(hp1).oper[0]^.reg<>taicpu(p).oper[1]^.reg) and
@@ -2389,7 +2445,7 @@ Implementation
begin
result:=true;
- list:=TAsmList.create_without_marker;
+ list:=TAsmList.create;
p:=BlockStart;
while p<>BlockEnd Do
begin
@@ -2410,6 +2466,7 @@ Implementation
) or
{ try to prove that the memory accesses don't overlapp }
((taicpu(p).opcode in [A_STRB,A_STRH,A_STR]) and
+ (taicpu(p).oper[1]^.typ = top_ref) and
(taicpu(p).oper[1]^.ref^.base=taicpu(hp1).oper[1]^.ref^.base) and
(taicpu(p).oppostfix=PF_None) and
(taicpu(hp1).oppostfix=PF_None) and
@@ -2435,7 +2492,10 @@ Implementation
{ first instruction might not change the register used as index }
((taicpu(hp1).oper[1]^.ref^.index=NR_NO) or
not(RegModifiedByInstruction(taicpu(hp1).oper[1]^.ref^.index,p))
- ) then
+ ) and
+ { if we modify the basereg AND the first instruction used that reg, we can not schedule }
+ ((taicpu(hp1).oper[1]^.ref^.addressmode = AM_OFFSET) or
+ not(instructionLoadsFromReg(taicpu(hp1).oper[1]^.ref^.base,p))) then
begin
hp3:=tai(p.Previous);
hp5:=tai(p.next);
diff --git a/compiler/arm/aoptcpub.pas b/compiler/arm/aoptcpub.pas
index aa60bfd624..28451ca028 100644
--- a/compiler/arm/aoptcpub.pas
+++ b/compiler/arm/aoptcpub.pas
@@ -124,11 +124,14 @@ Implementation
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;
+ case taicpu(p1).oper[i]^.typ of
+ top_reg:
+ if (taicpu(p1).oper[i]^.reg=Reg) and (taicpu(p1).spilling_get_operation_type(i) in [operand_write,operand_readwrite]) then
+ exit(true);
+ top_ref:
+ if (taicpu(p1).spilling_get_operation_type_ref(i,Reg)<>operand_read) then
+ exit(true);
+ end;
end;
End.
diff --git a/compiler/arm/cgcpu.pas b/compiler/arm/cgcpu.pas
index a41aef9a0b..82884fae57 100644
--- a/compiler/arm/cgcpu.pas
+++ b/compiler/arm/cgcpu.pas
@@ -71,6 +71,8 @@ unit cgcpu;
procedure g_flags2reg(list: TAsmList; size: TCgSize; const f: TResFlags; reg: TRegister); override;
+ procedure g_profilecode(list : TAsmList); override;
+
procedure g_proc_entry(list : TAsmList;localsize : longint;nostackframe:boolean);override;
procedure g_proc_exit(list : TAsmList;parasize : longint;nostackframe:boolean); override;
procedure g_maybe_got_init(list : TAsmList); override;
@@ -182,6 +184,8 @@ unit cgcpu;
procedure g_adjust_self_value(list:TAsmList;procdef: tprocdef;ioffset: tcgint); override;
function handle_load_store(list: TAsmList; op: tasmop; oppostfix: toppostfix; reg: tregister; ref: treference): treference; override;
+
+ procedure g_external_wrapper(list : TAsmList; procdef : tprocdef; const externalname : string); override;
end;
tthumbcg64farm = class(tbasecg64farm)
@@ -1794,6 +1798,16 @@ unit cgcpu;
list.concat(setcondition(taicpu.op_reg_const(A_MOV,reg,0),inverse_cond(flags_to_cond(f))));
end;
+ procedure tbasecgarm.g_profilecode(list : TAsmList);
+ begin
+ if target_info.system = system_arm_linux then
+ begin
+ list.concat(taicpu.op_regset(A_PUSH,R_INTREGISTER,R_SUBWHOLE,[RS_R14]));
+ a_call_name(list,'__gnu_mcount_nc',false);
+ end
+ else
+ internalerror(2014091201);
+ end;
procedure tbasecgarm.g_proc_entry(list : TAsmList;localsize : longint;nostackframe:boolean);
var
@@ -3201,6 +3215,7 @@ unit cgcpu;
if (href.offset in [0..124]) and ((href.offset mod 4)=0) then
begin
list.concat(taicpu.op_regset(A_PUSH,R_INTREGISTER,R_SUBWHOLE,[RS_R0]));
+ list.concat(taicpu.op_reg_reg(A_MOV,NR_R0,NR_R12));
cg.a_load_ref_reg(list,OS_ADDR,OS_ADDR,href,NR_R0);
list.concat(taicpu.op_reg_reg(A_MOV,NR_R12,NR_R0));
list.concat(taicpu.op_regset(A_POP,R_INTREGISTER,R_SUBWHOLE,[RS_R0]));
@@ -3218,20 +3233,21 @@ unit cgcpu;
tmpref.symbol:=l;
tmpref.base:=NR_PC;
list.concat(taicpu.op_reg_ref(A_LDR,NR_R1,tmpref));
+ list.concat(taicpu.op_reg_reg(A_MOV,NR_R0,NR_R12));
href.offset:=0;
+ href.base:=NR_R0;
href.index:=NR_R1;
cg.a_load_ref_reg(list,OS_ADDR,OS_ADDR,href,NR_R0);
list.concat(taicpu.op_reg_reg(A_MOV,NR_R12,NR_R0));
list.concat(taicpu.op_regset(A_POP,R_INTREGISTER,R_SUBWHOLE,[RS_R0,RS_R1]));
end;
- list.concat(taicpu.op_reg_reg(A_MOV,NR_PC,NR_R12));
end
else
begin
reference_reset_base(href,NR_R12,tobjectdef(procdef.struct).vmtmethodoffset(procdef.extnumber),sizeof(pint));
cg.a_load_ref_reg(list,OS_ADDR,OS_ADDR,href,NR_R12);
- list.concat(taicpu.op_reg_reg(A_MOV,NR_PC,NR_R12));
end;
+ list.concat(taicpu.op_reg(A_BX,NR_R12));
end;
var
@@ -3248,6 +3264,9 @@ unit cgcpu;
if procdef.owner.symtabletype<>ObjectSymtable then
Internalerror(200109191);
+ if GenerateThumbCode or GenerateThumb2Code then
+ list.concat(tai_thumb_func.create);
+
make_global:=false;
if (not current_module.is_unit) or
create_smartlink or
@@ -3293,7 +3312,7 @@ unit cgcpu;
cg.a_load_ref_reg(list,OS_ADDR,OS_ADDR,tmpref,NR_R0);
list.concat(taicpu.op_reg_reg(A_MOV,NR_R12,NR_R0));
list.concat(taicpu.op_regset(A_POP,R_INTREGISTER,R_SUBWHOLE,[RS_R0]));
- list.concat(taicpu.op_reg_reg(A_MOV,NR_PC,NR_R12));
+ list.concat(taicpu.op_reg(A_BX,NR_R12));
end
else
list.concat(taicpu.op_sym(A_B,current_asmdata.RefAsmSymbol(procdef.mangledname)));
@@ -4050,18 +4069,36 @@ unit cgcpu;
tmpreg : TRegister;
begin
href:=ref;
- if (op in [A_STR,A_STRB,A_STRH]) and
- (abs(ref.offset)>124) then
- begin
- tmpreg:=getintregister(list,OS_ADDR);
- a_loadaddr_ref_reg(list,ref,tmpreg);
-
- reference_reset_base(href,tmpreg,0,ref.alignment);
- end
- else if (op=A_LDR) and
- (oppostfix in [PF_None]) and
- (ref.base<>NR_STACK_POINTER_REG) and
- (abs(ref.offset)>124) then
+ if { LDR/STR limitations }
+ (
+ (((op=A_LDR) and (oppostfix=PF_None)) or
+ ((op=A_STR) and (oppostfix=PF_None))) and
+ (ref.base<>NR_STACK_POINTER_REG) and
+ (abs(ref.offset)>124)
+ ) or
+ { LDRB/STRB limitations }
+ (
+ (((op=A_LDR) and (oppostfix=PF_B)) or
+ ((op=A_LDRB) and (oppostfix=PF_None)) or
+ ((op=A_STR) and (oppostfix=PF_B)) or
+ ((op=A_STRB) and (oppostfix=PF_None))) and
+ ((ref.base=NR_STACK_POINTER_REG) or
+ (ref.index=NR_STACK_POINTER_REG) or
+ (abs(ref.offset)>31)
+ )
+ ) or
+ { LDRH/STRH limitations }
+ (
+ (((op=A_LDR) and (oppostfix=PF_H)) or
+ ((op=A_LDRH) and (oppostfix=PF_None)) or
+ ((op=A_STR) and (oppostfix=PF_H)) or
+ ((op=A_STRH) and (oppostfix=PF_None))) and
+ ((ref.base=NR_STACK_POINTER_REG) or
+ (ref.index=NR_STACK_POINTER_REG) or
+ (abs(ref.offset)>62) or
+ ((abs(ref.offset) mod 2)<>0)
+ )
+ ) then
begin
tmpreg:=getintregister(list,OS_ADDR);
a_loadaddr_ref_reg(list,ref,tmpreg);
@@ -4274,6 +4311,32 @@ unit cgcpu;
end;
+ procedure tthumbcgarm.g_external_wrapper(list: TAsmList; procdef: tprocdef; const externalname: string);
+ var
+ tmpref : treference;
+ l : tasmlabel;
+ begin
+ { there is no branch instruction on thumb which allows big distances and which leaves LR as it is
+ and which allows to switch the instruction set }
+
+ { create const entry }
+ reference_reset(tmpref,4);
+ current_asmdata.getjumplabel(l);
+ tmpref.symbol:=l;
+ tmpref.base:=NR_PC;
+ list.concat(taicpu.op_regset(A_PUSH,R_INTREGISTER,R_SUBWHOLE,[RS_R0]));
+ list.concat(taicpu.op_reg_ref(A_LDR,NR_R0,tmpref));
+ list.concat(taicpu.op_reg_reg(A_MOV,NR_R12,NR_R0));
+ list.concat(taicpu.op_regset(A_POP,R_INTREGISTER,R_SUBWHOLE,[RS_R0]));
+ list.concat(taicpu.op_reg(A_BX,NR_R12));
+
+ { append const entry }
+ list.Concat(tai_align.Create(4));
+ list.Concat(tai_label.create(l));
+ list.concat(tai_const.Create_sym(current_asmdata.RefAsmSymbol(externalname)));
+ end;
+
+
procedure tthumb2cgarm.init_register_allocators;
begin
inherited init_register_allocators;
diff --git a/compiler/arm/cpuelf.pas b/compiler/arm/cpuelf.pas
index f42ea3d9fd..c912955f89 100644
--- a/compiler/arm/cpuelf.pas
+++ b/compiler/arm/cpuelf.pas
@@ -561,6 +561,7 @@ implementation
rotation:longint;
residual,g_n:longword;
curloc: aword;
+ bit_S,bit_I1,bit_I2: aint;
begin
data:=objsec.data;
for i:=0 to objsec.ObjRelocations.Count-1 do
@@ -660,7 +661,16 @@ implementation
2) when target is unresolved weak symbol, CALL must be changed to NOP,
while JUMP24 behavior is unspecified. }
tmp:=sarlongint((address and $00FFFFFF) shl 8,6);
- tmp:=tmp+relocval-curloc;
+ tmp:=tmp+relocval;
+ if odd(tmp) then { dest is Thumb? }
+ begin
+ if (reltyp=R_ARM_CALL) then
+ { change BL to BLX, dest bit 1 goes to instruction bit 24 }
+ address:=(address and $FE000000) or (((tmp-curloc) and 2) shl 23) or $10000000
+ else
+ InternalError(2014092001);
+ end;
+ tmp:=tmp-curloc;
// TODO: check overflow
address:=(address and $FF000000) or ((tmp and $3FFFFFE) shr 2);
end;
@@ -829,6 +839,38 @@ implementation
address:=address or (1 shl 23);
end;
+ R_ARM_THM_CALL:
+ begin
+ if (not ElfTarget.relocs_use_addend) then
+ begin
+ address:=((address and $ffff) shl 16) or word(address shr 16);
+ bit_S:=(address shr 26) and 1;
+ bit_I1:=(bit_S xor ((address shr 13) and 1)) xor 1;
+ bit_I2:=(bit_S xor ((address shr 11) and 1)) xor 1;
+ tmp:=((-bit_S) shl 24) or (bit_I1 shl 23) or (bit_I2 shl 22) or (((address shr 16) and $3ff) shl 12) or ((address and $7ff) shl 1);
+ end
+ else { TODO: must read the instruction anyway }
+ tmp:=address;
+ tmp:=tmp+relocval; { dest address }
+ if odd(tmp) then { if it's Thumb code, change possible BLX to BL }
+ address:=address or $1800;
+ tmp:=tmp-curloc; { now take PC-relative }
+ { TODO: overflow check, different limit for Thumb and Thumb-2 }
+
+ { now encode this mess back }
+ if (address and $5000)=$4000 then
+ tmp:=(tmp+2) and (not 3);
+
+ bit_S:=(tmp shr 31) and 1;
+ address:=(address and $F800D000) or
+ (bit_S shl 26) or
+ (((tmp shr 12) and $3ff) shl 16) or
+ ((tmp shr 1) and $7FF) or
+ ((((tmp shr 23) and 1) xor 1 xor bit_S) shl 13) or
+ ((((tmp shr 22) and 1) xor 1 xor bit_S) shl 11);
+ address:=((address and $ffff) shl 16) or word(address shr 16);
+ end;
+
R_ARM_TLS_IE32:
begin
relocval:=relocval-tlsseg.mempos+align_aword(TCB_SIZE,tlsseg.align);
diff --git a/compiler/arm/cpuinfo.pas b/compiler/arm/cpuinfo.pas
index 52277fccea..05ea89d9e3 100644
--- a/compiler/arm/cpuinfo.pas
+++ b/compiler/arm/cpuinfo.pas
@@ -21,6 +21,9 @@ Interface
Type
bestreal = double;
+{$if FPC_FULLVERSION>20700}
+ bestrealrec = TDoubleRec;
+{$endif FPC_FULLVERSION>20700}
ts32real = single;
ts64real = double;
ts80real = type extended;
@@ -338,8 +341,10 @@ Type
ct_thumb2bare
);
-
Const
+ { Is there support for dealing with multiple microcontrollers available }
+ { for this platform? }
+ ControllerSupport = true;
{# Size of native extended floating point type }
extended_size = 12;
{# Size of a multimedia register }
diff --git a/compiler/arm/narmadd.pas b/compiler/arm/narmadd.pas
index 7083067a42..4e26f71736 100644
--- a/compiler/arm/narmadd.pas
+++ b/compiler/arm/narmadd.pas
@@ -85,6 +85,8 @@ interface
GetResFlags:=F_LT;
gten:
GetResFlags:=F_LE;
+ else
+ internalerror(201408203);
end
else
case NodeType of
@@ -96,6 +98,8 @@ interface
GetResFlags:=F_GT;
gten:
GetResFlags:=F_GE;
+ else
+ internalerror(201408204);
end;
end
else
@@ -110,6 +114,8 @@ interface
GetResFlags:=F_CC;
gten:
GetResFlags:=F_LS;
+ else
+ internalerror(201408205);
end
else
case NodeType of
@@ -121,6 +127,8 @@ interface
GetResFlags:=F_HI;
gten:
GetResFlags:=F_CS;
+ else
+ internalerror(201408206);
end;
end;
end;
@@ -144,6 +152,8 @@ interface
result:=F_GT;
gten:
result:=F_GE;
+ else
+ internalerror(201408207);
end;
end;
@@ -379,13 +389,13 @@ interface
tmpreg:=cg.getintregister(current_asmdata.CurrAsmList,location.size);
if right.location.loc = LOC_CONSTANT then
begin
- current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg_const(A_AND,tmpreg,left.location.register,right.location.value));
+ cg.a_op_const_reg_reg(current_asmdata.CurrAsmList,OP_AND,OS_32,right.location.value,left.location.register,tmpreg);
cg.a_reg_alloc(current_asmdata.CurrAsmList,NR_DEFAULTFLAGS);
current_asmdata.CurrAsmList.concat(taicpu.op_reg_const(A_CMP,tmpreg,right.location.value));
end
else
begin
- current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg_reg(A_AND,tmpreg,left.location.register,right.location.register));
+ cg.a_op_reg_reg_reg(current_asmdata.CurrAsmList,OP_AND,OS_32,left.location.register,right.location.register,tmpreg);
cg.a_reg_alloc(current_asmdata.CurrAsmList,NR_DEFAULTFLAGS);
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_CMP,tmpreg,right.location.register));
end;
@@ -403,6 +413,8 @@ interface
oldnodetype : tnodetype;
dummyreg : tregister;
l: tasmlabel;
+ const
+ lt_zero_swapped: array[boolean] of tnodetype = (ltn, gtn);
begin
unsigned:=not(is_signed(left.resultdef)) or
not(is_signed(right.resultdef));
@@ -411,20 +423,34 @@ interface
{ pass_left_right moves possible consts to the right, the only
remaining case with left consts (currency) can take this path too (KB) }
- if (nodetype in [equaln,unequaln]) and
- (right.nodetype=ordconstn) and (tordconstnode(right).value=0) then
+ if (right.nodetype=ordconstn) and
+ (tordconstnode(right).value=0) and
+ ((nodetype in [equaln,unequaln]) or
+ (not(GenerateThumbCode) and is_signed(left.resultdef) and (nodetype = lt_zero_swapped[nf_swapped in Flags]))
+ ) then
begin
location_reset(location,LOC_FLAGS,OS_NO);
- location.resflags:=getresflags(unsigned);
if not(left.location.loc in [LOC_CREGISTER,LOC_REGISTER]) then
hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,true);
- dummyreg:=cg.getintregister(current_asmdata.CurrAsmList,location.size);
- cg.a_reg_alloc(current_asmdata.CurrAsmList,NR_DEFAULTFLAGS);
- if GenerateThumbCode then
- cg.a_op_reg_reg_reg(current_asmdata.CurrAsmList,OP_OR,OS_32,left.location.register64.reglo,left.location.register64.reghi,dummyreg)
+ cg.a_reg_alloc(current_asmdata.CurrAsmList,NR_DEFAULTFLAGS);
+ { Optimize for the common case of int64 < 0 }
+ if nodetype in [ltn, gtn] then
+ begin
+ {Just check for the MSB in reghi to be set or not, this is independed from nf_swapped}
+ location.resflags:=F_NE;
+ current_asmdata.CurrAsmList.concat(taicpu.op_reg_const(A_TST,left.location.register64.reghi, aint($80000000)));
+ end
else
- current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg_reg(A_ORR,dummyreg,left.location.register64.reglo,left.location.register64.reghi),PF_S));
+ begin
+ location.resflags:=getresflags(unsigned);
+ dummyreg:=cg.getintregister(current_asmdata.CurrAsmList,location.size);
+
+ if GenerateThumbCode then
+ cg.a_op_reg_reg_reg(current_asmdata.CurrAsmList,OP_OR,OS_32,left.location.register64.reglo,left.location.register64.reghi,dummyreg)
+ else
+ current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg_reg(A_ORR,dummyreg,left.location.register64.reglo,left.location.register64.reghi),PF_S));
+ end;
end
else
begin
diff --git a/compiler/arm/narmset.pas b/compiler/arm/narmset.pas
index 35b34321a3..e1a99f2dbb 100644
--- a/compiler/arm/narmset.pas
+++ b/compiler/arm/narmset.pas
@@ -141,6 +141,7 @@ implementation
procedure tarmcasenode.genjumptable(hp : pcaselabel;min_,max_ : aint);
var
last : TConstExprInt;
+ tmpreg,
basereg,
indexreg : tregister;
href : treference;
@@ -222,7 +223,7 @@ implementation
begin
if cs_create_pic in current_settings.moduleswitches then
internalerror(2013082102);
- cg.a_op_const_reg_reg(current_asmdata.CurrAsmList,OP_SUB,OS_ADDR,min_+1,indexreg,indexreg);
+ cg.a_op_const_reg_reg(current_asmdata.CurrAsmList,OP_SUB,OS_ADDR,min_,indexreg,indexreg);
current_asmdata.getaddrlabel(tablelabel);
cg.a_op_const_reg(current_asmdata.CurrAsmList,OP_SHL,OS_ADDR,2,indexreg);
@@ -231,9 +232,15 @@ implementation
reference_reset_symbol(href,tablelabel,0,4);
cg.a_loadaddr_ref_reg(current_asmdata.CurrAsmList, href, basereg);
- cg.a_op_reg_reg(current_asmdata.CurrAsmList, OP_ADD, OS_ADDr, indexreg, basereg);
-
- current_asmdata.CurrAsmList.Concat(taicpu.op_reg(A_BX, basereg));
+ reference_reset(href,0);
+ href.base:=basereg;
+ href.index:=indexreg;
+
+ tmpreg:=cg.getintregister(current_asmdata.CurrAsmList, OS_ADDR);
+ cg.a_load_ref_reg(current_asmdata.CurrAsmList, OS_ADDR, OS_ADDR, href, tmpreg);
+
+ { do not use BX here to avoid switching into arm mode }
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg_reg(A_MOV, NR_PC, tmpreg));
cg.a_label(current_asmdata.CurrAsmList,tablelabel);
{ generate jump table }
diff --git a/compiler/arm/raarmgas.pas b/compiler/arm/raarmgas.pas
index 64f330a213..e7de7b8d71 100644
--- a/compiler/arm/raarmgas.pas
+++ b/compiler/arm/raarmgas.pas
@@ -1043,6 +1043,7 @@ Unit raarmgas;
hreg : tregister;
flags : tspecialregflags;
begin
+ hreg:=NR_NO;
case actasmtoken of
AS_REGISTER:
begin
diff --git a/compiler/arm/rgcpu.pas b/compiler/arm/rgcpu.pas
index fdb9e0df9e..ca55f59f2c 100644
--- a/compiler/arm/rgcpu.pas
+++ b/compiler/arm/rgcpu.pas
@@ -290,6 +290,10 @@ unit rgcpu;
if abs(spilltemp.offset)>4095 then
exit;
+ { ldr can't set the flags }
+ if instr.oppostfix=PF_S then
+ exit;
+
if GenerateThumbCode and
(abs(spilltemp.offset)>1020) then
exit;
@@ -304,6 +308,11 @@ unit rgcpu;
(get_alias(getsupreg(oper[0]^.reg))=orgreg) and
(get_alias(getsupreg(oper[1]^.reg))<>orgreg) then
begin
+ { do not replace if we're on Thumb, ldr/str cannot be used with rX>r7 }
+ if GenerateThumbCode and
+ (getsupreg(oper[1]^.reg)>RS_R7) then
+ exit;
+
{ str expects the register in oper[0] }
instr.loadreg(0,oper[1]^.reg);
instr.loadref(1,spilltemp);
@@ -314,6 +323,11 @@ unit rgcpu;
(get_alias(getsupreg(oper[1]^.reg))=orgreg) and
(get_alias(getsupreg(oper[0]^.reg))<>orgreg) then
begin
+ { do not replace if we're on Thumb, ldr/str cannot be used with rX>r7 }
+ if GenerateThumbCode and
+ (getsupreg(oper[0]^.reg)>RS_R7) then
+ exit;
+
instr.loadref(1,spilltemp);
opcode:=A_LDR;
result:=true;
diff --git a/compiler/assemble.pas b/compiler/assemble.pas
index 609877e342..f3539291b9 100644
--- a/compiler/assemble.pas
+++ b/compiler/assemble.pas
@@ -1736,7 +1736,8 @@ Implementation
if not(tf_section_threadvars in target_info.flags) then
exclude(to_do,al_threadvars);
for i:=low(TasmlistType) to high(TasmlistType) do
- if (i in to_do) and (current_asmdata.asmlists[i]<>nil) then
+ if (i in to_do) and (current_asmdata.asmlists[i]<>nil) and
+ (not current_asmdata.asmlists[i].empty) then
addlist(current_asmdata.asmlists[i]);
if SmartAsm then
diff --git a/compiler/avr/aasmcpu.pas b/compiler/avr/aasmcpu.pas
index 274e06af9d..4bb7284ea8 100644
--- a/compiler/avr/aasmcpu.pas
+++ b/compiler/avr/aasmcpu.pas
@@ -246,11 +246,11 @@ implementation
begin
result:=operand_read;
case opcode of
- A_CLR,
- A_MOV, A_MOVW:
- if opnr=0 then
- result:=operand_write;
- A_CP,A_CPC,A_CPI,A_PUSH :
+ A_CLR,A_LDD,A_LD,A_LDI,A_LDS,
+ A_MOV,A_MOVW:
+ if opnr=0 then
+ result:=operand_write;
+ A_CP,A_CPC,A_CPI,A_PUSH,A_ST,A_STD,A_STS:
;
else
begin
diff --git a/compiler/avr/agavrgas.pas b/compiler/avr/agavrgas.pas
index 2e0d5bc0fc..94973eb0f6 100644
--- a/compiler/avr/agavrgas.pas
+++ b/compiler/avr/agavrgas.pas
@@ -81,6 +81,7 @@ unit agavrgas;
var
s : string;
begin
+ s:='';
with ref do
begin
{$ifdef extdebug}
@@ -95,9 +96,8 @@ unit agavrgas;
else if base<>NR_NO then
begin
if addressmode=AM_PREDRECEMENT then
- s:='-'
- else
- s:='';
+ s:='-';
+
case base of
NR_R26:
s:=s+'X';
@@ -119,9 +119,7 @@ unit agavrgas;
else if assigned(symbol) or (offset<>0) then
begin
if assigned(symbol) then
- s:=ReplaceForbiddenAsmSymbolChars(symbol.name)
- else
- s:='';
+ s:=ReplaceForbiddenAsmSymbolChars(symbol.name);
if offset<0 then
s:=s+tostr(offset)
diff --git a/compiler/avr/cpuinfo.pas b/compiler/avr/cpuinfo.pas
index e15fadfc0f..eec89b73a2 100644
--- a/compiler/avr/cpuinfo.pas
+++ b/compiler/avr/cpuinfo.pas
@@ -21,6 +21,9 @@ Interface
Type
bestreal = double;
+{$if FPC_FULLVERSION>20700}
+ bestrealrec = TDoubleRec;
+{$endif FPC_FULLVERSION>20700}
ts32real = single;
ts64real = double;
ts80real = type extended;
@@ -61,6 +64,9 @@ Type
);
Const
+ { Is there support for dealing with multiple microcontrollers available }
+ { for this platform? }
+ ControllerSupport = true;
{# Size of native extended floating point type }
extended_size = 12;
{# Size of a multimedia register }
diff --git a/compiler/avr/cpupara.pas b/compiler/avr/cpupara.pas
index 73b8fde17d..d1353ff7bb 100644
--- a/compiler/avr/cpupara.pas
+++ b/compiler/avr/cpupara.pas
@@ -201,13 +201,13 @@ unit cpupara;
begin
{ In case of po_delphi_nested_cc, the parent frame pointer
is always passed on the stack. }
- if (nextintreg>RS_R8) and
+ if (nextintreg>RS_R7) 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,R_SUBWHOLE);
- inc(nextintreg);
+ dec(nextintreg);
end
else
begin
@@ -251,8 +251,8 @@ unit cpupara;
begin
paradef:=getpointerdef(paradef);
loc:=LOC_REGISTER;
- paracgsize := OS_ADDR;
- paralen := tcgsize2size[OS_ADDR];
+ paracgsize:=OS_ADDR;
+ paralen:=tcgsize2size[OS_ADDR];
end
else
begin
diff --git a/compiler/avr/navradd.pas b/compiler/avr/navradd.pas
index 3cf3270466..8a54171cab 100644
--- a/compiler/avr/navradd.pas
+++ b/compiler/avr/navradd.pas
@@ -77,6 +77,8 @@ interface
GetResFlags:=F_LT;
gten:
GetResFlags:=F_NotPossible;
+ else
+ internalerror(2014082020);
end
else
case NodeType of
@@ -88,6 +90,8 @@ interface
GetResFlags:=F_NotPossible;
gten:
GetResFlags:=F_GE;
+ else
+ internalerror(2014082021);
end;
end
else
@@ -102,6 +106,8 @@ interface
GetResFlags:=F_CC;
gten:
GetResFlags:=F_NotPossible;
+ else
+ internalerror(2014082022);
end
else
case NodeType of
@@ -113,6 +119,8 @@ interface
GetResFlags:=F_NotPossible;
gten:
GetResFlags:=F_CS;
+ else
+ internalerror(2014082023);
end;
end;
end;
@@ -220,7 +228,7 @@ interface
function tavraddnode.pass_1 : tnode;
begin
result:=inherited pass_1;
-{
+{$ifdef dummy}
if not(assigned(result)) then
begin
unsigned:=not(is_signed(left.resultdef)) or
@@ -240,7 +248,7 @@ interface
is_dynamic_array(left.resultdef)
) then
expectloc:=LOC_FLAGS;
-}
+{$endif dummy}
end;
diff --git a/compiler/avr/navrmat.pas b/compiler/avr/navrmat.pas
index b724b76383..802e3d0443 100644
--- a/compiler/avr/navrmat.pas
+++ b/compiler/avr/navrmat.pas
@@ -165,7 +165,7 @@ implementation
secondpass(right);
location_copy(location,left.location);
-{
+{$ifdef dummy}
{ put numerator in register }
size:=def_cgsize(left.resultdef);
hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,
@@ -201,7 +201,7 @@ implementation
{ simple comparison with 0) }
if is_signed(right.resultdef) then
cg.g_overflowcheck(current_asmdata.CurrAsmList,location,resultdef);
-}
+{$endif dummy}
end;
{*****************************************************************************
diff --git a/compiler/avr/raavrgas.pas b/compiler/avr/raavrgas.pas
index 64b8d1a80c..169da45d6e 100644
--- a/compiler/avr/raavrgas.pas
+++ b/compiler/avr/raavrgas.pas
@@ -617,7 +617,7 @@ Unit raavrgas;
actopcode:=A_NONE;
for j:=maxlen downto 1 do
begin
- actopcode:=tasmop(PtrInt(iasmops.Find(copy(hs,1,j))));
+ actopcode:=tasmop(PtrUInt(iasmops.Find(copy(hs,1,j))));
if actopcode<>A_NONE then
begin
actasmtoken:=AS_OPCODE;
diff --git a/compiler/cclasses.pas b/compiler/cclasses.pas
index 0930634cb4..7fda9b697c 100644
--- a/compiler/cclasses.pas
+++ b/compiler/cclasses.pas
@@ -508,14 +508,14 @@ type
destructor Destroy; override;
procedure Clear;
{ finds an entry by key }
- function Find(Key: Pointer; KeyLen: Integer): PHashSetItem;
+ function Find(Key: Pointer; KeyLen: Integer): PHashSetItem;virtual;
{ finds an entry, creates one if not exists }
function FindOrAdd(Key: Pointer; KeyLen: Integer;
- var Found: Boolean): PHashSetItem;
+ var Found: Boolean): PHashSetItem;virtual;
{ finds an entry, creates one if not exists }
- function FindOrAdd(Key: Pointer; KeyLen: Integer): PHashSetItem;
+ function FindOrAdd(Key: Pointer; KeyLen: Integer): PHashSetItem;virtual;
{ returns Data by given Key }
- function Get(Key: Pointer; KeyLen: Integer): TObject;
+ function Get(Key: Pointer; KeyLen: Integer): TObject;virtual;
{ removes an entry, returns False if entry wasn't there }
function Remove(Entry: PHashSetItem): Boolean;
property Count: LongWord read FCount;
diff --git a/compiler/cfileutl.pas b/compiler/cfileutl.pas
index 049bde3646..caaeb4f02f 100644
--- a/compiler/cfileutl.pas
+++ b/compiler/cfileutl.pas
@@ -23,7 +23,9 @@ unit cfileutl;
{$i fpcdefs.inc}
+{$ifndef DragonFly}
{$define usedircache}
+{$endif DragonFly}
interface
@@ -124,6 +126,7 @@ interface
function GetShortName(const n:TCmdStr):TCmdStr;
function maybequoted(const s:string):string;
function maybequoted(const s:ansistring):ansistring;
+ function maybequoted_for_script(const s:ansistring; quote_script: tscripttype):ansistring;
procedure InitFileUtils;
procedure DoneFileUtils;
@@ -140,7 +143,7 @@ interface
{ * Since native Amiga commands can't handle Unix-style relative paths used by the compiler,
and some GNU tools, Unix2AmigaPath is needed to handle such situations (KB) * }
-{$IF DEFINED(MORPHOS) OR DEFINED(AMIGA)}
+{$IFDEF HASAMIGA}
{ * PATHCONV is implemented in the Amiga/MorphOS system unit * }
{$NOTE TODO Amiga: implement PathConv() in System unit, which works with AnsiString}
function Unix2AmigaPath(path: ShortString): ShortString; external name 'PATHCONV';
@@ -187,7 +190,7 @@ implementation
DirCache : TDirectoryCache;
-{$IF NOT (DEFINED(MORPHOS) OR DEFINED(AMIGA))}
+{$IFNDEF HASAMIGA}
{ Stub function for Unix2Amiga Path conversion functionality, only available in
Amiga/MorphOS RTL. I'm open for better solutions. (KB) }
function Unix2AmigaPath(path: String): String;{$IFDEF USEINLINE}inline;{$ENDIF}
@@ -537,7 +540,7 @@ end;
{$if defined(unix)}
if (length(s)>0) and (s[1] in AllowDirectorySeparators) then
result:=true;
-{$elseif defined(amiga) or defined(morphos)}
+{$elseif defined(hasamiga)}
(* An Amiga path is absolute, if it has a volume/device name in it (contains ":"),
otherwise it's always a relative path, no matter if it starts with a directory
separator or not. (KB) *)
@@ -1077,7 +1080,7 @@ end;
currPath:=FixPath(ExpandFileName(currpath),false);
if (CurrentDir<>'') and (Copy(currPath,1,length(CurrentDir))=CurrentDir) then
begin
-{$if defined(amiga) and defined(morphos)}
+{$ifdef hasamiga}
currPath:= CurrentDir+Copy(currPath,length(CurrentDir)+1,length(currPath));
{$else}
currPath:= CurDirRelPath(source_info)+Copy(currPath,length(CurrentDir)+1,length(currPath));
diff --git a/compiler/cgobj.pas b/compiler/cgobj.pas
index 473f673c8a..49a164effb 100644
--- a/compiler/cgobj.pas
+++ b/compiler/cgobj.pas
@@ -815,8 +815,15 @@ implementation
procedure tcg.translate_register(var reg : tregister);
+ var
+ rt: tregistertype;
begin
- rg[getregtype(reg)].translate_register(reg);
+ { Getting here without assigned rg is possible for an "assembler nostackframe"
+ function returning x87 float, compiler tries to translate NR_ST which is used for
+ result. }
+ rt:=getregtype(reg);
+ if assigned(rg[rt]) then
+ rg[rt].translate_register(reg);
end;
@@ -828,7 +835,8 @@ implementation
procedure tcg.a_reg_dealloc(list : TAsmList;r : tregister);
begin
- list.concat(tai_regalloc.dealloc(r,nil));
+ if (r<>NR_NO) then
+ list.concat(tai_regalloc.dealloc(r,nil));
end;
diff --git a/compiler/compiler.pas b/compiler/compiler.pas
index 45f29688e8..ad9278dab7 100644
--- a/compiler/compiler.pas
+++ b/compiler/compiler.pas
@@ -65,6 +65,9 @@ uses
{$ifdef android}
,i_android
{$endif android}
+{$ifdef aros}
+ ,i_aros
+{$endif}
{$ifdef atari}
,i_atari
{$endif atari}
diff --git a/compiler/compinnr.inc b/compiler/compinnr.inc
index e6059fb540..65515d1fd8 100644
--- a/compiler/compinnr.inc
+++ b/compiler/compinnr.inc
@@ -88,6 +88,7 @@ const
in_unbox_x_y = 78; { manage platforms: extract from class instance }
in_popcnt_x = 79;
in_aligned_x = 80;
+ in_setstring_x_y_z = 81;
{ Internal constant functions }
in_const_sqr = 100;
diff --git a/compiler/comprsrc.pas b/compiler/comprsrc.pas
index dbbc2f5827..1c3629140f 100644
--- a/compiler/comprsrc.pas
+++ b/compiler/comprsrc.pas
@@ -377,7 +377,7 @@ procedure TWinLikeResourceFile.Collect(const fn: ansistring);
begin
if fResScript=nil then
fResScript:=TScript.Create(fScriptName);
- fResScript.Add(MaybeQuoted(fn));
+ fResScript.Add(maybequoted_for_script(fn,script_fpcres));
inc(fCollectCount);
end;
diff --git a/compiler/dbgdwarf.pas b/compiler/dbgdwarf.pas
index 4592094753..4d7cf22890 100644
--- a/compiler/dbgdwarf.pas
+++ b/compiler/dbgdwarf.pas
@@ -375,7 +375,7 @@ interface
procedure appendsym_property(list:TAsmList;sym:tpropertysym);override;
function symdebugname(sym:tsym): String; virtual;
- function symname(sym:tsym): String; virtual;
+ function symname(sym: tsym; manglename: boolean): String; virtual;
procedure append_visibility(vis: tvisibility);
procedure enum_membersyms_callback(p:TObject;arg:pointer);
@@ -931,10 +931,10 @@ implementation
begin
if not assigned(def.typesym) then
internalerror(200610011);
- def.dwarf_lab:=current_asmdata.RefAsmSymbol(make_mangledname('DBG',def.owner,symname(def.typesym)),AT_DATA);
- def.dwarf_ref_lab:=current_asmdata.RefAsmSymbol(make_mangledname('DBGREF',def.owner,symname(def.typesym)),AT_DATA);
+ def.dwarf_lab:=current_asmdata.RefAsmSymbol(make_mangledname('DBG',def.owner,symname(def.typesym, true)),AT_DATA);
+ def.dwarf_ref_lab:=current_asmdata.RefAsmSymbol(make_mangledname('DBGREF',def.owner,symname(def.typesym, true)),AT_DATA);
if is_class_or_interface_or_dispinterface(def) or is_objectpascal_helper(def) then
- tobjectdef(def).dwarf_struct_lab:=current_asmdata.RefAsmSymbol(make_mangledname('DBG2',def.owner,symname(def.typesym)),AT_DATA);
+ tobjectdef(def).dwarf_struct_lab:=current_asmdata.RefAsmSymbol(make_mangledname('DBG2',def.owner,symname(def.typesym, true)),AT_DATA);
def.dbg_state:=dbg_state_written;
end
else
@@ -945,10 +945,10 @@ implementation
(def.owner.symtabletype=globalsymtable) and
(def.owner.iscurrentunit) then
begin
- def.dwarf_lab:=current_asmdata.DefineAsmSymbol(make_mangledname('DBG',def.owner,symname(def.typesym)),AB_GLOBAL,AT_DATA);
- def.dwarf_ref_lab:=current_asmdata.DefineAsmSymbol(make_mangledname('DBGREF',def.owner,symname(def.typesym)),AB_GLOBAL,AT_DATA);
+ def.dwarf_lab:=current_asmdata.DefineAsmSymbol(make_mangledname('DBG',def.owner,symname(def.typesym, true)),AB_GLOBAL,AT_DATA);
+ def.dwarf_ref_lab:=current_asmdata.DefineAsmSymbol(make_mangledname('DBGREF',def.owner,symname(def.typesym, true)),AB_GLOBAL,AT_DATA);
if is_class_or_interface_or_dispinterface(def) or is_objectpascal_helper(def) then
- tobjectdef(def).dwarf_struct_lab:=current_asmdata.DefineAsmSymbol(make_mangledname('DBG2',def.owner,symname(def.typesym)),AB_GLOBAL,AT_DATA);
+ tobjectdef(def).dwarf_struct_lab:=current_asmdata.DefineAsmSymbol(make_mangledname('DBG2',def.owner,symname(def.typesym, true)),AB_GLOBAL,AT_DATA);
include(def.defstates,ds_dwarf_dbg_info_written);
end
else
@@ -1371,7 +1371,7 @@ implementation
{ base type such as byte/shortint/word/... }
if assigned(def.typesym) then
append_entry(DW_TAG_base_type,false,[
- DW_AT_name,DW_FORM_string,symname(def.typesym)+#0,
+ DW_AT_name,DW_FORM_string,symname(def.typesym, false)+#0,
DW_AT_encoding,DW_FORM_data1,sign,
DW_AT_byte_size,DW_FORM_data1,fullbytesize])
else
@@ -1385,7 +1385,7 @@ implementation
{ to be always clipped to s32bit for some reason }
if assigned(def.typesym) then
append_entry(DW_TAG_subrange_type,false,[
- DW_AT_name,DW_FORM_string,symname(def.typesym)+#0,
+ DW_AT_name,DW_FORM_string,symname(def.typesym, false)+#0,
DW_AT_lower_bound,signform,int64(def.low),
DW_AT_upper_bound,signform,int64(def.high)
])
@@ -1544,7 +1544,7 @@ implementation
if assigned(def.typesym) then
begin
append_entry(DW_TAG_base_type,false,[
- DW_AT_name,DW_FORM_string,symname(def.typesym)+#0,
+ DW_AT_name,DW_FORM_string,symname(def.typesym, false)+#0,
DW_AT_encoding,DW_FORM_data1,DW_ATE_float,
DW_AT_byte_size,DW_FORM_data1,def.size
]);
@@ -1569,7 +1569,7 @@ implementation
{ we should use DW_ATE_signed_fixed, however it isn't supported yet by GDB (FK) }
if assigned(def.typesym) then
append_entry(DW_TAG_base_type,false,[
- DW_AT_name,DW_FORM_string,symname(def.typesym)+#0,
+ DW_AT_name,DW_FORM_string,symname(def.typesym, false)+#0,
DW_AT_encoding,DW_FORM_data1,DW_ATE_signed,
DW_AT_byte_size,DW_FORM_data1,8
])
@@ -1581,7 +1581,7 @@ implementation
s64comp:
if assigned(def.typesym) then
append_entry(DW_TAG_base_type,false,[
- DW_AT_name,DW_FORM_string,symname(def.typesym)+#0,
+ DW_AT_name,DW_FORM_string,symname(def.typesym, false)+#0,
DW_AT_encoding,DW_FORM_data1,DW_ATE_signed,
DW_AT_byte_size,DW_FORM_data1,8
])
@@ -1604,7 +1604,7 @@ implementation
begin
if assigned(def.typesym) then
append_entry(DW_TAG_enumeration_type,true,[
- DW_AT_name,DW_FORM_string,symname(def.typesym)+#0,
+ DW_AT_name,DW_FORM_string,symname(def.typesym, false)+#0,
DW_AT_byte_size,DW_FORM_data1,def.size
])
else
@@ -1625,7 +1625,7 @@ implementation
if hp.value>def.maxval then
break;
append_entry(DW_TAG_enumerator,false,[
- DW_AT_name,DW_FORM_string,symname(hp)+#0,
+ DW_AT_name,DW_FORM_string,symname(hp, false)+#0,
DW_AT_const_value,DW_FORM_data4,hp.value
]);
finish_entry;
@@ -1668,7 +1668,7 @@ implementation
{ no known size, no known upper bound }
if assigned(def.typesym) then
append_entry(DW_TAG_array_type,true,[
- DW_AT_name,DW_FORM_string,symname(def.typesym)+#0
+ DW_AT_name,DW_FORM_string,symname(def.typesym, false)+#0
])
else
append_entry(DW_TAG_array_type,true,[]);
@@ -1685,7 +1685,7 @@ implementation
size:=def.size;
if assigned(def.typesym) then
append_entry(DW_TAG_array_type,true,[
- DW_AT_name,DW_FORM_string,symname(def.typesym)+#0,
+ DW_AT_name,DW_FORM_string,symname(def.typesym, false)+#0,
DW_AT_byte_size,DW_FORM_udata,size
])
else
@@ -1867,7 +1867,7 @@ implementation
begin
if assigned(def.typesym) then
append_entry(DW_TAG_subroutine_type,true,[
- DW_AT_name,DW_FORM_string,symname(def.typesym)+#0,
+ DW_AT_name,DW_FORM_string,symname(def.typesym, false)+#0,
DW_AT_prototyped,DW_FORM_flag,true
])
else
@@ -1882,7 +1882,7 @@ implementation
for i:=0 to def.paras.count-1 do
begin
append_entry(DW_TAG_formal_parameter,false,[
- DW_AT_name,DW_FORM_string,symname(tsym(def.paras[i]))+#0
+ DW_AT_name,DW_FORM_string,symname(tsym(def.paras[i]), false)+#0
]);
append_labelentry_ref(DW_AT_type,def_dwarf_lab(tparavarsym(def.paras[i]).vardef));
finish_entry;
@@ -2017,7 +2017,7 @@ implementation
begin
current_asmdata.getaddrlabel(TAsmLabel(pointer(labsym)));
append_entry(DW_TAG_typedef,false,[
- DW_AT_name,DW_FORM_string,symname(def.typesym)+#0
+ DW_AT_name,DW_FORM_string,symname(def.typesym, false)+#0
]);
append_labelentry_ref(DW_AT_type,labsym);
finish_entry;
@@ -2114,7 +2114,7 @@ implementation
current_asmdata.asmlists[al_dwarf_info].concat(tai_comment.Create(strpnew('Procdef '+def.fullprocname(true))));
if not is_objc_class_or_protocol(def.struct) then
append_entry(DW_TAG_subprogram,true,
- [DW_AT_name,DW_FORM_string,symname(def.procsym)+#0
+ [DW_AT_name,DW_FORM_string,symname(def.procsym, false)+#0
{ data continues below }
{ problem: base reg isn't known here
DW_AT_frame_base,DW_FORM_block1,1
@@ -2318,7 +2318,7 @@ implementation
procedure TDebugInfoDwarf.appendsym_var(list:TAsmList;sym:tabstractnormalvarsym);
begin
- appendsym_var_with_name_type_offset(list,sym,symname(sym),sym.vardef,0,[]);
+ appendsym_var_with_name_type_offset(list,sym,symname(sym, false),sym.vardef,0,[]);
end;
@@ -2404,7 +2404,12 @@ implementation
if (vo_is_thread_var in sym.varoptions) then
begin
{ TODO: !!! FIXME: dwarf for thread vars !!!}
- blocksize:=0;
+{ This is only a minimal change to at least be able to get a value
+ in only one thread is present PM 2014-11-21, like for stabs format }
+ templist.concat(tai_const.create_8bit(ord(DW_OP_addr)));
+ templist.concat(tai_const.Create_type_name(aitconst_ptr,sym.mangledname,
+ offset+sizeof(pint)));
+ blocksize:=1+sizeof(puint);
end
else
begin
@@ -2554,7 +2559,7 @@ implementation
procedure TDebugInfoDwarf.appendsym_fieldvar(list:TAsmList;sym: tfieldvarsym);
begin
- appendsym_fieldvar_with_name_offset(list,sym,symname(sym),sym.vardef,0);
+ appendsym_fieldvar_with_name_offset(list,sym,symname(sym, false),sym.vardef,0);
end;
@@ -2601,7 +2606,7 @@ implementation
if (target_info.endian=endian_little) then
bitoffset:=(fieldnatsize*8)-bitoffset-sym.vardef.packedbitsize;
append_entry(DW_TAG_member,false,[
- DW_AT_name,DW_FORM_string,symname(sym)+#0,
+ DW_AT_name,DW_FORM_string,symname(sym, false)+#0,
{ gcc also generates both a bit and byte size attribute }
{ we don't support ordinals >= 256 bits }
DW_AT_byte_size,DW_FORM_data1,fieldnatsize,
@@ -2642,7 +2647,7 @@ implementation
if ismember then
append_entry(DW_TAG_member,false,[
- DW_AT_name,DW_FORM_string,symname(sym)+#0,
+ DW_AT_name,DW_FORM_string,symname(sym, false)+#0,
{ The DW_AT_declaration tag is invalid according to the DWARF specifications.
But gcc adds this to static const members and gdb checks
for this flag. So we have to set it also.
@@ -2652,7 +2657,7 @@ implementation
])
else
append_entry(DW_TAG_variable,false,[
- DW_AT_name,DW_FORM_string,symname(sym)+#0
+ DW_AT_name,DW_FORM_string,symname(sym, false)+#0
]);
{ for string constants, constdef isn't set because they have no real type }
case sym.consttyp of
@@ -2821,10 +2826,10 @@ implementation
begin
if (tosym.typ=fieldvarsym) then
internalerror(2009031404);
- appendsym_var_with_name_type_offset(list,tabstractnormalvarsym(tosym),symname(sym),sym.propdef,offset,[])
+ appendsym_var_with_name_type_offset(list,tabstractnormalvarsym(tosym),symname(sym, false),sym.propdef,offset,[])
end
else
- appendsym_fieldvar_with_name_offset(list,tfieldvarsym(tosym),symname(sym),sym.propdef,offset)
+ appendsym_fieldvar_with_name_offset(list,tfieldvarsym(tosym),symname(sym, false),sym.propdef,offset)
end;
@@ -2883,7 +2888,7 @@ implementation
flags:=[];
if (sym.owner.symtabletype=localsymtable) then
include(flags,dvf_force_local_var);
- appendsym_var_with_name_type_offset(list,tabstractnormalvarsym(tosym),symname(sym),tabstractvarsym(sym).vardef,offset,flags);
+ appendsym_var_with_name_type_offset(list,tabstractnormalvarsym(tosym),symname(sym, false),tabstractvarsym(sym).vardef,offset,flags);
end;
templist.free;
exit;
@@ -2893,7 +2898,7 @@ implementation
end;
append_entry(DW_TAG_variable,false,[
- DW_AT_name,DW_FORM_string,symname(sym)+#0,
+ DW_AT_name,DW_FORM_string,symname(sym, false)+#0,
{
DW_AT_decl_file,DW_FORM_data1,0,
DW_AT_decl_line,DW_FORM_data1,
@@ -2914,7 +2919,7 @@ implementation
procedure TDebugInfoDwarf.beforeappendsym(list:TAsmList;sym:tsym);
begin
- current_asmdata.asmlists[al_dwarf_info].concat(tai_comment.Create(strpnew('Symbol '+symname(sym))));
+ current_asmdata.asmlists[al_dwarf_info].concat(tai_comment.Create(strpnew('Symbol '+symname(sym, true))));
end;
@@ -3270,7 +3275,7 @@ implementation
end;
- function TDebugInfoDwarf.symname(sym: tsym): String;
+ function TDebugInfoDwarf.symname(sym: tsym; manglename: boolean): String;
begin
if (sym.typ=paravarsym) and
(vo_is_self in tparavarsym(sym).varoptions) then
@@ -3290,9 +3295,20 @@ implementation
else if (ds_dwarf_method_class_prefix in current_settings.debugswitches) and
(sym.typ=procsym) and
(tprocsym(sym).owner.symtabletype in [objectsymtable,recordsymtable]) then
- result:=tprocsym(sym).owner.name^+'__'+symdebugname(sym)
+ begin
+ result:=tprocsym(sym).owner.name^+'__';
+ if manglename then
+ result := result + sym.name
+ else
+ result := result + symdebugname(sym);
+ end
else
- result:=symdebugname(sym);
+ begin
+ if manglename then
+ result := sym.name
+ else
+ result := symdebugname(sym);
+ end;
end;
@@ -3316,6 +3332,7 @@ implementation
currfileinfo,
lastfileinfo : tfileposinfo;
currfuncname : pshortstring;
+ currstatement: boolean;
currsectype : TAsmSectiontype;
hp, hpend : tai;
infile : tinputfile;
@@ -3334,6 +3351,7 @@ implementation
currfuncname:=nil;
currsectype:=sec_code;
hp:=Tai(list.first);
+ currstatement:=true;
prevcolumn := 0;
prevline := 1;
prevfileidx := 1;
@@ -3365,8 +3383,7 @@ implementation
end;
if (currsectype=sec_code) and
- (hp.typ=ait_instruction) and
- (nolineinfolevel=0) then
+ (hp.typ=ait_instruction) then
begin
currfileinfo:=tailineinfo(hp).fileinfo;
{ file changed ? (must be before line info) }
@@ -3397,8 +3414,12 @@ implementation
end;
end;
+ { Set the line-nr to 0 if the code does not corresponds to a particular line }
+ if nolineinfolevel>0 then
+ currfileinfo.line := 0;
+
{ line changed ? }
- if (lastfileinfo.line<>currfileinfo.line) and (currfileinfo.line<>0) then
+ if (lastfileinfo.line<>currfileinfo.line) and ((currfileinfo.line<>0) or (nolineinfolevel>0)) then
begin
{ set address }
current_asmdata.getlabel(currlabel, alt_dbgline);
@@ -3431,6 +3452,19 @@ implementation
prevcolumn := currfileinfo.column;
end;
+ { set statement }
+ if (currfileinfo.line=0) and currstatement then
+ begin
+ currstatement := false;
+ asmline.concat(tai_const.create_8bit(DW_LNS_negate_stmt));
+ end;
+
+ if not currstatement and (currfileinfo.line>0) then
+ begin
+ currstatement := true;
+ asmline.concat(tai_const.create_8bit(DW_LNS_negate_stmt));
+ end;
+
{ set line }
diffline := currfileinfo.line - prevline;
if (diffline >= LINE_BASE) and (OPCODE_BASE + diffline - LINE_BASE <= 255) then
@@ -3517,7 +3551,7 @@ implementation
file recs. are less than 1k so using data2 is enough }
if assigned(def.typesym) then
append_entry(DW_TAG_structure_type,false,[
- DW_AT_name,DW_FORM_string,symname(def.typesym)+#0,
+ DW_AT_name,DW_FORM_string,symname(def.typesym, false)+#0,
DW_AT_byte_size,DW_FORM_udata,def.size
])
else
@@ -3660,7 +3694,7 @@ implementation
if assigned(def.typesym) then
append_entry(DW_TAG_set_type,false,[
- DW_AT_name,DW_FORM_string,symname(def.typesym)+#0,
+ DW_AT_name,DW_FORM_string,symname(def.typesym, false)+#0,
DW_AT_byte_size,DW_FORM_data2,def.size
])
else
@@ -3696,7 +3730,7 @@ implementation
{ info of modules that contain set tags }
if assigned(def.typesym) then
append_entry(DW_TAG_base_type,false,[
- DW_AT_name,DW_FORM_string,symname(def.typesym)+#0,
+ DW_AT_name,DW_FORM_string,symname(def.typesym, false)+#0,
DW_AT_encoding,DW_FORM_data1,DW_ATE_unsigned,
DW_AT_byte_size,DW_FORM_data2,def.size
])
@@ -3764,7 +3798,7 @@ implementation
if assigned(def.typesym) then
append_entry(DW_TAG_array_type,true,[
- DW_AT_name,DW_FORM_string,symname(def.typesym)+#0,
+ DW_AT_name,DW_FORM_string,symname(def.typesym, false)+#0,
DW_AT_data_location,DW_FORM_block1,2
])
else
@@ -3935,7 +3969,7 @@ implementation
begin
if assigned(def.typesym) then
append_entry(DW_TAG_file_type,false,[
- DW_AT_name,DW_FORM_string,symname(def.typesym)+#0,
+ DW_AT_name,DW_FORM_string,symname(def.typesym, false)+#0,
DW_AT_byte_size,DW_FORM_data2,def.size
])
else
@@ -4073,7 +4107,7 @@ implementation
{ ??? can a undefined def have a typename ? }
if assigned(def.typesym) then
append_entry(DW_TAG_unspecified_type,false,[
- DW_AT_name,DW_FORM_string,symname(def.typesym)+#0
+ DW_AT_name,DW_FORM_string,symname(def.typesym, false)+#0
])
else
append_entry(DW_TAG_unspecified_type,false,[
diff --git a/compiler/dbgstabs.pas b/compiler/dbgstabs.pas
index d2c5c48b74..325ef21abe 100644
--- a/compiler/dbgstabs.pas
+++ b/compiler/dbgstabs.pas
@@ -1408,20 +1408,16 @@ implementation
if target_info.system in systems_dotted_function_names then
mangledname:='.'+mangledname;
// LBRAC
- ss:=tostr(STABS_N_LBRAC)+',0,0,'+mangledname;
- if not(af_stabs_use_function_absolute_addresses in target_asm.flags) then
- begin
- ss:=ss+'-';
- ss:=ss+mangledname;
- end;
+ if af_stabs_use_function_absolute_addresses in target_asm.flags then
+ ss:=tostr(STABS_N_LBRAC)+',0,0,'+mangledname
+ else
+ ss:=tostr(STABS_N_LBRAC)+',0,0,0';
result.concat(Tai_stab.Create_ansistr(stab_stabn,ss));
+
// RBRAC
ss:=tostr(STABS_N_RBRAC)+',0,0,'+stabsendlabel.name;
if not(af_stabs_use_function_absolute_addresses in target_asm.flags) then
- begin
- ss:=ss+'-';
- ss:=ss+mangledname;
- end;
+ ss:=ss+'-'+mangledname;
result.concat(Tai_stab.Create_ansistr(stab_stabn,ss));
{ the stabsendlabel must come after all other stabs for this }
diff --git a/compiler/defutil.pas b/compiler/defutil.pas
index 60b58e4188..79eb223413 100644
--- a/compiler/defutil.pas
+++ b/compiler/defutil.pas
@@ -334,21 +334,6 @@ interface
{ returns true if def is a C "block" }
function is_block(def: tdef): boolean;
- {# returns the appropriate int type for pointer arithmetic with the given pointer type.
- When adding or subtracting a number to/from a pointer, this function returns the
- int type to which that number has to be converted, before the operation can be performed.
- Normally, this is sinttype, except on i8086, where it takes into account the
- special i8086 pointer types (near, far, huge). }
- function get_int_type_for_pointer_arithmetic(p : tdef) : tdef;
-
-{$ifdef i8086}
- {# Returns true if p is a far pointer def }
- function is_farpointer(p : tdef) : boolean;
-
- {# Returns true if p is a huge pointer def }
- function is_hugepointer(p : tdef) : boolean;
-{$endif i8086}
-
implementation
uses
@@ -1449,29 +1434,4 @@ implementation
result:=(def.typ=procvardef) and (po_is_block in tprocvardef(def).procoptions)
end;
-
- function get_int_type_for_pointer_arithmetic(p : tdef) : tdef;
- begin
-{$ifdef i8086}
- if is_hugepointer(p) then
- result:=s32inttype
- else
-{$endif i8086}
- result:=sinttype;
- end;
-
-{$ifdef i8086}
- { true if p is a far pointer def }
- function is_farpointer(p : tdef) : boolean;
- begin
- result:=(p.typ=pointerdef) and (tcpupointerdef(p).x86pointertyp=x86pt_far);
- end;
-
- { true if p is a huge pointer def }
- function is_hugepointer(p : tdef) : boolean;
- begin
- result:=(p.typ=pointerdef) and (tcpupointerdef(p).x86pointertyp=x86pt_huge);
- end;
-{$endif i8086}
-
end.
diff --git a/compiler/expunix.pas b/compiler/expunix.pas
index 06e95c7b7d..be85f2e009 100644
--- a/compiler/expunix.pas
+++ b/compiler/expunix.pas
@@ -154,7 +154,7 @@ begin
current_asmdata.asmlists[al_procedures].concat(Tai_symbol.Createname_global(hp2.name^,AT_FUNCTION,0));
if (cs_create_pic in current_settings.moduleswitches) and
{ other targets need to be checked how it works }
- (target_info.system in [system_i386_freebsd,system_x86_64_freebsd,system_x86_64_linux,system_i386_linux,system_x86_64_solaris,system_i386_solaris,system_i386_android]) then
+ (target_info.system in [system_i386_freebsd,system_x86_64_freebsd,system_x86_64_linux,system_i386_linux,system_x86_64_solaris,system_i386_solaris,system_i386_android,system_x86_64_dragonfly]) then
begin
{$ifdef x86}
sym:=current_asmdata.RefAsmSymbol(pd.mangledname);
diff --git a/compiler/fmodule.pas b/compiler/fmodule.pas
index 2404f478ed..1146f3924d 100644
--- a/compiler/fmodule.pas
+++ b/compiler/fmodule.pas
@@ -44,7 +44,7 @@ interface
uses
cutils,cclasses,cfileutl,
globtype,finput,ogbase,
- symbase,symsym,
+ symbase,symconst,symsym,symcpu,
wpobase,
aasmbase,aasmtai,aasmdata;
@@ -142,7 +142,7 @@ interface
checkforwarddefs,
deflist,
symlist : TFPObjectList;
- ptrdefs : THashSet; { list of pointerdefs created in this module so we can reuse them (not saved/restored) }
+ ptrdefs : tPtrDefHashSet; { list of pointerdefs created in this module so we can reuse them (not saved/restored) }
arraydefs : THashSet; { list of single-element-arraydefs created in this module so we can reuse them (not saved/restored) }
ansistrdef : tobject; { an ansistring def redefined for the current module }
wpoinfo : tunitwpoinfobase; { whole program optimization-related information that is generated during the current run for this unit }
@@ -567,7 +567,7 @@ implementation
derefdataintflen:=0;
deflist:=TFPObjectList.Create(false);
symlist:=TFPObjectList.Create(false);
- ptrdefs:=THashSet.Create(64,true,false);
+ ptrdefs:=cPtrDefHashSet.Create;
arraydefs:=THashSet.Create(64,true,false);
ansistrdef:=nil;
wpoinfo:=nil;
@@ -744,7 +744,7 @@ implementation
symlist.free;
symlist:=TFPObjectList.Create(false);
ptrdefs.free;
- ptrdefs:=THashSet.Create(64,true,false);
+ ptrdefs:=cPtrDefHashSet.Create;
arraydefs.free;
arraydefs:=THashSet.Create(64,true,false);
wpoinfo.free;
diff --git a/compiler/fppu.pas b/compiler/fppu.pas
index 82638fdb01..bb2077dac3 100644
--- a/compiler/fppu.pas
+++ b/compiler/fppu.pas
@@ -836,7 +836,13 @@ var
end;
end
else
- temp:=' not available';
+ begin
+ { still register the source module for proper error messages
+ since source_avail for the module is still false, this should not hurt }
+ sourcefiles.register_file(tdosinputfile.create(hs));
+
+ temp:=' not available';
+ end;
if is_main then
begin
mainsource:=hs;
diff --git a/compiler/generic/cpuinfo.pas b/compiler/generic/cpuinfo.pas
index 28b762da7b..c864c8032b 100644
--- a/compiler/generic/cpuinfo.pas
+++ b/compiler/generic/cpuinfo.pas
@@ -22,6 +22,13 @@ Interface
Type
bestreal = extended;
+{$if FPC_FULLVERSION>20700}
+{$ifdef FPC_HAS_TYPE_EXTENDED}
+ bestrealrec = TExtended80Rec;
+{$else}
+ bestrealrec = TDoubleRec;
+{$endif}
+{$endif FPC_FULLVERSION>20700}
ts32real = single;
ts64real = double;
ts80real = type extended;
@@ -42,7 +49,24 @@ Type
fpu_soft
);
+ tcontrollertype =
+ (ct_none
+ );
+
Const
+ { 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:''; flashbase:0; flashsize:0; srambase:0; sramsize:0));
+ {$POP}
+
cputypestr : array[tcputype] of string[8] = ('none');
fputypestr : array[tfputype] of string[6] = ('none','soft');
diff --git a/compiler/globals.pas b/compiler/globals.pas
index 6c2bc91a9f..47abece55c 100644
--- a/compiler/globals.pas
+++ b/compiler/globals.pas
@@ -41,7 +41,6 @@ interface
{$ELSE}
fksysutl,
{$ENDIF}
-
{ comphook pulls in sysutils anyways }
cutils,cclasses,cfileutl,
cpuinfo,
@@ -52,7 +51,7 @@ interface
[m_delphi,m_class,m_objpas,m_result,m_string_pchar,
m_pointer_2_procedure,m_autoderef,m_tp_procvar,m_initfinal,m_default_ansistring,
m_out,m_default_para,m_duplicate_names,m_hintdirective,
- m_property,m_default_inline,m_except,m_advanced_records];
+ m_property,m_default_inline,m_except,m_advanced_records,m_type_helpers];
delphiunicodemodeswitches = delphimodeswitches + [m_systemcodepage,m_default_unicodestring];
fpcmodeswitches =
[m_fpc,m_string_pchar,m_nested_comment,m_repeat_forward,
@@ -84,23 +83,23 @@ interface
treelogfilename = 'tree.log';
{$if defined(CPUARM) and defined(FPUFPA)}
- MathQNaN : tdoublerec = (bytes : (0,0,252,255,0,0,0,0));
- MathInf : tdoublerec = (bytes : (0,0,240,127,0,0,0,0));
- MathNegInf : tdoublerec = (bytes : (0,0,240,255,0,0,0,0));
- MathPi : tdoublerec = (bytes : (251,33,9,64,24,45,68,84));
+ MathQNaN : tcompdoublerec = (bytes : (0,0,252,255,0,0,0,0));
+ MathInf : tcompdoublerec = (bytes : (0,0,240,127,0,0,0,0));
+ MathNegInf : tcompdoublerec = (bytes : (0,0,240,255,0,0,0,0));
+ MathPi : tcompdoublerec = (bytes : (251,33,9,64,24,45,68,84));
{$else}
{$ifdef FPC_LITTLE_ENDIAN}
- MathQNaN : tdoublerec = (bytes : (0,0,0,0,0,0,252,255));
- MathInf : tdoublerec = (bytes : (0,0,0,0,0,0,240,127));
- MathNegInf : tdoublerec = (bytes : (0,0,0,0,0,0,240,255));
- MathPi : tdoublerec = (bytes : (24,45,68,84,251,33,9,64));
- MathPiExtended : textendedrec = (bytes : (53,194,104,33,162,218,15,201,0,64));
+ MathQNaN : tcompdoublerec = (bytes : (0,0,0,0,0,0,252,255));
+ MathInf : tcompdoublerec = (bytes : (0,0,0,0,0,0,240,127));
+ MathNegInf : tcompdoublerec = (bytes : (0,0,0,0,0,0,240,255));
+ MathPi : tcompdoublerec = (bytes : (24,45,68,84,251,33,9,64));
+ MathPiExtended : tcompextendedrec = (bytes : (53,194,104,33,162,218,15,201,0,64));
{$else FPC_LITTLE_ENDIAN}
- MathQNaN : tdoublerec = (bytes : (255,252,0,0,0,0,0,0));
- MathInf : tdoublerec = (bytes : (127,240,0,0,0,0,0,0));
- MathNegInf : tdoublerec = (bytes : (255,240,0,0,0,0,0,0));
- MathPi : tdoublerec = (bytes : (64,9,33,251,84,68,45,24));
- MathPiExtended : textendedrec = (bytes : (64,0,201,15,218,162,33,104,194,53));
+ MathQNaN : tcompdoublerec = (bytes : (255,252,0,0,0,0,0,0));
+ MathInf : tcompdoublerec = (bytes : (127,240,0,0,0,0,0,0));
+ MathNegInf : tcompdoublerec = (bytes : (255,240,0,0,0,0,0,0));
+ MathPi : tcompdoublerec = (bytes : (64,9,33,251,84,68,45,24));
+ MathPiExtended : tcompextendedrec = (bytes : (64,0,201,15,218,162,33,104,194,53));
{$endif FPC_LITTLE_ENDIAN}
{$endif}
@@ -163,9 +162,8 @@ interface
{$endif defined(ARM)}
{ CPU targets with microcontroller support can add a controller specific unit }
-{$if defined(ARM) or defined(AVR) or defined(MIPSEL)}
controllertype : tcontrollertype;
-{$endif defined(ARM) or defined(AVR) or defined(MIPSEL)}
+
{ WARNING: this pointer cannot be written as such in record token }
pmessage : pmessagestaterecord;
end;
@@ -238,7 +236,9 @@ interface
paralinkoptions : TCmdStr;
paradynamiclinker : string;
paraprintnodetree : byte;
+{$ifdef PREPROCWRITE}
parapreprocess : boolean;
+{$endif PREPROCWRITE}
printnodefile : text;
{ typical cross compiling params}
@@ -411,7 +411,7 @@ interface
{$endif i8086}
maxfpuregisters : 0;
-{ Note: GENERIC_CPU is sued together with generic subdirectory to
+{ Note: GENERIC_CPU is used together with generic subdirectory to
be able to compile some of the units without any real CPU.
This is used to generate a CPU independant PPUDUMP utility. PM }
{$ifdef GENERIC_CPU}
@@ -502,9 +502,7 @@ interface
{$if defined(ARM)}
instructionset : is_arm;
{$endif defined(ARM)}
-{$if defined(ARM) or defined(AVR) or defined(MIPSEL)}
controllertype : ct_none;
-{$endif defined(ARM) or defined(AVR) or defined(MIPSEL)}
pmessage : nil;
);
@@ -536,9 +534,7 @@ interface
function Setoptimizecputype(const s:string;var a:tcputype):boolean;
function Setcputype(const s:string;var a:tsettings):boolean;
function SetFpuType(const s:string;var a:tfputype):boolean;
-{$if defined(arm) or defined(avr) or defined(mipsel)}
function SetControllerType(const s:string;var a:tcontrollertype):boolean;
-{$endif defined(arm) or defined(avr) or defined(mipsel)}
function IncludeFeature(const s : string) : boolean;
function SetMinFPConstPrec(const s: string; var a: tfloattype) : boolean;
@@ -838,6 +834,13 @@ implementation
Replace(s,'$FPCTARGET',target_os_string)
else
Replace(s,'$FPCTARGET',target_full_string);
+ Replace(s,'$FPCSUBARCH',lower(cputypestr[init_settings.cputype]));
+ Replace(s,'$FPCABI',lower(abiinfo[target_info.abi].name));
+{$ifdef i8086}
+ Replace(s,'$FPCMEMORYMODEL',lower(x86memorymodelstr[init_settings.x86memorymodel]));
+{$else i8086}
+ Replace(s,'$FPCMEMORYMODEL','flat');
+{$endif i8086}
{$ifdef mswindows}
ReplaceSpecialFolder('$LOCAL_APPDATA',CSIDL_LOCAL_APPDATA);
ReplaceSpecialFolder('$APPDATA',CSIDL_APPDATA);
@@ -968,7 +971,7 @@ implementation
result := -1;
end;
- function convertdoublerec(d : tdoublerec) : tdoublerec;{$ifdef USEINLINE}inline;{$endif}
+ function convertdoublerec(d : tcompdoublerec) : tcompdoublerec;{$ifdef USEINLINE}inline;{$endif}
{$ifdef CPUARM}
var
i : longint;
@@ -1177,23 +1180,34 @@ implementation
end;
-{$if defined(arm) or defined(avr) or defined(mipsel)}
function SetControllerType(const s:string;var a:tcontrollertype):boolean;
var
t : tcontrollertype;
hs : string;
begin
- result:=false;
- hs:=Upper(s);
- for t:=low(tcontrollertype) to high(tcontrollertype) do
- if embedded_controllers[t].controllertypestr=hs then
- begin
- a:=t;
- result:=true;
- break;
- end;
+{ The following check allows to reduce amount of code for platforms }
+{ not supporting microcontrollers due to evaluation at compile time. }
+{$PUSH}
+ {$WARN 6018 OFF} (* Unreachable code due to compile time evaluation *)
+ if ControllerSupport then
+ begin
+ result:=false;
+ hs:=Upper(s);
+ for t:=low(tcontrollertype) to high(tcontrollertype) do
+ if embedded_controllers[t].controllertypestr=hs then
+ begin
+ a:=t;
+ result:=true;
+ break;
+ end;
+ end
+ else
+ begin
+ a := ct_none;
+ Result := true;
+ end;
+{$POP}
end;
-{$endif defined(arm) or defined(avr) or defined(mipsel)}
function IncludeFeature(const s : string) : boolean;
diff --git a/compiler/globtype.pas b/compiler/globtype.pas
index 95efa1b07f..f0f9249b2b 100644
--- a/compiler/globtype.pas
+++ b/compiler/globtype.pas
@@ -110,12 +110,12 @@ interface
{$endif i8086}
{ Use a variant record to be sure that the array if aligned correctly }
- tdoublerec=record
+ tcompdoublerec=record
case byte of
0 : (bytes:array[0..7] of byte);
1 : (value:double);
end;
- textendedrec=record
+ tcompextendedrec=record
case byte of
0 : (bytes:array[0..9] of byte);
1 : (value:extended);
@@ -707,6 +707,14 @@ interface
type
tx86memorymodel = (mm_tiny,mm_small,mm_medium,mm_compact,mm_large,mm_huge);
+ const
+ x86memorymodelstr : array[tx86memorymodel] of string[7]=(
+ 'TINY',
+ 'SMALL',
+ 'MEDIUM',
+ 'COMPACT',
+ 'LARGE',
+ 'HUGE');
{ hide Sysutils.ExecuteProcess in units using this one after SysUtils}
const
diff --git a/compiler/hlcg2ll.pas b/compiler/hlcg2ll.pas
index 2d2e6e39cf..6d50fd9d14 100644
--- a/compiler/hlcg2ll.pas
+++ b/compiler/hlcg2ll.pas
@@ -656,6 +656,7 @@ implementation
internalerror(2012071226);
tocgsize:=getintmmcgsize(reg,def_cgmmsize(tosize));
case loc.loc of
+ LOC_CONSTANT,
LOC_SUBSETREG,LOC_CSUBSETREG,
LOC_SUBSETREF,LOC_CSUBSETREF:
begin
diff --git a/compiler/htypechk.pas b/compiler/htypechk.pas
index 8296712769..2d93bc4ec3 100644
--- a/compiler/htypechk.pas
+++ b/compiler/htypechk.pas
@@ -26,7 +26,7 @@ unit htypechk;
interface
uses
- cclasses,tokens,cpuinfo,
+ cclasses,cmsgs,tokens,cpuinfo,
node,globtype,
symconst,symtype,symdef,symsym,symbase;
@@ -178,6 +178,8 @@ interface
arrays, records and objects are checked recursively }
function is_valid_for_default(def:tdef):boolean;
+ procedure UninitializedVariableMessage(pos : tfileposinfo;warning,local,managed : boolean;name : TMsgStr);
+
implementation
uses
@@ -1092,6 +1094,23 @@ implementation
end;
+ procedure UninitializedVariableMessage(pos : tfileposinfo;warning,local,managed : boolean;name : TMsgStr);
+ const
+ msg : array[false..true,false..true,false..true] of dword = (
+ (
+ (sym_h_uninitialized_variable,sym_h_uninitialized_managed_variable),
+ (sym_h_uninitialized_local_variable,sym_h_uninitialized_managed_local_variable)
+ ),
+ (
+ (sym_w_uninitialized_variable,sym_w_uninitialized_managed_variable),
+ (sym_w_uninitialized_local_variable,sym_w_uninitialized_managed_local_variable)
+ )
+ );
+ begin
+ CGMessagePos1(pos,msg[warning,local,managed],name);
+ end;
+
+
procedure set_varstate(p:tnode;newstate:tvarstate;varstateflags:tvarstateflags);
const
vstrans: array[tvarstate,tvarstate] of tvarstate = (
@@ -1197,32 +1216,29 @@ implementation
if (vo_is_funcret in hsym.varoptions) then
begin
if (vsf_use_hints in varstateflags) then
- CGMessagePos(p.fileinfo,sym_h_function_result_uninitialized)
- else
- CGMessagePos(p.fileinfo,sym_w_function_result_uninitialized)
- end
- else
- begin
- if tloadnode(p).symtable.symtabletype=localsymtable then
begin
- { on the JVM, an uninitialized var-parameter
- is just as fatal as a nil pointer dereference }
- if (vsf_use_hints in varstateflags) and
- not(target_info.system in systems_jvm) then
- CGMessagePos1(p.fileinfo,sym_h_uninitialized_local_variable,hsym.realname)
+ if is_managed_type(hsym.vardef) then
+ CGMessagePos(p.fileinfo,sym_h_managed_function_result_uninitialized)
else
- CGMessagePos1(p.fileinfo,sym_w_uninitialized_local_variable,hsym.realname);
+ CGMessagePos(p.fileinfo,sym_h_function_result_uninitialized);
end
else
begin
- { on the JVM, an uninitialized var-parameter
- is just as fatal as a nil pointer dereference }
- if (vsf_use_hints in varstateflags) and
- not(target_info.system in systems_jvm) then
- CGMessagePos1(p.fileinfo,sym_h_uninitialized_variable,hsym.realname)
+ if is_managed_type(hsym.vardef) then
+ CGMessagePos(p.fileinfo,sym_w_managed_function_result_uninitialized)
else
- CGMessagePos1(p.fileinfo,sym_w_uninitialized_variable,hsym.realname);
+ CGMessagePos(p.fileinfo,sym_w_function_result_uninitialized);
end;
+ end
+ else
+ begin
+ UninitializedVariableMessage(p.fileinfo,
+ { on the JVM, an uninitialized var-parameter
+ is just as fatal as a nil pointer dereference }
+ not((vsf_use_hints in varstateflags) and not(target_info.system in systems_jvm)),
+ tloadnode(p).symtable.symtabletype=localsymtable,
+ is_managed_type(tloadnode(p).resultdef),
+ hsym.realname);
end;
end;
end
@@ -2227,7 +2243,7 @@ implementation
break;
end;
if is_objectpascal_helper(structdef) and
- (tobjectdef(structdef).typ in [recorddef,objectdef]) then
+ (tobjectdef(structdef).extendeddef.typ in [recorddef,objectdef]) then
begin
{ search methods in the extended type as well }
srsym:=tprocsym(tabstractrecorddef(tobjectdef(structdef).extendeddef).symtable.FindWithHash(hashedid));
@@ -2583,7 +2599,8 @@ implementation
def_to : tdef;
currpt,
pt : tcallparanode;
- eq : tequaltype;
+ eq,
+ mineq : tequaltype;
convtype : tconverttype;
pdtemp,
pdoper : tprocdef;
@@ -2763,6 +2780,30 @@ implementation
eq:=compare_defs_ext(n.resultdef,def_to,n.nodetype,convtype,pdoper,cdoptions);
n.free;
end
+ else if is_open_array(def_to) and
+ is_class_or_interface_or_dispinterface_or_objc_or_java(tarraydef(def_to).elementdef) and
+ is_array_constructor(currpt.left.resultdef) and
+ assigned(tarrayconstructornode(currpt.left).left) then
+ begin
+ { ensure that [nil] can be converted to "array of tobject",
+ because if we just try to convert "array of pointer" to
+ "array of tobject", we get type conversion errors in
+ non-Delphi modes }
+ n:=currpt.left;
+ mineq:=te_exact;
+ repeat
+ if tarrayconstructornode(n).left.nodetype=arrayconstructorrangen then
+ eq:=te_incompatible
+ else
+ eq:=compare_defs_ext(tarrayconstructornode(n).left.resultdef,tarraydef(def_to).elementdef,tarrayconstructornode(n).left.nodetype,convtype,pdoper,cdoptions);
+ if eq<mineq then
+ mineq:=eq;
+ if eq=te_incompatible then
+ break;
+ n:=tarrayconstructornode(n).right;
+ until not assigned(n);
+ eq:=mineq;
+ end
else
{ generic type comparision }
begin
diff --git a/compiler/i386/cgcpu.pas b/compiler/i386/cgcpu.pas
index 21e715860c..de73fc0b05 100644
--- a/compiler/i386/cgcpu.pas
+++ b/compiler/i386/cgcpu.pas
@@ -314,6 +314,13 @@ unit cgcpu;
end;
begin
+ { Release PIC register }
+ if (cs_create_pic in current_settings.moduleswitches) and
+ (tf_pic_uses_got in target_info.flags) and
+ (pi_needs_got in current_procinfo.flags) and
+ not(target_info.system in systems_darwin) then
+ list.concat(tai_regalloc.dealloc(NR_PIC_OFFSET_REG,nil));
+
{ MMX needs to call EMMS }
if assigned(rg[R_MMXREGISTER]) and
(rg[R_MMXREGISTER].uses_registers) then
diff --git a/compiler/i386/cpuelf.pas b/compiler/i386/cpuelf.pas
index f61e83f05a..fd171e3ed0 100644
--- a/compiler/i386/cpuelf.pas
+++ b/compiler/i386/cpuelf.pas
@@ -509,7 +509,7 @@ implementation
system_i386_openbsd,system_i386_netbsd,
system_i386_Netware,system_i386_netwlibc,
system_i386_solaris,system_i386_embedded,
- system_i386_android];
+ system_i386_android,system_i386_aros];
flags : [af_outputbinary,af_smartlink_sections,af_supports_dwarf];
labelprefix : '.L';
comment : '';
diff --git a/compiler/i386/cpuinfo.pas b/compiler/i386/cpuinfo.pas
index 97894c14ac..ced7496d15 100644
--- a/compiler/i386/cpuinfo.pas
+++ b/compiler/i386/cpuinfo.pas
@@ -30,6 +30,9 @@ Interface
Type
bestreal = extended;
+{$if FPC_FULLVERSION>20700}
+ bestrealrec = TExtended80Rec;
+{$endif FPC_FULLVERSION>20700}
ts32real = single;
ts64real = double;
ts80real = extended;
@@ -66,8 +69,25 @@ Type
fpu_avx2
);
+ tcontrollertype =
+ (ct_none
+ );
+
Const
+ { 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:''; flashbase:0; flashsize:0; srambase:0; sramsize:0));
+ {$POP}
+
{ calling conventions supported by the code generator }
supported_calling_conventions : tproccalloptions = [
pocall_internproc,
diff --git a/compiler/i386/cpupara.pas b/compiler/i386/cpupara.pas
index 5cfed2c1dc..41b83a892c 100644
--- a/compiler/i386/cpupara.pas
+++ b/compiler/i386/cpupara.pas
@@ -114,6 +114,23 @@ unit cpupara;
end;
end;
end;
+ system_i386_os2,
+ system_i386_emx:
+ begin
+ case def.typ of
+ recorddef :
+ begin
+ { EMX port of GCC returns small records in the FUNCTION_RETURN_REG up to 4 bytes in registers. }
+ if ((pd.proccalloption in [pocall_cdecl,pocall_cppdecl]) and
+ (def.size>0) and
+ (def.size<=4)) then
+ begin
+ result:=false;
+ exit;
+ end;
+ end;
+ end;
+ end;
system_i386_freebsd,
system_i386_openbsd,
system_i386_darwin,
@@ -243,6 +260,7 @@ unit cpupara;
pocall_safecall,
pocall_stdcall,
pocall_cdecl,
+ pocall_syscall,
pocall_cppdecl,
pocall_mwpascal :
result:=[RS_EAX,RS_EDX,RS_ECX];
diff --git a/compiler/i386/cputarg.pas b/compiler/i386/cputarg.pas
index 64cd649c87..427cc1196b 100644
--- a/compiler/i386/cputarg.pas
+++ b/compiler/i386/cputarg.pas
@@ -86,6 +86,9 @@ implementation
{$ifndef NOTARGETEMBEDDED}
,t_embed
{$endif}
+ {$ifndef NOTARGETAROS}
+ ,t_aros
+ {$endif}
{**************************************
Assemblers
diff --git a/compiler/i386/n386add.pas b/compiler/i386/n386add.pas
index 3f42b639c8..b75b18d83d 100644
--- a/compiler/i386/n386add.pas
+++ b/compiler/i386/n386add.pas
@@ -229,8 +229,7 @@ interface
procedure ti386addnode.second_cmp64bit;
var
- hregister,
- hregister2 : tregister;
+ hlab : tasmlabel;
href : treference;
unsigned : boolean;
@@ -247,10 +246,12 @@ interface
case nodetype of
ltn,gtn:
begin
- cg.a_jmp_flags(current_asmdata.CurrAsmList,getresflags(unsigned),current_procinfo.CurrTrueLabel);
+ if (hlab<>current_procinfo.CurrTrueLabel) then
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,getresflags(unsigned),current_procinfo.CurrTrueLabel);
{ cheat a little bit for the negative test }
toggleflag(nf_swapped);
- cg.a_jmp_flags(current_asmdata.CurrAsmList,getresflags(unsigned),current_procinfo.CurrFalseLabel);
+ if (hlab<>current_procinfo.CurrFalseLabel) then
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,getresflags(unsigned),current_procinfo.CurrFalseLabel);
toggleflag(nf_swapped);
end;
lten,gten:
@@ -260,13 +261,15 @@ interface
nodetype:=ltn
else
nodetype:=gtn;
- cg.a_jmp_flags(current_asmdata.CurrAsmList,getresflags(unsigned),current_procinfo.CurrTrueLabel);
+ if (hlab<>current_procinfo.CurrTrueLabel) then
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,getresflags(unsigned),current_procinfo.CurrTrueLabel);
{ cheat for the negative test }
if nodetype=ltn then
nodetype:=gtn
else
nodetype:=ltn;
- cg.a_jmp_flags(current_asmdata.CurrAsmList,getresflags(unsigned),current_procinfo.CurrFalseLabel);
+ if (hlab<>current_procinfo.CurrFalseLabel) then
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,getresflags(unsigned),current_procinfo.CurrFalseLabel);
nodetype:=oldnodetype;
end;
equaln:
@@ -309,24 +312,46 @@ interface
((right.resultdef.typ=orddef) and
(torddef(right.resultdef).ordtype=u64bit));
+ { we have LOC_JUMP as result }
+ location_reset(location,LOC_JUMP,OS_NO);
+
+ { Relational compares against constants having low dword=0 can omit the
+ second compare based on the fact that any unsigned value is >=0 }
+ hlab:=nil;
+ if (right.location.loc=LOC_CONSTANT) and
+ (lo(right.location.value64)=0) then
+ begin
+ case getresflags(true) of
+ F_AE: hlab:=current_procinfo.CurrTrueLabel;
+ F_B: hlab:=current_procinfo.CurrFalseLabel;
+ end;
+ end;
+
+ if (right.location.loc=LOC_CONSTANT) and
+ (left.location.loc in [LOC_REFERENCE,LOC_CREFERENCE]) then
+ begin
+ tcgx86(cg).make_simple_ref(current_asmdata.CurrAsmList,left.location.reference);
+ href:=left.location.reference;
+ inc(href.offset,4);
+ emit_const_ref(A_CMP,S_L,aint(hi(right.location.value64)),href);
+ firstjmp64bitcmp;
+ if assigned(hlab) then
+ cg.a_jmp_always(current_asmdata.CurrAsmList,hlab)
+ else
+ begin
+ emit_const_ref(A_CMP,S_L,aint(lo(right.location.value64)),left.location.reference);
+ secondjmp64bitcmp;
+ end;
+ location_freetemp(current_asmdata.CurrAsmList,left.location);
+ exit;
+ end;
+
{ left and right no register? }
{ then one must be demanded }
- if (left.location.loc<>LOC_REGISTER) then
+ if not (left.location.loc in [LOC_REGISTER,LOC_CREGISTER]) then
begin
- if (right.location.loc<>LOC_REGISTER) then
- begin
- { we can reuse a CREGISTER for comparison }
- if (left.location.loc<>LOC_CREGISTER) then
- begin
- hregister:=cg.getintregister(current_asmdata.CurrAsmList,OS_INT);
- hregister2:=cg.getintregister(current_asmdata.CurrAsmList,OS_INT);
- cg64.a_load64_loc_reg(current_asmdata.CurrAsmList,left.location,joinreg64(hregister,hregister2));
- location_freetemp(current_asmdata.CurrAsmList,left.location);
- location_reset(left.location,LOC_REGISTER,left.location.size);
- left.location.register64.reglo:=hregister;
- left.location.register64.reghi:=hregister2;
- end;
- end
+ if not (right.location.loc in [LOC_REGISTER,LOC_CREGISTER]) then
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,true)
else
begin
location_swap(left.location,right.location);
@@ -334,51 +359,44 @@ interface
end;
end;
- { at this point, left.location.loc should be LOC_REGISTER }
- if right.location.loc=LOC_REGISTER then
- begin
- emit_reg_reg(A_CMP,S_L,right.location.register64.reghi,left.location.register64.reghi);
- firstjmp64bitcmp;
- emit_reg_reg(A_CMP,S_L,right.location.register64.reglo,left.location.register64.reglo);
- secondjmp64bitcmp;
- end
+ { at this point, left.location.loc should be LOC_[C]REGISTER }
+ case right.location.loc of
+ LOC_REGISTER,
+ LOC_CREGISTER :
+ begin
+ emit_reg_reg(A_CMP,S_L,right.location.register64.reghi,left.location.register64.reghi);
+ firstjmp64bitcmp;
+ emit_reg_reg(A_CMP,S_L,right.location.register64.reglo,left.location.register64.reglo);
+ secondjmp64bitcmp;
+ end;
+ LOC_CREFERENCE,
+ LOC_REFERENCE :
+ begin
+ tcgx86(cg).make_simple_ref(current_asmdata.CurrAsmList,right.location.reference);
+ href:=right.location.reference;
+ inc(href.offset,4);
+ emit_ref_reg(A_CMP,S_L,href,left.location.register64.reghi);
+ firstjmp64bitcmp;
+ emit_ref_reg(A_CMP,S_L,right.location.reference,left.location.register64.reglo);
+ secondjmp64bitcmp;
+ location_freetemp(current_asmdata.CurrAsmList,right.location);
+ end;
+ LOC_CONSTANT :
+ begin
+ current_asmdata.CurrAsmList.concat(taicpu.op_const_reg(A_CMP,S_L,aint(hi(right.location.value64)),left.location.register64.reghi));
+ firstjmp64bitcmp;
+ if assigned(hlab) then
+ cg.a_jmp_always(current_asmdata.CurrAsmList,hlab)
+ else
+ begin
+ current_asmdata.CurrAsmList.concat(taicpu.op_const_reg(A_CMP,S_L,aint(lo(right.location.value64)),left.location.register64.reglo));
+ secondjmp64bitcmp;
+ end;
+ end;
else
- begin
- case right.location.loc of
- LOC_CREGISTER :
- begin
- emit_reg_reg(A_CMP,S_L,right.location.register64.reghi,left.location.register64.reghi);
- firstjmp64bitcmp;
- emit_reg_reg(A_CMP,S_L,right.location.register64.reglo,left.location.register64.reglo);
- secondjmp64bitcmp;
- end;
- LOC_CREFERENCE,
- LOC_REFERENCE :
- begin
- tcgx86(cg).make_simple_ref(current_asmdata.CurrAsmList,right.location.reference);
- href:=right.location.reference;
- inc(href.offset,4);
- emit_ref_reg(A_CMP,S_L,href,left.location.register64.reghi);
- firstjmp64bitcmp;
- emit_ref_reg(A_CMP,S_L,right.location.reference,left.location.register64.reglo);
- secondjmp64bitcmp;
- cg.a_jmp_always(current_asmdata.CurrAsmList,current_procinfo.CurrFalseLabel);
- location_freetemp(current_asmdata.CurrAsmList,right.location);
- end;
- LOC_CONSTANT :
- begin
- current_asmdata.CurrAsmList.concat(taicpu.op_const_reg(A_CMP,S_L,aint(hi(right.location.value64)),left.location.register64.reghi));
- firstjmp64bitcmp;
- current_asmdata.CurrAsmList.concat(taicpu.op_const_reg(A_CMP,S_L,aint(lo(right.location.value64)),left.location.register64.reglo));
- secondjmp64bitcmp;
- end;
- else
- internalerror(200203282);
- end;
- end;
+ internalerror(200203282);
+ end;
- { we have LOC_JUMP as result }
- location_reset(location,LOC_JUMP,OS_NO)
end;
@@ -424,6 +442,8 @@ interface
begin
pass_left_right;
+ reg:=NR_NO;
+ reference_reset(ref,sizeof(pint));
{ Mul supports registers and references, so if not register/reference,
load the location into a register.
diff --git a/compiler/i386/n386cal.pas b/compiler/i386/n386cal.pas
index d032174611..052359c4c8 100644
--- a/compiler/i386/n386cal.pas
+++ b/compiler/i386/n386cal.pas
@@ -28,13 +28,16 @@ interface
{ $define AnsiStrRef}
uses
- nx86cal;
+ nx86cal,ncal;
type
ti386callnode = class(tx86callnode)
protected
+ procedure gen_syscall_para(para: tcallparanode); override;
procedure pop_parasize(pop_size:longint);override;
procedure extra_interrupt_code;override;
+ public
+ procedure do_syscall;override;
end;
@@ -46,7 +49,8 @@ implementation
cgbase,cgutils,
cpubase,paramgr,
aasmtai,aasmdata,aasmcpu,
- ncal,nbas,nmem,nld,ncnv,
+ nbas,nmem,nld,ncnv,
+ symdef,symsym,symcpu,
cga,cgobj,cpuinfo;
@@ -55,6 +59,36 @@ implementation
*****************************************************************************}
+ procedure ti386callnode.do_syscall;
+ var
+ tmpref: treference;
+ begin
+ case target_info.system of
+ system_i386_aros:
+ begin
+ // one syscall convention for AROS
+ current_asmdata.CurrAsmList.concat(tai_comment.create(strpnew('AROS SysCall')));
+ reference_reset(tmpref,sizeof(pint));
+ tmpref.symbol:=current_asmdata.RefAsmSymbol(tstaticvarsym(tcpuprocdef(procdefinition).libsym).mangledname);
+ cg.getcpuregister(current_asmdata.CurrAsmList,NR_EAX);
+ cg.a_load_ref_reg(current_asmdata.CurrAsmList,OS_ADDR,OS_ADDR,tmpref,NR_EAX);
+ reference_reset_base(tmpref,NR_EAX,-tprocdef(procdefinition).extnumber,sizeof(pint));
+ cg.a_load_ref_reg(current_asmdata.CurrAsmList,OS_ADDR,OS_ADDR,tmpref,NR_EAX);
+ cg.a_call_reg(current_asmdata.CurrAsmList,NR_EAX);
+ cg.ungetcpuregister(current_asmdata.CurrAsmList,NR_EAX);
+ end;
+ else
+ internalerror(2014081801);
+ end;
+ end;
+
+
+ procedure ti386callnode.gen_syscall_para(para: tcallparanode);
+ begin
+ { lib parameter has no special type but proccalloptions must be a syscall }
+ para.left:=cloadnode.create(tcpuprocdef(procdefinition).libsym,tcpuprocdef(procdefinition).libsym.owner);
+ end;
+
procedure ti386callnode.extra_interrupt_code;
begin
if not(target_info.system in [system_i386_darwin,system_i386_iphonesim,system_i386_android]) then
diff --git a/compiler/i386/n386flw.pas b/compiler/i386/n386flw.pas
index dee3320a9d..624b35423b 100644
--- a/compiler/i386/n386flw.pas
+++ b/compiler/i386/n386flw.pas
@@ -316,6 +316,7 @@ procedure ti386tryfinallynode.pass_generate_code;
breakfinallylabel:=nil;
exceptlabel:=nil;
safecalllabel:=nil;
+ hreg:=NR_NO;
is_safecall:=implicitframe and (current_procinfo.procdef.proccalloption=pocall_safecall);
{ check if child nodes do a break/continue/exit }
@@ -489,6 +490,12 @@ procedure ti386tryexceptnode.pass_generate_code;
end;
location_reset(location,LOC_VOID,OS_NO);
+ exceptflowcontrol:=[];
+ breakexceptlabel:=nil;
+ continueexceptlabel:=nil;
+ breaktrylabel:=nil;
+ continuetrylabel:=nil;
+
oldflowcontrol:=flowcontrol;
flowcontrol:=[fc_inflowcontrol];
{ this can be called recursivly }
@@ -528,7 +535,7 @@ procedure ti386tryexceptnode.pass_generate_code;
{ start of scope }
if assigned(right) then
begin
- current_asmdata.getdatalabel(filterlabel);
+ current_asmdata.getaddrlabel(filterlabel);
emit_scope_start(
current_asmdata.RefAsmSymbol('__FPC_on_handler'),
filterlabel);
@@ -602,8 +609,7 @@ procedure ti386tryexceptnode.pass_generate_code;
begin
if hnode.nodetype<>onn then
InternalError(2011103101);
- { TODO: make it done without using global label }
- current_asmdata.getglobaljumplabel(onlabel);
+ current_asmdata.getjumplabel(onlabel);
hlist.concat(tai_const.create_sym(current_asmdata.RefAsmSymbol(tonnode(hnode).excepttype.vmt_mangledname,AT_DATA)));
hlist.concat(tai_const.create_sym(onlabel));
cg.a_label(current_asmdata.CurrAsmList,onlabel);
@@ -619,8 +625,7 @@ procedure ti386tryexceptnode.pass_generate_code;
inc(onnodecount.value);
end;
{ now move filter table to permanent list all at once }
- maybe_new_object_file(current_asmdata.asmlists[al_typedconsts]);
- current_asmdata.asmlists[al_typedconsts].concatlist(hlist);
+ current_procinfo.aktlocaldata.concatlist(hlist);
hlist.free;
end;
diff --git a/compiler/i386/symcpu.pas b/compiler/i386/symcpu.pas
index 9fbc65bab5..6e4ab4bd78 100644
--- a/compiler/i386/symcpu.pas
+++ b/compiler/i386/symcpu.pas
@@ -26,7 +26,7 @@ unit symcpu;
interface
uses
- symtype,symdef,symsym,symx86,symi86;
+ symconst,symtype,symdef,symsym,symx86,symi86;
type
{ defs }
@@ -91,6 +91,15 @@ type
tcpuprocvardefclass = class of tcpuprocvardef;
tcpuprocdef = class(ti86procdef)
+ procedure ppuload_platform(ppufile: tcompilerppufile); override;
+ procedure ppuwrite_platform(ppufile: tcompilerppufile); override;
+ public
+ { library symbol for AROS }
+ libsym : tsym;
+ libsymderef : tderef;
+ function getcopyas(newtyp: tdeftyp; copytyp: tproccopytyp): tstoreddef; override;
+ procedure buildderef; override;
+ procedure deref; override;
end;
tcpuprocdefclass = class of tcpuprocdef;
@@ -170,6 +179,52 @@ const
implementation
+{****************************************************************************
+ tcpuprocdef
+****************************************************************************}
+
+ procedure tcpuprocdef.ppuload_platform(ppufile: tcompilerppufile);
+ begin
+ inherited;
+ if po_syscall_has_libsym in procoptions then
+ ppufile.getderef(libsymderef);
+ end;
+
+
+ procedure tcpuprocdef.ppuwrite_platform(ppufile: tcompilerppufile);
+ begin
+ inherited;
+ if po_syscall_has_libsym in procoptions then
+ ppufile.putderef(libsymderef);
+ end;
+
+
+ function tcpuprocdef.getcopyas(newtyp: tdeftyp; copytyp: tproccopytyp): tstoreddef;
+ begin
+ result:=inherited;
+ if newtyp=procdef then
+ tcpuprocdef(result).libsym:=libsym;
+ end;
+
+
+ procedure tcpuprocdef.buildderef;
+ begin
+ inherited;
+ if po_syscall_has_libsym in procoptions then
+ libsymderef.build(libsym);
+ end;
+
+
+ procedure tcpuprocdef.deref;
+ begin
+ inherited;
+ if po_syscall_has_libsym in procoptions then
+ libsym:=tsym(libsymderef.resolve)
+ else
+ libsym:=nil;
+ end;
+
+
begin
{ used tdef classes }
cfiledef:=tcpufiledef;
@@ -207,5 +262,7 @@ begin
cconstsym:=tcpuconstsym;
cenumsym:=tcpuenumsym;
csyssym:=tcpusyssym;
+
+ cPtrDefHashSet:=tx86PtrDefHashSet;
end.
diff --git a/compiler/i8086/cpuinfo.pas b/compiler/i8086/cpuinfo.pas
index d68369b947..ef971a94ad 100644
--- a/compiler/i8086/cpuinfo.pas
+++ b/compiler/i8086/cpuinfo.pas
@@ -30,6 +30,9 @@ Interface
Type
bestreal = extended;
+{$if FPC_FULLVERSION>20700}
+ bestrealrec = TExtended80Rec;
+{$endif FPC_FULLVERSION>20700}
ts32real = single;
ts64real = double;
ts80real = extended;
@@ -66,8 +69,25 @@ Type
fpu_avx2
);
+ tcontrollertype =
+ (ct_none
+ );
+
Const
+ { 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:''; flashbase:0; flashsize:0; srambase:0; sramsize:0));
+ {$POP}
+
{ calling conventions supported by the code generator }
supported_calling_conventions : tproccalloptions = [
pocall_internproc,
diff --git a/compiler/i8086/n8086add.pas b/compiler/i8086/n8086add.pas
index bc1feed76b..d090b996f4 100644
--- a/compiler/i8086/n8086add.pas
+++ b/compiler/i8086/n8086add.pas
@@ -55,7 +55,7 @@ interface
uses
globtype,systems,
cutils,verbose,globals,constexp,pass_1,
- symconst,symdef,symtype,paramgr,defutil,
+ symconst,symdef,symtype,symcpu,paramgr,defutil,
aasmbase,aasmtai,aasmdata,aasmcpu,
cgbase,procinfo,
ncal,ncon,nset,cgutils,tgobj,
@@ -960,6 +960,9 @@ interface
asmops: array[boolean] of tasmop = (A_IMUL, A_MUL);
begin
+ reg:=NR_NO;
+ reference_reset(ref,sizeof(pint));
+
pass_left_right;
{ MUL is faster than IMUL on the 8086 & 8088 (and equal in speed on 286+),
diff --git a/compiler/i8086/n8086inl.pas b/compiler/i8086/n8086inl.pas
index e369f53c7f..cb7d08ed8c 100644
--- a/compiler/i8086/n8086inl.pas
+++ b/compiler/i8086/n8086inl.pas
@@ -37,6 +37,7 @@ interface
function first_seg: tnode; override;
procedure second_seg; override;
procedure second_get_frame;override;
+ function first_IncDec: tnode;override;
procedure second_incdec;override;
end;
@@ -51,10 +52,10 @@ implementation
symconst,
defutil,
aasmbase,aasmtai,aasmdata,aasmcpu,
- symtype,symdef,
- cgbase,pass_2,
+ symtype,symdef,symcpu,
+ cgbase,pass_1,pass_2,
cpuinfo,cpubase,paramgr,
- nbas,ncon,ncal,ncnv,nld,ncgutil,
+ nbas,nadd,ncon,ncal,ncnv,nld,ncgutil,
tgobj,
cga,cgutils,cgx86,cgobj,hlcgobj,
htypechk,procinfo;
@@ -138,6 +139,45 @@ implementation
inherited second_get_frame;
end;
+ function ti8086inlinenode.first_IncDec: tnode;
+ var
+ procname:string;
+ elesize: Tconstexprint;
+ hp: tnode;
+ begin
+ if is_hugepointer(tcallparanode(left).left.resultdef) then
+ begin
+ case inlinenumber of
+ in_inc_x:
+ procname:='fpc_hugeptr_inc_longint';
+ in_dec_x:
+ procname:='fpc_hugeptr_dec_longint';
+ else
+ internalerror(2014121001);
+ end;
+ if cs_hugeptr_arithmetic_normalization in current_settings.localswitches then
+ procname:=procname+'_normalized';
+
+ if is_void(tpointerdef(tcallparanode(left).left.resultdef).pointeddef) then
+ elesize:=1
+ else
+ elesize:=tpointerdef(tcallparanode(left).left.resultdef).pointeddef.size;
+
+ hp := cordconstnode.create(elesize,s32inttype,false);
+ { extra parameter? }
+ if assigned(tcallparanode(left).right) then
+ hp:=caddnode.create(muln,hp,tcallparanode(tcallparanode(left).right).left.getcopy);
+
+ result:=ccallnode.createintern(procname,
+ ccallparanode.create(hp,
+ ccallparanode.create(tcallparanode(left).left.getcopy,nil)));
+ typecheckpass(result);
+ firstpass(result);
+ end
+ else
+ result:=inherited;
+ end;
+
procedure ti8086inlinenode.second_incdec;
const
addsubop:array[in_inc_x..in_dec_x] of TOpCG=(OP_ADD,OP_SUB);
diff --git a/compiler/i8086/n8086mat.pas b/compiler/i8086/n8086mat.pas
index 869efa8220..74057962ec 100644
--- a/compiler/i8086/n8086mat.pas
+++ b/compiler/i8086/n8086mat.pas
@@ -398,6 +398,7 @@ implementation
hreg64hi:=left.location.register64.reghi;
hreg64lo:=left.location.register64.reglo;
+ v:=0;
if right.nodetype=ordconstn then
v:=Tordconstnode(right).value and 63;
diff --git a/compiler/i8086/n8086mem.pas b/compiler/i8086/n8086mem.pas
index 478c35c7ff..7d12ef9223 100644
--- a/compiler/i8086/n8086mem.pas
+++ b/compiler/i8086/n8086mem.pas
@@ -43,21 +43,23 @@ interface
{ tx86vecnode doesn't work for i8086, so we inherit tcgvecnode }
ti8086vecnode = class(tcgvecnode)
+ protected
+ function first_arraydef: tnode;override;
procedure update_reference_reg_mul(maybe_const_reg:tregister;l:aint);override;
end;
implementation
uses
- systems,globals,
+ systems,globals,constexp,
cutils,verbose,
- symbase,symconst,symdef,symtable,symtype,symsym,symcpu,
+ symbase,symconst,symdef,symtable,symtype,symsym,symx86,symcpu,
parabase,paramgr,
aasmtai,aasmdata,
- nld,ncon,nadd,
+ nld,ncon,nadd,ncal,ncnv,
cgutils,cgobj,
defutil,hlcgobj,
- pass_2,ncgutil;
+ pass_1,pass_2,ncgutil;
{*****************************************************************************
TI8086ADDRNODE
@@ -170,6 +172,46 @@ implementation
TI8086VECNODE
*****************************************************************************}
+ function ti8086vecnode.first_arraydef: tnode;
+ var
+ arraydef: tcpuarraydef;
+ procname:string;
+ begin
+ if tcpuarraydef(left.resultdef).is_huge then
+ begin
+ arraydef:=tcpuarraydef(left.resultdef);
+
+ if not (ado_IsConvertedPointer in arraydef.arrayoptions) then
+ internalerror(2014080701);
+
+ if left.nodetype<>typeconvn then
+ internalerror(2014080702);
+
+ procname:='fpc_hugeptr_add_longint';
+ if cs_hugeptr_arithmetic_normalization in current_settings.localswitches then
+ procname:=procname+'_normalized';
+
+ if arraydef.elementdef.size>1 then
+ right:=caddnode.create(muln,right,
+ cordconstnode.create(arraydef.elementdef.size,s32inttype,true));
+
+ result:=ccallnode.createintern(procname,
+ ccallparanode.create(right,
+ ccallparanode.create(ttypeconvnode(left).left,nil)));
+ inserttypeconv_internal(result,getx86pointerdef(arraydef.elementdef,x86pt_huge));
+ result:=cderefnode.create(result);
+
+ ttypeconvnode(left).left:=nil;
+ ttypeconvnode(left).free;
+ left := nil;
+ right := nil;
+ firstpass(result);
+ end
+ else
+ result:=inherited;
+ end;
+
+
procedure ti8086vecnode.update_reference_reg_mul(maybe_const_reg:tregister;l:aint);
var
saveseg: TRegister;
diff --git a/compiler/i8086/n8086tcon.pas b/compiler/i8086/n8086tcon.pas
index 0d4a735322..4a10b94615 100644
--- a/compiler/i8086/n8086tcon.pas
+++ b/compiler/i8086/n8086tcon.pas
@@ -42,7 +42,7 @@ interface
implementation
uses
- ncnv,defcmp,defutil,aasmtai;
+ ncnv,defcmp,defutil,aasmtai,symcpu;
{ ti8086typedconstbuilder }
diff --git a/compiler/i8086/symcpu.pas b/compiler/i8086/symcpu.pas
index 9c47c46117..9617a45160 100644
--- a/compiler/i8086/symcpu.pas
+++ b/compiler/i8086/symcpu.pas
@@ -57,6 +57,7 @@ type
tcpupointerdef = class(tx86pointerdef)
class function default_x86_data_pointer_type: tx86pointertyp; override;
+ function pointer_arithmetic_int_type:tdef; override;
function pointer_subtraction_result_type:tdef; override;
end;
tcpupointerdefclass = class of tcpupointerdef;
@@ -77,7 +78,19 @@ type
end;
tcpuclassrefdefclass = class of tcpuclassrefdef;
+ { tcpuarraydef }
+
tcpuarraydef = class(tarraydef)
+ private
+ huge: Boolean;
+ protected
+ procedure ppuload_platform(ppufile: tcompilerppufile); override;
+ procedure ppuwrite_platform(ppufile: tcompilerppufile); override;
+ public
+ constructor create_from_pointer(def:tpointerdef);override;
+ function getcopy: tstoreddef; override;
+ function GetTypeName:string;override;
+ property is_huge: Boolean read huge write huge;
end;
tcpuarraydefclass = class of tcpuarraydef;
@@ -197,11 +210,16 @@ const
function is_proc_far(p: tabstractprocdef): boolean;
+ {# Returns true if p is a far pointer def }
+ function is_farpointer(p : tdef) : boolean;
+
+ {# Returns true if p is a huge pointer def }
+ function is_hugepointer(p : tdef) : boolean;
implementation
uses
- globals, cpuinfo, verbose;
+ globals, cpuinfo, verbose, fmodule;
function is_proc_far(p: tabstractprocdef): boolean;
@@ -214,6 +232,68 @@ implementation
internalerror(2014041301);
end;
+ { true if p is a far pointer def }
+ function is_farpointer(p : tdef) : boolean;
+ begin
+ result:=(p.typ=pointerdef) and (tcpupointerdef(p).x86pointertyp=x86pt_far);
+ end;
+
+ { true if p is a huge pointer def }
+ function is_hugepointer(p : tdef) : boolean;
+ begin
+ result:=(p.typ=pointerdef) and (tcpupointerdef(p).x86pointertyp=x86pt_huge);
+ end;
+
+{****************************************************************************
+ tcpuarraydef
+****************************************************************************}
+
+ constructor tcpuarraydef.create_from_pointer(def: tpointerdef);
+ begin
+ if tcpupointerdef(def).x86pointertyp=x86pt_huge then
+ begin
+ huge:=true;
+ { use -1 so that the elecount will not overflow }
+ self.create(0,high(asizeint)-1,s32inttype);
+ arrayoptions:=[ado_IsConvertedPointer];
+ setelementdef(def.pointeddef);
+ end
+ else
+ begin
+ huge:=false;
+ inherited create_from_pointer(def);
+ end;
+ end;
+
+
+ function tcpuarraydef.getcopy: tstoreddef;
+ begin
+ result:=inherited;
+ tcpuarraydef(result).huge:=huge;
+ end;
+
+
+ function tcpuarraydef.GetTypeName: string;
+ begin
+ Result:=inherited;
+ if is_huge then
+ Result:='Huge '+Result;
+ end;
+
+
+ procedure tcpuarraydef.ppuload_platform(ppufile: tcompilerppufile);
+ begin
+ inherited;
+ huge:=(ppufile.getbyte<>0);
+ end;
+
+
+ procedure tcpuarraydef.ppuwrite_platform(ppufile: tcompilerppufile);
+ begin
+ inherited;
+ ppufile.putbyte(byte(huge));
+ end;
+
{****************************************************************************
tcpuprocdef
@@ -312,6 +392,15 @@ implementation
end;
+ function tcpupointerdef.pointer_arithmetic_int_type:tdef;
+ begin
+ if x86pointertyp=x86pt_huge then
+ result:=s32inttype
+ else
+ result:=inherited;
+ end;
+
+
function tcpupointerdef.pointer_subtraction_result_type:tdef;
begin
case x86pointertyp of
@@ -381,5 +470,7 @@ begin
cconstsym:=tcpuconstsym;
cenumsym:=tcpuenumsym;
csyssym:=tcpusyssym;
+
+ cPtrDefHashSet:=tx86PtrDefHashSet;
end.
diff --git a/compiler/ia64/cpuinfo.pas b/compiler/ia64/cpuinfo.pas
index 1d9232c830..5d0a8d0c1b 100644
--- a/compiler/ia64/cpuinfo.pas
+++ b/compiler/ia64/cpuinfo.pas
@@ -30,6 +30,9 @@ uses
Type
bestreal = extended;
+{$if FPC_FULLVERSION>20700}
+ bestrealrec = TExtended80Rec;
+{$endif FPC_FULLVERSION>20700}
ts32real = single;
ts64real = double;
ts80real = extended;
@@ -49,7 +52,25 @@ Type
fpu_itanium
);
-const
+ tcontrollertype =
+ (ct_none
+ );
+
+
+Const
+ { 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:''; flashbase:0; flashsize:0; srambase:0; sramsize:0));
+ {$POP}
+
{ calling conventions supported by the code generator }
supported_calling_conventions : tproccalloptions = [
pocall_internproc,
diff --git a/compiler/impdef.pas b/compiler/impdef.pas
index dbbe56327f..d70e5e79bc 100644
--- a/compiler/impdef.pas
+++ b/compiler/impdef.pas
@@ -121,7 +121,7 @@ const
{$ifdef unix}
DirSep = '/';
{$else}
- {$if defined(amiga) or defined(morphos)}
+ {$ifdef hasamiga}
DirSep = '/';
{$else}
DirSep = '\';
diff --git a/compiler/jvm/cpuinfo.pas b/compiler/jvm/cpuinfo.pas
index e4918dc954..62b89fcd1f 100644
--- a/compiler/jvm/cpuinfo.pas
+++ b/compiler/jvm/cpuinfo.pas
@@ -21,6 +21,9 @@ Interface
Type
bestreal = double;
+{$if FPC_FULLVERSION>20700}
+ bestrealrec = TDoubleRec;
+{$endif FPC_FULLVERSION>20700}
ts32real = single;
ts64real = double;
ts80real = extended;
@@ -44,8 +47,25 @@ Type
fpu_standard
);
+ tcontrollertype =
+ (ct_none
+ );
+
Const
+ { 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:''; flashbase:0; flashsize:0; srambase:0; sramsize:0));
+ {$POP}
+
{ calling conventions supported by the code generator }
supported_calling_conventions : tproccalloptions = [
pocall_internproc
diff --git a/compiler/jvm/dbgjasm.pas b/compiler/jvm/dbgjasm.pas
index 2b76bbc1ca..40c971ad74 100644
--- a/compiler/jvm/dbgjasm.pas
+++ b/compiler/jvm/dbgjasm.pas
@@ -38,9 +38,10 @@ interface
TDebugInfoJasmin=class(TDebugInfo)
protected
fcurrprocstart,
+ fcurrprocafterstart,
fcurrprocend: tasmsymbol;
- procedure appendsym_localsym(list: TAsmList; sym: tabstractnormalvarsym);
+ procedure appendsym_localsym(list: TAsmList; sym: tabstractnormalvarsym; startlab: tasmsymbol);
procedure appendsym_paravar(list:TAsmList;sym:tparavarsym);override;
procedure appendsym_localvar(list:TAsmList;sym:tlocalvarsym);override;
@@ -65,7 +66,7 @@ implementation
TDebugInfoJasmin
****************************************************************************}
- procedure TDebugInfoJasmin.appendsym_localsym(list: TAsmList; sym: tabstractnormalvarsym);
+ procedure TDebugInfoJasmin.appendsym_localsym(list: TAsmList; sym: tabstractnormalvarsym; startlab: tasmsymbol);
var
jvar: tai_jvar;
proc: tprocdef;
@@ -75,20 +76,20 @@ implementation
if not(sym.localloc.loc in [LOC_REFERENCE,LOC_CREFERENCE]) then
exit;
proc:=tprocdef(sym.owner.defowner);
- jvar:=tai_jvar.create(sym.localloc.reference.offset,jvmmangledbasename(sym,true),fcurrprocstart,fcurrprocend);
+ jvar:=tai_jvar.create(sym.localloc.reference.offset,jvmmangledbasename(sym,true),startlab,fcurrprocend);
tcpuprocdef(proc).exprasmlist.InsertAfter(jvar,proc.procstarttai);
end;
procedure TDebugInfoJasmin.appendsym_paravar(list: TAsmList; sym: tparavarsym);
begin
- appendsym_localsym(list,sym);
+ appendsym_localsym(list,sym,fcurrprocstart);
end;
procedure TDebugInfoJasmin.appendsym_localvar(list: TAsmList; sym: tlocalvarsym);
begin
- appendsym_localsym(list,sym);
+ appendsym_localsym(list,sym,fcurrprocafterstart);
end;
@@ -100,7 +101,11 @@ implementation
procedure TDebugInfoJasmin.appendprocdef(list: TAsmList; def: tprocdef);
var
procstartlabel,
- procendlabel : tasmlabel;
+ procendlabel,
+ afterprocstartlabel : tasmlabel;
+ hp,
+ afterproccodestart : tai;
+ instrcount : longint;
begin
{ insert debug information for local variables and parameters, but only
for routines implemented in the Pascal code }
@@ -113,6 +118,33 @@ implementation
tcpuprocdef(def).exprasmlist.insertbefore(tai_label.create(procendlabel),def.procendtai);
fcurrprocstart:=procstartlabel;
+ { set the start label for local variables after the first instruction,
+ because javac's code completion support assumes that all info at
+ bytecode position 0 is for parameters }
+ instrcount:=0;
+ afterproccodestart:=def.procstarttai;
+ while assigned(afterproccodestart.next) do
+ begin
+ afterproccodestart:=tai(afterproccodestart.next);
+ if (afterproccodestart.typ=ait_instruction) then
+ break;
+ end;
+ { must be followed by at least one more instruction }
+ hp:=tai(afterproccodestart.next);
+ while assigned(hp) do
+ begin
+ if hp.typ=ait_instruction then
+ break;
+ hp:=tai(hp.next);
+ end;
+ if assigned(hp) then
+ begin
+ current_asmdata.getlabel(afterprocstartlabel,alt_dbgtype);
+ tcpuprocdef(def).exprasmlist.insertafter(tai_label.create(afterprocstartlabel),afterproccodestart);
+ fcurrprocafterstart:=afterprocstartlabel;
+ end
+ else
+ fcurrprocafterstart:=procstartlabel;
fcurrprocend:=procendlabel;
write_symtable_parasyms(list,def.paras);
diff --git a/compiler/jvm/njvmflw.pas b/compiler/jvm/njvmflw.pas
index 966a57a23d..25f9d11fb0 100644
--- a/compiler/jvm/njvmflw.pas
+++ b/compiler/jvm/njvmflw.pas
@@ -340,6 +340,12 @@ implementation
reasonbuf,
exceptreg: tregister;
begin
+ oldBreakLabel:=nil;
+ oldContinueLabel:=nil;
+ finallycodecopy:=nil;
+ continuefinallylabel:=nil;
+ breakfinallylabel:=nil;
+
{ not necessary on a garbage-collected platform }
if implicitframe then
internalerror(2011031803);
diff --git a/compiler/jvm/njvminl.pas b/compiler/jvm/njvminl.pas
index e4176fc838..3141b48016 100644
--- a/compiler/jvm/njvminl.pas
+++ b/compiler/jvm/njvminl.pas
@@ -87,13 +87,13 @@ implementation
function tjvminlinenode.typecheck_length(var handled: boolean): tnode;
begin
+ result:=nil;
typecheckpass(left);
if is_open_array(left.resultdef) or
is_dynamic_array(left.resultdef) or
is_array_of_const(left.resultdef) then
begin
resultdef:=s32inttype;
- result:=nil;
handled:=true;
end;
end;
@@ -101,6 +101,7 @@ implementation
function tjvminlinenode.typecheck_high(var handled: boolean): tnode;
begin
+ result:=nil;
typecheckpass(left);
if is_dynamic_array(left.resultdef) or
is_open_array(left.resultdef) or
@@ -120,6 +121,7 @@ implementation
para: tcallparanode;
elemdef: tdef;
begin
+ result:=nil;
{ normally never exists; used by the JVM backend to create new
arrays because it requires special opcodes }
tcallparanode(left).get_paratype;
@@ -150,7 +152,6 @@ implementation
para:=tcallparanode(para.right);
elemdef:=tarraydef(elemdef).elementdef;
end;
- result:=nil;
resultdef:=left.resultdef;
handled:=true;
end;
@@ -289,6 +290,7 @@ implementation
var
handled: boolean;
begin
+ result:=nil;
handled:=false;
case inlinenumber of
in_length_x:
diff --git a/compiler/jvm/njvmmem.pas b/compiler/jvm/njvmmem.pas
index a93902a3f5..a65a070077 100644
--- a/compiler/jvm/njvmmem.pas
+++ b/compiler/jvm/njvmmem.pas
@@ -361,6 +361,8 @@ implementation
newsize: tcgsize;
isjump: boolean;
begin
+ otl:=nil;
+ ofl:=nil;
if left.resultdef.typ=stringdef then
internalerror(2011052702);
diff --git a/compiler/jvm/njvmutil.pas b/compiler/jvm/njvmutil.pas
index 72df2627b2..ad61b5099c 100644
--- a/compiler/jvm/njvmutil.pas
+++ b/compiler/jvm/njvmutil.pas
@@ -75,6 +75,9 @@ implementation
paras: tcallparanode;
proc: string;
begin
+ result:=nil;
+ proc:='';
+ temp:=nil;
if not assigned(p.resultdef) then
typecheckpass(p);
if ((p.resultdef.typ=stringdef) and
diff --git a/compiler/jvm/tgcpu.pas b/compiler/jvm/tgcpu.pas
index 012f90d80d..12f163226b 100644
--- a/compiler/jvm/tgcpu.pas
+++ b/compiler/jvm/tgcpu.pas
@@ -46,7 +46,7 @@ unit tgcpu;
public
procedure setfirsttemp(l : longint); override;
procedure getlocal(list: TAsmList; size: longint; alignment: shortint; def: tdef; var ref: treference); override;
- procedure gethltemp(list: TAsmList; def: tdef; forcesize: aint; temptype: ttemptype; out ref: treference); override;
+ procedure gethltemp(list: TAsmList; def: tdef; forcesize: asizeint; temptype: ttemptype; out ref: treference); override;
procedure gethltemptyped(list: TAsmList; def: tdef; temptype: ttemptype; out ref: treference); override;
end;
@@ -145,8 +145,8 @@ unit tgcpu;
if tprocsym(sym).procdeflist.Count<>1 then
internalerror(2011062801);
pd:=tprocdef(tprocsym(sym).procdeflist[0]);
+ hlcg.a_call_name(list,pd,pd.mangledname,nil,false);
end;
- hlcg.a_call_name(list,pd,pd.mangledname,nil,false);
{ static calls method replaces parameter with set instance
-> no change in stack height }
end
@@ -202,8 +202,8 @@ unit tgcpu;
if tprocsym(sym).procdeflist.Count<>1 then
internalerror(2011052404);
pd:=tprocdef(tprocsym(sym).procdeflist[0]);
+ hlcg.a_call_name(list,pd,pd.mangledname,nil,false);
end;
- hlcg.a_call_name(list,pd,pd.mangledname,nil,false);
{ static calls method replaces parameter with string instance
-> no change in stack height }
{ store reference to instance }
@@ -245,7 +245,7 @@ unit tgcpu;
end;
- procedure ttgjvm.gethltemp(list: TAsmList; def: tdef; forcesize: aint; temptype: ttemptype; out ref: treference);
+ procedure ttgjvm.gethltemp(list: TAsmList; def: tdef; forcesize: asizeint; temptype: ttemptype; out ref: treference);
begin
if not getifspecialtemp(list,def,forcesize,temptype,ref) then
inherited;
diff --git a/compiler/m68k/aasmcpu.pas b/compiler/m68k/aasmcpu.pas
index c9689eea24..f2d0f34104 100644
--- a/compiler/m68k/aasmcpu.pas
+++ b/compiler/m68k/aasmcpu.pas
@@ -464,6 +464,7 @@ type
result:=operand_read;
case opcode of
+ // CPU opcodes
A_MOVE, A_MOVEQ, A_MOVEA, A_MVZ, A_MVS, A_MOV3Q, A_LEA:
if opnr=1 then
result:=operand_write;
@@ -479,10 +480,21 @@ type
A_CLR, A_SXX, A_SEQ, A_SNE, A_SLT, A_SLE, A_SGT, A_SGE, A_SCS, A_SCC,
A_SMI, A_SPL, A_SF, A_ST, A_SVS, A_SVC, A_SHI, A_SLS:
result:=operand_write;
- A_NEG, A_NEGX, A_EXT, A_EXTB, A_NOT:
+ A_NEG, A_NEGX, A_EXT, A_EXTB, A_NOT, A_SWAP:
result:=operand_readwrite;
A_TST,A_CMP,A_CMPI:
begin end; { Do nothing, default operand_read is fine here. }
+
+ // FPU opcodes
+ A_FMOVE:
+ if opnr=1 then
+ result:=operand_write;
+ A_FADD, A_FSUB, A_FMUL, A_FDIV:
+ if opnr=1 then
+ result:=operand_readwrite;
+ A_FCMP:
+ begin end; { operand_read }
+
else begin
internalerror(2004040903);
end;
@@ -508,17 +520,17 @@ type
function spilling_create_store(r:tregister; const ref:treference):Taicpu;
begin
- case getregtype(r) of
- R_INTREGISTER :
- result:=taicpu.op_reg_ref(A_MOVE,S_L,r,ref);
- R_ADDRESSREGISTER :
- result:=taicpu.op_reg_ref(A_MOVE,S_L,r,ref);
- R_FPUREGISTER :
+ case getregtype(r) of
+ R_INTREGISTER :
+ result:=taicpu.op_reg_ref(A_MOVE,S_L,r,ref);
+ R_ADDRESSREGISTER :
+ result:=taicpu.op_reg_ref(A_MOVE,S_L,r,ref);
+ R_FPUREGISTER :
// no need to handle sizes here
result:=taicpu.op_reg_ref(A_FMOVE,S_FS,r,ref);
else
internalerror(200602012);
- end;
+ end;
end;
diff --git a/compiler/m68k/cgcpu.pas b/compiler/m68k/cgcpu.pas
index 39b38ceaf0..2d0220c16a 100644
--- a/compiler/m68k/cgcpu.pas
+++ b/compiler/m68k/cgcpu.pas
@@ -108,6 +108,7 @@ unit cgcpu;
tcg64f68k = 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;regdst : tregister64);override;
+ procedure a_op64_ref_reg(list : TAsmList;op:TOpCG;size : tcgsize;const ref : treference;reg : tregister64);override;
end;
{ This function returns true if the reference+offset is valid.
@@ -377,8 +378,9 @@ unit cgcpu;
if use_push(cgpara) then
begin
{ Record copy? }
- if (cgpara.size in [OS_NO,OS_F64]) or (size=OS_NO) then
+ if (cgpara.size in [OS_NO,OS_F64]) or (size in [OS_NO,OS_F64]) then
begin
+ //list.concat(tai_comment.create(strpnew('a_load_ref_cgpara: g_concatcopy')));
cgpara.check_simple_location;
len:=align(cgpara.intsize,cgpara.alignment);
g_stackpointer_alloc(list,len);
@@ -751,7 +753,11 @@ unit cgcpu;
list.concat(taicpu.op_reg(A_CLR,S_L,register))
else
begin
- if (longint(a) >= low(shortint)) and (longint(a) <= high(shortint)) then
+ { Prefer MOV3Q if applicable, it allows replacement spilling for register }
+ if (current_settings.cputype in [cpu_isa_b,cpu_isa_c]) and
+ ((longint(a)=-1) or ((longint(a)>0) and (longint(a)<8))) then
+ list.concat(taicpu.op_const_reg(A_MOV3Q,S_L,longint(a),register))
+ else if (longint(a) >= low(shortint)) and (longint(a) <= high(shortint)) then
list.concat(taicpu.op_const_reg(A_MOVEQ,S_L,longint(a),register))
else
begin
@@ -786,11 +792,18 @@ unit cgcpu;
hreg : tregister;
href : treference;
begin
+ a:=longint(a);
href:=ref;
fixref(list,href);
+ if (a=0) and not (current_settings.cputype = cpu_mc68000) then
+ list.concat(taicpu.op_ref(A_CLR,tcgsize2opsize[tosize],href))
+ else if (tcgsize2opsize[tosize]=S_L) and
+ (current_settings.cputype in [cpu_isa_b,cpu_isa_c]) and
+ ((a=-1) or ((a>0) and (a<8))) then
+ list.concat(taicpu.op_const_ref(A_MOV3Q,S_L,a,href))
{ for coldfire we need to go through a temporary register if we have a
offset, index or symbol given }
- if (current_settings.cputype in cpu_coldfire) and
+ else if (current_settings.cputype in cpu_coldfire) and
(
(href.offset<>0) or
{ TODO : check whether we really need this second condition }
@@ -902,10 +915,13 @@ unit cgcpu;
var
instr : taicpu;
begin
- { move to destination register }
- instr:=taicpu.op_reg_reg(A_MOVE,TCGSize2OpSize[fromsize],reg1,reg2);
- add_move_instruction(instr);
- list.concat(instr);
+ { move to destination register }
+ if (reg1<>reg2) then
+ begin
+ instr:=taicpu.op_reg_reg(A_MOVE,TCGSize2OpSize[fromsize],reg1,reg2);
+ add_move_instruction(instr);
+ list.concat(instr);
+ end;
sign_extend(list, fromsize, reg2);
end;
@@ -923,17 +939,25 @@ unit cgcpu;
size:=tosize;
list.concat(taicpu.op_ref_reg(A_MOVE,TCGSize2OpSize[size],href,register));
{ extend the value in the register }
- sign_extend(list, fromsize, register);
+ sign_extend(list, size, register);
end;
procedure tcg68k.a_loadaddr_ref_reg(list : TAsmList;const ref : treference;r : tregister);
var
href : treference;
+ hreg : tregister;
begin
href:=ref;
fixref(list, href);
- list.concat(taicpu.op_ref_reg(A_LEA,S_L,href,r));
+ if not isaddressregister(r) then
+ begin
+ hreg:=getaddressregister(list);
+ list.concat(taicpu.op_ref_reg(A_LEA,S_L,href,hreg));
+ a_load_reg_reg(list, OS_ADDR, OS_ADDR, hreg, r);
+ end
+ else
+ list.concat(taicpu.op_ref_reg(A_LEA,S_L,href,r));
end;
@@ -941,20 +965,16 @@ unit cgcpu;
var
instr : taicpu;
begin
- { in emulation mode, only 32-bit single is supported }
- if (cs_fp_emulation in current_settings.moduleswitches) or (current_settings.fputype=fpu_soft) then
- instr:=taicpu.op_reg_reg(A_MOVE,S_L,reg1,reg2)
- else
- instr:=taicpu.op_reg_reg(A_FMOVE,tcgsize2opsize[tosize],reg1,reg2);
- add_move_instruction(instr);
- list.concat(instr);
+ instr:=taicpu.op_reg_reg(A_FMOVE,S_FX,reg1,reg2);
+ add_move_instruction(instr);
+ list.concat(instr);
end;
procedure tcg68k.a_loadfpu_ref_reg(list: TAsmList; fromsize, tosize: tcgsize; const ref: treference; reg: tregister);
- var
- opsize : topsize;
- href : treference;
+ var
+ opsize : topsize;
+ href : treference;
begin
opsize := tcgsize2opsize[fromsize];
{ extended is not supported, since it is not available on Coldfire }
@@ -962,50 +982,44 @@ unit cgcpu;
internalerror(20020729);
href := ref;
fixref(list,href);
- { in emulation mode, only 32-bit single is supported }
- if (cs_fp_emulation in current_settings.moduleswitches) or (current_settings.fputype=fpu_soft) then
- list.concat(taicpu.op_ref_reg(A_MOVE,S_L,href,reg))
- else
- begin
- list.concat(taicpu.op_ref_reg(A_FMOVE,opsize,href,reg));
- if (tosize < fromsize) then
- a_loadfpu_reg_reg(list,fromsize,tosize,reg,reg);
- end;
+ list.concat(taicpu.op_ref_reg(A_FMOVE,opsize,href,reg));
end;
procedure tcg68k.a_loadfpu_reg_ref(list: TAsmList; fromsize,tosize: tcgsize; reg: tregister; const ref: treference);
var
- opsize : topsize;
+ opsize : topsize;
+ href : treference;
begin
opsize := tcgsize2opsize[tosize];
{ extended is not supported, since it is not available on Coldfire }
if opsize = S_FX then
internalerror(20020729);
- { in emulation mode, only 32-bit single is supported }
- if (cs_fp_emulation in current_settings.moduleswitches) or (current_settings.fputype=fpu_soft) then
- list.concat(taicpu.op_reg_ref(A_MOVE,S_L,reg, ref))
- else
- list.concat(taicpu.op_reg_ref(A_FMOVE,opsize,reg, ref));
+ href := ref;
+ fixref(list,href);
+ list.concat(taicpu.op_reg_ref(A_FMOVE,opsize,reg,href));
end;
procedure tcg68k.a_loadfpu_ref_cgpara(list : TAsmList; size : tcgsize;const ref : treference;const cgpara : TCGPara);
begin
- case cgpara.location^.loc of
- LOC_REFERENCE,LOC_CREFERENCE:
- begin
- case size of
- OS_F64:
- cg64.a_load64_ref_cgpara(list,ref,cgpara);
- OS_F32:
- a_load_ref_cgpara(list,size,ref,cgpara);
- else
- internalerror(2013021201);
+ if current_settings.fputype = fpu_soft then
+ case cgpara.location^.loc of
+ LOC_REFERENCE,LOC_CREFERENCE:
+ begin
+ case size of
+ OS_F64:
+ cg64.a_load64_ref_cgpara(list,ref,cgpara);
+ OS_F32:
+ a_load_ref_cgpara(list,size,ref,cgpara);
+ else
+ internalerror(2013021201);
+ end;
end;
- end;
- else
- inherited a_loadfpu_ref_cgpara(list,size,ref,cgpara);
- end;
+ else
+ inherited a_loadfpu_ref_cgpara(list,size,ref,cgpara);
+ end
+ else
+ inherited a_loadfpu_ref_cgpara(list,size,ref,cgpara);
end;
@@ -1100,10 +1114,41 @@ unit cgcpu;
begin
scratch_reg := force_to_dataregister(list, size, reg);
sign_extend(list, size, scratch_reg);
- if (a >= 1) and (a <= 8) then
+
+ { some special cases which can generate smarter code
+ using the SWAP instruction }
+ if (a = 16) then
+ begin
+ if (op = OP_SHL) then
+ begin
+ list.concat(taicpu.op_reg(A_SWAP,S_NO,scratch_reg));
+ list.concat(taicpu.op_reg(A_CLR,S_W,scratch_reg));
+ end
+ else if (op = OP_SHR) then
+ begin
+ list.concat(taicpu.op_reg(A_CLR,S_W,scratch_reg));
+ list.concat(taicpu.op_reg(A_SWAP,S_NO,scratch_reg));
+ end
+ else if (op = OP_SAR) then
+ begin
+ list.concat(taicpu.op_reg(A_SWAP,S_NO,scratch_reg));
+ list.concat(taicpu.op_reg(A_EXT,S_L,scratch_reg));
+ end
+ else if (op = OP_ROR) or (op = OP_ROL) then
+ list.concat(taicpu.op_reg(A_SWAP,S_NO,scratch_reg))
+ end
+ else if (a >= 1) and (a <= 8) then
begin
list.concat(taicpu.op_const_reg(opcode, S_L, a, scratch_reg));
end
+ else if (a >= 9) and (a < 16) then
+ begin
+ { Use two ops instead of const -> reg + shift with reg, because
+ this way is the same in length and speed but has less register
+ pressure }
+ list.concat(taicpu.op_const_reg(opcode, S_L, 8, scratch_reg));
+ list.concat(taicpu.op_const_reg(opcode, S_L, a-8, scratch_reg));
+ end
else
begin
{ move const to a register first }
@@ -1398,6 +1443,13 @@ unit cgcpu;
procedure tcg68k.a_cmp_reg_reg_label(list : TAsmList;size : tcgsize;cmp_op : topcmp;reg1,reg2 : tregister;l : tasmlabel);
begin
+ if (current_settings.cputype in cpu_coldfire-[cpu_isa_b,cpu_isa_c]) then
+ begin
+ sign_extend(list,size,reg1);
+ sign_extend(list,size,reg2);
+ size:=OS_INT;
+ end;
+
list.concat(taicpu.op_reg_reg(A_CMP,tcgsize2opsize[size],reg1,reg2));
{ emit the actual jump to the label }
a_jmp_cond(list,cmp_op,l);
@@ -1473,10 +1525,8 @@ unit cgcpu;
hp2 : treference;
hl : tasmlabel;
srcref,dstref : treference;
- orglen : tcgint;
begin
hregister := getintregister(list,OS_INT);
- orglen:=len;
{ from 12 bytes movs is being used }
if ((len<=8) or (not(cs_opt_size in current_settings.optimizerswitches) and (len<=12))) then
@@ -1568,7 +1618,28 @@ unit cgcpu;
end;
procedure tcg68k.g_overflowcheck(list: TAsmList; const l:tlocation; def:tdef);
+ var
+ hl : tasmlabel;
+ ai : taicpu;
+ cond : TAsmCond;
begin
+ 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_Bxx,S_NO,hl);
+ ai.SetCondition(cond);
+ ai.is_jmp:=true;
+ list.concat(ai);
+
+ a_call_name(list,'FPC_OVERFLOW',false);
+ a_label(list,hl);
end;
procedure tcg68k.g_proc_entry(list: TAsmList; localsize: longint; nostackframe:boolean);
@@ -1582,13 +1653,13 @@ unit cgcpu;
if (localsize < 0) then
internalerror(2006122601);
- { Not to complicate the code generator too much, and since some }
- { of the systems only support this format, the localsize cannot }
- { exceed 32K in size. }
if (localsize > high(smallint)) then
- CGMessage(cg_e_localsize_too_big);
-
- list.concat(taicpu.op_reg_const(A_LINK,S_W,NR_FRAME_POINTER_REG,-localsize));
+ begin
+ list.concat(taicpu.op_reg_const(A_LINK,S_W,NR_FRAME_POINTER_REG,0));
+ list.concat(taicpu.op_const_reg(A_SUBA,S_L,localsize,NR_STACK_POINTER_REG));
+ end
+ else
+ list.concat(taicpu.op_reg_const(A_LINK,S_W,NR_FRAME_POINTER_REG,-localsize));
end;
end;
@@ -1698,6 +1769,7 @@ unit cgcpu;
{ calculate temp. size }
size:=0;
+ hreg:=NR_NO;
for r:=low(saved_standard_registers) to high(saved_standard_registers) do
if saved_standard_registers[r] in rg[R_INTREGISTER].used_in_proc then
begin
@@ -1724,9 +1796,16 @@ unit cgcpu;
include(current_procinfo.flags,pi_has_saved_regs);
{ Copy registers to temp }
+ { NOTE: virtual registers allocated here won't be translated --> no higher-level stuff. }
href:=current_procinfo.save_regs_ref;
+ if (href.offset<low(smallint)) and (current_settings.cputype in cpu_coldfire) then
+ begin
+ list.concat(taicpu.op_reg_reg(A_MOVE,S_L,href.base,NR_A0));
+ list.concat(taicpu.op_const_reg(A_ADDA,S_L,href.offset,NR_A0));
+ reference_reset_base(href,NR_A0,0,sizeof(pint));
+ end;
if size = sizeof(aint) then
- a_load_reg_ref(list, OS_32, OS_32, hreg, href)
+ list.concat(taicpu.op_reg_ref(A_MOVE,S_L,hreg,href))
else
list.concat(taicpu.op_regset_ref(A_MOVEM,S_L,dataregs,addrregs,href));
end;
@@ -1750,6 +1829,7 @@ unit cgcpu;
exit;
{ Copy registers from temp }
size:=0;
+ hreg:=NR_NO;
for r:=low(saved_standard_registers) to high(saved_standard_registers) do
if saved_standard_registers[r] in rg[R_INTREGISTER].used_in_proc then
begin
@@ -1777,8 +1857,14 @@ unit cgcpu;
{ Restore registers from temp }
href:=current_procinfo.save_regs_ref;
+ if (href.offset<low(smallint)) and (current_settings.cputype in cpu_coldfire) then
+ begin
+ list.concat(taicpu.op_reg_reg(A_MOVE,S_L,href.base,NR_A0));
+ list.concat(taicpu.op_const_reg(A_ADDA,S_L,href.offset,NR_A0));
+ reference_reset_base(href,NR_A0,0,sizeof(pint));
+ end;
if size = sizeof(aint) then
- a_load_ref_reg(list, OS_32, OS_32, href, hreg)
+ list.concat(taicpu.op_ref_reg(A_MOVE,S_L,href,hreg))
else
list.concat(taicpu.op_ref_regset(A_MOVEM,S_L,href,dataregs,addrregs));
@@ -2097,6 +2183,34 @@ unit cgcpu;
end;
+ procedure tcg64f68k.a_op64_ref_reg(list : TAsmList;op:TOpCG;size : tcgsize;const ref : treference;reg : tregister64);
+ var
+ tempref : treference;
+ begin
+ case op of
+ OP_NEG,OP_NOT:
+ begin
+ a_load64_ref_reg(list,ref,reg);
+ a_op64_reg_reg(list,op,size,reg,reg);
+ end;
+
+ OP_AND,OP_OR:
+ begin
+ tempref:=ref;
+ tcg68k(cg).fixref(list,tempref);
+ inc(tempref.offset,4);
+ list.concat(taicpu.op_ref_reg(topcg2tasmop[op],S_L,tempref,reg.reglo));
+ dec(tempref.offset,4);
+ list.concat(taicpu.op_ref_reg(topcg2tasmop[op],S_L,tempref,reg.reghi));
+ end;
+ else
+ { XOR does not allow reference for source; ADD/SUB do not allow reference for
+ high dword, although low dword can still be handled directly. }
+ inherited a_op64_ref_reg(list,op,size,ref,reg);
+ end;
+ end;
+
+
procedure tcg64f68k.a_op64_const_reg(list : TAsmList;op:TOpCG;size: tcgsize; value : int64;regdst : tregister64);
var
lowvalue : cardinal;
diff --git a/compiler/m68k/cpubase.pas b/compiler/m68k/cpubase.pas
index 0d777f32ea..021e7d32fd 100644
--- a/compiler/m68k/cpubase.pas
+++ b/compiler/m68k/cpubase.pas
@@ -67,7 +67,7 @@ unit cpubase;
{ mc64040 instructions }
a_move16,
{ coldfire v4 instructions }
- a_mov3q,a_mvz,a_mvs,a_sats,
+ a_mov3q,a_mvz,a_mvs,a_sats,a_byterev,a_ff1,
{ fpu processor instructions - directly supported only. }
{ ieee aware and misc. condition codes not supported }
a_fabs,a_fadd,
@@ -153,7 +153,7 @@ unit cpubase;
{ registers which may be destroyed by calls }
VOLATILE_INTREGISTERS = [RS_D0,RS_D1];
- VOLATILE_FPUREGISTERS = [];
+ VOLATILE_FPUREGISTERS = [RS_FP0,RS_FP1];
VOLATILE_ADDRESSREGISTERS = [RS_A0,RS_A1];
type
@@ -311,6 +311,7 @@ unit cpubase;
}
saved_standard_registers : array[0..5] of tsuperregister = (RS_D2,RS_D3,RS_D4,RS_D5,RS_D6,RS_D7);
saved_address_registers : array[0..4] of tsuperregister = (RS_A2,RS_A3,RS_A4,RS_A5,RS_A6);
+ saved_fpu_registers : array[0..5] of tsuperregister = (RS_FP2,RS_FP3,RS_FP4,RS_FP5,RS_FP6,RS_FP7);
{ this is only for the generic code which is not used for this architecture }
saved_mm_registers : array[0..0] of tsuperregister = (RS_INVALID);
@@ -471,7 +472,9 @@ implementation
R_INTREGISTER :
result:=OS_32;
R_FPUREGISTER :
- result:=OS_F64;
+ { 68881 & compatibles -> 80 bit }
+ { CF FPU -> 64 bit, but that's unsupported for now }
+ result:=OS_F80;
else
internalerror(200303181);
end;
diff --git a/compiler/m68k/cpuinfo.pas b/compiler/m68k/cpuinfo.pas
index 38f6f79a49..80f09b4f29 100644
--- a/compiler/m68k/cpuinfo.pas
+++ b/compiler/m68k/cpuinfo.pas
@@ -21,6 +21,9 @@ Interface
Type
bestreal = double;
+{$if FPC_FULLVERSION>20700}
+ bestrealrec = TDoubleRec;
+{$endif FPC_FULLVERSION>20700}
ts32real = single;
ts64real = double;
ts80real = extended;
@@ -48,7 +51,25 @@ Type
fpu_68881
);
+ tcontrollertype =
+ (ct_none
+ );
+
+
Const
+ { 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:''; flashbase:0; flashsize:0; srambase:0; sramsize:0));
+ {$POP}
+
{ calling conventions supported by the code generator }
supported_calling_conventions : tproccalloptions = [
pocall_internproc,
@@ -107,19 +128,21 @@ type
(CPUM68K_HAS_DBRA, { CPU supports the DBRA instruction }
CPUM68K_HAS_CAS, { CPU supports the CAS instruction }
CPUM68K_HAS_TAS, { CPU supports the TAS instruction }
- CPUM68K_HAS_BRAL { CPU supports the BRA.L/Bcc.L instructions }
+ CPUM68K_HAS_BRAL, { CPU supports the BRA.L/Bcc.L instructions }
+ CPUM68K_HAS_ROLROR, { CPU supports the ROL/ROR and ROXL/ROXR instructions }
+ CPUM68K_HAS_BYTEREV { CPU supports the BYTEREV instruction }
);
const
cpu_capabilities : array[tcputype] of set of tcpuflags =
( { cpu_none } [],
- { cpu_68000 } [CPUM68K_HAS_DBRA,CPUM68K_HAS_TAS],
- { cpu_68020 } [CPUM68K_HAS_DBRA,CPUM68K_HAS_CAS,CPUM68K_HAS_TAS,CPUM68K_HAS_BRAL],
- { cpu_68040 } [CPUM68K_HAS_DBRA,CPUM68K_HAS_CAS,CPUM68K_HAS_TAS,CPUM68K_HAS_BRAL],
+ { cpu_68000 } [CPUM68K_HAS_DBRA,CPUM68K_HAS_TAS,CPUM68K_HAS_ROLROR],
+ { cpu_68020 } [CPUM68K_HAS_DBRA,CPUM68K_HAS_CAS,CPUM68K_HAS_TAS,CPUM68K_HAS_BRAL,CPUM68K_HAS_ROLROR],
+ { cpu_68040 } [CPUM68K_HAS_DBRA,CPUM68K_HAS_CAS,CPUM68K_HAS_TAS,CPUM68K_HAS_BRAL,CPUM68K_HAS_ROLROR],
{ cpu_isaa } [],
- { cpu_isaap } [CPUM68K_HAS_BRAL],
+ { cpu_isaap } [CPUM68K_HAS_BRAL,CPUM68K_HAS_BYTEREV],
{ cpu_isab } [CPUM68K_HAS_TAS,CPUM68K_HAS_BRAL],
- { cpu_isac } [CPUM68K_HAS_TAS]
+ { cpu_isac } [CPUM68K_HAS_TAS,CPUM68K_HAS_BYTEREV]
);
{ all CPUs commonly called "coldfire" }
diff --git a/compiler/m68k/itcpugas.pas b/compiler/m68k/itcpugas.pas
index cfe77aae22..4e134a3e70 100644
--- a/compiler/m68k/itcpugas.pas
+++ b/compiler/m68k/itcpugas.pas
@@ -61,7 +61,7 @@ interface
{ mc64040 instructions }
'move16',
{ coldfire v4 instructions }
- 'mov3q','mvz','mvs','sats',
+ 'mov3q','mvz','mvs','sats','byterev','ff1',
{ fpu processor instructions - directly supported only. }
{ ieee aware and misc. condition codes not supported }
'fabs','fadd',
diff --git a/compiler/m68k/n68kadd.pas b/compiler/m68k/n68kadd.pas
index a812a2ee5e..84c88e3202 100644
--- a/compiler/m68k/n68kadd.pas
+++ b/compiler/m68k/n68kadd.pas
@@ -32,23 +32,13 @@ interface
type
t68kaddnode = class(tcgaddnode)
private
- function cmp64_lt(left_reg,right_reg:tregister64):tregister;
- function cmp64_le(left_reg,right_reg:tregister64):tregister;
- function cmp64_eq(left_reg,right_reg:tregister64):tregister;
- function cmp64_ne(left_reg,right_reg:tregister64):tregister;
- function cmp64_ltu(left_reg,right_reg:tregister64):tregister;
- function cmp64_leu(left_reg,right_reg:tregister64):tregister;
-
function getresflags(unsigned: boolean) : tresflags;
- function getres64_register(unsigned:boolean;left_reg,right_reg:tregister64):tregister;
protected
procedure second_addfloat;override;
procedure second_cmpfloat;override;
procedure second_cmpordinal;override;
procedure second_cmpsmallset;override;
procedure second_cmp64bit;override;
- public
- function pass_1:tnode;override;
end;
@@ -62,198 +52,12 @@ implementation
cpuinfo,pass_1,pass_2,regvars,
cpupara,cgutils,procinfo,
ncon,nset,
- ncgutil,tgobj,rgobj,rgcpu,cgobj,hlcgobj,cg64f32;
+ ncgutil,tgobj,rgobj,rgcpu,cgobj,cgcpu,hlcgobj,cg64f32;
{*****************************************************************************
Helpers
*****************************************************************************}
- function t68kaddnode.cmp64_lt(left_reg,right_reg:tregister64):tregister;
- var
- labelcmp64_1,labelcmp64_2 : tasmlabel;
- tmpreg : tregister;
- begin
- tmpreg:=cg.getintregister(current_asmdata.currasmlist,OS_INT);
-
- { load the value for "false" }
- cg.a_load_const_reg(current_asmdata.currasmlist,OS_INT,0,tmpreg);
-
- current_asmdata.getjumplabel(labelcmp64_1);
- current_asmdata.getjumplabel(labelcmp64_2);
-
- { check whether left_reg.reghi is less than right_reg.reghi }
- current_asmdata.currasmlist.concat(taicpu.op_reg_reg(A_CMP,S_L,right_reg.reghi,left_reg.reghi));
- current_asmdata.currasmlist.concat(taicpu.op_cond_sym(A_BXX,C_LT,S_NO,labelcmp64_2));
-
- { are left_reg.reghi and right_reg.reghi equal? }
- current_asmdata.currasmlist.concat(taicpu.op_cond_sym(A_BXX,C_NE,S_NO,labelcmp64_1));
-
- { is left_reg.reglo less than right_reg.reglo? }
- current_asmdata.currasmlist.concat(taicpu.op_reg_reg(A_CMP,S_L,right_reg.reglo,left_reg.reglo));
- current_asmdata.currasmlist.concat(taicpu.op_cond_sym(A_BXX,C_CS,S_NO,labelcmp64_2));
-
- current_asmdata.currasmlist.concat(Taicpu.op_sym(A_BRA,S_NO,labelcmp64_1));
- cg.a_label(current_asmdata.currasmlist,labelcmp64_2);
-
- { load the value for "true" }
- cg.a_load_const_reg(current_asmdata.currasmlist,OS_INT,1,tmpreg);
-
- cg.a_label(current_asmdata.currasmlist,labelcmp64_1);
- result:=tmpreg;
- end;
-
- function t68kaddnode.cmp64_le(left_reg,right_reg:tregister64):tregister;
- var
- labelcmp64_1,labelcmp64_2 : tasmlabel;
- tmpreg : tregister;
- begin
- tmpreg:=cg.getintregister(current_asmdata.currasmlist,OS_INT);
-
- { load the value for "false" }
- cg.a_load_const_reg(current_asmdata.currasmlist,OS_INT,0,tmpreg);
-
- current_asmdata.getjumplabel(labelcmp64_1);
- current_asmdata.getjumplabel(labelcmp64_2);
-
- { check whether right_reg.reghi is less than left_reg.reghi }
- current_asmdata.currasmlist.concat(taicpu.op_reg_reg(A_CMP,S_L,left_reg.reghi,right_reg.reghi));
- current_asmdata.currasmlist.concat(taicpu.op_cond_sym(A_BXX,C_LT,S_NO,labelcmp64_1));
-
- { are left_reg.reghi and right_reg.reghi equal? }
- current_asmdata.currasmlist.concat(taicpu.op_cond_sym(A_BXX,C_NE,S_NO,labelcmp64_2));
-
- { is right_reg.reglo less than left_reg.reglo? }
- current_asmdata.currasmlist.concat(taicpu.op_reg_reg(A_CMP,S_L,left_reg.reglo,right_reg.reglo));
- current_asmdata.currasmlist.concat(taicpu.op_cond_sym(A_BXX,C_CS,S_NO,labelcmp64_1));
-
- cg.a_label(current_asmdata.currasmlist,labelcmp64_2);
-
- { load the value for "true" }
- cg.a_load_const_reg(current_asmdata.currasmlist,OS_INT,1,tmpreg);
-
- cg.a_label(current_asmdata.currasmlist,labelcmp64_1);
- result:=tmpreg;
- end;
-
- function t68kaddnode.cmp64_eq(left_reg,right_reg:tregister64):tregister;
- var
- labelcmp64 : tasmlabel;
- tmpreg : tregister;
- begin
- tmpreg:=cg.getintregister(current_asmdata.currasmlist,OS_INT);
- current_asmdata.getjumplabel(labelcmp64);
-
- { load the value for "false" }
- cg.a_load_const_reg(current_asmdata.currasmlist,OS_INT,0,tmpreg);
-
- { is the high order longword equal? }
- current_asmdata.currasmlist.concat(taicpu.op_reg_reg(A_CMP,S_L,left_reg.reghi,right_reg.reghi));
- current_asmdata.currasmlist.concat(taicpu.op_cond_sym(A_BXX,C_NE,S_NO,labelcmp64));
-
- { is the low order longword equal? }
- current_asmdata.currasmlist.concat(taicpu.op_reg_reg(A_CMP,S_L,left_reg.reglo,right_reg.reglo));
- current_asmdata.currasmlist.concat(taicpu.op_cond_sym(A_BXX,C_NE,S_NO,labelcmp64));
-
- { load the value for "true" }
- cg.a_load_const_reg(current_asmdata.currasmlist,OS_INT,1,tmpreg);
-
- cg.a_label(current_asmdata.currasmlist,labelcmp64);
- result:=tmpreg;
- end;
-
- function t68kaddnode.cmp64_ne(left_reg,right_reg:tregister64):tregister;
- var
- labelcmp64 : tasmlabel;
- tmpreg : tregister;
- begin
- tmpreg:=cg.getintregister(current_asmdata.currasmlist,OS_INT);
- current_asmdata.getjumplabel(labelcmp64);
-
- { load the value for "true" }
- cg.a_load_const_reg(current_asmdata.currasmlist,OS_INT,1,tmpreg);
-
- { is the high order longword equal? }
- current_asmdata.currasmlist.concat(taicpu.op_reg_reg(A_CMP,S_L,left_reg.reghi,right_reg.reghi));
- current_asmdata.currasmlist.concat(taicpu.op_cond_sym(A_BXX,C_NE,S_NO,labelcmp64));
-
- { is the low order longword equal? }
- current_asmdata.currasmlist.concat(taicpu.op_reg_reg(A_CMP,S_L,left_reg.reglo,right_reg.reglo));
- current_asmdata.currasmlist.concat(taicpu.op_cond_sym(A_BXX,C_NE,S_NO,labelcmp64));
-
- { load the value for "false" }
- cg.a_load_const_reg(current_asmdata.currasmlist,OS_INT,0,tmpreg);
-
- cg.a_label(current_asmdata.currasmlist,labelcmp64);
- result:=tmpreg;
- end;
-
- function t68kaddnode.cmp64_ltu(left_reg,right_reg:tregister64):tregister;
- var
- labelcmp64_1,labelcmp64_2 : tasmlabel;
- tmpreg : tregister;
- begin
- tmpreg:=cg.getintregister(current_asmdata.currasmlist,OS_INT);
-
- { load the value for "false" }
- cg.a_load_const_reg(current_asmdata.currasmlist,OS_INT,0,tmpreg);
-
- current_asmdata.getjumplabel(labelcmp64_1);
- current_asmdata.getjumplabel(labelcmp64_2);
-
- { check whether left_reg.reghi is less than right_reg.reghi }
- current_asmdata.currasmlist.concat(taicpu.op_reg_reg(A_CMP,S_L,right_reg.reghi,left_reg.reghi));
- current_asmdata.currasmlist.concat(taicpu.op_cond_sym(A_BXX,C_CS,S_NO,labelcmp64_2));
-
- { are left_reg.reghi and right_reg.reghi equal? }
- current_asmdata.currasmlist.concat(taicpu.op_cond_sym(A_BXX,C_NE,S_NO,labelcmp64_1));
-
- { is left_reg.reglo less than right_reg.reglo? }
- current_asmdata.currasmlist.concat(taicpu.op_reg_reg(A_CMP,S_L,right_reg.reglo,left_reg.reglo));
- current_asmdata.currasmlist.concat(taicpu.op_cond_sym(A_BXX,C_CS,S_NO,labelcmp64_2));
-
- current_asmdata.currasmlist.concat(Taicpu.op_sym(A_BRA,S_NO,labelcmp64_1));
- cg.a_label(current_asmdata.currasmlist,labelcmp64_2);
-
- { load the value for "true" }
- cg.a_load_const_reg(current_asmdata.currasmlist,OS_INT,1,tmpreg);
-
- cg.a_label(current_asmdata.currasmlist,labelcmp64_1);
- result:=tmpreg;
- end;
-
- function t68kaddnode.cmp64_leu(left_reg,right_reg:tregister64):tregister;
- var
- labelcmp64_1,labelcmp64_2 : tasmlabel;
- tmpreg : tregister;
- begin
- tmpreg:=cg.getintregister(current_asmdata.currasmlist,OS_INT);
-
- { load the value for "false" }
- cg.a_load_const_reg(current_asmdata.currasmlist,OS_INT,0,tmpreg);
-
- current_asmdata.getjumplabel(labelcmp64_1);
- current_asmdata.getjumplabel(labelcmp64_2);
-
- { check whether right_reg.reghi is less than left_reg.reghi }
- current_asmdata.currasmlist.concat(taicpu.op_reg_reg(A_CMP,S_L,left_reg.reghi,right_reg.reghi));
- current_asmdata.currasmlist.concat(taicpu.op_cond_sym(A_BXX,C_CS,S_NO,labelcmp64_1));
-
- { are left_reg.reghi and right_reg.reghi equal? }
- current_asmdata.currasmlist.concat(taicpu.op_cond_sym(A_BXX,C_NE,S_NO,labelcmp64_2));
-
- { is right_reg.reglo less than left_reg.reglo? }
- current_asmdata.currasmlist.concat(taicpu.op_reg_reg(A_CMP,S_L,left_reg.reglo,right_reg.reglo));
- current_asmdata.currasmlist.concat(taicpu.op_cond_sym(A_BXX,C_CS,S_NO,labelcmp64_1));
-
- cg.a_label(current_asmdata.currasmlist,labelcmp64_2);
-
- { load the value for "true" }
- cg.a_load_const_reg(current_asmdata.currasmlist,OS_INT,1,tmpreg);
-
- cg.a_label(current_asmdata.currasmlist,labelcmp64_1);
- result:=tmpreg;
- end;
-
function t68kaddnode.getresflags(unsigned : boolean) : tresflags;
begin
case nodetype of
@@ -268,6 +72,8 @@ implementation
lten : getresflags:=F_GE;
gtn : getresflags:=F_L;
gten : getresflags:=F_LE;
+ else
+ internalerror(2014082030);
end
else
case nodetype of
@@ -275,6 +81,8 @@ implementation
lten : getresflags:=F_LE;
gtn : getresflags:=F_G;
gten : getresflags:=F_GE;
+ else
+ internalerror(2014082031);
end;
end
else
@@ -285,6 +93,8 @@ implementation
lten : getresflags:=F_AE;
gtn : getresflags:=F_B;
gten : getresflags:=F_BE;
+ else
+ internalerror(2014082032);
end
else
case nodetype of
@@ -292,71 +102,13 @@ implementation
lten : getresflags:=F_BE;
gtn : getresflags:=F_A;
gten : getresflags:=F_AE;
+ else
+ internalerror(2014082033);
end;
end;
end;
end;
- function t68kaddnode.getres64_register(unsigned:boolean;left_reg,right_reg:tregister64):tregister;
- begin
- case nodetype of
- equaln:
- result:=cmp64_eq(left_reg,right_reg);
- unequaln:
- result:=cmp64_ne(left_reg,right_reg);
- else
- if not unsigned then
- begin
- if nf_swapped in flags then
- case nodetype of
- ltn:
- result:=cmp64_lt(right_reg,left_reg);
- lten:
- result:=cmp64_le(right_reg,left_reg);
- gtn:
- result:=cmp64_lt(left_reg,right_reg);
- gten:
- result:=cmp64_le(left_reg,right_reg);
- end
- else
- case nodetype of
- ltn:
- result:=cmp64_lt(left_reg,right_reg);
- lten:
- result:=cmp64_le(left_reg,right_reg);
- gtn:
- result:=cmp64_lt(right_reg,left_reg);
- gten:
- result:=cmp64_le(right_reg,left_reg);
- end;
- end
- else
- begin
- if nf_swapped in Flags then
- case nodetype of
- ltn:
- result:=cmp64_ltu(right_reg,left_reg);
- lten:
- result:=cmp64_leu(right_reg,left_reg);
- gtn:
- result:=cmp64_ltu(left_reg,right_reg);
- gten:
- result:=cmp64_leu(left_reg,right_reg);
- end
- else
- case nodetype of
- ltn:
- result:=cmp64_ltu(left_reg,right_reg);
- lten:
- result:=cmp64_leu(left_reg,right_reg);
- gtn:
- result:=cmp64_ltu(right_reg,left_reg);
- gten:
- result:=cmp64_leu(right_reg,left_reg);
- end;
- end;
- end;
- end;
{*****************************************************************************
AddFloat
@@ -386,56 +138,53 @@ implementation
if nf_swapped in flags then
swapleftright;
- // put both operands in a register
- hlcg.location_force_fpureg(current_asmdata.CurrAsmList,right.location,right.resultdef,true);
- hlcg.location_force_fpureg(current_asmdata.CurrAsmList,left.location,left.resultdef,true);
+ case current_settings.fputype of
+ fpu_68881:
+ begin
+ // put both operands in a register
+ hlcg.location_force_fpureg(current_asmdata.CurrAsmList,right.location,right.resultdef,true);
+ hlcg.location_force_fpureg(current_asmdata.CurrAsmList,left.location,left.resultdef,true);
- // initialize de result
- location_reset(location,LOC_FPUREGISTER,def_cgsize(resultdef));
- if left.location.loc = LOC_FPUREGISTER then
- location.register := left.location.register
- else if right.location.loc = LOC_FPUREGISTER then
- location.register := right.location.register
- else
- location.register := cg.getfpuregister(current_asmdata.CurrAsmList,location.size);
-
- // emit the actual operation
- {
- current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg_reg(op,
- location.register,left.location.register,
- right.location.register))
- }
+ // initialize the result
+ location_reset(location,LOC_FPUREGISTER,def_cgsize(resultdef));
+ location.register := cg.getfpuregister(current_asmdata.CurrAsmList,location.size);
+
+ // emit the actual operation
+ current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FMOVE,S_FX,left.location.register,location.register));
+ current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(op,S_FX,right.location.register,location.register));
+ end;
+ else
+ // softfpu should be handled in pass1, others are not yet supported...
+ internalerror(2015010201);
+ end;
end;
procedure t68kaddnode.second_cmpfloat;
begin
pass_left_right;
-
-{
if (nf_swapped in flags) then
swapleftright;
-}
- { force fpureg as location, left right doesn't matter
- as both will be in a fpureg }
- hlcg.location_force_fpureg(current_asmdata.CurrAsmList,left.location,left.resultdef,true);
- hlcg.location_force_fpureg(current_asmdata.CurrAsmList,right.location,right.resultdef,true);
- location_reset(location,LOC_FLAGS,OS_NO);
- location.resflags:=getresflags(true);
-{
- if nodetype in [equaln,unequaln] then
- current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg(A_CMF,
- left.location.register,right.location.register),
- cgsize2fpuoppostfix[def_cgsize(resultdef)]))
- else
- current_asmdata.CurrAsmList.concat(setoppostfix(taicpu.op_reg_reg(A_CMFE,
- left.location.register,right.location.register),
- cgsize2fpuoppostfix[def_cgsize(resultdef)]));
+ case current_settings.fputype of
+ fpu_68881:
+ begin
+ location_reset(location,LOC_FLAGS,OS_NO);
- location_reset(location,LOC_FLAGS,OS_NO);
- location.resflags:=getresflags(false);
-}
+ { force fpureg as location, left right doesn't matter
+ as both will be in a fpureg }
+ hlcg.location_force_fpureg(current_asmdata.CurrAsmList,left.location,left.resultdef,true);
+ hlcg.location_force_fpureg(current_asmdata.CurrAsmList,right.location,right.resultdef,true);
+
+ // emit compare
+ current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_FCMP,S_FX,right.location.register,left.location.register));
+
+ location.resflags:=getresflags(false);
+ end;
+ else
+ // softfpu should be handled in pass1, others are not yet supported...
+ internalerror(2015010201);
+ end;
end;
@@ -500,111 +249,92 @@ implementation
procedure t68kaddnode.second_cmpordinal;
var
unsigned : boolean;
- useconst : boolean;
tmpreg : tregister;
opsize : topsize;
cmpsize : tcgsize;
+ href: treference;
begin
- pass_left_right;
- { set result location }
- location_reset(location,LOC_JUMP,OS_NO);
-
- { ToDo : set "allowconstants" to True, but this seems to upset Coldfire
- a bit for the CMP instruction => check manual and implement
- exception accordingly below }
- { load values into registers (except constants) }
- force_reg_left_right(true, false);
-
{ determine if the comparison will be unsigned }
unsigned:=not(is_signed(left.resultdef)) or
not(is_signed(right.resultdef));
+ { this puts constant operand (if any) to the right }
+ pass_left_right;
+ { tentatively assume left size (correct for possible TST, will fix later) }
+ cmpsize:=def_cgsize(left.resultdef);
+ opsize:=tcgsize2opsize[cmpsize];
- // get the constant on the right if there is one
- if (left.location.loc = LOC_CONSTANT) then
- swapleftright;
- // can we use an immediate, or do we have to load the
- // constant in a register first?
- if (right.location.loc = LOC_CONSTANT) then
- begin
-{$ifdef extdebug}
- if (right.location.size in [OS_64,OS_S64]) and (hi(right.location.value64)<>0) and ((hi(right.location.value64)<>-1) or unsigned) then
- internalerror(2002080301);
-{$endif extdebug}
- if (nodetype in [equaln,unequaln]) then
- if (unsigned and
- (right.location.value > high(word))) or
- (not unsigned and
- (longint(right.location.value) < low(smallint)) or
- (longint(right.location.value) > high(smallint))) then
- { we can then maybe use a constant in the 'othersigned' case
- (the sign doesn't matter for // equal/unequal)}
- unsigned := not unsigned;
-
- if (unsigned and
- ((right.location.value) <= high(word))) or
- (not(unsigned) and
- (longint(right.location.value) >= low(smallint)) and
- (longint(right.location.value) <= high(smallint))) then
- useconst := true
- else
- begin
- useconst := false;
- tmpreg := cg.getintregister(current_asmdata.CurrAsmList,OS_INT);
- cg.a_load_const_reg(current_asmdata.CurrAsmList,OS_INT,
- aword(right.location.value),tmpreg);
- end
- end
- else
- useconst := false;
- location.loc := LOC_FLAGS;
- location.resflags := getresflags(unsigned);
- if tcgsize2size[right.location.size]=tcgsize2size[left.location.size] then
- cmpsize:=left.location.size
- else
- { ToDo : zero/sign extend??? }
- if tcgsize2size[right.location.size]<tcgsize2size[left.location.size] then
- cmpsize:=left.location.size
- else
- cmpsize:=right.location.size;
- opsize:=tcgsize2opsize[cmpsize];
- if opsize=S_NO then
- internalerror(2013090301);
- { Attention: The RIGHT(!) operand is substracted from and must be a
- register! }
- if (right.location.loc = LOC_CONSTANT) then
- if useconst then
- current_asmdata.CurrAsmList.concat(taicpu.op_const_reg(A_CMP,opsize,
- longint(right.location.value),left.location.register))
- else
- begin
- current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_CMP,opsize,
- tmpreg,left.location.register));
- end
- else
- current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_CMP,opsize,
- right.location.register,left.location.register));
- end;
+ { set result location }
+ location_reset(location,LOC_FLAGS,OS_NO);
+ { see if we can optimize into TST }
+ if (right.location.loc=LOC_CONSTANT) and (right.location.value=0) then
+ begin
+ { Unsigned <0 or >=0 should not reach pass2, most likely }
+ case left.location.loc of
+ LOC_REFERENCE,
+ LOC_CREFERENCE:
+ begin
+ href:=left.location.reference;
+ tcg68k(cg).fixref(current_asmdata.CurrAsmList,href);
+ current_asmdata.CurrAsmList.concat(taicpu.op_ref(A_TST,opsize,href));
+ location_freetemp(current_asmdata.CurrAsmList,left.location);
+ end;
+ else
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,true);
+ current_asmdata.CurrAsmList.concat(taicpu.op_reg(A_TST,opsize,left.location.register));
+ end;
+ location.resflags := getresflags(unsigned);
+ exit;
+ end;
- function t68kaddnode.pass_1:tnode;
- var
- ld,rd : tdef;
- begin
- result:=inherited pass_1;
+ { Coldfire supports byte/word compares only starting with ISA_B,
+ !!see remark about Qemu weirdness in tcg68k.a_cmp_const_reg_label }
+ if (opsize<>S_L) and (current_settings.cputype in cpu_coldfire{-[cpu_isa_b,cpu_isa_c]}) then
+ begin
+ { 1) Extension is needed for LOC_REFERENCE, but what about LOC_REGISTER ? Perhaps after fixing cg we can assume
+ that high bits of registers are correct.
+ 2) Assuming that extension depends only on source signedness --> destination OS_32 is acceptable. }
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,cgsize_orddef(OS_32),false);
+ if (right.location.loc<>LOC_CONSTANT) then
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,right.location,right.resultdef,cgsize_orddef(OS_32),false);
+ opsize:=S_L;
+ end
+ else if not (left.location.loc in [LOC_REGISTER,LOC_CREGISTER]) then
+ begin
+ if not (right.location.loc in [LOC_REGISTER,LOC_CREGISTER]) then
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,true)
+ else
+ begin
+ location_swap(left.location,right.location);
+ toggleflag(nf_swapped);
+ end;
+ end;
+ { left is now in register }
+ case right.location.loc of
+ LOC_CONSTANT:
+ current_asmdata.CurrAsmList.concat(taicpu.op_const_reg(A_CMP,opsize,
+ longint(right.location.value),left.location.register));
+ LOC_REFERENCE,
+ LOC_CREFERENCE:
+ begin
+ href:=right.location.reference;
+ tcg68k(cg).fixref(current_asmdata.CurrAsmList,href);
+ current_asmdata.CurrAsmList.concat(taicpu.op_ref_reg(A_CMP,opsize,href,
+ left.location.register));
+ end;
+ LOC_REGISTER,
+ LOC_CREGISTER:
+ current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_CMP,opsize,
+ right.location.register,left.location.register));
+ else
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,right.location,right.resultdef,right.resultdef,true);
+ current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_CMP,opsize,
+ right.location.register,left.location.register));
+ end;
- { for 64 bit operations we return the resulting value in a register }
- if not assigned(result) then
- begin
- rd:=right.resultdef;
- ld:=left.resultdef;
- if (nodetype in [ltn,lten,gtn,gten,equaln,unequaln]) and
- (
- ((ld.typ=orddef) and (torddef(ld).ordtype in [u64bit,s64bit,scurrency])) or
- ((rd.typ=orddef) and (torddef(rd).ordtype in [u64bit,s64bit,scurrency]))
- ) then
- expectloc:=LOC_REGISTER;
- end;
- end;
+ { update location because sides could have been swapped }
+ location.resflags:=getresflags(unsigned);
+ end;
{*****************************************************************************
@@ -613,123 +343,167 @@ implementation
procedure t68kaddnode.second_cmp64bit;
var
+ hlab: tasmlabel;
unsigned : boolean;
- tmp_left_reg : tregister;
+ href: treference;
+
+ procedure firstjmp64bitcmp;
+ var
+ oldnodetype : tnodetype;
+ begin
+ case nodetype of
+ ltn,gtn:
+ begin
+ if (hlab<>current_procinfo.CurrTrueLabel) then
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,getresflags(unsigned),current_procinfo.CurrTrueLabel);
+ { cheat a little bit for the negative test }
+ toggleflag(nf_swapped);
+ if (hlab<>current_procinfo.CurrFalseLabel) then
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,getresflags(unsigned),current_procinfo.CurrFalseLabel);
+ toggleflag(nf_swapped);
+ end;
+ lten,gten:
+ begin
+ oldnodetype:=nodetype;
+ if nodetype=lten then
+ nodetype:=ltn
+ else
+ nodetype:=gtn;
+ if (hlab<>current_procinfo.CurrTrueLabel) then
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,getresflags(unsigned),current_procinfo.CurrTrueLabel);
+ { cheat for the negative test }
+ if nodetype=ltn then
+ nodetype:=gtn
+ else
+ nodetype:=ltn;
+ if (hlab<>current_procinfo.CurrFalseLabel) then
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,getresflags(unsigned),current_procinfo.CurrFalseLabel);
+ nodetype:=oldnodetype;
+ end;
+ equaln:
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,current_procinfo.CurrFalseLabel);
+ unequaln:
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,current_procinfo.CurrTrueLabel);
+ end;
+ end;
+
+ procedure secondjmp64bitcmp;
+ begin
+ case nodetype of
+ ltn,gtn,lten,gten:
+ begin
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,getresflags(true),current_procinfo.CurrTrueLabel);
+ cg.a_jmp_always(current_asmdata.CurrAsmList,current_procinfo.CurrFalseLabel);
+ end;
+ equaln:
+ begin
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,current_procinfo.CurrFalseLabel);
+ cg.a_jmp_always(current_asmdata.CurrAsmList,current_procinfo.CurrTrueLabel);
+ end;
+ unequaln:
+ begin
+ cg.a_jmp_flags(current_asmdata.CurrAsmList,F_NE,current_procinfo.CurrTrueLabel);
+ cg.a_jmp_always(current_asmdata.CurrAsmList,current_procinfo.CurrFalseLabel);
+ end;
+ end;
+ end;
+
begin
+ { This puts constant operand (if any) to the right }
pass_left_right;
- force_reg_left_right(false,false);
unsigned:=not(is_signed(left.resultdef)) or
not(is_signed(right.resultdef));
- location_reset(location,LOC_REGISTER,OS_INT);
- location.register:=getres64_register(unsigned,left.location.register64,right.location.register64);
-
- { keep the below code for now, as we could optimize the =/<> code later
- on based on it }
-
- // writeln('second_cmp64bit');
-// pass_left_right;
+ location_reset(location,LOC_JUMP,OS_NO);
+ { Relational compares against constants having low dword=0 can omit the
+ second compare based on the fact that any unsigned value is >=0 }
+ hlab:=nil;
+ if (right.location.loc=LOC_CONSTANT) and
+ (lo(right.location.value64)=0) then
+ begin
+ case getresflags(true) of
+ F_AE: hlab:=current_procinfo.CurrTrueLabel;
+ F_B: hlab:=current_procinfo.CurrFalseLabel;
+ end;
+ end;
-// load_left_right(true,false);
-(*
- case nodetype of
- ltn,lten,
- gtn,gten:
- begin
- emit_cmp64_hi;
- firstjmp64bitcmp;
- emit_cmp64_lo;
- secondjmp64bitcmp;
- end;
- equaln,unequaln:
- begin
- // instead of doing a complicated compare, do
- // (left.hi xor right.hi) or (left.lo xor right.lo)
- // (somewhate optimized so that no superfluous 'mr's are
- // generated)
- if (left.location.loc = LOC_CONSTANT) then
- swapleftright;
- if (right.location.loc = LOC_CONSTANT) then
- begin
- if left.location.loc = LOC_REGISTER then
- begin
- tempreg64.reglo := left.location.register64.reglo;
- tempreg64.reghi := left.location.register64.reghi;
- end
- else
- begin
- if (aword(right.location.valueqword) <> 0) then
- tempreg64.reglo := cg.getintregister(current_asmdata.CurrAsmList)
- else
- tempreg64.reglo := left.location.register64.reglo;
- if ((right.location.valueqword shr 32) <> 0) then
- tempreg64.reghi := cg.getintregister(current_asmdata.CurrAsmList)
- else
- tempreg64.reghi := left.location.register64.reghi;
- end;
-
- if (aword(right.location.valueqword) <> 0) then
- { negative values can be handled using SUB, }
- { positive values < 65535 using XOR. }
- if (longint(right.location.valueqword) >= -32767) and
- (longint(right.location.valueqword) < 0) then
- cg.a_op_const_reg_reg(current_asmdata.CurrAsmList,OP_SUB,OS_INT,
- aword(right.location.valueqword),
- left.location.register64.reglo,tempreg64.reglo)
- else
- cg.a_op_const_reg_reg(current_asmdata.CurrAsmList,OP_XOR,OS_INT,
- aword(right.location.valueqword),
- left.location.register64.reglo,tempreg64.reglo);
-
- if ((right.location.valueqword shr 32) <> 0) then
- if (longint(right.location.valueqword shr 32) >= -32767) and
- (longint(right.location.valueqword shr 32) < 0) then
- cg.a_op_const_reg_reg(current_asmdata.CurrAsmList,OP_SUB,OS_INT,
- aword(right.location.valueqword shr 32),
- left.location.register64.reghi,tempreg64.reghi)
- else
- cg.a_op_const_reg_reg(current_asmdata.CurrAsmList,OP_XOR,OS_INT,
- aword(right.location.valueqword shr 32),
- left.location.register64.reghi,tempreg64.reghi);
- end
- else
- begin
- tempreg64.reglo := cg.getintregister(current_asmdata.CurrAsmList);
- tempreg64.reghi := cg.getintregister(current_asmdata.CurrAsmList);
- cg64.a_op64_reg_reg_reg(current_asmdata.CurrAsmList,OP_XOR,
- left.location.register64,right.location.register64,
- tempreg64);
- end;
-
- cg.a_reg_alloc(current_asmdata.CurrAsmList,R_0);
- current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg_reg(A_OR_,R_0,
- tempreg64.reglo,tempreg64.reghi));
- cg.a_reg_dealloc(current_asmdata.CurrAsmList,R_0);
- if (tempreg64.reglo <> left.location.register64.reglo) then
- cg.ungetregister(current_asmdata.CurrAsmList,tempreg64.reglo);
- if (tempreg64.reghi <> left.location.register64.reghi) then
- cg.ungetregister(current_asmdata.CurrAsmList,tempreg64.reghi);
-
- location_reset(location,LOC_FLAGS,OS_NO);
- location.resflags := getresflags;
+ if (right.location.loc=LOC_CONSTANT) and (right.location.value64=0) and
+ (nodetype in [equaln,unequaln]) then
+ begin
+ case left.location.loc of
+ LOC_REFERENCE,
+ LOC_CREFERENCE:
+ begin
+ href:=left.location.reference;
+ tcg68k(cg).fixref(current_asmdata.CurrAsmList,href);
+ current_asmdata.CurrAsmList.concat(taicpu.op_ref(A_TST,S_L,href));
+ firstjmp64bitcmp;
+ inc(href.offset,4);
+ current_asmdata.CurrAsmList.concat(taicpu.op_ref(A_TST,S_L,href));
+ secondjmp64bitcmp;
+ location_freetemp(current_asmdata.CurrAsmList,left.location);
end;
- else
- internalerror(2002072803);
+ else
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,true);
+ current_asmdata.CurrAsmList.concat(taicpu.op_reg(A_TST,S_L,left.location.register64.reglo));
+ firstjmp64bitcmp;
+ current_asmdata.CurrAsmList.concat(taicpu.op_reg(A_TST,S_L,left.location.register64.reghi));
+ secondjmp64bitcmp;
end;
+ exit;
+ end;
+ { left and right no register? }
+ { then one must be demanded }
+ if not (left.location.loc in [LOC_REGISTER,LOC_CREGISTER]) then
+ begin
+ if not (right.location.loc in [LOC_REGISTER,LOC_CREGISTER]) then
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,true)
+ else
+ begin
+ location_swap(left.location,right.location);
+ toggleflag(nf_swapped);
+ end;
+ end;
- { set result location }
- { (emit_compare sets it to LOC_FLAGS for compares, so set the }
- { real location only now) (JM) }
- if cmpop and
- not(nodetype in [equaln,unequaln]) then
- location_reset(location,LOC_JUMP,OS_NO);
-*)
- // location_reset(location,LOC_JUMP,OS_NO);
- // writeln('second_cmp64_exit');
- end;
+ { left is now in register }
+ case right.location.loc of
+ LOC_REGISTER,LOC_CREGISTER:
+ begin
+ current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_CMP,S_L,right.location.register64.reghi,left.location.register64.reghi));
+ firstjmp64bitcmp;
+ current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(A_CMP,S_L,right.location.register64.reglo,left.location.register64.reglo));
+ secondjmp64bitcmp;
+ end;
+ LOC_REFERENCE,LOC_CREFERENCE:
+ begin
+ href:=right.location.reference;
+ tcg68k(cg).fixref(current_asmdata.CurrAsmList,href);
+ current_asmdata.CurrAsmList.concat(taicpu.op_ref_reg(A_CMP,S_L,href,left.location.register64.reghi));
+ firstjmp64bitcmp;
+ inc(href.offset,4);
+ current_asmdata.CurrAsmList.concat(taicpu.op_ref_reg(A_CMP,S_L,href,left.location.register64.reglo));
+ secondjmp64bitcmp;
+ location_freetemp(current_asmdata.CurrAsmList,right.location);
+ end;
+ LOC_CONSTANT:
+ begin
+ current_asmdata.CurrAsmList.concat(taicpu.op_const_reg(A_CMP,S_L,aint(hi(right.location.value64)),left.location.register64.reghi));
+ firstjmp64bitcmp;
+ if assigned(hlab) then
+ cg.a_jmp_always(current_asmdata.CurrAsmList,hlab)
+ else
+ begin
+ current_asmdata.CurrAsmList.concat(taicpu.op_const_reg(A_CMP,S_L,aint(lo(right.location.value64)),left.location.register64.reglo));
+ secondjmp64bitcmp;
+ end;
+ end;
+ else
+ InternalError(2014072501);
+ end;
+ end;
begin
diff --git a/compiler/m68k/n68kcnv.pas b/compiler/m68k/n68kcnv.pas
index f49769e169..0158536efe 100644
--- a/compiler/m68k/n68kcnv.pas
+++ b/compiler/m68k/n68kcnv.pas
@@ -68,8 +68,14 @@ implementation
end
else
{ converting a 64bit integer to a float requires a helper }
- if is_64bitint(left.resultdef) then
+ if is_64bitint(left.resultdef) or
+ is_currency(left.resultdef) then
begin
+ { hack to avoid double division by 10000, as it's
+ already done by typecheckpass.resultdef_int_to_real }
+ if is_currency(left.resultdef) then
+ left.resultdef := s64inttype;
+
if is_signed(left.resultdef) then
fname := 'fpc_int64_to_double'
else
diff --git a/compiler/m68k/n68kmat.pas b/compiler/m68k/n68kmat.pas
index 8314498f9b..623e5f18a6 100644
--- a/compiler/m68k/n68kmat.pas
+++ b/compiler/m68k/n68kmat.pas
@@ -70,8 +70,7 @@ implementation
procedure tm68knotnode.second_boolean;
var
hreg: tregister;
- opsize : tcgsize;
- loc : tcgloc;
+ opsize : tcgsize;
begin
if not handle_locjump then
begin
@@ -154,10 +153,8 @@ implementation
procedure tm68kmoddivnode.emit_mod_reg_reg(signed: boolean;denum,num : tregister);
- var tmpreg : tregister;
- continuelabel : tasmlabel;
- signlabel : tasmlabel;
- reg_d0,reg_d1 : tregister;
+ var
+ tmpreg : tregister;
begin
if current_settings.cputype=cpu_MC68020 then
begin
diff --git a/compiler/m68k/ra68k.pas b/compiler/m68k/ra68k.pas
index 7dff294853..a28cf942af 100644
--- a/compiler/m68k/ra68k.pas
+++ b/compiler/m68k/ra68k.pas
@@ -328,6 +328,7 @@ unit ra68k;
function TM68kInstruction.ConcatLabeledInstr(p : TAsmList):tai;
begin
+ result:=nil;
if ((opcode >= A_BCC) and (opcode <= A_BVS)) or
(opcode = A_BRA) or (opcode = A_BSR) or
(opcode = A_JMP) or (opcode = A_JSR) or
diff --git a/compiler/m68k/ra68kmot.pas b/compiler/m68k/ra68kmot.pas
index 01d775ca7a..aedfed306a 100644
--- a/compiler/m68k/ra68kmot.pas
+++ b/compiler/m68k/ra68kmot.pas
@@ -616,6 +616,7 @@ const
l : longint;
errorflag: boolean;
begin
+ BuildExpression:=0;
errorflag := FALSE;
expr := '';
tempstr := '';
@@ -986,6 +987,7 @@ const
l: longint;
code: integer;
begin
+ str:='';
Consume(AS_STAR);
if (oper.opr.ref.scalefactor <> 0)
and (oper.opr.ref.scalefactor <> 1) then
@@ -1180,6 +1182,7 @@ const
code: integer;
str: string;
begin
+ str:='';
Consume(AS_LPAREN);
case actasmtoken of
{ // (reg ... // }
@@ -1309,6 +1312,7 @@ const
dataregset := [];
addrregset := [];
tempstr := '';
+ r:=NR_NO;
case actasmtoken of
{ // Memory reference // }
AS_LPAREN:
diff --git a/compiler/m68k/rgcpu.pas b/compiler/m68k/rgcpu.pas
index a981d73a75..0c0ab7957c 100644
--- a/compiler/m68k/rgcpu.pas
+++ b/compiler/m68k/rgcpu.pas
@@ -27,14 +27,150 @@ unit rgcpu;
interface
uses
- aasmbase,aasmtai,aasmdata,
- cpubase,
+ aasmbase,aasmtai,aasmdata,aasmcpu,
+ cgbase,cgutils,cpubase,
rgobj;
type
trgcpu = class(trgobj)
+ procedure do_spill_read(list:tasmlist;pos:tai;const spilltemp:treference;tempreg:tregister);override;
+ procedure do_spill_written(list:tasmlist;pos:tai;const spilltemp:treference;tempreg:tregister);override;
+ function do_spill_replace(list:TAsmList;instr:taicpu;orgreg:tsuperregister;const spilltemp:treference):boolean;override;
end;
implementation
+ uses
+ cutils,cgobj,verbose,globtype,globals,cpuinfo;
+
+ { returns True if source operand of MOVE can be replaced with spilltemp when its destination is ref^. }
+ function isvalidmovedest(ref: preference): boolean; inline;
+ begin
+ { The following is for Coldfire, for other CPUs it maybe can be relaxed. }
+ result:=(ref^.symbol=nil) and (ref^.scalefactor<=1) and
+ (ref^.index=NR_NO) and (ref^.base<>NR_NO) and (ref^.offset>=low(smallint)) and
+ (ref^.offset<=high(smallint));
+ end;
+
+
+ procedure trgcpu.do_spill_read(list:tasmlist;pos:tai;const spilltemp:treference;tempreg:tregister);
+ var
+ helpins : tai;
+ tmpref : treference;
+ helplist : tasmlist;
+ hreg : tregister;
+ begin
+ if (abs(spilltemp.offset)>32767) and (current_settings.cputype in (cpu_coldfire + [cpu_mc68000])) then
+ begin
+ helplist:=tasmlist.create;
+
+ if getregtype(tempreg)=R_INTREGISTER then
+ hreg:=tempreg
+ else
+ hreg:=cg.getintregister(helplist,OS_ADDR);
+{$ifdef DEBUG_SPILLING}
+ helplist.concat(tai_comment.Create(strpnew('Spilling: Read, large offset')));
+{$endif}
+
+ helplist.concat(taicpu.op_const_reg(A_MOVE,S_L,spilltemp.offset,hreg));
+ reference_reset_base(tmpref,spilltemp.base,0,sizeof(aint));
+ tmpref.index:=hreg;
+
+ helpins:=spilling_create_load(tmpref,tempreg);
+ helplist.concat(helpins);
+ list.insertlistafter(pos,helplist);
+ helplist.free;
+ end
+ else
+ inherited do_spill_read(list,pos,spilltemp,tempreg);
+ end;
+
+
+ procedure trgcpu.do_spill_written(list:tasmlist;pos:tai;const spilltemp:treference;tempreg:tregister);
+ var
+ tmpref : treference;
+ helplist : tasmlist;
+ hreg : tregister;
+ begin
+ if (abs(spilltemp.offset)>32767) and (current_settings.cputype in (cpu_coldfire + [cpu_mc68000])) then
+ begin
+ helplist:=tasmlist.create;
+
+ if getregtype(tempreg)=R_INTREGISTER then
+ hreg:=getregisterinline(helplist,[R_SUBWHOLE])
+ else
+ hreg:=cg.getintregister(helplist,OS_ADDR);
+{$ifdef DEBUG_SPILLING}
+ helplist.concat(tai_comment.Create(strpnew('Spilling: Write, large offset')));
+{$endif}
+
+ helplist.concat(taicpu.op_const_reg(A_MOVE,S_L,spilltemp.offset,hreg));
+ reference_reset_base(tmpref,spilltemp.base,0,sizeof(aint));
+ tmpref.index:=hreg;
+
+ helplist.concat(spilling_create_store(tempreg,tmpref));
+ if getregtype(tempreg)=R_INTREGISTER then
+ ungetregisterinline(helplist,hreg);
+
+ list.insertlistafter(pos,helplist);
+ helplist.free;
+ end
+ else
+ inherited do_spill_written(list,pos,spilltemp,tempreg);
+ end;
+
+
+ function trgcpu.do_spill_replace(list:TAsmList;instr:taicpu;orgreg:tsuperregister;const spilltemp:treference):boolean;
+ var
+ opidx: longint;
+ begin
+ result:=false;
+ opidx:=-1;
+ if (abs(spilltemp.offset)>32767) and (current_settings.cputype in cpu_coldfire) then
+ exit;
+ case instr.ops of
+ 1:
+ begin
+ if (instr.oper[0]^.typ=top_reg) and (getregtype(instr.oper[0]^.reg)=regtype) and
+ ((instr.opcode=A_TST) or (instr.opcode=A_CLR)) then
+ begin
+ if get_alias(getsupreg(instr.oper[0]^.reg))<>orgreg then
+ InternalError(2014080101);
+ opidx:=0;
+ end;
+ end;
+ 2:
+ begin
+ if (instr.oper[0]^.typ=top_reg) and (getregtype(instr.oper[0]^.reg)=regtype) and
+ (get_alias(getsupreg(instr.oper[0]^.reg))=orgreg) then
+ begin
+ { source can be replaced if dest is register... }
+ if ((instr.oper[1]^.typ=top_reg) and (instr.opcode in [A_MOVE,A_ADD,A_SUB,A_AND,A_OR,A_CMP])) or
+ {... or a "simple" reference in case of MOVE }
+ ((instr.opcode=A_MOVE) and (instr.oper[1]^.typ=top_ref) and isvalidmovedest(instr.oper[1]^.ref)) then
+ opidx:=0;
+ end
+ else if (instr.oper[1]^.typ=top_reg) and (getregtype(instr.oper[1]^.reg)=regtype) and
+ (get_alias(getsupreg(instr.oper[1]^.reg))=orgreg) and
+ (
+ (instr.opcode in [A_MOVE,A_ADD,A_SUB,A_AND,A_OR]) and
+ (instr.oper[0]^.typ=top_reg)
+ ) or
+ (instr.opcode in [A_ADDQ,A_SUBQ,A_MOV3Q]) then
+ opidx:=1;
+ end;
+ end;
+
+ if (opidx<0) then
+ exit;
+ instr.oper[opidx]^.typ:=top_ref;
+ new(instr.oper[opidx]^.ref);
+ instr.oper[opidx]^.ref^:=spilltemp;
+ case instr.opsize of
+ S_B: inc(instr.oper[opidx]^.ref^.offset,3);
+ S_W: inc(instr.oper[opidx]^.ref^.offset,2);
+ end;
+ result:=true;
+ end;
+
end.
diff --git a/compiler/m68k/symcpu.pas b/compiler/m68k/symcpu.pas
index 93702598cb..cb467ba937 100644
--- a/compiler/m68k/symcpu.pas
+++ b/compiler/m68k/symcpu.pas
@@ -186,14 +186,16 @@ implementation
procedure tcpuprocdef.ppuload_platform(ppufile: tcompilerppufile);
begin
inherited;
- ppufile.getderef(libsymderef);
+ if po_syscall_has_libsym in procoptions then
+ ppufile.getderef(libsymderef);
end;
procedure tcpuprocdef.ppuwrite_platform(ppufile: tcompilerppufile);
begin
inherited;
- ppufile.putderef(libsymderef);
+ if po_syscall_has_libsym in procoptions then
+ ppufile.putderef(libsymderef);
end;
@@ -208,14 +210,18 @@ implementation
procedure tcpuprocdef.buildderef;
begin
inherited;
- libsymderef.build(libsym);
+ if po_syscall_has_libsym in procoptions then
+ libsymderef.build(libsym);
end;
procedure tcpuprocdef.deref;
begin
inherited;
- libsym:=tsym(libsymderef.resolve);
+ if po_syscall_has_libsym in procoptions then
+ libsym:=tsym(libsymderef.resolve)
+ else
+ libsym:=nil;
end;
begin
diff --git a/compiler/mips/aasmcpu.pas b/compiler/mips/aasmcpu.pas
index 6a6ac39edf..08a63e7bc9 100644
--- a/compiler/mips/aasmcpu.pas
+++ b/compiler/mips/aasmcpu.pas
@@ -33,9 +33,9 @@ uses
const
{ "mov reg,reg" source operand number }
- O_MOV_SOURCE = 0;
+ O_MOV_SOURCE = 1;
{ "mov reg,reg" source operand number }
- O_MOV_DEST = 1;
+ O_MOV_DEST = 0;
type
{ taicpu }
@@ -401,13 +401,22 @@ end;
A_SNE,
A_EXT,
A_INS,
- A_MFC0];
+ A_MFC0,
+ A_SEB,
+ A_SEH];
begin
result := operand_read;
- if opcode in op_write_set then
- if opnr = 0 then
- result := operand_write;
+ case opcode of
+ A_DIV, { these have 3 operands if used as macros }
+ A_DIVU:
+ if (ops=3) and (opnr=0) then
+ result:=operand_write;
+ else
+ if opcode in op_write_set then
+ if opnr = 0 then
+ result := operand_write;
+ end;
end;
diff --git a/compiler/mips/aoptcpu.pas b/compiler/mips/aoptcpu.pas
index 8ae44180c2..451d0e040d 100644
--- a/compiler/mips/aoptcpu.pas
+++ b/compiler/mips/aoptcpu.pas
@@ -28,15 +28,18 @@ unit aoptcpu;
Interface
uses
- cgbase, cpubase, aoptobj, aoptcpub, aopt, aasmtai;
+ cgbase, cpubase, aoptobj, aoptcpub, aopt, aasmtai, aasmcpu;
Type
+ TAsmOpSet = set of TAsmOp;
+
TCpuAsmOptimizer = class(TAsmOptimizer)
+ function RegModifiedByInstruction(Reg: TRegister; p1: tai): boolean; override;
function GetNextInstructionUsingReg(Current: tai;
var Next: tai; reg: TRegister): Boolean;
- function RegUsedAfterInstruction(reg: Tregister; p: tai;
- var AllUsedRegs: TAllUsedRegs): Boolean;
function TryRemoveMov(var p: tai; opcode: TAsmOp): boolean;
+ function TryRemoveMovToRefIndex(var p: tai; next: taicpu): boolean;
+ function TryRemoveMovBeforeStore(var p: tai; next: taicpu; const storeops: TAsmOpSet): boolean;
function PeepHoleOptPass1Cpu(var p: tai): boolean; override;
procedure PeepHoleOptPass2; override;
End;
@@ -44,7 +47,7 @@ unit aoptcpu;
Implementation
uses
- globals,aasmbase,aasmcpu,cpuinfo,verbose;
+ cutils,globtype,globals,aasmbase,cpuinfo,verbose;
function MatchInstruction(const instr: tai; const op: TAsmOp): boolean;
@@ -93,10 +96,15 @@ unit aoptcpu;
end;
- function CanBeCMOV(p: tai): boolean;
+ function CanBeCMOV(p: tai; condreg: tregister): boolean;
begin
result:=assigned(p) and (p.typ=ait_instruction) and
- (taicpu(p).opcode in [A_MOV_D,A_MOV_S,A_MOVE]);
+ ((taicpu(p).opcode in [A_MOV_D,A_MOV_S]) or
+ (
+ { register with condition must not be overwritten }
+ (taicpu(p).opcode=A_MOVE) and
+ (taicpu(p).oper[0]^.reg<>condreg)
+ ));
end;
@@ -170,6 +178,20 @@ unit aoptcpu;
end;
+ function TCpuAsmOptimizer.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;
+
+
function TCpuAsmOptimizer.GetNextInstructionUsingReg(Current: tai;
var Next: tai; reg: TRegister): Boolean;
begin
@@ -178,7 +200,7 @@ unit aoptcpu;
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));
- if Result and is_calljmp(taicpu(next).opcode) then
+ if Result and (next.typ=ait_instruction) and is_calljmp(taicpu(next).opcode) then
begin
result:=false;
next:=nil;
@@ -186,21 +208,6 @@ unit aoptcpu;
end;
- function TCpuAsmOptimizer.RegUsedAfterInstruction(reg: Tregister; p: tai;
- var AllUsedRegs: TAllUsedRegs): Boolean;
- begin
- AllUsedRegs[getregtype(reg)].Update(tai(p.Next),true);
- RegUsedAfterInstruction :=
- AllUsedRegs[getregtype(reg)].IsUsed(reg) and
- not(regLoadedWithNewValue(reg,p)) and
- (
- not(GetNextInstruction(p,p)) or
- instructionLoadsFromReg(reg,p) or
- not(regLoadedWithNewValue(reg,p))
- );
- end;
-
-
function TCpuAsmOptimizer.TryRemoveMov(var p: tai; opcode: TAsmOp): boolean;
var
next,hp1: tai;
@@ -215,7 +222,7 @@ unit aoptcpu;
opcode may be A_MOVE, A_MOV_s, A_MOV_d, etc.
}
result:=false;
- if (taicpu(p).ops>1) and
+ if (taicpu(p).ops>0) and
GetNextInstructionUsingReg(p,next,taicpu(p).oper[0]^.reg) and
MatchInstruction(next,opcode) and
MatchOperand(taicpu(next).oper[1]^,taicpu(p).oper[0]^.reg) and
@@ -256,21 +263,96 @@ unit aoptcpu;
taicpu(p).loadreg(0,taicpu(next).oper[0]^.reg);
asml.remove(next);
next.free;
+ result:=true;
+ end
+ else // no dealloc found
+ begin
+ { try to optimize the typical call sequence
+ lw $reg, (whatever)
+ <alloc volatile registers>
+ move $t9,$reg
+ jalr $t9
+ Do not do so if the used register might contain a
+ register variable. }
+ if (opcode=A_MOVE) and
+ not(cs_opt_regvar in current_settings.optimizerswitches) and
+ (taicpu(next).oper[0]^.reg=NR_R25) and
+ GetNextInstruction(next,hp1) and
+ MatchInstruction(hp1,A_JALR) and
+ MatchOperand(taicpu(hp1).oper[0]^,NR_R25) then
+ begin
+ taicpu(p).loadreg(0,taicpu(next).oper[0]^.reg);
+ asml.remove(next);
+ next.free;
+ result:=true;
+ end;
end;
end;
end;
+ function TCpuAsmOptimizer.TryRemoveMovBeforeStore(var p: tai; next: taicpu; const storeops: TAsmOpSet): boolean;
+ begin
+ result:=(next.opcode in storeops) and
+ MatchOperand(next.oper[0]^,taicpu(p).oper[0]^.reg) and
+ { Ry cannot be modified between move and store }
+ (not RegModifiedBetween(taicpu(p).oper[1]^.reg,p,next)) and
+ Assigned(FindRegDealloc(taicpu(p).oper[0]^.reg,tai(next.next)));
+ if result then
+ begin
+ next.loadreg(0,taicpu(p).oper[1]^.reg);
+ asml.remove(p);
+ p.free;
+ p:=next;
+ end;
+ end;
+
+
+ function TCpuAsmOptimizer.TryRemoveMovToRefIndex(var p: tai; next: taicpu): boolean;
+ begin
+ result:=(next.oper[1]^.typ=top_ref) and
+ (next.oper[1]^.ref^.base=taicpu(p).oper[0]^.reg) and
+ (not RegModifiedBetween(taicpu(p).oper[1]^.reg,p,next)) and
+ Assigned(FindRegDealloc(taicpu(p).oper[0]^.reg,tai(next.next)));
+ if result then
+ begin
+ next.oper[1]^.ref^.base:=taicpu(p).oper[1]^.reg;
+ asml.remove(p);
+ p.free;
+ p:=next;
+ end;
+ end;
+
+
function TCpuAsmOptimizer.PeepHoleOptPass1Cpu(var p: tai): boolean;
var
next,next2: tai;
- TmpUsedRegs: TAllUsedRegs;
begin
result:=false;
case p.typ of
ait_instruction:
begin
case taicpu(p).opcode of
+ A_SEH:
+ begin
+ if GetNextInstructionUsingReg(p,next,taicpu(p).oper[0]^.reg) and
+ MatchInstruction(next,A_SH) and
+ MatchOperand(taicpu(next).oper[0]^,taicpu(p).oper[0]^.reg) and
+ (not RegUsedBetween(taicpu(p).oper[1]^.reg,p,next)) and
+ Assigned(FindRegDealloc(taicpu(p).oper[0]^.reg,tai(next.next))) then
+ begin
+ taicpu(next).loadreg(0,taicpu(p).oper[1]^.reg);
+ asml.remove(p);
+ p.free;
+ p:=next;
+ end
+ else
+ TryRemoveMov(p,A_MOVE);
+ end;
+ A_SEB:
+ { TODO: can be handled similar to A_SEH, but it's almost never encountered }
+ TryRemoveMov(p,A_MOVE);
+
A_SLL:
begin
{ if this is a sign extension... }
@@ -289,10 +371,7 @@ unit aoptcpu;
{ the initial register may not be reused }
(not RegUsedBetween(taicpu(p).oper[1]^.reg,next,next2)) then
begin
- CopyUsedRegs(TmpUsedRegs);
- UpdateUsedRegs(TmpUsedRegs, tai(p.next));
- UpdateUsedRegs(TmpUsedRegs, tai(next.next));
- if not RegUsedAfterInstruction(taicpu(p).oper[0]^.reg,next2,TmpUsedRegs) then
+ if Assigned(FindRegDealloc(taicpu(p).oper[0]^.reg,tai(next2.next))) then
begin
taicpu(next2).loadreg(0,taicpu(p).oper[1]^.reg);
asml.remove(p);
@@ -301,7 +380,6 @@ unit aoptcpu;
next.free;
p:=next2;
end;
- ReleaseUsedRegs(TmpUsedRegs);
end
else
TryRemoveMov(p,A_MOVE);
@@ -309,6 +387,7 @@ unit aoptcpu;
A_SRL:
begin
+ { TODO: also kill sign-extensions that follow, both SLL+SRA and SEB/SEH versions }
{ Remove 'andi' in sequences
srl Rx,Ry,16
andi Rx,Rx,65535
@@ -368,37 +447,184 @@ unit aoptcpu;
((taicpu(p).oper[2]^.val=255) and MatchInstruction(next,A_SB)) or
((taicpu(p).oper[2]^.val=65535) and MatchInstruction(next,A_SH)) and
(taicpu(next).oper[0]^.typ=top_reg) and
- (taicpu(next).oper[0]^.reg=taicpu(p).oper[0]^.reg) then
+ (taicpu(next).oper[0]^.reg=taicpu(p).oper[0]^.reg) and
+ assigned(FindRegDealloc(taicpu(p).oper[0]^.reg,tai(next.next))) then
begin
- CopyUsedRegs(TmpUsedRegs);
- UpdateUsedRegs(TmpUsedRegs, tai(p.next));
- if not RegUsedAfterInstruction(taicpu(p).oper[0]^.reg,next,TmpUsedRegs) then
+ taicpu(next).loadreg(0,taicpu(p).oper[1]^.reg);
+ asml.remove(p);
+ p.free;
+ p:=next;
+ end
+ else
+ TryRemoveMov(p,A_MOVE);
+ end;
+
+ A_MOV_S:
+ begin
+ if GetNextInstructionUsingReg(p,next,taicpu(p).oper[0]^.reg) and
+ (next.typ=ait_instruction) then
+ begin
+ if TryRemoveMovBeforeStore(p,taicpu(next),[A_SWC1]) then
+ { optimization successful };
+ end;
+ end;
+
+ A_MOV_D:
+ begin
+ if GetNextInstructionUsingReg(p,next,taicpu(p).oper[0]^.reg) and
+ (next.typ=ait_instruction) then
+ begin
+ if TryRemoveMovBeforeStore(p,taicpu(next),[A_SDC1]) then
+ { optimization successful };
+ end;
+ end;
+
+ A_MOVE:
+ begin
+ if GetNextInstructionUsingReg(p,next,taicpu(p).oper[0]^.reg) and
+ (next.typ=ait_instruction) and
+ (not RegModifiedBetween(taicpu(p).oper[1]^.reg,p,next)) then
+ begin
+ { MOVE Rx,Ry; store Rx,(ref); dealloc Rx ==> store Ry,(ref) }
+ if TryRemoveMovBeforeStore(p,taicpu(next),[A_SB,A_SH,A_SW]) then
+ { optimization successful }
+ else if TryRemoveMovToRefIndex(p,taicpu(next)) then
+ { successful as well }
+ { MOVE Rx,Ry; opcode Rx,Rx,any ==> opcode Rx,Ry,any
+ MOVE Rx,Ry; opcode Rx,Rz,Rx ==> opcode Rx,Rz,Ry }
+ else if (taicpu(next).opcode in [A_ADD,A_ADDU,A_ADDI,A_ADDIU,A_SUB,A_SUBU]) and
+ MatchOperand(taicpu(next).oper[0]^,taicpu(p).oper[0]^.reg) then
begin
- taicpu(next).loadreg(0,taicpu(p).oper[1]^.reg);
- asml.remove(p);
- p.free;
- p:=next;
+ if MatchOperand(taicpu(next).oper[1]^,taicpu(p).oper[0]^.reg) and
+ Assigned(FindRegDealloc(taicpu(p).oper[0]^.reg,tai(next.next))) then
+ begin
+ taicpu(next).loadreg(1,taicpu(p).oper[1]^.reg);
+ asml.remove(p);
+ p.free;
+ p:=next;
+ end
+ { TODO: if Ry=NR_R0, this effectively changes instruction into MOVE,
+ providing further optimization possibilities }
+ else if MatchOperand(taicpu(next).oper[2]^,taicpu(p).oper[0]^.reg) and
+ Assigned(FindRegDealloc(taicpu(p).oper[0]^.reg,tai(next.next))) then
+ begin
+ taicpu(next).loadreg(2,taicpu(p).oper[1]^.reg);
+ asml.remove(p);
+ p.free;
+ p:=next;
+ end;
+ end
+ { MOVE Rx,Ry; opcode Rz,Rx,any; dealloc Rx ==> opcode Rz,Ry,any }
+ else if (taicpu(next).opcode in [A_ADD,A_ADDU,A_ADDI,A_ADDIU,A_SUB,A_SUBU,A_SLT,A_SLTU,A_DIV,A_DIVU]) and
+ Assigned(FindRegDealloc(taicpu(p).oper[0]^.reg,tai(next.next))) then
+ begin
+ if MatchOperand(taicpu(next).oper[1]^,taicpu(p).oper[0]^.reg) then
+ begin
+ taicpu(next).loadreg(1,taicpu(p).oper[1]^.reg);
+ asml.remove(p);
+ p.free;
+ p:=next;
+ end
+ else if MatchOperand(taicpu(next).oper[2]^,taicpu(p).oper[0]^.reg) then
+ begin
+ taicpu(next).loadreg(2,taicpu(p).oper[1]^.reg);
+ asml.remove(p);
+ p.free;
+ p:=next;
+ end;
+ end
+ { MULT[U] must be handled separately due to different operand numbers }
+ else if (taicpu(next).opcode in [A_MULT,A_MULTU]) and
+ Assigned(FindRegDealloc(taicpu(p).oper[0]^.reg,tai(next.next))) then
+ begin
+ if MatchOperand(taicpu(next).oper[0]^,taicpu(p).oper[0]^.reg) then
+ begin
+ taicpu(next).loadreg(0,taicpu(p).oper[1]^.reg);
+ asml.remove(p);
+ p.free;
+ p:=next;
+ end
+ else if MatchOperand(taicpu(next).oper[1]^,taicpu(p).oper[0]^.reg) then
+ begin
+ taicpu(next).loadreg(1,taicpu(p).oper[1]^.reg);
+ asml.remove(p);
+ p.free;
+ p:=next;
+ end;
+ end
+ else if TryRemoveMov(p,A_MOVE) then
+ begin
+ { Ended up with move between same register? Suicide then. }
+ if (taicpu(p).oper[0]^.reg=taicpu(p).oper[1]^.reg) then
+ begin
+ GetNextInstruction(p,next);
+ asml.remove(p);
+ p.free;
+ p:=next;
+ end;
end;
- ReleaseUsedRegs(TmpUsedRegs);
+ { TODO: MOVE Rx,Ry; Bcc Rx,Rz,label; dealloc Rx ==> Bcc Ry,Rz,label }
+ end;
+ end;
+
+ A_ADDIU:
+ begin
+ { ADDIU Rx,Ry,const; load/store Rz,(Rx); dealloc Rx ==> load/store Rz,const(Ry)
+ ADDIU Rx,Ry,%lo(sym); load/store Rz,(Rx); dealloc Rx ==> load/store Rz,%lo(sym)(Ry)
+ ADDIU Rx,Ry,const; load Rx,(Rx) ==> load Rx,const(Ry)
+ ADDIU Rx,Ry,%lo(sym); load Rx,(Rx) ==> load Rx,%lo(sym)(Ry) }
+ if GetNextInstructionUsingReg(p,next,taicpu(p).oper[0]^.reg) and
+ (next.typ=ait_instruction) and
+ (taicpu(next).opcode in [A_LB,A_LBU,A_LH,A_LHU,A_LW,A_SB,A_SH,A_SW]) and
+ (taicpu(p).oper[0]^.reg=taicpu(next).oper[1]^.ref^.base) and
+ (taicpu(next).oper[1]^.ref^.offset=0) and
+ (taicpu(next).oper[1]^.ref^.symbol=nil) and
+ (
+ Assigned(FindRegDealloc(taicpu(p).oper[0]^.reg,tai(next.next))) or
+ (
+ (taicpu(p).oper[0]^.reg=taicpu(next).oper[0]^.reg) and
+ (taicpu(next).opcode in [A_LB,A_LBU,A_LH,A_LHU,A_LW])
+ )
+ ) and
+ (not RegModifiedBetween(taicpu(p).oper[1]^.reg,p,next)) then
+ begin
+ case taicpu(p).oper[2]^.typ of
+ top_const:
+ taicpu(next).oper[1]^.ref^.offset:=taicpu(p).oper[2]^.val;
+
+ top_ref:
+ taicpu(next).oper[1]^.ref^:=taicpu(p).oper[2]^.ref^;
+ else
+ InternalError(2014100401);
+ end;
+ taicpu(next).oper[1]^.ref^.base:=taicpu(p).oper[1]^.reg;
+ asml.remove(p);
+ p.free;
+ p:=next;
+ result:=true;
end
else
- TryRemoveMov(p,A_MOVE);
+ result:=TryRemoveMov(p,A_MOVE);
end;
+ A_LB,A_LBU,A_LH,A_LHU,A_LW,
A_ADD,A_ADDU,
- A_ADDI,A_ADDIU,
+ A_ADDI,
A_SUB,A_SUBU,
A_SRA,A_SRAV,
A_SRLV,
A_SLLV,
+ A_MFLO,A_MFHI,
A_AND,A_OR,A_XOR,A_ORI,A_XORI:
TryRemoveMov(p,A_MOVE);
+ A_LWC1,
A_ADD_s, A_SUB_s, A_MUL_s, A_DIV_s,
A_ABS_s, A_NEG_s, A_SQRT_s,
A_CVT_s_w, A_CVT_s_l, A_CVT_s_d:
TryRemoveMov(p,A_MOV_s);
+ A_LDC1,
A_ADD_d, A_SUB_d, A_MUL_d, A_DIV_d,
A_ABS_d, A_NEG_d, A_SQRT_d,
A_CVT_d_w, A_CVT_d_l, A_CVT_d_s:
@@ -452,7 +678,7 @@ unit aoptcpu;
}
l:=0;
GetNextInstruction(p, hp1);
- while CanBeCMOV(hp1) do // CanBeCMOV returns False for nil or labels
+ while CanBeCMOV(hp1,condreg) do // CanBeCMOV returns False for nil or labels
begin
inc(l);
GetNextInstruction(hp1,hp1);
@@ -470,7 +696,7 @@ unit aoptcpu;
repeat
ChangeToCMOV(taicpu(hp1),condition,condreg);
GetNextInstruction(hp1,hp1);
- until not CanBeCMOV(hp1);
+ until not CanBeCMOV(hp1,condreg);
{ wait with removing else GetNextInstruction could
ignore the label if it was the only usage in the
jump moved away }
@@ -508,7 +734,7 @@ unit aoptcpu;
l:=0;
{ skip hp1 to <several moves 2> }
GetNextInstruction(hp1, hp1);
- while CanBeCMOV(hp1) do
+ while CanBeCMOV(hp1,condreg) do
begin
inc(l);
GetNextInstruction(hp1, hp1);
@@ -524,7 +750,7 @@ unit aoptcpu;
repeat
ChangeToCMOV(taicpu(hp1),condition,condreg);
GetNextInstruction(hp1,hp1);
- until not CanBeCMOV(hp1);
+ until not CanBeCMOV(hp1,condreg);
{ hp2 is still at b yyy }
GetNextInstruction(hp2,hp1);
{ hp2 is now at xxx: }
@@ -534,7 +760,7 @@ unit aoptcpu;
repeat
ChangeToCMOV(taicpu(hp1),condition,condreg);
GetNextInstruction(hp1,hp1);
- until not CanBeCMOV(hp1);
+ until not CanBeCMOV(hp1,condreg);
{ remove bCC }
tasmlabel(taicpu(hp3).oper[taicpu(hp3).ops-1]^.ref^.symbol).decrefs;
RemoveDelaySlot(hp3);
diff --git a/compiler/mips/cgcpu.pas b/compiler/mips/cgcpu.pas
index cdc8d213b2..79e4a68975 100644
--- a/compiler/mips/cgcpu.pas
+++ b/compiler/mips/cgcpu.pas
@@ -197,16 +197,9 @@ begin
{ PIC global symbol }
ref.symbol:=nil;
- if (ref.offset=0) then
- exit;
-
if (ref.offset>=simm16lo) and
(ref.offset<=simm16hi-sizeof(pint)) then
- begin
- list.concat(taicpu.op_reg_reg_const(A_ADDIU,ref.base,ref.base,ref.offset));
- ref.offset:=0;
- exit;
- end;
+ exit;
{ fallthrough to the case of large offset }
end;
@@ -295,10 +288,6 @@ begin
[RS_F0,RS_F2,RS_F4,RS_F6, RS_F8,RS_F10,RS_F12,RS_F14,
RS_F16,RS_F18,RS_F20,RS_F22, RS_F24,RS_F26,RS_F28,RS_F30],
first_fpu_imreg, []);
-
- { needs at least one element for rgobj not to crash }
- rg[R_MMREGISTER]:=trgcpu.create(R_MMREGISTER,R_SUBNONE,
- [RS_R0],first_mm_imreg,[]);
end;
@@ -307,7 +296,6 @@ procedure TCGMIPS.done_register_allocators;
begin
rg[R_INTREGISTER].Free;
rg[R_FPUREGISTER].Free;
- rg[R_MMREGISTER].Free;
inherited done_register_allocators;
end;
@@ -441,7 +429,7 @@ end;
procedure TCGMIPS.a_load_const_reg(list: tasmlist; size: TCGSize; a: tcgint; reg: TRegister);
begin
if (a = 0) then
- list.concat(taicpu.op_reg_reg(A_MOVE, reg, NR_R0))
+ a_load_reg_reg(list, OS_INT, OS_INT, NR_R0, reg)
else if (a >= simm16lo) and (a <= simm16hi) then
list.concat(taicpu.op_reg_reg_const(A_ADDIU, reg, NR_R0, a))
else if (a>=0) and (a <= 65535) then
@@ -546,13 +534,23 @@ begin
done:=false;
OS_S8:
begin
- list.concat(taicpu.op_reg_reg_const(A_SLL, reg2, reg1, 24));
- list.concat(taicpu.op_reg_reg_const(A_SRA, reg2, reg2, 24));
+ if (CPUMIPS_HAS_ISA32R2 in cpu_capabilities[current_settings.cputype]) then
+ list.concat(taicpu.op_reg_reg(A_SEB,reg2,reg1))
+ else
+ begin
+ list.concat(taicpu.op_reg_reg_const(A_SLL, reg2, reg1, 24));
+ list.concat(taicpu.op_reg_reg_const(A_SRA, reg2, reg2, 24));
+ end;
end;
OS_S16:
begin
- list.concat(taicpu.op_reg_reg_const(A_SLL, reg2, reg1, 16));
- list.concat(taicpu.op_reg_reg_const(A_SRA, reg2, reg2, 16));
+ if (CPUMIPS_HAS_ISA32R2 in cpu_capabilities[current_settings.cputype]) then
+ list.concat(taicpu.op_reg_reg(A_SEH,reg2,reg1))
+ else
+ begin
+ list.concat(taicpu.op_reg_reg_const(A_SLL, reg2, reg1, 16));
+ list.concat(taicpu.op_reg_reg_const(A_SRA, reg2, reg2, 16));
+ end;
end;
else
internalerror(2002090901);
@@ -820,6 +818,7 @@ var
hreg: TRegister;
asmop: TAsmOp;
begin
+ a:=aint(a);
ovloc.loc := LOC_VOID;
optimize_op_const(size,op,a);
signed:=(size in [OS_S8,OS_S16,OS_S32]);
@@ -935,23 +934,30 @@ begin
end;
OP_MUL,OP_IMUL:
begin
- list.concat(taicpu.op_reg_reg(TOpCg2AsmOp[op], src2, src1));
- list.concat(taicpu.op_reg(A_MFLO, dst));
- if setflags then
+ if (CPUMIPS_HAS_ISA32R2 in cpu_capabilities[current_settings.cputype]) and
+ (not setflags) then
+ { NOTE: MUL is actually mips32r1 instruction; on older cores it is handled as macro }
+ list.concat(taicpu.op_reg_reg_reg(A_MUL,dst,src2,src1))
+ else
begin
- current_asmdata.getjumplabel(hl);
- hreg:=GetIntRegister(list,OS_INT);
- list.concat(taicpu.op_reg(A_MFHI,hreg));
- if (op=OP_IMUL) then
+ list.concat(taicpu.op_reg_reg(TOpCg2AsmOp[op], src2, src1));
+ list.concat(taicpu.op_reg(A_MFLO, dst));
+ if setflags then
begin
- hreg2:=GetIntRegister(list,OS_INT);
- list.concat(taicpu.op_reg_reg_const(A_SRA,hreg2,dst,31));
- a_cmp_reg_reg_label(list,OS_INT,OC_EQ,hreg2,hreg,hl);
- end
- else
- a_cmp_reg_reg_label(list,OS_INT,OC_EQ,hreg,NR_R0,hl);
- list.concat(taicpu.op_const(A_BREAK,6));
- a_label(list,hl);
+ current_asmdata.getjumplabel(hl);
+ hreg:=GetIntRegister(list,OS_INT);
+ list.concat(taicpu.op_reg(A_MFHI,hreg));
+ if (op=OP_IMUL) then
+ begin
+ hreg2:=GetIntRegister(list,OS_INT);
+ list.concat(taicpu.op_reg_reg_const(A_SRA,hreg2,dst,31));
+ a_cmp_reg_reg_label(list,OS_INT,OC_EQ,hreg2,hreg,hl);
+ end
+ else
+ a_cmp_reg_reg_label(list,OS_INT,OC_EQ,hreg,NR_R0,hl);
+ list.concat(taicpu.op_const(A_BREAK,6));
+ a_label(list,hl);
+ end;
end;
end;
OP_AND,OP_OR,OP_XOR:
@@ -1071,7 +1077,28 @@ end;
procedure TCGMIPS.a_jmp_flags(list: tasmlist; const f: TResFlags; l: tasmlabel);
+ var
+ ai: taicpu;
begin
+ case f.reg1 of
+ NR_FCC0..NR_FCC7:
+ begin
+ if (f.reg1=NR_FCC0) then
+ ai:=taicpu.op_sym(A_BC,l)
+ else
+ ai:=taicpu.op_reg_sym(A_BC,f.reg1,l);
+ list.concat(ai);
+ { delay slot }
+ list.concat(taicpu.op_none(A_NOP));
+ case f.cond of
+ OC_NE: ai.SetCondition(C_COP1TRUE);
+ OC_EQ: ai.SetCondition(C_COP1FALSE);
+ else
+ InternalError(2014082901);
+ end;
+ exit;
+ end;
+ end;
if f.use_const then
a_cmp_const_reg_label(list,OS_INT,f.cond,f.value,f.reg1,l)
else
@@ -1083,7 +1110,33 @@ procedure TCGMIPS.g_flags2reg(list: tasmlist; size: tcgsize; const f: tresflags;
var
left,right: tregister;
unsigned: boolean;
+ hl: tasmlabel;
begin
+ case f.reg1 of
+ NR_FCC0..NR_FCC7:
+ begin
+ if (current_settings.cputype>=cpu_mips4) then
+ begin
+ a_load_const_reg(list,size,1,reg);
+ case f.cond of
+ OC_NE: list.concat(taicpu.op_reg_reg_reg(A_MOVF,reg,NR_R0,f.reg1));
+ OC_EQ: list.concat(taicpu.op_reg_reg_reg(A_MOVT,reg,NR_R0,f.reg1));
+ else
+ InternalError(2014082902);
+ end;
+ end
+ else
+ begin
+ { TODO: still possible to do branchless by extracting appropriate bit from FCSR? }
+ current_asmdata.getjumplabel(hl);
+ a_load_const_reg(list,size,1,reg);
+ a_jmp_flags(list,f,hl);
+ a_load_const_reg(list,size,0,reg);
+ a_label(list,hl);
+ end;
+ exit;
+ end;
+ end;
if (f.cond in [OC_EQ,OC_NE]) then
begin
left:=reg;
@@ -1212,7 +1265,6 @@ var
largeoffs : boolean;
begin
list.concat(tai_directive.create(asd_ent,current_procinfo.procdef.mangledname));
- a_reg_alloc(list,NR_STACK_POINTER_REG);
if nostackframe then
begin
@@ -1221,9 +1273,6 @@ begin
exit;
end;
- if (pi_needs_stackframe in current_procinfo.flags) then
- a_reg_alloc(list,NR_FRAME_POINTER_REG);
-
helplist:=TAsmList.Create;
reference_reset(href,0);
@@ -1236,7 +1285,7 @@ begin
begin
if reg in (rg[R_FPUREGISTER].used_in_proc-paramanager.get_volatile_registers_fpu(pocall_stdcall)) then
begin
- fmask:=fmask or (1 shl ord(reg));
+ fmask:=fmask or (longword(1) shl ord(reg));
href.offset:=nextoffset;
lastfpuoffset:=nextoffset;
helplist.concat(taicpu.op_reg_ref(A_SWC1,newreg(R_FPUREGISTER,reg,R_SUBFS),href));
@@ -1266,7 +1315,7 @@ begin
begin
if reg in saveregs then
begin
- mask:=mask or (1 shl ord(reg));
+ mask:=mask or (longword(1) shl ord(reg));
href.offset:=nextoffset;
lastintoffset:=nextoffset;
if (reg=RS_FRAME_POINTER_REG) then
@@ -1282,8 +1331,8 @@ begin
//list.concat(Taicpu.Op_reg_reg_const(A_ADDIU,NR_FRAME_POINTER_REG,NR_STACK_POINTER_REG,current_procinfo.para_stack_size));
list.concat(Taicpu.op_none(A_P_SET_NOMIPS16));
list.concat(Taicpu.op_reg_const_reg(A_P_FRAME,current_procinfo.framepointer,LocalSize,NR_R31));
- list.concat(Taicpu.op_const_const(A_P_MASK,mask,-(LocalSize-lastintoffset)));
- list.concat(Taicpu.op_const_const(A_P_FMASK,Fmask,-(LocalSize-lastfpuoffset)));
+ list.concat(Taicpu.op_const_const(A_P_MASK,aint(mask),-(LocalSize-lastintoffset)));
+ list.concat(Taicpu.op_const_const(A_P_FMASK,aint(Fmask),-(LocalSize-lastfpuoffset)));
list.concat(Taicpu.op_none(A_P_SET_NOREORDER));
if (cs_create_pic in current_settings.moduleswitches) and
(pi_needs_got in current_procinfo.flags) then
diff --git a/compiler/mips/cpuelf.pas b/compiler/mips/cpuelf.pas
index b3d0dcf7ad..1c2de17e0c 100644
--- a/compiler/mips/cpuelf.pas
+++ b/compiler/mips/cpuelf.pas
@@ -207,6 +207,8 @@ implementation
result:=R_MIPS_NONE;
RELOC_ABSOLUTE:
result:=R_MIPS_32;
+ RELOC_GOTOFF: {For case jumptables only }
+ result:=R_MIPS_GPREL32;
else
result:=0;
InternalError(2012110602);
@@ -739,15 +741,15 @@ implementation
if (lowreloc.ftype=R_MIPS_LO16) then
begin;
found:=true;
+ objsec.Data.Seek(objreloc.DataOffset);
+ objsec.Data.Read(hipart,sizeof(hipart));
+ objsec.Data.Seek(lowreloc.DataOffset);
+ objsec.Data.Read(lopart,sizeof(lopart));
break;
end;
end;
if not found then
InternalError(2013030102);
- objsec.Data.Seek(objreloc.DataOffset);
- objsec.Data.Read(hipart,sizeof(hipart));
- objsec.Data.Seek(lowreloc.DataOffset);
- objsec.Data.Read(lopart,sizeof(lopart));
if (source_info.endian<>target_info.endian) then
begin
hipart:=swapendian(hipart);
@@ -809,7 +811,7 @@ implementation
else
reltyp:=objreloc.ftype;
- if ElfTarget.relocs_use_addend then
+ if (oso_rela_relocs in objsec.SecOptions) then
address:=objreloc.orgsize
else
begin
diff --git a/compiler/mips/cpugas.pas b/compiler/mips/cpugas.pas
index f6397270a5..65a884a52b 100644
--- a/compiler/mips/cpugas.pas
+++ b/compiler/mips/cpugas.pas
@@ -225,7 +225,7 @@ unit cpugas;
not (ai.condition in [C_EQ,C_NE,C_GTZ,C_GEZ,C_LTZ,C_LEZ,C_COP1TRUE,C_COP1FALSE])) {or (op=A_JAL)}
or (op=A_REM) or (op=A_REMU)
{ DIV and DIVU are normally macros, but use $zero as first arg to generate a CPU instruction. }
- or ((op=A_DIV) or (op=A_DIVU) and
+ or (((op=A_DIV) or (op=A_DIVU)) and
((ai.ops<>3) or (ai.oper[0]^.typ<>top_reg) or (ai.oper[0]^.reg<>NR_R0)))
or (op=A_MULO) or (op=A_MULOU)
{ A_LI is only a macro if the immediate is not in thez 16-bit range }
diff --git a/compiler/mips/cpuinfo.pas b/compiler/mips/cpuinfo.pas
index 01accd5f85..91355b99b1 100644
--- a/compiler/mips/cpuinfo.pas
+++ b/compiler/mips/cpuinfo.pas
@@ -21,6 +21,9 @@ Interface
Type
bestreal = double;
+{$if FPC_FULLVERSION>20700}
+ bestrealrec = TDoubleRec;
+{$endif FPC_FULLVERSION>20700}
ts32real = single;
ts64real = double;
ts80real = type double;
@@ -87,7 +90,7 @@ Const
fputypestr : array[tfputype] of string[9] = ('',
'SOFT',
- 'FPU_MIPS2','FPU_MIPS3'
+ 'MIPS2','MIPS3'
);
{ abi strings as accepted by
@@ -104,23 +107,49 @@ Const
mips_abi : tabitype = abi_default;
-{$ifdef MIPSEL}
type
- tcpuflags=(CPUMIPS_HAS_XXXX); //Todo: Does this need to be filled?
+ tcpuflags=(
+ CPUMIPS_HAS_CMOV, { conditional move instructions (mips4+) }
+ CPUMIPS_HAS_ISA32R2 { mips32r2 instructions (also on PIC32) }
+ );
const
cpu_capabilities : array[tcputype] of set of tcpuflags =
- ( { cpu_none } [],
- { cpu_mips1 } [],
- { cpu_mips2 } [],
- { cpu_mips3 } [],
- { cpu_mips4 } [],
- { cpu_mips5 } [],
- { cpu_mips32 } [],
- { cpu_mips32r2 } [],
- { cpu_pic32mx } []
+ ( { cpu_none } [],
+ { cpu_mips1 } [],
+ { cpu_mips2 } [],
+ { cpu_mips3 } [],
+ { cpu_mips4 } [CPUMIPS_HAS_CMOV],
+ { cpu_mips5 } [CPUMIPS_HAS_CMOV],
+ { cpu_mips32 } [CPUMIPS_HAS_CMOV],
+ { cpu_mips32r2 } [CPUMIPS_HAS_CMOV,CPUMIPS_HAS_ISA32R2],
+ { cpu_pic32mx } [CPUMIPS_HAS_CMOV,CPUMIPS_HAS_ISA32R2]
);
+{$ifndef MIPSEL}
+type
+ tcontrollertype =
+ (ct_none
+ );
+
+
+Const
+ { 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:''; flashbase:0; flashsize:0; srambase:0; sramsize:0));
+ {$POP}
+{$ELSE MIPSEL}
+ { Is there support for dealing with multiple microcontrollers available }
+ { for this platform? }
+ ControllerSupport = true;
type
tcontrollertype =
diff --git a/compiler/mips/ncpuadd.pas b/compiler/mips/ncpuadd.pas
index e1c17336e4..f55c89f452 100644
--- a/compiler/mips/ncpuadd.pas
+++ b/compiler/mips/ncpuadd.pas
@@ -37,27 +37,30 @@ type
procedure cmp64_lt(left_reg, right_reg: TRegister64;unsigned:boolean);
procedure cmp64_le(left_reg, right_reg: TRegister64;unsigned:boolean);
procedure second_generic_cmp32(unsigned: boolean);
+ procedure second_mul64bit;
protected
procedure second_addfloat; override;
procedure second_cmpfloat; override;
procedure second_cmpboolean; override;
procedure second_cmpsmallset; override;
+ procedure second_add64bit; override;
procedure second_cmp64bit; override;
procedure second_cmpordinal; override;
procedure second_addordinal; override;
public
- function pass_1: tnode; override;
function use_generic_mul32to64: boolean; override;
+ function use_generic_mul64bit: boolean; override;
end;
implementation
uses
- systems,
+ systems, globtype, globals,
cutils, verbose,
paramgr,
aasmtai, aasmcpu, aasmdata,
defutil,
+ cpuinfo,
{cgbase,} cgcpu, cgutils,
cpupara,
procinfo,
@@ -91,6 +94,15 @@ begin
end;
+procedure tmipsaddnode.second_add64bit;
+begin
+ if (nodetype=muln) then
+ second_mul64bit
+ else
+ inherited second_add64bit;
+end;
+
+
const
cmpops: array[boolean] of TOpCmp = (OC_LT,OC_B);
@@ -185,21 +197,6 @@ begin
end;
-function tmipsaddnode.pass_1 : tnode;
- begin
- result:=inherited pass_1;
-
- if not(assigned(result)) then
- begin
- if (nodetype in [ltn,lten,gtn,gten,equaln,unequaln]) then
- begin
- if (left.resultdef.typ=floatdef) or (right.resultdef.typ=floatdef) then
- expectloc:=LOC_JUMP;
- end;
- end;
- end;
-
-
procedure tmipsaddnode.second_addfloat;
var
op: TAsmOp;
@@ -273,7 +270,7 @@ begin
hlcg.location_force_fpureg(current_asmdata.CurrAsmList, left.location, left.resultdef, True);
hlcg.location_force_fpureg(current_asmdata.CurrAsmList, right.location, right.resultdef, True);
- location_reset(location, LOC_JUMP, OS_NO);
+ location_reset(location, LOC_FLAGS, OS_NO);
op:=ops_cmpfloat[left.location.size=OS_F64,nodetype];
@@ -289,14 +286,11 @@ begin
end;
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg(op,lreg,rreg));
- ai:=taicpu.op_sym(A_BC,current_procinfo.CurrTrueLabel);
+ location.resflags.reg1:=NR_FCC0;
if (nodetype=unequaln) then
- ai.SetCondition(C_COP1FALSE)
+ location.resflags.cond:=OC_EQ
else
- ai.SetCondition(C_COP1TRUE);
- current_asmdata.CurrAsmList.concat(ai);
- current_asmdata.CurrAsmList.concat(TAiCpu.Op_none(A_NOP));
- cg.a_jmp_always(current_asmdata.CurrAsmList,current_procinfo.CurrFalseLabel);
+ location.resflags.cond:=OC_NE;
end;
@@ -345,12 +339,90 @@ begin
inherited second_addordinal;
end;
+procedure tmipsaddnode.second_mul64bit;
+var
+ list: TAsmList;
+ hreg1,hreg2,tmpreg: TRegister;
+begin
+ list:=current_asmdata.CurrAsmList;
+ pass_left_right;
+ location_reset(location,LOC_REGISTER,def_cgsize(resultdef));
+ hlcg.location_force_reg(list,left.location,left.resultdef,left.resultdef,true);
+ { calculate 32-bit terms lo(right)*hi(left) and hi(left)*lo(right) }
+ hreg1:=NR_NO;
+ hreg2:=NR_NO;
+ tmpreg:=NR_NO;
+ if (right.location.loc=LOC_CONSTANT) then
+ begin
+ { Omit zero terms, if any }
+ if hi(right.location.value64)<>0 then
+ begin
+ hreg2:=cg.getintregister(list,OS_INT);
+ tmpreg:=cg.getintregister(list,OS_INT);
+ cg.a_load_const_reg(list,OS_INT,longint(hi(right.location.value64)),tmpreg);
+ list.concat(taicpu.op_reg_reg_reg(A_MUL,hreg2,tmpreg,left.location.register64.reglo));
+ end;
+ tmpreg:=NR_NO;
+ if lo(right.location.value64)<>0 then
+ begin
+ hreg1:=cg.getintregister(list,OS_INT);
+ tmpreg:=cg.getintregister(list,OS_INT);
+ cg.a_load_const_reg(list,OS_INT,longint(lo(right.location.value64)),tmpreg);
+ list.concat(taicpu.op_reg_reg_reg(A_MUL,hreg1,tmpreg,left.location.register64.reghi));
+ end;
+ end
+ else
+ begin
+ hlcg.location_force_reg(list,right.location,right.resultdef,right.resultdef,true);
+ tmpreg:=right.location.register64.reglo;
+ hreg1:=cg.getintregister(list,OS_INT);
+ hreg2:=cg.getintregister(list,OS_INT);
+ list.concat(taicpu.op_reg_reg_reg(A_MUL,hreg1,right.location.register64.reglo,left.location.register64.reghi));
+ list.concat(taicpu.op_reg_reg_reg(A_MUL,hreg2,right.location.register64.reghi,left.location.register64.reglo));
+ end;
+
+ { At this point, tmpreg is either lo(right) or NR_NO if lo(left)*lo(right) is zero }
+ if (tmpreg=NR_NO) then
+ begin
+ if (hreg2<>NR_NO) and (hreg1<>NR_NO) then
+ begin
+ location.register64.reghi:=cg.getintregister(list,OS_INT);
+ list.concat(taicpu.op_reg_reg_reg(A_ADDU,location.register64.reghi,hreg1,hreg2));
+ end
+ else if (hreg2<>NR_NO) then
+ location.register64.reghi:=hreg2
+ else if (hreg1<>NR_NO) then
+ location.register64.reghi:=hreg1
+ else
+ InternalError(2014122701);
+ location.register64.reglo:=NR_R0;
+ end
+ else
+ begin
+ list.concat(taicpu.op_reg_reg(A_MULTU,left.location.register64.reglo,tmpreg));
+ location.register64.reghi:=cg.getintregister(list,OS_INT);
+ location.register64.reglo:=cg.getintregister(list,OS_INT);
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg(A_MFLO,location.register64.reglo));
+ current_asmdata.CurrAsmList.Concat(taicpu.op_reg(A_MFHI,location.register64.reghi));
+ if (hreg2<>NR_NO) then
+ list.concat(taicpu.op_reg_reg_reg(A_ADDU,location.register64.reghi,location.register64.reghi,hreg2));
+ if (hreg1<>NR_NO) then
+ list.concat(taicpu.op_reg_reg_reg(A_ADDU,location.register64.reghi,location.register64.reghi,hreg1));
+ end;
+end;
function tmipsaddnode.use_generic_mul32to64: boolean;
begin
result:=false;
end;
+function tmipsaddnode.use_generic_mul64bit: boolean;
+begin
+ result:=(cs_check_overflow in current_settings.localswitches) or
+ (not (CPUMIPS_HAS_ISA32R2 in cpu_capabilities[current_settings.cputype]));
+end;
+
+
begin
caddnode := tmipsaddnode;
end.
diff --git a/compiler/mips/ncpucnv.pas b/compiler/mips/ncpucnv.pas
index de219edec9..4101753442 100644
--- a/compiler/mips/ncpucnv.pas
+++ b/compiler/mips/ncpucnv.pas
@@ -156,12 +156,11 @@ begin
current_asmdata.getdatalabel(l1);
current_asmdata.getjumplabel(l2);
reference_reset_symbol(href, l1, 0, sizeof(aint));
- hregister := cg.getintregister(current_asmdata.CurrAsmList, OS_32);
- hlcg.a_load_loc_reg(current_asmdata.CurrAsmList, left.resultdef, u32inttype, left.location, hregister);
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,true);
{ Always load into 64-bit FPU register }
loadsigned(s64real);
- cg.a_cmp_const_reg_label(current_asmdata.CurrAsmList, OS_INT, OC_GTE, 0, hregister, l2);
+ cg.a_cmp_const_reg_label(current_asmdata.CurrAsmList, OS_INT, OC_GTE, 0, left.location.register, l2);
case tfloatdef(resultdef).floattype of
{ converting dword to s64real first and cut off at the end avoids precision loss }
diff --git a/compiler/mips/rgcpu.pas b/compiler/mips/rgcpu.pas
index b022cd5c7c..2378045de0 100644
--- a/compiler/mips/rgcpu.pas
+++ b/compiler/mips/rgcpu.pas
@@ -131,22 +131,50 @@ implementation
result:=false;
{ Replace 'move orgreg,src' with 'sw src,spilltemp'
and 'move dst,orgreg' with 'lw dst,spilltemp' }
- { TODO: A_MOV_S and A_MOV_D for float registers are also replaceable }
- if (instr.opcode<>A_MOVE) or (abs(spilltemp.offset)>32767) then
+
+ if (not (instr.opcode in [A_MOVE,A_MOV_S,A_MOV_D,A_MTC1])) or (abs(spilltemp.offset)>32767) then
exit;
if (instr.ops<>2) or
(instr.oper[0]^.typ<>top_reg) or
- (instr.oper[1]^.typ<>top_reg) or
- (getregtype(instr.oper[0]^.reg)<>regtype) or
- (getregtype(instr.oper[1]^.reg)<>regtype) then
+ (instr.oper[1]^.typ<>top_reg) then
InternalError(2013061001);
+ if (getregtype(instr.oper[0]^.reg)<>regtype) or
+ (getregtype(instr.oper[1]^.reg)<>regtype) then
+ begin
+ if (instr.opcode=A_MTC1) then
+ begin
+ { TODO: MTC1 src,orgreg ==> SW src,0/4(spilltemp) (endian-dependent!!) }
+ if (regtype=R_FPUREGISTER) then
+ exit;
+ end
+ else
+ InternalError(2013061003);
+ end;
if get_alias(getsupreg(instr.oper[1]^.reg))=orgreg then
begin
- instr.opcode:=A_LW;
+ case instr.opcode of
+ A_MOVE: instr.opcode:=A_LW;
+ A_MOV_S: instr.opcode:=A_LWC1;
+ A_MOV_D: instr.opcode:=A_LDC1;
+ else
+ InternalError(2013061004);
+ end;
end
else if get_alias(getsupreg(instr.oper[0]^.reg))=orgreg then
begin
- instr.opcode:=A_SW;
+ case instr.opcode of
+ A_MOVE: instr.opcode:=A_SW;
+ A_MOV_S: instr.opcode:=A_SWC1;
+ A_MOV_D: instr.opcode:=A_SDC1;
+ A_MTC1:
+ begin
+ if (getregtype(instr.oper[0]^.reg)<>R_INTREGISTER) then
+ InternalError(2013061006);
+ instr.opcode:=A_LWC1;
+ end
+ else
+ InternalError(2013061005);
+ end;
instr.oper[0]^:=instr.oper[1]^;
end
else
diff --git a/compiler/msg/errorct.msg b/compiler/msg/errorct.msg
index 64bec8f5d5..2b96dcdddc 100644
--- a/compiler/msg/errorct.msg
+++ b/compiler/msg/errorct.msg
@@ -264,7 +264,7 @@ scan_e_unsupported_asmmode_specifier=02050_E_L'estil d'assemblador especificat "
% the compiler didn't recognize the mode you specified.
scan_w_no_asm_reader_switch_inside_asm=02051_W_No es permet el commutador de lector d'ASM dins d'una declaració ASM, "$1" serà efectiu a continuació
% It is not possible to switch from one assembler reader to another
-% inside an assmebler block. The new reader will be used for next
+% inside an assembler block. The new reader will be used for next
% assembler statements only.
scan_e_wrong_switch_toggle=02052_E_El modificador del commutador és erroni, utilitzeu ON/OFF o +/-
% You need to use ON or OFF or a + or - to toggle the switch
@@ -2100,7 +2100,7 @@ option_code_page_not_available=11039_E_La pàgina del codi no està disponible
#
option_logo=11023_[
Free Pascal Compiler versió $FPCFULLVERSION [$FPCDATE] per $FPCCPU
-Copyright (c) 1993-2014 per Florian Klaempfl
+Copyright (c) 1993-2015 per Florian Klaempfl and others
]
#
diff --git a/compiler/msg/errord.msg b/compiler/msg/errord.msg
index 41a5b8dc6d..9c48289be5 100644
--- a/compiler/msg/errord.msg
+++ b/compiler/msg/errord.msg
@@ -3,7 +3,7 @@
# Latest updates contributed by Karl-Michael Schindler aka mischi
# <karl-michael.schindler at web.de>
#
-# Based on errore.msg of SVN revision 28127
+# Based on errore.msg of SVN revision 29129
#
# This file is part of the Free Pascal Compiler
# Copyright (c) 1998-2014 by the Free Pascal Development team
@@ -181,9 +181,9 @@ scan_n_ignored_switch=02008_N_Compilerschalter $1 wurde ignoriert
scan_w_illegal_switch=02009_W_Compilerschalter $1 ist ungltig
% You included a compiler switch (i.e. \var{\{\$... \}}) which the compiler
% does not recognise.
-scan_w_switch_is_global=02010_W_Dieser Compilerschalter hat globale Auswirkung
-% The compiler switch is misplaced, and should be located at
-% the start of the unit or program.
+scan_w_switch_is_global=02010_W_Dieser globale Compilerschalter ist an der falschen Stelle und wird deshalb ignoriert
+% The compiler switch is misplaced. It must be located at
+% the start of the compilation unit, before the uses clause or any declaration.
scan_e_illegal_char_const=02011_E_Ungltige Char-Konstante
% This happens when you specify a character with its ASCII code, as in
% \var{\#96}, but the number is either illegal, or out of range.
@@ -411,8 +411,9 @@ scan_w_invalid_stacksize=02096_W_Die spezifizierte Gr”áe des Stack ist auáerhalb
scan_w_heapmax_lessthan_heapmin=02097_W_Die spezifizierte GrӇe des HeapMax ist kleiner als der des HeapMin. Setzen der GrӇe des HeapMax ignoriert.
% The HeapMax value (if specified) must be greater than or equal to the HeapMin
% value. Otherwise, the HeapMax value is ignored.
-scan_w_hugepointernormalization_not_support=02098_W_HUGEPOINTERNORMALIZATION wird auf der Zielplatform nicht untersttzt
-% The \var{\{\$HUGEPOINTERNORMALIZATION\}} directive is not supported by the target platform.
+scan_e_illegal_hugepointernormalization=02098_E_Illegales Argument fr HUGEPOINTERNORMALIZATION
+% The only allowed values for HUGEPOINTERNORMALIZATION are BORLANDC, MICROSOFTC
+% and WATCOMC.%
%
% \end{description}
# EndOfTeX
@@ -876,7 +877,7 @@ parser_e_self_in_non_message_handler=03146_E_SELF darf nur in Message-Handlern e
% The \var{Self} parameter can only be passed explicitly to a method which
% is declared as message method handler
parser_e_threadvars_only_sg=03147_E_Threadvariablen k”nnen nur statisch oder global sein
-% Threadvars must be static or global; you can't declare a thread
+% Threadvars must be static or global; you cannot declare a thread
% local to a procedure. Local variables are always local to a thread,
% because every thread has its own stack and local variables
% are stored on the stack.
@@ -893,7 +894,7 @@ parser_e_no_object_override=03150_E_OVERRIDE darf in Objekten nicht verwendet we
parser_e_cant_use_inittable_here=03151_E_Datentypen, die ein Initialiserung oder Finalisierung ben”tigen, k”nnen in varianten Records nicht verwendet werden
% Some data types (e.g. \var{ansistring}) need initialization/finalization
% code which is implicitly generated by the compiler. Such data types
-% can't be used in the variant part of a record.
+% cannot be used in the variant part of a record.
parser_e_resourcestring_only_sg=03152_E_Resourcestrings drfen nur statisch oder global sein
% Resourcestring cannot be declared local, only global or using the static
% directive.
@@ -981,7 +982,7 @@ parser_w_skipped_fields_before=03175_W_Einige Felder vor dem Feld "$1" sind nich
% In Delphi mode, not all fields of a typed constant record have to be
% initialized, but the compiler warns you when it detects such situations.
parser_e_skipped_fields_before=03176_E_Einige Felder vor dem Feld "$1" sind nicht initialisiert
-% In all syntax modes but Delphi mode, you can't leave some fields uninitialized
+% In all syntax modes but Delphi mode, you cannot leave some fields uninitialized
% in the middle of a typed constant record.
parser_w_skipped_fields_after=03177_W_Einige Felder nach dem Feld "$1" sind nicht initialisiert
% You can leave some fields at the end of a type constant record uninitialized
@@ -1972,7 +1973,7 @@ type_e_type_not_allowed_for_type_helper=04120_E_Typ "$1" kann durch einen Typhel
type_e_procedure_must_be_far=04121_E_Prozedur oder Funktion muss weit ("far") sein, damit seine Adresse verwendet werden kann: "$1"
% In certain i8086 memory models (medium, large and huge), procedures and functions
% have to be declared 'far' in order to allow their address to be taken.
-type_w_instance_abstract_class=04122_-W_Erzeugung einer Instanz der abstrakten Klasse "$1"
+type_w_instance_abstract_class=04122_W_Erzeugung einer Instanz der abstrakten Klasse "$1"
% The specified class is declared as \var{abstract} and thus no instance of this class
% should be created. This is merely a warning for Delphi compatibility.
%
@@ -2317,7 +2318,7 @@ cg_e_cannot_call_cons_dest_inside_with=06037_E_Konstruktoren und Destruktoren k”
% Inside a \var{With} clause you cannot call a constructor or destructor for the
% object you have in the \var{with} clause.
cg_e_cannot_call_message_direct=06038_E_Kann Messagehandler-Methode nicht direkt aufrufen
-% A message method handler method can't be called directly if it contains an
+% A message method handler method cannot be called directly if it contains an
% explicit \var{Self} argument.
cg_e_goto_inout_of_exception_block=06039_E_Sprung in- oder aus dem Exceptionblock heraus
% It is not allowed to jump in or outside of an exception block like \var{try..finally..end;}.
@@ -2713,6 +2714,9 @@ asmr_e_invalid_ref_register=07125_E_Ungltiges Register in Speicherreferenzausdr
% FPU, vector and sometimes integer registers cannot be used in memory reference
% expressions, due to limitations of the cpu architecture or simple because
% it is not meaningful.
+%
+% \end{description}
+# EndOfTeX
#
# Assembler/binary writers
@@ -2761,6 +2765,9 @@ asmw_e_handlerdata_no_handler=08025_E_".seh_handlerdata"-Direktive ohne vorangeh
asmw_f_too_many_relocations=08026_F_Relocationz„hler fr Sektion $1 bersteigt 65535
% Legacy COFF targets limit number of relocations per section to 65535 because they use a 2-byte field
% to store the relocation count. Targets using newer PECOFF format do not have this limitation.
+%
+% \end{description}
+# EndOfTeX
#
# Executing linker/assembler
@@ -3361,7 +3368,7 @@ wpo_cant_create_feedback_file=12019_E_Die angegebene Feedback-Eingabe-Datei "$1"
#
option_logo=11023_[
Free Pascal Compiler Version $FPCFULLVERSION [$FPCDATE] fr $FPCTARGET
-Copyright (c) 1993-2014 Florian Kl„mpfl und andere
+Copyright (c) 1993-2015 Florian Kl„mpfl und andere
]
#
@@ -3370,10 +3377,10 @@ Copyright (c) 1993-2014 Florian Kl„mpfl und andere
option_info=11024_[
Free Pascal Compiler Version $FPCVERSION
-Compiler Datum: $FPCDATE
-Compiler Zielsystem: $FPCCPU
+Compiler-Datum: $FPCDATE
+Compiler-Zielsystem: $FPCCPU
-Untersttzte Zielbetriebssysteme:
+Untersttzte Zielbetriebssysteme (Mit '{*}' markierte Ziele sind in Entwicklung):
$OSTARGETS
Untersttzte CPU Instruktionen:
@@ -3385,6 +3392,9 @@ Untersttzte FPU Instruktionen:
Untersttzte Inline-Assembler Modi:
$ASMMODES
+Bekannte Compiler und RTL Feature:
+ $FEATURELIST
+
Untersttzte ABI Ziele:
$ABITARGETS
@@ -3395,7 +3405,7 @@ Untersttzte Gesamtprogramm-Optimierungen:
All
$WPOPTIMIZATIONS
-Untersttzte Microcontroller:
+Untersttzte Mikro-Kontroller:
$CONTROLLERTYPES
Dieses Programm unterliegt der GNU General Public Licence
@@ -3404,7 +3414,7 @@ Weitere Informationen sind in COPYING.v2 zu finden
Fehlerberichte bitte senden an:
http://bugs.freepascal.org
-Weiter Information stehen auf unseren WWW Seiten (einschlieálich Links zu
+Weitere Informationen stehen auf unseren WWW Seiten (einschlieálich Links zu
Mailing-Listen, auf denen Fragen gestellt und potentielle neue Features
diskutiert werden k”nnen, usw.):
http://www.freepascal.org
@@ -3423,9 +3433,14 @@ diskutiert werden k”nnen, usw.):
# A = ARM
# e = in extended debug mode only
# F = help for the 'fpc' binary (independent of the target compiler)
+# I = VIS
+# J = JVM
+# M = MIPS (MIPSEB) targets
+# m = MIPSEL targets
# P = PowerPC targets
+# p = PowerPC64 targets
# S = Sparc targets
-# V = Virtual machine targets
+# V = AVR
# The second character also indicates who will display this line,
# (if the above character was TRUE) the current possibilities are :
# * = everyone
@@ -3435,8 +3450,10 @@ diskutiert werden k”nnen, usw.):
# The third character represents the indentation level.
#
option_help_pages=11025_[
+F*0*_Es werden nur Optionen aufgelistet, die fr die voreingestellte oder ausgew„hlte Platform gltig sind.
**0*_Nach booleschen Optionen geben Sie + zum Ein- bzw. - zum Ausschalten an
-**1a_L”sche die erzeugte Assembler-Datei nicht
+**1@<x>_Lese zus„tzlich zu den voreingestellten Compiler-Optionen aus fpc.cfg auch die aus <x>
+**1a_Erzeugte Assembler-Datei nicht l”schen
**2al_Liste Quellcode-Zeilen in der Assembler-Datei
**2an_Liste "node info" in der Assembler-Datei (-dEXTDEBUG Compiler)
**2ao_Fge eine zus„tzliche Option zum Aufruf des externen Assemblers hinzu (ignoriert fr den internen Assembler)
@@ -3486,12 +3503,12 @@ S*2Aas_Assembliere mit Hilfe von GNU AS
**1B_Erzeuge alle Module (Build)
**1C<x>_Optionen fr Code-Erzeugung:
**2C3<x>_Schalte ieee-Prfung von Konstanten ein
-**2Ca<x>_W„hle ABI aus; fpc -i gibt die m”glichen Werte aus
+**2Ca<x>_W„hle ABI aus; fpc -i oder fpc -ia geben die m”glichen Werte aus
**2Cb_Erzeuge Code fr die "big-endian"-Variante der Zielarchitektur
**2Cc<x>_Setze "default calling convention" zu <x>
**2CD_Erzeuge auch eine dynamische Bibliothek (nicht untersttzt)
**2Ce_šbersetze mit emulierten Fliesskomma opcodes
-**2Cf<x>_W„hle den Fliesskomma-Instruction-Set aus; fpc -i gibt die m”glichen Werte aus
+**2Cf<x>_W„hle den Fliesskomma-Instruction-Set aus; fpc -i oder fpc -if geben die m”glichen Werte aus
**2CF<x>_Minimale Pr„zission von Fliesskommakonstanten (default, 32, 64)
**2Cg_Erzeuge PIC code
**2Ch<n>_<n> Bytes Heap (zwischen 1023 und 67107840)
@@ -3501,7 +3518,7 @@ A*2CI<x>_W„hle den Instruction-Set fr ARM aus: ARM oder THUMB
P*2CN_Erzeuge šberprfungen auf Nil-Zeiger (nur AIX)
**2Co_Prfe auf šberlauf von Integer-Operationen
**2CO_Prfe auf m”glichen šberlauf von Integer-Operationen
-**2Cp<x>_W„hle Instruction-Set aus; fpc -i gibt die m”glichen Werte aus
+**2Cp<x>_W„hle Instruction-Set aus; fpc -i oder fpc -ic geben die m”glichen Werte aus
**2CP<x>=<y>_ Einstellungen fr packing
**3CPPACKSET=<y>_ <y> Belegung von Sets: 0, 1 oder DEFAULT oder NORMAL, 2, 4 und 8
**2Cr_Fhre Bereichsprfung durch
@@ -3568,20 +3585,29 @@ J*2Cv_Var/out Parameter copy-out šberprfung
*g3godwarfmethodclassprefix_ Stelle Methodennamen in DWARF den Namen der Klasse voran
*g2gp_Erhalte Gross/Kleinschreibung in Stabs-Symbolnamen
*g2gs_Erzeuge Stabs-Debug-Informationen
-*g2gt_L”sche lokale Variablen (um eine Verwendung ohne Initialisierung zu finden)
+*g2gt_L”sche lokale Variablen (um eine Verwendung ohne Initialisierung zu finden; mehrere 't' „ndern den Wert, mit dem berschrieben wird)
*g2gv_Erzeuge ein mit Valgrind verfolgbares (traceable) Programm
*g2gw_Erzeuge DWARFv2-Debug-Informationen (wie -gw2)
*g2gw2_Erzeuge DWARFv2-Debug-Informationen
*g2gw3_Erzeuge DWARFv3-Debug-Informationen
-*g2gw4_Generate DWARFv4-Debug-Informationen (experimentell)
+*g2gw4_Erzeuge DWARFv4-Debug-Informationen (experimentell)
**1i_Zeige alle Informationen ber den Compiler
**2iD_Zeige Compilerdatum
-**2iV_Zeige Compilerversion
-**2iW_Zeige vollst„ndige Compilerversion
**2iSO_Zeige Compilerbetriebssystem
**2iSP_Zeige Compilerprozessor
**2iTO_Zeige Zielbetriebssystem
**2iTP_Zeige Zielprozessor
+**2iV_Zeige kurze Compilerversion
+**2iW_Zeige vollst„ndige Compilerversion
+**2ia_Zeige Liste der untersttzten ABI-Ziele
+**2ic_Zeige Liste der untersttzten CPU-Instruction-Sets
+**2if_Zeige Liste der untersttzten Fliesskomma-Instruction-Sets
+**2ii_Zeige Liste der untersttzten Inline-Assembler-Modi
+**2io_Zeige Liste der untersttzten Optimierungen
+**2ir_Zeige Liste der erkannten Compiler- und RTL-Feature
+**2it_Zeige Liste der untersttzten Ziele
+**2iu_Zeige Liste der untersttzten Mikro-Kontrollertypen
+**2iw_Zeige Liste der untersttzten Gesamtprogramm-Optimierungen
**1I<x>_Erg„nze <x> zum Include-Pfad
**1k<x>_šbergebe <x> an den Linker
**1l_Zeige Logo
@@ -3600,16 +3626,16 @@ J*2Cv_Var/out Parameter copy-out šberprfung
**2O3_Level 3 Optimierung (-O2 + langsame Optimierungen)
**2O4_Level 4 Optimierung (-O3 + Optimierungen, die unerwartete Nebeneffekte haben k”nnen)
**2Oa<x>=<y>_Ausrichtung (alignment) von Mengen
-**2Oo[NO]<x>_Optimierungen ein- oder ausschalten; fpc -i gibt die m”glichen Werte aus
-**2Op<x>_Setze Zielprozessor fr die Optimierung; fpc -i gibt die m”glichen Werte aus
-**2OW<x>_Erzeuge Feedback fr die Gesamtprogramm-Optimierung fr Optimierung <x>, siehe fpc -i fr m”gliche Werte
-**2Ow<x>_Fhre die Gesamtprogramm-Optimierung durch <x>, siehe fpc -i fr m”gliche Werte
+**2Oo[NO]<x>_Optimierungen ein- oder ausschalten; fpc -i oder fpc -io geben die m”glichen Werte aus
+**2Op<x>_Setze Zielprozessor fr die Optimierung; fpc -i oder fpc -ic geben die m”glichen Werte aus
+**2OW<x>_Erzeuge Feedback fr die Gesamtprogramm-Optimierung fr Optimierung <x>; fpc -i oder fpc -iw geben die m”glichen Werte aus
+**2Ow<x>_Fhre die Gesamtprogramm-Optimierung durch <x>; fpc -i oder fpc -iw geben die m”glichen Werte aus
**2Os_Erzeuge krzeren Code
**1pg_Erzeuge Profiler-Code fr gprof
F*1P<x>_Ziel CPU / Compiler bezogene Optionen:
F*2PB_Zeige die voreingestellte Compilerbin„rdatei
F*2PP_Zeige die voreingestellte Ziel-CPU
-F*2P<x>_Setze die Ziel-CPU (arm, i386, m68k, mips, mipsel, powerpc, powerpc64, sparc, x86_64)
+F*2P<x>_Setze die Ziel-CPU (arm, avr, i386, jvm, m68k, mips, mipsel, powerpc, powerpc64, sparc, x86_64)
**1R<x>_Assembler Code-Format:
**2Rdefault_Benutze den voreingestellten Assembler
3*2Ratt_Lese Assembler Code im AT&T-Format
@@ -3625,6 +3651,7 @@ F*2P<x>_Setze die Ziel-CPU (arm, i386, m68k, mips, mipsel, powerpc, powerpc64, s
**3*_w : Compiler h„lt auch nach Warnungen
**3*_n : Compiler h„lt auch nach Anmerkungen
**3*_h : Compiler h„lt auch nach Hinweisen
+**2Sf_Schalte bestimmte Feature in Compiler und RTL ein; fpc -i oder fpc -ir geben die m”glichen Werte aus
**2Sg_Erlaube LABEL und GOTO
**2Sh_Benutze ANSI-Strings
**2Si_Benutze C++ artige INLINE
@@ -3635,6 +3662,7 @@ F*2P<x>_Setze die Ziel-CPU (arm, i386, m68k, mips, mipsel, powerpc, powerpc64, s
**2Sm_Untersttze Makros wie in C (global)
**2So_Sei TP/BP 7.0 kompatibel (wie -Mtp)
**2Ss_Konstruktor- und Destruktorname mssen "Init" und "Done" sein
+**2Sv_Untersttze Vektor-Verarbeitung (soweit vorhanden benutze CPU-Vektorerweiterungen)
**2Sx_Exception Schlsselw”rter einschalten (Voreinstellung in Delphi/ObjFPC Moden)
**2Sy_@<pointer> gibt einen typisierten Zeiger zurck, genau wie $T+
**1s_Rufe weder Assembler noch Linker auf (nur mit -a)
@@ -3642,10 +3670,15 @@ F*2P<x>_Setze die Ziel-CPU (arm, i386, m68k, mips, mipsel, powerpc, powerpc64, s
**2st_Erzeuge Script um auf dem Zielsystem zu linken
**2sr_šberspringe die Phase der "register allocation" (mit -alr benutzen)
**1T<x>_Zielbetriebssystem::
+3*2Tandroid_Android
+3*2Taros_AROS
+3*2Tbeos_BeOS
3*2Tdarwin_Darwin/Mac OS X
+3*2Tembedded_Embedded
3*2Temx_OS/2 via EMX (einschliesslich EMX/RSX extender)
3*2Tfreebsd_FreeBSD
3*2Tgo32v2_Version 2 des DJ Delorie DOS extender
+3*2Thaiku_Haiku
3*2Tlinux_Linux
3*2Tnativent_Native NT API (experimentell)
3*2Tnetbsd_NetBSD
@@ -3661,22 +3694,45 @@ F*2P<x>_Setze die Ziel-CPU (arm, i386, m68k, mips, mipsel, powerpc, powerpc64, s
3*2Twin32_Windows 32 Bit
3*2Twince_Windows CE
4*2Tdarwin_Darwin/Mac OS X
+4*2Tfreebsd_FreeBSD
4*2Tlinux_Linux
-4*2Twin64_Win64 (64 bit Windows systems)
+4*2Tnetbsd_NetBSD
+4*2Topenbsd_OpenBSD
+4*2Tsolaris_Solaris
+4*2Twin64_Win64 (64 bit Windows Systeme)
6*2Tamiga_Commodore Amiga
6*2Tatari_Atari ST/STe/TT
6*2Tlinux_Linux
6*2Tpalmos_PalmOS
+8*2Tmsdos_MS-DOS (und kompatible)
+A*2Tandroid_Android
A*2Tdarwin_Darwin/iPhoneOS/iOS
+A*2Tembedded_Embedded
+A*2Tgba_Game Boy Advance
A*2Tlinux_Linux
+A*2Tnds_Nintendo DS
+A*2Tsymbian_Symbian
A*2Twince_Windows CE
+J*2Tandroid_Android
+J*2Tjava_Java
+m*2Tembedded_Embedded
+M*2Tandroid_Android
+M*2Tembedded_Embedded
+M*2Tlinux_Linux
+P*2Taix_AIX
P*2Tamiga_AmigaOS
P*2Tdarwin_Darwin und Mac OS X
P*2Tlinux_Linux
P*2Tmacos_Mac OS (classic)
P*2Tmorphos_MorphOS
+P*2Tnetbsd_NetBSD
+P*2Twii_Wii
+p*2Taix_AIX
+p*2Tdarwin_Darwin/Mac OS X
+p*2Tlinux_Linux
S*2Tsolaris_Solaris
S*2Tlinux_Linux
+V*2Tembedded_Embedded
**1u<x>_Entferne die Definition fr das Symbol <x>
**1U<x>_Unit-Optionen:
**2Un_Prfe den Unitnamen nicht
@@ -3690,7 +3746,7 @@ S*2Tlinux_Linux
**2*_i : Allgemeine Informationen d : Debug Informationen
**2*_l : Zeilennummern r : Rhide/GCC kompatibler Modus
**2*_s : Zeitstempel q : Nummer der Meldung
-**2*_a : Alles x : Exe-Datei Informationen (nur Win32)
+**2*_a : Alles x : Zeige Infos ber aufgerufene Tools
**2*_b : Schreibe bei Meldungen mit p : Schreibe tree.log mit Analysenbaum (parse tree)
**2*_ Dateinamen den vollst„ndigen v : Schreibe fpcdebug.txt mit
**2*_ Pfad ganz viel Information
@@ -3712,7 +3768,7 @@ A*2Wb_Erzeuge statt einer Bibliothek ein Bundle (Darwin)
A*2WB_Erzeuge ein relozierbares Image (Windows, Symbian)
A*2WBxxxx_Setze die Imagebasis auf xxxx (Windows)
3*2WC_Spezifiziere "console type application" (EMX, OS/2, Windows)
-4*2WC_Spezifiziere "console type application" (EMX, OS/2, Windows)
+4*2WC_Spezifiziere "console type application" (Windows)
A*2WC_Spezifiziere "console type application" (Windows)
P*2WC_Spezifiziere "console type application" (Classic Mac OS)
3*2WD_Benutze DEFFILE um Funktionen der DLL oder EXE zu exportieren (Windows)
@@ -3725,7 +3781,7 @@ P*2We_Benutze externe Resourcen (Darwin)
p*2We_Benutze externe Resourcen (Darwin)
3*2WF_Spezifiziere "full-screen type application" (EMX, OS/2)
3*2WG_Spezifiziere "graphic type application" (EMX, OS/2, Windows)
-4*2WG_Spezifiziere "graphic type application" (EMX, OS/2, Windows)
+4*2WG_Spezifiziere "graphic type application" (Windows)
A*2WG_Spezifiziere "graphic type application" (Windows)
P*2WG_Spezifiziere "graphic type application" (Classic Mac OS)
3*2Wi_Benutze interne Resourcen (Darwin)
@@ -3749,8 +3805,9 @@ P*2WM<x>_Minimale Mac OS X Deployment Version: 10.4, 10.5.1, ... (Darwin)
3*2WN_Erzeuge keinen "relocation code" (notwendig fr debugging) (Windows)
4*2WN_Erzeuge keinen "relocation code" (notwendig fr debugging) (Windows)
A*2WN_Erzeuge keinen "relocation code" (notwendig fr debugging) (Windows)
-A*2Wpxxxx_Spezifiziere den Kontrollertyp, m”gliche Werte liefert fpc -i
-V*2Wpxxxx_Spezifiziere den Kontrollertyp, m”gliche Werte liefert fpc -i
+A*2Wpxxxx_Spezifiziere den Kontrollertyp; fpc -i oder fpc -iu geben m”gliche Werte aus
+m*2Wpxxxx_Spezifiziere den Kontrollertyp; fpc -i oder fpc -iu geben m”gliche Werte aus
+V*2Wpxxxx_Spezifiziere den Kontrollertyp; fpc -i oder fpc -iu geben m”gliche Werte aus
3*2WP<x>_Minimale iOS Deployment Version: 3.0, 5.0.1, ... (iphonesim)
A*2WP<x>_Minimale iOS Deployment Version: 3.0, 5.0.1, ... (Darwin)
3*2WR_Erzeuge "relocation code" (Windows)
@@ -3765,11 +3822,16 @@ P*2WF_Spezifiziere "MPW tool type application" (Classic Mac OS)
**2Xc_šbergebe --shared an den Linker (nur Unix)
**2Xd_Den Standard Bibliotheks-Suchpfad NICHT nutzen (ben”tigt fr cross compile, wenn nicht -XR verwendet wird)
**2Xe_Verwende den externen Linker
+**2Xf_Ersetze zum Linken den Namen der pthread-Bibliothek (BSD)
**2Xg_Erstelle die Debug-Informationen in einer separaten Datei und einen "Debug-Link"-Abschnitt im ausfhrbaren Programm
**2XD_Versuche Units dynamisch zu linken (definiert FPC_LINK_DYNAMIC)
**2Xi_Verwende den internen Linker
+**2XLA_Definiere Bibliotheksersetzungen fr das Linken
+**2XLO_Definiere die Reihenfolge der Bibliotheken fr das Linken
+**2XLD_Schlieáe die voreingestellte Reihenfolge der Standard-Bibliotheken aus
**2Xm_Erzeuge die "link map"
**2XM<x>_Setze den Namen der 'main' program Routine (default ist 'main')
+**2Xn_Nutze den platformeigenen linker des Zielsystem anstelle des GNU ld (Solaris, AIX)
F*2Xp<x>_Suche nach der Compilerbinary zuerst im Verzeichnis <x>
**2XP<x>_Stelle dem Namen der Compiler-Hilfsprogramme (binutils) den Prefix <x> voran
**2Xr<x>_Setze den rlink-Pfad des Linker zu <x> (ben”tigt fr cross compile, siehe ld-Manual fr mehr Informationen) (BeOS, Linux)
@@ -3777,6 +3839,7 @@ F*2Xp<x>_Suche nach der Compilerbinary zuerst im Verzeichnis <x>
**2Xs_Entferne alle Symbole aus der ausfhrbaren Datei
**2XS_Versuche Units statisch zu linken (default) (definiert FPC_LINK_STATIC)
**2Xt_Linke mit statischen Bibliotheken (-static wird an den Linker bergeben)
+**2Xv_Erzeuge eine Tabelle mit den virtuellen Entry-Aufrufen
**2XX_Versuche Units smart zu linken (definiert FPC_LINK_SMART)
**1*_
**1?_Zeigt diese Hilfe an
diff --git a/compiler/msg/errorda.msg b/compiler/msg/errorda.msg
index 3e3ced41f8..cef8bcb45a 100644
--- a/compiler/msg/errorda.msg
+++ b/compiler/msg/errorda.msg
@@ -271,7 +271,7 @@ scan_e_illegal_asmmode_specifier=02050_E_Ugyldig assemblerstil angivet "$1"
% the compiler didn't recognize the mode you specified.
scan_w_no_asm_reader_switch_inside_asm=02051_W_Kan ikke skifte assemblerlæser midt i en assemblerblok. Skifter til "$1" i næste blok
% It is not possible to switch from one assembler reader to another
-% inside an assmebler block. The new reader will be used for next
+% inside an assembler block. The new reader will be used for next
% assembler statements only.
scan_e_wrong_switch_toggle=02052_E_Forkert indstillingsparameter. Brug ON/OFF eller +/-
% You need to use ON or OFF or a + or - to toggle the switch
@@ -2207,7 +2207,7 @@ option_config_is_dir=11040_F_Konfigurationsfilen $1 er et directory
#
option_logo=11023_[
Free Pascal Compiler version $FPCFULLVERSION [$FPCDATE] til $FPCTARGET
-Copyright (c) 1993-2014 Florian Klaempfl
+Copyright (c) 1993-2015 Florian Klaempfl and others
]
#
diff --git a/compiler/msg/errordu.msg b/compiler/msg/errordu.msg
index 90c7034a11..07bf532ead 100644
--- a/compiler/msg/errordu.msg
+++ b/compiler/msg/errordu.msg
@@ -3,7 +3,7 @@
# Latest updates contributed by Karl-Michael Schindler aka mischi
# <karl-michael.schindler at web.de>
#
-# Based on errore.msg of SVN revision 28127
+# Based on errore.msg of SVN revision 29129
#
# This file is part of the Free Pascal Compiler
# Copyright (c) 1998-2014 by the Free Pascal Development team
@@ -181,9 +181,9 @@ scan_n_ignored_switch=02008_N_Compilerschalter $1 wurde ignoriert
scan_w_illegal_switch=02009_W_Compilerschalter $1 ist ungültig
% You included a compiler switch (i.e. \var{\{\$... \}}) which the compiler
% does not recognise.
-scan_w_switch_is_global=02010_W_Dieser Compilerschalter hat globale Auswirkung
-% The compiler switch is misplaced, and should be located at
-% the start of the unit or program.
+scan_w_switch_is_global=02010_W_Dieser globale Compilerschalter ist an der falschen Stelle und wird deshalb ignoriert
+% The compiler switch is misplaced. It must be located at
+% the start of the compilation unit, before the uses clause or any declaration.
scan_e_illegal_char_const=02011_E_Ungültige Char-Konstante
% This happens when you specify a character with its ASCII code, as in
% \var{\#96}, but the number is either illegal, or out of range.
@@ -411,8 +411,9 @@ scan_w_invalid_stacksize=02096_W_Die spezifizierte Größe des Stack ist außerh
scan_w_heapmax_lessthan_heapmin=02097_W_Die spezifizierte Größe des HeapMax ist kleiner als der des HeapMin. Setzen der Größe des HeapMax ignoriert.
% The HeapMax value (if specified) must be greater than or equal to the HeapMin
% value. Otherwise, the HeapMax value is ignored.
-scan_w_hugepointernormalization_not_support=02098_W_HUGEPOINTERNORMALIZATION wird auf der Zielplatform nicht unterstützt
-% The \var{\{\$HUGEPOINTERNORMALIZATION\}} directive is not supported by the target platform.
+scan_e_illegal_hugepointernormalization=02098_E_Illegales Argument für HUGEPOINTERNORMALIZATION
+% The only allowed values for HUGEPOINTERNORMALIZATION are BORLANDC, MICROSOFTC
+% and WATCOMC.%
%
% \end{description}
# EndOfTeX
@@ -876,7 +877,7 @@ parser_e_self_in_non_message_handler=03146_E_SELF darf nur in Message-Handlern e
% The \var{Self} parameter can only be passed explicitly to a method which
% is declared as message method handler
parser_e_threadvars_only_sg=03147_E_Threadvariablen können nur statisch oder global sein
-% Threadvars must be static or global; you can't declare a thread
+% Threadvars must be static or global; you cannot declare a thread
% local to a procedure. Local variables are always local to a thread,
% because every thread has its own stack and local variables
% are stored on the stack.
@@ -893,7 +894,7 @@ parser_e_no_object_override=03150_E_OVERRIDE darf in Objekten nicht verwendet we
parser_e_cant_use_inittable_here=03151_E_Datentypen, die ein Initialiserung oder Finalisierung benötigen, können in varianten Records nicht verwendet werden
% Some data types (e.g. \var{ansistring}) need initialization/finalization
% code which is implicitly generated by the compiler. Such data types
-% can't be used in the variant part of a record.
+% cannot be used in the variant part of a record.
parser_e_resourcestring_only_sg=03152_E_Resourcestrings dürfen nur statisch oder global sein
% Resourcestring cannot be declared local, only global or using the static
% directive.
@@ -981,7 +982,7 @@ parser_w_skipped_fields_before=03175_W_Einige Felder vor dem Feld "$1" sind nich
% In Delphi mode, not all fields of a typed constant record have to be
% initialized, but the compiler warns you when it detects such situations.
parser_e_skipped_fields_before=03176_E_Einige Felder vor dem Feld "$1" sind nicht initialisiert
-% In all syntax modes but Delphi mode, you can't leave some fields uninitialized
+% In all syntax modes but Delphi mode, you cannot leave some fields uninitialized
% in the middle of a typed constant record.
parser_w_skipped_fields_after=03177_W_Einige Felder nach dem Feld "$1" sind nicht initialisiert
% You can leave some fields at the end of a type constant record uninitialized
@@ -1972,7 +1973,7 @@ type_e_type_not_allowed_for_type_helper=04120_E_Typ "$1" kann durch einen Typhel
type_e_procedure_must_be_far=04121_E_Prozedur oder Funktion muss weit ("far") sein, damit seine Adresse verwendet werden kann: "$1"
% In certain i8086 memory models (medium, large and huge), procedures and functions
% have to be declared 'far' in order to allow their address to be taken.
-type_w_instance_abstract_class=04122_-W_Erzeugung einer Instanz der abstrakten Klasse "$1"
+type_w_instance_abstract_class=04122_W_Erzeugung einer Instanz der abstrakten Klasse "$1"
% The specified class is declared as \var{abstract} and thus no instance of this class
% should be created. This is merely a warning for Delphi compatibility.
%
@@ -2317,7 +2318,7 @@ cg_e_cannot_call_cons_dest_inside_with=06037_E_Konstruktoren und Destruktoren kÃ
% Inside a \var{With} clause you cannot call a constructor or destructor for the
% object you have in the \var{with} clause.
cg_e_cannot_call_message_direct=06038_E_Kann Messagehandler-Methode nicht direkt aufrufen
-% A message method handler method can't be called directly if it contains an
+% A message method handler method cannot be called directly if it contains an
% explicit \var{Self} argument.
cg_e_goto_inout_of_exception_block=06039_E_Sprung in- oder aus dem Exceptionblock heraus
% It is not allowed to jump in or outside of an exception block like \var{try..finally..end;}.
@@ -2713,6 +2714,9 @@ asmr_e_invalid_ref_register=07125_E_Ungültiges Register in Speicherreferenzausd
% FPU, vector and sometimes integer registers cannot be used in memory reference
% expressions, due to limitations of the cpu architecture or simple because
% it is not meaningful.
+%
+% \end{description}
+# EndOfTeX
#
# Assembler/binary writers
@@ -2761,6 +2765,9 @@ asmw_e_handlerdata_no_handler=08025_E_".seh_handlerdata"-Direktive ohne vorangeh
asmw_f_too_many_relocations=08026_F_Relocationzähler für Sektion $1 übersteigt 65535
% Legacy COFF targets limit number of relocations per section to 65535 because they use a 2-byte field
% to store the relocation count. Targets using newer PECOFF format do not have this limitation.
+%
+% \end{description}
+# EndOfTeX
#
# Executing linker/assembler
@@ -3361,7 +3368,7 @@ wpo_cant_create_feedback_file=12019_E_Die angegebene Feedback-Eingabe-Datei "$1"
#
option_logo=11023_[
Free Pascal Compiler Version $FPCFULLVERSION [$FPCDATE] für $FPCTARGET
-Copyright (c) 1993-2014 Florian Klämpfl und andere
+Copyright (c) 1993-2015 Florian Klämpfl und andere
]
#
@@ -3370,10 +3377,10 @@ Copyright (c) 1993-2014 Florian Klämpfl und andere
option_info=11024_[
Free Pascal Compiler Version $FPCVERSION
-Compiler Datum: $FPCDATE
-Compiler Zielsystem: $FPCCPU
+Compiler-Datum: $FPCDATE
+Compiler-Zielsystem: $FPCCPU
-Unterstützte Zielbetriebssysteme:
+Unterstützte Zielbetriebssysteme (Mit '{*}' markierte Ziele sind in Entwicklung):
$OSTARGETS
Unterstützte CPU Instruktionen:
@@ -3385,6 +3392,9 @@ Unterstützte FPU Instruktionen:
Unterstützte Inline-Assembler Modi:
$ASMMODES
+Bekannte Compiler und RTL Feature:
+ $FEATURELIST
+
Unterstützte ABI Ziele:
$ABITARGETS
@@ -3395,7 +3405,7 @@ Unterstützte Gesamtprogramm-Optimierungen:
All
$WPOPTIMIZATIONS
-Unterstützte Microcontroller:
+Unterstützte Mikro-Kontroller:
$CONTROLLERTYPES
Dieses Programm unterliegt der GNU General Public Licence
@@ -3404,7 +3414,7 @@ Weitere Informationen sind in COPYING.v2 zu finden
Fehlerberichte bitte senden an:
http://bugs.freepascal.org
-Weiter Information stehen auf unseren WWW Seiten (einschließlich Links zu
+Weitere Informationen stehen auf unseren WWW Seiten (einschließlich Links zu
Mailing-Listen, auf denen Fragen gestellt und potentielle neue Features
diskutiert werden können, usw.):
http://www.freepascal.org
@@ -3423,9 +3433,14 @@ diskutiert werden können, usw.):
# A = ARM
# e = in extended debug mode only
# F = help for the 'fpc' binary (independent of the target compiler)
+# I = VIS
+# J = JVM
+# M = MIPS (MIPSEB) targets
+# m = MIPSEL targets
# P = PowerPC targets
+# p = PowerPC64 targets
# S = Sparc targets
-# V = Virtual machine targets
+# V = AVR
# The second character also indicates who will display this line,
# (if the above character was TRUE) the current possibilities are :
# * = everyone
@@ -3435,8 +3450,10 @@ diskutiert werden können, usw.):
# The third character represents the indentation level.
#
option_help_pages=11025_[
+F*0*_Es werden nur Optionen aufgelistet, die für die voreingestellte oder ausgewählte Platform gültig sind.
**0*_Nach booleschen Optionen geben Sie + zum Ein- bzw. - zum Ausschalten an
-**1a_Lösche die erzeugte Assembler-Datei nicht
+**1@<x>_Lese zusätzlich zu den voreingestellten Compiler-Optionen aus fpc.cfg auch die aus <x>
+**1a_Erzeugte Assembler-Datei nicht löschen
**2al_Liste Quellcode-Zeilen in der Assembler-Datei
**2an_Liste "node info" in der Assembler-Datei (-dEXTDEBUG Compiler)
**2ao_Füge eine zusätzliche Option zum Aufruf des externen Assemblers hinzu (ignoriert für den internen Assembler)
@@ -3486,12 +3503,12 @@ S*2Aas_Assembliere mit Hilfe von GNU AS
**1B_Erzeuge alle Module (Build)
**1C<x>_Optionen für Code-Erzeugung:
**2C3<x>_Schalte ieee-Prüfung von Konstanten ein
-**2Ca<x>_Wähle ABI aus; fpc -i gibt die möglichen Werte aus
+**2Ca<x>_Wähle ABI aus; fpc -i oder fpc -ia geben die möglichen Werte aus
**2Cb_Erzeuge Code für die "big-endian"-Variante der Zielarchitektur
**2Cc<x>_Setze "default calling convention" zu <x>
**2CD_Erzeuge auch eine dynamische Bibliothek (nicht unterstützt)
**2Ce_Ãœbersetze mit emulierten Fliesskomma opcodes
-**2Cf<x>_Wähle den Fliesskomma-Instruction-Set aus; fpc -i gibt die möglichen Werte aus
+**2Cf<x>_Wähle den Fliesskomma-Instruction-Set aus; fpc -i oder fpc -if geben die möglichen Werte aus
**2CF<x>_Minimale Präzission von Fliesskommakonstanten (default, 32, 64)
**2Cg_Erzeuge PIC code
**2Ch<n>_<n> Bytes Heap (zwischen 1023 und 67107840)
@@ -3501,7 +3518,7 @@ A*2CI<x>_Wähle den Instruction-Set für ARM aus: ARM oder THUMB
P*2CN_Erzeuge Überprüfungen auf Nil-Zeiger (nur AIX)
**2Co_Prüfe auf Überlauf von Integer-Operationen
**2CO_Prüfe auf möglichen Überlauf von Integer-Operationen
-**2Cp<x>_Wähle Instruction-Set aus; fpc -i gibt die möglichen Werte aus
+**2Cp<x>_Wähle Instruction-Set aus; fpc -i oder fpc -ic geben die möglichen Werte aus
**2CP<x>=<y>_ Einstellungen für packing
**3CPPACKSET=<y>_ <y> Belegung von Sets: 0, 1 oder DEFAULT oder NORMAL, 2, 4 und 8
**2Cr_Führe Bereichsprüfung durch
@@ -3568,20 +3585,29 @@ J*2Cv_Var/out Parameter copy-out Überprüfung
*g3godwarfmethodclassprefix_ Stelle Methodennamen in DWARF den Namen der Klasse voran
*g2gp_Erhalte Gross/Kleinschreibung in Stabs-Symbolnamen
*g2gs_Erzeuge Stabs-Debug-Informationen
-*g2gt_Lösche lokale Variablen (um eine Verwendung ohne Initialisierung zu finden)
+*g2gt_Lösche lokale Variablen (um eine Verwendung ohne Initialisierung zu finden; mehrere 't' ändern den Wert, mit dem überschrieben wird)
*g2gv_Erzeuge ein mit Valgrind verfolgbares (traceable) Programm
*g2gw_Erzeuge DWARFv2-Debug-Informationen (wie -gw2)
*g2gw2_Erzeuge DWARFv2-Debug-Informationen
*g2gw3_Erzeuge DWARFv3-Debug-Informationen
-*g2gw4_Generate DWARFv4-Debug-Informationen (experimentell)
+*g2gw4_Erzeuge DWARFv4-Debug-Informationen (experimentell)
**1i_Zeige alle Informationen über den Compiler
**2iD_Zeige Compilerdatum
-**2iV_Zeige Compilerversion
-**2iW_Zeige vollständige Compilerversion
**2iSO_Zeige Compilerbetriebssystem
**2iSP_Zeige Compilerprozessor
**2iTO_Zeige Zielbetriebssystem
**2iTP_Zeige Zielprozessor
+**2iV_Zeige kurze Compilerversion
+**2iW_Zeige vollständige Compilerversion
+**2ia_Zeige Liste der unterstützten ABI-Ziele
+**2ic_Zeige Liste der unterstützten CPU-Instruction-Sets
+**2if_Zeige Liste der unterstützten Fliesskomma-Instruction-Sets
+**2ii_Zeige Liste der unterstützten Inline-Assembler-Modi
+**2io_Zeige Liste der unterstützten Optimierungen
+**2ir_Zeige Liste der erkannten Compiler- und RTL-Feature
+**2it_Zeige Liste der unterstützten Ziele
+**2iu_Zeige Liste der unterstützten Mikro-Kontrollertypen
+**2iw_Zeige Liste der unterstützten Gesamtprogramm-Optimierungen
**1I<x>_Ergänze <x> zum Include-Pfad
**1k<x>_Ãœbergebe <x> an den Linker
**1l_Zeige Logo
@@ -3600,16 +3626,16 @@ J*2Cv_Var/out Parameter copy-out Überprüfung
**2O3_Level 3 Optimierung (-O2 + langsame Optimierungen)
**2O4_Level 4 Optimierung (-O3 + Optimierungen, die unerwartete Nebeneffekte haben können)
**2Oa<x>=<y>_Ausrichtung (alignment) von Mengen
-**2Oo[NO]<x>_Optimierungen ein- oder ausschalten; fpc -i gibt die möglichen Werte aus
-**2Op<x>_Setze Zielprozessor für die Optimierung; fpc -i gibt die möglichen Werte aus
-**2OW<x>_Erzeuge Feedback für die Gesamtprogramm-Optimierung für Optimierung <x>, siehe fpc -i für mögliche Werte
-**2Ow<x>_Führe die Gesamtprogramm-Optimierung durch <x>, siehe fpc -i für mögliche Werte
+**2Oo[NO]<x>_Optimierungen ein- oder ausschalten; fpc -i oder fpc -io geben die möglichen Werte aus
+**2Op<x>_Setze Zielprozessor für die Optimierung; fpc -i oder fpc -ic geben die möglichen Werte aus
+**2OW<x>_Erzeuge Feedback für die Gesamtprogramm-Optimierung für Optimierung <x>; fpc -i oder fpc -iw geben die möglichen Werte aus
+**2Ow<x>_Führe die Gesamtprogramm-Optimierung durch <x>; fpc -i oder fpc -iw geben die möglichen Werte aus
**2Os_Erzeuge kürzeren Code
**1pg_Erzeuge Profiler-Code für gprof
F*1P<x>_Ziel CPU / Compiler bezogene Optionen:
F*2PB_Zeige die voreingestellte Compilerbinärdatei
F*2PP_Zeige die voreingestellte Ziel-CPU
-F*2P<x>_Setze die Ziel-CPU (arm, i386, m68k, mips, mipsel, powerpc, powerpc64, sparc, x86_64)
+F*2P<x>_Setze die Ziel-CPU (arm, avr, i386, jvm, m68k, mips, mipsel, powerpc, powerpc64, sparc, x86_64)
**1R<x>_Assembler Code-Format:
**2Rdefault_Benutze den voreingestellten Assembler
3*2Ratt_Lese Assembler Code im AT&T-Format
@@ -3625,6 +3651,7 @@ F*2P<x>_Setze die Ziel-CPU (arm, i386, m68k, mips, mipsel, powerpc, powerpc64, s
**3*_w : Compiler hält auch nach Warnungen
**3*_n : Compiler hält auch nach Anmerkungen
**3*_h : Compiler hält auch nach Hinweisen
+**2Sf_Schalte bestimmte Feature in Compiler und RTL ein; fpc -i oder fpc -ir geben die möglichen Werte aus
**2Sg_Erlaube LABEL und GOTO
**2Sh_Benutze ANSI-Strings
**2Si_Benutze C++ artige INLINE
@@ -3635,6 +3662,7 @@ F*2P<x>_Setze die Ziel-CPU (arm, i386, m68k, mips, mipsel, powerpc, powerpc64, s
**2Sm_Unterstütze Makros wie in C (global)
**2So_Sei TP/BP 7.0 kompatibel (wie -Mtp)
**2Ss_Konstruktor- und Destruktorname müssen "Init" und "Done" sein
+**2Sv_Unterstütze Vektor-Verarbeitung (soweit vorhanden benutze CPU-Vektorerweiterungen)
**2Sx_Exception Schlüsselwörter einschalten (Voreinstellung in Delphi/ObjFPC Moden)
**2Sy_@<pointer> gibt einen typisierten Zeiger zurück, genau wie $T+
**1s_Rufe weder Assembler noch Linker auf (nur mit -a)
@@ -3642,10 +3670,15 @@ F*2P<x>_Setze die Ziel-CPU (arm, i386, m68k, mips, mipsel, powerpc, powerpc64, s
**2st_Erzeuge Script um auf dem Zielsystem zu linken
**2sr_Ãœberspringe die Phase der "register allocation" (mit -alr benutzen)
**1T<x>_Zielbetriebssystem::
+3*2Tandroid_Android
+3*2Taros_AROS
+3*2Tbeos_BeOS
3*2Tdarwin_Darwin/Mac OS X
+3*2Tembedded_Embedded
3*2Temx_OS/2 via EMX (einschliesslich EMX/RSX extender)
3*2Tfreebsd_FreeBSD
3*2Tgo32v2_Version 2 des DJ Delorie DOS extender
+3*2Thaiku_Haiku
3*2Tlinux_Linux
3*2Tnativent_Native NT API (experimentell)
3*2Tnetbsd_NetBSD
@@ -3661,22 +3694,45 @@ F*2P<x>_Setze die Ziel-CPU (arm, i386, m68k, mips, mipsel, powerpc, powerpc64, s
3*2Twin32_Windows 32 Bit
3*2Twince_Windows CE
4*2Tdarwin_Darwin/Mac OS X
+4*2Tfreebsd_FreeBSD
4*2Tlinux_Linux
-4*2Twin64_Win64 (64 bit Windows systems)
+4*2Tnetbsd_NetBSD
+4*2Topenbsd_OpenBSD
+4*2Tsolaris_Solaris
+4*2Twin64_Win64 (64 bit Windows Systeme)
6*2Tamiga_Commodore Amiga
6*2Tatari_Atari ST/STe/TT
6*2Tlinux_Linux
6*2Tpalmos_PalmOS
+8*2Tmsdos_MS-DOS (und kompatible)
+A*2Tandroid_Android
A*2Tdarwin_Darwin/iPhoneOS/iOS
+A*2Tembedded_Embedded
+A*2Tgba_Game Boy Advance
A*2Tlinux_Linux
+A*2Tnds_Nintendo DS
+A*2Tsymbian_Symbian
A*2Twince_Windows CE
+J*2Tandroid_Android
+J*2Tjava_Java
+m*2Tembedded_Embedded
+M*2Tandroid_Android
+M*2Tembedded_Embedded
+M*2Tlinux_Linux
+P*2Taix_AIX
P*2Tamiga_AmigaOS
P*2Tdarwin_Darwin und Mac OS X
P*2Tlinux_Linux
P*2Tmacos_Mac OS (classic)
P*2Tmorphos_MorphOS
+P*2Tnetbsd_NetBSD
+P*2Twii_Wii
+p*2Taix_AIX
+p*2Tdarwin_Darwin/Mac OS X
+p*2Tlinux_Linux
S*2Tsolaris_Solaris
S*2Tlinux_Linux
+V*2Tembedded_Embedded
**1u<x>_Entferne die Definition für das Symbol <x>
**1U<x>_Unit-Optionen:
**2Un_Prüfe den Unitnamen nicht
@@ -3690,7 +3746,7 @@ S*2Tlinux_Linux
**2*_i : Allgemeine Informationen d : Debug Informationen
**2*_l : Zeilennummern r : Rhide/GCC kompatibler Modus
**2*_s : Zeitstempel q : Nummer der Meldung
-**2*_a : Alles x : Exe-Datei Informationen (nur Win32)
+**2*_a : Alles x : Zeige Infos über aufgerufene Tools
**2*_b : Schreibe bei Meldungen mit p : Schreibe tree.log mit Analysenbaum (parse tree)
**2*_ Dateinamen den vollständigen v : Schreibe fpcdebug.txt mit
**2*_ Pfad ganz viel Information
@@ -3712,7 +3768,7 @@ A*2Wb_Erzeuge statt einer Bibliothek ein Bundle (Darwin)
A*2WB_Erzeuge ein relozierbares Image (Windows, Symbian)
A*2WBxxxx_Setze die Imagebasis auf xxxx (Windows)
3*2WC_Spezifiziere "console type application" (EMX, OS/2, Windows)
-4*2WC_Spezifiziere "console type application" (EMX, OS/2, Windows)
+4*2WC_Spezifiziere "console type application" (Windows)
A*2WC_Spezifiziere "console type application" (Windows)
P*2WC_Spezifiziere "console type application" (Classic Mac OS)
3*2WD_Benutze DEFFILE um Funktionen der DLL oder EXE zu exportieren (Windows)
@@ -3725,7 +3781,7 @@ P*2We_Benutze externe Resourcen (Darwin)
p*2We_Benutze externe Resourcen (Darwin)
3*2WF_Spezifiziere "full-screen type application" (EMX, OS/2)
3*2WG_Spezifiziere "graphic type application" (EMX, OS/2, Windows)
-4*2WG_Spezifiziere "graphic type application" (EMX, OS/2, Windows)
+4*2WG_Spezifiziere "graphic type application" (Windows)
A*2WG_Spezifiziere "graphic type application" (Windows)
P*2WG_Spezifiziere "graphic type application" (Classic Mac OS)
3*2Wi_Benutze interne Resourcen (Darwin)
@@ -3749,8 +3805,9 @@ P*2WM<x>_Minimale Mac OS X Deployment Version: 10.4, 10.5.1, ... (Darwin)
3*2WN_Erzeuge keinen "relocation code" (notwendig für debugging) (Windows)
4*2WN_Erzeuge keinen "relocation code" (notwendig für debugging) (Windows)
A*2WN_Erzeuge keinen "relocation code" (notwendig für debugging) (Windows)
-A*2Wpxxxx_Spezifiziere den Kontrollertyp, mögliche Werte liefert fpc -i
-V*2Wpxxxx_Spezifiziere den Kontrollertyp, mögliche Werte liefert fpc -i
+A*2Wpxxxx_Spezifiziere den Kontrollertyp; fpc -i oder fpc -iu geben mögliche Werte aus
+m*2Wpxxxx_Spezifiziere den Kontrollertyp; fpc -i oder fpc -iu geben mögliche Werte aus
+V*2Wpxxxx_Spezifiziere den Kontrollertyp; fpc -i oder fpc -iu geben mögliche Werte aus
3*2WP<x>_Minimale iOS Deployment Version: 3.0, 5.0.1, ... (iphonesim)
A*2WP<x>_Minimale iOS Deployment Version: 3.0, 5.0.1, ... (Darwin)
3*2WR_Erzeuge "relocation code" (Windows)
@@ -3765,11 +3822,16 @@ P*2WF_Spezifiziere "MPW tool type application" (Classic Mac OS)
**2Xc_Ãœbergebe --shared an den Linker (nur Unix)
**2Xd_Den Standard Bibliotheks-Suchpfad NICHT nutzen (benötigt für cross compile, wenn nicht -XR verwendet wird)
**2Xe_Verwende den externen Linker
+**2Xf_Ersetze beim linken den Namen der pthread-Bibliothek (BSD)
**2Xg_Erstelle die Debug-Informationen in einer separaten Datei und einen "Debug-Link"-Abschnitt im ausführbaren Programm
**2XD_Versuche Units dynamisch zu linken (definiert FPC_LINK_DYNAMIC)
**2Xi_Verwende den internen Linker
+**2XLA_Definiere Bibliotheksersetzungen für das Linken
+**2XLO_Definiere die Reihenfolge der Bibliotheken für das Linken
+**2XLD_Schließe die voreingestellte Reihenfolge der Standard-Bibliotheken aus
**2Xm_Erzeuge die "link map"
**2XM<x>_Setze den Namen der 'main' program Routine (default ist 'main')
+**2Xn_Nutze den platformeigenen linker des Zielsystem anstelle des GNU ld (Solaris, AIX)
F*2Xp<x>_Suche nach der Compilerbinary zuerst im Verzeichnis <x>
**2XP<x>_Stelle dem Namen der Compiler-Hilfsprogramme (binutils) den Prefix <x> voran
**2Xr<x>_Setze den rlink-Pfad des Linker zu <x> (benötigt für cross compile, siehe ld-Manual für mehr Informationen) (BeOS, Linux)
@@ -3777,6 +3839,7 @@ F*2Xp<x>_Suche nach der Compilerbinary zuerst im Verzeichnis <x>
**2Xs_Entferne alle Symbole aus der ausführbaren Datei
**2XS_Versuche Units statisch zu linken (default) (definiert FPC_LINK_STATIC)
**2Xt_Linke mit statischen Bibliotheken (-static wird an den Linker übergeben)
+**2Xv_Erzeuge eine Tabelle mit den virtuellen Entry-Aufrufen
**2XX_Versuche Units smart zu linken (definiert FPC_LINK_SMART)
**1*_
**1?_Zeigt diese Hilfe an
diff --git a/compiler/msg/errore.msg b/compiler/msg/errore.msg
index 979885fb76..da8080febd 100644
--- a/compiler/msg/errore.msg
+++ b/compiler/msg/errore.msg
@@ -174,16 +174,16 @@ scan_n_ignored_switch=02008_N_Ignored compiler switch "$1"
scan_w_illegal_switch=02009_W_Illegal compiler switch "$1"
% You included a compiler switch (i.e. \var{\{\$... \}}) which the compiler
% does not recognise.
-scan_w_switch_is_global=02010_W_Misplaced global compiler switch
-% The compiler switch is misplaced, and should be located at
-% the start of the unit or program.
+scan_w_switch_is_global=02010_W_Misplaced global compiler switch, ignored
+% The compiler switch is misplaced. It must be located at
+% the start of the compilation unit, before the uses clause or any declaration.
scan_e_illegal_char_const=02011_E_Illegal char constant
% This happens when you specify a character with its ASCII code, as in
% \var{\#96}, but the number is either illegal, or out of range.
-scan_f_cannot_open_input=02012_F_Can not open file "$1"
+scan_f_cannot_open_input=02012_F_Cannot open file "$1"
% \fpc cannot find the program or unit source file you specified on the
% command line.
-scan_f_cannot_open_includefile=02013_F_Can not open include file "$1"
+scan_f_cannot_open_includefile=02013_F_Cannot open include file "$1"
% \fpc cannot find the source file you specified in a \var{\{\$include ..\}}
% statement.
scan_e_illegal_pack_records=02015_E_Illegal record alignment specifier "$1"
@@ -411,7 +411,7 @@ scan_e_illegal_hugepointernormalization=02098_E_Illegal argument for HUGEPOINTER
#
# Parser
#
-# 03338 is the last used one
+# 03339 is the last used one
#
% \section{Parser messages}
% This section lists all parser messages. The parser takes care of the
@@ -704,7 +704,7 @@ parser_e_comparative_operator_return_boolean=03090_E_Comparative operator must r
parser_e_only_virtual_methods_abstract=03091_E_Only virtual methods can be abstract
% You are declaring a method as abstract, when it is not declared to be
% virtual.
-parser_f_unsupported_feature=03092_F_Use of unsupported feature!
+parser_f_unsupported_feature=03092_F_Use of unsupported feature: "$1".
% You're trying to force the compiler into doing something it cannot do yet.
parser_e_mix_of_classes_and_objects=03093_E_The mix of different kind of objects (class, object, interface, etc) isn't allowed
% You cannot derive \var{objects}, \var{classes}, \var{cppclasses} and \var{interfaces} intertwined. E.g.
@@ -802,7 +802,7 @@ parser_e_function_already_declared_public_forward=03120_E_Function is already de
% You will get this error if a function is defined as \var{forward} twice.
% Or if it occurs in the \var{interface} section, and again as a \var{forward}
% declaration in the \var{implementation} section.
-parser_e_not_external_and_export=03121_E_Can not use both EXPORT and EXTERNAL
+parser_e_not_external_and_export=03121_E_Cannot use both EXPORT and EXTERNAL
% These two procedure directives are mutually exclusive.
parser_h_not_supported_for_inline=03123_H_"$1" not yet supported inside inline procedure/function
% Inline procedures don't support this declaration.
@@ -873,7 +873,7 @@ parser_e_threadvars_only_sg=03147_E_Threadvars can be only static or global
parser_f_direct_assembler_not_allowed=03148_F_Direct assembler not supported for binary output format
% You cannot use direct assembler when using a binary writer. Choose an
% other output format or use another assembler reader.
-parser_w_no_objpas_use_mode=03149_W_Don't load OBJPAS unit manually, use \{\$mode objfpc\} or \{\$mode delphi\} instead
+parser_w_no_objpas_use_mode=03149_W_Don't load OBJPAS unit manually, use {$mode objfpc} or {$mode delphi} instead
% You are trying to load the \file{ObjPas} unit manually from a \var{uses} clause.
% This is not a good idea. Use the \var{\{\$MODE OBJFPC\}} or
% \var{\{\$mode delphi\}} directives which load the unit automatically.
@@ -927,7 +927,7 @@ parser_e_dlltool_unit_var_problem2=03161_E_Compile without -WD option
parser_f_need_objfpc_or_delphi_mode=03162_F_You need ObjFpc (-S2) or Delphi (-Sd) mode to compile this module
% You need to use \var{\{\$MODE OBJFPC\}} or \var{\{\$MODE DELPHI\}} to compile this file.
% Or use the corresponding command line switch, either \var{-Mobjfpc} or \var{-MDelphi.}
-parser_e_no_export_with_index_for_target=03163_E_Can not export with index under $1
+parser_e_no_export_with_index_for_target=03163_E_Cannot export with index under $1
% Exporting of functions or procedures with a specified index is not
% supported on this target.
parser_e_no_export_of_variables_for_target=03164_E_Exporting of variables is not supported under $1
@@ -964,7 +964,7 @@ parser_e_no_access_specifier_in_interfaces=03172_E_Access specifiers cannot be u
parser_e_no_vars_in_interfaces=03173_E_An interface, helper or Objective-C protocol or category cannot contain fields
% Declarations of fields are not allowed in interfaces, helpers and Objective-C protocols and categories.
% An interface/helper/protocol/category can contain only methods and properties with method read/write specifiers.
-parser_e_no_local_proc_external=03174_E_Can not declare local procedure as EXTERNAL
+parser_e_no_local_proc_external=03174_E_Cannot declare local procedure as EXTERNAL
% Declaring local procedures as external is not possible. Local procedures
% get hidden parameters that will make the chance of errors very high.
parser_w_skipped_fields_before=03175_W_Some fields coming before "$1" were not initialized
@@ -977,10 +977,10 @@ parser_w_skipped_fields_after=03177_W_Some fields coming after "$1" were not ini
% You can leave some fields at the end of a type constant record uninitialized
% (The compiler will initialize them to zero automatically). This may be the cause
% of subtle problems.
-parser_e_varargs_need_cdecl_and_external=03178_E_VarArgs directive (or '...' in MacPas) without CDecl/CPPDecl/MWPascal and External
+parser_e_varargs_need_cdecl_and_external=03178_E_VarArgs directive (or '...' in MacPas) without CDecl/CPPDecl/MWPascal/StdCall and External
% The varargs directive (or the ``...'' varargs parameter in MacPas mode) can only be
% used with procedures or functions that are declared with \var{external} and one of
-% \var{cdecl}, \var{cppdecl} and \var{mwpascal}. This functionality
+% \var{cdecl}, \var{cppdecl}, \var{stdcall} and \var{mwpascal}. This functionality
% is only supported to provide a compatible interface to C functions like printf.
parser_e_self_call_by_value=03179_E_Self must be a normal (call-by-value) parameter
% You cannot declare \var{Self} as a const or var parameter, it must always be
@@ -1102,7 +1102,7 @@ parser_e_illegal_assignment_to_count_var=03208_E_Illegal assignment to for-loop
% loop variables inside the loop (Except in Delphi and TP modes). Use a while or
% repeat loop instead if you need to do something like that, since those
% constructs were built for that.
-parser_e_no_local_var_external=03209_E_Can not declare local variable as EXTERNAL
+parser_e_no_local_var_external=03209_E_Cannot declare local variable as EXTERNAL
% Declaring local variables as external is not allowed. Only global variables can reference
% external variables.
parser_e_proc_already_external=03210_E_Procedure is already declared EXTERNAL
@@ -1528,6 +1528,9 @@ parser_w_ptr_type_ignored=03338_W_Pointer type "$1" ignored
% The specified pointer type modifier is ignored, because it is not supported on
% the current platform. This happens, for example, when a far pointer is
% declared on a non-x86 platform.
+parser_e_global_generic_references_static=03339_E_Global Generic template references static symtable
+% A generic declared in the interface section of a unit must not reference symbols that belong
+% solely to the implementation section of that unit.
%
%
%
@@ -1976,7 +1979,7 @@ type_e_anonymous_function_unsupported=04999_E_Function references are not yet su
#
# Symtable
#
-# 05087 is the last used one
+# 05095 is the last used one
#
% \section{Symbol handling}
% This section lists all the messages that concern the handling of symbols.
@@ -2244,6 +2247,47 @@ sym_d_adding_helper_for=05087_D_Adding helper for $1
% A helper for the mentioned type is added to the current scope
sym_e_param_list=05088_E_Found declaration: $1
% This message shows all overloaded declarations in case of an error.
+sym_w_uninitialized_managed_local_variable=05089_W_Local variable "$1" of a managed type does not seem to be initialized
+% This message is displayed if the compiler thinks that a variable will
+% be used (i.e. it appears in the right-hand side of an expression) when it
+% was not initialized first (i.e. appeared in the left-hand side of an
+% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and
+% does not necessarily mean that the code is wrong.
+sym_w_uninitialized_managed_variable=05090_W_Variable "$1" of a managed type does not seem to be initialized
+% This message is displayed if the compiler thinks that a variable will
+% be used (i.e. it appears in the right-hand side of an expression) when it
+% was not initialized first (i.e. appeared in the left-hand side of an
+% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and
+% does not necessarily mean that the code is wrong.
+sym_h_uninitialized_managed_local_variable=05091_H_Local variable "$1" of a managed type does not seem to be initialized
+% This message is displayed if the compiler thinks that a variable will
+% be used (i.e. it appears in the right-hand side of an expression) when it
+% was not initialized first (i.e. it did not appear in the left-hand side of an
+% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and
+% does not necessarily mean that the code is wrong.
+sym_h_uninitialized_managed_variable=05092_H_Variable "$1" of a managed type does not seem to be initialized
+% This message is displayed if the compiler thinks that a variable will
+% be used (i.e. it appears in the right-hand side of an expression) when it
+% was not initialized first (i.e. t did not appear in the left-hand side of an
+% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and
+% does not necessarily mean that the code is wrong.
+sym_w_managed_function_result_uninitialized=05093_W_function result variable of a managed type does not seem to initialized
+% This message is displayed if the compiler thinks that the function result
+% variable will be used (i.e. it appears in the right-hand side of an expression)
+% before it is initialized (i.e. before it appeared in the left-hand side of an
+% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and
+% does not necessarily mean that the code is wrong.
+sym_h_managed_function_result_uninitialized=05094_H_Function result variable of a managed type does not seem to be initialized
+% This message is displayed if the compiler thinks that the function result
+% variable will be used (i.e. it appears in the right-hand side of an expression)
+% before it is initialized (i.e. it appears in the left-hand side of an
+% assignment). Since the variable is managed, i. e. implicitly initialized by the compiler, this might be intended behaviour and
+% does not necessarily mean that the code is wrong.
+sym_w_duplicate_id=05095_W_Duplicate identifier "$1"
+% The identifier was already declared in an Objective-C category that's in the
+% same scope as the current identifier. This is a warning instead of an error,
+% because while this hides the identifier from the category, there are often
+% many unused categories in scope.
% \end{description}
#
# Codegenerator
@@ -2682,7 +2726,7 @@ asmr_e_wrong_gotpcrel_intel_syntax=07117_E_GOTPCREL references in Intel assemble
asmr_e_no_gotpcrel_support=07118_E_The current target does not support GOTPCREL relocations
% Not all targets support position-independent code using a global offset table.
% Use a different way to access symbols in a position-indepent way in these cases.
-asmr_w_global_access_without_got=07119_W_Exported/global symbols should accessed via the GOT
+asmr_w_global_access_without_got=07119_W_Exported/global symbols should be accessed via the GOT
% Global symbols (symbols from the unit interface, or defined in a program
% or library) should be accessed via the GOT when generating position-indepent code.
asmr_w_check_mem_operand_size=07120_W_Check size of memory operand "$1"
@@ -2707,7 +2751,7 @@ asmr_e_invalid_ref_register=07125_E_Invalid register used in memory reference ex
#
# Assembler/binary writers
#
-# 08026 is the last used one
+# 08028 is the last used one
#
asmw_f_too_many_asm_files=08000_F_Too many assembler files
% With smartlinking enabled, there are too many assembler
@@ -2751,7 +2795,12 @@ asmw_e_handlerdata_no_handler=08025_E_.seh_handlerdata directive without precedi
asmw_f_too_many_relocations=08026_F_Relocation count for section $1 exceeds 65535
% Legacy COFF targets limit number of relocations per section to 65535 because they use a 2-byte field
% to store the relocation count. Targets using newer PECOFF format do not have this limitation.
-
+asmw_w_changing_bind_type=08027_N_Change of bind type of symbol $1 from $2 to $3 after use
+asmw_h_changing_bind_type=08028_H_Change of bind type of symbol $1 from $2 to $3 after use
+% An assembler symbol bind type has been altered after use, which can lead to wrong code.
+% First version is reserved for changig to local label, which is the most probable cause
+% of wrong code generation, but currently set to Note level as it appears inside
+% the compiler compilation.
#
# Executing linker/assembler
#
@@ -3107,10 +3156,10 @@ unit_u_indirect_crc_changed=10062_U_Indirect interface (objects/classes) CRC cha
% indirect CRC calculated for the unit (this is the CRC of all classes/objects/interfaces/$\ldots$
% in the interfaces of units directly or indirectly used by this unit in the interface) has been changed after the
% implementation has been parsed.
-% \end{description}
unit_u_ppu_invalid_memory_model=10063_U_PPU is compiled for another i8086 memory model
% This unit file was compiled for a different i8086 memory model and
% cannot be read.
+% \end{description}
# EndOfTeX
#
@@ -3153,10 +3202,10 @@ option_target_is_already_set=11011_W_Target is already set to: $1
option_no_shared_lib_under_dos=11012_W_Shared libs not supported on DOS platform, reverting to static
% If you specify \var{-CD} for the \dos platform, this message is displayed.
% The compiler supports only static libraries under \dos.
-option_too_many_ifdef=11013_F_In options file $1 at line $2 too many \var{\#IF(N)DEFs} encountered
+option_too_many_ifdef=11013_F_In options file $1 at line $2 too many #IF(N)DEFs encountered
% The \var{\#IF(N)DEF} statements in the options file are not balanced with
% the \var{\#ENDIF} statements.
-option_too_many_endif=11014_F_In options file $1 at line $2 unexpected \var{\#ENDIFs} encountered
+option_too_many_endif=11014_F_In options file $1 at line $2 unexpected #ENDIFs encountered
% The \var{\#IF(N)DEF} statements in the options file are not balanced with
% the \var{\#ENDIF} statements.
option_too_less_endif=11015_F_Open conditional at the end of the options file
@@ -3225,7 +3274,7 @@ option_confict_asm_debug=11041_W_Assembler output selected "$1" cannot generate
option_ppc386_deprecated=11042_W_Use of ppc386.cfg is deprecated, please use fpc.cfg instead
% Using ppc386.cfg is still supported for historical reasons, however, for a multiplatform
% system the naming makes no sense anymore. Please continue to use fpc.cfg instead.
-option_else_without_if=11043_F_In options file $1 at line $2 \var{\#ELSE} directive without \var{\#IF(N)DEF} found
+option_else_without_if=11043_F_In options file $1 at line $2 #ELSE directive without #IF(N)DEF found
% An \var{\#ELSE} statement was found in the options file without a matching \var{\#IF(N)DEF} statement.
option_unsupported_target=11044_F_Option "$1" is not, or not yet, supported on the current target platform
% Not all options are supported or implemented for all target platforms. This message informs you that a chosen
@@ -3349,7 +3398,7 @@ wpo_cant_create_feedback_file=12019_E_Cannot create specified whole program opti
#
option_logo=11023_[
Free Pascal Compiler version $FPCFULLVERSION [$FPCDATE] for $FPCCPU
-Copyright (c) 1993-2014 by Florian Klaempfl and others
+Copyright (c) 1993-2015 by Florian Klaempfl and others
]
#
@@ -3358,10 +3407,10 @@ Copyright (c) 1993-2014 by Florian Klaempfl and others
option_info=11024_[
Free Pascal Compiler version $FPCVERSION
-Compiler Date : $FPCDATE
-Compiler CPU Target: $FPCCPU
+Compiler date : $FPCDATE
+Compiler CPU target: $FPCCPU
-Supported targets:
+Supported targets (targets marked with '{*}' are under development):
$OSTARGETS
Supported CPU instruction sets:
@@ -3373,6 +3422,9 @@ Supported FPU instruction sets:
Supported inline assembler modes:
$ASMMODES
+Recognized compiler and RTL features:
+ $FEATURELIST
+
Supported ABI targets:
$ABITARGETS
@@ -3383,9 +3435,7 @@ Supported Whole Program Optimizations:
All
$WPOPTIMIZATIONS
-Supported Microcontroller types:
- $CONTROLLERTYPES
-
+Supported Microcontroller types:$\n $CONTROLLERTYPES$\n
This program comes under the GNU General Public Licence
For more information read COPYING.v2
@@ -3411,10 +3461,14 @@ new features, etc.):
# A = ARM
# e = in extended debug mode only
# F = help for the 'fpc' binary (independent of the target compiler)
+# I = VIS
+# J = JVM
+# M = MIPS (MIPSEB) targets
+# m = MIPSEL targets
# P = PowerPC targets
+# p = PowerPC64 targets
# S = Sparc targets
-# V = Virtual machine targets
-# J = JVM
+# V = AVR
# The second character also indicates who will display this line,
# (if the above character was TRUE) the current possibilities are :
# * = everyone
@@ -3424,7 +3478,8 @@ new features, etc.):
# The third character represents the indentation level.
#
option_help_pages=11025_[
-**0*_Put + after a boolean switch option to enable it, - to disable it
+F*0*_Only options valid for the default or selected platform are listed.
+**0*_Put + after a boolean switch option to enable it, - to disable it.
**1@<x>_Read compiler options from <x> in addition to the default fpc.cfg
**1a_The compiler does not delete the generated assembler file
**2al_List sourcecode lines in assembler file
@@ -3452,7 +3507,7 @@ option_help_pages=11025_[
3*2Aelf_ELF (Linux) using internal writer
3*2Acoff_COFF (Go32v2) using internal writer
3*2Apecoff_PE-COFF (Win32) using internal writer
-3*2Ayasm_Assmeble using Yasm (experimental)
+3*2Ayasm_Assemble using Yasm (experimental)
4*2Aas_Assemble using GNU AS
4*2Agas_Assemble using GNU GAS
4*2Agas-darwin_Assemble darwin Mach-O64 using GNU GAS
@@ -3476,12 +3531,12 @@ S*2Aas_Assemble using GNU AS
**1B_Build all modules
**1C<x>_Code generation options:
**2C3_Turn on ieee error checking for constants
-**2Ca<x>_Select ABI, see fpc -i for possible values
+**2Ca<x>_Select ABI; see fpc -i or fpc -ia for possible values
**2Cb_Generate code for a big-endian variant of the target architecture
**2Cc<x>_Set default calling convention to <x>
**2CD_Create also dynamic library (not supported)
**2Ce_Compilation with emulated floating point opcodes
-**2Cf<x>_Select fpu instruction set to use, see fpc -i for possible values
+**2Cf<x>_Select fpu instruction set to use; see fpc -i or fpc -if for possible values
**2CF<x>_Minimal floating point constant precision (default, 32, 64)
**2Cg_Generate PIC code
**2Ch<n>_<n> bytes heap (between 1023 and 67107840)
@@ -3491,9 +3546,11 @@ A*2CI<x>_Select instruction set on ARM: ARM or THUMB
P*2CN_Generate nil-pointer checks (AIX-only)
**2Co_Check overflow of integer operations
**2CO_Check for possible overflow of integer operations
-**2Cp<x>_Select instruction set, see fpc -i for possible values
+**2Cp<x>_Select instruction set; see fpc -i or fpc -ic for possible values
**2CP<x>=<y>_ packing settings
**3CPPACKSET=<y>_ <y> set allocation: 0, 1 or DEFAULT or NORMAL, 2, 4 and 8
+**3CPPACKENUM=<y>_ <y> enum packing: 0, 1, 2 and 4 or DEFAULT or NORMAL
+**3CPPACKRECORD=<y>_ <y> record packing: 0 or DEFAULT or NORMAL, 1, 2, 4, 8, 16 and 32
**2Cr_Range checking
**2CR_Verify object method call validity
**2Cs<n>_Set stack checking size to <n>
@@ -3558,7 +3615,7 @@ J*2Cv_Var/out parameter copy-out checking
*g3godwarfmethodclassprefix_ Prefix method names in DWARF with class name
*g2gp_Preserve case in stabs symbol names
*g2gs_Generate Stabs debug information
-*g2gt_Trash local variables (to detect uninitialized uses)
+*g2gt_Trash local variables (to detect uninitialized uses; multiple 't' changes the trashing value)
*g2gv_Generates programs traceable with Valgrind
*g2gw_Generate DWARFv2 debug information (same as -gw2)
*g2gw2_Generate DWARFv2 debug information
@@ -3566,12 +3623,21 @@ J*2Cv_Var/out parameter copy-out checking
*g2gw4_Generate DWARFv4 debug information (experimental)
**1i_Information
**2iD_Return compiler date
-**2iV_Return short compiler version
-**2iW_Return full compiler version
**2iSO_Return compiler OS
**2iSP_Return compiler host processor
**2iTO_Return target OS
**2iTP_Return target processor
+**2iV_Return short compiler version
+**2iW_Return full compiler version
+**2ia_Return list of supported ABI targets
+**2ic_Return list of supported CPU instruction sets
+**2if_Return list of supported FPU instruction sets
+**2ii_Return list of supported inline assembler modes
+**2io_Return list of supported optimizations
+**2ir_Return list of recognized compiler and RTL features
+**2it_Return list of supported targets
+**2iu_Return list of supported microcontroller types
+**2iw_Return list of supported whole program optimizations
**1I<x>_Add <x> to include path
**1k<x>_Pass <x> to the linker
**1l_Write logo
@@ -3590,16 +3656,16 @@ J*2Cv_Var/out parameter copy-out checking
**2O3_Level 3 optimizations (-O2 + slow optimizations)
**2O4_Level 4 optimizations (-O3 + optimizations which might have unexpected side effects)
**2Oa<x>=<y>_Set alignment
-**2Oo[NO]<x>_Enable or disable optimizations, see fpc -i for possible values
-**2Op<x>_Set target cpu for optimizing, see fpc -i for possible values
-**2OW<x>_Generate whole-program optimization feedback for optimization <x>, see fpc -i for possible values
-**2Ow<x>_Perform whole-program optimization <x>, see fpc -i for possible values
+**2Oo[NO]<x>_Enable or disable optimizations; see fpc -i or fpc -io for possible values
+**2Op<x>_Set target cpu for optimizing; see fpc -i or fpc -ic for possible values
+**2OW<x>_Generate whole-program optimization feedback for optimization <x>; see fpc -i or fpc -iw for possible values
+**2Ow<x>_Perform whole-program optimization <x>; see fpc -i or fpc -iw for possible values
**2Os_Optimize for size rather than speed
**1pg_Generate profile code for gprof (defines FPC_PROFILE)
F*1P<x>_Target CPU / compiler related options:
F*2PB_Show default compiler binary
F*2PP_Show default target cpu
-F*2P<x>_Set target CPU (arm,i386,m68k,mips,mipsel,powerpc,powerpc64,sparc,x86_64)
+F*2P<x>_Set target CPU (arm,avr,i386,jvm,m68k,mips,mipsel,powerpc,powerpc64,sparc,x86_64)
**1R<x>_Assembler reading style:
**2Rdefault_Use default assembler for target
3*2Ratt_Read AT&T style assembler
@@ -3615,6 +3681,7 @@ F*2P<x>_Set target CPU (arm,i386,m68k,mips,mipsel,powerpc,powerpc64,sparc,x86_64
**3*_w : Compiler also halts after warnings
**3*_n : Compiler also halts after notes
**3*_h : Compiler also halts after hints
+**2Sf_Enable certain features in compiler and RTL; see fpc -i or fpc -ir for possible values)
**2Sg_Enable LABEL and GOTO (default in -Mtp and -Mdelphi)
**2Sh_Use reference counted strings (ansistring by default) instead of shortstrings
**2Si_Turn on inlining of procedures/functions declared as "inline"
@@ -3625,6 +3692,7 @@ F*2P<x>_Set target CPU (arm,i386,m68k,mips,mipsel,powerpc,powerpc64,sparc,x86_64
**2Sm_Support macros like C (global)
**2So_Same as -Mtp
**2Ss_Constructor name must be init (destructor must be done)
+**2Sv_Support vector processing (use CPU vector extensions if available)
**2Sx_Enable exception keywords (default in Delphi/ObjFPC modes)
**2Sy_@<pointer> returns a typed pointer, same as $T+
**1s_Do not call assembler and linker
@@ -3632,10 +3700,15 @@ F*2P<x>_Set target CPU (arm,i386,m68k,mips,mipsel,powerpc,powerpc64,sparc,x86_64
**2st_Generate script to link on target
**2sr_Skip register allocation phase (use with -alr)
**1T<x>_Target operating system:
+3*2Tandroid_Android
+3*2Taros_AROS
+3*2Tbeos_BeOS
3*2Tdarwin_Darwin/Mac OS X
+3*2Tembedded_Embedded
3*2Temx_OS/2 via EMX (including EMX/RSX extender)
3*2Tfreebsd_FreeBSD
3*2Tgo32v2_Version 2 of DJ Delorie DOS extender
+3*2Thaiku_Haiku
3*2Tiphonesim_ iPhoneSimulator from iOS SDK 3.2+ (older versions: -Tdarwin)
3*2Tlinux_Linux
3*2Tnativent_Native NT API (experimental)
@@ -3652,22 +3725,45 @@ F*2P<x>_Set target CPU (arm,i386,m68k,mips,mipsel,powerpc,powerpc64,sparc,x86_64
3*2Twin32_Windows 32 Bit
3*2Twince_Windows CE
4*2Tdarwin_Darwin/Mac OS X
+4*2Tfreebsd_FreeBSD
4*2Tlinux_Linux
+4*2Tnetbsd_NetBSD
+4*2Topenbsd_OpenBSD
+4*2Tsolaris_Solaris
4*2Twin64_Win64 (64 bit Windows systems)
6*2Tamiga_Commodore Amiga
6*2Tatari_Atari ST/STe/TT
6*2Tlinux_Linux
6*2Tpalmos_PalmOS
+8*2Tmsdos_MS-DOS (and compatible)
+A*2Tandroid_Android
A*2Tdarwin_Darwin/iPhoneOS/iOS
+A*2Tembedded_Embedded
+A*2Tgba_Game Boy Advance
A*2Tlinux_Linux
+A*2Tnds_Nintendo DS
+A*2Tsymbian_Symbian
A*2Twince_Windows CE
+J*2Tandroid_Android
+J*2Tjava_Java
+m*2Tembedded_Embedded
+M*2Tandroid_Android
+M*2Tembedded_Embedded
+M*2Tlinux_Linux
+P*2Taix_AIX
P*2Tamiga_AmigaOS
P*2Tdarwin_Darwin/Mac OS X
P*2Tlinux_Linux
P*2Tmacos_Mac OS (classic)
P*2Tmorphos_MorphOS
+P*2Tnetbsd_NetBSD
+P*2Twii_Wii
+p*2Taix_AIX
+p*2Tdarwin_Darwin/Mac OS X
+p*2Tlinux_Linux
S*2Tsolaris_Solaris
S*2Tlinux_Linux
+V*2Tembedded_Embedded
**1u<x>_Undefines the symbol <x>
**1U_Unit options:
**2Un_Do not check where the unit name matches the file name
@@ -3681,10 +3777,10 @@ S*2Tlinux_Linux
**2*_i : Show general info d : Show debug info
**2*_l : Show linenumbers r : Rhide/GCC compatibility mode
**2*_s : Show time stamps q : Show message numbers
-**2*_a : Show everything x : Executable info (Win32 only)
+**2*_a : Show everything x : Show info about invoked tools
**2*_b : Write file names messages p : Write tree.log with parse tree
**2*_ with full path v : Write fpcdebug.txt with
-**2*_ lots of debugging info
+**2*_z : Write output to stderr lots of debugging info
**2*_m<x>,<y> : Do not show messages numbered <x> and <y>
F*1V<x>_Append '-<x>' to the used compiler binary name (e.g. for version)
**1W<x>_Target-specific options (targets)
@@ -3703,7 +3799,7 @@ A*2Wb_Create a bundle instead of a library (Darwin)
A*2WB_Create a relocatable image (Windows, Symbian)
A*2WBxxxx_Set image base to xxxx (Windows, Symbian)
3*2WC_Specify console type application (EMX, OS/2, Windows)
-4*2WC_Specify console type application (EMX, OS/2, Windows)
+4*2WC_Specify console type application (Windows)
A*2WC_Specify console type application (Windows)
P*2WC_Specify console type application (Classic Mac OS)
3*2WD_Use DEFFILE to export functions of DLL or EXE (Windows)
@@ -3716,7 +3812,7 @@ P*2We_Use external resources (Darwin)
p*2We_Use external resources (Darwin)
3*2WF_Specify full-screen type application (EMX, OS/2)
3*2WG_Specify graphic type application (EMX, OS/2, Windows)
-4*2WG_Specify graphic type application (EMX, OS/2, Windows)
+4*2WG_Specify graphic type application (Windows)
A*2WG_Specify graphic type application (Windows)
P*2WG_Specify graphic type application (Classic Mac OS)
3*2Wi_Use internal resources (Darwin)
@@ -3740,8 +3836,9 @@ P*2WM<x>_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwin)
3*2WN_Do not generate relocation code, needed for debugging (Windows)
4*2WN_Do not generate relocation code, needed for debugging (Windows)
A*2WN_Do not generate relocation code, needed for debugging (Windows)
-A*2Wpxxxx_Specify the controller type, see fpc -i for possible values
-V*2Wpxxxx_Specify the controller type, see fpc -i for possible values
+A*2Wpxxxx_Specify the controller type; see fpc -i or fpc -iu for possible values
+m*2Wpxxxx_Specify the controller type; see fpc -i or fpc -iu for possible values
+V*2Wpxxxx_Specify the controller type; see fpc -i or fpc -iu for possible values
3*2WP<x>_Minimum iOS deployment version: 3.0, 5.0.1, ... (iphonesim)
A*2WP<x>_Minimum iOS deployment version: 3.0, 5.0.1, ... (Darwin)
3*2WR_Generate relocation code (Windows)
@@ -3756,11 +3853,16 @@ P*2WT_Specify MPW tool type application (Classic Mac OS)
**2Xc_Pass --shared/-dynamic to the linker (BeOS, Darwin, FreeBSD, Linux)
**2Xd_Do not search default library path (sometimes required for cross-compiling when not using -XR)
**2Xe_Use external linker
+**2Xf_Substitute pthread library name for linking (BSD)
**2Xg_Create debuginfo in a separate file and add a debuglink section to executable
**2XD_Try to link units dynamically (defines FPC_LINK_DYNAMIC)
**2Xi_Use internal linker
+**2XLA_Define library substitutions for linking
+**2XLO_Define order of library linking
+**2XLD_Exclude default order of standard libraries
**2Xm_Generate link map
**2XM<x>_Set the name of the 'main' program routine (default is 'main')
+**2Xn_Use target system native linker instead of GNU ld (Solaris, AIX)
F*2Xp<x>_First search for the compiler binary in the directory <x>
**2XP<x>_Prepend the binutils names with the prefix <x>
**2Xr<x>_Set the linker's rlink-path to <x> (needed for cross compile, see the ld manual for more information) (BeOS, Linux)
@@ -3768,6 +3870,7 @@ F*2Xp<x>_First search for the compiler binary in the directory <x>
**2Xs_Strip all symbols from executable
**2XS_Try to link units statically (default, defines FPC_LINK_STATIC)
**2Xt_Link with static libraries (-static is passed to linker)
+**2Xv_Generate table for Virtual Entry calls
**2XX_Try to smartlink units (defines FPC_LINK_SMART)
**1*_
**1?_Show this help
diff --git a/compiler/msg/errores.msg b/compiler/msg/errores.msg
index fa8c3e77bf..a525562547 100644
--- a/compiler/msg/errores.msg
+++ b/compiler/msg/errores.msg
@@ -270,7 +270,7 @@ scan_e_illegal_asmmode_specifier=02050_E_Estilo de ensamblador inváalido especif
% the compiler didn't recognize the mode you specified.
scan_w_no_asm_reader_switch_inside_asm=02051_W_No es posible cambiar el lector dentro de una sentencia asm. "$1" solo sera efectivo en los siguientes
% It is not possible to switch from one assembler reader to another
-% inside an assmebler block. The new reader will be used for next
+% inside an assembler block. The new reader will be used for next
% assembler statements only.
scan_e_wrong_switch_toggle=02052_E_Modificador de conmutador erróneo, use ON/OFF o +/-
% You need to use ON or OFF or a + or - to toggle the switch
@@ -2111,7 +2111,7 @@ option_code_page_not_available=11039_E_Código de página desconocido
#
option_logo=11023_[
Free Pascal Compiler version $FPCFULLVERSION [$FPCDATE] for $FPCCPU
-Copyright (c) 1993-2014 by Florian Klaempfl
+Copyright (c) 1993-2015 by Florian Klaempfl and others
]
#
diff --git a/compiler/msg/errorf.msg b/compiler/msg/errorf.msg
index 94f4d2fdb2..58e271b99a 100644
--- a/compiler/msg/errorf.msg
+++ b/compiler/msg/errorf.msg
@@ -269,7 +269,7 @@ scan_w_unsupported_asmmode_specifier=02050_W_Style assembleur non support‚ $1
% the compiler didn't recognize the mode you specified.
scan_w_no_asm_reader_switch_inside_asm=02051_W_Changement de type d'interpr‚teur ASM … l'int‚rieur de code assembleur, $1 sera effectif seulement pour le prochain
% It is not possible to switch from one assembler reader to another
-% inside an assmebler block. The new reader will be used for next
+% inside an assembler block. The new reader will be used for next
% assembler statement only.
scan_e_wrong_switch_toggle=02052_E_Mauvais argument de switch, utilisez ON/OFF ou +/-
% You need to use ON or OFF or a + or - to toggle the switch
@@ -1712,7 +1712,7 @@ option_asm_forced=11022_W_"$1" assembler use forced
#
option_logo=11023_[
Compilateur Free Pascal version $FPCFULLVERSION [$FPCDATE] pour $FPCTARGET
-Copyright (c) 1993-2014 by Florian Klaempfl
+Copyright (c) 1993-2015 by Florian Klaempfl and others
]
#
diff --git a/compiler/msg/errorfi.msg b/compiler/msg/errorfi.msg
index b927d04241..c58dec2a1b 100644
--- a/compiler/msg/errorfi.msg
+++ b/compiler/msg/errorfi.msg
@@ -2258,7 +2258,7 @@ option_config_is_dir=11040_F_Le fichier de configuration $1 est un répertoire
# Logo (option -l)
#
option_logo=11023_[ Compilateur Free Pascal version $FPCFULLVERSION [$FPCDATE] for $FPCCPU
-Copyright (c) 1993-2014, Florian Klaempfl ]
+Copyright (c) 1993-2015, Florian Klaempfl and others]
#
# Info (option -i)
#
diff --git a/compiler/msg/errorhe.msg b/compiler/msg/errorhe.msg
index 0627414580..99b682acf7 100644
--- a/compiler/msg/errorhe.msg
+++ b/compiler/msg/errorhe.msg
@@ -2404,7 +2404,7 @@ option_confict_asm_debug=11041_W_ñåâ äôìè ùì äîàñó ùðáçø "$1" àéðå éëåì ìéöåø îé
#
option_logo=11023_[
Free Pascal Compiler version $FPCFULLVERSION [$FPCDATE] for $FPCCPU
-Copyright (c) 1993-2014 by Florian Klaempfl
+Copyright (c) 1993-2015 by Florian Klaempfl and others
]
#
diff --git a/compiler/msg/errorheu.msg b/compiler/msg/errorheu.msg
index 6ac6ee5a7b..63f5bd7146 100644
--- a/compiler/msg/errorheu.msg
+++ b/compiler/msg/errorheu.msg
@@ -2404,7 +2404,7 @@ option_confict_asm_debug=11041_W_סוג הפלט של המ×סף שנבחר "$1"
#
option_logo=11023_[
Free Pascal Compiler version $FPCFULLVERSION [$FPCDATE] for $FPCCPU
-Copyright (c) 1993-2014 by Florian Klaempfl
+Copyright (c) 1993-2015 by Florian Klaempfl and others
]
#
diff --git a/compiler/msg/errorid.msg b/compiler/msg/errorid.msg
index aad846822a..b09623bc32 100644
--- a/compiler/msg/errorid.msg
+++ b/compiler/msg/errorid.msg
@@ -2421,7 +2421,7 @@ option_confict_asm_debug=11041_W_Output assembler yang dipilih "$1" tidak bisa m
#
option_logo=11023_[
Free Pascal Compiler versi $FPCFULLVERSION [$FPCDATE] untuk $FPCCPU
-Hak Cipta (c) 1993-2014 oleh Florian Klaempfl
+Hak Cipta (c) 1993-2015 oleh Florian Klaempfl and others
]
#
diff --git a/compiler/msg/erroriu.msg b/compiler/msg/erroriu.msg
index 85637d7629..ccd8d0b975 100644
--- a/compiler/msg/erroriu.msg
+++ b/compiler/msg/erroriu.msg
@@ -2690,7 +2690,7 @@ wpo_cant_create_feedback_file=12019_E_Impossibile creare il file di feedback "$1
#
option_logo=11023_[
Compilatore Free Pascal, versione $FPCFULLVERSION [$FPCDATE] per $FPCCPU
-Copyright (c) 1993-2014 di Florian Klaempfl
+Copyright (c) 1993-2015 di Florian Klaempfl and others
]
#
diff --git a/compiler/msg/errorn.msg b/compiler/msg/errorn.msg
index 6b6f618313..8242e260cb 100644
--- a/compiler/msg/errorn.msg
+++ b/compiler/msg/errorn.msg
@@ -2183,7 +2183,7 @@ option_config_is_dir=11040_F_Config bestand $1 is een directorie
%\end{description}
option_logo=11023_[
Free Pascal Compiler versie $FPCFULLVERSION [$FPCDATE] voor $FPCTARGET
-Copyright (c) 1993-2014 door Florian Klaempfl en anderen
+Copyright (c) 1993-2015 door Florian Klaempfl en anderen
]
#
# Info (option -i)
diff --git a/compiler/msg/errorpl.msg b/compiler/msg/errorpl.msg
index 5090a1dce2..9bf7c154f8 100644
--- a/compiler/msg/errorpl.msg
+++ b/compiler/msg/errorpl.msg
@@ -266,7 +266,7 @@ scan_w_unsupported_asmmode_specifier=02050_W_Nieprawidˆowy styl asemblera $1
% the compiler didn't recognize the mode you specified.
scan_w_no_asm_reader_switch_inside_asm=02051_W_Przeˆ¥cznik stylu asemblera niedozwolony w bloku asemblera, $1 b©dzie dziaˆa† dopiero w nast©pnym bloku
% It is not possible to switch from one assembler reader to another
-% inside an assmebler block. The new reader will be used for next
+% inside an assembler block. The new reader will be used for next
% assembler statement only.
scan_e_wrong_switch_toggle=02052_E_Zˆa warto˜† przeˆ¥cznika, u¾yj ON/OFF lub +/-
% You need to use ON or OFF or a + or - to toggle the switch
@@ -2116,7 +2116,7 @@ option_code_page_not_available=11039_E_Nieznana strona kodowa
#
option_logo=11023_[
Free Pascal Compiler wersja $FPCFULLVERSION [$FPCDATE] dla $FPCCPU
-Copyright (c) 1993-2014 by Florian Klaempfl
+Copyright (c) 1993-2015 by Florian Klaempfl and others
]
#
diff --git a/compiler/msg/errorpli.msg b/compiler/msg/errorpli.msg
index 89ba461520..527f51b92a 100644
--- a/compiler/msg/errorpli.msg
+++ b/compiler/msg/errorpli.msg
@@ -266,7 +266,7 @@ scan_w_unsupported_asmmode_specifier=02050_W_Nieprawid³owy styl asemblera $1
% the compiler didn't recognize the mode you specified.
scan_w_no_asm_reader_switch_inside_asm=02051_W_Prze³±cznik stylu asemblera niedozwolony w bloku asemblera, $1 bêdzie dzia³aæ dopiero w nastêpnym bloku
% It is not possible to switch from one assembler reader to another
-% inside an assmebler block. The new reader will be used for next
+% inside an assembler block. The new reader will be used for next
% assembler statement only.
scan_e_wrong_switch_toggle=02052_E_Z³a warto¶æ prze³±cznika, u¿yj ON/OFF lub +/-
% You need to use ON or OFF or a + or - to toggle the switch
@@ -2116,7 +2116,7 @@ option_code_page_not_available=11039_E_Nieznana strona kodowa
#
option_logo=11023_[
Free Pascal Compiler wersja $FPCFULLVERSION [$FPCDATE] dla $FPCCPU
-Copyright (c) 1993-2014 by Florian Klaempfl
+Copyright (c) 1993-2015 by Florian Klaempfl and others
]
#
diff --git a/compiler/msg/errorpt.msg b/compiler/msg/errorpt.msg
index 6c5b74f43c..67aa93d227 100644
--- a/compiler/msg/errorpt.msg
+++ b/compiler/msg/errorpt.msg
@@ -3083,7 +3083,7 @@ wpo_cant_create_feedback_file=12019_E_Imposs¡vel criar arquivo retorno otimiza‡ä
#
option_logo=11023_[
Compilador Free Pascal versÆo $FPCFULLVERSION [$FPCDATE] para $FPCCPU
-Copyright (c) 1993-2014 by Florian Klaempfl
+Copyright (c) 1993-2015 by Florian Klaempfl and others
]
#
@@ -3384,7 +3384,7 @@ A*2Wb_Cria um encarte ao inv‚s de uma biblioteca (Darwin)
A*2WB_Cria uma imagem reloc vel (Windows, Symbian)
A*2WBxxxx_Define base da imagem para xxxx (Windows, Symbian)
3*2WC_Especifica aplica‡Æo do tipo console (EMX, OS/2, Windows)
-4*2WC_Especifica aplica‡Æo do tipo console (EMX, OS/2, Windows)
+4*2WC_Especifica aplica‡Æo do tipo console (Windows)
A*2WC_Especifica aplica‡Æo do tipo console (Windows)
P*2WC_Especifica aplica‡Æo do tipo console (Classic Mac OS)
3*2WD_Usa DEFFILE para exportar fun‡äes de DLL ou EXE (Windows)
@@ -3397,7 +3397,7 @@ P*2We_Usa recursos externos (Darwin)
p*2We_Usa recursos externos (Darwin)
3*2WF_Especifica aplica‡Æo do tipo tela-cheia (EMX, OS/2)
3*2WG_Especifica aplica‡Æo do tipo gr fica (EMX, OS/2, Windows)
-4*2WG_Especifica aplica‡Æo do tipo gr fica (EMX, OS/2, Windows)
+4*2WG_Especifica aplica‡Æo do tipo gr fica (Windows)
A*2WG_Especifica aplica‡Æo do tipo gr fica (Windows)
P*2WG_Especifica aplica‡Æo do tipo gr fica (Classic Mac OS)
3*2Wi_Usa recursos internos (Darwin)
diff --git a/compiler/msg/errorptu.msg b/compiler/msg/errorptu.msg
index fbb5cba4cc..8a0663c0ed 100644
--- a/compiler/msg/errorptu.msg
+++ b/compiler/msg/errorptu.msg
@@ -3083,7 +3083,7 @@ wpo_cant_create_feedback_file=12019_E_Impossível criar arquivo retorno otimizaÃ
#
option_logo=11023_[
Compilador Free Pascal versão $FPCFULLVERSION [$FPCDATE] para $FPCCPU
-Copyright (c) 1993-2014 by Florian Klaempfl
+Copyright (c) 1993-2015 by Florian Klaempfl and others
]
#
@@ -3384,7 +3384,7 @@ A*2Wb_Cria um encarte ao invés de uma biblioteca (Darwin)
A*2WB_Cria uma imagem relocável (Windows, Symbian)
A*2WBxxxx_Define base da imagem para xxxx (Windows, Symbian)
3*2WC_Especifica aplicação do tipo console (EMX, OS/2, Windows)
-4*2WC_Especifica aplicação do tipo console (EMX, OS/2, Windows)
+4*2WC_Especifica aplicação do tipo console (Windows)
A*2WC_Especifica aplicação do tipo console (Windows)
P*2WC_Especifica aplicação do tipo console (Classic Mac OS)
3*2WD_Usa DEFFILE para exportar funções de DLL ou EXE (Windows)
@@ -3397,7 +3397,7 @@ P*2We_Usa recursos externos (Darwin)
p*2We_Usa recursos externos (Darwin)
3*2WF_Especifica aplicação do tipo tela-cheia (EMX, OS/2)
3*2WG_Especifica aplicação do tipo gráfica (EMX, OS/2, Windows)
-4*2WG_Especifica aplicação do tipo gráfica (EMX, OS/2, Windows)
+4*2WG_Especifica aplicação do tipo gráfica (Windows)
A*2WG_Especifica aplicação do tipo gráfica (Windows)
P*2WG_Especifica aplicação do tipo gráfica (Classic Mac OS)
3*2Wi_Usa recursos internos (Darwin)
diff --git a/compiler/msg/errorr.msg b/compiler/msg/errorr.msg
index 2c3f95f55a..3683793cf2 100644
--- a/compiler/msg/errorr.msg
+++ b/compiler/msg/errorr.msg
@@ -2503,7 +2503,7 @@ wpo_cant_create_feedback_file=12019_E_¥¢®§¬®¦­® ᮧ¤ âì ä ©« ®¡à â­®© á¢ï§¨ "$1"
#
option_logo=11023_[
Š®¬¯¨«ïâ®à Free Pascal ¢¥àᨨ $FPCFULLVERSION [$FPCDATE] ¤«ï $FPCCPU
-Copyright (c) 1993-2014 by Florian Klaempfl
+Copyright (c) 1993-2015 by Florian Klaempfl and others
]
#
diff --git a/compiler/msg/errorru.msg b/compiler/msg/errorru.msg
index 8868bad05d..524a1064b5 100644
--- a/compiler/msg/errorru.msg
+++ b/compiler/msg/errorru.msg
@@ -2503,7 +2503,7 @@ wpo_cant_create_feedback_file=12019_E_Ðевозможно Ñоздать фай
#
option_logo=11023_[
КомпилÑтор Free Pascal верÑии $FPCFULLVERSION [$FPCDATE] Ð´Ð»Ñ $FPCCPU
-Copyright (c) 1993-2014 by Florian Klaempfl
+Copyright (c) 1993-2015 by Florian Klaempfl and others
]
#
diff --git a/compiler/msg/errorues.msg b/compiler/msg/errorues.msg
index 4bebec7fd4..433181e165 100644
--- a/compiler/msg/errorues.msg
+++ b/compiler/msg/errorues.msg
@@ -264,7 +264,7 @@ scan_e_illegal_asmmode_specifier=02050_E_Estilo de ensamblador inváalido especi
% the compiler didn't recognize the mode you specified.
scan_w_no_asm_reader_switch_inside_asm=02051_W_No es posible cambiar el lector dentro de una sentencia asm. "$1" solo sera efectivo en los siguientes
% It is not possible to switch from one assembler reader to another
-% inside an assmebler block. The new reader will be used for next
+% inside an assembler block. The new reader will be used for next
% assembler statements only.
scan_e_wrong_switch_toggle=02052_E_Modificador de conmutador erróneo, use ON/OFF o +/-
% You need to use ON or OFF or a + or - to toggle the switch
@@ -2105,7 +2105,7 @@ option_code_page_not_available=11039_E_Código de página desconocido
#
option_logo=11023_[
Free Pascal Compiler version $FPCFULLVERSION [$FPCDATE] for $FPCCPU
-Copyright (c) 1993-2014 by Florian Klaempfl
+Copyright (c) 1993-2015 by Florian Klaempfl and others
]
#
diff --git a/compiler/msgidx.inc b/compiler/msgidx.inc
index f011abd443..b751dfd233 100644
--- a/compiler/msgidx.inc
+++ b/compiler/msgidx.inc
@@ -440,6 +440,7 @@ const
parser_e_overloaded_have_same_mangled_name=03336;
parser_e_default_value_val_const=03337;
parser_w_ptr_type_ignored=03338;
+ parser_e_global_generic_references_static=03339;
type_e_mismatch=04000;
type_e_incompatible_types=04001;
type_e_not_equal_types=04002;
@@ -630,6 +631,13 @@ const
sym_e_no_matching_inherited_parameterless_constructor=05086;
sym_d_adding_helper_for=05087;
sym_e_param_list=05088;
+ sym_w_uninitialized_managed_local_variable=05089;
+ sym_w_uninitialized_managed_variable=05090;
+ sym_h_uninitialized_managed_local_variable=05091;
+ sym_h_uninitialized_managed_variable=05092;
+ sym_w_managed_function_result_uninitialized=05093;
+ sym_h_managed_function_result_uninitialized=05094;
+ sym_w_duplicate_id=05095;
cg_e_parasize_too_big=06009;
cg_e_file_must_call_by_reference=06012;
cg_e_cant_use_far_pointer_there=06013;
@@ -812,6 +820,8 @@ const
asmw_e_prologue_too_large=08024;
asmw_e_handlerdata_no_handler=08025;
asmw_f_too_many_relocations=08026;
+ asmw_w_changing_bind_type=08027;
+ asmw_h_changing_bind_type=08028;
exec_w_source_os_redefined=09000;
exec_i_assembling_pipe=09001;
exec_d_cant_create_asmfile=09002;
@@ -996,9 +1006,9 @@ const
option_info=11024;
option_help_pages=11025;
- MsgTxtSize = 72262;
+ MsgTxtSize = 74953;
MsgIdxMax : array[1..20] of longint=(
- 26,99,339,1000,89,57,126,27,202,64,
+ 26,99,340,1000,96,57,126,29,202,64,
58,20,1,1,1,1,1,1,1,1
);
diff --git a/compiler/msgtxt.inc b/compiler/msgtxt.inc
index 9d6b67a49d..be14fc1a7f 100644
--- a/compiler/msgtxt.inc
+++ b/compiler/msgtxt.inc
@@ -1,7 +1,7 @@
{$ifdef Delphi}
-const msgtxt : array[0..000301] of string[240]=(
+const msgtxt : array[0..000312] of string[240]=(
{$else Delphi}
-const msgtxt : array[0..000301,1..240] of char=(
+const msgtxt : array[0..000312,1..240] of char=(
{$endif Delphi}
'01000_T_Compiler: $1'#000+
'01001_D_Compiler OS: $1'#000+
@@ -37,16 +37,16 @@ const msgtxt : array[0..000301,1..240] of char=(
'02005_W_Comment level $1 found'#000+
'02008_N_Ignored compiler switch "$1"'#000+
'02009_W_Illegal compiler s','witch "$1"'#000+
- '02010_W_Misplaced global compiler switch'#000+
+ '02010_W_Misplaced global compiler switch, ignored'#000+
'02011_E_Illegal char constant'#000+
- '02012_F_Can not open file "$1"'#000+
- '02013_F_Can not open include file "$1"'#000+
+ '02012_F_Cannot open file "$1"'#000+
+ '02013_F_Cannot open include file "$1"'#000+
'02015_E_Illegal record alignment specifier "$1"'#000+
- '02016_E_Illegal enum minimum-size specif','ier "$1"'#000+
+ '02016_E_Illegal enum minimum-size',' specifier "$1"'#000+
'02017_E_$ENDIF expected for $1 $2 defined in $3 line $4'#000+
'02018_E_Syntax error while parsing a conditional compiling expression'#000+
'02019_E_Evaluating a conditional compiling expression'#000+
- '02020_W_Macro contents are limited to 255 character','s in length'#000+
+ '02020_W_Macro contents are limited to 255 ch','aracters in length'#000+
'02021_E_ENDIF without IF(N)DEF'#000+
'02022_F_User defined: $1'#000+
'02023_E_User defined: $1'#000+
@@ -54,13 +54,13 @@ const msgtxt : array[0..000301,1..240] of char=(
'02025_N_User defined: $1'#000+
'02026_H_User defined: $1'#000+
'02027_I_User defined: $1'#000+
- '02028_E_Keyword redefined as macro has no effec','t'#000+
+ '02028_E_Keyword redefined as macro has n','o effect'#000+
'02029_F_Macro buffer overflow while reading or expanding a macro'#000+
'02030_W_Expanding of macros exceeds a depth of 16.'#000+
'02031_W_compiler switches are not supported in // styled comments'#000+
'02032_DL_Handling switch "$1"'#000+
- '02033_CL_ENDIF $1 found'#000+
- '02','034_CL_IFDEF $1 found, $2'#000+
+ '02033_CL_ENDIF $1 f','ound'#000+
+ '02034_CL_IFDEF $1 found, $2'#000+
'02035_CL_IFOPT $1 found, $2'#000+
'02036_CL_IF $1 found, $2'#000+
'02037_CL_IFNDEF $1 found, $2'#000+
@@ -68,990 +68,1006 @@ const msgtxt : array[0..000301,1..240] of char=(
'02039_CL_Skipping until...'#000+
'02040_I_Press <return> to continue'#000+
'02041_W_Unsupported switch "$1"'#000+
- '02042_W_Ill','egal compiler directive "$1"'#000+
+ '0204','2_W_Illegal compiler directive "$1"'#000+
'02043_TL_Back in $1'#000+
'02044_W_Unsupported application type: "$1"'#000+
'02045_W_APPTYPE is not supported by the target OS'#000+
'02046_W_DESCRIPTION is not supported by the target OS'#000+
- '02047_N_VERSION is not supported by target O','S'#000+
+ '02047_N_VERSION is not supported by t','arget OS'#000+
'02048_N_VERSION only for exes or DLLs'#000+
'02049_W_Wrong format for VERSION directive "$1"'#000+
'02050_E_Illegal assembler style specified "$1"'#000+
'02051_W_ASM reader switch is not possible inside asm statement, "$1" w'+
- 'ill be effective only for next'#000+
- '0205','2_E_Wrong switch toggle, use ON/OFF or +/-'#000+
+ 'ill be effective only for ne','xt'#000+
+ '02052_E_Wrong switch toggle, use ON/OFF or +/-'#000+
'02053_E_Resource files are not supported for this target'#000+
'02054_W_Include environment "$1" not found in environment'#000+
'02055_E_Illegal value for FPU register limit'#000+
- '02056_W_Only one resource file is sup','ported for this target'#000+
+ '02056_W_Only one resource file',' is supported for this target'#000+
'02057_W_Macro support has been turned off'#000+
'02058_E_Illegal interface type specified. Valids are COM, CORBA or DEF'+
'AULT.'#000+
'02059_W_APPID is only supported for PalmOS'#000+
'02060_W_APPNAME is only supported for PalmOS'#000+
- '02061_E_Con','stant strings cannot be longer than 255 chars'#000+
+ '0206','1_E_Constant strings cannot be longer than 255 chars'#000+
'02062_F_Including include files exceeds a depth of 16.'#000+
'02063_F_Too many levels of PUSH'#000+
'02064_E_A POP without a preceding PUSH'#000+
- '02065_E_Macro or compile time variable "$1" does not have any value'#000,
+ '02065_E_Macro or compile time variable "$1" does not have any',' value'#000+
'02066_E_Wrong switch toggle, use ON/OFF/DEFAULT or +/-/*'#000+
'02067_E_Mode switch "$1" not allowed here'#000+
'02068_E_Compile time variable or macro "$1" is not defined.'#000+
'02069_E_UTF-8 code greater than 65535 found'#000+
- '02070_E_Malformed UTF-8 string'#000+
- '02071_','C_UTF-8 signature found, using UTF-8 encoding'#000+
+ '02070_E_Malformed UTF-8 string',#000+
+ '02071_C_UTF-8 signature found, using UTF-8 encoding'#000+
'02072_E_Compile time expression: Wanted $1 but got $2 at $3'#000+
'02073_N_APPTYPE is not supported by the target OS'#000+
'02074_E_Illegal optimization specified "$1"'#000+
- '02075_W_SETPEFLAGS is not supported by t','he target OS'#000+
+ '02075_W_SETPEFLAGS is not support','ed by the target OS'#000+
'02076_W_IMAGEBASE is not supported by the target OS'#000+
'02077_W_MINSTACKSIZE is not supported by the target OS'#000+
'02078_W_MAXSTACKSIZE is not supported by the target OS'#000+
'02079_E_Illegal state "$1" for $WARN directive'#000+
- '02080_E_Illegal se','t packing value'#000+
+ '02080_E_Ill','egal set packing value'#000+
'02081_W_PIC directive or switch ignored'#000+
'02082_W_The switch "$1" is not supported by the currently selected tar'+
'get'#000+
'02084_W_Framework-related options are only supported for Darwin/Mac OS'+
' X'#000+
- '02085_E_Illegal minimal floating poin','t constant precision "$1"'#000+
+ '02085_E_Illegal minimal floati','ng point constant precision "$1"'#000+
'02086_W_Overriding name of "main" procedure multiple times, was previo'+
'usly set to "$1"'#000+
'02087_W_Illegal identifier "$1" for $WARN directive'#000+
'02088_E_Illegal alignment directive'#000+
- '02089_F_It is not possible to include a',' file that starts with an UTF'+
+ '02089_F_It is not possible to in','clude a file that starts with an UTF'+
'-8 BOM in a module that uses a different code page'#000+
'02090_W_Directive "$1" is ignored for the the current target platform'#000+
'02091_W_Current system codepage "$1" is not available for the compiler'+
- '. Switching default ','codepage back to "$2".'#000+
+ '. Switching d','efault codepage back to "$2".'#000+
'02092_W_SETPEOPTFLAGS is not supported by the target OS'#000+
'02093_E_Illegal argument for SETPEFLAGS'#000+
'02094_E_Illegal argument for SETPEOPTFLAGS'#000+
'02095_E_Directive $1 is not supported on this target'#000+
- '02096_W_The specified sta','ck size is not within the valid range for t'+
+ '02096_W_The specif','ied stack size is not within the valid range for t'+
'he platform. Setting the stack size ignored.'#000+
'02097_W_The specified HeapMax value is smaller than the HeapMin value.'+
' Setting HeapMax ignored.'#000+
- '02098_E_Illegal argument for HUGEPOINTERNORMALIZATION'#000+
- '03','000_E_Parser - Syntax Error'#000+
+ '02098_E_Illegal argument for HUGEPOINTERNORMALIZA','TION'#000+
+ '03000_E_Parser - Syntax Error'#000+
'03004_E_INTERRUPT procedure cannot be nested'#000+
'03005_W_Procedure type "$1" ignored'#000+
'03006_E_Not all declarations of "$1" are declared with OVERLOAD'#000+
'03008_E_Duplicate exported function name "$1"'#000+
- '03009_E_Duplicate exp','orted function index $1'#000+
+ '03009_E_Duplic','ate exported function index $1'#000+
'03010_E_Invalid index for exported function'#000+
'03011_W_Relocatable DLL or executable $1 debug info does not work, dis'+
'abled.'#000+
'03012_W_To allow debugging for win32 code you need to disable relocati'+
- 'on with -WN option'#000+
- '03013_','E_Constructor name must be INIT'#000+
+ 'on with -WN option',#000+
+ '03013_E_Constructor name must be INIT'#000+
'03014_E_Destructor name must be DONE'#000+
'03016_E_Procedure type INLINE not supported'#000+
'03018_W_Constructor should be public'#000+
'03019_W_Destructor should be public'#000+
'03020_N_Class should have one destructor only'#000+
- '03021_E_','Local class definitions are not allowed'#000+
+ '0','3021_E_Local class definitions are not allowed'#000+
'03022_F_Anonymous class definitions are not allowed'#000+
'03023_N_The object "$1" has no VMT'#000+
'03024_E_Illegal parameter list'#000+
'03026_E_Wrong number of parameters specified for call to "$1"'#000+
- '03027_E_overloaded i','dentifier "$1" isn'#039't a function'#000+
+ '03027_E_overl','oaded identifier "$1" isn'#039't a function'#000+
'03028_E_overloaded functions have the same parameter list'#000+
'03029_E_function header doesn'#039't match the previous declaration "$1'+
'"'#000+
'03030_E_function header "$1" doesn'#039't match forward : var name chan'+
- 'ges $2 => $3'#000+
- '030','31_N_Values in enumeration types have to be ascending'#000+
+ 'ges $2 =>',' $3'#000+
+ '03031_N_Values in enumeration types have to be ascending'#000+
'03033_E_With cannot be used for variables in a different segment'#000+
'03034_E_function nesting > 31'#000+
'03035_E_range check error while evaluating constants'#000+
- '03036_W_range check error while evalua','ting constants'#000+
+ '03036_W_range check error while',' evaluating constants'#000+
'03037_E_duplicate case label'#000+
'03038_E_Upper bound of case range is less than lower bound'#000+
'03039_E_typed constants of classes or interfaces are not allowed'#000+
- '03040_E_functions variables of overloaded functions are not allowed'#000+
- '0304','1_E_string length must be a value from 1 to 255'#000+
+ '03040_E_functions variables of overloaded functions are not allow','ed'#000+
+ '03041_E_string length must be a value from 1 to 255'#000+
'03042_W_use extended syntax of NEW and DISPOSE for instances of object'+
's'#000+
'03043_W_use of NEW or DISPOSE for untyped pointers is meaningless'#000+
- '03044_E_use of NEW or DISPOSE is not possible for unty','ped pointers'#000+
+ '03044_E_use of NEW or DISPOSE is not possible f','or untyped pointers'#000+
'03045_E_class identifier expected'#000+
'03046_E_type identifier not allowed here'#000+
'03047_E_method identifier expected'#000+
'03048_E_function header doesn'#039't match any method of this class "$1'+
'"'#000+
'03049_DL_procedure/function $1'#000+
- '03050_E_Illegal fl','oating point constant'#000+
+ '03050_E_Ill','egal floating point constant'#000+
'03051_E_FAIL can be used in constructors only'#000+
'03052_E_Destructors cannot have parameters'#000+
'03053_E_Only class methods, class properties and class variables can b'+
'e referred with class references'#000+
- '03054_E_Only class methods',', class properties and class variables can'+
+ '03054_E_Only class ','methods, class properties and class variables can'+
' be accessed in class methods'#000+
'03055_E_Constant and CASE types do not match'#000+
'03056_E_The symbol cannot be exported from a library'#000+
'03057_W_An inherited method is hidden by "$1"'#000+
- '03058_E_There is no meth','od in an ancestor class to be overridden: "$'+
+ '03058_E_There is ','no method in an ancestor class to be overridden: "$'+
'1"'#000+
'03059_E_No member is provided to access property'#000+
'03060_W_Stored property directive is not yet implemented'#000+
'03061_E_Illegal symbol for property access'#000+
- '03062_E_Cannot access a protected field of a','n object here'#000+
+ '03062_E_Cannot access a protected fie','ld of an object here'#000+
'03063_E_Cannot access a private field of an object here'#000+
'03066_E_Overridden methods must have the same return type: "$2" is ove'+
'rridden by "$1" which has another return type'#000+
- '03067_E_EXPORT declared functions cannot be nested'#000+
- '030','68_E_Methods cannot be EXPORTed'#000+
+ '03067_E_EXPORT declared functions cannot be nes','ted'#000+
+ '03068_E_Methods cannot be EXPORTed'#000+
'03069_E_Call by var for arg no. $1 has to match exactly: Got "$2" expe'+
'cted "$3"'#000+
'03070_E_Class isn'#039't a parent class of the current class'#000+
'03071_E_SELF is only allowed in methods'#000+
- '03072_E_Methods can be only in o','ther methods called direct with type'+
+ '03072_E_Methods can be on','ly in other methods called direct with type'+
' identifier of the class'#000+
'03073_E_Illegal use of '#039':'#039#000+
'03074_E_range check error in set constructor or duplicate set element'#000+
'03075_E_Pointer to object expected'#000+
- '03076_E_Expression must be constructor call'#000+
- '030','77_E_Expression must be destructor call'#000+
+ '03076_E_Expression must be constructor c','all'#000+
+ '03077_E_Expression must be destructor call'#000+
'03078_E_Illegal order of record elements'#000+
'03079_E_Expression type must be class or record type, got $1'#000+
'03080_E_Procedures cannot return a value'#000+
- '03081_E_constructors, destructors and class operators mus','t be method'+
+ '03081_E_constructors, destructors and class operat','ors must be method'+
's'#000+
'03082_E_Operator is not overloaded'#000+
'03083_E_Impossible to overload assignment for equal types'#000+
'03084_E_Impossible operator overload'#000+
'03085_E_Re-raise isn'#039't possible there'#000+
- '03086_E_The extended syntax of new or dispose isn'#039't allowed',' for '+
+ '03086_E_The extended syntax of new or dispose isn'#039't ','allowed for '+
'a class'#000+
'03088_E_Procedure overloading is switched off'#000+
'03089_E_It is not possible to overload this operator. Related overload'+
'able operators (if any) are: $1'#000+
'03090_E_Comparative operator must return a boolean value'#000+
- '03091_E_Only virtual m','ethods can be abstract'#000+
- '03092_F_Use of unsupported feature!'#000+
+ '03091_E_Only vi','rtual methods can be abstract'#000+
+ '03092_F_Use of unsupported feature: "$1".'#000+
'03093_E_The mix of different kind of objects (class, object, interface'+
', etc) isn'#039't allowed'#000+
'03094_W_Unknown procedure directive had to be ignored: "$1"'#000+
- '03095_E_$1 can be associated w','ith only one variable'#000+
+ '03095_E_$1 can be',' associated with only one variable'#000+
'03096_E_absolute can only be associated with a var or const'#000+
'03097_E_Only one variable can be initialized'#000+
'03098_E_Abstract methods shouldn'#039't have any definition (with funct'+
'ion body)'#000+
- '03099_E_This overloaded function cann','ot be local (must be exported)'#000+
+ '03099_E_This overloaded ','function cannot be local (must be exported)'#000+
'03100_W_Virtual methods are used without a constructor in "$1"'#000+
'03101_CL_Macro defined: $1'#000+
'03102_CL_Macro undefined: $1'#000+
'03103_CL_Macro $1 set to $2'#000+
'03104_I_Compiling $1'#000+
- '03105_UL_Parsing interface of unit $1'#000+
- '031','06_UL_Parsing implementation of $1'#000+
+ '03105_UL_Parsing interface o','f unit $1'#000+
+ '03106_UL_Parsing implementation of $1'#000+
'03107_DL_Compiling $1 for the second time'#000+
'03109_E_No property found to override'#000+
'03110_E_Only one default property is allowed'#000+
'03111_E_The default property must be an array property'#000+
- '03112_E_Virtual construct','ors are only supported in class object mode'+
+ '03112_E_Virt','ual constructors are only supported in class object mode'+
'l'#000+
'03113_E_No default property available'#000+
'03114_E_The class cannot have a published section, use the {$M+} switc'+
'h'#000+
'03115_E_Forward declaration of class "$1" must be resolved here to use'+
- ' the class as a','ncestor'#000+
+ ' t','he class as ancestor'#000+
'03116_E_Local operators not supported'#000+
'03117_E_Procedure directive "$1" not allowed in interface section'#000+
'03118_E_Procedure directive "$1" not allowed in implementation section'+
#000+
- '03119_E_Procedure directive "$1" not allowed in procvar d','eclaration'#000+
+ '03119_E_Procedure directive "$1" not allowed',' in procvar declaration'#000+
'03120_E_Function is already declared Public/Forward "$1"'#000+
- '03121_E_Can not use both EXPORT and EXTERNAL'#000+
+ '03121_E_Cannot use both EXPORT and EXTERNAL'#000+
'03123_H_"$1" not yet supported inside inline procedure/function'#000+
'03124_H_Inlining disabled'#000+
- '03125_I_Writing Browser log $1'#000+
- '03126_','H_may be pointer dereference is missing'#000+
+ '03125_I_Writing Browser l','og $1'#000+
+ '03126_H_may be pointer dereference is missing'#000+
'03127_F_Selected assembler reader not supported'#000+
'03128_E_Procedure directive "$1" has conflicts with other directives'#000+
'03129_E_Calling convention doesn'#039't match forward'#000+
- '03131_E_Property cannot have a def','ault value'#000+
+ '03131_E_Property canno','t have a default value'#000+
'03132_E_The default value of a property must be constant'#000+
'03133_E_Symbol cannot be published, can be only a class'#000+
'03134_E_This kind of property cannot be published'#000+
'03136_E_An import name is required'#000+
- '03138_E_Division by zero'#000+
- '03139_','E_Invalid floating point operation'#000+
+ '03138_E_Division by',' zero'#000+
+ '03139_E_Invalid floating point operation'#000+
'03140_E_Upper bound of range is less than lower bound'#000+
'03141_W_string "$1" is longer than "$2"'#000+
'03142_E_string length is larger than array of char length'#000+
- '03143_E_Illegal expression after message directive'#000+
- '03','144_E_Message handlers can take only one call by ref. parameter'#000+
+ '03143_E_Illegal expression after message ','directive'#000+
+ '03144_E_Message handlers can take only one call by ref. parameter'#000+
'03145_E_Duplicate message label: "$1"'#000+
'03146_E_Self can only be an explicit parameter in methods which are me'+
'ssage handlers'#000+
- '03147_E_Threadvars can be only static or global'#000+
- '03148','_F_Direct assembler not supported for binary output format'#000+
- '03149_W_Don'#039't load OBJPAS unit manually, use \{\$mode objfpc\} or '+
- '\{\$mode delphi\} instead'#000+
+ '03147_E_Threadvars can be only static or ','global'#000+
+ '03148_F_Direct assembler not supported for binary output format'#000+
+ '03149_W_Don'#039't load OBJPAS unit manually, use {$mode objfpc} or {$m'+
+ 'ode delphi} instead'#000+
'03150_E_OVERRIDE cannot be used in objects'#000+
- '03151_E_Data types which require initializatio','n/finalization cannot '+
+ '03151_E_Data types which require initial','ization/finalization cannot '+
'be used in variant records'#000+
'03152_E_Resourcestrings can be only static or global'#000+
'03153_E_Exit with argument cannot be used here'#000+
'03154_E_The type of the storage symbol must be boolean'#000+
- '03155_E_This symbol isn'#039't allowed as',' storage symbol'#000+
+ '03155_E_This symbol isn'#039't allo','wed as storage symbol'#000+
'03156_E_Only classes which are compiled in $M+ mode can be published'#000+
'03157_E_Procedure directive expected'#000+
'03158_E_The value for a property index must be of an ordinal type'#000+
- '03159_E_Procedure name too short to be exported'#000+
- '0316','0_E_No DEFFILE entry can be generated for unit global vars'#000+
+ '03159_E_Procedure name too short to be exporte','d'#000+
+ '03160_E_No DEFFILE entry can be generated for unit global vars'#000+
'03161_E_Compile without -WD option'#000+
'03162_F_You need ObjFpc (-S2) or Delphi (-Sd) mode to compile this mod'+
'ule'#000+
- '03163_E_Can not export with index under $1'#000+
- '03164_E_Exporting of variable','s is not supported under $1'#000+
+ '03163_E_Cannot export with index under $1'#000+
+ '03164_E_Exporting of var','iables is not supported under $1'#000+
'03165_E_Improper GUID syntax'#000+
'03168_W_Procedure named "$1" not found that is suitable for implementi'+
'ng the $2.$3'#000+
'03169_E_interface identifier expected'#000+
'03170_E_Type "$1" cannot be used as array index type'#000+
- '03171_E_C','on- and destructors are not allowed in interfaces'#000+
+ '0317','1_E_Con- and destructors are not allowed in interfaces'#000+
'03172_E_Access specifiers cannot be used in INTERFACEs and OBJCPROTOCO'+
'Ls'#000+
'03173_E_An interface, helper or Objective-C protocol or category canno'+
't contain fields'#000+
- '03174_E_Can not declare local ','procedure as EXTERNAL'#000+
+ '03174_E_Cannot declare lo','cal procedure as EXTERNAL'#000+
'03175_W_Some fields coming before "$1" were not initialized'#000+
'03176_E_Some fields coming before "$1" were not initialized'#000+
'03177_W_Some fields coming after "$1" were not initialized'#000+
- '03178_E_VarArgs directive (or '#039'...'#039' in ','MacPas) without CDecl'+
- '/CPPDecl/MWPascal and External'#000+
+ '03178_E_VarArgs directive (or '#039'...'#039,' in MacPas) without CDecl/'+
+ 'CPPDecl/MWPascal/StdCall and External'#000+
'03179_E_Self must be a normal (call-by-value) parameter'#000+
'03180_E_Interface "$1" has no interface identification'#000+
'03181_E_Unknown class field or method identifier "$1"'#000+
- '03182_W_Overriding call','ing convention "$1" with "$2"'#000+
+ '03182_W_Ove','rriding calling convention "$1" with "$2"'#000+
'03183_E_Typed constants of the type "procedure of object" can only be '+
'initialized with NIL'#000+
'03184_E_Default value can only be assigned to one parameter'#000+
'03185_E_Default parameter required for "$1"'#000+
- '03186_W_Use of ','unsupported feature!'#000+
+ '031','86_W_Use of unsupported feature!'#000+
'03187_H_C arrays are passed by reference'#000+
'03188_E_C array of const must be the last argument'#000+
'03189_H_Type "$1" redefinition'#000+
'03190_W_cdecl'#039'ared functions have no high parameter'#000+
- '03191_W_cdecl'#039'ared functions do not support ','open strings'#000+
+ '03191_W_cdecl'#039'ared functions do ','not support open strings'#000+
'03192_E_Cannot initialize variables declared as threadvar'#000+
'03193_E_Message directive is only allowed in Classes'#000+
'03194_E_Procedure or Function expected'#000+
'03195_W_Calling convention directive ignored: "$1"'#000+
- '03196_E_REINTRODUCE cannot',' be used in objects'#000+
+ '03196_E_REINTR','ODUCE cannot be used in objects'#000+
'03197_E_Each argument must have its own location'#000+
'03198_E_Each argument must have an explicit location'#000+
'03199_E_Unknown argument location'#000+
'03200_E_32 Bit-Integer or pointer variable expected'#000+
- '03201_E_Goto statements are not ','allowed between different procedures'+
+ '03201_E_Goto stateme','nts are not allowed between different procedures'+
#000+
'03202_F_Procedure too complex, it requires too many registers'#000+
'03203_E_Illegal expression'#000+
'03204_E_Invalid integer expression'#000+
'03205_E_Illegal qualifier'#000+
- '03206_E_High range limit < low range limit'#000+
- '03207_E_Ex','it'#039's parameter must be the name of the procedure it is'+
- ' used in or of a surrounding procedure'#000+
+ '03206_E_High range limit < low range limi','t'#000+
+ '03207_E_Exit'#039's parameter must be the name of the procedure it is u'+
+ 'sed in or of a surrounding procedure'#000+
'03208_E_Illegal assignment to for-loop variable "$1"'#000+
- '03209_E_Can not declare local variable as EXTERNAL'#000+
- '03210_E_Procedure is already declared EXTER','NAL'#000+
+ '03209_E_Cannot declare local variable as EXTERNAL'#000+
+ '03210_E_Procedure is already dec','lared EXTERNAL'#000+
'03211_W_Implicit uses of Variants unit'#000+
'03212_E_Class and static methods cannot be used in INTERFACES'#000+
'03213_E_Overflow in arithmetic operation'#000+
'03214_E_Protected or private expected'#000+
- '03215_E_SLICE cannot be used outside of parameter list'#000+
- '0','3216_E_A DISPINTERFACE cannot have a parent class'#000+
+ '03215_E_SLICE cannot be used outside of param','eter list'#000+
+ '03216_E_A DISPINTERFACE cannot have a parent class'#000+
'03217_E_A DISPINTERFACE needs a guid'#000+
'03218_W_Overridden methods must have a related return type. This code '+
'may crash, it depends on a Delphi parser bug ("$2" is overridden by "$'+
- '1" which has ','another return type)'#000+
+ '1"',' which has another return type)'#000+
'03219_E_Dispatch IDs must be ordinal constants'#000+
'03220_E_The range of the array is too large'#000+
'03221_E_The address cannot be taken of bit packed array elements and r'+
'ecord fields'#000+
- '03222_E_Dynamic arrays cannot be packed'#000+
- '03223','_E_Bit packed array elements and record fields cannot be used a'+
- 's loop variables'#000+
+ '03222_E_Dynamic arrays cannot be p','acked'#000+
+ '03223_E_Bit packed array elements and record fields cannot be used as '+
+ 'loop variables'#000+
'03224_E_VAR, TYPE and CONST are allowed only in records, objects and c'+
'lasses'#000+
'03225_E_This type cannot be a generic'#000+
- '03226_W_Don'#039't load LINEINFO unit manually, Us','e the -gl compiler '+
+ '03226_W_Don'#039't load LINEINFO unit m','anually, Use the -gl compiler '+
'switch instead'#000+
'03227_E_No function result type specified for function "$1"'#000+
'03228_E_Specialization is only supported for generic types'#000+
'03229_E_Generics cannot be used as parameters when specializing generi'+
'cs'#000+
- '03230_E_Consta','nts of objects containing a VMT are not allowed'#000+
+ '032','30_E_Constants of objects containing a VMT are not allowed'#000+
'03231_E_Taking the address of labels defined outside the current scope'+
' isn'#039't allowed'#000+
'03233_E_Cannot initialize variables declared as external'#000+
'03234_E_Illegal function result type'#000+
- '03235_E_No co','mmon type possible between "$1" and "$2"'#000+
+ '03','235_E_No common type possible between "$1" and "$2"'#000+
'03236_E_Generics without specialization cannot be used as a type for a'+
' variable'#000+
'03237_W_Register list is ignored for pure assembler routines'#000+
- '03238_E_Implements property must have class or interface t','ype'#000+
+ '03238_E_Implements property must have class or ','interface type'#000+
'03239_E_Implements-property must implement interface of correct type, '+
'found "$1" expected "$2"'#000+
'03240_E_Implements-property must have read specifier'#000+
'03241_E_Implements-property must not have write-specifier'#000+
- '03242_E_Implements-property mu','st not have stored-specifier'#000+
+ '03242_E_Implements-','property must not have stored-specifier'#000+
'03243_E_Implements-property used on unimplemented interface: "$1"'#000+
'03244_E_Floating point not supported for this target'#000+
'03245_E_Class "$1" does not implement interface "$2"'#000+
- '03246_E_Type used by implements must be',' an interface'#000+
+ '03246_E_Type used by impleme','nts must be an interface'#000+
'03247_E_Variables cannot be exported with a different name on this tar'+
'get, add the name to the declaration using the "export" directive (var'+
'iable name: $1, declared export name: $2)'#000+
- '03248_E_Weak external symbols are not suppor','ted for the current targ'+
+ '03248_E_Weak external symbols are',' not supported for the current targ'+
'et'#000+
'03249_E_Forward type definition does not match'#000+
'03250_N_Virtual method "$1" has a lower visibility ($2) than parent cl'+
'ass $3 ($4)'#000+
'03251_E_Fields cannot appear after a method or property definition, st'+
- 'art a new visi','bility section first'#000+
+ 'art',' a new visibility section first'#000+
'03252_E_Parameters or result types cannot contain local type definitio'+
'ns. Use a separate type definition in a type block.'#000+
'03253_E_ABSTRACT and SEALED conflict'#000+
- '03254_E_Cannot create a descendant of the sealed class "$1"'#000,
+ '03254_E_Cannot create a descendant of the sealed ','class "$1"'#000+
'03255_E_SEALED class cannot have an ABSTRACT method'#000+
'03256_E_Only virtual methods can be final'#000+
'03257_E_Final method cannot be overridden: "$1"'#000+
'03258_E_Only one message can be used per method.'#000+
- '03259_E_Invalid enumerator identifier: "$1"'#000+
- '03260','_E_Enumerator identifier required'#000+
+ '03259_E_Invalid enumerator identifier:',' "$1"'#000+
+ '03260_E_Enumerator identifier required'#000+
'03261_E_Enumerator MoveNext pattern method is not valid. Method must b'+
'e a function with the Boolean return type and no required arguments.'#000+
- '03262_E_Enumerator Current pattern property is not valid. Property ','m'+
+ '03262_E_Enumerator Current pattern property is not valid','. Property m'+
'ust have a getter.'#000+
'03263_E_Only one enumerator MoveNext method is allowed per class/objec'+
't'#000+
'03264_E_Only one enumerator Current property is allowed per class/obje'+
'ct'#000+
'03265_E_For in loop cannot be used for the type "$1"'#000+
- '03266_E_Objective-C me','ssages require their Objective-C selector name'+
+ '03266_E_Obj','ective-C messages require their Objective-C selector name'+
' to be specified using the "message" directive.'#000+
'03267_E_Objective-C does not have formal constructors nor destructors.'+
' Use the alloc, initXXX and dealloc messages.'#000+
- '03268_E_Message name is too lo','ng (max. 255 characters)'#000+
+ '03268_E_Message nam','e is too long (max. 255 characters)'#000+
'03269_E_Objective-C message symbol name for "$1" is too long'#000+
'03270_H_Defining a new Objective-C root class. To derive from another '+
'root class (e.g., NSObject), specify it as the parent class.'#000+
- '03271_E_Objective-C cla','sses cannot have published sections.'#000+
+ '03271_E_Obje','ctive-C classes cannot have published sections.'#000+
'03272_F_This module requires an Objective-C mode switch to be compiled'+
#000+
'03273_E_Inherited methods can only be overridden in Objective-C and Ja'+
- 'va, add "override" (inherited method defined in $1)'#000+
- '03274_H_In','herited methods can only be overridden in Objective-C and '+
- 'Java, add "override" (inherited method defined in $1).'#000+
+ 'va, add "override" (inherited method defined in $1)',#000+
+ '03274_H_Inherited methods can only be overridden in Objective-C and Ja'+
+ 'va, add "override" (inherited method defined in $1).'#000+
'03275_E_Message name "$1" in inherited class is different from message'+
' name "$2" in current class.'#000+
- '03276_E_It is not yet possib','le to make unique copies of Objective-C '+
+ '03276_E_It is not',' yet possible to make unique copies of Objective-C '+
'or Java types'#000+
'03277_E_Objective-C categories and Object Pascal class helpers cannot '+
'be used as types'#000+
'03278_E_Categories do not override, but replace methods. Use "reintrod'+
'uce" instead.'#000+
- '03279_E_Replace','d methods can only be reintroduced in Objective-C, ad'+
+ '0327','9_E_Replaced methods can only be reintroduced in Objective-C, ad'+
'd "reintroduce" (replaced method defined in $1).'#000+
'03280_H_Replaced methods can only be reintroduced in Objective-C, add '+
'"reintroduce" (replaced method defined in $1).'#000+
- '03281_E_Getter for im','plements interface must use the target'#039's de'+
+ '03281_E_Ge','tter for implements interface must use the target'#039's de'+
'fault calling convention.'#000+
'03282_E_Typed files cannot contain reference-counted types.'#000+
'03283_E_Operator is not overloaded: $2 "$1"'#000+
'03284_E_Operator is not overloaded: "$1" $2 "$3"'#000+
- '03285_E_Expected a','nother $1 array elements'#000+
+ '03285_E','_Expected another $1 array elements'#000+
'03286_E_String constant too long while ansistrings are disabled'#000+
'03287_E_Type cannot be used as univ parameter because its size is unkn'+
'own at compile time: "$1"'#000+
- '03288_E_Only one class constructor can be declared in c','lass: "$1"'#000+
+ '03288_E_Only one class constructor can be de','clared in class: "$1"'#000+
'03289_E_Only one class destructor can be declared in class: "$1"'#000+
'03290_E_Class constructors cannot have parameters'#000+
'03291_E_Class destructors cannot have parameters'#000+
- '03292_F_This construct requires the \{\$modeswitch objectivec1\} ','mod'+
+ '03292_F_This construct requires the \{\$modeswitch obj','ectivec1\} mod'+
'e switch to be active'#000+
'03293_E_Unicodechar/string constants cannot be converted to ansi/short'+
'string at compile-time'#000+
'03294_E_For-in Objective-Pascal loops require \{\$modeswitch Objective'+
'C2\} to be active'#000+
- '03295_E_The compiler cannot find t','he NSFastEnumerationProtocol or NS'+
+ '03295_E_The compiler ca','nnot find the NSFastEnumerationProtocol or NS'+
'FastEnumerationState type in the CocoaAll unit'#000+
'03296_E_Typed constants of the type '#039'procedure is nested'#039' can '+
'only be initialized with NIL and global procedures/functions'#000+
- '03297_F_Declaration of generic class',' inside another generic class is'+
+ '03297_F_Declaration of ge','neric class inside another generic class is'+
' not allowed'#000+
'03298_E_Forward declaration "$1" must be resolved before a class can c'+
'onform to or implement it'#000+
'03299_E_Record types cannot have published sections'#000+
- '03300_E_Destructors are not allowed in records ','or helpers'#000+
+ '03300_E_Destructors are not allowed ','in records or helpers'#000+
'03301_E_Class methods must be static in records'#000+
'03302_E_Parameterless constructors are not allowed in records or recor'+
'd/type helpers'#000+
'03303_E_Either the result or at least one parameter must be of type "$'+
'1"'#000+
- '03304_E_Type parameters',' may require initialization/finalization - ca'+
+ '03304_E_Type',' parameters may require initialization/finalization - ca'+
'nnot be used in variant records'#000+
'03305_E_Variables being declared as external cannot be in a custom sec'+
'tion'#000+
'03306_E_Non-static and non-global variables cannot have a section dire'+
'ctive'#000+
- '03307_E_"$1"',' is not allowed in helper types'#000+
+ '0','3307_E_"$1" is not allowed in helper types'#000+
'03308_E_Class constructors are not allowed in helpers'#000+
'03309_E_The use of "inherited" is not allowed in a record'#000+
'03310_E_Type declarations are not allowed in local or anonymous record'+
's'#000+
- '03311_E_Duplicate implem','ents clause for interface "$1"'#000+
+ '03311_E_Dupli','cate implements clause for interface "$1"'#000+
'03312_E_Interface "$1" cannot be delegated by "$2", it already has met'+
'hod resolutions'#000+
'03313_E_Interface "$1" cannot have method resolutions, "$2" already de'+
'legates it'#000+
'03314_E_Invalid codepage'#000+
- '03315_E_Only fiel','ds (var-sections) and constants can be final in obj'+
+ '03315_','E_Only fields (var-sections) and constants can be final in obj'+
'ect types'#000+
'03316_E_Final fields are currently only supported for external classes'+
#000+
'03317_E_Typed constants are not allowed here, only formal constants ar'+
'e'#000+
- '03318_E_Constructors are not automat','ically inherited in the JVM; exp'+
+ '03318_E_Constructors are ','not automatically inherited in the JVM; exp'+
'licitly add a constructor that calls the inherited one if you need it'#000+
'03319_D_Parsing internally generated code: $1'#000+
'03320_E_This language feature is not supported on managed VM targets'#000+
- '03321_E_Calling a virtu','al constructor for the current instance insid'+
+ '03321_E_Call','ing a virtual constructor for the current instance insid'+
'e another constructor is not possible on the JVM target'#000+
'03322_E_Overriding method "$1" cannot have a lower visibility ($2) tha'+
'n in parent class $3 ($4)'#000+
- '03323_E_Procedure/Function declared with ca','ll option NOSTACKFRAME bu'+
+ '03323_E_Procedure/Function decla','red with call option NOSTACKFRAME bu'+
't without ASSEMBLER'#000+
'03324_E_Procedure/Function declared with call option NOSTACKFRAME but '+
'local stack size is $1'#000+
'03325_E_Cannot generate property getter/setter $1 because its name cla'+
- 'shes with existing identifier $2',#000+
+ 'shes with existing id','entifier $2'#000+
'03326_W_Automatically generated property getter/setter $1 overrides th'+
'e same-named getter/setter in class $2'#000+
'03327_W_Case mismatch between declared property getter/setter $1 and a'+
- 'utomatically constructed name $2, not changing declared name',#000+
+ 'utomatically constructed name $2, not changing de','clared name'#000+
'03328_E_Constants declarations are not allowed in local or anonymous r'+
'ecords'#000+
'03329_E_Method declarations are not allowed in local or anonymous reco'+
'rds'#000+
'03330_E_Property declarations are not allowed in local or anonymous re'+
'cords'#000+
- '03331_E_Clas','s memeber declarations are not allowed in local or anony'+
+ '0','3331_E_Class memeber declarations are not allowed in local or anony'+
'mous records'#000+
'03332_E_Visibility section "$1" not allowed in records'#000+
'03333_E_Directive "$1" not allowed here'#000+
'03334_E_Assembler blocks not allowed inside generics'#000+
- '03335_E_Properties can ','be only static, global or inside structured t'+
+ '03335_E_Prop','erties can be only static, global or inside structured t'+
'ypes'#000+
'03336_E_Overloaded routines have the same mangled name'#000+
'03337_E_Default values can only be specified for value, const and cons'+
'tref parameters'#000+
'03338_W_Pointer type "$1" ignored'#000+
- '04000_E_Type mi','smatch'#000+
+ '0333','9_E_Global Generic template references static symtable'#000+
+ '04000_E_Type mismatch'#000+
'04001_E_Incompatible types: got "$1" expected "$2"'#000+
'04002_E_Type mismatch between "$1" and "$2"'#000+
'04003_E_Type identifier expected'#000+
- '04004_E_Variable identifier expected'#000+
+ '04004_E_Variable identifier expecte','d'#000+
'04005_E_Integer expression expected, but got "$1"'#000+
- '04006_E_Boolean ex','pression expected, but got "$1"'#000+
+ '04006_E_Boolean expression expected, but got "$1"'#000+
'04007_E_Ordinal expression expected'#000+
'04008_E_pointer type expected, but got "$1"'#000+
'04009_E_class type expected, but got "$1"'#000+
- '04011_E_Can'#039't evaluate constant expression'#000+
+ '04011_E_Can'#039't ev','aluate constant expression'#000+
'04012_E_Set elements are not compatible'#000+
- '040','13_E_Operation not implemented for sets'#000+
+ '04013_E_Operation not implemented for sets'#000+
'04014_W_Automatic type conversion from floating type to COMP which is '+
'an integer type'#000+
- '04015_H_use DIV instead to get an integer result'#000+
+ '04015_H_use DIV instead to get an integer re','sult'#000+
'04016_E_String types have to match exactly in $V+ mode'#000+
- '04017_E_su','cc or pred on enums with assignments not possible'#000+
+ '04017_E_succ or pred on enums with assignments not possible'#000+
'04018_E_Can'#039't read or write variables of this type'#000+
'04019_E_Can'#039't use readln or writeln on typed file'#000+
- '04020_E_Can'#039't use read or write on untyped file.'#000+
- '04021_E_Type conflict between set elemen','ts'#000+
+ '04020_E_Can'#039't use r','ead or write on untyped file.'#000+
+ '04021_E_Type conflict between set elements'#000+
'04022_W_lo/hi(dword/qword) returns the upper/lower word/dword'#000+
'04023_E_Integer or real expression expected'#000+
'04024_E_Wrong type "$1" in array constructor'#000+
- '04025_E_Incompatible type for arg no. $1: Got "$2", expected "$3"'#000+
- '04026_E_Method (vari','able) and Procedure (variable) are not compatibl'+
- 'e'#000+
+ '04025_E_Incompat','ible type for arg no. $1: Got "$2", expected "$3"'#000+
+ '04026_E_Method (variable) and Procedure (variable) are not compatible'#000+
'04027_E_Illegal constant passed to internal math function'#000+
'04028_E_Can'#039't take the address of constant expressions'#000+
- '04029_E_Argument cannot be assigned to'#000+
- '04030_E_Can'#039't assign local procedure/f','unction to procedure varia'+
- 'ble'#000+
+ '04029_E','_Argument cannot be assigned to'#000+
+ '04030_E_Can'#039't assign local procedure/function to procedure variabl'+
+ 'e'#000+
'04031_E_Can'#039't assign values to an address'#000+
'04032_E_Can'#039't assign values to const variable'#000+
'04033_E_Array type required'#000+
- '04034_E_interface type expected, but got "$1"'#000+
- '04035_H_Mixing signed expressions and longwords ','gives a 64bit result'+
- #000+
+ '04034_E_interface type e','xpected, but got "$1"'#000+
+ '04035_H_Mixing signed expressions and longwords gives a 64bit result'#000+
'04036_W_Mixing signed expressions and cardinals here may cause a range'+
' check error'#000+
'04037_E_Typecast has different size ($1 -> $2) in assignment'#000+
- '04038_E_enums with assignments cannot be used as array index'#000+
- '04039_E_Class ','or Object types "$1" and "$2" are not related'#000+
+ '04038','_E_enums with assignments cannot be used as array index'#000+
+ '04039_E_Class or Object types "$1" and "$2" are not related'#000+
'04040_W_Class types "$1" and "$2" are not related'#000+
'04041_E_Class or interface type expected, but got "$1"'#000+
- '04042_E_Type "$1" is not completely defined'#000+
- '04043_W_String literal has more characters th','an short string length'#000+
+ '04042_E_Type "$1" i','s not completely defined'#000+
+ '04043_W_String literal has more characters than short string length'#000+
'04044_W_Comparison might be always false due to range of constant and '+
'expression'#000+
- '04045_W_Comparison might be always true due to range of constant and e'+
- 'xpression'#000+
- '04046_W_Constructing a class "$1" with abstract method "','$2"'#000+
+ '04045_W_Comparison might be always true due to range of constant a','nd'+
+ ' expression'#000+
+ '04046_W_Constructing a class "$1" with abstract method "$2"'#000+
'04047_H_The left operand of the IN operator should be byte sized'#000+
'04048_W_Type size mismatch, possible loss of data / range check error'#000+
- '04049_H_Type size mismatch, possible loss of data / range check error'#000+
- '04050_E_The address of an abstr','act method cannot be taken'#000+
+ '04049_H_Type size mismatch, pos','sible loss of data / range check erro'+
+ 'r'#000+
+ '04050_E_The address of an abstract method cannot be taken'#000+
'04051_E_Assignments to formal parameters and open arrays are not possi'+
'ble'#000+
'04052_E_Constant Expression expected'#000+
- '04053_E_Operation "$1" not supported for types "$2" and "$3"'#000+
- '04054_E_Illegal type conversion: "$1" to ','"$2"'#000+
+ '04053_E_Operation "$1" not suppo','rted for types "$2" and "$3"'#000+
+ '04054_E_Illegal type conversion: "$1" to "$2"'#000+
'04055_H_Conversion between ordinals and pointers is not portable'#000+
'04056_W_Conversion between ordinals and pointers is not portable'#000+
- '04057_E_Can'#039't determine which overloaded function to call'#000+
+ '04057_E_Can'#039't determine which overl','oaded function to call'#000+
'04058_E_Illegal counter variable'#000+
- '04059_W_Conver','ting constant real value to double for C variable argu'+
- 'ment, add explicit typecast to prevent this.'#000+
+ '04059_W_Converting constant real value to double for C variable argume'+
+ 'nt, add explicit typecast to prevent this.'#000+
'04060_E_Class or COM interface type expected, but got "$1"'#000+
- '04061_E_Constant packed arrays are not yet supported'#000+
- '04062_E_Incompatible type for',' arg no. $1: Got "$2" expected "(Bit)Pa'+
- 'cked Array"'#000+
+ '04061_E_Cons','tant packed arrays are not yet supported'#000+
+ '04062_E_Incompatible type for arg no. $1: Got "$2" expected "(Bit)Pack'+
+ 'ed Array"'#000+
'04063_E_Incompatible type for arg no. $1: Got "$2" expected "(not pack'+
'ed) Array"'#000+
- '04064_E_Elements of packed arrays cannot be of a type which need to be'+
- ' initialised'#000+
- '04065_E_Constant packed r','ecords and objects are not yet supported'#000+
+ '04064_E_Elements of packed arrays cann','ot be of a type which need to '+
+ 'be initialised'#000+
+ '04065_E_Constant packed records and objects are not yet supported'#000+
'04066_W_Arithmetic "$1" on untyped pointer is unportable to {$T+}, sug'+
'gest typecast'#000+
- '04076_E_Can'#039't take address of a subroutine marked as local'#000+
- '04077_E_Can'#039't export subroutine marked as local from a u','nit'#000+
+ '04076_E_Can'#039't take address of a subroutine ma','rked as local'#000+
+ '04077_E_Can'#039't export subroutine marked as local from a unit'#000+
'04078_E_Type is not automatable: "$1"'#000+
'04079_H_Converting the operands to "$1" before doing the add could pre'+
'vent overflow errors.'#000+
- '04080_H_Converting the operands to "$1" before doing the subtract coul'+
- 'd prevent overflow errors.'#000+
- '04081_H_C','onverting the operands to "$1" before doing the multiply co'+
+ '04080_H_Converting the operands to "','$1" before doing the subtract co'+
'uld prevent overflow errors.'#000+
+ '04081_H_Converting the operands to "$1" before doing the multiply coul'+
+ 'd prevent overflow errors.'#000+
'04082_W_Converting pointers to signed integers may result in wrong com'+
- 'parison results and range errors, use an unsigned type instead.'#000+
- '04083_E_Interface ','type $1 has no valid GUID'#000+
+ 'parison resu','lts and range errors, use an unsigned type instead.'#000+
+ '04083_E_Interface type $1 has no valid GUID'#000+
'04084_E_Invalid selector name "$1"'#000+
'04085_E_Expected Objective-C method, but got $1'#000+
'04086_E_Expected Objective-C method or constant method name'#000+
- '04087_E_No type info available for this type'#000+
- '04088_E_Ordinal or string ','expression expected'#000+
+ '0','4087_E_No type info available for this type'#000+
+ '04088_E_Ordinal or string expression expected'#000+
'04089_E_String expression expected'#000+
'04090_W_Converting 0 to NIL'#000+
'04091_E_Objective-C protocol type expected, but got "$1"'#000+
- '04092_E_The type "$1" is not supported for interaction with the Object'+
- 'ive-C and the blocks runtime.'#000,
+ '04092_E_The type "$1" is not s','upported for interaction with the Obje'+
+ 'ctive-C and the blocks runtime.'#000+
'04093_E_Class or objcclass type expected, but got "$1"'#000+
'04094_E_Objcclass type expected'#000+
'04095_W_Coerced univ parameter type in procedural variable may cause c'+
- 'rash or memory corruption: $1 to $2'#000+
- '04096_E_Type parameters of specializations of g','enerics cannot refere'+
- 'nce the currently specialized type'#000+
+ 'rash or memor','y corruption: $1 to $2'#000+
+ '04096_E_Type parameters of specializations of generics cannot referenc'+
+ 'e the currently specialized type'#000+
'04097_E_Type parameters are not allowed on non-generic class/record/ob'+
'ject procedure or function'#000+
- '04098_E_Generic declaration of "$1" differs from previous declaration'#000+
- '04099_E_Helper ty','pe expected'#000+
+ '04098_E_Generic d','eclaration of "$1" differs from previous declaratio'+
+ 'n'#000+
+ '04099_E_Helper type expected'#000+
'04100_E_Record type expected'#000+
'04101_E_Derived class helper must extend a subclass of "$1" or the cla'+
'ss itself'#000+
- '04102_E_Derived record or type helper must extend "$1"'#000+
+ '04102_E_Derived record or type helper must extend',' "$1"'#000+
'04103_E_Invalid assignment, procedures return no value'#000+
- '04104_W_I','mplicit string type conversion from "$1" to "$2"'#000+
+ '04104_W_Implicit string type conversion from "$1" to "$2"'#000+
'04105_W_Implicit string type conversion with potential data loss from '+
'"$1" to "$2"'#000+
- '04106_-W_Explicit string typecast from "$1" to "$2"'#000+
- '04107_-W_Explicit string typecast with potential data lo','ss from "$1"'+
- ' to "$2"'#000+
+ '04106_-W_Explicit string typecast from',' "$1" to "$2"'#000+
+ '04107_-W_Explicit string typecast with potential data loss from "$1" t'+
+ 'o "$2"'#000+
'04108_W_Unicode constant cast with potential data loss'#000+
'04109_E_range check error while evaluating constants ($1 must be betwe'+
'en $2 and $3)'#000+
- '04110_W_range check error while evaluating constants ($1 must be betwe'+
- 'en $2 and ','$3)'#000+
+ '04110_W_ra','nge check error while evaluating constants ($1 must be bet'+
+ 'ween $2 and $3)'#000+
'04111_E_This type is not supported for the Default() intrinsic'#000+
'04112_E_JVM virtual class methods cannot be static'#000+
- '04113_E_Final (class) fields can only be assigned in their class'#039' '+
- '(class) constructor'#000+
- '04114_E_It is not possible to typeca','st untyped parameters on managed'+
- ' platforms, simply assign a value to them instead.'#000+
+ '04113_E_Final (class) fields can only be assigned in',' their class'#039+
+ ' (class) constructor'#000+
+ '04114_E_It is not possible to typecast untyped parameters on managed p'+
+ 'latforms, simply assign a value to them instead.'#000+
'04115_E_The assignment side of an expression cannot be typecasted to a'+
- ' supertype on managed platforms'#000+
- '04116_-W_The interface method "$1" raises the visibilit','y of "$2" to '+
- 'public when accessed via an interface instance'#000+
+ ' supertype on man','aged platforms'#000+
+ '04116_-W_The interface method "$1" raises the visibility of "$2" to pu'+
+ 'blic when accessed via an interface instance'#000+
'04117_E_The interface method "$1" has a higher visibility (public) tha'+
'n "$2"'#000+
- '04118_E_TYPEOF can only be used on object types with VMT'#000+
- '04119_E_It is not possible to define a default',' value for a parameter'+
- ' of type "$1"'#000+
+ '04118_E_TYPEOF can only be used o','n object types with VMT'#000+
+ '04119_E_It is not possible to define a default value for a parameter o'+
+ 'f type "$1"'#000+
'04120_E_Type "$1" cannot be extended by a type helper'#000+
'04121_E_Procedure or function must be far in order to allow taking its'+
- ' address: "$1"'#000+
+ ' address: ','"$1"'#000+
'04122_W_Creating an instance of abstract class "$1"'#000+
- '04123_E_Subro','utine references cannot be declared as "of object" or "'+
- 'is nested", they can always refer to any kind of subroutine'#000+
- '04999_E_Function references are not yet supported, only blocks (add "c'+
- 'decl;" at the end)'#000+
+ '04123_E_Subroutine references cannot be declared as "of object" or "is'+
+ ' nested", they can always refer to any kind of subroutine'#000+
+ '04999_E_Function references are not yet supported, only',' blocks (add '+
+ '"cdecl;" at the end)'#000+
'05000_E_Identifier not found "$1"'#000+
- '05','001_F_Internal Error in SymTableStack()'#000+
+ '05001_F_Internal Error in SymTableStack()'#000+
'05002_E_Duplicate identifier "$1"'#000+
'05003_H_Identifier already defined in $1 at line $2'#000+
'05004_E_Unknown identifier "$1"'#000+
- '05005_E_Forward declaration not solved "$1"'#000+
+ '05005_E_Forw','ard declaration not solved "$1"'#000+
'05007_E_Error in type definition'#000+
- '05009','_E_Forward type not resolved "$1"'#000+
+ '05009_E_Forward type not resolved "$1"'#000+
'05010_E_Only static variables can be used in static methods or outside'+
' methods'#000+
'05012_E_Record or object or class type expected'#000+
- '05013_E_Instances of classes or objects with an abstract method are no'+
- 't allowed',#000+
+ '05013_E_I','nstances of classes or objects with an abstract method are '+
+ 'not allowed'#000+
'05014_W_Label not defined "$1"'#000+
'05015_E_Label used but not defined "$1"'#000+
'05016_E_Illegal label declaration'#000+
'05017_E_GOTO and LABEL are not supported (use switch -Sg)'#000+
- '05018_E_Label not found'#000+
+ '05018_','E_Label not found'#000+
'05019_E_identifier isn'#039't a label'#000+
- '05020_E_label alrea','dy defined'#000+
+ '05020_E_label already defined'#000+
'05021_E_illegal type declaration of set elements'#000+
'05022_E_Forward class definition not resolved "$1"'#000+
'05023_H_Unit "$1" not used in $2'#000+
- '05024_H_Parameter "$1" not used'#000+
+ '05024_H_Parameter "$1" not',' used'#000+
'05025_N_Local variable "$1" not used'#000+
- '05026_H_Value parameter "$1','" is assigned but never used'#000+
+ '05026_H_Value parameter "$1" is assigned but never used'#000+
'05027_N_Local variable "$1" is assigned but never used'#000+
'05028_H_Local $1 "$2" is not used'#000+
'05029_N_Private field "$1.$2" is never used'#000+
- '05030_N_Private field "$1.$2" is assigned but never used'#000+
- '05031_N_Private metho','d "$1.$2" never used'#000+
+ '05030_N_','Private field "$1.$2" is assigned but never used'#000+
+ '05031_N_Private method "$1.$2" never used'#000+
'05032_E_Set type expected'#000+
'05033_W_Function result does not seem to be set'#000+
'05034_W_Type "$1" is not aligned correctly in current record for C'#000+
- '05035_E_Unknown record field identifier "$1"'#000+
- '05036_W_Local variable "$1" does ','not seem to be initialized'#000+
+ '05035_E_','Unknown record field identifier "$1"'#000+
+ '05036_W_Local variable "$1" does not seem to be initialized'#000+
'05037_W_Variable "$1" does not seem to be initialized'#000+
'05038_E_identifier idents no member "$1"'#000+
'05039_H_Found declaration: $1'#000+
- '05040_E_Data element too large'#000+
- '05042_E_No matching implementation for interface method "','$1" found'#000+
+ '05040_E_Data eleme','nt too large'#000+
+ '05042_E_No matching implementation for interface method "$1" found'#000+
'05043_W_Symbol "$1" is deprecated'#000+
'05044_W_Symbol "$1" is not portable'#000+
'05055_W_Symbol "$1" is not implemented'#000+
'05056_E_Can'#039't create unique type from this type'#000+
- '05057_H_Local variable "$1" does not seem to be initialized'#000+
- '05058_H_Varia','ble "$1" does not seem to be initialized'#000+
+ '050','57_H_Local variable "$1" does not seem to be initialized'#000+
+ '05058_H_Variable "$1" does not seem to be initialized'#000+
'05059_W_Function result variable does not seem to initialized'#000+
'05060_H_Function result variable does not seem to be initialized'#000+
- '05061_W_Variable "$1" read but nowhere assigned'#000+
- '05062_H_Found abstract m','ethod: $1'#000+
+ '05','061_W_Variable "$1" read but nowhere assigned'#000+
+ '05062_H_Found abstract method: $1'#000+
'05063_W_Symbol "$1" is experimental'#000+
'05064_W_Forward declaration "$1" not resolved, assumed external'#000+
'05065_W_Symbol "$1" is belongs to a library'#000+
- '05066_W_Symbol "$1" is deprecated: "$2"'#000+
- '05067_E_Cannot find an enumerator for the type',' "$1"'#000+
+ '05066_W_Symbol "','$1" is deprecated: "$2"'#000+
+ '05067_E_Cannot find an enumerator for the type "$1"'#000+
'05068_E_Cannot find a "MoveNext" method in enumerator "$1"'#000+
'05069_E_Cannot find a "Current" property in enumerator "$1"'#000+
- '05070_E_Mismatch between number of declared parameters and number of c'+
- 'olons in message string.'#000+
- '05071_N_Private type',' "$1.$2" never used'#000+
+ '05070_E_Mismatch between number of declared p','arameters and number of'+
+ ' colons in message string.'#000+
+ '05071_N_Private type "$1.$2" never used'#000+
'05072_N_Private const "$1.$2" never used'#000+
'05073_N_Private property "$1.$2" never used'#000+
'05074_W_Unit "$1" is deprecated'#000+
- '05075_W_Unit "$1" is deprecated: "$2"'#000+
+ '05075_W_Unit "$1" is deprecated: ','"$2"'#000+
'05076_W_Unit "$1" is not portable'#000+
- '05077_W_Unit "$1" is belongs to',' a library'#000+
+ '05077_W_Unit "$1" is belongs to a library'#000+
'05078_W_Unit "$1" is not implemented'#000+
'05079_W_Unit "$1" is experimental'#000+
'05080_E_No complete definition of the formally declared class "$1" is '+
'in scope'#000+
- '05081_E_Gotos into initialization or finalization blocks of units are '+
- 'not allow','ed'#000+
+ '05081_E_G','otos into initialization or finalization blocks of units ar'+
+ 'e not allowed'#000+
'05082_E_Invalid external name "$1" for formal class "$2"'#000+
'05083_E_Complete class definition with external name "$1" here'#000+
- '05084_W_Possible library conflict: symbol "$1" from library "$2" also '+
- 'found in library "$3"'#000+
- '05085_E_Cannot add implic','it constructor '#039'Create'#039' because ide'+
- 'ntifier already used by "$1"'#000+
+ '05084_W_Possible library conflict: symbol "$1" ','from library "$2" als'+
+ 'o found in library "$3"'#000+
+ '05085_E_Cannot add implicit constructor '#039'Create'#039' because ident'+
+ 'ifier already used by "$1"'#000+
'05086_E_Cannot generate default constructor for class, because parent '+
'has no parameterless constructor'#000+
- '05087_D_Adding helper for $1'#000+
+ '050','87_D_Adding helper for $1'#000+
'05088_E_Found declaration: $1'#000+
- '06009_E_Parame','ter list size exceeds 65535 bytes'#000+
+ '05089_W_Local variable "$1" of a managed type does not seem to be init'+
+ 'ialized'#000+
+ '05090_W_Variable "$1" of a managed type does not seem to be initialize'+
+ 'd'#000+
+ '05091_H_Local variable "$1" of a m','anaged type does not seem to be in'+
+ 'itialized'#000+
+ '05092_H_Variable "$1" of a managed type does not seem to be initialize'+
+ 'd'#000+
+ '05093_W_function result variable of a managed type does not seem to in'+
+ 'itialized'#000+
+ '05094_H_Function result variable of a manage','d type does not seem to '+
+ 'be initialized'#000+
+ '05095_W_Duplicate identifier "$1"'#000+
+ '06009_E_Parameter list size exceeds 65535 bytes'#000+
'06012_E_File types must be var parameters'#000+
'06013_E_The use of a far pointer isn'#039't allowed there'#000+
- '06015_E_EXPORT declared functions cannot be called'#000+
+ '06015_E_EXPORT declared ','functions cannot be called'#000+
'06016_W_Possible illegal call of constructor or destructor'#000+
- '0','6017_N_Inefficient code'#000+
+ '06017_N_Inefficient code'#000+
'06018_W_unreachable code'#000+
'06020_E_Abstract methods cannot be called directly'#000+
'06027_DL_Register $1 weight $2 $3'#000+
- '06029_DL_Stack frame is omitted'#000+
+ '06029_DL_Stack fram','e is omitted'#000+
'06031_E_Object or class methods cannot be inline.'#000+
- '06032_E_Procvar calls ca','nnot be inline.'#000+
+ '06032_E_Procvar calls cannot be inline.'#000+
'06033_E_No code for inline procedure stored'#000+
'06035_E_Element zero of an ansi/wide- or longstring cannot be accessed'+
- ', use (set)length instead'#000+
+ ', use (set)length inste','ad'#000+
'06037_E_Constructors or destructors cannot be called inside a '#039'wit'+
'h'#039' clause'#000+
- '06038_E_','Cannot call message handler methods directly'#000+
+ '06038_E_Cannot call message handler methods directly'#000+
'06039_E_Jump in or outside of an exception block'#000+
- '06040_E_Control flow statements are not allowed in a finally block'#000+
+ '06040_E_Control flow statements are not allowed in a finall','y block'#000+
'06041_W_Parameters size exceeds limit for certain cpu'#039's'#000+
- '06042_W_Local variable ','size exceed limit for certain cpu'#039's'#000+
+ '06042_W_Local variable size exceed limit for certain cpu'#039's'#000+
'06043_E_Local variables size exceeds supported limit'#000+
'06044_E_BREAK not allowed'#000+
'06045_E_CONTINUE not allowed'#000+
- '06046_F_Unknown compilerproc "$1". Check if you use the correct run ti'+
- 'me library.'#000+
- '06047_F_Cannot',' find system type "$1". Check if you use the correct r'+
- 'un time library.'#000+
+ '06046_F_U','nknown compilerproc "$1". Check if you use the correct run '+
+ 'time library.'#000+
+ '06047_F_Cannot find system type "$1". Check if you use the correct run'+
+ ' time library.'#000+
'06048_H_Inherited call to abstract method ignored'#000+
- '06049_E_Goto label "$1" not defined or optimized away'#000+
- '06050_F_Cannot find type "$1" in unit "$2". Check if you use the ','cor'+
- 'rect run time library.'#000+
+ '06049_E_Goto label "$1" not defi','ned or optimized away'#000+
+ '06050_F_Cannot find type "$1" in unit "$2". Check if you use the corre'+
+ 'ct run time library.'#000+
'06051_E_Interprocedural gotos are allowed only to outer subroutines'#000+
- '06052_E_Label must be defined in the same scope as it is declared'#000+
+ '06052_E_Label must be defined in the same scope as it is de','clared'#000+
'06053_E_Leaving procedures containing explicit or implicit exceptions '+
- 'frames usi','ng goto is not allowed'#000+
+ 'frames using goto is not allowed'#000+
'06054_E_In ISO mode, the mod operator is defined only for positive quo'+
'tient'#000+
'06055_DL_Auto inlining: $1'#000+
- '06056_E_The function used, is not supported by the selected instructio'+
- 'n set: $1'#000+
- '07000_DL_Starting $1 styled assemb','ler parsing'#000+
+ '06056_E_The function used, ','is not supported by the selected instruct'+
+ 'ion set: $1'#000+
+ '07000_DL_Starting $1 styled assembler parsing'#000+
'07001_DL_Finished $1 styled assembler parsing'#000+
'07002_E_Non-label pattern contains @'#000+
'07004_E_Error building record offset'#000+
- '07005_E_OFFSET used without identifier'#000+
+ '07005_E_OFFSET used w','ithout identifier'#000+
'07006_E_TYPE used without identifier'#000+
- '07007_E_Cannot use local variabl','e or parameters here'#000+
+ '07007_E_Cannot use local variable or parameters here'#000+
'07008_E_need to use OFFSET here'#000+
'07009_E_need to use $ here'#000+
'07010_E_Cannot use multiple relocatable symbols'#000+
- '07011_E_Relocatable symbol can only be added'#000+
+ '07011_E_Relocatable symbo','l can only be added'#000+
'07012_E_Invalid constant expression'#000+
- '07013_E_Relocatable symbol is n','ot allowed'#000+
+ '07013_E_Relocatable symbol is not allowed'#000+
'07014_E_Invalid reference syntax'#000+
'07015_E_You cannot reach $1 from that code'#000+
'07016_E_Local symbols/labels are not allowed as references'#000+
- '07017_E_Invalid base and index register usage'#000+
- '07018_W_Possible error in object field handling'#000,
+ '07017_E','_Invalid base and index register usage'#000+
+ '07018_W_Possible error in object field handling'#000+
'07019_E_Wrong scale factor specified'#000+
'07020_E_Multiple index register usage'#000+
'07021_E_Invalid operand type'#000+
'07022_E_Invalid string as opcode operand: $1'#000+
- '07023_W_@CODE and @DATA not supported'#000+
+ '0702','3_W_@CODE and @DATA not supported'#000+
'07024_E_Null label references are not allowed'#000+
- '07025_E','_Divide by zero in asm evaluator'#000+
+ '07025_E_Divide by zero in asm evaluator'#000+
'07026_E_Illegal expression'#000+
'07027_E_escape sequence ignored: $1'#000+
'07028_E_Invalid symbol reference'#000+
- '07029_W_Fwait can cause emulation problems with emu387'#000+
+ '07029_W_Fwait can cause ','emulation problems with emu387'#000+
'07030_W_$1 without operand translated into $1P'#000+
- '07031_W_E','NTER instruction is not supported by Linux kernel'#000+
+ '07031_W_ENTER instruction is not supported by Linux kernel'#000+
'07032_W_Calling an overload function in assembler'#000+
'07033_E_Unsupported symbol type for operand'#000+
- '07034_E_Constant value out of bounds'#000+
+ '07034_E_C','onstant value out of bounds'#000+
'07035_E_Error converting decimal $1'#000+
- '07036_E_Error convertin','g octal $1'#000+
+ '07036_E_Error converting octal $1'#000+
'07037_E_Error converting binary $1'#000+
'07038_E_Error converting hexadecimal $1'#000+
'07039_H_$1 translated to $2'#000+
- '07040_W_$1 is associated to an overloaded function'#000+
+ '07040_W_$1 is associated to an overload','ed function'#000+
'07041_E_Cannot use SELF outside a method'#000+
- '07042_E_Cannot use OLDEBP outside ','a nested procedure'#000+
+ '07042_E_Cannot use OLDEBP outside a nested procedure'#000+
'07043_W_Procedures cannot return any value in asm code'#000+
'07044_E_SEG not supported'#000+
- '07045_E_Size suffix and destination or source size do not match'#000+
+ '07045_E_Size suffix and destination or source size do',' not match'#000+
'07046_W_Size suffix and destination or source size do not match'#000+
- '07047_E_Asse','mbler syntax error'#000+
+ '07047_E_Assembler syntax error'#000+
'07048_E_Invalid combination of opcode and operands'#000+
'07049_E_Assembler syntax error in operand'#000+
- '07050_E_Assembler syntax error in constant'#000+
+ '07050_E_Assembler syntax error in constan','t'#000+
'07051_E_Invalid String expression'#000+
- '07052_W_constant with symbol $1 for address which i','s not on a pointe'+
- 'r'#000+
+ '07052_W_constant with symbol $1 for address which is not on a pointer'#000+
'07053_E_Unrecognized opcode $1'#000+
'07054_E_Invalid or missing opcode'#000+
'07055_E_Invalid combination of prefix and opcode: $1'#000+
- '07056_E_Invalid combination of override and opcode: $1'#000+
+ '07056_E_Invalid ','combination of override and opcode: $1'#000+
'07057_E_Too many operands on line'#000+
- '07058_W_NEAR i','gnored'#000+
+ '07058_W_NEAR ignored'#000+
'07059_W_FAR ignored'#000+
'07060_E_Duplicate local symbol $1'#000+
'07061_E_Undefined local symbol $1'#000+
'07062_E_Unknown label identifier $1'#000+
- '07063_E_Invalid register name'#000+
+ '07063_E_Invalid regist','er name'#000+
'07064_E_Invalid floating point register name'#000+
'07066_W_Modulo not supported'#000+
- '07067','_E_Invalid floating point constant $1'#000+
+ '07067_E_Invalid floating point constant $1'#000+
'07068_E_Invalid floating point expression'#000+
'07069_E_Wrong symbol type'#000+
- '07070_E_Cannot index a local var or parameter with a register'#000+
+ '07070_E_Cannot index a local var or parameter w','ith a register'#000+
'07071_E_Invalid segment override expression'#000+
- '07072_W_Identifier $1 suppos','ed external'#000+
+ '07072_W_Identifier $1 supposed external'#000+
'07073_E_Strings not allowed as constants'#000+
'07074_E_No type of variable specified'#000+
'07075_E_assembler code not returned to text section'#000+
- '07076_E_Not a directive or local symbol $1'#000+
+ '07076_E_No','t a directive or local symbol $1'#000+
'07077_E_Using a defined name as a local label'#000+
- '07078_E_','Dollar token is used without an identifier'#000+
+ '07078_E_Dollar token is used without an identifier'#000+
'07079_W_32bit constant created for address'#000+
'07080_N_.align is target specific, use .balign or .p2align'#000+
- '07081_E_Can'#039't access fields directly for parameters'#000+
- '07082_E_Can'#039't access fields of objects/clas','ses directly'#000+
+ '07081_E_','Can'#039't access fields directly for parameters'#000+
+ '07082_E_Can'#039't access fields of objects/classes directly'#000+
'07083_E_No size specified and unable to determine the size of the oper'+
'ands'#000+
'07084_E_Cannot use RESULT in this function'#000+
- '07086_W_"$1" without operand translated into "$1 %st,%st(1)"'#000+
- '07087_W_"$1 %st(n)" translated into "$1 %st,%st(','n)"'#000+
+ '07086_W_"$1" without o','perand translated into "$1 %st,%st(1)"'#000+
+ '07087_W_"$1 %st(n)" translated into "$1 %st,%st(n)"'#000+
'07088_W_"$1 %st(n)" translated into "$1 %st(n),%st"'#000+
'07089_E_Char < not allowed here'#000+
'07090_E_Char > not allowed here'#000+
'07093_W_ALIGN not supported'#000+
- '07094_E_Inc and Dec cannot be together'#000+
+ '07094','_E_Inc and Dec cannot be together'#000+
'07095_E_Invalid reglist for movem'#000+
- '07096_E_Reglist inv','alid for opcode'#000+
+ '07096_E_Reglist invalid for opcode'#000+
'07097_E_Higher cpu mode required ($1)'#000+
'07098_W_No size specified and unable to determine the size of the oper'+
- 'ands, using DWORD as default'#000+
+ 'ands, using DWORD as default'#000,
'07099_E_Syntax error while trying to parse a shifter operand'#000+
- '07100_E_Address of packed ','component is not at a byte boundary'#000+
+ '07100_E_Address of packed component is not at a byte boundary'#000+
'07101_W_No size specified and unable to determine the size of the oper'+
'ands, using BYTE as default'#000+
- '07102_W_Use of +offset(%ebp) for parameters invalid here'#000+
- '07103_W_Use of +offset(%ebp) is not compatible wi','th regcall conventi'+
- 'on'#000+
+ '07102_W_Use of +off','set(%ebp) for parameters invalid here'#000+
+ '07103_W_Use of +offset(%ebp) is not compatible with regcall convention'+
+ #000+
'07104_W_Use of -offset(%ebp) is not recommended for local variable acc'+
'ess'#000+
- '07105_W_Use of -offset(%esp), access may cause a crash or value may be'+
- ' lost'#000+
- '07106_E_VMTOffset must be used in combination with a virtual method,',' '+
- 'and "$1" is not virtual'#000+
+ '07105_W_Use of -offset(%esp), access may cause a crash or',' value may '+
+ 'be lost'#000+
+ '07106_E_VMTOffset must be used in combination with a virtual method, a'+
+ 'nd "$1" is not virtual'#000+
'07107_E_Generating PIC, but reference is not PIC-safe'#000+
'07108_E_All registers in a register set must be of the same kind and w'+
- 'idth'#000+
+ 'idth',#000+
'07109_E_A register set cannot be empty'#000+
- '07110_W_@GOTPCREL is useless and potentially da','ngereous for local sy'+
- 'mbols'#000+
+ '07110_W_@GOTPCREL is useless and potentially dangereous for local symb'+
+ 'ols'#000+
'07111_W_Constant with general purpose segment register'#000+
'07112_E_Invalid offset value for $1'#000+
'07113_E_Invalid register for $1'#000+
- '07114_E_SEH directives are allowed only in pure assembler procedures'#000+
- '07115_E_Directive "$1','" is not supported for the current target'#000+
+ '071','14_E_SEH directives are allowed only in pure assembler procedures'+
+ #000+
+ '07115_E_Directive "$1" is not supported for the current target'#000+
'07116_E_This function'#039's result location cannot be encoded directly'+
- ' in a single operand when "nostackframe" is used'#000+
+ ' in a single operand when "nostackframe" is u','sed'#000+
'07117_E_GOTPCREL references in Intel assembler syntax cannot contain a'+
- ' base or inde','x register, and their offset must 0.'#000+
+ ' base or index register, and their offset must 0.'#000+
'07118_E_The current target does not support GOTPCREL relocations'#000+
- '07119_W_Exported/global symbols should accessed via the GOT'#000+
+ '07119_W_Exported/global symbols should be accessed ','via the GOT'#000+
'07120_W_Check size of memory operand "$1"'#000+
- '07121_W_Check size of memory operand',' "$1: memory-operand-size is $2 '+
- 'bits, but expected [$3 bits]"'#000+
+ '07121_W_Check size of memory operand "$1: memory-operand-size is $2 bi'+
+ 'ts, but expected [$3 bits]"'#000+
'07122_W_Check size of memory operand "$1: memory-operand-size is $2 bi'+
- 'ts, but expected [$3 bits + $4 byte offset]"'#000+
- '07123_W_Check "$1: offset of memory operand is negative "$2 byt','e"'#000+
+ 'ts, but expected [','$3 bits + $4 byte offset]"'#000+
+ '07123_W_Check "$1: offset of memory operand is negative "$2 byte"'#000+
'07124_W_Check "$1: size of memory operand is empty, but es exists diff'+
'erent definitions of the memory size =>> map to $2 (smallest option)"'#000+
- '07125_E_Invalid register used in memory reference expression: "$1"'#000+
- '08000_F_Too many assembler fil','es'#000+
+ '07125_E','_Invalid register used in memory reference expression: "$1"'#000+
+ '08000_F_Too many assembler files'#000+
'08001_F_Selected assembler output not supported'#000+
'08002_F_Comp not supported'#000+
'08003_F_Direct not support for binary writers'#000+
- '08004_E_Allocating of data is only allowed in bss section'#000+
+ '08004_E_Allocating of data',' is only allowed in bss section'#000+
'08005_F_No binary writer selected'#000+
- '08006_E_Asm: Opcode $1 n','ot in table'#000+
+ '08006_E_Asm: Opcode $1 not in table'#000+
'08007_E_Asm: $1 invalid combination of opcode and operands'#000+
'08008_E_Asm: 16 Bit references not supported'#000+
- '08009_E_Asm: Invalid effective address'#000+
+ '08009_E_Asm: Invalid effective add','ress'#000+
'08010_E_Asm: Immediate or reference expected'#000+
- '08011_E_Asm: $1 value exceeds bounds $2'#000,
+ '08011_E_Asm: $1 value exceeds bounds $2'#000+
'08012_E_Asm: Short jump is out of range $1'#000+
'08013_E_Asm: Undefined label $1'#000+
'08014_E_Asm: Comp type not supported for this target'#000+
- '08015_E_Asm: Extended type not supported for this target'#000+
+ '08015_E_Asm: Extended ','type not supported for this target'#000+
'08016_E_Asm: Duplicate label $1'#000+
- '08017_E_Asm: Redefined ','label $1'#000+
+ '08017_E_Asm: Redefined label $1'#000+
'08018_E_Asm: First defined here'#000+
'08019_E_Asm: Invalid register $1'#000+
'08020_E_Asm: 16 or 32 Bit references not supported'#000+
- '08021_E_Asm: 64 Bit operands not supported'#000+
+ '08021_E_Asm: 64 Bit opera','nds not supported'#000+
'08022_E_Asm: AH,BH,CH or DH cannot be used in an instruction requiring'+
- ' R','EX prefix'#000+
+ ' REX prefix'#000+
'08023_E_Missing .seh_endprologue directive'#000+
'08024_E_Function prologue exceeds 255 bytes'#000+
- '08025_E_.seh_handlerdata directive without preceding .seh_handler'#000+
+ '08025_E_.seh_handlerdata directive without preceding ','.seh_handler'#000+
'08026_F_Relocation count for section $1 exceeds 65535'#000+
- '09000_W_Source operatin','g system redefined'#000+
- '09001_I_Assembling (pipe) $1'#000+
+ '08027_N_Change of bind type of symbol $1 from $2 to $3 after use'#000+
+ '08028_H_Change of bind type of symbol $1 from $2 to $3 after use'#000+
+ '09000_W_Source operating system redefined'#000+
+ '0','9001_I_Assembling (pipe) $1'#000+
'09002_E_Can'#039't create assembler file: $1'#000+
'09003_E_Can'#039't create object file: $1 (error code: $2)'#000+
'09004_E_Can'#039't create archive file: $1'#000+
- '09005_E_Assembler $1 not found, switching to external assemb','ling'#000+
- '09006_T_Using assembler: $1'#000+
+ '09005_E_Assembler $1 not found, switching to external assembling'#000+
+ '09006_T_Using a','ssembler: $1'#000+
'09007_E_Error while assembling exitcode $1'#000+
'09008_E_Can'#039't call the assembler, error $1 switching to external a'+
'ssembling'#000+
'09009_I_Assembling $1'#000+
'09010_I_Assembling with smartlinking $1'#000+
- '09011_W_Object $1 not foun','d, Linking may fail !'#000+
+ '09011_W_Object $1 not found, Linking may fail ','!'#000+
'09012_W_Library $1 not found, Linking may fail !'#000+
'09013_E_Error while linking'#000+
'09014_E_Can'#039't call the linker, switching to external linking'#000+
'09015_I_Linking $1'#000+
'09016_E_Util $1 not found, switching to external linking'#000+
- '0901','7_T_Using util $1'#000+
- '09018_E_Creation of Executables not supported'#000+
+ '09017_T_Using util $1'#000+
+ '09','018_E_Creation of Executables not supported'#000+
'09019_E_Creation of Dynamic/Shared Libraries not supported'#000+
'09035_E_Creation of Static Libraries not supported'#000+
'09020_I_Closing script $1'#000+
- '09021_E_resource compiler "$1" not found',', switching to external mode'+
+ '09021_E_resource compiler "$1" not found, switching to exter','nal mode'+
#000+
'09022_I_Compiling resource $1'#000+
'09023_T_unit $1 cannot be statically linked, switching to smart linkin'+
'g'#000+
'09024_T_unit $1 cannot be smart linked, switching to static linking'#000+
- '09025_T_unit $1 cannot be shared linked, ','switching to static linking'+
+ '09025_T_unit $1 cannot be shared linked, switching to static ','linking'+
#000+
'09026_E_unit $1 cannot be smart or static linked'#000+
'09027_E_unit $1 cannot be shared or static linked'#000+
'09028_D_Calling resource compiler "$1" with "$2" as command line'#000+
'09029_E_Error while compiling resources'#000+
- '09030_E_','Can'#039't call the resource compiler "$1", switching to exte'+
+ '09030_E_Can'#039't call the resou','rce compiler "$1", switching to exte'+
'rnal mode'#000+
'09031_E_Can'#039't open resource file "$1"'#000+
'09032_E_Can'#039't write resource file "$1"'#000+
'09033_N_File "$1" not found for backquoted cat command'#000+
- '09034_W_"$1" not found, this will probably',' cause a linking failure'#000+
+ '09034_W_"$1" not found, this will probably cause a linking fai','lure'#000+
'09128_F_Can'#039't post process executable $1'#000+
'09129_F_Can'#039't open executable $1'#000+
'09130_X_Size of Code: $1 bytes'#000+
'09131_X_Size of initialized data: $1 bytes'#000+
'09132_X_Size of uninitialized data: $1 bytes'#000+
- '09133_X_Stack space re','served: $1 bytes'#000+
- '09134_X_Stack space committed: $1 bytes'#000+
+ '09133_X_Stack space reserved: $1 bytes'#000+
+ '091','34_X_Stack space committed: $1 bytes'#000+
'09200_F_Executable image size is too big for $1 target.'#000+
'09201_W_Object file "$1" contains 32-bit absolute relocation to symbol'+
' "$2".'#000+
'10000_T_Unitsearch: $1'#000+
'10001_T_PPU Loading $1'#000+
- '1000','2_U_PPU Name: $1'#000+
- '10003_U_PPU Flags: $1'#000+
+ '10002_U_PPU Name: $1'#000+
+ '100','03_U_PPU Flags: $1'#000+
'10004_U_PPU Crc: $1'#000+
'10005_U_PPU Time: $1'#000+
'10006_U_PPU File too short'#000+
'10007_U_PPU Invalid Header (no PPU at the begin)'#000+
'10008_U_PPU Invalid Version $1'#000+
'10009_U_PPU is compiled for another processor'#000+
- '10010_U','_PPU is compiled for another target'#000+
+ '10010_U_PPU is compiled for',' another target'#000+
'10011_U_PPU Source: $1'#000+
'10012_U_Writing $1'#000+
'10013_F_Can'#039't Write PPU-File'#000+
@@ -1059,603 +1075,660 @@ const msgtxt : array[0..000301,1..240] of char=(
'10015_F_unexpected end of PPU-File'#000+
'10016_F_Invalid PPU-File entry: $1'#000+
'10017_F_PPU Dbx count problem'#000+
- '10','018_E_Illegal unit name: $1'#000+
+ '10018_E_Illegal unit n','ame: $1'#000+
'10019_F_Too much units'#000+
'10020_F_Circular unit reference between $1 and $2'#000+
'10021_F_Can'#039't compile unit $1, no sources available'#000+
'10022_F_Can'#039't find unit $1 used by $2'#000+
'10023_W_Unit $1 was not found but $2 exists'#000+
- '10024','_F_Unit $1 searched but $2 found'#000+
+ '10024_F_Unit $1 searched ','but $2 found'#000+
'10025_W_Compiling the system unit requires the -Us switch'#000+
'10026_F_There were $1 errors compiling module, stopping'#000+
'10027_U_Load from $1 ($2) unit $3'#000+
'10028_U_Recompiling $1, checksum changed for $2'#000+
- '10029_U_Rec','ompiling $1, source found only'#000+
+ '10029_U_Recompiling $1, source ','found only'#000+
'10030_U_Recompiling unit, static lib is older than ppufile'#000+
'10031_U_Recompiling unit, shared lib is older than ppufile'#000+
'10032_U_Recompiling unit, obj and asm are older than ppufile'#000+
- '10033_U_Recompiling unit, obj ','is older than asm'#000+
- '10034_U_Parsing interface of $1'#000+
+ '10033_U_Recompiling unit, obj is older than asm'#000+
+ '10','034_U_Parsing interface of $1'#000+
'10035_U_Parsing implementation of $1'#000+
'10036_U_Second load for unit $1'#000+
'10037_U_PPU Check file $1 time $2'#000+
'10040_W_Can'#039't recompile unit $1, but found modifed include files'#000+
- '10041_U_File $1 is new','er than the one used for creating PPU file $2'#000+
+ '10041_U_File $1 is newer than the one used',' for creating PPU file $2'#000+
'10042_U_Trying to use a unit which was compiled with a different FPU m'+
'ode'#000+
'10043_U_Loading interface units from $1'#000+
'10044_U_Loading implementation units from $1'#000+
- '10045_U_Interface CRC changed for u','nit $1'#000+
- '10046_U_Implementation CRC changed for unit $1'#000+
+ '10045_U_Interface CRC changed for unit $1'#000+
+ '10046_U_Imple','mentation CRC changed for unit $1'#000+
'10047_U_Finished compiling unit $1'#000+
'10048_U_Adding dependency: $1 depends on $2'#000+
'10049_U_No reload, is caller: $1'#000+
'10050_U_No reload, already in second compile: $1'#000+
- '10051_U_Flag for reload: ','$1'#000+
- '10052_U_Forced reloading'#000+
+ '10051_U_Flag for reload: $1'#000+
+ '10052_U_Forced re','loading'#000+
'10053_U_Previous state of $1: $2'#000+
'10054_U_Already compiling $1, setting second compile'#000+
'10055_U_Loading unit $1'#000+
'10056_U_Finished loading unit $1'#000+
'10057_U_Registering new unit $1'#000+
'10058_U_Re-resolving unit $1'#000+
- '10059_U_','Skipping re-resolving unit $1, still loading used units'#000+
+ '10059_U_Skipping re-resolvin','g unit $1, still loading used units'#000+
'10060_U_Unloading resource unit $1 (not needed)'#000+
'10061_E_Unit $1 was compiled using a different whole program optimizat'+
- 'ion feedback input ($2, $3); recompile it without wpo or use the s','am'+
- 'e wpo feedback input file for this compilation invocation'#000+
+ 'ion feedback input ($2, $3); recompile it without wpo or use the same '+
+ 'wpo feedback inp','ut file for this compilation invocation'#000+
'10062_U_Indirect interface (objects/classes) CRC changed for unit $1'#000+
'10063_U_PPU is compiled for another i8086 memory model'#000+
'11000_O_$1 [options] <inputfile> [options]'#000+
- '11001_W_Only ','one source file supported, changing source file to comp'+
+ '11001_W_Only one source file supp','orted, changing source file to comp'+
'ile from "$1" into "$2"'#000+
'11002_W_DEF file can be created only for OS/2'#000+
'11003_E_nested response files are not supported'#000+
'11004_F_No source file name in command line'#000+
- '11005_N_No option insid','e $1 config file'#000+
- '11006_E_Illegal parameter: $1'#000+
+ '11005_N_No option inside $1 config file'#000+
+ '110','06_E_Illegal parameter: $1'#000+
'11007_H_-? writes help pages'#000+
'11008_F_Too many config files nested'#000+
'11009_F_Unable to open file $1'#000+
'11010_D_Reading further options from $1'#000+
'11011_W_Target is already set to: $1'#000+
- '11012_W_Shared libs',' not supported on DOS platform, reverting to stat'+
+ '11012_W_Shared libs not supported on DO','S platform, reverting to stat'+
'ic'#000+
- '11013_F_In options file $1 at line $2 too many \var{\#IF(N)DEFs} encou'+
- 'ntered'#000+
- '11014_F_In options file $1 at line $2 unexpected \var{\#ENDIFs} encoun'+
- 'tered'#000+
- '11015_F_Open conditional at the end',' of the options file'#000+
- '11016_W_Debug information generation is not supported by this executab'+
- 'le'#000+
+ '11013_F_In options file $1 at line $2 too many #IF(N)DEFs encountered'#000+
+ '11014_F_In options file $1 at line $2 unexpected #ENDIFs encountered'#000+
+ '11015_F_Open conditional at the end of the options file'#000+
+ '11016_W_Debug',' information generation is not supported by this execut'+
+ 'able'#000+
'11017_H_Try recompiling with -dGDB'#000+
'11018_W_You are using the obsolete switch $1'#000+
'11019_W_You are using the obsolete switch $1, please use $2'#000+
- '11020_','N_Switching assembler to default source writing assembler'#000+
+ '11020_N_Switching assembler to default s','ource writing assembler'#000+
'11021_W_Assembler output selected "$1" is not compatible with "$2"'#000+
'11022_W_"$1" assembler use forced'#000+
'11026_T_Reading options from file $1'#000+
- '11027_T_Reading options from environment $1'#000,
+ '11027_T_Reading options from environment $1'#000+
'11028_D_Handling option "$1"'#000+
- '11029_O_*** press enter ***'#000+
+ '11029','_O_*** press enter ***'#000+
'11030_H_Start of reading config file $1'#000+
'11031_H_End of reading config file $1'#000+
'11032_D_interpreting option "$1"'#000+
'11036_D_interpreting firstpass option "$1"'#000+
- '11033_D_interpreting file opt','ion "$1"'#000+
- '11034_D_Reading config file "$1"'#000+
+ '11033_D_interpreting file option "$1"'#000+
+ '11034_D_Reading config fi','le "$1"'#000+
'11035_D_found source file name "$1"'#000+
'11039_E_Unknown codepage "$1"'#000+
'11040_F_Config file $1 is a directory'#000+
'11041_W_Assembler output selected "$1" cannot generate debug info, deb'+
'ugging disabled'#000+
- '11042_W_','Use of ppc386.cfg is deprecated, please use fpc.cfg instead'#000+
- '11043_F_In options file $1 at line $2 \var{\#ELSE} directive without \'+
- 'var{\#IF(N)DEF} found'#000+
+ '11042_W_Use of ppc386.cfg is deprecated, p','lease use fpc.cfg instead'#000+
+ '11043_F_In options file $1 at line $2 #ELSE directive without #IF(N)DE'+
+ 'F found'#000+
'11044_F_Option "$1" is not, or not yet, supported on the current targe'+
't platform'#000+
- '11045_F','_The feature "$1" is not, or not yet, supported on the select'+
+ '11045_F_The feature "$1" is not, or not yet, supported ','on the select'+
'ed target platform'#000+
'11046_N_DWARF debug information cannot be used with smart linking on t'+
'his target, switching to static linking'#000+
- '11047_W_Option "$1" is ignored for the current tar','get platform.'#000+
- '11048_W_Disabling external debug information because it is unsupported'+
- ' for the selected target/debug format combination.'#000+
+ '11047_W_Option "$1" is ignored for the current target platform.'#000+
+ '11048_W_Disabling external debug i','nformation because it is unsupport'+
+ 'ed for the selected target/debug format combination.'#000+
'11049_N_DWARF debug information cannot be used with smart linking with'+
- ' external assembler, disabling stat','ic library creation.'#000+
- '11050_E_Invalid value for MACOSX_DEPLOYMENT_TARGET environment variabl'+
- 'e: $1'#000+
+ ' external assembler, disabling static library creation.'#000+
+ '11050_E_Invalid value for M','ACOSX_DEPLOYMENT_TARGET environment varia'+
+ 'ble: $1'#000+
'11051_E_Invalid value for IPHONEOS_DEPLOYMENT_TARGET environment varia'+
'ble: $1'#000+
- '11052_E_You must use a FPU type of VFPV2, VFPV3 or VFPV3_D16 when',' us'+
- 'ing the EABIHF ABI target'#000+
- '11053_W_The selected debug format is not supported on the current targ'+
- 'et, not changing the current setting'#000+
+ '11052_E_You must use a FPU type of VFPV2, VFPV3 or VFPV3_D16 when usin'+
+ 'g the EABIHF ABI target'#000+
+ '11053_W_The selecte','d debug format is not supported on the current ta'+
+ 'rget, not changing the current setting'#000+
'11054_E_argument to "$1" is missing'#000+
'11055_E_malformed parameter: $1'#000+
- '11056_W_Smart linking requires exter','nal linker'#000+
- '11057_E_Creating .COM files is not supported in the current memory mod'+
- 'el. Only the tiny memory model supports making .COM files.'#000+
+ '11056_W_Smart linking requires external linker'#000+
+ '11057_E_Creating .COM files is not su','pported in the current memory m'+
+ 'odel. Only the tiny memory model supports making .COM files.'#000+
'12000_F_Cannot open whole program optimization feedback file "$1"'#000+
- '12001_D_Processing whole program o','ptimization information in wpo fee'+
- 'dback file "$1"'#000+
+ '12001_D_Processing whole program optimization information in wpo feedb'+
+ 'ack file "$1','"'#000+
'12002_D_Finished processing the whole program optimization information'+
' in wpo feedback file "$1"'#000+
'12003_E_Expected section header, but got "$2" at line $1 of wpo feedba'+
'ck file'#000+
- '12004_W_No hand','ler registered for whole program optimization section'+
+ '12004_W_No handler registered for whole program optimization se','ction'+
' "$2" at line $1 of wpo feedback file, ignoring'#000+
'12005_D_Found whole program optimization section "$1" with information'+
' about "$2"'#000+
- '12006_F_The selected whole program optimizations require ','a previousl'+
- 'y generated feedback file (use -Fw to specify)'#000+
+ '12006_F_The selected whole program optimizations require a previously '+
+ 'generated feedback file (use -Fw to',' specify)'#000+
'12007_E_No collected information necessary to perform "$1" whole progr'+
'am optimization found'#000+
'12008_F_Specify a whole program optimization feedback file to store th'+
- 'e generated info in ','(using -FW)'#000+
- '12009_E_Not generating any whole program optimization information, yet'+
- ' a feedback file was specified (using -FW)'#000+
+ 'e generated info in (using -FW)'#000+
+ '12009_E_Not generating any whole pro','gram optimization information, y'+
+ 'et a feedback file was specified (using -FW)'#000+
'12010_E_Not performing any whole program optimizations, yet an input f'+
'eedback file was specified (using -Fw)'#000+
- '12011_','D_Skipping whole program optimization section "$1", because no'+
+ '12011_D_Skipping whole program optimization section "$','1", because no'+
't needed by the requested optimizations'#000+
'12012_W_Overriding previously read information for "$1" from feedback '+
'input file using information in section "$2"'#000+
- '12013_E_Cannot extract ','symbol liveness information from program when'+
- ' stripping symbols, use -Xs-'#000+
+ '12013_E_Cannot extract symbol liveness information from program when s'+
+ 't','ripping symbols, use -Xs-'#000+
'12014_E_Cannot extract symbol liveness information from program when w'+
'hen not linking'#000+
'12015_F_Cannot find "$1" or "$2" to extract symbol liveness informatio'+
- 'n from lin','ked program'#000+
- '12016_E_Error during reading symbol liveness information produced by "'+
- '$1"'#000+
+ 'n from linked program'#000+
+ '12016_E_Error during reading symbol ','liveness information produced by'+
+ ' "$1"'#000+
'12017_F_Error executing "$1" (exitcode: $2) to extract symbol informat'+
'ion from linked program'#000+
- '12018_E_Collection of symbol liveness information can only h','elp when'+
- ' using smart linking, use -CX -XX'#000+
- '12019_E_Cannot create specified whole program optimisation feedback fi'+
- 'le "$1"'#000+
+ '12018_E_Collection of symbol liveness information can only help when u'+
+ 'sing smart linking, use -CX -XX'#000+
+ '12019_','E_Cannot create specified whole program optimisation feedback '+
+ 'file "$1"'#000+
'11023_Free Pascal Compiler version $FPCFULLVERSION [$FPCDATE] for $FPC'+
'CPU'#010+
- 'Copyright (c) 1993-2014 by Florian Klaempfl an','d others'#000+
- '11024_Free Pascal Compiler version $FPCVERSION'#010+
+ 'Copyright (c) 1993-2015 by Florian Klaempfl and others'#000+
+ '11024_Free Pascal Compiler version $FPC','VERSION'#010+
#010+
- 'Compiler Date : $FPCDATE'#010+
- 'Compiler CPU Target: $FPCCPU'#010+
+ 'Compiler date : $FPCDATE'#010+
+ 'Compiler CPU target: $FPCCPU'#010+
#010+
- 'Supported targets:'#010+
+ 'Supported targets (targets marked with '#039'{*}'#039' are under develop'+
+ 'ment):'#010+
' $OSTARGETS'#010+
#010+
'Supported CPU instruction sets:'#010+
' $INSTRUCTIONSETS'#010+
#010+
'Supported FPU instruction sets:'#010+
- ' $FPU','INSTRUCTIONSETS'#010+
+ ' $F','PUINSTRUCTIONSETS'#010+
#010+
'Supported inline assembler modes:'#010+
' $ASMMODES'#010+
#010+
+ 'Recognized compiler and RTL features:'#010+
+ ' $FEATURELIST'#010+
+ #010+
'Supported ABI targets:'#010+
' $ABITARGETS'#010+
#010+
'Supported Optimizations:'#010+
' $OPTIMIZATIONS'#010+
#010+
- 'Supported Whole Program Optimizations:'#010+
+ 'Supported Whole Program Optimizations:'#010,
' All'#010+
' $WPOPTIMIZATIONS'#010+
#010+
- 'Supported Microcontroller type','s:'#010+
- ' $CONTROLLERTYPES'#010+
- #010+
+ 'Supported Microcontroller types:$\n $CONTROLLERTYPES$\n'#010+
'This program comes under the GNU General Public Licence'#010+
'For more information read COPYING.v2'#010+
#010+
'Please report bugs in our bug tracker on:'#010+
- ' http://bugs.freepascal.org'#010+
- #010+
- 'More information may be found on our',' WWW pages (including directions'+
+ ' http','://bugs.freepascal.org'#010+
#010+
+ 'More information may be found on our WWW pages (including directions'#010+
'for mailing lists useful for asking questions or discussing potential'#010+
'new features, etc.):'#010+
' http://www.freepascal.org'#000+
- '11025_**0*_Put + after a boolean switch option to enable it, - to disa'+
- 'ble',' it'#010+
+ '11025_F*0*_On','ly options valid for the default or selected platform a'+
+ 're listed.'#010+
+ '**0*_Put + after a boolean switch option to enable it, - to disable it'+
+ '.'#010+
'**1@<x>_Read compiler options from <x> in addition to the default fpc.'+
'cfg'#010+
- '**1a_The compiler does not delete the generated assembler file'#010+
+ '**1a_The compiler does not d','elete the generated assembler file'#010+
'**2al_List sourcecode lines in assembler file'#010+
- '**2an_List node info in assembler file (-dEXTDEBUG co','mpiler)'#010+
+ '**2an_List node info in assembler file (-dEXTDEBUG compiler)'#010+
'**2ao_Add an extra option to external assembler call (ignored for inte'+
'rnal)'#010+
- '*L2ap_Use pipes instead of creating temporary assembler files'#010+
+ '*L2ap_Use pipes instea','d of creating temporary assembler files'#010+
'**2ar_List register allocation/release info in assembler file'#010+
- '**2at_List temp allocation/relea','se info in assembler file'#010+
+ '**2at_List temp allocation/release info in assembler file'#010+
'**1A<x>_Output format:'#010+
'**2Adefault_Use default assembler'#010+
- '3*2Aas_Assemble using GNU AS'#010+
+ '3*2Aas_Assemble using G','NU AS'#010+
'3*2Amacho_Mach-O (Darwin, Intel 32 bit) using internal writer'#010+
'8*2Anasm_Assemble using Nasm'#010+
'8*2Anasmobj_Assemble using Nasm'#010+
- '3*2An','asm_Assemble using Nasm'#010+
+ '3*2Anasm_Assemble using Nasm'#010+
'3*2Anasmcoff_COFF (Go32v2) file using Nasm'#010+
- '3*2Anasmelf_ELF32 (Linux) file using Nasm'#010+
+ '3*2Anasmelf_ELF32 (Linux) file using Na','sm'#010+
'3*2Anasmwin32_Win32 object file using Nasm'#010+
'3*2Anasmwdosx_Win32/WDOSX object file using Nasm'#010+
- '3*2Anasmdarwin_macho32 object file usin','g Nasm (experimental)'#010+
+ '3*2Anasmdarwin_macho32 object file using Nasm (experimental)'#010+
'3*2Awasm_Obj file using Wasm (Watcom)'#010+
'3*2Anasmobj_Obj file using Nasm'#010+
- '3*2Amasm_Obj file using Masm (Microsoft)'#010+
+ '3*2Amasm_Obj f','ile using Masm (Microsoft)'#010+
'3*2Atasm_Obj file using Tasm (Borland)'#010+
'3*2Aelf_ELF (Linux) using internal writer'#010+
- '3*2Acoff_COFF (Go32v2) usi','ng internal writer'#010+
+ '3*2Acoff_COFF (Go32v2) using internal writer'#010+
'3*2Apecoff_PE-COFF (Win32) using internal writer'#010+
- '3*2Ayasm_Assmeble using Yasm (experimental)'#010+
+ '3*2Ayasm_Assemble using Yasm (experime','ntal)'#010+
'4*2Aas_Assemble using GNU AS'#010+
'4*2Agas_Assemble using GNU GAS'#010+
'4*2Agas-darwin_Assemble darwin Mach-O64 using GNU GAS'#010+
- '4*2Amasm_Win64',' object file using ml64 (Microsoft)'#010+
+ '4*2Amasm_Win64 object file using ml64 (Microsoft)'#010+
'4*2Apecoff_PE-COFF (Win64) using internal writer'#010+
- '4*2Aelf_ELF (Linux-64bit) using internal writer'#010+
+ '4*2Aelf_ELF (Linux-64','bit) using internal writer'#010+
'4*2Ayasm_Assemble using Yasm (experimental)'#010+
'4*2Anasm_Assemble using Nasm (experimental)'#010+
- '4*2Anasmwin64_Asse','mble Win64 object file using Nasm (experimental)'#010+
- '4*2Anasmelf_Assemble Linux-64bit object file using Nasm (experimental)'+
- #010+
+ '4*2Anasmwin64_Assemble Win64 object file using Nasm (experimental)'#010+
+ '4*2Anasmelf_Assemble Linux-64bit object file using Nasm (','experimenta'+
+ 'l)'#010+
'4*2Anasmdarwin_Assemble darwin macho64 object file using Nasm (experim'+
'ental)'#010+
'6*2Aas_Unix o-file using GNU AS'#010+
- '6*2Agas_GNU',' Motorola assembler'#010+
+ '6*2Agas_GNU Motorola assembler'#010+
'6*2Amit_MIT Syntax (old GAS)'#010+
'6*2Amot_Standard Motorola assembler'#010+
- 'A*2Aas_Assemble using GNU AS'#010+
+ 'A*2Aas_Assemble using',' GNU AS'#010+
'P*2Aas_Assemble using GNU AS'#010+
'S*2Aas_Assemble using GNU AS'#010+
'**1b_Generate browser info'#010+
'**2bl_Generate local symbol info'#010+
- '**1B_Bui','ld all modules'#010+
+ '**1B_Build all modules'#010+
'**1C<x>_Code generation options:'#010+
'**2C3_Turn on ieee error checking for constants'#010+
- '**2Ca<x>_Select ABI, see fpc -i for possible values'#010+
+ '**2Ca<x>_S','elect ABI; see fpc -i or fpc -ia for possible values'#010+
'**2Cb_Generate code for a big-endian variant of the target architectur'+
'e'#010+
- '**2Cc<x>_Set default',' calling convention to <x>'#010+
+ '**2Cc<x>_Set default calling convention to <x>'#010+
'**2CD_Create also dynamic library (not supported)'#010+
- '**2Ce_Compilation with emulated floating point opcodes'#010+
- '**2Cf<x>_Select fpu instruction set to use, see fpc -i for possible va'+
- 'lues'#010+
- '**2CF<x>_Minimal floating point c','onstant precision (default, 32, 64)'+
- #010+
+ '**2Ce_Compilation ','with emulated floating point opcodes'#010+
+ '**2Cf<x>_Select fpu instruction set to use; see fpc -i or fpc -if for '+
+ 'possible values'#010+
+ '**2CF<x>_Minimal floating point constant precision (default, 32, 64)'#010+
'**2Cg_Generate PIC code'#010+
- '**2Ch<n>_<n> bytes heap (between 1023 and 67107840)'#010+
+ '**2Ch<n>_<n> bytes heap ','(between 1023 and 67107840)'#010+
'**2Ci_IO-checking'#010+
'A*2CI<x>_Select instruction set on ARM: ARM or THUMB'#010+
'**2Cn_Omit linking stage'#010+
- 'P*2CN_Generate nil-pointer check','s (AIX-only)'#010+
+ 'P*2CN_Generate nil-pointer checks (AIX-only)'#010+
'**2Co_Check overflow of integer operations'#010+
- '**2CO_Check for possible overflow of integer operations'#010+
- '**2Cp<x>_Select instruction set, see fpc -i for possible values'#010+
+ '**2CO_Check for possible ove','rflow of integer operations'#010+
+ '**2Cp<x>_Select instruction set; see fpc -i or fpc -ic for possible va'+
+ 'lues'#010+
'**2CP<x>=<y>_ packing settings'#010+
- '**3CPPACKSET=<y>_ <y> set allocat','ion: 0, 1 or DEFAULT or NORMAL, 2, '+
- '4 and 8'#010+
+ '**3CPPACKSET=<y>_ <y> set allocation: 0, 1 or DEFAULT or NORMAL, 2, 4 '+
+ 'and 8'#010+
+ '**3CPPACKENUM=<y>_ <y> enum pa','cking: 0, 1, 2 and 4 or DEFAULT or NOR'+
+ 'MAL'#010+
+ '**3CPPACKRECORD=<y>_ <y> record packing: 0 or DEFAULT or NORMAL, 1, 2,'+
+ ' 4, 8, 16 and 32'#010+
'**2Cr_Range checking'#010+
'**2CR_Verify object method call validity'#010+
'**2Cs<n>_Set stack checking size to <n>'#010+
- '**2Ct_Stack checking (for testing only, see manual)'#010+
- '8*2CT<x>_Target-specific code generation op','tions'#010+
+ '**2Ct_Sta','ck checking (for testing only, see manual)'#010+
+ '8*2CT<x>_Target-specific code generation options'#010+
'3*2CT<x>_Target-specific code generation options'#010+
'4*2CT<x>_Target-specific code generation options'#010+
'p*2CT<x>_Target-specific code generation options'#010+
- 'P*2CT<x>_Target-specific code generation options'#010+
- 'J*2CT<x>_Target-specific code generati','on options'#010+
+ 'P','*2CT<x>_Target-specific code generation options'#010+
+ 'J*2CT<x>_Target-specific code generation options'#010+
'A*2CT<x>_Target-specific code generation options'#010+
'p*3CTsmalltoc_ Generate smaller TOCs at the expense of execution speed'+
' (AIX)'#010+
- 'P*3CTsmalltoc_ Generate smaller TOCs at the expense of execution speed'+
- ' (AIX)'#010+
- 'J*3CTautogetterprefix=X_ ','Automatically create getters for propertie'+
- 's with prefix X (empty string disables)'#010+
- 'J*3CTautosetterprefix=X_ Automatically create setters for properties '+
+ 'P*3CTsmalltoc_ Ge','nerate smaller TOCs at the expense of execution spe'+
+ 'ed (AIX)'#010+
+ 'J*3CTautogetterprefix=X_ Automatically create getters for properties '+
'with prefix X (empty string disables)'#010+
- '8*3CTcld_ Emit a CLD instruction b','efore using the x8'+
- '6 string instructions'#010+
- '3*3CTcld_ Emit a CLD instruction before using the x86 '+
+ 'J*3CTautosetterprefix=X_ Automatically create setters for properties '+
+ 'wi','th prefix X (empty string disables)'#010+
+ '8*3CTcld_ Emit a CLD instruction before using the x86 '+
'string instructions'#010+
- '4*3CTcld_ Emit a CLD instruction before using the x86 '+
+ '3*3CTcld_ Emit a CLD instruction before using the x86 '+
'string instructions'#010+
- 'J*3CTcompactintarray','init_ Generate smaller (but potentially slower) '+
- 'code for initializing integer array constants'#010+
- 'J*3CTenumfieldinit_ Initialize enumeration fields in constructor'+
- 's to enumtype(0), after calling inherited constructors'#010+
- 'J*3CTinitlocals_ ',' Initialize local variables that trigger a '+
- 'JVM bytecode verification error if used uninitialized (slows down code'+
- ')'#010+
- 'J*3CTlowercaseprocstart_ Lowercase the first character of procedure/f'+
- 'unction/method names'#010+
- 'A*3CTthumbinterworking_ Genera','te Thumb interworking-safe code if pos'+
- 'sible'#010+
+ '4*3CTcld_ ',' Emit a CLD instruction before using the x8'+
+ '6 string instructions'#010+
+ 'J*3CTcompactintarrayinit_ Generate smaller (but potentially slower) co'+
+ 'de for initializing integer array constants'#010+
+ 'J*3CTenumfieldinit_ Initialize enumeration fields in c','onstruct'+
+ 'ors to enumtype(0), after calling inherited constructors'#010+
+ 'J*3CTinitlocals_ Initialize local variables that trigger a JV'+
+ 'M bytecode verification error if used uninitialized (slows down code)'#010+
+ 'J*3CTlowercaseprocstart_ Lowercase',' the first character of procedure'+
+ '/function/method names'#010+
+ 'A*3CTthumbinterworking_ Generate Thumb interworking-safe code if possi'+
+ 'ble'#010+
'J*2Cv_Var/out parameter copy-out checking'#010+
'**2CX_Create also smartlinked library'#010+
- '**1d<x>_Defines the symbol <x>'#010+
+ '**1d<x>_Defines the symbol <x>',#010+
'**1D_Generate a DEF file'#010+
'**2Dd<x>_Set description to <x>'#010+
- '**2Dv<x>_Set DLL version to ','<x>'#010+
+ '**2Dv<x>_Set DLL version to <x>'#010+
'*O2Dw_PM application'#010+
'**1e<x>_Set path to executable'#010+
'**1E_Same as -Cn'#010+
'**1fPIC_Same as -Cg'#010+
'**1F<x>_Set file names and paths:'#010+
- '**2Fa<x>[,y]_(for a program) load units <x> and [y] before uses is par'+
- 'sed'#010+
+ '**2Fa<x>[,y]_(for a program',') load units <x> and [y] before uses is p'+
+ 'arsed'#010+
'**2Fc<x>_Set input codepage to <x>'#010+
- '**2F','C<x>_Set RC compiler binary name to <x>'#010+
+ '**2FC<x>_Set RC compiler binary name to <x>'#010+
'**2Fd_Disable the compiler'#039's internal directory cache'#010+
- '**2FD<x>_Set the directory where to search for compiler utilities'#010+
+ '**2FD<x>_Set the directory where to search for compiler util','ities'#010+
'**2Fe<x>_Redirect error output to <x>'#010+
- '**2Ff<x>_Add <x> to framework path (Darwin',' only)'#010+
+ '**2Ff<x>_Add <x> to framework path (Darwin only)'#010+
'**2FE<x>_Set exe/unit output path to <x>'#010+
'**2Fi<x>_Add <x> to include path'#010+
'**2Fl<x>_Add <x> to library path'#010+
'**2FL<x>_Use <x> as dynamic linker'#010+
- '**2Fm<x>_Load unicode conversion table from <x>.txt in the compiler di'+
- 'r'#010+
- '**2FM<x>_Set the di','rectory where to search for unicode binary files'#010+
+ '**2Fm','<x>_Load unicode conversion table from <x>.txt in the compiler '+
+ 'dir'#010+
+ '**2FM<x>_Set the directory where to search for unicode binary files'#010+
'**2Fo<x>_Add <x> to object path'#010+
'**2Fr<x>_Load error message file <x>'#010+
- '**2FR<x>_Set resource (.res) linker to <x>'#010+
+ '**2FR<x>_Set resource (.res) linker ','to <x>'#010+
'**2Fu<x>_Add <x> to unit path'#010+
- '**2FU<x>_Set unit output path to <x>, overrides -','FE'#010+
+ '**2FU<x>_Set unit output path to <x>, overrides -FE'#010+
'**2FW<x>_Store generated whole-program optimization feedback in <x>'#010+
'**2Fw<x>_Load previously stored whole-program optimization feedback fr'+
'om <x>'#010+
- '*g1g_Generate debug information (default format for target)'#010+
- '*g2gc_Generate checks for pointe','rs'#010+
+ '*g1g_G','enerate debug information (default format for target)'#010+
+ '*g2gc_Generate checks for pointers'#010+
'*g2gh_Use heaptrace unit (for memory leak/corruption debugging)'#010+
'*g2gl_Use line info unit (show more info with backtraces)'#010+
- '*g2go<x>_Set debug information options'#010+
+ '*g2go<x>_Set debug informatio','n options'#010+
'*g3godwarfsets_ Enable DWARF '#039'set'#039' type debug information (bre'+
- 'aks gdb < 6.5)',#010+
+ 'aks gdb < 6.5)'#010+
'*g3gostabsabsincludes_ Store absolute/full include file paths in Stabs'+
#010+
'*g3godwarfmethodclassprefix_ Prefix method names in DWARF with class n'+
'ame'#010+
- '*g2gp_Preserve case in stabs symbol names'#010+
+ '*g2gp_Pr','eserve case in stabs symbol names'#010+
'*g2gs_Generate Stabs debug information'#010+
- '*g2gt_Trash l','ocal variables (to detect uninitialized uses)'#010+
+ '*g2gt_Trash local variables (to detect uninitialized uses; multiple '#039+
+ 't'#039' changes the trashing value)'#010+
'*g2gv_Generates programs traceable with Valgrind'#010+
- '*g2gw_Generate DWARFv2 debug information (same as -gw2)'#010+
+ '*g2gw_Generate DWA','RFv2 debug information (same as -gw2)'#010+
'*g2gw2_Generate DWARFv2 debug information'#010+
'*g2gw3_Generate DWARFv3 debug information'#010+
- '*g2gw','4_Generate DWARFv4 debug information (experimental)'#010+
+ '*g2gw4_Generate DWARFv4 debug information (experimental)'#010+
'**1i_Information'#010+
'**2iD_Return compiler date'#010+
- '**2iV_Return short compiler version'#010+
- '**2iW_Return full compiler version'#010+
- '**2iSO_Return compiler OS'#010+
+ '**2iSO_Return com','piler OS'#010+
'**2iSP_Return compiler host processor'#010+
- '**2iTO_Re','turn target OS'#010+
+ '**2iTO_Return target OS'#010+
'**2iTP_Return target processor'#010+
+ '**2iV_Return short compiler version'#010+
+ '**2iW_Return full compiler version'#010+
+ '**2ia_Return list of supported ABI targets'#010+
+ '**2ic_Return list of sup','ported CPU instruction sets'#010+
+ '**2if_Return list of supported FPU instruction sets'#010+
+ '**2ii_Return list of supported inline assembler modes'#010+
+ '**2io_Return list of supported optimizations'#010+
+ '**2ir_Return list of recognized compiler and RTL features'#010+
+ '**2','it_Return list of supported targets'#010+
+ '**2iu_Return list of supported microcontroller types'#010+
+ '**2iw_Return list of supported whole program optimizations'#010+
'**1I<x>_Add <x> to include path'#010+
'**1k<x>_Pass <x> to the linker'#010+
'**1l_Write logo'#010+
- '**1M<x>_Set language mode to <x>'#010+
+ '**1M<x>_Set l','anguage mode to <x>'#010+
'**2Mfpc_Free Pascal dialect (default)'#010+
- '**2Mobjfpc_FPC mode with Object Pascal suppo','rt'#010+
+ '**2Mobjfpc_FPC mode with Object Pascal support'#010+
'**2Mdelphi_Delphi 7 compatibility mode'#010+
'**2Mtp_TP/BP 7.0 compatibility mode'#010+
'**2Mmacpas_Macintosh Pascal dialects compatibility mode'#010+
- '**1n_Do not read the default config files'#010+
+ '**1n','_Do not read the default config files'#010+
'**1o<x>_Change the name of the executable produced to <x>'#010+
- '**1O<x','>_Optimizations:'#010+
+ '**1O<x>_Optimizations:'#010+
'**2O-_Disable optimizations'#010+
'**2O1_Level 1 optimizations (quick and debugger friendly)'#010+
- '**2O2_Level 2 optimizations (-O1 + quick optimizations)'#010+
+ '**2O2_Level 2 optimizations (-O1 + ','quick optimizations)'#010+
'**2O3_Level 3 optimizations (-O2 + slow optimizations)'#010+
- '**2O4_Level 4 optimization','s (-O3 + optimizations which might have un'+
- 'expected side effects)'#010+
+ '**2O4_Level 4 optimizations (-O3 + optimizations which might have unex'+
+ 'pected side effects)'#010+
'**2Oa<x>=<y>_Set alignment'#010+
- '**2Oo[NO]<x>_Enable or disable optimizations, see fpc -i for possible '+
- 'values'#010+
- '**2Op<x>_Set target cpu for optimizing, see fpc -i for possible values'+
- #010,
+ '**2Oo[NO]<x>_Enable or disable optimizations; ','see fpc -i or fpc -io '+
+ 'for possible values'#010+
+ '**2Op<x>_Set target cpu for optimizing; see fpc -i or fpc -ic for poss'+
+ 'ible values'#010+
'**2OW<x>_Generate whole-program optimization feedback for optimization'+
- ' <x>, see fpc -i for possible values'#010+
- '**2Ow<x>_Perform whole-program optimization <x>, see fpc -i for possib'+
- 'le values'#010+
+ ' <x>; see fpc -i or fpc -iw for possible value','s'#010+
+ '**2Ow<x>_Perform whole-program optimization <x>; see fpc -i or fpc -iw'+
+ ' for possible values'#010+
'**2Os_Optimize for size rather than speed'#010+
- '**1pg_Gener','ate profile code for gprof (defines FPC_PROFILE)'#010+
- 'F*1P<x>_Target CPU / compiler related options:'#010+
+ '**1pg_Generate profile code for gprof (defines FPC_PROFILE)'#010+
+ 'F*1P<x>_Target CPU / compiler related options',':'#010+
'F*2PB_Show default compiler binary'#010+
'F*2PP_Show default target cpu'#010+
- 'F*2P<x>_Set target CPU (arm,i386,m68k,mips,mipsel,powerpc,powerpc64,sp'+
- 'arc,x86_6','4)'#010+
+ 'F*2P<x>_Set target CPU (arm,avr,i386,jvm,m68k,mips,mipsel,powerpc,powe'+
+ 'rpc64,sparc,x86_64)'#010+
'**1R<x>_Assembler reading style:'#010+
'**2Rdefault_Use default assembler for target'#010+
- '3*2Ratt_Read AT&T style assembler'#010+
+ '3*2Ra','tt_Read AT&T style assembler'#010+
'3*2Rintel_Read Intel style assembler'#010+
'6*2RMOT_Read motorola style assembler'#010+
'**1S<x>_Syntax options:'#010+
'**2S2_Same as -Mobjfpc'#010+
- '**2','Sc_Support operators like C (*=,+=,/= and -=)'#010+
+ '**2Sc_Support operators like C (*=,+=,/= and -=)'#010+
'**2Sa_Turn on assertions'#010+
- '**2Sd_Same as -Mdelphi'#010+
+ '**2Sd_Same as -','Mdelphi'#010+
'**2Se<x>_Error options. <x> is a combination of the following:'#010+
'**3*_<n> : Compiler halts after the <n> errors (default is 1)'#010+
- '**3*_w : Compiler als','o halts after warnings'#010+
+ '**3*_w : Compiler also halts after warnings'#010+
'**3*_n : Compiler also halts after notes'#010+
- '**3*_h : Compiler also halts after hints'#010+
+ '**3*_h : Compiler also',' halts after hints'#010+
+ '**2Sf_Enable certain features in compiler and RTL; see fpc -i or fpc -'+
+ 'ir for possible values)'#010+
'**2Sg_Enable LABEL and GOTO (default in -Mtp and -Mdelphi)'#010+
- '**2Sh_Use reference counted strings (ansistring by default) instead of'+
- ' short','strings'#010+
+ '**2Sh_Use reference counted strings (ansistring by default) instead ','o'+
+ 'f shortstrings'#010+
'**2Si_Turn on inlining of procedures/functions declared as "inline"'#010+
'**2Sk_Load fpcylix unit'#010+
'**2SI<x>_Set interface style to <x>'#010+
'**3SIcom_COM compatible interface (default)'#010+
'**3SIcorba_CORBA compatible interface'#010+
- '**2Sm_Support macros l','ike C (global)'#010+
+ '**2Sm_Support ','macros like C (global)'#010+
'**2So_Same as -Mtp'#010+
'**2Ss_Constructor name must be init (destructor must be done)'#010+
- '**2Sx_Enable exception keywords (default in Delphi/ObjFPC modes)'#010+
+ '**2Sv_Support vector processing (use CPU vector extensions if availabl'+
+ 'e)'#010+
+ '**2Sx_Enable exception keywords (default in Delphi/ObjFPC modes',')'#010+
'**2Sy_@<pointer> returns a typed pointer, same as $T+'#010+
- '**1s_Do not call assemble','r and linker'#010+
+ '**1s_Do not call assembler and linker'#010+
'**2sh_Generate script to link on host'#010+
'**2st_Generate script to link on target'#010+
'**2sr_Skip register allocation phase (use with -alr)'#010+
- '**1T<x>_Target operating system:'#010+
+ '**1T<x>_Target ','operating system:'#010+
+ '3*2Tandroid_Android'#010+
+ '3*2Taros_AROS'#010+
+ '3*2Tbeos_BeOS'#010+
'3*2Tdarwin_Darwin/Mac OS X'#010+
- '3*2Temx_OS/2 via EMX (including EMX/','RSX extender)'#010+
+ '3*2Tembedded_Embedded'#010+
+ '3*2Temx_OS/2 via EMX (including EMX/RSX extender)'#010+
'3*2Tfreebsd_FreeBSD'#010+
'3*2Tgo32v2_Version 2 of DJ Delorie DOS extender'#010+
+ '3*2Thai','ku_Haiku'#010+
'3*2Tiphonesim_ iPhoneSimulator from iOS SDK 3.2+ (older versions: -Tda'+
'rwin)'#010+
'3*2Tlinux_Linux'#010+
'3*2Tnativent_Native NT API (experimental)'#010+
'3*2Tnetbsd_NetBSD'#010+
- '3*2Tne','tware_Novell Netware Module (clib)'#010+
- '3*2Tnetwlibc_Novell Netware Module (libc)'#010+
+ '3*2Tnetware_Novell Netware Module (clib)'#010+
+ '3*2Tnetwlibc_Novell Netware Module (li','bc)'#010+
'3*2Topenbsd_OpenBSD'#010+
'3*2Tos2_OS/2 / eComStation'#010+
'3*2Tsunos_SunOS/Solaris'#010+
'3*2Tsymbian_Symbian OS'#010+
'3*2Tsolaris_Solaris'#010+
'3*2Twatcom_Watcom compatible DOS extender'#010+
- '3*2Twdo','sx_WDOSX DOS extender'#010+
+ '3*2Twdosx_WDOSX DOS extender'#010+
'3*2Twin32_Windows 32 Bit'#010+
'3*2Twince_Windows CE'#010+
- '4*2Tdarwin_Darwin/Mac OS X'#010+
+ '4*2Td','arwin_Darwin/Mac OS X'#010+
+ '4*2Tfreebsd_FreeBSD'#010+
'4*2Tlinux_Linux'#010+
+ '4*2Tnetbsd_NetBSD'#010+
+ '4*2Topenbsd_OpenBSD'#010+
+ '4*2Tsolaris_Solaris'#010+
'4*2Twin64_Win64 (64 bit Windows systems)'#010+
'6*2Tamiga_Commodore Amiga'#010+
'6*2Tatari_Atari ST/STe/TT'#010+
'6*2Tlinux_Linux'#010+
- '6*2Tpalmos_PalmOS'#010+
- 'A*','2Tdarwin_Darwin/iPhoneOS/iOS'#010+
+ '6*2Tpalmos_Palm','OS'#010+
+ '8*2Tmsdos_MS-DOS (and compatible)'#010+
+ 'A*2Tandroid_Android'#010+
+ 'A*2Tdarwin_Darwin/iPhoneOS/iOS'#010+
+ 'A*2Tembedded_Embedded'#010+
+ 'A*2Tgba_Game Boy Advance'#010+
'A*2Tlinux_Linux'#010+
+ 'A*2Tnds_Nintendo DS'#010+
+ 'A*2Tsymbian_Symbian'#010+
'A*2Twince_Windows CE'#010+
+ 'J*2Tandroid_Android'#010+
+ 'J*2Tjava','_Java'#010+
+ 'm*2Tembedded_Embedded'#010+
+ 'M*2Tandroid_Android'#010+
+ 'M*2Tembedded_Embedded'#010+
+ 'M*2Tlinux_Linux'#010+
+ 'P*2Taix_AIX'#010+
'P*2Tamiga_AmigaOS'#010+
'P*2Tdarwin_Darwin/Mac OS X'#010+
'P*2Tlinux_Linux'#010+
'P*2Tmacos_Mac OS (classic)'#010+
'P*2Tmorphos_MorphOS'#010+
+ 'P*2Tnetbsd_NetBSD'#010+
+ 'P*2Twii_Wii'#010+
+ 'p*2T','aix_AIX'#010+
+ 'p*2Tdarwin_Darwin/Mac OS X'#010+
+ 'p*2Tlinux_Linux'#010+
'S*2Tsolaris_Solaris'#010+
'S*2Tlinux_Linux'#010+
- '**1u<x>_Undefines the symbol <','x>'#010+
+ 'V*2Tembedded_Embedded'#010+
+ '**1u<x>_Undefines the symbol <x>'#010+
'**1U_Unit options:'#010+
'**2Un_Do not check where the unit name matches the file name'#010+
- '**2Ur_Generate release unit files (never automatically recompiled)'#010+
+ '**2Ur_Generate rel','ease unit files (never automatically recompiled)'#010+
'**2Us_Compile a system unit'#010+
- '**1v<x>_Be verbose. <x> is a combination of the following lett','ers:'#010+
+ '**1v<x>_Be verbose. <x> is a combination of the following letters:'#010+
'**2*_e : Show errors (default) 0 : Show nothing (except errors)'#010+
- '**2*_w : Show warnings u : Show unit info'#010+
+ '**2*_w : Show warnings ',' u : Show unit info'#010+
'**2*_n : Show notes t : Show tried/used files'#010+
- '**2*_h : Show hints c : Show ','conditionals'#010+
+ '**2*_h : Show hints c : Show conditionals'#010+
'**2*_i : Show general info d : Show debug info'#010+
- '**2*_l : Show linenumbers r : Rhide/GCC compatibility mode'#010+
- '**2*_s : Show time stamps q : Show message numbers'#010+
- '**2*_a : Show everything x',' : Executable info (Win32 only'+
- ')'#010+
- '**2*_b : Write file names messages p : Write tree.log with parse tre'+
+ '**2*_l : Show linenumbers ',' r : Rhide/GCC compatibility mod'+
'e'#010+
+ '**2*_s : Show time stamps q : Show message numbers'#010+
+ '**2*_a : Show everything x : Show info about invoked tools'+
+ #010+
+ '**2*_b : Write file names messages p : Write tree.log with parse t','r'+
+ 'ee'#010+
'**2*_ with full path v : Write fpcdebug.txt with'#010+
- '**2*_ lots of debugging info'#010+
- '**2*_m<','x>,<y> : Do not show messages numbered <x> and <y>'#010+
- 'F*1V<x>_Append '#039'-<x>'#039' to the used compiler binary name (e.g. f'+
- 'or version)'#010+
+ '**2*_z : Write output to stderr lots of debugging info'#010+
+ '**2*_m<x>,<y> : Do not show messages numbered <x> and <y>'#010+
+ 'F*1V<x>_Append '#039'-<x>'#039' to the used compiler binary',' name (e.g.'+
+ ' for version)'#010+
'**1W<x>_Target-specific options (targets)'#010+
'3*2WA_Specify native type application (Windows)'#010+
- '4*2WA_Specify native type',' application (Windows)'#010+
+ '4*2WA_Specify native type application (Windows)'#010+
'A*2WA_Specify native type application (Windows)'#010+
- '3*2Wb_Create a bundle instead of a library (Darwin)'#010+
+ '3*2Wb_Create a bundle instead',' of a library (Darwin)'#010+
'P*2Wb_Create a bundle instead of a library (Darwin)'#010+
'p*2Wb_Create a bundle instead of a library (Darwin)'#010+
- 'A*2Wb_Create ','a bundle instead of a library (Darwin)'#010+
+ 'A*2Wb_Create a bundle instead of a library (Darwin)'#010+
'4*2Wb_Create a bundle instead of a library (Darwin)'#010+
- '3*2WB_Create a relocatable image (Windows, Symbian)'#010+
+ '3*2WB_Cre','ate a relocatable image (Windows, Symbian)'#010+
'3*2WBxxxx_Set image base to xxxx (Windows, Symbian)'#010+
'4*2WB_Create a relocatable image (Windows)'#010+
- '4*','2WBxxxx_Set image base to xxxx (Windows)'#010+
+ '4*2WBxxxx_Set image base to xxxx (Windows)'#010+
'A*2WB_Create a relocatable image (Windows, Symbian)'#010+
- 'A*2WBxxxx_Set image base to xxxx (Windows, Symbian)'#010+
+ 'A*2WBxx','xx_Set image base to xxxx (Windows, Symbian)'#010+
'3*2WC_Specify console type application (EMX, OS/2, Windows)'#010+
- '4*2WC_Specify console type applicat','ion (EMX, OS/2, Windows)'#010+
+ '4*2WC_Specify console type application (Windows)'#010+
'A*2WC_Specify console type application (Windows)'#010+
- 'P*2WC_Specify console type application (Classic Mac OS)'#010+
+ 'P*2WC_Specify console type applicatio','n (Classic Mac OS)'#010+
'3*2WD_Use DEFFILE to export functions of DLL or EXE (Windows)'#010+
- '4*2WD_Use DEFFILE to export functions of DLL or ','EXE (Windows)'#010+
+ '4*2WD_Use DEFFILE to export functions of DLL or EXE (Windows)'#010+
'A*2WD_Use DEFFILE to export functions of DLL or EXE (Windows)'#010+
- '3*2We_Use external resources (Darwin)'#010+
+ '3*2We_Use external resources (Darwi','n)'#010+
'4*2We_Use external resources (Darwin)'#010+
'A*2We_Use external resources (Darwin)'#010+
'P*2We_Use external resources (Darwin)'#010+
- 'p*2We_Use ex','ternal resources (Darwin)'#010+
+ 'p*2We_Use external resources (Darwin)'#010+
'3*2WF_Specify full-screen type application (EMX, OS/2)'#010+
- '3*2WG_Specify graphic type application (EMX, OS/2, Windows)'#010+
- '4*2WG_Specify graphic type application (EMX, OS/2, Windows)'#010+
- 'A*2WG_Specify graphic type application ','(Windows)'#010+
+ '3*2WG_Specify graphic type app','lication (EMX, OS/2, Windows)'#010+
+ '4*2WG_Specify graphic type application (Windows)'#010+
+ 'A*2WG_Specify graphic type application (Windows)'#010+
'P*2WG_Specify graphic type application (Classic Mac OS)'#010+
'3*2Wi_Use internal resources (Darwin)'#010+
- '4*2Wi_Use internal resources (Darwin)'#010+
+ '4*2Wi_Use internal',' resources (Darwin)'#010+
'A*2Wi_Use internal resources (Darwin)'#010+
'P*2Wi_Use internal resources (Darwin)'#010+
- 'p*2Wi_Use internal res','ources (Darwin)'#010+
+ 'p*2Wi_Use internal resources (Darwin)'#010+
'3*2WI_Turn on/off the usage of import sections (Windows)'#010+
- '4*2WI_Turn on/off the usage of import sections (Windows)'#010+
+ '4*2WI_Turn on/off the usage of import sections (W','indows)'#010+
'A*2WI_Turn on/off the usage of import sections (Windows)'#010+
'8*2Wm<x>_Set memory model'#010+
- '8*3WmTiny_Tiny memory model',#010+
+ '8*3WmTiny_Tiny memory model'#010+
'8*3WmSmall_Small memory model (default)'#010+
'8*3WmMedium_Medium memory model'#010+
'8*3WmCompact_Compact memory model'#010+
- '8*3WmLarge_Large memory model'#010+
+ '8*3WmLarge_Larg','e memory model'#010+
'3*2WM<x>_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+
'n)'#010+
- '4*2WM<x>_Minimum Mac OS X depl','oyment version: 10.4, 10.5.1, ... (Dar'+
- 'win)'#010+
- 'p*2WM<x>_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+
+ '4*2WM<x>_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+
'n)'#010+
- 'P*2WM<x>_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+
+ 'p*2WM<x>_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Darwi'+
'n)'#010+
- '3*2WN_Do not generate relocation code, needed for d','ebugging (Windows'+
- ')'#010+
+ 'P*2WM<','x>_Minimum Mac OS X deployment version: 10.4, 10.5.1, ... (Dar'+
+ 'win)'#010+
+ '3*2WN_Do not generate relocation code, needed for debugging (Windows)'#010+
'4*2WN_Do not generate relocation code, needed for debugging (Windows)'#010+
- 'A*2WN_Do not generate relocation code, needed for debugging (Windows)'#010+
- 'A*2Wpxxxx_Specify the controller type, see fpc -i for possible values'#010+
- 'V*2Wpxxxx_S','pecify the controller type, see fpc -i for possible value'+
- 's'#010+
+ 'A*2WN_Do not generate relocation ','code, needed for debugging (Windows'+
+ ')'#010+
+ 'A*2Wpxxxx_Specify the controller type; see fpc -i or fpc -iu for possi'+
+ 'ble values'#010+
+ 'm*2Wpxxxx_Specify the controller type; see fpc -i or fpc -iu for possi'+
+ 'ble values'#010+
+ 'V*2Wpxxxx_Specify the controller type; se','e fpc -i or fpc -iu for pos'+
+ 'sible values'#010+
'3*2WP<x>_Minimum iOS deployment version: 3.0, 5.0.1, ... (iphonesim)'#010+
'A*2WP<x>_Minimum iOS deployment version: 3.0, 5.0.1, ... (Darwin)'#010+
'3*2WR_Generate relocation code (Windows)'#010+
- '4*2WR','_Generate relocation code (Windows)'#010+
+ '4*2WR_Generate relocatio','n code (Windows)'#010+
'A*2WR_Generate relocation code (Windows)'#010+
'8*2Wt<x>_Set the target executable format'#010+
'8*3Wtexe_Create a DOS .EXE file (default)'#010+
'8*3Wtcom_Create a DOS .COM file (requires tiny memory model)'#010+
- 'P*2WT_Specify MPW ','tool type application (Classic Mac OS)'#010+
+ 'P*2WT_Specify MPW tool type applicati','on (Classic Mac OS)'#010+
'**2WX_Enable executable stack (Linux)'#010+
'**1X_Executable options:'#010+
'**2Xc_Pass --shared/-dynamic to the linker (BeOS, Darwin, FreeBSD, Lin'+
'ux)'#010+
- '**2Xd_Do not search default library path (sometimes required for',' cro'+
- 'ss-compiling when not using -XR)'#010+
+ '**2Xd_Do not search default library path (sometimes required for cross'+
+ '-compiling wh','en not using -XR)'#010+
'**2Xe_Use external linker'#010+
+ '**2Xf_Substitute pthread library name for linking (BSD)'#010+
'**2Xg_Create debuginfo in a separate file and add a debuglink section '+
'to executable'#010+
- '**2XD_Try to link units dynamically (defines FPC_LINK_DYNAMIC)'#010+
- '**2Xi_Use internal linker',#010+
+ '**2XD_Try to link units dynamically (defines FPC_LI','NK_DYNAMIC)'#010+
+ '**2Xi_Use internal linker'#010+
+ '**2XLA_Define library substitutions for linking'#010+
+ '**2XLO_Define order of library linking'#010+
+ '**2XLD_Exclude default order of standard libraries'#010+
'**2Xm_Generate link map'#010+
- '**2XM<x>_Set the name of the '#039'main'#039' program routine (default i'+
- 's '#039'main'#039')'#010+
+ '**2XM<x>_Set the name of the '#039'main'#039' prog','ram routine (default'+
+ ' is '#039'main'#039')'#010+
+ '**2Xn_Use target system native linker instead of GNU ld (Solaris, AIX)'+
+ #010+
'F*2Xp<x>_First search for the compiler binary in the directory <x>'#010+
'**2XP<x>_Prepend the binutils names with the prefix <x>'#010+
- '**2Xr<x>_Set the lin','ker'#039's rlink-path to <x> (needed for cross co'+
+ '**2Xr<x>_Set t','he linker'#039's rlink-path to <x> (needed for cross co'+
'mpile, see the ld manual for more information) (BeOS, Linux)'#010+
'**2XR<x>_Prepend <x> to all linker search paths (BeOS, Darwin, FreeBSD'+
', Linux, Mac OS, Solaris)'#010+
- '**2Xs_Strip all symbols from executable',#010+
+ '**2Xs_Strip all symbols from exec','utable'#010+
'**2XS_Try to link units statically (default, defines FPC_LINK_STATIC)'#010+
'**2Xt_Link with static libraries (-static is passed to linker)'#010+
- '**2XX_Try to smartlink units (defines FPC_LINK_SMART)'#010+
+ '**2Xv_Generate table for Virtual Entry calls'#010+
+ '**2XX_Try to smartlink units (defines FPC_L','INK_SMART)'#010+
'**1*_'#010+
'**1?_Show this help'#010+
- '**1h_Shows thi','s help without waiting'
+ '**1h_Shows this help without waiting'
);
diff --git a/compiler/nadd.pas b/compiler/nadd.pas
index bf7b7f2a4e..ab89377400 100644
--- a/compiler/nadd.pas
+++ b/compiler/nadd.pas
@@ -73,6 +73,10 @@ interface
{ full 64 bit multiplies. }
function use_generic_mul64bit: boolean; virtual;
+ { shall be overriden if the target cpu supports
+ an fma instruction
+ }
+ function use_fma : boolean; virtual;
{ This routine calls internal runtime library helpers
for all floating point arithmetic in the case
where the emulation switches is on. Otherwise
@@ -80,18 +84,22 @@ interface
the code generation phase.
}
function first_addfloat : tnode; virtual;
- private
- { checks whether a muln can be calculated as a 32bit }
- { * 32bit -> 64 bit }
- function try_make_mul32to64: boolean;
- { Match against the ranges, i.e.:
- var a:1..10;
- begin
- if a>0 then
- ...
- always evaluates to true. (DM)
- }
- function cmp_of_disjunct_ranges(var res : boolean) : boolean;
+ private
+ { checks whether a muln can be calculated as a 32bit }
+ { * 32bit -> 64 bit }
+ function try_make_mul32to64: boolean;
+
+ { Match against the ranges, i.e.:
+ var a:1..10;
+ begin
+ if a>0 then
+ ...
+ always evaluates to true. (DM)
+ }
+ function cmp_of_disjunct_ranges(var res : boolean) : boolean;
+
+ { tries to replace the current node by a fma node }
+ function try_fma(ld,rd : tdef) : tnode;
end;
taddnodeclass = class of taddnode;
@@ -401,8 +409,7 @@ implementation
end;
{ both are int constants }
- if (
- (
+ if (
is_constintnode(left) and
is_constintnode(right)
) or
@@ -414,7 +421,7 @@ implementation
(
is_constenumnode(left) and
is_constenumnode(right) and
- allowenumop(nodetype))
+ (allowenumop(nodetype) or (nf_internal in flags))
) or
(
(lt = pointerconstn) and
@@ -676,6 +683,50 @@ implementation
result:=t;
exit;
end;
+{$if FPC_FULLVERSION>20700}
+ { bestrealrec is 2.7.1+ only }
+
+ { replace .../const by a multiplication, but only if fastmath is enabled or
+ the division is done by a power of 2, do not mess with special floating point values like Inf etc.
+
+ do this after constant folding to avoid unnecessary precision loss if
+ an slash expresion would be first converted into a multiplication and later
+ folded }
+ if (nodetype=slashn) and
+ { do not mess with currency types }
+ (not(is_currency(right.resultdef))) and
+ (((cs_opt_fastmath in current_settings.optimizerswitches) and (rt=ordconstn)) or
+ ((cs_opt_fastmath in current_settings.optimizerswitches) and (rt=realconstn) and
+ (bestrealrec(trealconstnode(right).value_real).SpecialType in [fsPositive,fsNegative])
+ ) or
+ ((rt=realconstn) and
+ (bestrealrec(trealconstnode(right).value_real).SpecialType in [fsPositive,fsNegative]) and
+ { mantissa returns the mantissa/fraction without the hidden 1, so power of two means only the hidden
+ bit is set => mantissa must be 0 }
+ (bestrealrec(trealconstnode(right).value_real).Mantissa=0)
+ )
+ ) then
+ case rt of
+ ordconstn:
+ begin
+ { the normal code handles div/0 }
+ if (tordconstnode(right).value<>0) then
+ begin
+ nodetype:=muln;
+ t:=crealconstnode.create(1/tordconstnode(right).value,resultdef);
+ right.free;
+ right:=t;
+ exit;
+ end;
+ end;
+ realconstn:
+ begin
+ nodetype:=muln;
+ trealconstnode(right).value_real:=1.0/trealconstnode(right).value_real;
+ exit;
+ end;
+ end;
+{$endif FPC_FULLVERSION>20700}
{ first, we handle widestrings, so we can check later for }
{ stringconstn only }
@@ -1013,6 +1064,14 @@ implementation
change : boolean;
{$endif}
+ function maybe_cast_ordconst(var n: tnode; adef: tdef): boolean;
+ begin
+ result:=(tordconstnode(n).value>=torddef(adef).low) and
+ (tordconstnode(n).value<=torddef(adef).high);
+ if result then
+ inserttypeconv(n,adef);
+ end;
+
begin
result:=nil;
rlow:=0;
@@ -1420,6 +1479,18 @@ implementation
inserttypeconv(right,nd);
end;
end
+ { don't extend (sign-mismatched) comparisons if either side is a constant
+ whose value is within range of opposite side }
+ else if is_integer(ld) and is_integer(rd) and
+ (nodetype in [equaln,unequaln,gtn,gten,ltn,lten]) and
+ (is_signed(ld)<>is_signed(rd)) and
+ (
+ ((lt=ordconstn) and maybe_cast_ordconst(left,rd)) or
+ ((rt=ordconstn) and maybe_cast_ordconst(right,ld))
+ ) then
+ begin
+ { done here }
+ end
{ is there a signed 64 bit type ? }
else if ((torddef(rd).ordtype=s64bit) or (torddef(ld).ordtype=s64bit)) then
begin
@@ -1967,7 +2038,7 @@ implementation
end
else
resultdef:=right.resultdef;
- inserttypeconv(left,get_int_type_for_pointer_arithmetic(rd));
+ inserttypeconv(left,tpointerdef(right.resultdef).pointer_arithmetic_int_type);
if nodetype=addn then
begin
if (rt=niln) then
@@ -1981,7 +2052,7 @@ implementation
(tpointerdef(rd).pointeddef.size>1) then
begin
left:=caddnode.create(muln,left,
- cordconstnode.create(tpointerdef(rd).pointeddef.size,get_int_type_for_pointer_arithmetic(rd),true));
+ cordconstnode.create(tpointerdef(rd).pointeddef.size,tpointerdef(right.resultdef).pointer_arithmetic_int_type,true));
typecheckpass(left);
end;
end
@@ -2000,7 +2071,7 @@ implementation
else
resultdef:=left.resultdef;
- inserttypeconv(right,get_int_type_for_pointer_arithmetic(ld));
+ inserttypeconv(right,tpointerdef(left.resultdef).pointer_arithmetic_int_type);
if nodetype in [addn,subn] then
begin
if (lt=niln) then
@@ -2017,7 +2088,7 @@ implementation
if (tpointerdef(ld).pointeddef.size>1) then
begin
right:=caddnode.create(muln,right,
- cordconstnode.create(tpointerdef(ld).pointeddef.size,get_int_type_for_pointer_arithmetic(ld),true));
+ cordconstnode.create(tpointerdef(ld).pointeddef.size,tpointerdef(left.resultdef).pointer_arithmetic_int_type,true));
typecheckpass(right);
end
end else
@@ -2025,7 +2096,7 @@ implementation
(tarraydef(ld).elementdef.size>1) then
begin
right:=caddnode.create(muln,right,
- cordconstnode.create(tarraydef(ld).elementdef.size,get_int_type_for_pointer_arithmetic(ld),true));
+ cordconstnode.create(tarraydef(ld).elementdef.size,tpointerdef(left.resultdef).pointer_arithmetic_int_type,true));
typecheckpass(right);
end;
end
@@ -2068,7 +2139,7 @@ implementation
{ enums }
else if (ld.typ=enumdef) and (rd.typ=enumdef) then
begin
- if allowenumop(nodetype) then
+ if allowenumop(nodetype) or (nf_internal in flags) then
inserttypeconv(right,left.resultdef)
else
CGMessage3(type_e_operator_not_supported_for_types,node2opstr(nodetype),ld.typename,rd.typename);
@@ -2592,6 +2663,127 @@ implementation
end;
+ function taddnode.use_fma : boolean;
+ begin
+ result:=false;
+ end;
+
+
+ function taddnode.try_fma(ld,rd : tdef) : tnode;
+ var
+ inlinennr : Integer;
+ begin
+ result:=nil;
+ if (cs_opt_fastmath in current_settings.optimizerswitches) and
+ use_fma and
+ (nodetype in [addn,subn]) and
+ (rd.typ=floatdef) and (ld.typ=floatdef) and
+ (is_single(rd) or is_double(rd)) and
+ equal_defs(rd,ld) and
+ { transforming a*b+c into fma(a,b,c) makes only sense if c can be
+ calculated easily. Consider a*b+c*d which results in
+
+ fmul
+ fmul
+ fadd
+
+ and in
+
+ fmul
+ fma
+
+ when using the fma optimization. On a super scalar architecture, the first instruction
+ sequence requires clock_cycles(fmul)+clock_cycles(fadd) clock cycles because the fmuls can be executed in parallel.
+ The second sequence requires clock_cycles(fmul)+clock_cycles(fma) because the fma has to wait for the
+ result of the fmul. Since typically clock_cycles(fma)>clock_cycles(fadd) applies, the first sequence is better.
+ }
+ (((left.nodetype=muln) and (node_complexity(right)<3)) or
+ ((right.nodetype=muln) and (node_complexity(left)<3)) or
+ ((left.nodetype=inlinen) and
+ (tinlinenode(left).inlinenumber=in_sqr_real) and
+ (node_complexity(right)<3)) or
+ ((right.nodetype=inlinen) and
+ (tinlinenode(right).inlinenumber=in_sqr_real) and
+ (node_complexity(left)<3))
+ ) then
+ begin
+ case tfloatdef(ld).floattype of
+ s32real:
+ inlinennr:=in_fma_single;
+ s64real:
+ inlinennr:=in_fma_double;
+ s80real:
+ inlinennr:=in_fma_extended;
+ s128real:
+ inlinennr:=in_fma_float128;
+ else
+ internalerror(2014042601);
+ end;
+ if left.nodetype=muln then
+ begin
+ if nodetype=subn then
+ result:=cinlinenode.create(inlinennr,false,ccallparanode.create(cunaryminusnode.create(right),
+ ccallparanode.create(taddnode(left).right,
+ ccallparanode.create(taddnode(left).left,nil
+ ))))
+ else
+ result:=cinlinenode.create(inlinennr,false,ccallparanode.create(right,
+ ccallparanode.create(taddnode(left).right,
+ ccallparanode.create(taddnode(left).left,nil
+ ))));
+ right:=nil;
+ taddnode(left).right:=nil;
+ taddnode(left).left:=nil;
+ end
+ else if right.nodetype=muln then
+ begin
+ if nodetype=subn then
+ result:=cinlinenode.create(inlinennr,false,ccallparanode.create(left,
+ ccallparanode.create(cunaryminusnode.create(taddnode(right).right),
+ ccallparanode.create(taddnode(right).left,nil
+ ))))
+ else
+ result:=cinlinenode.create(inlinennr,false,ccallparanode.create(left,
+ ccallparanode.create(taddnode(right).right,
+ ccallparanode.create(taddnode(right).left,nil
+ ))));
+ left:=nil;
+ taddnode(right).right:=nil;
+ taddnode(right).left:=nil;
+ end
+ else if (left.nodetype=inlinen) and (tinlinenode(left).inlinenumber=in_sqr_real) then
+ begin
+ if nodetype=subn then
+ result:=cinlinenode.create(inlinennr,false,ccallparanode.create(cunaryminusnode.create(right),
+ ccallparanode.create(tinlinenode(left).left.getcopy,
+ ccallparanode.create(tinlinenode(left).left.getcopy,nil
+ ))))
+ else
+ result:=cinlinenode.create(inlinennr,false,ccallparanode.create(right,
+ ccallparanode.create(tinlinenode(left).left.getcopy,
+ ccallparanode.create(tinlinenode(left).left.getcopy,nil
+ ))));
+ right:=nil;
+ end
+ { we get here only if right is a sqr node }
+ else if (right.nodetype=inlinen) and (tinlinenode(right).inlinenumber=in_sqr_real) then
+ begin
+ if nodetype=subn then
+ result:=cinlinenode.create(inlinennr,false,ccallparanode.create(left,
+ ccallparanode.create(cunaryminusnode.create(tinlinenode(right).left.getcopy),
+ ccallparanode.create(tinlinenode(right).left.getcopy,nil
+ ))))
+ else
+ result:=cinlinenode.create(inlinennr,false,ccallparanode.create(left,
+ ccallparanode.create(tinlinenode(right).left.getcopy,
+ ccallparanode.create(tinlinenode(right).left.getcopy,nil
+ ))));
+ left:=nil;
+ end;
+ end;
+ end;
+
+
function taddnode.first_add64bitint: tnode;
var
procname: string[31];
@@ -3089,6 +3281,10 @@ implementation
expectloc:=LOC_FPUREGISTER
else
expectloc:=LOC_FLAGS;
+
+ result:=try_fma(ld,rd);
+ if assigned(result) then
+ exit;
end
{ pointer comperation and subtraction }
diff --git a/compiler/ncal.pas b/compiler/ncal.pas
index ed62fa2256..dc0902e92a 100644
--- a/compiler/ncal.pas
+++ b/compiler/ncal.pas
@@ -269,6 +269,9 @@ interface
between the callparanodes and the callnode they belong to }
aktcallnode : tcallnode;
+ const
+ { track current inlining depth }
+ inlinelevel : longint = 0;
implementation
@@ -337,6 +340,8 @@ implementation
pvardatadef : tdef;
useresult: boolean;
restype: byte;
+ selftemp: ttempcreatenode;
+ selfpara: tnode;
names : ansistring;
variantdispatch : boolean;
@@ -370,7 +375,7 @@ implementation
if is_interfacecom_or_dispinterface(sourcedef) then
begin
{ distinct IDispatch and IUnknown interfaces }
- if def_is_related(tobjectdef(sourcedef),tobjectdef(search_system_type('IDISPATCH').typedef)) then
+ if def_is_related(tobjectdef(sourcedef),interface_idispatch) then
result:=vardispatch
else
result:=varunknown;
@@ -383,6 +388,8 @@ implementation
variantdispatch:=selfnode.resultdef.typ=variantdef;
result:=internalstatements(statements);
result_data:=nil;
+ selftemp:=nil;
+ selfpara:=nil;
useresult := assigned(resultdef) and not is_void(resultdef);
if useresult then
@@ -528,13 +535,27 @@ implementation
{ actual call }
vardatadef:=trecorddef(search_system_type('TVARDATA').typedef);
+ { the Variant should behave similar to hidden 'self' parameter of objects/records,
+ see issues #26773 and #27044 }
+ if not valid_for_var(selfnode,false) then
+ begin
+ selftemp:=ctempcreatenode.create(selfnode.resultdef,selfnode.resultdef.size,tt_persistent,false);
+ addstatement(statements,selftemp);
+ addstatement(statements,cassignmentnode.create(ctemprefnode.create(selftemp),selfnode));
+ selfpara:=ctemprefnode.create(selftemp);
+ end
+ else
+ selfpara:=selfnode;
+
addstatement(statements,ccallnode.createintern('fpc_dispinvoke_variant',
{ parameters are passed always reverted, i.e. the last comes first }
ccallparanode.create(caddrnode.create(ctemprefnode.create(params)),
ccallparanode.create(caddrnode.create(calldescnode),
- ccallparanode.create(ctypeconvnode.create_internal(selfnode,vardatadef),
+ ccallparanode.create(ctypeconvnode.create_internal(selfpara,vardatadef),
ccallparanode.create(ctypeconvnode.create_internal(resultvalue,pvardatadef),nil)))))
);
+ if assigned(selftemp) then
+ addstatement(statements,ctempdeletenode.create(selftemp));
end
else
begin
@@ -1685,7 +1706,10 @@ implementation
typecheckpass(temp);
if (temp.nodetype <> ordconstn) or
(tordconstnode(temp).value <> 0) then
- hightree := caddnode.create(subn,hightree,temp)
+ begin
+ hightree:=caddnode.create(subn,hightree,temp);
+ include(hightree.flags,nf_internal);
+ end
else
temp.free;
end;
@@ -2898,7 +2922,7 @@ implementation
for i:=1 to procdefinition.maxparacount-paralength do
begin
if paraidx<0 then
- internalerror(200402261);
+ internalerror(200402265);
if not assigned(tparavarsym(procdefinition.paras[paraidx]).defaultconstsym) then
begin
CGMessage1(parser_e_wrong_parameter_size,'<Procedure Variable>');
@@ -3481,9 +3505,25 @@ implementation
{ Can we inline the procedure? }
if (po_inline in procdefinition.procoptions) and
(procdefinition.typ=procdef) and
- tprocdef(procdefinition).has_inlininginfo then
+ tprocdef(procdefinition).has_inlininginfo and
+ { Prevent too deep inlining recursion and code bloat by inlining
+
+ The actual formuala is
+ inlinelevel+1 /-------
+ node count < -------------\/ 10000
+
+ This allows exponential grow of the code only to a certain limit.
+
+ Remarks
+ - The current approach calculates the inlining level top down, so outer call nodes (nodes closer to the leaf) might not be inlined
+ if the max. complexity is reached. This is done because it makes the implementation easier and because
+ there might be situations were it is more beneficial to inline inner nodes and do the calls to the outer nodes
+ if the outer nodes are in a seldomly used code path
+ - The code avoids to use functions from the math unit
+ }
+ (node_count(tprocdef(procdefinition).inlininginfo^.code)<round(exp((1.0/(inlinelevel+1))*ln(10000)))) then
begin
- include(callnodeflags,cnf_do_inline);
+ include(callnodeflags,cnf_do_inline);
{ Check if we can inline the procedure when it references proc/var that
are not in the globally available }
st:=procdefinition.owner;
@@ -3987,7 +4027,7 @@ implementation
(assigned(aktassignmentnode) and
(aktassignmentnode.right=self) and
(nf_assign_done_in_right in aktassignmentnode.flags) and
- aktassignmentnode.left.isequal(para.left)))) or
+ actualtargetnode(@aktassignmentnode.left)^.isequal(actualtargetnode(@para.left)^)))) or
{ the compiler expects that it can take the address of parameters passed by reference in
the case of const so we can't replace the node simply by a constant node
When playing with this code, ensure that
@@ -4151,6 +4191,7 @@ implementation
inlineblock,
inlinecleanupblock : tblocknode;
begin
+ inc(inlinelevel);
result:=nil;
if not(assigned(tprocdef(procdefinition).inlininginfo) and
assigned(tprocdef(procdefinition).inlininginfo^.code)) then
@@ -4248,6 +4289,7 @@ implementation
writeln('**************************',tprocdef(procdefinition).mangledname);
printnode(output,result);
{$endif DEBUGINLINE}
+ dec(inlinelevel);
end;
end.
diff --git a/compiler/ncgcal.pas b/compiler/ncgcal.pas
index e0ca908b47..e9045f33ca 100644
--- a/compiler/ncgcal.pas
+++ b/compiler/ncgcal.pas
@@ -249,6 +249,7 @@ implementation
href : treference;
otlabel,
oflabel : tasmlabel;
+ pushaddr: boolean;
begin
if not(assigned(parasym)) then
internalerror(200304242);
@@ -306,7 +307,7 @@ implementation
begin
{ don't push a node that already generated a pointer type
by address for implicit hidden parameters }
- if (vo_is_funcret in parasym.varoptions) or
+ pushaddr:=(vo_is_funcret in parasym.varoptions) or
{ pass "this" in C++ classes explicitly as pointer
because push_addr_param might not be true for them }
(is_cppclass(parasym.vardef) and (vo_is_self in parasym.varoptions)) or
@@ -324,8 +325,15 @@ implementation
)
) and
paramanager.push_addr_param(parasym.varspez,parasym.vardef,
- aktcallnode.procdefinition.proccalloption)) then
- push_addr_para
+ aktcallnode.procdefinition.proccalloption));
+
+ if pushaddr then
+ begin
+ { objects or advanced records could be located in registers if they are the result of a type case, see e.g. webtbs\tw26075.pp }
+ if not(left.location.loc in [LOC_CREFERENCE,LOC_REFERENCE]) then
+ hlcg.location_force_mem(current_asmdata.CurrAsmList,left.location,left.resultdef);
+ push_addr_para
+ end
else
push_value_para;
end
@@ -918,8 +926,7 @@ implementation
else
begin
{ Load VMT value in register }
- { todo: fix vmt type for high level cg }
- hlcg.location_force_reg(current_asmdata.CurrAsmList,methodpointer.location,proc_addr_voidptrdef,proc_addr_voidptrdef,false);
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,methodpointer.location,methodpointer.resultdef,methodpointer.resultdef,false);
vmtreg:=methodpointer.location.register;
{ test validity of VMT }
if not(is_interface(tprocdef(procdefinition).struct)) and
@@ -1048,6 +1055,7 @@ implementation
correct parameter register }
if assigned(left) then
begin
+ reorder_parameters;
pushparas;
{ free the resources allocated for the parameters }
freeparas;
diff --git a/compiler/ncgcnv.pas b/compiler/ncgcnv.pas
index d179cb5f17..da7dcc6293 100644
--- a/compiler/ncgcnv.pas
+++ b/compiler/ncgcnv.pas
@@ -120,12 +120,12 @@ interface
{ On targets without 8/16 bit register components, 8/16-bit operations
always adjust high bits of result, see 'maybeadjustresult' method in
respective cgcpu.pas. Therefore 8/16-bit locations are valid as larger
- ones (except OS_S8->OS_16 which still needs high 16 bits cleared). }
+ ones (except signed->unsigned, which still needs high bits cleared). }
else if (left.location.loc in [LOC_REGISTER,LOC_CREGISTER]) and
- (tcgsize2size[(reg_cgsize(left.location.register))]=sizeof(aint)) and
- (ressize>leftsize) and
- (newsize in [OS_32,OS_S32,OS_16,OS_S16]) and
- not ((newsize=OS_16) and (def_cgsize(left.resultdef)=OS_S8)) then
+ (tcgsize2size[(reg_cgsize(left.location.register))]=sizeof(aint)) and
+ (ressize>leftsize) and
+ (newsize in [OS_32,OS_S32,OS_16,OS_S16]) and
+ (not is_signed(left.resultdef) or is_signed(resultdef)) then
location.size:=newsize
{$endif}
else
diff --git a/compiler/ncgcon.pas b/compiler/ncgcon.pas
index 0cd1da2ffc..1ac8f76bbb 100644
--- a/compiler/ncgcon.pas
+++ b/compiler/ncgcon.pas
@@ -471,7 +471,7 @@ implementation
end
else
begin
- location.value:=swapendian(Pcardinal(value_set)^);
+ location.value:=aint(swapendian(Pcardinal(value_set)^));
location.value:=aint(
reverse_byte (location.value and $ff) or
(reverse_byte((location.value shr 8) and $ff) shl 8) or
diff --git a/compiler/ncgmat.pas b/compiler/ncgmat.pas
index 88baa9a2dd..82f75f4e66 100644
--- a/compiler/ncgmat.pas
+++ b/compiler/ncgmat.pas
@@ -50,6 +50,7 @@ interface
{$endif not cpu64bitalu}
procedure second_integer;virtual;
procedure second_float;virtual;
+ procedure second_float_emulated;virtual;
public
procedure pass_generate_code;override;
end;
@@ -206,6 +207,23 @@ implementation
end;
{$endif not cpu64bitalu}
+
+ procedure tcgunaryminusnode.second_float_emulated;
+ begin
+ secondpass(left);
+ hlcg.location_force_reg(current_asmdata.CurrAsmList,left.location,left.resultdef,left.resultdef,false);
+ location:=left.location;
+ case location.size of
+ OS_32:
+ cg.a_op_const_reg(current_asmdata.CurrAsmList,OP_XOR,OS_32,tcgint($80000000),location.register);
+ OS_64:
+ cg.a_op_const_reg(current_asmdata.CurrAsmList,OP_XOR,OS_32,tcgint($80000000),location.registerhi);
+ else
+ internalerror(2014033101);
+ end;
+ end;
+
+
procedure tcgunaryminusnode.second_float;
begin
secondpass(left);
@@ -282,7 +300,12 @@ implementation
else
{$endif SUPPORT_MMX}
if (left.resultdef.typ=floatdef) then
- second_float
+ begin
+ if (cs_fp_emulation in current_settings.moduleswitches) then
+ second_float_emulated
+ else
+ second_float;
+ end
else
second_integer;
end;
diff --git a/compiler/ncgmem.pas b/compiler/ncgmem.pas
index 5ae2e79fba..b80ae15208 100644
--- a/compiler/ncgmem.pas
+++ b/compiler/ncgmem.pas
@@ -300,7 +300,7 @@ implementation
pd:=tprocdef(tprocsym(sym).ProcdefList[0]);
paraloc1.init;
paramanager.getintparaloc(pd,1,paraloc1);
- hlcg.a_load_reg_cgpara(current_asmdata.CurrAsmList,resultdef,location.reference.base,paraloc1);
+ hlcg.a_load_reg_cgpara(current_asmdata.CurrAsmList,left.resultdef,location.reference.base,paraloc1);
paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
paraloc1.done;
hlcg.allocallcpuregisters(current_asmdata.CurrAsmList);
@@ -383,7 +383,7 @@ implementation
internalerror(2012010602);
pd:=tprocdef(tprocsym(sym).ProcdefList[0]);
paramanager.getintparaloc(pd,1,paraloc1);
- hlcg.a_load_reg_cgpara(current_asmdata.CurrAsmList,resultdef,location.reference.base,paraloc1);
+ hlcg.a_load_reg_cgpara(current_asmdata.CurrAsmList,left.resultdef,location.reference.base,paraloc1);
paramanager.freecgpara(current_asmdata.CurrAsmList,paraloc1);
hlcg.allocallcpuregisters(current_asmdata.CurrAsmList);
hlcg.a_call_name(current_asmdata.CurrAsmList,pd,'FPC_CHECKPOINTER',nil,false);
@@ -446,14 +446,14 @@ implementation
offsetcorrection:=0;
if (left.location.size in [OS_PAIR,OS_SPAIR]) then
begin
- if (vs.fieldoffset>=sizeof(aword)) then
- begin
- location.sreg.subsetreg := left.location.registerhi;
- offsetcorrection:=sizeof(aword)*8;
- end
+ if (vs.fieldoffset>=sizeof(aword)) xor (target_info.endian=endian_big) then
+ location.sreg.subsetreg := left.location.registerhi
else
location.sreg.subsetreg := left.location.register;
+ if (vs.fieldoffset>=sizeof(aword)) then
+ offsetcorrection:=sizeof(aword)*8;
+
location.sreg.subsetregsize := OS_INT;
end
else
diff --git a/compiler/ncgrtti.pas b/compiler/ncgrtti.pas
index b891a0916c..9d8e618898 100644
--- a/compiler/ncgrtti.pas
+++ b/compiler/ncgrtti.pas
@@ -307,7 +307,7 @@ implementation
until not assigned(hpropsym);
if not(assigned(propaccesslist) and assigned(propaccesslist.firstsym)) then
begin
- current_asmdata.asmlists[al_rtti].concat(Tai_const.create(aitconst_ptr,unsetvalue));
+ current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_int_codeptr(unsetvalue));
typvalue:=3;
end
else if propaccesslist.firstsym^.sym.typ=fieldvarsym then
@@ -347,7 +347,7 @@ implementation
end;
hp:=hp^.next;
end;
- current_asmdata.asmlists[al_rtti].concat(Tai_const.create(aitconst_ptr,address));
+ current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_int_codeptr(address));
typvalue:=0;
end
else
@@ -364,7 +364,7 @@ implementation
else
begin
{ virtual method, write vmt offset }
- current_asmdata.asmlists[al_rtti].concat(Tai_const.create(aitconst_ptr,
+ current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_int_codeptr(
tobjectdef(tprocdef(propaccesslist.procdef).struct).vmtmethodoffset(tprocdef(propaccesslist.procdef).extnumber)));
{ register for wpo }
tobjectdef(tprocdef(propaccesslist.procdef).struct).register_vmt_call(tprocdef(propaccesslist.procdef).extnumber);
@@ -396,7 +396,7 @@ implementation
if not(ppo_stored in tpropertysym(sym).propoptions) then
begin
{ no, so put a constant zero }
- current_asmdata.asmlists[al_rtti].concat(Tai_const.create(aitconst_ptr,0));
+ current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_nil_codeptr);
proctypesinfo:=proctypesinfo or (3 shl 4);
end
else
@@ -656,7 +656,7 @@ implementation
if def.elementdef.needs_inittable then
write_rtti_reference(def.elementdef,rt)
else
- current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_pint(0));
+ current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_nil_dataptr);
{ write unit name }
write_string(current_module.realmodulename^);
end;
diff --git a/compiler/ncgutil.pas b/compiler/ncgutil.pas
index 54323eb07f..d81afe5667 100644
--- a/compiler/ncgutil.pas
+++ b/compiler/ncgutil.pas
@@ -1075,13 +1075,13 @@ implementation
begin
unget_para(paraloc^);
gen_alloc_regloc(list,destloc);
- cg.a_load_cgparaloc_anyreg(list,OS_INT,paraloc^,destloc.register,sizeof(aint));
+ cg.a_load_cgparaloc_anyreg(list,OS_8,paraloc^,destloc.register,sizeof(aint));
unget_para(paraloc^.Next^);
- cg.a_load_cgparaloc_anyreg(list,OS_INT,paraloc^.Next^,GetNextReg(destloc.register),sizeof(aint));
+ cg.a_load_cgparaloc_anyreg(list,OS_8,paraloc^.Next^,GetNextReg(destloc.register),sizeof(aint));
unget_para(paraloc^.Next^.Next^);
- cg.a_load_cgparaloc_anyreg(list,OS_INT,paraloc^.Next^.Next^,GetNextReg(GetNextReg(destloc.register)),sizeof(aint));
+ cg.a_load_cgparaloc_anyreg(list,OS_8,paraloc^.Next^.Next^,GetNextReg(GetNextReg(destloc.register)),sizeof(aint));
unget_para(paraloc^.Next^.Next^.Next^);
- cg.a_load_cgparaloc_anyreg(list,OS_INT,paraloc^.Next^.Next^.Next^,GetNextReg(GetNextReg(GetNextReg(destloc.register))),sizeof(aint));
+ cg.a_load_cgparaloc_anyreg(list,OS_8,paraloc^.Next^.Next^.Next^,GetNextReg(GetNextReg(GetNextReg(destloc.register))),sizeof(aint));
end
{$endif defined(cpu8bitalu)}
else
@@ -1348,10 +1348,18 @@ implementation
item := TCmdStrListItem(pd.aliasnames.first);
while assigned(item) do
begin
- current_asmdata.DefineAsmSymbol(item.str,AB_GLOBAL,AT_FUNCTION);
- item := TCmdStrListItem(item.next);
- end;
- end;
+ { The condition to use global or local symbol must match
+ the code written in hlcg.gen_proc_symbol to
+ avoid change from AB_LOCAL to AB_GLOBAL, which generates
+ erroneous code (at least for targets using GOT) }
+ if (cs_profile in current_settings.moduleswitches) or
+ (po_global in current_procinfo.procdef.procoptions) then
+ current_asmdata.DefineAsmSymbol(item.str,AB_GLOBAL,AT_FUNCTION)
+ else
+ current_asmdata.DefineAsmSymbol(item.str,AB_LOCAL,AT_FUNCTION);
+ item := TCmdStrListItem(item.next);
+ end;
+ end;
procedure gen_proc_entry_code(list:TAsmList);
diff --git a/compiler/ncnv.pas b/compiler/ncnv.pas
index 50c9d7786a..7a99797870 100644
--- a/compiler/ncnv.pas
+++ b/compiler/ncnv.pas
@@ -2592,6 +2592,27 @@ implementation
end;
{$endif not CPUNO32BITOPS}
+ procedure swap_const_value (var val : TConstExprInt; size : longint);
+ begin
+ case size of
+ 1 : {do nothing };
+ 2 : if val.signed then
+ val.svalue:=swapendian(smallint(val.svalue))
+ else
+ val.uvalue:=swapendian(word(val.uvalue));
+ 4 : if val.signed then
+ val.svalue:=swapendian(longint(val.svalue))
+ else
+ val.uvalue:=swapendian(qword(val.uvalue));
+ 8 : if val.signed then
+ val.svalue:=swapendian(int64(val.svalue))
+ else
+ val.uvalue:=swapendian(qword(val.uvalue));
+ else
+ internalerror(2014111201);
+ end;
+ end;
+
function ttypeconvnode.simplify(forinline : boolean): tnode;
var
hp: tnode;
@@ -2707,7 +2728,7 @@ implementation
not(convtype=tc_char_2_char) then
begin
{ replace the resultdef and recheck the range }
- if ([nf_explicit,nf_internal] * flags <> []) then
+ if ([nf_explicit,nf_absolute, nf_internal] * flags <> []) then
include(left.flags, nf_explicit)
else
{ no longer an ordconst with an explicit typecast }
@@ -2726,7 +2747,16 @@ implementation
tordconstnode(left).value:=-ord(tordconstnode(left).value<>0);
end
else
- testrange(resultdef,tordconstnode(left).value,(nf_explicit in flags),false);
+ begin
+ { for constant values on absolute variables, swaping is required }
+ if (target_info.endian = endian_big) and (nf_absolute in flags) then
+ swap_const_value(tordconstnode(left).value,tordconstnode(left).resultdef.size);
+ testrange(resultdef,tordconstnode(left).value,(nf_explicit in flags)
+ or (nf_absolute in flags),false);
+ { swap value back, but according to new type }
+ if (target_info.endian = endian_big) and (nf_absolute in flags) then
+ swap_const_value(tordconstnode(left).value,resultdef.size);
+ end;
left.resultdef:=resultdef;
tordconstnode(left).typedef:=resultdef;
if is_signed(resultdef) then
diff --git a/compiler/nflw.pas b/compiler/nflw.pas
index c76b171fc2..bc6edd8c18 100644
--- a/compiler/nflw.pas
+++ b/compiler/nflw.pas
@@ -457,7 +457,7 @@ implementation
if hp.resultdef.typ<>pointerdef then
internalerror(2010061904);
inserttypeconv(hp,
- carraydef.create_from_pointer(tpointerdef(hp.resultdef).pointeddef));
+ carraydef.create_from_pointer(tpointerdef(hp.resultdef)));
hp:=cvecnode.create(hp,ctemprefnode.create(innerloopcounter));
addstatement(innerloopbodystatement,
cassignmentnode.create(hloopvar,hp));
@@ -1394,7 +1394,7 @@ implementation
not(is_typeparam(left.resultdef)) then
inserttypeconv(left,pasbool8type);
- result:=internalsimplify(true);
+ result:=internalsimplify(not(nf_internal in flags));
end;
@@ -1524,8 +1524,11 @@ implementation
set_varstate(left,vs_written,[]);
{ loop unrolling }
- if cs_opt_loopunroll in current_settings.optimizerswitches then
+ if (cs_opt_loopunroll in current_settings.optimizerswitches) and
+ { statements must be error free }
+ not(nf_error in t2.flags) then
begin
+ typecheckpass(t2);
res:=t2.simplify(false);
if assigned(res) then
t2:=res;
diff --git a/compiler/ngenutil.pas b/compiler/ngenutil.pas
index 1811029fb1..6b5a4169fd 100644
--- a/compiler/ngenutil.pas
+++ b/compiler/ngenutil.pas
@@ -605,9 +605,14 @@ implementation
StructList: TFPList absolute arg;
begin
if (tdef(p).typ in [objectdef,recorddef]) and
- not (df_generic in tdef(p).defoptions) and
- ([oo_has_class_constructor,oo_has_class_destructor] * tabstractrecorddef(p).objectoptions <> []) then
- StructList.Add(p);
+ not (df_generic in tdef(p).defoptions) then
+ begin
+ { first add the class... }
+ if ([oo_has_class_constructor,oo_has_class_destructor] * tabstractrecorddef(p).objectoptions <> []) then
+ StructList.Add(p);
+ { ... and then also add all subclasses }
+ tabstractrecorddef(p).symtable.deflist.foreachcall(@AddToStructInits,arg);
+ end;
end;
@@ -908,7 +913,7 @@ implementation
begin
if (target_res.id in [res_elf,res_macho,res_xcoff]) then
begin
- ResourceInfo:=TAsmList.Create;
+ ResourceInfo:=current_asmdata.asmlists[al_globals];
maybe_new_object_file(ResourceInfo);
new_section(ResourceInfo,sec_data,'FPC_RESLOCATION',sizeof(aint));
@@ -923,9 +928,6 @@ implementation
{$ELSE}
ResourceInfo.Concat(Tai_const.Create_64bit(0));
{$ENDIF}
- maybe_new_object_file(current_asmdata.asmlists[al_globals]);
- current_asmdata.asmlists[al_globals].concatlist(ResourceInfo);
- ResourceInfo.free;
end;
end;
diff --git a/compiler/ngtcon.pas b/compiler/ngtcon.pas
index 2592482d09..a2aabb8619 100644
--- a/compiler/ngtcon.pas
+++ b/compiler/ngtcon.pas
@@ -81,6 +81,7 @@ interface
function parse_single_packed_const(def: tdef; var bp: tbitpackedval): boolean;
protected
list: tasmlist;
+ datalist: tasmlist;
procedure parse_packed_array_def(def: tarraydef);
procedure parse_arraydef(def:tarraydef);override;
@@ -97,7 +98,7 @@ interface
procedure tc_emit_stringdef(def: tstringdef; var node: tnode);override;
public
constructor create(sym: tstaticvarsym);virtual;
- function parse_into_asmlist: tasmlist;
+ procedure parse_into_asmlist(out res, data: tasmlist);
end;
tasmlisttypedconstbuilderclass = class of tasmlisttypedconstbuilder;
@@ -428,6 +429,7 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
begin
inherited;
list:=tasmlist.create;
+ datalist:=tasmlist.create;
curoffset:=0;
end;
@@ -545,7 +547,7 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
ll.ofs:=0;
end
else
- ll:=emit_ansistring_const(current_asmdata.asmlists[al_const],strval,strlength,def.encoding);
+ ll:=emit_ansistring_const(datalist,strval,strlength,def.encoding);
list.concat(Tai_const.Create_sym_offset(ll.lab,ll.ofs));
end;
st_unicodestring,
@@ -560,7 +562,7 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
else
begin
winlike:=(def.stringtype=st_widestring) and (tf_winlikewidestring in target_info.flags);
- ll:=emit_unicodestring_const(current_asmdata.asmlists[al_const],
+ ll:=emit_unicodestring_const(datalist,
strval,
def.encoding,
winlike);
@@ -833,8 +835,8 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
else
varalign:=0;
varalign:=const_align(varalign);
- new_section(current_asmdata.asmlists[al_const], sec_rodata, ll.name, varalign);
- current_asmdata.asmlists[al_const].concat(Tai_label.Create(ll));
+ new_section(datalist, sec_rodata, ll.name, varalign);
+ datalist.concat(Tai_label.Create(ll));
if node.nodetype=stringconstn then
begin
len:=tstringconstnode(node).len;
@@ -844,11 +846,11 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
len:=255;
getmem(ca,len+2);
move(tstringconstnode(node).value_str^,ca^,len+1);
- current_asmdata.asmlists[al_const].concat(Tai_string.Create_pchar(ca,len+1));
+ datalist.concat(Tai_string.Create_pchar(ca,len+1));
end
else
if is_constcharnode(node) then
- current_asmdata.asmlists[al_const].concat(Tai_string.Create(char(byte(tordconstnode(node).value.svalue))+#0))
+ datalist.concat(Tai_string.Create(char(byte(tordconstnode(node).value.svalue))+#0))
else
IncompatibleTypes(node.resultdef, def);
end
@@ -859,8 +861,8 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
begin
current_asmdata.getdatalabel(ll);
list.concat(Tai_const.Create_sym(ll));
- current_asmdata.asmlists[al_typedconsts].concat(tai_align.create(const_align(sizeof(pint))));
- current_asmdata.asmlists[al_typedconsts].concat(Tai_label.Create(ll));
+ new_section(datalist,sec_rodata_norel,ll.name,const_align(sizeof(pint)));
+ datalist.concat(Tai_label.Create(ll));
if (node.nodetype in [stringconstn,ordconstn]) then
begin
{ convert to unicodestring stringconstn }
@@ -870,9 +872,9 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
begin
pw:=pcompilerwidestring(tstringconstnode(node).value_str);
for i:=0 to tstringconstnode(node).len-1 do
- current_asmdata.asmlists[al_typedconsts].concat(Tai_const.Create_16bit(pw^.data[i]));
+ datalist.concat(Tai_const.Create_16bit(pw^.data[i]));
{ ending #0 }
- current_asmdata.asmlists[al_typedconsts].concat(Tai_const.Create_16bit(0))
+ datalist.concat(Tai_const.Create_16bit(0))
end;
end
else
@@ -1060,8 +1062,8 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
(not equal_defs(node.resultdef,def) and
not is_subequal(node.resultdef,def)) then
begin
- node.free;
incompatibletypes(node.resultdef,def);
+ node.free;
consume_all_until(_SEMICOLON);
result:=false;
exit;
@@ -1689,10 +1691,11 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
end;
- function tasmlisttypedconstbuilder.parse_into_asmlist: tasmlist;
+ procedure tasmlisttypedconstbuilder.parse_into_asmlist(out res,data: tasmlist);
begin
read_typed_const_data(tcsym.vardef);
- result:=list;
+ res:=list;
+ data:=datalist;
end;
diff --git a/compiler/ninl.pas b/compiler/ninl.pas
index 1185675d9f..a81bdfe459 100644
--- a/compiler/ninl.pas
+++ b/compiler/ninl.pas
@@ -66,6 +66,7 @@ interface
function first_trunc_real: tnode; virtual;
function first_int_real: tnode; virtual;
function first_abs_long: tnode; virtual;
+ function first_IncDec: tnode; virtual;
function first_IncludeExclude: tnode; virtual;
function first_get_frame: tnode; virtual;
function first_setlength: tnode; virtual;
@@ -2075,7 +2076,7 @@ implementation
in_const_swap_long :
hp:=cordconstnode.create((vl and $ffff) shl 16+(vl shr 16),left.resultdef,true);
in_const_swap_qword :
- hp:=cordconstnode.create((vl and $ffff) shl 32+(vl shr 32),left.resultdef,true);
+ hp:=cordconstnode.create((vl and $ffffffff) shl 32+(vl shr 32),left.resultdef,true);
in_const_ptr:
begin
{Don't construct pointers from negative values.}
@@ -3280,11 +3281,8 @@ implementation
function tinlinenode.pass_1 : tnode;
var
- hp,hpp,resultnode : tnode;
+ hp: tnode;
shiftconst: longint;
- tempnode: ttempcreatenode;
- newstatement: tstatementnode;
- newblock: tblocknode;
begin
result:=nil;
@@ -3419,99 +3417,7 @@ implementation
in_inc_x,
in_dec_x:
begin
- expectloc:=LOC_VOID;
-
- { range/overflow checking doesn't work properly }
- { with the inc/dec code that's generated (JM) }
- if ((current_settings.localswitches * [cs_check_overflow,cs_check_range] <> []) and
- { No overflow check for pointer operations, because inc(pointer,-1) will always
- trigger an overflow. For uint32 it works because then the operation is done
- in 64bit. Range checking is not applicable to pointers either }
- (tcallparanode(left).left.resultdef.typ<>pointerdef))
-{$ifdef jvm}
- { enums are class instances on the JVM -> special treatment }
- or (tcallparanode(left).left.resultdef.typ=enumdef)
-{$endif}
- then
- { convert to simple add (JM) }
- begin
- newblock := internalstatements(newstatement);
- { extra parameter? }
- if assigned(tcallparanode(left).right) then
- begin
- { Yes, use for add node }
- hpp := tcallparanode(tcallparanode(left).right).left;
- tcallparanode(tcallparanode(left).right).left := nil;
- if assigned(tcallparanode(tcallparanode(left).right).right) then
- CGMessage(parser_e_illegal_expression);
- end
- else
- begin
- { no, create constant 1 }
- hpp := cordconstnode.create(1,tcallparanode(left).left.resultdef,false);
- end;
- typecheckpass(hpp);
-
- { make sure we don't call functions part of the left node twice (and generally }
- { optimize the code generation) }
- { Storing address is not always an optimization: alignment of left is not known
- at this point, so we must assume the worst and use an unaligned pointer.
- This results in larger and slower code on alignment-sensitive targets.
- Therefore the complexity condition below is questionable, maybe just filtering
- out calls with "= NODE_COMPLEXITY_INF" is sufficient.
- Value of 3 corresponds to subscript nodes, i.e. record field. }
- if node_complexity(tcallparanode(left).left) > 3 then
- begin
- tempnode := ctempcreatenode.create(voidpointertype,voidpointertype.size,tt_persistent,true);
- addstatement(newstatement,tempnode);
- addstatement(newstatement,cassignmentnode.create(ctemprefnode.create(tempnode),
- caddrnode.create_internal(tcallparanode(left).left.getcopy)));
- hp := cderefnode.create(ctemprefnode.create(tempnode));
- inserttypeconv_internal(hp,tcallparanode(left).left.resultdef);
- end
- else
- begin
- hp := tcallparanode(left).left.getcopy;
- tempnode := nil;
- end;
-
- resultnode := hp.getcopy;
- { avoid type errors from the addn/subn }
- if not is_integer(resultnode.resultdef) then
- begin
- inserttypeconv_internal(hp,sinttype);
- inserttypeconv_internal(hpp,sinttype);
- end;
-
- { addition/substraction depending on inc/dec }
- if inlinenumber = in_inc_x then
- hpp := caddnode.create(addn,hp,hpp)
- else
- hpp := caddnode.create(subn,hp,hpp);
- { assign result of addition }
- if not(is_integer(resultnode.resultdef)) then
- inserttypeconv(hpp,corddef.create(
-{$ifdef cpu64bitaddr}
- s64bit,
-{$else cpu64bitaddr}
- s32bit,
-{$endif cpu64bitaddr}
- get_min_value(resultnode.resultdef),
- get_max_value(resultnode.resultdef)))
- else
- inserttypeconv(hpp,resultnode.resultdef);
- { avoid any possible warnings }
- inserttypeconv_internal(hpp,resultnode.resultdef);
-
- addstatement(newstatement,cassignmentnode.create(resultnode,hpp));
- { deallocate the temp }
- if assigned(tempnode) then
- addstatement(newstatement,ctempdeletenode.create(tempnode));
- { firstpass it }
- firstpass(tnode(newblock));
- { return new node }
- result := newblock;
- end;
+ result:=first_IncDec;
end;
in_include_x_y,
@@ -3853,6 +3759,110 @@ implementation
end;
+ function tinlinenode.first_IncDec: tnode;
+ var
+ hp,hpp,resultnode : tnode;
+ tempnode: ttempcreatenode;
+ newstatement: tstatementnode;
+ newblock: tblocknode;
+ begin
+ expectloc:=LOC_VOID;
+ result:=nil;
+
+ { range/overflow checking doesn't work properly }
+ { with the inc/dec code that's generated (JM) }
+ if ((current_settings.localswitches * [cs_check_overflow,cs_check_range] <> []) and
+ { No overflow check for pointer operations, because inc(pointer,-1) will always
+ trigger an overflow. For uint32 it works because then the operation is done
+ in 64bit. Range checking is not applicable to pointers either }
+ (tcallparanode(left).left.resultdef.typ<>pointerdef))
+{$ifdef jvm}
+ { enums are class instances on the JVM -> special treatment }
+ or (tcallparanode(left).left.resultdef.typ=enumdef)
+{$endif}
+ then
+ { convert to simple add (JM) }
+ begin
+ newblock := internalstatements(newstatement);
+ { extra parameter? }
+ if assigned(tcallparanode(left).right) then
+ begin
+ { Yes, use for add node }
+ hpp := tcallparanode(tcallparanode(left).right).left;
+ tcallparanode(tcallparanode(left).right).left := nil;
+ if assigned(tcallparanode(tcallparanode(left).right).right) then
+ CGMessage(parser_e_illegal_expression);
+ end
+ else
+ begin
+ { no, create constant 1 }
+ hpp := cordconstnode.create(1,tcallparanode(left).left.resultdef,false);
+ end;
+ typecheckpass(hpp);
+
+ { make sure we don't call functions part of the left node twice (and generally }
+ { optimize the code generation) }
+ { Storing address is not always an optimization: alignment of left is not known
+ at this point, so we must assume the worst and use an unaligned pointer.
+ This results in larger and slower code on alignment-sensitive targets.
+ Therefore the complexity condition below is questionable, maybe just filtering
+ out calls with "= NODE_COMPLEXITY_INF" is sufficient.
+ Value of 3 corresponds to subscript nodes, i.e. record field. }
+ if node_complexity(tcallparanode(left).left) > 3 then
+ begin
+ tempnode := ctempcreatenode.create(voidpointertype,voidpointertype.size,tt_persistent,true);
+ addstatement(newstatement,tempnode);
+ addstatement(newstatement,cassignmentnode.create(ctemprefnode.create(tempnode),
+ caddrnode.create_internal(tcallparanode(left).left.getcopy)));
+ hp := cderefnode.create(ctemprefnode.create(tempnode));
+ inserttypeconv_internal(hp,tcallparanode(left).left.resultdef);
+ end
+ else
+ begin
+ hp := tcallparanode(left).left.getcopy;
+ tempnode := nil;
+ end;
+
+ resultnode := hp.getcopy;
+ { avoid type errors from the addn/subn }
+ if not is_integer(resultnode.resultdef) then
+ begin
+ inserttypeconv_internal(hp,sinttype);
+ inserttypeconv_internal(hpp,sinttype);
+ end;
+
+ { addition/substraction depending on inc/dec }
+ if inlinenumber = in_inc_x then
+ hpp := caddnode.create(addn,hp,hpp)
+ else
+ hpp := caddnode.create(subn,hp,hpp);
+ { assign result of addition }
+ if not(is_integer(resultnode.resultdef)) then
+ inserttypeconv(hpp,corddef.create(
+{$ifdef cpu64bitaddr}
+ s64bit,
+{$else cpu64bitaddr}
+ s32bit,
+{$endif cpu64bitaddr}
+ get_min_value(resultnode.resultdef),
+ get_max_value(resultnode.resultdef)))
+ else
+ inserttypeconv(hpp,resultnode.resultdef);
+ { avoid any possible warnings }
+ inserttypeconv_internal(hpp,resultnode.resultdef);
+
+ addstatement(newstatement,cassignmentnode.create(resultnode,hpp));
+ { deallocate the temp }
+ if assigned(tempnode) then
+ addstatement(newstatement,ctempdeletenode.create(tempnode));
+ { firstpass it }
+ firstpass(tnode(newblock));
+ { return new node }
+ result := newblock;
+ end;
+ end;
+
+
function tinlinenode.first_IncludeExclude: tnode;
begin
result:=nil;
@@ -4107,6 +4117,7 @@ implementation
{$endif}
result:=cifnode.create(cnotnode.create(tcallparanode(left).left),
ccallnode.createintern('fpc_assert',paras),nil);
+ include(result.flags,nf_internal);
tcallparanode(left).left:=nil;
tcallparanode(left).right:=nil;
end;
diff --git a/compiler/nmat.pas b/compiler/nmat.pas
index 47ab9aaa21..183cbd098d 100644
--- a/compiler/nmat.pas
+++ b/compiler/nmat.pas
@@ -931,26 +931,8 @@ implementation
begin
if not(target_info.system in systems_wince) then
begin
- case tfloatdef(resultdef).floattype of
- s32real:
- begin
- procname:='float32_sub';
- fdef:=search_system_type('FLOAT32REC').typedef;
- end;
- s64real:
- begin
- procname:='float64_sub';
- fdef:=search_system_type('FLOAT64').typedef;
- end;
- {!!! not yet implemented
- s128real:
- }
- else
- internalerror(2005082801);
- end;
- result:=ctypeconvnode.create_internal(ccallnode.createintern(procname,ccallparanode.create(
- ctypeconvnode.create_internal(left,fDef),
- ccallparanode.create(ctypeconvnode.create_internal(crealconstnode.create(0,resultdef),fdef),nil))),resultdef);
+ expectloc:=LOC_REGISTER;
+ exit;
end
else
begin
diff --git a/compiler/nmem.pas b/compiler/nmem.pas
index c2bd94fce0..9e87041519 100644
--- a/compiler/nmem.pas
+++ b/compiler/nmem.pas
@@ -106,6 +106,9 @@ interface
tsubscriptnodeclass = class of tsubscriptnode;
tvecnode = class(tbinarynode)
+ protected
+ function first_arraydef: tnode; virtual;
+ public
constructor create(l,r : tnode);virtual;
function pass_1 : tnode;override;
function pass_typecheck:tnode;override;
@@ -570,7 +573,7 @@ implementation
else
begin
hp:=left;
- while assigned(hp) and (hp.nodetype in [typeconvn,vecn,derefn,subscriptn]) do
+ while assigned(hp) and (hp.nodetype in [typeconvn,derefn,subscriptn]) do
hp:=tunarynode(hp).left;
if not assigned(hp) then
internalerror(200412042);
@@ -833,7 +836,7 @@ implementation
function tvecnode.pass_typecheck:tnode;
var
hightree: tnode;
- htype,elementdef : tdef;
+ htype,elementdef,elementptrdef : tdef;
newordtyp: tordtype;
valid : boolean;
begin
@@ -946,8 +949,10 @@ implementation
else
{Convert indexes into dynamically allocated strings to aword.}
inserttypeconv(right,uinttype);
+ pointerdef:
+ inserttypeconv(right,tpointerdef(left.resultdef).pointer_arithmetic_int_type);
else
- {Others, i.e. pointer indexes to aint.}
+ {Others, (are there any?) indexes to aint.}
inserttypeconv(right,sinttype);
end;
@@ -1014,7 +1019,7 @@ implementation
) then
begin
{ convert pointer to array }
- htype:=carraydef.create_from_pointer(tpointerdef(left.resultdef).pointeddef);
+ htype:=carraydef.create_from_pointer(tpointerdef(left.resultdef));
inserttypeconv(left,htype);
if right.nodetype=rangen then
resultdef:=htype
@@ -1029,19 +1034,23 @@ implementation
case tstringdef(left.resultdef).stringtype of
st_unicodestring,
st_widestring :
- elementdef:=cwidechartype;
- st_ansistring :
- elementdef:=cansichartype;
- st_longstring :
- elementdef:=cansichartype;
+ begin
+ elementdef:=cwidechartype;
+ elementptrdef:=widecharpointertype;
+ end;
+ st_ansistring,
+ st_longstring,
st_shortstring :
- elementdef:=cansichartype;
+ begin
+ elementdef:=cansichartype;
+ elementptrdef:=charpointertype;
+ end;
else
internalerror(2013112902);
end;
if right.nodetype=rangen then
begin
- htype:=carraydef.create_from_pointer(elementdef);
+ htype:=carraydef.create_from_pointer(tpointerdef(elementptrdef));
resultdef:=htype;
end
else
@@ -1100,17 +1109,32 @@ implementation
tcallnode.gen_high_tree }
if (right.nodetype=rangen) then
CGMessagePos(right.fileinfo,parser_e_illegal_expression)
- else if (not is_packed_array(left.resultdef)) or
- ((tarraydef(left.resultdef).elepackedbitsize mod 8) = 0) then
- if left.expectloc=LOC_CREFERENCE then
- expectloc:=LOC_CREFERENCE
- else
- expectloc:=LOC_REFERENCE
+ else if left.resultdef.typ=arraydef then
+ result:=first_arraydef
else
- if left.expectloc=LOC_CREFERENCE then
- expectloc:=LOC_CSUBSETREF
- else
- expectloc:=LOC_SUBSETREF;
+ begin
+ if left.expectloc=LOC_CREFERENCE then
+ expectloc:=LOC_CREFERENCE
+ else
+ expectloc:=LOC_REFERENCE
+ end;
+ end;
+
+
+ function tvecnode.first_arraydef: tnode;
+ begin
+ result:=nil;
+ if (not is_packed_array(left.resultdef)) or
+ ((tarraydef(left.resultdef).elepackedbitsize mod 8) = 0) then
+ if left.expectloc=LOC_CREFERENCE then
+ expectloc:=LOC_CREFERENCE
+ else
+ expectloc:=LOC_REFERENCE
+ else
+ if left.expectloc=LOC_CREFERENCE then
+ expectloc:=LOC_CSUBSETREF
+ else
+ expectloc:=LOC_SUBSETREF;
end;
diff --git a/compiler/nutils.pas b/compiler/nutils.pas
index a802fffdf7..7cfa826a0d 100644
--- a/compiler/nutils.pas
+++ b/compiler/nutils.pas
@@ -1043,6 +1043,41 @@ implementation
function handle_staticfield_access(sym: tsym; nested: boolean; var p1: tnode): boolean;
+
+ function handle_generic_staticfield_access:boolean;
+ var
+ tmp : tstoreddef;
+ pd : tprocdef;
+ begin
+ { in case we have a specialization inside a generic (thus the static var sym does not
+ exist) we simply simulate a non static access to avoid unnecessary errors }
+ if assigned(sym.owner.defowner) and (df_specialization in tstoreddef(sym.owner.defowner).defoptions) then
+ begin
+ tmp:=tstoreddef(sym.owner.defowner);
+ while assigned(tmp) do
+ begin
+ if df_generic in tmp.defoptions then
+ begin
+ p1.free;
+ if assigned(current_procinfo) then
+ begin
+ pd:=current_procinfo.get_normal_proc.procdef;
+ if assigned(pd) and pd.no_self_node then
+ p1:=cloadvmtaddrnode.create(ctypenode.create(pd.struct))
+ else
+ p1:=load_self_node;
+ end
+ else
+ p1:=load_self_node;
+ p1:=csubscriptnode.create(sym,p1);
+ exit(true);
+ end;
+ tmp:=tstoreddef(tmp.owner.defowner);
+ end;
+ end;
+ result:=false;
+ end;
+
var
static_name: shortstring;
srsymtable: tsymtable;
@@ -1052,6 +1087,8 @@ implementation
if (sp_static in sym.symoptions) then
begin
result:=true;
+ if handle_generic_staticfield_access then
+ exit;
if not nested then
static_name:=lower(sym.owner.name^)+'_'+sym.name
else
diff --git a/compiler/ogbase.pas b/compiler/ogbase.pas
index 700b550592..4b1c54da77 100644
--- a/compiler/ogbase.pas
+++ b/compiler/ogbase.pas
@@ -145,7 +145,9 @@ interface
{ Contains only strings }
oso_strings,
{ Must be cloned when writing separate debug file }
- oso_debug_copy
+ oso_debug_copy,
+ { Has relocations with explicit addends (ELF-specific) }
+ oso_rela_relocs
);
TObjSectionOptions = set of TObjSectionOption;
diff --git a/compiler/ogcoff.pas b/compiler/ogcoff.pas
index c4bc96cfc5..e17d776394 100644
--- a/compiler/ogcoff.pas
+++ b/compiler/ogcoff.pas
@@ -1665,6 +1665,13 @@ const pemagic : array[0..3] of byte = (
strname : string;
auxrec : array[0..17] of byte;
objsec : TObjSection;
+
+ { keeps string manipulations out of main routine }
+ procedure UnsupportedSymbolType;
+ begin
+ Comment(V_Fatal,'Unsupported COFF symbol type '+tostr(sym.typ)+' at index '+tostr(symidx)+' while reading '+InputFileName);
+ end;
+
begin
with TCoffObjData(objdata) do
begin
@@ -1738,8 +1745,7 @@ const pemagic : array[0..3] of byte = (
end;
COFF_SYM_SECTION :
begin
- if sym.section=0 then
- InputError('Failed reading coff file, illegal section');
+ { GetSection checks that index is in range }
objsec:=GetSection(sym.section);
if assigned(objsec) then
begin
@@ -1757,7 +1763,7 @@ const pemagic : array[0..3] of byte = (
COFF_SYM_FILE :
;
else
- internalerror(200602232);
+ UnsupportedSymbolType;
end;
FSymTbl^[symidx]:=objsym;
{ read aux records }
diff --git a/compiler/ogelf.pas b/compiler/ogelf.pas
index 8aa5526c39..8a8ee3388a 100644
--- a/compiler/ogelf.pas
+++ b/compiler/ogelf.pas
@@ -1216,7 +1216,7 @@ implementation
shstrtabsect:=TElfObjSection.create_ext(data,'.shstrtab',SHT_STRTAB,0,1,0);
{ "no executable stack" marker }
{ TODO: used by OpenBSD/NetBSD as well? }
- if (target_info.system in (systems_linux + systems_android + systems_freebsd)) and
+ if (target_info.system in (systems_linux + systems_android + systems_freebsd + systems_dragonfly)) and
not(cs_executable_stack in current_settings.moduleswitches) then
TElfObjSection.create_ext(data,'.note.GNU-stack',SHT_PROGBITS,0,1,0);
{ symbol for filename }
@@ -1260,7 +1260,9 @@ implementation
if target_info.system in systems_openbsd then
header.e_ident[EI_OSABI]:=ELFOSABI_OPENBSD
else if target_info.system in systems_freebsd then
- header.e_ident[EI_OSABI]:=ELFOSABI_FREEBSD;
+ header.e_ident[EI_OSABI]:=ELFOSABI_FREEBSD
+ else if target_info.system in systems_dragonfly then
+ header.e_ident[EI_OSABI]:=ELFOSABI_NONE;
header.e_type:=ET_REL;
header.e_machine:=ElfTarget.machine_code;
header.e_version:=1;
@@ -1334,6 +1336,8 @@ implementation
FReader.Seek(secrec.relocpos);
if secrec.sec=nil then
InternalError(2012060203);
+ if (secrec.relentsize=3*sizeof(pint)) then
+ with secrec.sec do SecOptions:=SecOptions+[oso_rela_relocs];
for i:=0 to secrec.relocs-1 do
begin
FReader.Read(rel,secrec.relentsize);
@@ -2023,7 +2027,9 @@ implementation
if target_info.system in systems_openbsd then
header.e_ident[EI_OSABI]:=ELFOSABI_OPENBSD
else if target_info.system in systems_freebsd then
- header.e_ident[EI_OSABI]:=ELFOSABI_FREEBSD;
+ header.e_ident[EI_OSABI]:=ELFOSABI_FREEBSD
+ else if target_info.system in systems_dragonfly then
+ header.e_ident[EI_OSABI]:=ELFOSABI_NONE;
if IsSharedLibrary then
header.e_type:=ET_DYN
else
diff --git a/compiler/optdfa.pas b/compiler/optdfa.pas
index 5f65379fb9..1ae6fcb2bc 100644
--- a/compiler/optdfa.pas
+++ b/compiler/optdfa.pas
@@ -59,7 +59,7 @@ unit optdfa;
symconst,symdef,symsym,
defutil,
procinfo,
- nutils,
+ nutils,htypechk,
nbas,nflw,ncon,ninl,ncal,nset,nld,nadd,
optbase;
@@ -700,7 +700,10 @@ unit optdfa;
begin
{ issue only a hint for var, when encountering the node passed as out, we need only to stop searching }
if tcallparanode(n).parasym.varspez=vs_var then
- MessagePos1(hpt.fileinfo,sym_h_uninitialized_local_variable,tloadnode(hpt).symtableentry.RealName);
+ UninitializedVariableMessage(hpt.fileinfo,false,
+ tloadnode(hpt).symtable.symtabletype=localsymtable,
+ is_managed_type(tloadnode(hpt).resultdef),
+ tloadnode(hpt).symtableentry.RealName);
AddFilepos(hpt.fileinfo);
result:=fen_norecurse_true;
end
@@ -778,7 +781,10 @@ unit optdfa;
begin
if (vo_is_funcret in varsym.varoptions) and not(WarnedForLocation(n.fileinfo)) then
begin
- MessagePos(n.fileinfo,sym_w_function_result_uninitialized);
+ if is_managed_type(varsym.vardef) then
+ MessagePos(n.fileinfo,sym_w_managed_function_result_uninitialized)
+ else
+ MessagePos(n.fileinfo,sym_w_function_result_uninitialized);
AddFilepos(n.fileinfo);
result:=fen_norecurse_true;
end
@@ -787,10 +793,7 @@ unit optdfa;
{ typed consts are initialized, further, warn only once per location }
if not (vo_is_typed_const in varsym.varoptions) and not(WarnedForLocation(n.fileinfo)) then
begin
- if varsym.typ=paravarsym then
- MessagePos1(n.fileinfo,sym_w_uninitialized_variable,varsym.realname)
- else
- MessagePos1(n.fileinfo,sym_w_uninitialized_local_variable,varsym.realname);
+ UninitializedVariableMessage(n.fileinfo,true,varsym.typ=localvarsym,is_managed_type(varsym.vardef),varsym.realname);
AddFilepos(n.fileinfo);
result:=fen_norecurse_true;
end;
@@ -905,7 +908,10 @@ unit optdfa;
{ don't warn about constructors }
not(current_procinfo.procdef.proctypeoption in [potype_class_constructor,potype_constructor]) then
begin
- MessagePos(node.fileinfo,sym_w_function_result_uninitialized);
+ if is_managed_type(current_procinfo.procdef.returndef) then
+ MessagePos(node.fileinfo,sym_w_managed_function_result_uninitialized)
+ else
+ MessagePos(node.fileinfo,sym_w_function_result_uninitialized);
Setlength(SearchNodeInfo.warnedfilelocs,length(SearchNodeInfo.warnedfilelocs)+1);
SearchNodeInfo.warnedfilelocs[high(SearchNodeInfo.warnedfilelocs)]:=node.fileinfo;
diff --git a/compiler/options.pas b/compiler/options.pas
index 6d687fdd55..0078199e7c 100644
--- a/compiler/options.pas
+++ b/compiler/options.pas
@@ -42,7 +42,7 @@ Type
FileLevel : longint;
QuickInfo : string;
FPCBinaryPath: string;
- ParaIncludeCfgPath,
+ ParaIncludeCfgPath,
ParaIncludePath,
ParaUnitPath,
ParaObjectPath,
@@ -52,7 +52,7 @@ Type
Constructor Create;
Destructor Destroy;override;
procedure WriteLogo;
- procedure WriteInfo;
+ procedure WriteInfo (More: string);
procedure WriteHelpPages;
procedure WriteQuickInfo;
procedure IllegalPara(const opt:TCmdStr);
@@ -112,7 +112,7 @@ var
const
{ gprof (requires implementation of g_profilecode in the code generator) }
- supported_targets_pg = [system_i386_linux,system_x86_64_linux,system_mipseb_linux,system_mipsel_linux]
+ supported_targets_pg = [system_i386_linux,system_x86_64_linux,system_mipseb_linux,system_mipsel_linux,system_arm_linux]
+ [system_i386_win32]
+ [system_powerpc_darwin,system_x86_64_darwin]
+ [system_i386_GO32V2]
@@ -136,6 +136,9 @@ begin
undef_system_macro('FPC_LINK_DYNAMIC');
init_settings.globalswitches:=init_settings.globalswitches+[cs_link_static];
init_settings.globalswitches:=init_settings.globalswitches-[cs_link_shared,cs_link_smart];
+{$ifdef AIX}
+ init_settings.globalswitches:=init_settings.globalswitches+[cs_link_native];
+{$endif}
end;
@@ -182,185 +185,403 @@ begin
end;
-procedure Toption.WriteInfo;
+procedure Toption.WriteInfo (More: string);
var
p : pchar;
- hs,hs1,s : TCmdStr;
- target : tsystem;
- cpu : tcputype;
- fpu : tfputype;
- opt : toptimizerswitch;
- wpopt: twpoptimizerswitch;
- abi : tabi;
- asmmode : tasmmode;
-{$if defined(arm) or defined(avr) or defined(mipsel)}
- controllertype : tcontrollertype;
-{$endif defined(arm) or defined(avr) or defined(mipsel)}
-begin
- p:=MessagePchar(option_info);
- while assigned(p) do
- begin
- s:=GetMsgLine(p);
- { list OS Targets }
- if pos('$OSTARGETS',s)>0 then
- begin
- for target:=low(tsystem) to high(tsystem) do
- if assigned(targetinfos[target]) then
- begin
- hs:=s;
- hs1:=targetinfos[target]^.name;
- if tf_under_development in targetinfos[target]^.flags then
- hs1:=hs1+' (under development)';
- Replace(hs,'$OSTARGETS',hs1);
- Comment(V_Normal,hs);
- end;
- end
- else if pos('$INSTRUCTIONSETS',s)>0 then
- begin
- hs1:='';
- for cpu:=low(tcputype) to high(tcputype) do
- begin
- if length(hs1+cputypestr[cpu])>70 then
- begin
- hs:=s;
- Replace(hs,'$INSTRUCTIONSETS',hs1);
- Comment(V_Normal,hs);
- hs1:=''
- end
- else
- if hs1<>'' then
- hs1:=hs1+',';
- if cputypestr[cpu]<>'' then
- hs1:=hs1+cputypestr[cpu];
- end;
- if hs1<>'' then
- begin
- hs:=s;
- Replace(hs,'$INSTRUCTIONSETS',hs1);
- Comment(V_Normal,hs);
- hs1:=''
- end;
- end
- else if pos('$FPUINSTRUCTIONSETS',s)>0 then
+ hs,hs1,hs3,s : TCmdStr;
+ J: longint;
+const
+ NewLineStr = '$\n';
+ OSTargetsPlaceholder = '$OSTARGETS';
+ CPUListPlaceholder = '$INSTRUCTIONSETS';
+ FPUListPlaceholder = '$FPUINSTRUCTIONSETS';
+ ABIListPlaceholder = '$ABITARGETS';
+ OptListPlaceholder = '$OPTIMIZATIONS';
+ WPOListPlaceholder = '$WPOPTIMIZATIONS';
+ AsmModeListPlaceholder = '$ASMMODES';
+ ControllerListPlaceholder = '$CONTROLLERTYPES';
+ FeatureListPlaceholder = '$FEATURELIST';
+
+ procedure SplitLine (var OrigString: TCmdStr; const Placeholder: TCmdStr;
+ var RemainderString: TCmdStr);
+ var
+ I, L: longint;
+ HS2: TCmdStr;
+ begin
+ RemainderString := '';
+ if OrigString = '' then
+ Exit;
+ repeat
+ I := Pos (NewLineStr, OrigString);
+ if I > 0 then
begin
- hs1:='';
- for fpu:=low(tfputype) to high(tfputype) do
- begin
- if length(hs1+fputypestr[fpu])>70 then
- begin
- hs:=s;
- Replace(hs,'$FPUINSTRUCTIONSETS',hs1);
- Comment(V_Normal,hs);
- hs1:=''
- end
- else
- if hs1<>'' then
- hs1:=hs1+',';
- if fputypestr[fpu]<>'' then
- hs1:=hs1+fputypestr[fpu];
- end;
+ HS2 := Copy (OrigString, 1, Pred (I));
+{ Stop if this line contains the placeholder for list replacement }
+ if Pos (Placeholder, HS2) > 0 then
+ begin
+ RemainderString := Copy (OrigString, I + Length (NewLineStr),
+ Length (OrigString) - I - Length (NewLineStr));
+{ Special case - NewLineStr at the end of the line }
+ if RemainderString = '' then
+ RemainderString := NewLineStr;
+ OrigString := HS2;
+ Exit;
+ end;
+ Comment (V_Normal, HS2);
+ Delete (OrigString, 1, Pred (I) + Length (NewLineStr));
+ end;
+ until I = 0;
+ if (OrigString <> '') and (Pos (Placeholder, OrigString) = 0) then
+ Comment (V_Normal, OrigString);
+ end;
+
+ procedure ListOSTargets (OrigString: TCmdStr);
+ var
+ target : tsystem;
+ begin
+ SplitLine (OrigString, OSTargetsPlaceholder, HS3);
+ for target:=low(tsystem) to high(tsystem) do
+ if assigned(targetinfos[target]) then
+ begin
+ hs1:=targetinfos[target]^.shortname;
+ if OrigString = '' then
+ WriteLn (hs1)
+ else
+ begin
+ hs := OrigString;
+ hs1:=hs1 + ': ' + targetinfos[target]^.name;
+ if tf_under_development in targetinfos[target]^.flags then
+ hs1:=hs1+' {*}';
+ Replace(hs,OSTargetsPlaceholder,hs1);
+ Comment(V_Normal,hs);
+ end;
+ end;
+ OrigString := HS3;
+ SplitLine (OrigString, OSTargetsPlaceholder, HS3);
+ end;
+
+ procedure ListCPUInstructionSets (OrigString: TCmdStr);
+ var
+ cpu : tcputype;
+ begin
+ SplitLine (OrigString, CPUListPlaceholder, HS3);
+ hs1:='';
+ for cpu:=low(tcputype) to high(tcputype) do
+ begin
+ if (OrigString = '') then
+ begin
+ if CPUTypeStr [CPU] <> '' then
+ WriteLn (CPUTypeStr [CPU]);
+ end
+ else
+ begin
+ if length(hs1+cputypestr[cpu])>70 then
+ begin
+ hs:=OrigString;
+ Replace(hs,CPUListPlaceholder,hs1);
+ Comment(V_Normal,hs);
+ hs1:=''
+ end
+ else if hs1<>'' then
+ hs1:=hs1+',';
+ if cputypestr[cpu]<>'' then
+ hs1:=hs1+cputypestr[cpu];
+ end;
+ end;
+ if (OrigString <> '') and (hs1 <> '') then
+ begin
+ hs:=OrigString;
+ Replace(hs,CPUListPlaceholder,hs1);
+ Comment(V_Normal,hs);
+ hs1:=''
+ end;
+ OrigString := HS3;
+ SplitLine (OrigString, CPUListPlaceholder, HS3);
+ end;
+
+ procedure ListFPUInstructionSets (OrigString: TCmdStr);
+ var
+ fpu : tfputype;
+ begin
+ SplitLine (OrigString, FPUListPlaceholder, HS3);
+ hs1:='';
+ for fpu:=low(tfputype) to high(tfputype) do
+ begin
+ if (OrigString = '') then
+ begin
+ if FPUTypeStr [FPU] <> '' then
+ WriteLn (FPUTypeStr [FPU]);
+ end
+ else
+ begin
+ if length(hs1+fputypestr[fpu])>70 then
+ begin
+ hs:=OrigString;
+ Replace(hs,FPUListPlaceholder,hs1);
+ Comment(V_Normal,hs);
+ hs1:=''
+ end
+ else if hs1<>'' then
+ hs1:=hs1+',';
+ if fputypestr[fpu]<>'' then
+ hs1:=hs1+fputypestr[fpu];
+ end;
+ end;
+ if (OrigString <> '') and (hs1 <> '') then
+ begin
+ hs:=OrigString;
+ Replace(hs,FPUListPlaceholder,hs1);
+ Comment(V_Normal,hs);
+ hs1:=''
+ end;
+ OrigString := HS3;
+ SplitLine (OrigString, FPUListPlaceholder, HS3);
+ end;
+
+ procedure ListABITargets (OrigString: TCmdStr);
+ var
+ abi : tabi;
+ begin
+ SplitLine (OrigString, ABIListPlaceholder, HS3);
+ for abi:=low(abi) to high(abi) do
+ begin
+ if not abiinfo[abi].supported then
+ continue;
+ hs1:=abiinfo[abi].name;
+ if hs1<>'' then
+ begin
+ if OrigString = '' then
+ WriteLn (HS1)
+ else
+ begin
+ hs:=OrigString;
+ Replace(hs,ABIListPlaceholder,hs1);
+ Comment(V_Normal,hs);
+ end;
+ end;
+ end;
+ OrigString := HS3;
+ SplitLine (OrigString, ABIListPlaceholder, HS3);
+ end;
+
+ procedure ListOptimizations (OrigString: TCmdStr);
+ var
+ opt : toptimizerswitch;
+ begin
+ SplitLine (OrigString, OptListPlaceholder, HS3);
+ for opt:=low(toptimizerswitch) to high(toptimizerswitch) do
+ begin
+ if opt in supported_optimizerswitches then
+ begin
+ hs1:=OptimizerSwitchStr[opt];
if hs1<>'' then
- begin
- hs:=s;
- Replace(hs,'$FPUINSTRUCTIONSETS',hs1);
+ begin
+ if OrigString = '' then
+ WriteLn (hs1)
+ else
+ begin
+ hs:=OrigString;
+ Replace(hs,OptListPlaceholder,hs1);
Comment(V_Normal,hs);
- hs1:=''
- end;
- end
- else if pos('$ABITARGETS',s)>0 then
- begin
- for abi:=low(abi) to high(abi) do
- begin
- if not abiinfo[abi].supported then
- continue;
- hs:=s;
- hs1:=abiinfo[abi].name;
- if hs1<>'' then
- begin
- Replace(hs,'$ABITARGETS',hs1);
- Comment(V_Normal,hs);
- end;
- end;
- end
- else if pos('$OPTIMIZATIONS',s)>0 then
- begin
- for opt:=low(toptimizerswitch) to high(toptimizerswitch) do
- begin
- if opt in supported_optimizerswitches then
- begin
- hs:=s;
- hs1:=OptimizerSwitchStr[opt];
- if hs1<>'' then
- begin
- Replace(hs,'$OPTIMIZATIONS',hs1);
- Comment(V_Normal,hs);
- end;
- end;
- end;
- end
- else if pos('$WPOPTIMIZATIONS',s)>0 then
- begin
- for wpopt:=low(twpoptimizerswitch) to high(twpoptimizerswitch) do
- begin
-{ currently all whole program optimizations are platform-independent
- if opt in supported_wpoptimizerswitches then
+ end;
+ end;
+ end;
+ end;
+ OrigString := HS3;
+ SplitLine (OrigString, OptListPlaceholder, HS3);
+ end;
+
+ procedure ListWPOptimizations (OrigString: TCmdStr);
+ var
+ wpopt: twpoptimizerswitch;
+ begin
+ SplitLine (OrigString, WPOListPlaceholder, HS3);
+ for wpopt:=low(twpoptimizerswitch) to high(twpoptimizerswitch) do
+ begin
+{ currently all whole program optimizations are platform-independent
+ if opt in supported_wpoptimizerswitches then
}
- begin
- hs:=s;
- hs1:=WPOptimizerSwitchStr[wpopt];
- if hs1<>'' then
- begin
- Replace(hs,'$WPOPTIMIZATIONS',hs1);
- Comment(V_Normal,hs);
- end;
- end;
- end
- end
- else if pos('$ASMMODES',s)>0 then
- begin
- for asmmode:=low(tasmmode) to high(tasmmode) do
- if assigned(asmmodeinfos[asmmode]) then
+ begin
+ hs1:=WPOptimizerSwitchStr[wpopt];
+ if hs1<>'' then
+ begin
+ if OrigString = '' then
+ WriteLn (hs1)
+ else
begin
- hs:=s;
- hs1:=asmmodeinfos[asmmode]^.idtxt;
- if hs1<>'' then
- begin
- Replace(hs,'$ASMMODES',hs1);
- Comment(V_Normal,hs);
- end;
+ hs:=OrigString;
+ Replace(hs,WPOListPlaceholder,hs1);
+ Comment(V_Normal,hs);
end;
- end
- else if pos('$CONTROLLERTYPES',s)>0 then
- begin
- {$if defined(arm) or defined(avr) or defined(mipsel)}
- hs1:='';
- for controllertype:=low(tcontrollertype) to high(tcontrollertype) do
- begin
- if length(hs1+embedded_controllers[controllertype].ControllerTypeStr)>70 then
- begin
- hs:=s;
- Replace(hs,'$CONTROLLERTYPES',hs1);
- Comment(V_Normal,hs);
- hs1:=''
- end
- else
- if hs1<>'' then
- hs1:=hs1+',';
- if embedded_controllers[controllertype].ControllerTypeStr<>'' then
- hs1:=hs1+embedded_controllers[controllertype].ControllerTypeStr;
- end;
- if hs1<>'' then
- begin
- hs:=s;
- Replace(hs,'$CONTROLLERTYPES',hs1);
+ end;
+ end;
+ end;
+ OrigString := HS3;
+ SplitLine (OrigString, WPOListPlaceholder, HS3);
+ end;
+
+ procedure ListAsmModes (OrigString: TCmdStr);
+ var
+ asmmode : tasmmode;
+ begin
+ SplitLine (OrigString, AsmModeListPlaceholder, HS3);
+ for asmmode:=low(tasmmode) to high(tasmmode) do
+ if assigned(asmmodeinfos[asmmode]) then
+ begin
+ hs1:=asmmodeinfos[asmmode]^.idtxt;
+ if hs1<>'' then
+ begin
+ if OrigString = '' then
+ WriteLn (hs1)
+ else
+ begin
+ hs:=OrigString;
+ Replace(hs,AsmModeListPlaceholder,hs1);
+ Comment(V_Normal,hs);
+ end;
+ end;
+ end;
+ OrigString := HS3;
+ SplitLine (OrigString, AsmModeListPlaceholder, HS3);
+ end;
+
+ procedure ListControllerTypes (OrigString: TCmdStr);
+ var
+ controllertype : tcontrollertype;
+ begin
+{$PUSH}
+ {$WARN 6018 OFF} (* Unreachable code due to compile time evaluation *)
+ if (ControllerSupport) then
+ begin
+ SplitLine (OrigString, ControllerListPlaceholder, HS3);
+ hs1:='';
+ for controllertype:=low(tcontrollertype) to high(tcontrollertype) do
+ begin
+ if (OrigString = '') then
+ begin
+ if Embedded_Controllers [ControllerType].ControllerTypeStr <> '' then
+ WriteLn (Embedded_Controllers [ControllerType].ControllerTypeStr);
+ end
+ else
+ begin
+ if length(hs1+embedded_controllers[controllertype].ControllerTypeStr)
+ >70 then
+ begin
+ hs:=OrigString;
+ Replace(hs,ControllerListPlaceholder,hs1);
Comment(V_Normal,hs);
hs1:=''
- end;
- {$else defined(arm) or defined(avr) or defined(mipsel)}
- {$endif defined(arm) or defined(avr) or defined(mipsel)}
- end
- else
- Comment(V_Normal,s);
+ end
+ else if hs1<>'' then
+ hs1:=hs1+',';
+ if embedded_controllers[controllertype].ControllerTypeStr<>'' then
+ hs1:=hs1+embedded_controllers[controllertype].ControllerTypeStr;
+ end;
+ end;
+ if (OrigString <> '') and (hs1<>'') then
+ begin
+ hs:=OrigString;
+ Replace(hs,ControllerListPlaceholder,hs1);
+ Comment(V_Normal,hs);
+ hs1:=''
+ end;
+ OrigString := HS3;
+ SplitLine (OrigString, ControllerListPlaceholder, HS3);
+ end;
+{$POP}
+ end;
+
+ procedure ListFeatures (OrigString: TCmdStr);
+ var
+ Feature: TFeature;
+ begin
+ SplitLine (OrigString, FeatureListPlaceholder, HS3);
+ HS1 := '';
+ for Feature := Low (TFeature) to High (TFeature) do
+ begin
+ if (OrigString = '') then
+ begin
+ if FeatureStr [Feature] <> '' then
+ WriteLn (FeatureStr [Feature]);
+ end
+ else
+ begin
+ if Length (HS1 + FeatureStr [Feature]) > 70 then
+ begin
+ HS := OrigString;
+ Replace (HS, FeatureListPlaceholder, HS1);
+ Comment (V_Normal, HS);
+ HS1 := ''
+ end
+ else if HS1 <> '' then
+ HS1 := HS1 + ',';
+ if FeatureStr [Feature] <> '' then
+ HS1 := HS1 + FeatureStr [Feature];
+ end;
+ end;
+ if (OrigString <> '') and (HS1 <> '') then
+ begin
+ HS := OrigString;
+ Replace (HS, FeatureListPlaceholder, HS1);
+ Comment (V_Normal, HS);
+ HS1 := ''
+ end;
+ OrigString := HS3;
+ SplitLine (OrigString, FeatureListPlaceholder, HS3);
+ end;
+
+begin
+ if More = '' then
+ begin
+ p:=MessagePchar(option_info);
+ while assigned(p) do
+ begin
+ s:=GetMsgLine(p);
+ { list permitted values for certain options }
+ if pos(OSTargetsPlaceholder,s)>0 then
+ ListOSTargets (S)
+ else if pos(CPUListPlaceholder,s)>0 then
+ ListCPUInstructionSets (S)
+ else if pos(FPUListPlaceholder,s)>0 then
+ ListFPUInstructionSets (S)
+ else if pos(ABIListPlaceholder,s)>0 then
+ ListABITargets (S)
+ else if pos(OptListPlaceholder,s)>0 then
+ ListOptimizations (S)
+ else if pos(WPOListPlaceholder,s)>0 then
+ ListWPOptimizations (S)
+ else if pos(AsmModeListPlaceholder,s)>0 then
+ ListAsmModes (S)
+ else if pos(ControllerListPlaceholder,s)>0 then
+ ListControllerTypes (S)
+ else if pos(FeatureListPlaceholder,s)>0 then
+ ListFeatures (S)
+ else
+ Comment(V_Normal,s);
+ end;
+ end
+ else
+ begin
+ J := 1;
+ while J <= Length (More) do
+ begin
+ if J > 1 then
+ WriteLn; (* Put empty line between multiple sections *)
+ case More [J] of
+ 'a': ListABITargets ('');
+ 'c': ListCPUInstructionSets ('');
+ 'f': ListFPUInstructionSets ('');
+ 'i': ListAsmModes ('');
+ 'o': ListOptimizations ('');
+ 'r': ListFeatures ('');
+ 't': ListOSTargets ('');
+ 'u': ListControllerTypes ('');
+ 'w': ListWPOptimizations ('');
+ else
+ IllegalPara ('-i' + More);
+ end;
+ Inc (J);
+ end;
end;
StopOptions(0);
end;
@@ -428,6 +649,12 @@ begin
{$ifdef arm}
'A',
{$endif}
+{$ifdef mipsel}
+ 'm',
+{$endif}
+{$ifdef mipseb}
+ 'M',
+{$endif}
{$ifdef powerpc}
'P',
{$endif}
@@ -746,6 +973,7 @@ begin
(
((length(opt)>1) and (opt[2] in ['i','d','v','T','u','n','X','l'])) or
((length(opt)>3) and (opt[2]='F') and (opt[3]='e')) or
+ ((length(opt)>3) and (opt[2]='C') and (opt[3]='p')) or
((length(opt)>3) and (opt[2]='W') and (opt[3]='m'))
)
) then
@@ -970,24 +1198,46 @@ begin
'P':
begin
delete(more,1,1);
- if upper(copy(more,1,pos('=',more)-1))='PACKSET' then
- begin
- delete(more,1,pos('=',more));
- if (more='0') or (more='DEFAULT') or (more='NORMAL') then
- init_settings.setalloc:=0
- else if more='1' then
- init_settings.setalloc:=1
- else if more='2' then
- init_settings.setalloc:=2
- else if more='4' then
- init_settings.setalloc:=4
- else if more='8' then
- init_settings.setalloc:=8
- else
- IllegalPara(opt);
- end
- else
- IllegalPara(opt);
+ case upper(copy(more,1,pos('=',more)-1)) of
+ 'PACKSET':
+ begin
+ delete(more,1,pos('=',more));
+ case more of
+ '0','DEFAULT','NORMAL':
+ init_settings.setalloc:=0;
+ '1','2','4','8':
+ init_settings.setalloc:=StrToInt(more);
+ else
+ IllegalPara(opt);
+ end
+ end;
+ 'PACKENUM':
+ begin
+ delete(more,1,pos('=',more));
+ case more of
+ '0','DEFAULT','NORMAL':
+ init_settings.packenum:=4;
+ '1','2','4':
+ init_settings.packenum:=StrToInt(more);
+ else
+ IllegalPara(opt);
+ end;
+ end;
+ 'PACKRECORD':
+ begin
+ delete(more,1,pos('=',more));
+ case more of
+ '0','DEFAULT','NORMAL':
+ init_settings.packrecords:=default_settings.packrecords;
+ '1','2','4','8','16','32':
+ init_settings.packrecords:=StrToInt(more);
+ else
+ IllegalPara(opt);
+ end;
+ end
+ else
+ IllegalPara(opt);
+ end;
end;
'r' :
If UnsetBool(More, j, opt, false) then
@@ -1389,8 +1639,9 @@ begin
'i' :
begin
- if More='' then
- WriteInfo
+ if (More='') or
+ (More [1] in ['a', 'c', 'f', 'i', 'o', 'r', 't', 'u', 'w']) then
+ WriteInfo (More)
else
QuickInfo:=QuickInfo+More;
end;
@@ -1414,8 +1665,10 @@ begin
'l' :
ParaLogo:=not UnSetBool(more,0,opt,true);
+{$ifdef PREPROCWRITE}
'm' :
parapreprocess:=not UnSetBool(more,0,opt,true);
+{$endif PREPROCWRITE}
'M' :
begin
@@ -1963,8 +2216,8 @@ begin
end;
'p':
begin
-{$if defined(arm) or defined(avr) or defined(mipsel)}
- if (target_info.system in systems_embedded) then
+ if (target_info.system in systems_embedded) and
+ ControllerSupport then
begin
s:=upper(copy(more,j+1,length(more)-j));
if not(SetControllerType(s,init_settings.controllertype)) then
@@ -1972,7 +2225,6 @@ begin
break;
end
else
-{$endif defined(arm) or defined(avr) or defined(mipsel)}
IllegalPara(opt);
end;
'P':
@@ -2684,11 +2936,11 @@ begin
undef_system_macro('FPC_SECTION_THREADVARS');
{ Code generation flags }
- if def and
- (tf_pic_default in target_info.flags) then
- include(init_settings.moduleswitches,cs_create_pic)
- else
- exclude(init_settings.moduleswitches,cs_create_pic);
+ if (tf_pic_default in target_info.flags) then
+ if def then
+ include(init_settings.moduleswitches,cs_create_pic)
+ else
+ exclude(init_settings.moduleswitches,cs_create_pic);
{ Resources support }
if (tf_has_winlike_resources in target_info.flags) then
@@ -3493,6 +3745,16 @@ if (target_info.abi = abi_eabihf) then
if not option.FPUSetExplicitly then
init_settings.fputype:=fpu_mips2;
end;
+ system_mipsel_embedded:
+ begin
+ { set default cpu type to PIC32MX and softfloat for MIPSEL-EMBEDDED target unless specified otherwise }
+ if not option.CPUSetExplicitly then
+ init_settings.cputype:=cpu_pic32mx;
+ if not option.OptCPUSetExplicitly then
+ init_settings.optimizecputype:=cpu_pic32mx;
+ if not option.FPUSetExplicitly then
+ init_settings.fputype:=fpu_soft;
+ end;
end;
{$endif mipsel}
diff --git a/compiler/optloop.pas b/compiler/optloop.pas
index 9a8ea5acaf..2f312aed24 100644
--- a/compiler/optloop.pas
+++ b/compiler/optloop.pas
@@ -81,10 +81,7 @@ unit optloop;
function replaceloadnodes(var n: tnode; arg: pointer): foreachnoderesult;
begin
- if ((n.nodetype=loadn) and (preplaceinfo(arg)^.node.nodetype=loadn) and
- (tloadnode(n).symtableentry=tloadnode(preplaceinfo(arg)^.node).symtableentry)) or
- ((n.nodetype=temprefn) and (preplaceinfo(arg)^.node.nodetype=temprefn) and
- (ttemprefnode(n).tempinfo=ttemprefnode(preplaceinfo(arg)^.node).tempinfo)) then
+ if n.isequal(preplaceinfo(arg)^.node) then
begin
if n.flags*[nf_modify,nf_write,nf_address_taken]<>[] then
internalerror(2012090402);
@@ -135,12 +132,12 @@ unit optloop;
unrollblock:=internalstatements(unrollstatement);
{ can we get rid completly of the for ? }
- getridoffor:=(unrolls=counts) and not(usesbreakcontinue);
+ getridoffor:=(unrolls=counts) and not(usesbreakcontinue) and
+ { TP/Macpas allows assignments to the for-variables, so we cannot get rid of the for }
+ ([m_tp7,m_mac]*current_settings.modeswitches=[]);
if getridoffor then
begin
- if not(tfornode(node).left.nodetype in [temprefn,loadn]) then
- internalerror(2012090301);
replaceinfo.node:=tfornode(node).left;
replaceinfo.value:=tordconstnode(tfornode(node).right).value;
end;
diff --git a/compiler/paramgr.pas b/compiler/paramgr.pas
index 199231ce6b..bb634564a6 100644
--- a/compiler/paramgr.pas
+++ b/compiler/paramgr.pas
@@ -179,15 +179,14 @@ implementation
{ true if uses a parameter as return value }
function tparamanager.ret_in_param(def:tdef;pd:tabstractprocdef):boolean;
begin
+ { This handles all managed types, including COM interfaces and Variants }
if handle_common_ret_in_param(def,pd,result) then
exit;
ret_in_param:=(def.typ=arraydef) or
(def.typ=recorddef) or
(def.typ=stringdef) or
((def.typ=procvardef) and not tprocvardef(def).is_addressonly) or
- { interfaces are also passed by reference to be compatible with delphi and COM }
- ((def.typ=objectdef) and (is_object(def) or is_interface(def) or is_dispinterface(def))) or
- (def.typ=variantdef) or
+ ((def.typ=objectdef) and (is_object(def))) or
((def.typ=setdef) and not is_smallset(def));
end;
@@ -420,7 +419,12 @@ implementation
newparaloc^.loc:=paraloc^.loc;
case newparaloc^.loc of
LOC_REGISTER :
- newparaloc^.register:=cg.getintregister(list,paraloc^.size);
+ begin
+ if (vo_has_explicit_paraloc in parasym.varoptions) and (paraloc^.loc = LOC_REGISTER) then
+ newparaloc^.register:=paraloc^.register
+ else
+ newparaloc^.register:=cg.getintregister(list,paraloc^.size);
+ end;
LOC_FPUREGISTER :
newparaloc^.register:=cg.getfpuregister(list,paraloc^.size);
LOC_MMREGISTER :
diff --git a/compiler/parser.pas b/compiler/parser.pas
index 15f262e783..ffad2f1291 100644
--- a/compiler/parser.pas
+++ b/compiler/parser.pas
@@ -122,6 +122,8 @@ implementation
include(supported_calling_conventions,pocall_syscall);
system_m68k_amiga:
include(supported_calling_conventions,pocall_syscall);
+ system_i386_aros:
+ include(supported_calling_conventions,pocall_syscall);
{$ifdef i8086}
system_i8086_msdos:
begin
diff --git a/compiler/pdecl.pas b/compiler/pdecl.pas
index 737336fecf..3153281815 100644
--- a/compiler/pdecl.pas
+++ b/compiler/pdecl.pas
@@ -937,7 +937,7 @@ implementation
read_var_decls([vd_threadvar])
else
begin
- Message(parser_f_unsupported_feature);
+ Message1(parser_f_unsupported_feature,featurestr[f_threading]);
read_var_decls([]);
end;
end;
diff --git a/compiler/pdecobj.pas b/compiler/pdecobj.pas
index 3e8c21cffb..0f7c7d4f71 100644
--- a/compiler/pdecobj.pas
+++ b/compiler/pdecobj.pas
@@ -1216,7 +1216,10 @@ implementation
begin
if is_interface(current_structdef) or
is_objc_protocol_or_category(current_structdef) or
- is_objectpascal_helper(current_structdef) or
+ (
+ is_objectpascal_helper(current_structdef) and
+ not class_fields
+ ) or
(is_javainterface(current_structdef) and
not(class_fields and final_fields)) then
Message(parser_e_no_vars_in_interfaces);
diff --git a/compiler/pdecsub.pas b/compiler/pdecsub.pas
index e57308c7d0..a03c3c15f1 100644
--- a/compiler/pdecsub.pas
+++ b/compiler/pdecsub.pas
@@ -548,6 +548,8 @@ implementation
orgsp,sp : TIDString;
srsym : tsym;
checkstack : psymtablestackitem;
+ oldfilepos,
+ classstartfilepos,
procstartfilepos : tfileposinfo;
i,
index : longint;
@@ -822,9 +824,16 @@ implementation
try_to_consume(_POINT) then
begin
repeat
+ classstartfilepos:=procstartfilepos;
searchagain:=false;
+
+ { throw the error at the right location }
+ oldfilepos:=current_filepos;
+ current_filepos:=procstartfilepos;
if not assigned(astruct) and not assigned(srsym) then
srsym:=search_object_name(sp,true);
+ current_filepos:=oldfilepos;
+
{ consume proc name }
procstartfilepos:=current_tokenpos;
consume_proc_name;
@@ -837,7 +846,7 @@ implementation
if (potype in [potype_class_constructor,potype_class_destructor]) then
sp:=lower(sp)
else
- if (potype=potype_operator)and(optoken=NOTOKEN) then
+ if (potype=potype_operator) and (optoken=NOTOKEN) then
parse_operator_name;
srsym:=tsym(astruct.symtable.Find(sp));
if assigned(srsym) then
@@ -865,13 +874,13 @@ implementation
end
else
begin
- Message(parser_e_methode_id_expected);
+ MessagePos(procstartfilepos,parser_e_methode_id_expected);
{ recover by making it a normal procedure instead of method }
astruct:=nil;
end;
end
else
- Message(parser_e_class_id_expected);
+ MessagePos(classstartfilepos,parser_e_class_id_expected);
until not searchagain;
end
else
@@ -1125,7 +1134,7 @@ implementation
end;
single_type(pd.returndef,[stoAllowSpecialization]);
-// Issue #24863, commented out for now because it breaks building of RTL and needs extensive
+ // Issue #24863, enabled only for the main progra commented out for now because it breaks building of RTL and needs extensive
// testing and/or RTL patching.
{
if ((pd.returndef=cvarianttype) or (pd.returndef=colevarianttype)) and
@@ -1792,13 +1801,13 @@ end;
procedure pd_syscall(pd:tabstractprocdef);
-{$if defined(powerpc) or defined(m68k)}
+{$if defined(powerpc) or defined(m68k) or defined(i386)}
var
vs : tparavarsym;
sym : tsym;
symtable : TSymtable;
v: Tconstexprint;
-{$endif defined(powerpc) or defined(m68k)}
+{$endif defined(powerpc) or defined(m68k) or defined(i386)}
begin
if (pd.typ<>procdef) and (target_info.system <> system_powerpc_amiga) then
internalerror(2003042614);
@@ -1816,6 +1825,7 @@ begin
is_32bitint(tabstractvarsym(sym).vardef)
) then
begin
+ include(pd.procoptions,po_syscall_has_libsym);
tcpuprocdef(pd).libsym:=sym;
if po_syscall_legacy in tprocdef(pd).procoptions then
begin
@@ -1827,8 +1837,8 @@ begin
else
Message(parser_e_32bitint_or_pointer_variable_expected);
end;
- (paramanager as tm68kparamanager).create_funcretloc_info(pd,calleeside);
- (paramanager as tm68kparamanager).create_funcretloc_info(pd,callerside);
+ paramanager.create_funcretloc_info(pd,calleeside);
+ paramanager.create_funcretloc_info(pd,callerside);
v:=get_intconst;
if (v<low(Tprocdef(pd).extnumber)) or (v>high(Tprocdef(pd).extnumber)) then
@@ -1850,6 +1860,7 @@ begin
is_32bitint(tabstractvarsym(sym).vardef)
) then
begin
+ include(pd.procoptions,po_syscall_has_libsym);
tcpuprocdef(pd).libsym:=sym;
vs:=cparavarsym.create('$syscalllib',paranr_syscall_basesysv,vs_value,tabstractvarsym(sym).vardef,[vo_is_syscall_lib,vo_is_hidden_para]);
pd.parast.insert(vs);
@@ -1858,8 +1869,8 @@ begin
Message(parser_e_32bitint_or_pointer_variable_expected);
end;
- (paramanager as tppcparamanager).create_funcretloc_info(pd,calleeside);
- (paramanager as tppcparamanager).create_funcretloc_info(pd,callerside);
+ paramanager.create_funcretloc_info(pd,calleeside);
+ paramanager.create_funcretloc_info(pd,callerside);
v:=get_intconst;
if (v<low(Tprocdef(pd).extnumber)) or (v>high(Tprocdef(pd).extnumber)) then
@@ -1917,6 +1928,7 @@ begin
is_32bitint(tabstractvarsym(sym).vardef)
) then
begin
+ include(pd.procoptions,po_syscall_has_libsym);
tcpuprocdef(pd).libsym:=sym;
if po_syscall_legacy in tprocdef(pd).procoptions then
begin
@@ -1950,8 +1962,8 @@ begin
else
Message(parser_e_32bitint_or_pointer_variable_expected);
end;
- (paramanager as tppcparamanager).create_funcretloc_info(pd,calleeside);
- (paramanager as tppcparamanager).create_funcretloc_info(pd,callerside);
+ paramanager.create_funcretloc_info(pd,calleeside);
+ paramanager.create_funcretloc_info(pd,callerside);
v:=get_intconst;
if (v<low(Tprocdef(pd).extnumber)) or (v>high(Tprocdef(pd).extnumber)) then
@@ -1960,6 +1972,38 @@ begin
Tprocdef(pd).extnumber:=v.uvalue;
end;
{$endif powerpc}
+{$ifdef i386}
+ if target_info.system = system_i386_aros then
+ begin
+ include(pd.procoptions,po_syscall_sysvbase);
+
+ if consume_sym(sym,symtable) then
+ begin
+ if (sym.typ=staticvarsym) and
+ (
+ (tabstractvarsym(sym).vardef.typ=pointerdef) or
+ is_32bitint(tabstractvarsym(sym).vardef)
+ ) then
+ begin
+ include(pd.procoptions,po_syscall_has_libsym);
+ tcpuprocdef(pd).libsym:=sym;
+ vs:=cparavarsym.create('$syscalllib',paranr_syscall_sysvbase,vs_value,tabstractvarsym(sym).vardef,[vo_is_syscall_lib,vo_is_hidden_para]);
+ pd.parast.insert(vs);
+ end
+ else
+ Message(parser_e_32bitint_or_pointer_variable_expected);
+ end;
+
+ paramanager.create_funcretloc_info(pd,calleeside);
+ paramanager.create_funcretloc_info(pd,callerside);
+
+ v:=get_intconst;
+ if (v<low(Tprocdef(pd).extnumber)) or (v>high(Tprocdef(pd).extnumber)) then
+ message(parser_e_range_check_error)
+ else
+ Tprocdef(pd).extnumber:=v.uvalue * 4; { sizeof Pointer for the target }
+ end;
+{$endif}
end;
@@ -2061,6 +2105,13 @@ begin
pd_external(pd);
end;
+procedure pd_winapi(pd:tabstractprocdef);
+begin
+ if not(target_info.system in systems_wince) then
+ pd.proccalloption:=pocall_cdecl
+ else
+ pd.proccalloption:=pocall_stdcall;
+end;
type
pd_handler=procedure(pd:tabstractprocdef);
@@ -2076,7 +2127,7 @@ type
end;
const
{Should contain the number of procedure directives we support.}
- num_proc_directives=44;
+ num_proc_directives=45;
proc_direcdata:array[1..num_proc_directives] of proc_dir_rec=
(
(
@@ -2443,7 +2494,7 @@ const
handler : nil;
pocall : pocall_none;
pooption : [po_varargs];
- mutexclpocall : [pocall_internproc,pocall_stdcall,pocall_register,
+ mutexclpocall : [pocall_internproc,pocall_register,
pocall_far16,pocall_oldfpccall,pocall_mwpascal];
mutexclpotype : [];
mutexclpo : [po_assembler,po_interrupt,po_inline]
@@ -2470,6 +2521,15 @@ const
mutexclpotype : [{potype_constructor,potype_destructor}potype_class_constructor,potype_class_destructor];
mutexclpo : [po_public,po_exports,po_interrupt,po_assembler,po_inline]
),(
+ idtok:_WINAPI;
+ pd_flags : [pd_interface,pd_implemen,pd_body,pd_procvar];
+ handler : @pd_winapi;
+ pocall : pocall_none;
+ pooption : [];
+ mutexclpocall : [pocall_stdcall,pocall_cdecl];
+ mutexclpotype : [potype_constructor,potype_destructor,potype_class_constructor,potype_class_destructor];
+ mutexclpo : [po_external]
+ ),(
idtok:_ENUMERATOR;
pd_flags : [pd_interface,pd_object,pd_record];
handler : @pd_enumerator;
@@ -2565,7 +2625,7 @@ const
next variable !! }
if ((pdflags * [pd_procvar,pd_object,pd_record,pd_objcclass,pd_objcprot])=[]) and
not(idtoken=_PROPERTY) then
- Message1(parser_w_unknown_proc_directive_ignored,name);
+ Message1(parser_w_unknown_proc_directive_ignored,pattern);
exit;
end;
@@ -2876,7 +2936,7 @@ const
{ for objcclasses this is checked later, because the entire
class may be external. }
is_objc_class_or_protocol(tprocdef(pd).struct)) and
- not(pd.proccalloption in (cdecl_pocalls + [pocall_mwpascal])) then
+ not(pd.proccalloption in (cdecl_pocalls + [pocall_mwpascal,pocall_stdcall])) then
Message(parser_e_varargs_need_cdecl_and_external);
end
else
@@ -2884,7 +2944,7 @@ const
{ both must be defined now }
if not((po_external in pd.procoptions) or
(pd.typ=procvardef)) or
- not(pd.proccalloption in (cdecl_pocalls + [pocall_mwpascal])) then
+ not(pd.proccalloption in (cdecl_pocalls + [pocall_mwpascal,pocall_stdcall])) then
Message(parser_e_varargs_need_cdecl_and_external);
end;
end;
diff --git a/compiler/pexpr.pas b/compiler/pexpr.pas
index 86a7500b67..f8af2be543 100644
--- a/compiler/pexpr.pas
+++ b/compiler/pexpr.pas
@@ -889,6 +889,11 @@ implementation
{ consume the right bracket here for a nicer error position }
consume(_RKLAMMER);
end;
+
+ in_setstring_x_y_z:
+ begin
+ statement_syssym := inline_setstring;
+ end;
else
internalerror(15);
@@ -1711,7 +1716,7 @@ implementation
extdef : tdef;
begin
result:=false;
- if (token=_ID) and (block_type in [bt_body,bt_general,bt_except]) then
+ if (token=_ID) and (block_type in [bt_body,bt_general,bt_except,bt_const]) then
begin
if not assigned(def) then
if node.nodetype=addrn then
diff --git a/compiler/pgenutil.pas b/compiler/pgenutil.pas
index 5b12b97ff7..94cfed0343 100644
--- a/compiler/pgenutil.pas
+++ b/compiler/pgenutil.pas
@@ -182,11 +182,26 @@ uses
odt_interfacecorba,
odt_interfacejava,
odt_dispinterface:
- if not def_is_related(paraobjdef,formalobjdef.childof) then
- begin
- MessagePos2(filepos,type_e_incompatible_types,paraobjdef.typename,formalobjdef.childof.typename);
- result:=false;
- end;
+ begin
+ if (oo_is_forward in paraobjdef.objectoptions) and
+ (paraobjdef.objecttype=formalobjdef.objecttype) and
+ (df_genconstraint in formalobjdef.defoptions) and
+ (
+ (formalobjdef.objecttype=odt_interfacecom) and
+ (formalobjdef.childof=interface_iunknown)
+ )
+ or
+ (
+ (formalobjdef.objecttype=odt_interfacecorba) and
+ (formalobjdef.childof=nil)
+ ) then
+ continue;
+ if not def_is_related(paraobjdef,formalobjdef.childof) then
+ begin
+ MessagePos2(filepos,type_e_incompatible_types,paraobjdef.typename,formalobjdef.childof.typename);
+ result:=false;
+ end;
+ end;
odt_class,
odt_javaclass:
begin
@@ -225,6 +240,14 @@ uses
result:=false;
continue;
end;
+ { for forward declared classes we allow pure TObject/class declarations }
+ if (oo_is_forward in paraobjdef.objectoptions) and
+ (df_genconstraint in formaldef.defoptions) then
+ begin
+ if (formalobjdef.childof=class_tobject) and
+ not formalobjdef.implements_any_interfaces then
+ continue;
+ end;
if assigned(formalobjdef.childof) and
not def_is_related(paradef,formalobjdef.childof) then
begin
@@ -590,6 +613,8 @@ uses
found:=searchsym_in_class(tobjectdef(genericdef.owner.defowner),tobjectdef(genericdef.owner.defowner),ugenname,srsym,st,[])
else
found:=searchsym_in_record(tabstractrecorddef(genericdef.owner.defowner),ugenname,srsym,st);
+ if not found then
+ found:=searchsym(ugenname,srsym,st);
end
else
found:=searchsym(ugenname,srsym,st);
@@ -664,39 +689,6 @@ uses
(current_structdef.objname^=ufinalspecializename) then
tt:=current_structdef;
- { decide in which symtable to put the specialization }
- if parse_generic then
- begin
- if not assigned(current_genericdef) then
- internalerror(2014050901);
- if assigned(current_procinfo) and (df_generic in current_procinfo.procdef.defoptions) then
- { if we are parsing the definition of a method we specialize into
- the local symtable of it }
- specializest:=current_procinfo.procdef.getsymtable(gs_local)
- else
- { we specialize the partial specialization into the symtable of the currently parsed
- generic }
- case current_genericdef.typ of
- procvardef,
- procdef:
- specializest:=current_genericdef.getsymtable(gs_local);
- objectdef,
- recorddef:
- specializest:=current_genericdef.getsymtable(gs_record);
- arraydef:
- specializest:=tarraydef(current_genericdef).symtable;
- else
- internalerror(2014050902);
- end;
- end
- else
- if current_module.is_unit and current_module.in_interface then
- specializest:=current_module.globalsymtable
- else
- specializest:=current_module.localsymtable;
- if not assigned(specializest) then
- internalerror(2014050910);
-
{ Can we reuse an already specialized type? }
{ for this first check whether we are currently specializing a nested
@@ -734,6 +726,39 @@ uses
end;
end;
+ { decide in which symtable to put the specialization }
+ if parse_generic and not assigned(tt) then
+ begin
+ if not assigned(current_genericdef) then
+ internalerror(2014050901);
+ if assigned(current_procinfo) and (df_generic in current_procinfo.procdef.defoptions) then
+ { if we are parsing the definition of a method we specialize into
+ the local symtable of it }
+ specializest:=current_procinfo.procdef.getsymtable(gs_local)
+ else
+ { we specialize the partial specialization into the symtable of the currently parsed
+ generic }
+ case current_genericdef.typ of
+ procvardef,
+ procdef:
+ specializest:=current_genericdef.getsymtable(gs_local);
+ objectdef,
+ recorddef:
+ specializest:=current_genericdef.getsymtable(gs_record);
+ arraydef:
+ specializest:=tarraydef(current_genericdef).symtable;
+ else
+ internalerror(2014050902);
+ end;
+ end
+ else
+ if current_module.is_unit and current_module.in_interface then
+ specializest:=current_module.globalsymtable
+ else
+ specializest:=current_module.localsymtable;
+ if not assigned(specializest) then
+ internalerror(2014050910);
+
{ now check whether there is a specialization somewhere else }
if not assigned(tt) then
begin
@@ -966,6 +991,8 @@ uses
if token=_ID then
begin
generictype:=ctypesym.create(orgpattern,cundefinedtype);
+ { type parameters need to be added as strict private }
+ generictype.visibility:=vis_strictprivate;
include(generictype.symoptions,sp_generic_para);
result.add(orgpattern,generictype);
end;
@@ -1141,6 +1168,8 @@ uses
if assigned(generictype.owner) then
begin
sym:=ctypesym.create(genericlist.nameofindex(i),generictype.typedef);
+ { type parameters need to be added as strict private }
+ sym.visibility:=vis_strictprivate;
st.insert(sym);
include(sym.symoptions,sp_generic_para);
end
@@ -1296,7 +1325,8 @@ uses
if assigned(hmodule.globalsymtable) then
symtablestack.push(hmodule.globalsymtable);
{ push the localsymtable if needed }
- if (hmodule<>current_module) or not current_module.in_interface then
+ if ((hmodule<>current_module) or not current_module.in_interface)
+ and assigned(hmodule.localsymtable) then
symtablestack.push(hmodule.localsymtable);
end;
diff --git a/compiler/pinline.pas b/compiler/pinline.pas
index 65a9640a8a..6c83df2784 100644
--- a/compiler/pinline.pas
+++ b/compiler/pinline.pas
@@ -35,6 +35,7 @@ interface
function new_function : tnode;
function inline_setlength : tnode;
+ function inline_setstring : tnode;
function inline_initialize : tnode;
function inline_finalize : tnode;
function inline_copy : tnode;
@@ -375,11 +376,13 @@ implementation
end;
if found then
begin
- { setup variant selector }
- addstatement(newstatement,cassignmentnode.create(
- csubscriptnode.create(variantselectsymbol,
- cderefnode.create(ctemprefnode.create(temp))),
- p2));
+ { if no tag-field is given, do not create an assignment statement for it }
+ if assigned(variantselectsymbol) then
+ { setup variant selector }
+ addstatement(newstatement,cassignmentnode.create(
+ csubscriptnode.create(variantselectsymbol,
+ cderefnode.create(ctemprefnode.create(temp))),
+ p2));
end
else
Message(parser_e_illegal_expression);
@@ -512,6 +515,55 @@ implementation
end;
+ function inline_setstring : tnode;
+ var
+ paras, strpara, pcharpara: tnode;
+ procname: string;
+ begin
+ consume(_LKLAMMER);
+ paras:=parse_paras(false,false,_RKLAMMER);
+ consume(_RKLAMMER);
+ procname:='';
+ if assigned(paras) and
+ assigned(tcallparanode(paras).right) and
+ assigned(tcallparanode(tcallparanode(paras).right).right) then
+ begin
+ do_typecheckpass(tcallparanode(tcallparanode(paras).right).left);
+ do_typecheckpass(tcallparanode(tcallparanode(tcallparanode(paras).right).right).left);
+ pcharpara:=tcallparanode(tcallparanode(paras).right).left;
+ strpara:=tcallparanode(tcallparanode(tcallparanode(paras).right).right).left;
+ if strpara.resultdef.typ=stringdef then
+ begin
+ { if there are three parameters and the first parameter
+ ( = paras.right.right) is an ansistring, add a codepage
+ parameter }
+ if is_ansistring(strpara.resultdef) then
+ paras:=ccallparanode.create(genintconstnode(tstringdef(strpara.resultdef).encoding),paras);
+ procname:='fpc_setstring_'+tstringdef(strpara.resultdef).stringtypname;
+ { decide which version to call based on the second parameter }
+ if not is_shortstring(strpara.resultdef) then
+ if is_pwidechar(pcharpara.resultdef) or
+ is_widechar(pcharpara.resultdef) or
+ ((pcharpara.resultdef.typ=arraydef) and
+ is_widechar(tarraydef(pcharpara.resultdef).elementdef)) then
+ procname:=procname+'_pwidechar'
+ else
+ procname:=procname+'_pansichar';
+ end;
+ end;
+ { default version (for error message) in case of missing or wrong
+ parameters }
+ if procname='' then
+ if m_default_unicodestring in current_settings.modeswitches then
+ procname:='fpc_setstring_unicodestr_pwidechar'
+ else if m_default_ansistring in current_settings.modeswitches then
+ procname:='fpc_setstring_ansistr_pansichar'
+ else
+ procname:='fpc_setstring_shortstr';
+ result:=ccallnode.createintern(procname,paras)
+ end;
+
+
function inline_initfinal(isinit: boolean): tnode;
var
newblock,
diff --git a/compiler/pmodules.pas b/compiler/pmodules.pas
index 2556bc9d07..6faded7288 100644
--- a/compiler/pmodules.pas
+++ b/compiler/pmodules.pas
@@ -378,11 +378,10 @@ implementation
end;
{ CPU targets with microcontroller support can add a controller specific unit }
-{$if defined(ARM) or defined(AVR) or defined(MIPSEL)}
- if (target_info.system in systems_embedded) and (current_settings.controllertype<>ct_none) and
+ if ControllerSupport and (target_info.system in systems_embedded) and
+ (current_settings.controllertype<>ct_none) and
(embedded_controllers[current_settings.controllertype].controllerunitstr<>'') then
AddUnit(embedded_controllers[current_settings.controllertype].controllerunitstr);
-{$endif ARM AVR MIPSEL}
end;
diff --git a/compiler/powerpc/agppcvasm.pas b/compiler/powerpc/agppcvasm.pas
index 39e93ad29d..4b01f28885 100644
--- a/compiler/powerpc/agppcvasm.pas
+++ b/compiler/powerpc/agppcvasm.pas
@@ -165,7 +165,7 @@ unit agppcvasm;
top_ref :
begin
if o.ref^.refaddr<>addr_full then
- internalerror(200402262);
+ internalerror(200402264);
hs:=o.ref^.symbol.name;
if o.ref^.offset>0 then
hs:=hs+'+'+tostr(o.ref^.offset)
diff --git a/compiler/powerpc/cpuinfo.pas b/compiler/powerpc/cpuinfo.pas
index 340faf7fd4..ac7b4e3cd1 100644
--- a/compiler/powerpc/cpuinfo.pas
+++ b/compiler/powerpc/cpuinfo.pas
@@ -21,6 +21,9 @@ Interface
Type
bestreal = double;
+{$if FPC_FULLVERSION>20700}
+ bestrealrec = TDoubleRec;
+{$endif FPC_FULLVERSION>20700}
ts32real = single;
ts64real = double;
ts80real = extended;
@@ -44,8 +47,25 @@ Type
fpu_standard
);
+ tcontrollertype =
+ (ct_none
+ );
+
Const
+ { 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:''; flashbase:0; flashsize:0; srambase:0; sramsize:0));
+ {$POP}
+
{ calling conventions supported by the code generator }
supported_calling_conventions : tproccalloptions = [
pocall_internproc,
diff --git a/compiler/powerpc/cpupara.pas b/compiler/powerpc/cpupara.pas
index 410a623642..c06ce6d45d 100644
--- a/compiler/powerpc/cpupara.pas
+++ b/compiler/powerpc/cpupara.pas
@@ -670,7 +670,11 @@ unit cpupara;
p.paraloc[callerside].intsize:=tcgsize2size[paracgsize];
paraloc:=p.paraloc[callerside].add_location;
paraloc^.loc:=LOC_REFERENCE;
- paraloc^.size:=paracgsize;
+ { The OS side should be zero extended and the entire "virtual"
+ 68k register should be overwritten. This is what the C ppcinline
+ macros do as well, by casting all arguments to ULONG. A call
+ which breaks w/o this is for example exec/RawPutChar (KB) }
+ paraloc^.size:=OS_ADDR;
paraloc^.def:=p.vardef;
paraloc^.reference.index:=newreg(R_INTREGISTER,RS_R2,R_SUBWHOLE);
{ pattern is always uppercase'd }
diff --git a/compiler/powerpc/nppcadd.pas b/compiler/powerpc/nppcadd.pas
index 7b38f363de..a1f33a7bcd 100644
--- a/compiler/powerpc/nppcadd.pas
+++ b/compiler/powerpc/nppcadd.pas
@@ -73,6 +73,7 @@ interface
tmpreg : tregister;
useconst : boolean;
begin
+ tmpreg:=NR_NO;
// get the constant on the right if there is one
if (left.location.loc = LOC_CONSTANT) then
swapleftright;
@@ -512,6 +513,8 @@ interface
op1 := A_MULLW;
op2 := A_MULHWU
end;
+ else
+ internalerror(2014082040);
end;
end;
current_asmdata.CurrAsmList.concat(taicpu.op_reg_reg_reg(op1,location.register64.reglo,
@@ -663,6 +666,8 @@ interface
cgop := OP_OR;
andn:
cgop := OP_AND;
+ else
+ internalerror(2014082041);
end;
if (left.location.loc = LOC_CONSTANT) then
swapleftright;
diff --git a/compiler/powerpc/nppcmat.pas b/compiler/powerpc/nppcmat.pas
index 8359e65372..8f937a6302 100644
--- a/compiler/powerpc/nppcmat.pas
+++ b/compiler/powerpc/nppcmat.pas
@@ -419,6 +419,7 @@ implementation
op: tasmop;
begin
+ src1:=NR_NO;
secondpass(left);
if is_64bit(left.resultdef) then
begin
diff --git a/compiler/powerpc/symcpu.pas b/compiler/powerpc/symcpu.pas
index 0e76662a88..30bbefe212 100644
--- a/compiler/powerpc/symcpu.pas
+++ b/compiler/powerpc/symcpu.pas
@@ -186,14 +186,16 @@ implementation
procedure tcpuprocdef.ppuload_platform(ppufile: tcompilerppufile);
begin
inherited;
- ppufile.getderef(libsymderef);
+ if po_syscall_has_libsym in procoptions then
+ ppufile.getderef(libsymderef);
end;
procedure tcpuprocdef.ppuwrite_platform(ppufile: tcompilerppufile);
begin
inherited;
- ppufile.putderef(libsymderef);
+ if po_syscall_has_libsym in procoptions then
+ ppufile.putderef(libsymderef);
end;
@@ -208,14 +210,18 @@ implementation
procedure tcpuprocdef.buildderef;
begin
inherited;
- libsymderef.build(libsym);
+ if po_syscall_has_libsym in procoptions then
+ libsymderef.build(libsym);
end;
procedure tcpuprocdef.deref;
begin
inherited;
- libsym:=tsym(libsymderef.resolve);
+ if po_syscall_has_libsym in procoptions then
+ libsym:=tsym(libsymderef.resolve)
+ else
+ libsym:=nil;
end;
begin
diff --git a/compiler/powerpc64/cpuinfo.pas b/compiler/powerpc64/cpuinfo.pas
index 5a42db9b2d..8d4d636a4f 100644
--- a/compiler/powerpc64/cpuinfo.pas
+++ b/compiler/powerpc64/cpuinfo.pas
@@ -21,6 +21,9 @@ uses
type
bestreal = double;
+{$if FPC_FULLVERSION>20700}
+ bestrealrec = TDoubleRec;
+{$endif FPC_FULLVERSION>20700}
ts32real = single;
ts64real = double;
ts80real = extended;
@@ -40,7 +43,25 @@ type
fpu_standard
);
-const
+ tcontrollertype =
+ (ct_none
+ );
+
+
+Const
+ { 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:''; flashbase:0; flashsize:0; srambase:0; sramsize:0));
+ {$POP}
+
{ calling conventions supported by the code generator }
supported_calling_conventions: tproccalloptions = [
pocall_internproc,
diff --git a/compiler/ppcgen/agppcgas.pas b/compiler/ppcgen/agppcgas.pas
index 806493c463..17190b60d0 100644
--- a/compiler/ppcgen/agppcgas.pas
+++ b/compiler/ppcgen/agppcgas.pas
@@ -203,7 +203,7 @@ unit agppcgas;
top_ref :
begin
if o.ref^.refaddr<>addr_full then
- internalerror(200402262);
+ internalerror(200402267);
hs:=o.ref^.symbol.name;
if target_asm.dollarsign<>'$' then
hs:=ReplaceForbiddenAsmSymbolChars(hs);
diff --git a/compiler/ppcgen/cgppc.pas b/compiler/ppcgen/cgppc.pas
index 890cf5bc5f..5a5c11be3c 100644
--- a/compiler/ppcgen/cgppc.pas
+++ b/compiler/ppcgen/cgppc.pas
@@ -33,7 +33,6 @@ unit cgppc;
type
tcgppcgen = class(tcg)
- procedure a_load_const_cgpara(list: TAsmList; size: tcgsize; a: tcgint; const paraloc : tcgpara); override;
procedure a_loadaddr_ref_cgpara(list : TAsmList;const r : treference;const paraloc : tcgpara); override;
procedure a_call_reg(list : TAsmList;reg: tregister); override;
@@ -191,29 +190,6 @@ unit cgppc;
end;
- procedure tcgppcgen.a_load_const_cgpara(list: TAsmList; size: tcgsize; a: tcgint; const
- paraloc: tcgpara);
- var
- ref: treference;
- begin
- paraloc.check_simple_location;
- paramanager.allocparaloc(list,paraloc.location);
- case paraloc.location^.loc of
- LOC_REGISTER, LOC_CREGISTER:
- a_load_const_reg(list, size, a, paraloc.location^.register);
- LOC_REFERENCE:
- begin
- reference_reset(ref,paraloc.alignment);
- ref.base := paraloc.location^.reference.index;
- ref.offset := paraloc.location^.reference.offset;
- a_load_const_ref(list, size, a, ref);
- end;
- else
- internalerror(2002081101);
- end;
- end;
-
-
procedure tcgppcgen.a_loadaddr_ref_cgpara(list : TAsmList;const r : treference;const paraloc : tcgpara);
var
ref: treference;
diff --git a/compiler/ppu.pas b/compiler/ppu.pas
index 141227eeaa..634d7e545e 100644
--- a/compiler/ppu.pas
+++ b/compiler/ppu.pas
@@ -43,7 +43,7 @@ type
{$endif Test_Double_checksum}
const
- CurrentPPUVersion = 170;
+ CurrentPPUVersion = 172;
{ buffer sizes }
maxentrysize = 1024;
diff --git a/compiler/psub.pas b/compiler/psub.pas
index 6d096af576..f4d035ed30 100644
--- a/compiler/psub.pas
+++ b/compiler/psub.pas
@@ -1191,6 +1191,23 @@ implementation
i : integer;
varsym : tabstractnormalvarsym;
{RedoDFA : boolean;}
+
+ procedure delete_marker(anode: tasmnode);
+ var
+ ai: tai;
+ begin
+ if assigned(anode) then
+ begin
+ ai:=anode.currenttai;
+ if assigned(ai) then
+ begin
+ aktproccode.remove(ai);
+ ai.free;
+ anode.currenttai:=nil;
+ end;
+ end;
+ end;
+
begin
{ the initialization procedure can be empty, then we
don't need to generate anything. When it was an empty
@@ -1317,7 +1334,12 @@ implementation
{ iterate through life info of the first node }
for i:=0 to dfabuilder.nodemap.count-1 do
begin
- if DFASetIn(GetUserCode.optinfo^.life,i) then
+ if DFASetIn(GetUserCode.optinfo^.life,i) and
+ { do not warn about parameters passed by var }
+ not((tnode(dfabuilder.nodemap[i]).nodetype=loadn) and (tloadnode(dfabuilder.nodemap[i]).symtableentry.typ=paravarsym) and
+ (tparavarsym(tloadnode(dfabuilder.nodemap[i]).symtableentry).varspez=vs_var) and
+ { function result is passed by var but it must be initialized }
+ not(vo_is_funcret in tparavarsym(tloadnode(dfabuilder.nodemap[i]).symtableentry).varoptions)) then
CheckAndWarn(GetUserCode,tnode(dfabuilder.nodemap[i]));
end;
end;
@@ -1581,6 +1603,16 @@ implementation
not(target_info.system in systems_garbage_collected_managed_types) then
internalerror(200405231);
+ { Position markers are only used to insert additional code after the secondpass
+ and before this point. They are of no use in optimizer. Instead of checking and
+ ignoring all over the optimizer, just remove them here. }
+ delete_marker(entry_asmnode);
+ delete_marker(loadpara_asmnode);
+ delete_marker(exitlabel_asmnode);
+ delete_marker(stackcheck_asmnode);
+ delete_marker(init_asmnode);
+ delete_marker(final_asmnode);
+
{$ifndef NoOpt}
if not(cs_no_regalloc in current_settings.globalswitches) then
begin
@@ -1763,11 +1795,11 @@ implementation
{ Give an error for accesses in the static symtable that aren't visible
outside the current unit }
st:=procdef.owner;
- while (st.symtabletype=ObjectSymtable) do
+ while (st.symtabletype in [ObjectSymtable,recordsymtable]) do
st:=st.defowner.owner;
if (pi_uses_static_symtable in flags) and
(st.symtabletype<>staticsymtable) then
- Comment(V_Error,'Global Generic template references static symtable');
+ Message(parser_e_global_generic_references_static);
end;
{ save exit info }
diff --git a/compiler/psystem.pas b/compiler/psystem.pas
index 5bd6ebcc7e..9e6a243de8 100644
--- a/compiler/psystem.pas
+++ b/compiler/psystem.pas
@@ -104,6 +104,7 @@ implementation
systemunit.insert(csyssym.create('ObjCSelector',in_objc_selector_x)); { objc only }
systemunit.insert(csyssym.create('ObjCEncode',in_objc_encode_x)); { objc only }
systemunit.insert(csyssym.create('Default',in_default_x));
+ systemunit.insert(csyssym.create('SetString',in_setstring_x_y_z));
systemunit.insert(cconstsym.create_ord('False',constord,0,pasbool8type));
systemunit.insert(cconstsym.create_ord('True',constord,1,pasbool8type));
end;
diff --git a/compiler/ptconst.pas b/compiler/ptconst.pas
index b83bfad05d..cc2f0cc971 100644
--- a/compiler/ptconst.pas
+++ b/compiler/ptconst.pas
@@ -47,6 +47,7 @@ implementation
cursectype : TAsmSectionType;
section : ansistring;
tcbuilder : ttypedconstbuilder;
+ datalist,
reslist : tasmlist;
restree,
previnit : tnode;
@@ -64,13 +65,15 @@ implementation
if not(target_info.system in systems_typed_constants_node_init) then
begin
- if sym.varspez=vs_const then
+ maybe_new_object_file(list);
+ tcbuilder:=tasmlisttypedconstbuilderclass(ctypedconstbuilder).create(sym);
+ tasmlisttypedconstbuilder(tcbuilder).parse_into_asmlist(reslist,datalist);
+ { Certain types like windows WideString are initialized at runtime and cannot
+ be placed into readonly memory }
+ if (sym.varspez=vs_const) and not (vo_force_finalize in sym.varoptions) then
cursectype:=sec_rodata
else
cursectype:=sec_data;
- maybe_new_object_file(list);
- tcbuilder:=tasmlisttypedconstbuilderclass(ctypedconstbuilder).create(sym);
- reslist:=tasmlisttypedconstbuilder(tcbuilder).parse_into_asmlist;
tcbuilder.free;
end
else
@@ -87,6 +90,7 @@ implementation
current_module.tcinitcode:=restree;
tcbuilder.free;
reslist:=nil;
+ datalist:=nil;
cursectype:=sec_none;
end;
@@ -158,6 +162,9 @@ implementation
list.concatlist(reslist);
reslist.free;
list.concat(tai_symbol_end.Createname(sym.mangledname));
+ { and pointed data, if any }
+ current_asmdata.asmlists[al_const].concatlist(datalist);
+ datalist.free;
end
else
begin
diff --git a/compiler/ptype.pas b/compiler/ptype.pas
index 4b316a47a2..e099261edf 100644
--- a/compiler/ptype.pas
+++ b/compiler/ptype.pas
@@ -340,7 +340,11 @@ implementation
((ttypesym(srsym).typedef.typ=errordef) or
(not allowgenericsyms and
(ttypesym(srsym).typedef.typ=undefineddef) and
- not (sp_generic_para in srsym.symoptions))) then
+ not (sp_generic_para in srsym.symoptions) and
+ not (sp_explicitrename in srsym.symoptions) and
+ not assigned(srsym.owner.defowner) and
+ { use df_generic instead of is_generic to allow aliases in nested types as well }
+ not (df_generic in tstoreddef(srsym.owner.defowner).defoptions))) then
begin
Message1(type_e_type_is_not_completly_defined,ttypesym(srsym).realname);
def:=generrordef;
@@ -1040,39 +1044,39 @@ implementation
without "specialize" or "<T>" of the same type we're
currently parsing, so we need to handle that special }
newdef:=nil;
- if not dospecialize and
- assigned(ttypenode(pt1).typesym) and
- (ttypenode(pt1).typesym.typ=typesym) and
- (sp_generic_dummy in ttypenode(pt1).typesym.symoptions) and
- assigned(current_structdef) and
+ if not dospecialize and
+ assigned(ttypenode(pt1).typesym) and
+ (ttypenode(pt1).typesym.typ=typesym) and
+ (sp_generic_dummy in ttypenode(pt1).typesym.symoptions) and
+ assigned(current_structdef) and
+ (
(
- (
- not (m_delphi in current_settings.modeswitches) and
- (ttypesym(ttypenode(pt1).typesym).typedef.typ=undefineddef) and
- (df_generic in current_structdef.defoptions) and
- (ttypesym(ttypenode(pt1).typesym).typedef.owner=current_structdef.owner) and
- (upper(ttypenode(pt1).typesym.realname)=copy(current_structdef.objname^,1,pos('$',current_structdef.objname^)-1))
- ) or (
- { this could be a nested specialization which uses
- the type name of a surrounding generic to
- reference the specialization of said surrounding
- class }
- (df_specialization in current_structdef.defoptions) and
- return_specialization_of_generic(current_structdef,ttypesym(ttypenode(pt1).typesym).typedef,newdef)
- )
+ not (m_delphi in current_settings.modeswitches) and
+ (ttypesym(ttypenode(pt1).typesym).typedef.typ=undefineddef) and
+ (df_generic in current_structdef.defoptions) and
+ (ttypesym(ttypenode(pt1).typesym).typedef.owner=current_structdef.owner) and
+ (upper(ttypenode(pt1).typesym.realname)=copy(current_structdef.objname^,1,pos('$',current_structdef.objname^)-1))
+ ) or (
+ { this could be a nested specialization which uses
+ the type name of a surrounding generic to
+ reference the specialization of said surrounding
+ class }
+ (df_specialization in current_structdef.defoptions) and
+ return_specialization_of_generic(current_structdef,ttypesym(ttypenode(pt1).typesym).typedef,newdef)
)
- then
- begin
- if assigned(newdef) then
- def:=newdef
- else
- def:=current_structdef;
- if assigned(def) then
- { handle nested types }
- post_comp_expr_gendef(def)
- else
- def:=generrordef;
- end;
+ )
+ then
+ begin
+ if assigned(newdef) then
+ def:=newdef
+ else
+ def:=current_structdef;
+ if assigned(def) then
+ { handle nested types }
+ post_comp_expr_gendef(def)
+ else
+ def:=generrordef;
+ end;
if dospecialize then
begin
generate_specialization(def,false,name);
diff --git a/compiler/raatt.pas b/compiler/raatt.pas
index 6729d0c87c..734c7fe89d 100644
--- a/compiler/raatt.pas
+++ b/compiler/raatt.pas
@@ -112,10 +112,7 @@ unit raatt;
procedure handledollar;virtual;
procedure HandleTargetDirective;virtual;
end;
- tcattreader = class of tattreader;
- var
- cattreader : tcattreader;
implementation
diff --git a/compiler/rautils.pas b/compiler/rautils.pas
index 5d3c767fc5..8fd7981550 100644
--- a/compiler/rautils.pas
+++ b/compiler/rautils.pas
@@ -34,13 +34,6 @@ Const
RPNMax = 10; { I think you only need 4, but just to be safe }
OpMax = 25;
-{$if max_operands = 2}
- {$define MAX_OPER_2}
-{$endif}
-{$if max_operands = 3}
- {$define MAX_OPER_3}
-{$endif}
-
Function SearchLabel(const s: string; var hl: tasmlabel;emit:boolean): boolean;
@@ -110,7 +103,6 @@ type
and concats it to the passed list. The newly created item is returned if the
instruction was valid, otherwise nil is returned }
function ConcatInstruction(p:TAsmList) : tai;virtual;
- Procedure Swapoperands;
end;
{---------------------------------------------------------------------}
@@ -495,7 +487,7 @@ Function EscapeToPascal(const s:string): string;
{ converts a C styled string - which contains escape }
{ characters to a pascal style string. }
var
- i,len : aint;
+ i,len : asizeint;
hs : string;
temp : string;
c : char;
@@ -905,14 +897,20 @@ Begin
end;
procsym :
begin
- if opr.typ<>OPR_NONE then
- Message(asmr_e_invalid_operand_type);
if Tprocsym(sym).ProcdefList.Count>1 then
Message(asmr_w_calling_overload_func);
- l:=opr.ref.offset;
- opr.typ:=OPR_SYMBOL;
- opr.symbol:=current_asmdata.RefAsmSymbol(tprocdef(tprocsym(sym).ProcdefList[0]).mangledname);
- opr.symofs:=l;
+ case opr.typ of
+ OPR_REFERENCE:
+ opr.ref.symbol:=current_asmdata.RefAsmSymbol(tprocdef(tprocsym(sym).ProcdefList[0]).mangledname);
+ OPR_NONE:
+ begin
+ opr.typ:=OPR_SYMBOL;
+ opr.symbol:=current_asmdata.RefAsmSymbol(tprocdef(tprocsym(sym).ProcdefList[0]).mangledname);
+ opr.symofs:=0;
+ end;
+ else
+ Message(asmr_e_invalid_operand_type);
+ end;
hasvar:=true;
SetupVar:=TRUE;
Exit;
@@ -1030,44 +1028,6 @@ Begin
end;
- Procedure TInstruction.Swapoperands;
- Var
- p : toperand;
- Begin
- case ops of
- 0,1:
- ;
- 2 : begin
- { 0,1 -> 1,0 }
- p:=Operands[1];
- Operands[1]:=Operands[2];
- Operands[2]:=p;
- end;
-{$ifndef MAX_OPER_2}
- 3 : begin
- { 0,1,2 -> 2,1,0 }
- p:=Operands[1];
- Operands[1]:=Operands[3];
- Operands[3]:=p;
- end;
-{$ifndef MAX_OPER_3}
- 4 : begin
- { 0,1,2,3 -> 3,2,1,0 }
- p:=Operands[1];
- Operands[1]:=Operands[4];
- Operands[4]:=p;
- p:=Operands[2];
- Operands[2]:=Operands[3];
- Operands[3]:=p;
- end;
-{$endif}
-{$endif}
- else
- internalerror(201108142);
- end;
- end;
-
-
function TInstruction.ConcatInstruction(p:TAsmList) : tai;
var
ai : taicpu;
diff --git a/compiler/rgobj.pas b/compiler/rgobj.pas
index 1ffed1a52e..57861897be 100644
--- a/compiler/rgobj.pas
+++ b/compiler/rgobj.pas
@@ -2152,7 +2152,7 @@ unit rgobj;
if not spilled then
exit;
-{$if defined(x86) or defined(mips) or defined(sparc) or defined(arm)}
+{$if defined(x86) or defined(mips) or defined(sparc) or defined(arm) or defined(m68k)}
{ Try replacing the register with the spilltemp. This is useful only
for the i386,x86_64 that support memory locations for several instructions
@@ -2167,7 +2167,7 @@ unit rgobj;
mustbespilled:=false;
end;
end;
-{$endif defined(x86) or defined(mips) or defined(sparc) or defined(arm)}
+{$endif defined(x86) or defined(mips) or defined(sparc) or defined(arm) or defined(m68k)}
{
There are registers that need are spilled. We generate the
diff --git a/compiler/scanner.pas b/compiler/scanner.pas
index 0aa02267ab..1461c4a188 100644
--- a/compiler/scanner.pas
+++ b/compiler/scanner.pas
@@ -1921,21 +1921,38 @@ type
{ first look for a macros/int/float }
result:=preproc_substitutedtoken(storedpattern,eval);
if eval and (result.consttyp=conststring) then
- if searchsym(storedpattern,srsym,srsymtable) then
+ begin
+ if searchsym(storedpattern,srsym,srsymtable) then
+ begin
+ try_consume_nestedsym(srsym,srsymtable);
+ if assigned(srsym) then
+ case srsym.typ of
+ constsym:
+ begin
+ result.free;
+ result:=texprvalue.create_const(tconstsym(srsym));
+ end;
+ enumsym:
+ begin
+ result.free;
+ result:=texprvalue.create_int(tenumsym(srsym).value);
+ end;
+ end;
+ end
+ end
+ { skip id(<expr>) if expression must not be evaluated }
+ else if not(eval) and (result.consttyp=conststring) then
begin
- try_consume_nestedsym(srsym,srsymtable);
- if assigned(srsym) then
- case srsym.typ of
- constsym:
- begin
- result.free;
- result:=texprvalue.create_const(tconstsym(srsym));
- end;
- enumsym:
- begin
- result.free;
- result:=texprvalue.create_int(tenumsym(srsym).value);
- end;
+ if current_scanner.preproc_token =_LKLAMMER then
+ begin
+ preproc_consume(_LKLAMMER);
+ current_scanner.skipspace;
+
+ result:=preproc_factor(false);
+ if current_scanner.preproc_token =_RKLAMMER then
+ preproc_consume(_RKLAMMER)
+ else
+ Message(scan_e_error_in_preproc_expr);
end;
end;
end
@@ -2952,9 +2969,18 @@ type
minfpconstprec:=tfloattype(tokenreadenum(sizeof(tfloattype)));
disabledircache:=boolean(tokenreadbyte);
-{$if defined(ARM) or defined(AVR) or defined(MIPSEL)}
- controllertype:=tcontrollertype(tokenreadenum(sizeof(tcontrollertype)));
-{$endif defined(ARM) or defined(AVR) or DEFINED(MIPSEL)}
+{ TH: Since the field was conditional originally, it was not stored in PPUs. }
+{ While adding ControllerSupport constant, I decided not to store ct_none }
+{ on targets not supporting controllers, but this might be changed here and }
+{ in tokenwritesettings in the future to unify the PPU structure and handling }
+{ of this field in the compiler. }
+{$PUSH}
+ {$WARN 6018 OFF} (* Unreachable code due to compile time evaluation *)
+ if ControllerSupport then
+ controllertype:=tcontrollertype(tokenreadenum(sizeof(tcontrollertype)))
+ else
+ ControllerType:=ct_none;
+{$POP}
endpos:=replaytokenbuf.pos;
if endpos-startpos<>expected_size then
Comment(V_Error,'Wrong size of Settings read-in');
@@ -3021,9 +3047,12 @@ type
tokenwriteenum(minfpconstprec,sizeof(tfloattype));
recordtokenbuf.write(byte(disabledircache),1);
-{$if defined(ARM) or defined(AVR) or defined(MIPSEL)}
- tokenwriteenum(controllertype,sizeof(tcontrollertype));
-{$endif defined(ARM) or defined(AVR) or defined(MIPSEL)}
+{ TH: See note about controllertype field in tokenreadsettings. }
+{$PUSH}
+ {$WARN 6018 OFF} (* Unreachable code due to compile time evaluation *)
+ if ControllerSupport then
+ tokenwriteenum(controllertype,sizeof(tcontrollertype));
+{$POP}
endpos:=recordtokenbuf.pos;
size:=endpos-startpos;
recordtokenbuf.seek(sizepos);
@@ -3296,8 +3325,6 @@ type
begin
current_settings.pmessage:=nil;
mesgnb:=tokenreadsizeint;
- if mesgnb>0 then
- Comment(V_Error,'Message recordind not yet supported');
prevmsg:=nil;
for i:=1 to mesgnb do
begin
diff --git a/compiler/sparc/aoptcpu.pas b/compiler/sparc/aoptcpu.pas
index bc31c671eb..01ce2c0749 100644
--- a/compiler/sparc/aoptcpu.pas
+++ b/compiler/sparc/aoptcpu.pas
@@ -127,7 +127,7 @@ unit aoptcpu;
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));
- if is_calljmp(taicpu(next).opcode) then
+ if result and (next.typ=ait_instruction) and is_calljmp(taicpu(next).opcode) then
begin
result:=false;
next:=nil;
diff --git a/compiler/sparc/cpuinfo.pas b/compiler/sparc/cpuinfo.pas
index e9d86e7d8b..55c26d3e6c 100644
--- a/compiler/sparc/cpuinfo.pas
+++ b/compiler/sparc/cpuinfo.pas
@@ -30,6 +30,9 @@ uses
type
bestreal = double;
+{$if FPC_FULLVERSION>20700}
+ bestrealrec = TDoubleRec;
+{$endif FPC_FULLVERSION>20700}
ts32real = single;
ts64real = double;
ts80real = extended;
@@ -49,8 +52,24 @@ type
fpu_hard
);
+ tcontrollertype =(ct_none
+ );
+
+
+Const
+ { Is there support for dealing with multiple microcontrollers available }
+ { for this platform? }
+ ControllerSupport = true;
+
+ { 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:''; flashbase:0; flashsize:0; srambase:0; sramsize:0));
+ {$POP}
-const
{ calling conventions supported by the code generator }
supported_calling_conventions : tproccalloptions = [
pocall_internproc,
diff --git a/compiler/sparc/ncpuadd.pas b/compiler/sparc/ncpuadd.pas
index 12faca4876..3186e58bc9 100644
--- a/compiler/sparc/ncpuadd.pas
+++ b/compiler/sparc/ncpuadd.pas
@@ -82,6 +82,8 @@ interface
GetResFlags:=F_L;
gten:
GetResFlags:=F_LE;
+ else
+ internalerror(2014082010);
end
else
case NodeType of
@@ -93,6 +95,8 @@ interface
GetResFlags:=F_G;
gten:
GetResFlags:=F_GE;
+ else
+ internalerror(2014082011);
end;
end
else
@@ -107,6 +111,8 @@ interface
GetResFlags:=F_B;
gten:
GetResFlags:=F_BE;
+ else
+ internalerror(2014082012);
end
else
case NodeType of
@@ -118,6 +124,8 @@ interface
GetResFlags:=F_A;
gten:
GetResFlags:=F_AE;
+ else
+ internalerror(2014082013);
end;
end;
end;
@@ -143,6 +151,8 @@ interface
result:=F_FL;
gten:
result:=F_FLE;
+ else
+ internalerror(2014082014);
end
else
case NodeType of
@@ -154,6 +164,8 @@ interface
result:=F_FG;
gten:
result:=F_FGE;
+ else
+ internalerror(2014082015);
end;
end;
end;
diff --git a/compiler/symconst.pas b/compiler/symconst.pas
index 02712b4523..1c38f85446 100644
--- a/compiler/symconst.pas
+++ b/compiler/symconst.pas
@@ -310,6 +310,8 @@ type
po_syscall_basesysv,
po_syscall_sysvbase,
po_syscall_r12base,
+ { Used to record the fact that a symbol is asociated to this syscall }
+ po_syscall_has_libsym,
{ Procedure can be inlined }
po_inline,
{ Procedure is used for internal compiler calls }
@@ -467,7 +469,7 @@ type
);
tobjectoptions=set of tobjectoption;
- tarraydefoption=(
+ tarraydefoption=(
ado_IsConvertedPointer, // array created from pointer (e.g. PInteger(Ptr)[1])
ado_IsDynamicArray, // dynamic array
ado_IsVariant, //
diff --git a/compiler/symdef.pas b/compiler/symdef.pas
index 246ea66d1e..c092e6c20d 100644
--- a/compiler/symdef.pas
+++ b/compiler/symdef.pas
@@ -227,6 +227,12 @@ interface
override ppuwrite_platform instead }
procedure ppuwrite(ppufile:tcompilerppufile);override;final;
function GetTypeName:string;override;
+ {# returns the appropriate int type for pointer arithmetic with the given pointer type.
+ When adding or subtracting a number to/from a pointer, this function returns the
+ int type to which that number has to be converted, before the operation can be performed.
+ Normally, this is sinttype, except on i8086, where it takes into account the
+ special i8086 pointer types (near, far, huge). }
+ function pointer_arithmetic_int_type:tdef;virtual;
{# returns the int type produced when subtracting two pointers of the given type.
Normally, this is sinttype, except on i8086, where it takes into account the
special i8086 pointer types (near, far, huge). }
@@ -237,6 +243,9 @@ interface
tprocdef = class;
tabstractrecorddef= class(tstoreddef)
+ private
+ rttistring : string;
+ public
objname,
objrealname : PShortString;
{ for C++ classes: name of the library this class is imported from }
@@ -253,6 +262,8 @@ interface
constructor ppuload(dt:tdeftyp;ppufile:tcompilerppufile);
procedure ppuwrite(ppufile:tcompilerppufile);override;
destructor destroy; override;
+ procedure buildderefimpl;override;
+ procedure derefimpl;override;
procedure check_forwards; virtual;
function find_procdef_bytype(pt:tproctypeoption): tprocdef;
function GetSymtable(t:tGetSymtable):TSymtable;override;
@@ -297,7 +308,6 @@ interface
override ppuwrite_platform instead }
procedure ppuwrite(ppufile:tcompilerppufile);override;final;
procedure buildderef;override;
- procedure buildderefimpl;override;
procedure deref;override;
function size:asizeint;override;
function alignment : shortint;override;
@@ -404,7 +414,6 @@ interface
function GetTypeName:string;override;
procedure buildderef;override;
procedure deref;override;
- procedure buildderefimpl;override;
procedure derefimpl;override;
procedure resetvmtentries;
procedure copyvmtentries(objdef:tobjectdef);
@@ -473,7 +482,7 @@ interface
function elesize : asizeint;
function elepackedbitsize : asizeint;
function elecount : asizeuint;
- constructor create_from_pointer(def:tdef);virtual;
+ constructor create_from_pointer(def:tpointerdef);virtual;
constructor create(l,h:asizeint;def:tdef);virtual;
constructor ppuload(ppufile:tcompilerppufile);
destructor destroy; override;
@@ -1771,7 +1780,7 @@ implementation
end;
if assigned(typesym) and
(owner.symtabletype in [staticsymtable,globalsymtable]) then
- result:=make_mangledname(prefix,owner,typesym.name)
+ result:=make_mangledname(prefix,typesym.owner,typesym.name)
else
result:=make_mangledname(prefix,findunitsymtable(owner),'DEF'+tostr(DefId))
end;
@@ -2023,8 +2032,7 @@ implementation
recsize:=size;
is_intregable:=
ispowerof2(recsize,temp) and
- { sizeof(asizeint)*2 records in int registers is currently broken for endian_big targets }
- (((recsize <= sizeof(asizeint)*2) and (target_info.endian=endian_little)
+ (((recsize <= sizeof(asizeint)*2)
{ records cannot go into registers on 16 bit targets for now }
and (sizeof(asizeint)>2)
and not trecorddef(self).contains_float_field) or
@@ -2107,7 +2115,7 @@ implementation
sym:=tsym(genericparas[i]);
if sym.typ<>symconst.typesym then
internalerror(2014050904);
- if sym.owner.defowner=self then
+ if sym.owner.defowner<>self then
exit(true);
end;
result:=false;
@@ -2425,10 +2433,12 @@ implementation
{$IFNDEF cpu64bitaddr} {$push}{$warnings off} {$ENDIF} //comparison always false warning
if (current_settings.packenum=8) or (min<low(longint)) or (int64(max)>high(cardinal)) then
savesize:=8
-{$IFDEF not cpu64bitaddr} {$pop} {$ENDIF}
+{$IFNDEF cpu64bitaddr} {$pop} {$ENDIF}
else
+{$IFDEF cpu16bitaddr} {$push}{$warnings off} {$ENDIF} //comparison always false warning
if (current_settings.packenum=4) or (min<low(smallint)) or (max>high(word)) then
savesize:=4
+{$IFDEF cpu16bitaddr} {$pop} {$ENDIF}
else
if (current_settings.packenum=2) or (min<low(shortint)) or (max>high(byte)) then
savesize:=2
@@ -2787,10 +2797,12 @@ implementation
s32real : savesize:=4;
s80real : savesize:=10;
sc80real:
- if target_info.system in [system_i386_darwin,system_i386_iphonesim,system_x86_64_darwin,
+ if target_info.system in [system_i386_darwin,
+ system_i386_iphonesim,system_x86_64_darwin,
system_x86_64_linux,system_x86_64_freebsd,
system_x86_64_openbsd,system_x86_64_netbsd,
- system_x86_64_solaris,system_x86_64_embedded] then
+ system_x86_64_solaris,system_x86_64_embedded,
+ system_x86_64_dragonfly] then
savesize:=16
else
savesize:=12;
@@ -3170,6 +3182,12 @@ implementation
end;
+ function tpointerdef.pointer_arithmetic_int_type:tdef;
+ begin
+ result:=ptrsinttype;
+ end;
+
+
function tpointerdef.pointer_subtraction_result_type:tdef;
begin
result:=ptrsinttype;
@@ -3396,12 +3414,12 @@ implementation
inherited;
end;
- constructor tarraydef.create_from_pointer(def:tdef);
+ constructor tarraydef.create_from_pointer(def:tpointerdef);
begin
{ use -1 so that the elecount will not overflow }
self.create(0,high(asizeint)-1,ptrsinttype);
arrayoptions:=[ado_IsConvertedPointer];
- setelementdef(def);
+ setelementdef(def.pointeddef);
end;
@@ -3693,6 +3711,23 @@ implementation
inherited destroy;
end;
+
+ procedure tabstractrecorddef.buildderefimpl;
+ begin
+ inherited buildderefimpl;
+ if not (df_copied_def in defoptions) then
+ tstoredsymtable(symtable).buildderefimpl;
+ end;
+
+
+ procedure tabstractrecorddef.derefimpl;
+ begin
+ inherited derefimpl;
+ if not (df_copied_def in defoptions) then
+ tstoredsymtable(symtable).derefimpl;
+ end;
+
+
procedure tabstractrecorddef.check_forwards;
begin
{ the defs of a copied def are defined for the original type only }
@@ -3733,8 +3768,104 @@ implementation
end;
function tabstractrecorddef.RttiName: string;
+
+ function generate_full_paramname(maxlength:longint):string;
+ const
+ commacount : array[boolean] of longint = (0,1);
+ var
+ fullparas,
+ paramname : ansistring;
+ module : tmodule;
+ sym : ttypesym;
+ i : longint;
+ begin
+ { we want at least enough space for an ellipsis }
+ if maxlength<3 then
+ internalerror(2014121203);
+ fullparas:='';
+ for i:=0 to genericparas.count-1 do
+ begin
+ sym:=ttypesym(genericparas[i]);
+ module:=find_module_from_symtable(sym.owner);
+ if not assigned(module) then
+ internalerror(2014121202);
+ paramname:=module.realmodulename^;
+ if sym.typedef.typ in [objectdef,recorddef] then
+ paramname:=paramname+'.'+tabstractrecorddef(sym.typedef).rttiname
+ else
+ paramname:=paramname+'.'+sym.typedef.typename;
+ if length(fullparas)+commacount[i>0]+length(paramname)>maxlength then
+ begin
+ if i>0 then
+ fullparas:=fullparas+',...'
+ else
+ fullparas:=fullparas+'...';
+ break;
+ end;
+ { could we fit an ellipsis after this parameter if it should be too long? }
+ if (maxlength-(length(fullparas)+commacount[i>0]+length(paramname))<4) and (i<genericparas.count-1) then
+ begin
+ { then omit already this parameter }
+ if i>0 then
+ fullparas:=fullparas+',...'
+ else
+ fullparas:=fullparas+'...';
+ break;
+ end;
+ if i>0 then
+ fullparas:=fullparas+',';
+ fullparas:=fullparas+paramname;
+ end;
+ result:=fullparas;
+ end;
+
+ var
+ nongeneric,
+ basename : string;
+ i,
+ remlength,
+ paramcount,
+ crcidx : longint;
begin
- Result:=OwnerHierarchyName+objrealname^;
+ if rttistring='' then
+ begin
+ if is_specialization then
+ begin
+ rttistring:=OwnerHierarchyName;
+ { there should be two $ characters, one before the CRC and one before the count }
+ crcidx:=-1;
+ for i:=length(objrealname^) downto 1 do
+ if objrealname^[i]='$' then
+ begin
+ crcidx:=i;
+ break;
+ end;
+ if crcidx<0 then
+ internalerror(2014121201);
+ basename:=copy(objrealname^,1,crcidx-1);
+ split_generic_name(basename,nongeneric,paramcount);
+ rttistring:=rttistring+nongeneric+'<';
+ remlength:=255-length(rttistring)-1;
+ if remlength<4 then
+ rttistring:=rttistring+'>'
+ else
+ rttistring:=rttistring+generate_full_paramname(remlength)+'>';
+ end
+ else
+ if is_generic then
+ begin
+ rttistring:=OwnerHierarchyName;
+ split_generic_name(objrealname^,nongeneric,paramcount);
+ rttistring:=rttistring+nongeneric+'<';
+ { we don't want any ',' if there is only one parameter }
+ for i:=0 to paramcount-0 do
+ rttistring:=rttistring+',';
+ rttistring:=rttistring+'>';
+ end
+ else
+ rttistring:=OwnerHierarchyName+objrealname^;
+ end;
+ result:=rttistring;
end;
function tabstractrecorddef.search_enumerator_get: tprocdef;
@@ -4004,14 +4135,6 @@ implementation
end;
- procedure trecorddef.buildderefimpl;
- begin
- inherited buildderefimpl;
- if not (df_copied_def in defoptions) then
- tstoredsymtable(symtable).buildderefimpl;
- end;
-
-
procedure trecorddef.deref;
begin
inherited deref;
@@ -6177,19 +6300,9 @@ implementation
end;
- procedure tobjectdef.buildderefimpl;
- begin
- inherited buildderefimpl;
- if not (df_copied_def in defoptions) then
- tstoredsymtable(symtable).buildderefimpl;
- end;
-
-
procedure tobjectdef.derefimpl;
begin
inherited derefimpl;
- if not (df_copied_def in defoptions) then
- tstoredsymtable(symtable).derefimpl;
{ the procdefs are not owned by the class helper procsyms, so they
are not stored/restored either -> re-add them here }
if (objecttype=odt_objcclass) or
diff --git a/compiler/symsym.pas b/compiler/symsym.pas
index 6f7b88432a..17164aa4f2 100644
--- a/compiler/symsym.pas
+++ b/compiler/symsym.pas
@@ -435,6 +435,14 @@ interface
function GetCopy:tmacro;
end;
+ { tPtrDefHashSet }
+
+ tPtrDefHashSet = class(THashSet)
+ public
+ constructor Create;virtual;
+ end;
+ tPtrDefHashSetClass = class of tPtrDefHashSet;
+
var
generrorsym : tsym;
@@ -452,6 +460,7 @@ interface
cconstsym: tconstsymclass;
cenumsym: tenumsymclass;
csyssym: tsyssymclass;
+ cPtrDefHashSet : tPtrDefHashSetClass = tPtrDefHashSet;
{ generate internal static field name based on regular field name }
function internal_static_field_name(const fieldname: TSymStr): TSymStr;
@@ -2130,15 +2139,8 @@ implementation
paraloc[calleeside].init;
paraloc[callerside].init;
if vo_has_explicit_paraloc in varoptions then
- begin
- paraloc[callerside].alignment:=ppufile.getbyte;
- b:=ppufile.getbyte;
- if b<>sizeof(paraloc[callerside].location^) then
- internalerror(200411154);
- ppufile.getdata(paraloc[callerside].add_location^,sizeof(paraloc[callerside].location^));
- paraloc[callerside].size:=paraloc[callerside].location^.size;
- paraloc[callerside].intsize:=tcgsize2size[paraloc[callerside].size];
- end;
+ paraloc[callerside].ppuload(ppufile);
+
ppuload_platform(ppufile);
end;
@@ -2166,9 +2168,7 @@ implementation
if vo_has_explicit_paraloc in varoptions then
begin
paraloc[callerside].check_simple_location;
- ppufile.putbyte(sizeof(paraloc[callerside].alignment));
- ppufile.putbyte(sizeof(paraloc[callerside].location^));
- ppufile.putdata(paraloc[callerside].location^,sizeof(paraloc[callerside].location^));
+ paraloc[callerside].ppuwrite(ppufile);
end;
writeentry(ppufile,ibparavarsym);
end;
@@ -2690,4 +2690,14 @@ implementation
Result:=p;
end;
+
+{****************************************************************************
+ tPtrDefHashSet
+ ****************************************************************************}
+
+ constructor tPtrDefHashSet.Create;
+ begin
+ inherited Create(64,true,false);
+ end;
+
end.
diff --git a/compiler/symtable.pas b/compiler/symtable.pas
index 4396969c73..dd91eeb60d 100644
--- a/compiler/symtable.pas
+++ b/compiler/symtable.pas
@@ -230,7 +230,7 @@ interface
function generate_objectpascal_helper_key(def:tdef):string;
procedure incompatibletypes(def1,def2:tdef);
procedure hidesym(sym:TSymEntry);
- procedure duplicatesym(var hashedid:THashedIDString;dupsym,origsym:TSymEntry);
+ procedure duplicatesym(var hashedid: THashedIDString; dupsym, origsym:TSymEntry; warn: boolean);
function handle_generic_dummysym(sym:TSymEntry;var symoptions:tsymoptions):boolean;
function get_jumpbuf_size : longint;
@@ -631,7 +631,7 @@ implementation
begin
hsym:=tsym(FindWithHash(hashedid));
if assigned(hsym) then
- DuplicateSym(hashedid,sym,hsym);
+ DuplicateSym(hashedid,sym,hsym,false);
result:=assigned(hsym);
end;
@@ -1393,9 +1393,9 @@ implementation
if tfieldvarsym(sym).fieldoffset=0 then
include(tfieldvarsym(sym).varoptions,vo_is_first_field);
- { add to this record symtable }
+ { add to this record symtable, checking for duplicate names }
// unionst.SymList.List.List^[i].Data:=nil;
- sym.ChangeOwner(self);
+ insert(sym);
varalign:=tfieldvarsym(sym).vardef.alignment;
if varalign=0 then
varalign:=size_2_align(tfieldvarsym(sym).getsize);
@@ -1480,7 +1480,8 @@ implementation
function tObjectSymtable.checkduplicate(var hashedid:THashedIDString;sym:TSymEntry):boolean;
var
- hsym : tsym;
+ hsym: tsym;
+ warn: boolean;
begin
result:=false;
if not assigned(defowner) then
@@ -1511,7 +1512,15 @@ implementation
)
) then
begin
- DuplicateSym(hashedid,sym,hsym);
+ { only watn when a parameter/local variable in a method
+ conflicts with a category method, because this can easily
+ happen due to all possible categories being imported via
+ CocoaAll }
+ warn:=
+ (is_objccategory(tdef(hsym.owner.defowner)) or
+ is_classhelper(tdef(hsym.owner.defowner))) and
+ (sym.typ in [paravarsym,localvarsym,fieldvarsym]);
+ DuplicateSym(hashedid,sym,hsym,warn);
result:=true;
end;
end
@@ -1590,7 +1599,7 @@ implementation
(vo_is_result in tabstractvarsym(hsym).varoptions)) then
HideSym(hsym)
else
- DuplicateSym(hashedid,sym,hsym);
+ DuplicateSym(hashedid,sym,hsym,false);
result:=true;
exit;
end;
@@ -1610,7 +1619,7 @@ implementation
(vo_is_result in tabstractvarsym(sym).varoptions)) then
Hidesym(sym)
else
- DuplicateSym(hashedid,sym,hsym);
+ DuplicateSym(hashedid,sym,hsym,false);
result:=true;
exit;
end;
@@ -1716,7 +1725,7 @@ implementation
tnamespacesym(sym).unitsym:=tsym(hsym);
end
else
- DuplicateSym(hashedid,sym,hsym);
+ DuplicateSym(hashedid,sym,hsym,false);
result:=true;
exit;
end;
@@ -2059,11 +2068,15 @@ implementation
end;
- procedure duplicatesym(var hashedid:THashedIDString;dupsym,origsym:TSymEntry);
+ procedure duplicatesym(var hashedid: THashedIDString; dupsym, origsym: TSymEntry; warn: boolean);
var
st : TSymtable;
+ filename : TIDString;
begin
- Message1(sym_e_duplicate_id,tsym(origsym).realname);
+ if not warn then
+ Message1(sym_e_duplicate_id,tsym(origsym).realname)
+ else
+ Message1(sym_w_duplicate_id,tsym(origsym).realname);
{ Write hint where the original symbol was found }
st:=finduniTSymtable(origsym.owner);
with tsym(origsym).fileinfo do
@@ -2073,7 +2086,13 @@ implementation
st.iscurrentunit then
Message2(sym_h_duplicate_id_where,current_module.sourcefiles.get_file_name(fileindex),tostr(line))
else if assigned(st.name) then
- Message2(sym_h_duplicate_id_where,'unit '+st.name^,tostr(line));
+ begin
+ filename:=find_module_from_symtable(st).sourcefiles.get_file_name(fileindex);
+ if filename<>'' then
+ Message2(sym_h_duplicate_id_where,'unit '+st.name^+': '+filename,tostr(line))
+ else
+ Message2(sym_h_duplicate_id_where,'unit '+st.name^,tostr(line))
+ end;
end;
{ Rename duplicate sym to an unreachable name, but it can be
inserted in the symtable without errors }
@@ -2223,6 +2242,7 @@ implementation
function is_visible_for_object(symst:tsymtable;symvisibility:tvisibility;contextobjdef:tabstractrecorddef):boolean;
var
symownerdef : tabstractrecorddef;
+ nonlocalst : tsymtable;
begin
result:=false;
@@ -2231,17 +2251,22 @@ implementation
not (symst.symtabletype in [objectsymtable,recordsymtable]) then
internalerror(200810285);
symownerdef:=tabstractrecorddef(symst.defowner);
+ { specializations might belong to a localsymtable or parasymtable }
+ nonlocalst:=symownerdef.owner;
+ if tstoreddef(symst.defowner).is_specialization then
+ while nonlocalst.symtabletype in [localsymtable,parasymtable] do
+ nonlocalst:=nonlocalst.defowner.owner;
case symvisibility of
vis_private :
begin
{ private symbols are allowed when we are in the same
module as they are defined }
result:=(
- (symownerdef.owner.symtabletype in [globalsymtable,staticsymtable]) and
- (symownerdef.owner.iscurrentunit)
+ (nonlocalst.symtabletype in [globalsymtable,staticsymtable]) and
+ (nonlocalst.iscurrentunit)
) or
( // the case of specialize inside the generic declaration and nested types
- (symownerdef.owner.symtabletype in [objectsymtable,recordsymtable]) and
+ (nonlocalst.symtabletype in [objectsymtable,recordsymtable]) and
(
assigned(current_structdef) and
(
@@ -2293,8 +2318,8 @@ implementation
in the current module }
result:=(
(
- (symownerdef.owner.symtabletype in [globalsymtable,staticsymtable]) and
- (symownerdef.owner.iscurrentunit)
+ (nonlocalst.symtabletype in [globalsymtable,staticsymtable]) and
+ (nonlocalst.iscurrentunit)
) or
(
assigned(contextobjdef) and
@@ -2303,7 +2328,7 @@ implementation
def_is_related(contextobjdef,symownerdef)
) or
( // the case of specialize inside the generic declaration and nested types
- (symownerdef.owner.symtabletype in [objectsymtable,recordsymtable]) and
+ (nonlocalst.symtabletype in [objectsymtable,recordsymtable]) and
(
assigned(current_structdef) and
(
@@ -2945,7 +2970,9 @@ implementation
end;
end;
{ now search in the extended type itself }
- if classh.extendeddef.typ in [recorddef,objectdef] then
+ { Note: the extendeddef might be Nil if we are currently parsing the
+ extended type itself and the identifier was not found }
+ if assigned(classh.extendeddef) and (classh.extendeddef.typ in [recorddef,objectdef]) then
begin
srsymtable:=tabstractrecorddef(classh.extendeddef).symtable;
srsym:=tsym(srsymtable.FindWithHash(hashedid));
diff --git a/compiler/systems.inc b/compiler/systems.inc
index 23c91706db..845d28124e 100644
--- a/compiler/systems.inc
+++ b/compiler/systems.inc
@@ -162,7 +162,10 @@
system_i8086_msdos, { 79 }
system_mipsel_android, { 80 }
system_mipseb_embedded, { 81 }
- system_mipsel_embedded { 82 }
+ system_mipsel_embedded, { 82 }
+ system_i386_aros, { 83 }
+ system_x86_64_aros, { 84 }
+ system_x86_64_dragonfly { 85 }
);
type
@@ -213,6 +216,7 @@
tlink = (ld_none,
ld_aix, { external linkers (one per OS, handles all CPUs) }
ld_amiga,
+ ld_aros,
ld_atari,
ld_android,
ld_beos,
@@ -270,7 +274,8 @@
tscripttype = (script_none
,script_dos,script_unix,script_amiga,
- script_mpw
+ script_mpw,
+ script_fpcres
);
tabi = (abi_default
diff --git a/compiler/systems.pas b/compiler/systems.pas
index a7cc436172..355f8b4b75 100644
--- a/compiler/systems.pas
+++ b/compiler/systems.pas
@@ -217,6 +217,7 @@ interface
systems_linux = [system_i386_linux,system_x86_64_linux,system_powerpc_linux,system_powerpc64_linux,
system_arm_linux,system_sparc_linux,system_alpha_linux,system_m68k_linux,
system_x86_6432_linux,system_mipseb_linux,system_mipsel_linux];
+ systems_dragonfly = [system_x86_64_dragonfly];
systems_freebsd = [system_i386_freebsd,
system_x86_64_freebsd];
systems_netbsd = [system_i386_netbsd,
@@ -227,7 +228,7 @@ interface
system_m68k_openbsd,
system_x86_64_openbsd];
- systems_bsd = systems_freebsd + systems_netbsd + systems_openbsd;
+ systems_bsd = systems_freebsd + systems_netbsd + systems_openbsd + systems_dragonfly;
systems_aix = [system_powerpc_aix,system_powerpc64_aix];
@@ -773,6 +774,10 @@ begin
default_target(system_x86_64_linux);
{$define default_target_set}
{$endif}
+ {$ifdef dragonfly}
+ default_target(system_x86_64_dragonfly);
+ {$define default_target_set}
+ {$endif}
{$ifdef freebsd}
default_target(system_x86_64_freebsd);
{$define default_target_set}
diff --git a/compiler/systems/i_aros.pas b/compiler/systems/i_aros.pas
new file mode 100644
index 0000000000..1e6262481d
--- /dev/null
+++ b/compiler/systems/i_aros.pas
@@ -0,0 +1,169 @@
+{
+ Copyright (c) 1998-2002 by Peter Vreman
+
+ This unit implements support information structures for arosOS
+
+ 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 support information structures for the arosOS. }
+unit i_aros;
+
+{$i fpcdefs.inc}
+
+ interface
+
+ uses
+ systems;
+
+ const
+ system_i386_aros_info : tsysteminfo =
+ (
+ system : system_i386_aros;
+ name : 'AROS for i386';
+ shortname : 'aros';
+ flags : [tf_files_case_aware, tf_smartlink_library, tf_has_winlike_resources];
+ cpu : cpu_i386;
+ unit_env : '';
+ extradefines : 'HASAMIGA';
+ exeext : '';
+ defext : '.def';
+ scriptext : '.sh';
+ smartext : '.sl';
+ unitext : '.ppu';
+ unitlibext : '.ppl';
+ asmext : '.s';
+ objext : '.o';
+ resext : '.res';
+ resobjext : '.or';
+ sharedlibext : '.library';
+ staticlibext : '.a';
+ staticlibprefix : 'libp';
+ sharedlibprefix : '';
+ sharedClibext : '.library';
+ staticClibext : '.a';
+ staticClibprefix : 'lib';
+ sharedClibprefix : '';
+ importlibprefix : 'libimp';
+ importlibext : '.a';
+ Cprefix : '';
+ newline : #10;
+ dirsep : '/';
+ assem : as_i386_elf32;
+ assemextern : as_gas;
+ link : ld_none;
+ linkextern : ld_aros;
+ ar : ar_gnu_ar;
+ res : res_elf;
+ dbg : dbg_stabs;
+ script : script_amiga;
+ endian : endian_little;
+ alignment :
+ (
+ procalign : 16;
+ loopalign : 4;
+ jumpalign : 0;
+ constalignmin : 0;
+ constalignmax : 8;
+ varalignmin : 0;
+ varalignmax : 16;
+ localalignmin : 0;
+ localalignmax : 4;
+ recordalignmin : 0;
+ recordalignmax : 16;
+ maxCrecordalign : 4
+ );
+ first_parm_offset : 8;
+ stacksize : 262144;
+ stackalign : 4;
+ abi : abi_default;
+ );
+
+ system_x86_64_aros_info : tsysteminfo =
+ (
+ system : system_x86_64_aros;
+ name : 'AROS for x86_64';
+ shortname : 'aros';
+ flags : [tf_files_case_aware];
+ cpu : cpu_x86_64;
+ unit_env : '';
+ extradefines : 'HASAMIGA';
+ exeext : '';
+ defext : '.def';
+ scriptext : '.sh';
+ smartext : '.sl';
+ unitext : '.ppu';
+ unitlibext : '.ppl';
+ asmext : '.s';
+ objext : '.o';
+ resext : '.res';
+ resobjext : '.or';
+ sharedlibext : '.library';
+ staticlibext : '.a';
+ staticlibprefix : 'libp';
+ sharedlibprefix : '';
+ sharedClibext : '.library';
+ staticClibext : '.a';
+ staticClibprefix : 'lib';
+ sharedClibprefix : '';
+ importlibprefix : 'libimp';
+ importlibext : '.a';
+ Cprefix : '';
+ newline : #10;
+ dirsep : '/';
+ assem : as_x86_64_elf64;
+ assemextern : as_gas;
+ link : ld_none;
+ linkextern : ld_aros;
+ ar : ar_gnu_ar;
+ res : res_none;
+ dbg : dbg_stabs;
+ script : script_amiga;
+ endian : endian_little;
+ alignment :
+ (
+ procalign : 8;
+ loopalign : 4;
+ jumpalign : 0;
+ constalignmin : 0;
+ constalignmax : 8;
+ varalignmin : 0;
+ varalignmax : 16;
+ localalignmin : 4;
+ localalignmax : 16;
+ recordalignmin : 0;
+ recordalignmax : 16;
+ maxCrecordalign : 16
+ );
+ first_parm_offset : 16;
+ stacksize : 8*1024*1024;
+ stackalign : 16; { fix me: this is a wild guess for now (KB) }
+ abi : abi_default;
+ );
+
+ implementation
+
+initialization
+{$ifdef CPU86}
+ {$ifdef aros}
+ set_source_info(system_i386_aros_info);
+ {$endif aros}
+{$endif CPU86}
+{$ifdef CPUX86_64}
+ {$ifdef AROS}
+ set_source_info(system_x86_64_aros_info);
+ {$endif AROS}
+{$endif CPUX86_64}
+end.
diff --git a/compiler/systems/i_bsd.pas b/compiler/systems/i_bsd.pas
index 90264afcf0..c9072cc4d8 100644
--- a/compiler/systems/i_bsd.pas
+++ b/compiler/systems/i_bsd.pas
@@ -188,6 +188,72 @@ unit i_bsd;
);
+ system_x86_64_dragonfly_info : tsysteminfo =
+ (
+ system : system_x86_64_dragonfly;
+ name : 'DragonFly for x86-64';
+ shortname : 'DragonFly';
+ flags : [tf_needs_symbol_size,tf_needs_dwarf_cfi,tf_library_needs_pic,tf_needs_symbol_type,
+ tf_files_case_sensitive,tf_smartlink_library,
+ tf_dwarf_only_local_labels,
+ {tf_pic_uses_got,}tf_smartlink_sections,tf_has_winlike_resources];
+ cpu : cpu_x86_64;
+ unit_env : 'BSDUNITS';
+ extradefines : 'UNIX;HASUNIX;BSD';
+ exeext : '';
+ defext : '.def';
+ scriptext : '.sh';
+ smartext : '.sl';
+ unitext : '.ppu';
+ unitlibext : '.ppl';
+ asmext : '.s';
+ objext : '.o';
+ 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_x86_64_elf64;
+ assemextern : as_gas;
+ link : ld_none;
+ linkextern : ld_bsd;
+ ar : ar_gnu_ar;
+ res : res_elf;
+ dbg : dbg_dwarf2; //dbg_stabs;
+ script : script_unix;
+ endian : endian_little;
+ alignment :
+ (
+ procalign : 8;
+ loopalign : 4;
+ jumpalign : 0;
+ constalignmin : 0;
+ constalignmax : 8;
+ varalignmin : 0;
+ varalignmax : 16;
+ localalignmin : 4;
+ localalignmax : 16;
+ recordalignmin : 0;
+ recordalignmax : 16;
+ maxCrecordalign : 16
+ );
+ first_parm_offset : 16;
+ stacksize : 256*1024;
+ stackalign : 16;
+ abi : abi_default;
+ );
+
+
system_i386_netbsd_info : tsysteminfo =
(
system : system_i386_NetBSD;
@@ -255,7 +321,7 @@ unit i_bsd;
system : system_i386_OpenBSD;
name : 'OpenBSD for i386';
shortname : 'OpenBSD';
- flags : [tf_pic_uses_got,tf_under_development,tf_files_case_sensitive,tf_smartlink_library,tf_has_winlike_resources];
+ flags : [tf_pic_uses_got,tf_under_development,tf_files_case_sensitive,tf_smartlink_library,tf_smartlink_sections,tf_has_winlike_resources];
cpu : cpu_i386;
unit_env : 'BSDUNITS';
extradefines : 'UNIX;BSD;HASUNIX';
@@ -319,7 +385,7 @@ unit i_bsd;
shortname : 'OpenBSD';
flags : [tf_needs_symbol_size,tf_needs_dwarf_cfi,tf_library_needs_pic,tf_needs_symbol_type,
tf_files_case_sensitive,tf_smartlink_library, tf_under_development,
- tf_dwarf_only_local_labels,
+ tf_dwarf_only_local_labels, tf_pic_default,
{ tf_pic_uses_got,}tf_smartlink_sections,tf_has_winlike_resources];
cpu : cpu_x86_64;
unit_env : 'BSDUNITS';
@@ -969,6 +1035,9 @@ initialization
{$ifdef FreeBSD}
set_source_info(system_x86_64_FreeBSD_info);
{$endif}
+ {$ifdef DragonFly}
+ set_source_info(system_x86_64_DragonFly_info);
+ {$endif}
{$ifdef OpenBSD}
set_source_info(system_x86_64_OpenBSD_info);
{$endif}
diff --git a/compiler/systems/i_linux.pas b/compiler/systems/i_linux.pas
index 5316dd9236..258bf2815e 100644
--- a/compiler/systems/i_linux.pas
+++ b/compiler/systems/i_linux.pas
@@ -167,6 +167,7 @@ unit i_linux;
name : 'Linux for m68k';
shortname : 'Linux';
flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
+ tf_smartlink_sections,
tf_requires_proper_alignment, { Coldfire seems to need this at least (KB) }
tf_smartlink_library,tf_has_winlike_resources];
cpu : cpu_m68k;
@@ -816,7 +817,7 @@ unit i_linux;
name : 'Linux for MIPSEB';
shortname : 'Linux';
flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
- tf_requires_proper_alignment,
+ tf_requires_proper_alignment,tf_pic_uses_got,tf_safecall_exceptions,
tf_smartlink_sections,tf_smartlink_library,tf_has_winlike_resources];
cpu : cpu_mipseb;
unit_env : 'LINUXUNITS';
@@ -881,7 +882,7 @@ unit i_linux;
name : 'Linux for MIPSEL';
shortname : 'Linux';
flags : [tf_needs_symbol_size,tf_needs_symbol_type,tf_files_case_sensitive,
- tf_requires_proper_alignment,
+ tf_requires_proper_alignment,tf_pic_uses_got,tf_safecall_exceptions,
tf_smartlink_sections,tf_smartlink_library,tf_has_winlike_resources];
cpu : cpu_mipsel;
unit_env : 'LINUXUNITS';
diff --git a/compiler/systems/i_nativent.pas b/compiler/systems/i_nativent.pas
index 325257efb9..02a05775c0 100644
--- a/compiler/systems/i_nativent.pas
+++ b/compiler/systems/i_nativent.pas
@@ -42,7 +42,7 @@ unit i_nativent;
tf_dwarf_only_local_labels];
cpu : cpu_i386;
unit_env : 'NTUNITS';
- extradefines : 'NATIVENT,FPC_OS_UNICODE';
+ extradefines : 'NATIVENT;FPC_OS_UNICODE';
exeext : '.exe';
defext : '.def';
scriptext : '.bat';
diff --git a/compiler/systems/t_aix.pas b/compiler/systems/t_aix.pas
index beb6eec417..0d26dbca1d 100644
--- a/compiler/systems/t_aix.pas
+++ b/compiler/systems/t_aix.pas
@@ -43,6 +43,7 @@ interface
TLinkerAIX=class(texternallinker)
private
prtobj : string[80];
+ assumebinutils,use_gld : boolean;
Function WriteResponseFile(isdll:boolean) : Boolean;
public
constructor Create;override;
@@ -51,7 +52,6 @@ interface
function MakeSharedLibrary:boolean;override;
end;
-
implementation
uses
@@ -117,8 +117,8 @@ begin
sure that the binary does not contain any relocations in the text
section (otherwise you get an error at load time instead of at link time
in case something is wrong) }
- ExeCmd[1]:='ld -bpT:0x10000000 -bpD:0x20000000 -btextro $OPT $STRIP -L. -o $EXE $CATRES' {$ifdef powerpc64}+' -b64'{$endif};
- DllCmd[1]:='ld -bpT:0x10000000 -bpD:0x20000000 -btextro $OPT $INITFINI $STRIP -G -L. -o $EXE $CATRES' {$ifdef powerpc64}+' -b64'{$endif};
+ ExeCmd[1]:='$LDBIN -bpT:0x10000000 -bpD:0x20000000 -btextro $OPT $STRIP -L. -o $EXE $CATRES' {$ifdef powerpc64}+' -b64'{$endif};
+ DllCmd[1]:='$LDBIN -bpT:0x10000000 -bpD:0x20000000 -btextro $OPT $INITFINI $STRIP -G -L. -o $EXE $CATRES' {$ifdef powerpc64}+' -b64'{$endif};
if cs_debuginfo in current_settings.moduleswitches then
begin
{ debugging helpers }
@@ -139,6 +139,11 @@ begin
{$else}
{$error unsupported AIX architecture}
{$endif}
+ assumebinutils:=
+ not(cs_link_native in current_settings.globalswitches) or
+ (not(cs_link_on_target in current_settings.globalswitches) and
+ not(source_info.system in systems_aix)) ;
+ use_gld:=assumebinutils and (source_info.system in systems_aix)
end;
@@ -148,12 +153,8 @@ Var
i : longint;
HPath : TCmdStrListItem;
s,s1 : TCmdStr;
- assumebinutils : boolean;
begin
result:=False;
- assumebinutils:=
- not(cs_link_on_target in current_settings.globalswitches) and
- not(source_info.system in systems_aix) ;
{ Open link.res file }
LinkRes:=TLinkRes.Create(outputexedir+Info.ResName,assumebinutils);
with linkres do
@@ -261,6 +262,10 @@ begin
{ Call linker }
SplitBinCmd(Info.ExeCmd[1],binstr,cmdstr);
+ if assumebinutils and (source_info.system in systems_aix) then
+ Replace(binstr,'$LDBIN','gld')
+ else
+ Replace(binstr,'$LDBIN','ld');
binstr:=FindUtil(utilsprefix+BinStr);
Replace(cmdstr,'$EXE',maybequoted(current_module.exefilename));
Replace(cmdstr,'$OPT',Info.ExtraOptions);
@@ -351,6 +356,10 @@ begin
{ Call linker }
SplitBinCmd(Info.DllCmd[1],binstr,cmdstr);
+ if assumebinutils and (source_info.system in systems_aix) then
+ Replace(binstr,'$LDBIN','gld')
+ else
+ Replace(binstr,'$LDBIN','ld');
binstr:=FindUtil(utilsprefix+BinStr);
{ on AIX, shared libraries are special object files that are stored inside
an archive. In that archive, the 32 bit version of the library is called
diff --git a/compiler/systems/t_amiga.pas b/compiler/systems/t_amiga.pas
index f7f0c53ea4..3976db7cb2 100644
--- a/compiler/systems/t_amiga.pas
+++ b/compiler/systems/t_amiga.pas
@@ -257,6 +257,7 @@ begin
{ Write used files and libraries }
WriteResponseFile(false);
+ success:=false;
case (target_info.system) of
system_m68k_amiga: success:=MakeAmiga68kExe;
system_powerpc_amiga: success:=MakeAmigaPPCExe;
diff --git a/compiler/systems/t_aros.pas b/compiler/systems/t_aros.pas
new file mode 100644
index 0000000000..06ebc47676
--- /dev/null
+++ b/compiler/systems/t_aros.pas
@@ -0,0 +1,304 @@
+{
+ Copyright (c) 2004-2006 by Free Pascal Development Team
+
+ This unit implements support import, export, link routines
+ for the aros targets (arosOS/i386, arosOS/x86_64)
+
+ 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_aros;
+
+{$i fpcdefs.inc}
+
+interface
+
+ uses
+ rescmn, comprsrc, import, export, link, ogbase;
+
+
+type
+
+ timportlibaros=class(timportlib)
+ procedure generatelib; override;
+ end;
+
+
+ PLinkeraros = ^TLinkeraros;
+ TLinkeraros = class(texternallinker)
+ private
+ function WriteResponseFile(isdll: boolean): boolean;
+ procedure Setaros386Info;
+ procedure Setarosx86_64Info;
+ function Makearos386Exe: boolean;
+ function Makearosx86_64Exe: boolean;
+ public
+ constructor Create; override;
+ procedure SetDefaultInfo; override;
+ function MakeExecutable: boolean; override;
+ end;
+
+
+implementation
+
+ uses
+ SysUtils,
+ cutils,cfileutl,cclasses,
+ globtype,globals,systems,verbose,script,fmodule,i_aros;
+
+
+procedure timportlibaros.generatelib;
+var
+ i: longint;
+ ImportLibrary: TImportLibrary;
+begin
+ for i:=0 to current_module.ImportLibraryList.count -1 do
+ begin
+ ImportLibrary := TImportlibrary(current_module.ImportLibraryList[i]);
+ current_module.linkothersharedlibs.add(ImportLibrary.Name, link_always);
+ end;
+end;
+
+{****************************************************************************
+ TLinkeraros
+****************************************************************************}
+
+
+
+constructor TLinkeraros.Create;
+begin
+ Inherited Create;
+ { allow duplicated libs (PM) }
+ SharedLibFiles.doubles:=true;
+ StaticLibFiles.doubles:=true;
+end;
+
+procedure TLinkeraros.Setaros386Info;
+begin
+ with Info do begin
+ { Note: collect-aros seems to be buggy, and doesn't forward options }
+ { properly when calling the underlying GNU LD. (FIXME?) }
+ { This means paths with spaces in them are not supported for now on AROS. }
+ { So for example no Ram Disk: usage for anything which must be linked. (KB) }
+ ExeCmd[1]:='collect-aros $OPT $STRIP -d -n -o $EXE $RES';
+ //ExeCmd[1]:='ld $OPT -d -n -o $EXE $RES';
+ end;
+end;
+
+procedure TLinkeraros.Setarosx86_64Info;
+begin
+ with Info do begin
+ ExeCmd[1]:='ld $OPT -defsym=__AROS__=1 -d -q -n -o $EXE $RES';
+ end;
+end;
+
+procedure TLinkeraros.SetDefaultInfo;
+begin
+ case (target_info.system) of
+ system_i386_aros: Setaros386Info;
+ system_x86_64_aros: Setarosx86_64Info;
+ end;
+end;
+
+
+function TLinkeraros.WriteResponseFile(isdll: boolean): boolean;
+var
+ linkres : TLinkRes;
+ i : longint;
+ HPath : TCmdStrListItem;
+ s,s1 : string;
+ linklibc : boolean;
+begin
+ WriteResponseFile:=False;
+
+ { 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;
+ s1 := Unix2AmigaPath(maybequoted(s));
+ if trim(s1)<>'' then
+ LinkRes.Add('SEARCH_DIR('+s1+')');
+ HPath:=TCmdStrListItem(HPath.Next);
+ end;
+
+ LinkRes.Add('INPUT (');
+ { add objectfiles, start with prt0 always }
+ s:=FindObjectFile('prt0','',false);
+ LinkRes.AddFileName(s);
+ while not ObjectFiles.Empty do
+ begin
+ s:=ObjectFiles.GetFirst;
+ if s<>'' then
+ begin
+ LinkRes.AddFileName(Unix2AmigaPath(maybequoted(s)));
+ end;
+ end;
+
+ { Write staticlibraries }
+ if not StaticLibFiles.Empty then
+ begin
+ LinkRes.Add(')');
+ LinkRes.Add('GROUP(');
+ while not StaticLibFiles.Empty do
+ begin
+ S:=StaticLibFiles.GetFirst;
+ LinkRes.AddFileName(Unix2AmigaPath(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;
+
+{ Write and Close response }
+ linkres.writetodisk;
+ linkres.free;
+
+ WriteResponseFile:=True;
+end;
+
+
+function TLinkeraros.Makearos386Exe: boolean;
+var
+ BinStr,
+ CmdStr : TCmdStr;
+ StripStr: string[40];
+begin
+ StripStr:='';
+ if (cs_link_strip in current_settings.globalswitches) then StripStr:='-s';
+
+ { Call linker }
+ SplitBinCmd(Info.ExeCmd[1],BinStr,CmdStr);
+ Replace(cmdstr,'$OPT',Info.ExtraOptions);
+ Replace(cmdstr,'$EXE',maybequoted(ScriptFixFileName(current_module.exefilename)));
+ Replace(cmdstr,'$RES',maybequoted(ScriptFixFileName(outputexedir+Info.ResName)));
+ Replace(cmdstr,'$STRIP',StripStr);
+
+ { Replace(cmdstr,'$EXE',Unix2AmigaPath(maybequoted(ScriptFixFileName(current_module.exefilename^))));
+ Replace(cmdstr,'$RES',Unix2AmigaPath(maybequoted(ScriptFixFileName(outputexedir+Info.ResName))));}
+
+ Makearos386Exe:=DoExec(FindUtil(utilsprefix+BinStr),CmdStr,true,false);
+end;
+
+
+function TLinkeraros.Makearosx86_64Exe: boolean;
+var
+ BinStr,
+ CmdStr : TCmdStr;
+ StripStr: string[40];
+begin
+ StripStr:='';
+ if (cs_link_strip in current_settings.globalswitches) then StripStr:='-s';
+
+ { Call linker }
+ SplitBinCmd(Info.ExeCmd[1],BinStr,CmdStr);
+ binstr:=FindUtil(utilsprefix+BinStr);
+ Replace(cmdstr,'$OPT',Info.ExtraOptions);
+ Replace(cmdstr,'$EXE',Unix2AmigaPath(maybequoted(ScriptFixFileName(current_module.exefilename))));
+ Replace(cmdstr,'$RES',Unix2AmigaPath(maybequoted(ScriptFixFileName(outputexedir+Info.ResName))));
+ Replace(cmdstr,'$STRIP',StripStr);
+ Makearosx86_64Exe:=DoExec(FindUtil(BinStr),CmdStr,true,false);
+end;
+
+
+function TLinkeraros.MakeExecutable:boolean;
+var
+ success : boolean;
+begin
+ success:=false;
+ if not(cs_link_nolink in current_settings.globalswitches) then
+ Message1(exec_i_linking,current_module.exefilename);
+
+ { Write used files and libraries }
+ WriteResponseFile(false);
+
+ case (target_info.system) of
+ system_i386_aros: success:=Makearos386Exe;
+ system_x86_64_aros: success:=Makearosx86_64Exe;
+ end;
+
+ { Remove ReponseFile }
+ if (success) and not(cs_link_nolink in current_settings.globalswitches) then
+ DeleteFile(outputexedir+Info.ResName);
+
+ MakeExecutable:=success; { otherwise a recursive call to link method }
+end;
+
+
+{*****************************************************************************
+ Initialize
+*****************************************************************************}
+
+initialization
+{$ifdef i386}
+ RegisterLinker(ld_aros,TLinkeraros);
+ RegisterTarget(system_i386_aros_info);
+{$endif i386}
+{$ifdef x86_64}
+ RegisterLinker(ld_aros,TLinkeraros);
+ RegisterTarget(system_x86_64_aros_info);
+{$endif x86_64}
+ RegisterRes(res_elf_info, TWinLikeResourceFile);
+end.
diff --git a/compiler/systems/t_bsd.pas b/compiler/systems/t_bsd.pas
index 911fcd0e08..b35a78aecb 100644
--- a/compiler/systems/t_bsd.pas
+++ b/compiler/systems/t_bsd.pas
@@ -695,6 +695,12 @@ begin
else
DynLinKStr:=DynLinkStr+' -dynamic'; // one dash!
end;
+
+{ Use -nopie on OpenBSD }
+ if (target_info.system in systems_openbsd) and
+ (target_info.system <> system_x86_64_openbsd) then
+ Info.ExtraOptions:=Info.ExtraOptions+' -nopie';
+
{ Write used files and libraries }
WriteResponseFile(false);
@@ -912,6 +918,9 @@ end;
initialization
RegisterLinker(ld_bsd,TLinkerBSD);
{$ifdef x86_64}
+ RegisterImport(system_x86_64_dragonfly,timportlibbsd);
+ RegisterExport(system_x86_64_dragonfly,texportlibbsd);
+ RegisterTarget(system_x86_64_dragonfly_info);
RegisterImport(system_x86_64_freebsd,timportlibbsd);
RegisterExport(system_x86_64_freebsd,texportlibbsd);
RegisterTarget(system_x86_64_freebsd_info);
diff --git a/compiler/systems/t_gba.pas b/compiler/systems/t_gba.pas
index 2dee4d83ea..06d23d2a9b 100644
--- a/compiler/systems/t_gba.pas
+++ b/compiler/systems/t_gba.pas
@@ -571,6 +571,7 @@ begin
StripStr:='';
DynLinkStr:='';
MapStr:='';
+ GCSectionsStr:='';
if (cs_link_strip in current_settings.globalswitches) and
not(cs_link_separate_dbg_file in current_settings.globalswitches) then
diff --git a/compiler/systems/t_linux.pas b/compiler/systems/t_linux.pas
index dd43499fd3..bebd8f7e04 100644
--- a/compiler/systems/t_linux.pas
+++ b/compiler/systems/t_linux.pas
@@ -146,6 +146,7 @@ begin
{$endif}
{$endif arm}
{$ifdef x86_64}
+ if not Dontlinkstdlibpath Then
LibrarySearchPath.AddPath(sysrootpath,'/usr/lib/x86_64-linux-gnu',true);
{$endif x86_64}
end;
diff --git a/compiler/systems/t_morph.pas b/compiler/systems/t_morph.pas
index fedd5c329c..c79d6583f8 100644
--- a/compiler/systems/t_morph.pas
+++ b/compiler/systems/t_morph.pas
@@ -205,13 +205,13 @@ var
success : boolean;
StripStr: string[40];
begin
+ StripStr:='';
if not(cs_link_nolink in current_settings.globalswitches) then
Message1(exec_i_linking,current_module.exefilename);
if UseVLink then
begin
- StripStr:='';
if (cs_link_strip in current_settings.globalswitches) then
StripStr:='-s -P __abox__';
end;
diff --git a/compiler/systems/t_nds.pas b/compiler/systems/t_nds.pas
index 16eab29b5e..93828c28aa 100644
--- a/compiler/systems/t_nds.pas
+++ b/compiler/systems/t_nds.pas
@@ -82,12 +82,14 @@ Var
linklibc,
linklibgcc : boolean;
found1,
- found2 : boolean;
+ found2 : boolean;
begin
WriteResponseFile:=False;
linklibc:=(SharedLibFiles.Find('c')<>nil);
linklibgcc:=(SharedLibFiles.Find('gcc')<>nil);
-
+
+ prtobj:='';
+ cprtobj:='';
case apptype of
app_arm9:
begin
@@ -243,20 +245,19 @@ begin
begin
if apptype=app_arm9 then //ARM9
begin
- add('OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")');
- add('OUTPUT_ARCH(arm)');
- add('ENTRY(_start)');
- add('');
add('MEMORY {');
- add('');
add(' rom : ORIGIN = 0x08000000, LENGTH = 32M');
add(' ewram : ORIGIN = 0x02000000, LENGTH = 4M - 4k');
add(' dtcm : ORIGIN = 0x0b000000, LENGTH = 16K');
- add(' vectors : ORIGIN = 0x01000000, LENGTH = 256');
- add(' itcm : ORIGIN = 0x01000100, LENGTH = 32K - 256');
+ add(' vectors : ORIGIN = 0x01000000, LENGTH = 256');
+ add(' itcm : ORIGIN = 0x01000100, LENGTH = 32K - 256');
add('}');
add('');
- add('__vectors_start = ORIGIN(vectors);');
+ add('OUTPUT_ARCH(arm)');
+ add('OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")');
+ add('ENTRY(_start)');
+ add('');
+ add('__vectors_start = ORIGIN(vectors);');
add('__itcm_start = ORIGIN(itcm);');
add('__ewram_end = ORIGIN(ewram) + LENGTH(ewram);');
add('__eheap_end = ORIGIN(ewram) + LENGTH(ewram);');
@@ -276,7 +277,7 @@ begin
add(' __text_start = . ;');
add(' KEEP (*(.init))');
add(' . = ALIGN(4); /* REQUIRED. LD is flaky without it. */');
- add(' } >ewram = 0xff');
+ add(' } >ewram = 0xff');
add('');
add(' .plt : { *(.plt) } >ewram = 0xff');
add('');
@@ -312,36 +313,40 @@ begin
add(' . = ALIGN(4); /* REQUIRED. LD is flaky without it. */');
add(' } >ewram = 0xff');
add('');
- add(' .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >ewram');
- add(' __exidx_start = .;');
- add(' .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } >ewram');
- add(' __exidx_end = .;');
- add(' /* Ensure the __preinit_array_start label is properly aligned. We');
- add(' could instead move the label definition inside the section, but');
- add(' the linker would then create the section even if it turns out to');
- add(' be empty, which isn''t pretty. */');
- add(' . = ALIGN(32 / 8);');
- add(' PROVIDE (__preinit_array_start = .);');
- add(' .preinit_array : { KEEP (*(.preinit_array)) } >ewram = 0xff');
- add(' PROVIDE (__preinit_array_end = .);');
- add(' PROVIDE (__init_array_start = .);');
- add(' .init_array :');
- add(' {');
- add(' KEEP (*(SORT(.init_array.*)))');
- add(' KEEP (*(.init_array))');
- add(' } >ewram = 0xff');
- add(' PROVIDE (__init_array_end = .);');
- add(' PROVIDE (__fini_array_start = .);');
- add(' .fini_array :');
- add(' {');
- add(' KEEP (*(.fini_array))');
- add(' KEEP (*(SORT(.fini_array.*)))');
- add(' } >ewram = 0xff');
- add(' PROVIDE (__fini_array_end = .);');
+ add(' .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >ewram');
+ add(' __exidx_start = .;');
+ add(' ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } >ewram');
+ add(' __exidx_end = .;');
+ add('');
+ add(' /* Ensure the __preinit_array_start label is properly aligned. We');
+ add(' could instead move the label definition inside the section, but');
+ add(' the linker would then create the section even if it turns out to');
+ add(' be empty, which isn''t pretty. */');
+ add('');
+ add(' . = ALIGN(32 / 8);');
+ add('');
+ add(' PROVIDE (__preinit_array_start = .);');
+ add(' .preinit_array : { KEEP (*(.preinit_array)) } >ewram = 0xff');
+ add(' PROVIDE (__preinit_array_end = .);');
+ add(' PROVIDE (__init_array_start = .);');
+ add(' .init_array :');
+ add(' {');
+ add(' KEEP (*(SORT(.init_array.*)))');
+ add(' KEEP (*(.init_array))');
+ add(' } >ewram = 0xff');
+ add(' PROVIDE (__init_array_end = .);');
+ add(' PROVIDE (__fini_array_start = .);');
+ add(' .fini_array :');
+ add(' {');
+ add(' KEEP (*(.fini_array))');
+ add(' KEEP (*(SORT(.fini_array.*)))');
+ add(' } >ewram = 0xff');
+ add('');
+ add(' PROVIDE (__fini_array_end = .);');
add('');
add(' .ctors :');
add(' {');
- add(' /* gcc uses crtbegin.o to find the start of the constructors, so');
+ add(' /* gcc uses crtbegin.o to find the start of the constructors, so');
add(' we make sure it is first. Because this is a wildcard, it');
add(' doesn''t matter if the user does not actually link against');
add(' crtbegin.o; the linker won''t look for a file to match a');
@@ -392,7 +397,6 @@ begin
add(' *(.data)');
add(' *(.data.*)');
add(' *(.gnu.linkonce.d*)');
- add(' *(.fpc*)');
add(' CONSTRUCTORS');
add(' . = ALIGN(4);');
add(' __data_end = ABSOLUTE(.) ;');
@@ -408,7 +412,7 @@ begin
add(' *(.dtcm.*)');
add(' . = ALIGN(4);');
add(' __dtcm_end = ABSOLUTE(.);');
- add(' } >dtcm = 0xff');
+ add(' } >dtcm = 0xff');
add('');
add('');
add(' __itcm_lma = __dtcm_lma + SIZEOF(.dtcm);');
@@ -420,29 +424,27 @@ begin
add(' . = ALIGN(4);');
add(' __itcm_end = ABSOLUTE(.);');
add(' } >itcm = 0xff');
+ add(' ');
+ add(' __vectors_lma = __itcm_lma + SIZEOF(.itcm);');
add('');
-
- add(' __vectors_lma = __itcm_lma + SIZEOF(.itcm);');
- add(' .vectors __vectors_start : AT (__vectors_lma)');
- add(' {');
- add(' *(.vectors)');
- add(' *vectors.*(.text)');
- add(' . = ALIGN(4);');
- add(' __vectors_end = ABSOLUTE(.);');
- add(' } >vectors = 0xff');
- add('');
- add(' .sbss __dtcm_end (NOLOAD):');
+ add(' .vectors __vectors_start : AT (__vectors_lma)');
+ add(' {');
+ add(' *(.vectors)');
+ add(' *vectors.*(.text)');
+ add(' . = ALIGN(4);');
+ add(' __vectors_end = ABSOLUTE(.);');
+ add(' } >vectors = 0xff');
+ add(' ');
+ add(' .sbss __dtcm_end (NOLOAD): ');
add(' {');
add(' __sbss_start = ABSOLUTE(.);');
add(' __sbss_start__ = ABSOLUTE(.);');
add(' *(.sbss)');
add(' . = ALIGN(4); /* REQUIRED. LD is flaky without it. */');
add(' __sbss_end = ABSOLUTE(.);');
- add(' } >dtcm');
- add('');
+ add(' } >dtcm ');
add('');
- add('');
- add(' .bss __bss_vma (NOLOAD):');
+ add(' .bss __bss_vma (NOLOAD): ');
add(' {');
add(' __bss_start = ABSOLUTE(.);');
add(' __bss_start__ = ABSOLUTE(.);');
@@ -453,7 +455,8 @@ begin
add(' . = ALIGN(4); /* REQUIRED. LD is flaky without it. */');
add(' __bss_end__ = ABSOLUTE(.) ;');
add(' __end__ = ABSOLUTE(.) ;');
- add(' } AT>ewram');
+ add(' } AT>ewram ');
+ add('');
add('');
add('');
add(' /* Stabs debugging sections. */');
@@ -492,6 +495,7 @@ begin
add(' .stack 0x80000 : { _stack = .; *(.stack) }');
add(' /* These must appear regardless of . */');
add('}');
+ add('');
end;
if apptype=app_arm7 then
begin
@@ -501,12 +505,13 @@ begin
add('');
add('MEMORY {');
add('');
- add(' rom : ORIGIN = 0x08000000, LENGTH = 32M');
- add(' iwram : ORIGIN = 0x037f8000, LENGTH = 96K');
+ add(' rom : ORIGIN = 0x08000000, LENGTH = 32M');
+ add(' iwram : ORIGIN = 0x037f8000, LENGTH = 96K ');
add('}');
add('');
add('__iwram_start = ORIGIN(iwram);');
add('__iwram_top = ORIGIN(iwram)+ LENGTH(iwram);');
+ add('');
add('__sp_irq = __iwram_top - 0x100;');
add('__sp_svc = __sp_irq - 0x100;');
add('__sp_usr = __sp_svc - 0x100;');
@@ -527,9 +532,8 @@ begin
add('');
add(' .text : /* ALIGN (4): */');
add(' {');
- add('');
- add(' *(.text .stub .text.* .gnu.linkonce.t.*)');
- add(' KEEP (*(.text.*personality*))');
+ add(' *(.text .stub .text.* .gnu.linkonce.t.*)');
+ add(' KEEP (*(.text.*personality*))');
add(' /* .gnu.warning sections are handled specially by elf32.em. */');
add(' *(.gnu.warning)');
add(' *(.glue_7t) *(.glue_7) *(.vfp11_veneer)');
@@ -612,30 +616,16 @@ begin
add(' .jcr : { KEEP (*(.jcr)) } >iwram = 0');
add(' .got : { *(.got.plt) *(.got) } >iwram = 0');
add('');
- add('');
- add(' .iwram ALIGN(4) :');
- add(' {');
- add(' __iwram_start = ABSOLUTE(.) ;');
- add(' *(.iwram)');
- add(' *iwram.*(.text)');
- add(' . = ALIGN(4); /* REQUIRED. LD is flaky without it. */');
- add(' __iwram_end = ABSOLUTE(.) ;');
- add(' } >iwram = 0xff');
- add('');
- add('');
add(' .data ALIGN(4) : {');
add(' __data_start = ABSOLUTE(.);');
add(' *(.data)');
add(' *(.data.*)');
add(' *(.gnu.linkonce.d*)');
- add(' *(.fpc*)');
add(' CONSTRUCTORS');
add(' . = ALIGN(4);');
add(' __data_end = ABSOLUTE(.) ;');
add(' } >iwram = 0xff');
add('');
- add('');
- add('');
add(' .bss ALIGN(4) :');
add(' {');
add(' __bss_start = ABSOLUTE(.);');
@@ -714,6 +704,8 @@ begin
StripStr:='';
MapStr:='';
DynLinkStr:='';
+ GCSectionsStr:='';
+ preName:='';
case apptype of
app_arm9: preName:='.nef';
app_arm7: preName:='.nlf';
diff --git a/compiler/systems/t_os2.pas b/compiler/systems/t_os2.pas
index 064169836c..f6d9f4d65b 100644
--- a/compiler/systems/t_os2.pas
+++ b/compiler/systems/t_os2.pas
@@ -396,7 +396,7 @@ begin
with Info do
begin
ExeCmd[1]:='ld $OPT -o $OUT @$RES';
- ExeCmd[2]:='emxbind -b $STRIP $MAP $APPTYPE $RSRC -k$STACKKB -h1 -o $EXE $OUT -ai -s8';
+ ExeCmd[2]:='emxbind -b $STRIP $MAP $APPTYPE $RSRC -k$STACKKB -h1 -q -o $EXE $OUT -ai -s8';
if Source_Info.Script = script_dos then
ExeCmd[3]:='del $OUT';
end;
@@ -533,7 +533,11 @@ begin
Replace(cmdstr,'$RES',maybequoted(outputexedir+Info.ResName));
*)
Replace(cmdstr,'$RES',outputexedir+Info.ResName);
- Replace(cmdstr,'$OPT ',Info.ExtraOptions);
+ if (Info.ExtraOptions <> '') and
+ (Info.ExtraOptions [Length (Info.ExtraOptions)] <> ' ') then
+ Replace(cmdstr,'$OPT',Info.ExtraOptions)
+ else
+ Replace(cmdstr,'$OPT ',Info.ExtraOptions);
Replace(cmdstr,'$RSRC ',RsrcStr);
Replace(cmdstr,'$OUT',maybequoted(OutName));
Replace(cmdstr,'$EXE',maybequoted(current_module.exefilename));
diff --git a/compiler/systems/t_sunos.pas b/compiler/systems/t_sunos.pas
index 63788fd288..f369acaa77 100644
--- a/compiler/systems/t_sunos.pas
+++ b/compiler/systems/t_sunos.pas
@@ -143,12 +143,12 @@ procedure TLinkersolaris.SetDefaultInfo;
}
{$ifdef x86_64}
const
- gld = 'gld -m elf_x86_64 ';
+ gld = 'gld -m elf_x86_64_sol2 ';
solaris_ld = '/usr/bin/ld -64 ';
{$endif}
{$ifdef i386}
const
- gld = 'gld ';
+ gld = 'gld -m elf_i386_sol2 ';
solaris_ld = '/usr/bin/ld ';
{$endif }
{$ifdef sparc}
diff --git a/compiler/tgobj.pas b/compiler/tgobj.pas
index 30bcb55470..6c47ba2ad0 100644
--- a/compiler/tgobj.pas
+++ b/compiler/tgobj.pas
@@ -92,7 +92,7 @@ unit tgobj;
the forcesize parameter is so that it can be used for defs that
don't have an inherent size (e.g., array of const) }
- procedure gethltemp(list: TAsmList; def: tdef; forcesize: aint; temptype: ttemptype; out ref: treference); virtual;
+ procedure gethltemp(list: TAsmList; def: tdef; forcesize: asizeint; temptype: ttemptype; out ref: treference); virtual;
procedure gethltemptyped(list: TAsmList; def: tdef; temptype: ttemptype; out ref: treference); virtual;
procedure gettemp(list: TAsmList; size, alignment : longint;temptype:ttemptype;out ref : treference);
procedure gettemptyped(list: TAsmList; def:tdef;temptype:ttemptype;out ref : treference);
@@ -521,7 +521,7 @@ implementation
end;
- procedure ttgobj.gethltemp(list: TAsmList; def: tdef; forcesize: aint; temptype: ttemptype; out ref: treference);
+ procedure ttgobj.gethltemp(list: TAsmList; def: tdef; forcesize: asizeint; temptype: ttemptype; out ref: treference);
begin
gettemp(list,forcesize,def.alignment,temptype,ref);
end;
diff --git a/compiler/tokens.pas b/compiler/tokens.pas
index 09054ade2b..31a1b8500c 100644
--- a/compiler/tokens.pas
+++ b/compiler/tokens.pas
@@ -187,6 +187,7 @@ type
_STRICT,
_STRING,
_SYSTEM,
+ _WINAPI,
_ASMNAME,
_CPPDECL,
_DEFAULT,
@@ -506,6 +507,7 @@ const
(str:'STRICT' ;special:false;keyword:[m_none];op:NOTOKEN),
(str:'STRING' ;special:false;keyword:alllanguagemodes-[m_iso];op:NOTOKEN),
(str:'SYSTEM' ;special:false;keyword:[m_none];op:NOTOKEN),
+ (str:'WINAPI' ;special:false;keyword:[m_none];op:NOTOKEN),
(str:'ASMNAME' ;special:false;keyword:[m_none];op:NOTOKEN),
(str:'CPPDECL' ;special:false;keyword:[m_none];op:NOTOKEN),
(str:'DEFAULT' ;special:false;keyword:[m_none];op:NOTOKEN),
diff --git a/compiler/utils/Makefile b/compiler/utils/Makefile
index 72d50d224c..c4bc0d14b3 100644
--- a/compiler/utils/Makefile
+++ b/compiler/utils/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-03-19 rev 27188]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -394,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mkarmins mkx86ins
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mkarmins mkx86ins
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mkarmins mkx86ins
endif
@@ -481,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mkarmins mkx86ins
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mkarmins mkx86ins
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=fpc ppufiles ppudump ppumove mkarmins mkx86ins
endif
@@ -619,6 +625,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=ppu crc
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=ppu crc
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=ppu crc
endif
@@ -706,6 +715,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=ppu crc
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=ppu crc
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=ppu crc
endif
@@ -845,6 +857,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_UNITDIR+=..
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_UNITDIR+=..
endif
@@ -932,6 +947,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_UNITDIR+=..
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_UNITDIR+=..
endif
@@ -1070,6 +1088,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=..
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=..
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=..
endif
@@ -1157,6 +1178,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=..
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=..
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=..
endif
@@ -1470,6 +1494,12 @@ 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=
@@ -1515,6 +1545,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1936,6 +1971,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -2023,6 +2061,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -2243,7 +2284,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2273,17 +2314,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/compiler/utils/fpc.pp b/compiler/utils/fpc.pp
index 9d2de163ad..7da8dd2e1a 100644
--- a/compiler/utils/fpc.pp
+++ b/compiler/utils/fpc.pp
@@ -29,19 +29,15 @@ program fpc;
{$ifdef UNIX}
exeext='';
{$else UNIX}
- {$ifdef AMIGA}
+ {$ifdef HASAMIGA}
exeext='';
{$else}
- {$ifdef MORPHOS}
- exeext='';
- {$else}
- {$ifdef NETWARE}
+ {$ifdef NETWARE}
exeext='.nlm';
- {$else}
+ {$else}
exeext='.exe';
- {$endif NETWARE}
- {$endif MORPHOS}
- {$endif AMIGA}
+ {$endif NETWARE}
+ {$endif HASAMIGA}
{$endif UNIX}
diff --git a/compiler/utils/ppuutils/ppudump.pp b/compiler/utils/ppuutils/ppudump.pp
index 9d8d4dd560..24c58cff0d 100644
--- a/compiler/utils/ppuutils/ppudump.pp
+++ b/compiler/utils/ppuutils/ppudump.pp
@@ -164,7 +164,10 @@ const
{ 79 } 'MSDOS-i8086',
{ 80 } 'Android-MIPSel',
{ 81 } 'Embedded-mipseb',
- { 82 } 'Embedded-mipsel'
+ { 82 } 'Embedded-mipsel',
+ { 83 } 'AROS-i386',
+ { 84 } 'AROS-x86-64',
+ { 85 } 'DragonFly-x86-64'
);
const
@@ -1100,9 +1103,7 @@ end;
disabledircache : boolean;
{ CPU targets with microcontroller support can add a controller specific unit }
-{$if defined(ARM) or defined(AVR) or defined(MIPSEL)}
controllertype : tcontrollertype;
-{$endif defined(ARM) or defined(AVR) or defined(MIPSEL)}
{ WARNING: this pointer cannot be written as such in record token }
pmessage : pmessagestaterecord;
end;
@@ -1526,6 +1527,19 @@ begin
end;
end;
+ if [df_generic,df_specialization]*defoptions<>[] then
+ begin
+ nb:=ppufile.getlongint;
+ writeln([space,'has ',nb,' parameters']);
+ if nb>0 then
+ begin
+ for i:=0 to nb-1 do
+ begin
+ writeln([space,'parameter ',i,': ',ppufile.getstring]);
+ readderef(space);
+ end;
+ end;
+ end;
if df_generic in defoptions then
begin
tokenbufsize:=ppufile.getlongint;
@@ -1724,6 +1738,7 @@ const
(mask:po_syscall_basesysv;str:'SyscallBaseSysV'),
(mask:po_syscall_sysvbase;str:'SyscallSysVBase'),
(mask:po_syscall_r12base; str:'SyscallR12Base'),
+ (mask:po_syscall_has_libsym; str:'Has LibSym'),
(mask:po_inline; str:'Inline'),
(mask:po_compilerproc; str:'CompilerProc'),
(mask:po_has_importdll; str:'HasImportDLL'),
@@ -1804,6 +1819,8 @@ begin
i:=ppufile.getbyte;
ppufile.getdata(tempbuf,i);
end;
+ if po_syscall_has_libsym in procoptions then
+ readderef(space);
end;
@@ -2867,6 +2884,8 @@ begin
writeln([space,' Range : ',arrdef.RangeLow,' to ',arrdef.RangeHigh]);
write ([space,' Options : ']);
readarraydefoptions(arrdef);
+ if tsystemcpu(ppufile.header.cpu)=cpu_i8086 then
+ writeln([space,' Huge : ',(getbyte<>0)]);
readsymtable('symbols', arrdef);
end;
diff --git a/compiler/utils/samplecfg b/compiler/utils/samplecfg
index c48c0b9e6a..0f08fefd10 100644
--- a/compiler/utils/samplecfg
+++ b/compiler/utils/samplecfg
@@ -99,4 +99,4 @@ ${FPCMKCFGBIN} -p -3 $compilerconfigdir -o $fppkgfile
# Write default
echo Writing sample configuration file to $defaultfile
-${FPCMKCFGBIN} -p -4 -d "GlobalPrefix=$FPCGLOBALPREFIX" -o $defaultfile
+${FPCMKCFGBIN} -p -4 -d "GlobalPrefix=$FPCGLOBALPREFIX" -d "FpcBin=$FPCBIN" -o $defaultfile
diff --git a/compiler/version.pas b/compiler/version.pas
index f51fcde36a..89aa439e61 100644
--- a/compiler/version.pas
+++ b/compiler/version.pas
@@ -27,8 +27,8 @@ interface
const
{ version string }
- version_nr = '2';
- release_nr = '7';
+ version_nr = '3';
+ release_nr = '1';
patch_nr = '1';
minorpatch = '';
diff --git a/compiler/vis/cpuinfo.pas b/compiler/vis/cpuinfo.pas
index ef0fa47113..ccc3d9bbaa 100644
--- a/compiler/vis/cpuinfo.pas
+++ b/compiler/vis/cpuinfo.pas
@@ -16,6 +16,9 @@ Unit CPUInfo;
Interface
+uses
+ globtype;
+
Type
{ Architecture word - Native unsigned type }
AWord = Longword;
@@ -31,6 +34,9 @@ Type
TConstPtrUInt = Longword;
bestreal = double;
+{$if FPC_FULLVERSION>20700}
+ bestrealrec = TDoubleRec;
+{$endif FPC_FULLVERSION>20700}
ts32real = single;
ts64real = double;
ts80real = extended;
@@ -41,7 +47,15 @@ Type
{ possible supported processors for this target }
tcputype = (cpu_none);
+ tcontrollertype =
+ (ct_none
+ );
+
+
Const
+ { Is there support for dealing with multiple microcontrollers available }
+ { for this platform? }
+ ControllerSupport = false;
{# Size of native extended floating point type }
extended_size = 8;
{# Size of a pointer }
@@ -51,6 +65,15 @@ Const
{ target cpu string (used by compiler options) }
target_cpu_string = 'vis';
+ { 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:''; flashbase:0; flashsize:0; srambase:0; sramsize:0));
+ {$POP}
+
Implementation
end.
diff --git a/compiler/x86/aasmcpu.pas b/compiler/x86/aasmcpu.pas
index 89995f8df8..9462f72f01 100644
--- a/compiler/x86/aasmcpu.pas
+++ b/compiler/x86/aasmcpu.pas
@@ -1239,7 +1239,7 @@ implementation
assembler }
end;
else
- internalerror(200402261);
+ internalerror(200402266);
end;
end;
end;
@@ -1827,9 +1827,13 @@ implementation
{No register, so memory reference.}
if (input.typ<>top_ref) then
internalerror(200409262);
- if ((input.ref^.index<>NR_NO) and (getregtype(input.ref^.index)<>R_INTREGISTER)) or
+
+ if ((input.ref^.index<>NR_NO) and (getregtype(input.ref^.index)=R_MMREGISTER) and (input.ref^.base<>NR_NO) and (getregtype(input.ref^.base)<>R_INTREGISTER)) or // vector memory (AVX2)
+ ((input.ref^.index<>NR_NO) and (getregtype(input.ref^.index)<>R_INTREGISTER) and (getregtype(input.ref^.index)<>R_MMREGISTER)) or
((input.ref^.base<>NR_NO) and (getregtype(input.ref^.base)<>R_INTREGISTER)) then
- internalerror(200301081);
+ internalerror(200301081);
+
+
ir:=input.ref^.index;
br:=input.ref^.base;
isub:=getsubreg(ir);
@@ -1849,8 +1853,15 @@ implementation
{ it's an indirection }
begin
{ 16 bit address? }
- if ((ir<>NR_NO) and (isub<>R_SUBADDR)) or
- ((br<>NR_NO) and (bsub<>R_SUBADDR)) then
+
+ if ((ir<>NR_NO) and (isub in [R_SUBMMX,R_SUBMMY]) and
+ (br<>NR_NO) and (bsub=R_SUBADDR)
+ ) then
+ begin
+ // vector memory (AVX2) =>> ignore
+ end
+ else if ((ir<>NR_NO) and (isub<>R_SUBADDR)) or
+ ((br<>NR_NO) and (bsub<>R_SUBADDR)) then
message(asmw_e_16bit_not_supported);
{$ifdef OPTEA}
{ make single reg base }
@@ -1893,14 +1904,30 @@ implementation
end;
{ index }
case ir of
- NR_EAX : index:=0;
- NR_ECX : index:=1;
- NR_EDX : index:=2;
- NR_EBX : index:=3;
- NR_NO : index:=4;
- NR_EBP : index:=5;
- NR_ESI : index:=6;
- NR_EDI : index:=7;
+ NR_EAX,
+ NR_XMM0,
+ NR_YMM0: index:=0;
+ NR_ECX,
+ NR_XMM1,
+ NR_YMM1: index:=1;
+ NR_EDX,
+ NR_XMM2,
+ NR_YMM2: index:=2;
+ NR_EBX,
+ NR_XMM3,
+ NR_YMM3: index:=3;
+ NR_NO,
+ NR_XMM4,
+ NR_YMM4: index:=4;
+ NR_EBP,
+ NR_XMM5,
+ NR_YMM5: index:=5;
+ NR_ESI,
+ NR_XMM6,
+ NR_YMM6: index:=6;
+ NR_EDI,
+ NR_XMM7,
+ NR_YMM7: index:=7;
else
exit;
end;
@@ -3290,46 +3317,44 @@ implementation
RegXMMSizeMask := RegXMMSizeMask;
end;
-
-
for j := 0 to insentry^.ops -1 do
begin
if (insentry^.optypes[j] and OT_REGISTER) = OT_REGISTER then
- begin
- inc(actRegCount);
-
- NewRegSize := (insentry^.optypes[j] and OT_SIZE_MASK);
- if NewRegSize = 0 then
begin
- case insentry^.optypes[j] and (OT_MMXREG OR OT_XMMREG OR OT_YMMREG) of
- OT_MMXREG: begin
- NewRegSize := OT_BITS64;
- end;
- OT_XMMREG: begin
- NewRegSize := OT_BITS128;
- InsTabMemRefSizeInfoCache^[AsmOp].ExistsSSEAVX := true;
- end;
- OT_YMMREG: begin
- NewRegSize := OT_BITS256;
- InsTabMemRefSizeInfoCache^[AsmOp].ExistsSSEAVX := true;
- end;
- else NewRegSize := not(0);
+ inc(actRegCount);
+
+ NewRegSize := (insentry^.optypes[j] and OT_SIZE_MASK);
+ if NewRegSize = 0 then
+ begin
+ case insentry^.optypes[j] and (OT_MMXREG OR OT_XMMREG OR OT_YMMREG) of
+ OT_MMXREG: begin
+ NewRegSize := OT_BITS64;
+ end;
+ OT_XMMREG: begin
+ NewRegSize := OT_BITS128;
+ InsTabMemRefSizeInfoCache^[AsmOp].ExistsSSEAVX := true;
+ end;
+ OT_YMMREG: begin
+ NewRegSize := OT_BITS256;
+ InsTabMemRefSizeInfoCache^[AsmOp].ExistsSSEAVX := true;
+ end;
+ else NewRegSize := not(0);
+ end;
end;
- end;
actRegSize := actRegSize or NewRegSize;
actRegTypes := actRegTypes or (insentry^.optypes[j] and (OT_MMXREG OR OT_XMMREG OR OT_YMMREG));
- end
+ end
else if ((insentry^.optypes[j] and OT_MEMORY) <> 0) then
- begin
- inc(actMemCount);
-
- actMemSize := actMemSize or (insentry^.optypes[j] and OT_SIZE_MASK);
- if (insentry^.optypes[j] and OT_REGMEM) = OT_REGMEM then
begin
- actRegMemTypes := actRegMemTypes or insentry^.optypes[j];
- end;
- end
+ inc(actMemCount);
+
+ actMemSize:=actMemSize or (insentry^.optypes[j] and OT_SIZE_MASK);
+ if (insentry^.optypes[j] and OT_REGMEM) = OT_REGMEM then
+ begin
+ actRegMemTypes := actRegMemTypes or insentry^.optypes[j];
+ end;
+ end
else if ((insentry^.optypes[j] and OT_IMMEDIATE) = OT_IMMEDIATE) then
begin
inc(actConstCount);
@@ -3341,12 +3366,12 @@ implementation
if actConstCount > 0 then
begin
case actConstSize of
- 0: SConstInfo := csiNoSize;
- OT_BITS8: SConstInfo := csiMem8;
+ 0: SConstInfo := csiNoSize;
+ OT_BITS8: SConstInfo := csiMem8;
OT_BITS16: SConstInfo := csiMem16;
OT_BITS32: SConstInfo := csiMem32;
OT_BITS64: SConstInfo := csiMem64;
- else SConstInfo := csiMultiple;
+ else SConstInfo := csiMultiple;
end;
if InsTabMemRefSizeInfoCache^[AsmOp].ConstSize = csiUnkown then
@@ -3371,59 +3396,57 @@ implementation
end;
case actMemSize of
- 0: MRefInfo := msiNoSize;
- OT_BITS8: MRefInfo := msiMem8;
- OT_BITS16: MRefInfo := msiMem16;
- OT_BITS32: MRefInfo := msiMem32;
- OT_BITS64: MRefInfo := msiMem64;
+ 0: MRefInfo := msiNoSize;
+ OT_BITS8: MRefInfo := msiMem8;
+ OT_BITS16: MRefInfo := msiMem16;
+ OT_BITS32: MRefInfo := msiMem32;
+ OT_BITS64: MRefInfo := msiMem64;
OT_BITS128: MRefInfo := msiMem128;
OT_BITS256: MRefInfo := msiMem256;
OT_BITS80,
- OT_FAR,
- OT_NEAR,
- OT_SHORT: ; // ignore
- else begin
- bitcount := bitcnt(actMemSize);
-
- if bitcount > 1 then MRefInfo := msiMultiple
- else InternalError(777203);
- end;
+ OT_FAR,
+ OT_NEAR,
+ OT_SHORT: ; // ignore
+ else
+ begin
+ bitcount := bitcnt(actMemSize);
+
+ if bitcount > 1 then MRefInfo := msiMultiple
+ else InternalError(777203);
+ end;
end;
if InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize = msiUnkown then
- begin
- InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize := MRefInfo;
- end
+ begin
+ InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize := MRefInfo;
+ end
else if InsTabMemRefSizeInfoCache^[AsmOp].MemRefSize <> MRefInfo then
- begin
- with InsTabMemRefSizeInfoCache^[AsmOp] do
begin
-
-
- if ((MemRefSize = msiMem8) OR (MRefInfo = msiMem8)) then MemRefSize := msiMultiple8
- else if ((MemRefSize = msiMem16) OR (MRefInfo = msiMem16)) then MemRefSize := msiMultiple16
- else if ((MemRefSize = msiMem32) OR (MRefInfo = msiMem32)) then MemRefSize := msiMultiple32
- else if ((MemRefSize = msiMem64) OR (MRefInfo = msiMem64)) then MemRefSize := msiMultiple64
- else if ((MemRefSize = msiMem128) OR (MRefInfo = msiMem128)) then MemRefSize := msiMultiple128
- else if ((MemRefSize = msiMem256) OR (MRefInfo = msiMem256)) then MemRefSize := msiMultiple256
-
- else MemRefSize := msiMultiple;
- end;
+ with InsTabMemRefSizeInfoCache^[AsmOp] do
+ begin
+ if ((MemRefSize = msiMem8) OR (MRefInfo = msiMem8)) then MemRefSize := msiMultiple8
+ else if ((MemRefSize = msiMem16) OR (MRefInfo = msiMem16)) then MemRefSize := msiMultiple16
+ else if ((MemRefSize = msiMem32) OR (MRefInfo = msiMem32)) then MemRefSize := msiMultiple32
+ else if ((MemRefSize = msiMem64) OR (MRefInfo = msiMem64)) then MemRefSize := msiMultiple64
+ else if ((MemRefSize = msiMem128) OR (MRefInfo = msiMem128)) then MemRefSize := msiMultiple128
+ else if ((MemRefSize = msiMem256) OR (MRefInfo = msiMem256)) then MemRefSize := msiMultiple256
+ else MemRefSize := msiMultiple;
+ end;
end;
if actRegCount > 0 then
- begin
- case actRegTypes and (OT_MMXREG or OT_XMMREG or OT_YMMREG) of
- OT_MMXREG: RegMMXSizeMask := RegMMXSizeMask or actMemSize;
- OT_XMMREG: RegXMMSizeMask := RegXMMSizeMask or actMemSize;
- OT_YMMREG: RegYMMSizeMask := RegYMMSizeMask or actMemSize;
- else begin
- RegMMXSizeMask := not(0);
- RegXMMSizeMask := not(0);
- RegYMMSizeMask := not(0);
- end;
+ begin
+ case actRegTypes and (OT_MMXREG or OT_XMMREG or OT_YMMREG) of
+ OT_MMXREG: RegMMXSizeMask := RegMMXSizeMask or actMemSize;
+ OT_XMMREG: RegXMMSizeMask := RegXMMSizeMask or actMemSize;
+ OT_YMMREG: RegYMMSizeMask := RegYMMSizeMask or actMemSize;
+ else begin
+ RegMMXSizeMask := not(0);
+ RegXMMSizeMask := not(0);
+ RegYMMSizeMask := not(0);
+ end;
+ end;
end;
- end;
end;
else InternalError(777202);
end;
diff --git a/compiler/x86/agx86att.pas b/compiler/x86/agx86att.pas
index 3c58323d9c..ab2970b762 100644
--- a/compiler/x86/agx86att.pas
+++ b/compiler/x86/agx86att.pas
@@ -163,18 +163,19 @@ interface
if assigned(relsymbol) then
owner.AsmWrite('-'+relsymbol.name);
if ref.refaddr=addr_pic then
-{$ifdef x86_64}
begin
- { local symbols don't have to (and in case of Mac OS X: cannot)
- be accessed via the GOT
- }
- if not assigned(ref.symbol) or
- (ref.symbol.bind<>AB_LOCAL) then
- owner.AsmWrite('@GOTPCREL');
- end;
+ { @GOT and @GOTPCREL references are only allowed for symbol alone,
+ indexing, relsymbol or offset cannot be present. }
+ if assigned(relsymbol) or (offset<>0) or (index<>NR_NO) then
+ InternalError(2015011801);
+{$ifdef x86_64}
+ if (base<>NR_RIP) then
+ InternalError(2015011802);
+ owner.AsmWrite('@GOTPCREL');
{$else x86_64}
- owner.AsmWrite('@GOT');
+ owner.AsmWrite('@GOT');
{$endif x86_64}
+ end;
if offset<0 then
owner.AsmWrite(tostr(offset))
else
@@ -469,7 +470,8 @@ interface
asmcmd : '--64 -o $OBJ $EXTRAOPT $ASM';
supported_targets : [system_x86_64_linux,system_x86_64_freebsd,
system_x86_64_win64,system_x86_64_embedded,
- system_x86_64_openbsd,system_x86_64_netbsd];
+ system_x86_64_openbsd,system_x86_64_netbsd,
+ system_x86_64_dragonfly];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
labelprefix : '.L';
comment : '# ';
@@ -527,7 +529,7 @@ interface
supported_targets : [system_i386_GO32V2,system_i386_linux,system_i386_Win32,system_i386_freebsd,system_i386_solaris,system_i386_beos,
system_i386_netbsd,system_i386_Netware,system_i386_qnx,system_i386_wdosx,system_i386_openbsd,
system_i386_netwlibc,system_i386_wince,system_i386_embedded,system_i386_symbian,system_i386_haiku,system_x86_6432_linux,
- system_i386_nativent,system_i386_android];
+ system_i386_nativent,system_i386_android,system_i386_aros];
flags : [af_needar,af_smartlink_sections,af_supports_dwarf];
labelprefix : '.L';
comment : '# ';
diff --git a/compiler/x86/agx86nsm.pas b/compiler/x86/agx86nsm.pas
index ed02093c58..1deaba8e28 100644
--- a/compiler/x86/agx86nsm.pas
+++ b/compiler/x86/agx86nsm.pas
@@ -1302,6 +1302,8 @@ interface
case target_info.system of
system_i8086_msdos:
FormatName:='obj';
+ else
+ internalerror(2014082060);
end;
{$endif i8086}
{$ifdef i386}
diff --git a/compiler/x86/nx86add.pas b/compiler/x86/nx86add.pas
index 1f147bec76..1c57544131 100644
--- a/compiler/x86/nx86add.pas
+++ b/compiler/x86/nx86add.pas
@@ -47,6 +47,7 @@ unit nx86add;
procedure second_addfloatsse;
procedure second_addfloatavx;
public
+ function use_fma : boolean;override;
procedure second_addfloat;override;
{$ifndef i8086}
procedure second_addsmallset;override;
@@ -273,6 +274,15 @@ unit nx86add;
procedure tx86addnode.prepare_x87_locations(out refnode: tnode);
begin
refnode:=nil;
+
+ { later on, no mm registers are allowed, so transfer everything to memory here
+ below it is loaded into an fpu register if neede }
+ if left.location.loc in [LOC_CMMREGISTER,LOC_MMREGISTER] then
+ hlcg.location_force_mem(current_asmdata.CurrAsmList,left.location,left.resultdef);
+
+ if right.location.loc in [LOC_CMMREGISTER,LOC_MMREGISTER] then
+ hlcg.location_force_mem(current_asmdata.CurrAsmList,right.location,right.resultdef);
+
case ord(left.location.loc=LOC_FPUREGISTER)+ord(right.location.loc=LOC_FPUREGISTER) of
0:
begin
@@ -603,6 +613,8 @@ unit nx86add;
pass_left_right;
cmpop:=false;
+ op:=A_NOP;
+
mmxbase:=mmx_type(left.resultdef);
location_reset(location,LOC_MMXREGISTER,def_cgsize(resultdef));
case nodetype of
@@ -679,6 +691,9 @@ unit nx86add;
internalerror(2003042214);
end;
+ if op = A_NOP then
+ internalerror(201408201);
+
{ left and right no register? }
{ then one must be demanded }
if (left.location.loc<>LOC_MMXREGISTER) then
@@ -1072,6 +1087,18 @@ unit nx86add;
end;
+ function tx86addnode.use_fma : boolean;
+ begin
+{$ifndef i8086}
+ { test if the result stays in an xmm register, fiddeling with fpu registers and fma makes no sense }
+ Result:=use_vectorfpu(resultdef) and
+ ((cpu_capabilities[current_settings.cputype]*[CPUX86_HAS_FMA,CPUX86_HAS_FMA4])<>[]);
+{$else i8086}
+ Result:=inherited use_fma;
+{$endif i8086}
+ end;
+
+
procedure tx86addnode.second_cmpfloatvector;
var
op : tasmop;
diff --git a/compiler/x86/nx86mat.pas b/compiler/x86/nx86mat.pas
index d056f364bf..5d41b57650 100644
--- a/compiler/x86/nx86mat.pas
+++ b/compiler/x86/nx86mat.pas
@@ -99,6 +99,7 @@ interface
op : tasmop;
hreg : tregister;
begin
+ op:=A_NONE;
secondpass(left);
location_reset(location,LOC_MMXREGISTER,OS_NO);
hreg:=tcgx86(cg).getmmxregister(current_asmdata.CurrAsmList);
@@ -142,6 +143,9 @@ interface
mmxs32bit,mmxu32bit:
op:=A_PSUBD;
end;
+ if op = A_NONE then
+ internalerror(201408202);
+
emit_reg_reg(op,S_NO,location.register,hreg);
emit_reg_reg(A_MOVQ,S_NO,hreg,location.register);
end;
@@ -523,8 +527,8 @@ interface
else
emit_reg_reg(A_XOR,opsize,regd,regd);
- {Division depends on the right type.}
- if is_signed(right.resultdef) then
+ { Division depends on the result type }
+ if is_signed(resultdef) then
op:=A_IDIV
else
op:=A_DIV;
diff --git a/compiler/x86/rax86.pas b/compiler/x86/rax86.pas
index 391ed7ad05..e3b91a0ac0 100644
--- a/compiler/x86/rax86.pas
+++ b/compiler/x86/rax86.pas
@@ -47,8 +47,9 @@ type
Function CheckOperand: boolean; override;
end;
+ { Operands are always in AT&T order.
+ Intel reader attaches them right-to-left, then shifts to start with 1 }
Tx86Instruction=class(TInstruction)
- OpOrder : TOperandOrder;
opsize : topsize;
constructor Create(optype : tcoperand);override;
{ Operand sizes }
@@ -56,7 +57,6 @@ type
procedure SetInstructionOpsize;
procedure CheckOperandSizes;
procedure CheckNonCommutativeOpcodes;
- procedure SwapOperands;
{ Additional actions required by specific reader }
procedure FixupOpcode;virtual;
{ opcode adding }
@@ -295,16 +295,6 @@ begin
end;
-procedure Tx86Instruction.SwapOperands;
-begin
- Inherited SwapOperands;
- { mark the correct order }
- if OpOrder=op_intel then
- OpOrder:=op_att
- else
- OpOrder:=op_intel;
-end;
-
const
{$ifdef x86_64}
topsize2memsize: array[topsize] of integer =
@@ -437,7 +427,11 @@ begin
memopsize := 0;
case operands[i].opr.typ of
OPR_LOCAL: memopsize := operands[i].opr.localvarsize * 8;
- OPR_REFERENCE: memopsize := operands[i].opr.varsize * 8;
+ OPR_REFERENCE:
+ if operands[i].opr.ref.refaddr = addr_pic then
+ memopsize := sizeof(pint) * 8
+ else
+ memopsize := operands[i].opr.varsize * 8;
end;
if memopsize = 0 then memopsize := topsize2memsize[tx86operand(operands[i]).opsize];
@@ -800,8 +794,6 @@ procedure Tx86Instruction.SetInstructionOpsize;
begin
if opsize<>S_NO then
exit;
- if (OpOrder=op_intel) then
- SwapOperands;
case ops of
0 : ;
1 :
@@ -937,8 +929,6 @@ end;
but before swapping in the NASM and TASM writers PM }
procedure Tx86Instruction.CheckNonCommutativeOpcodes;
begin
- if (OpOrder=op_intel) then
- SwapOperands;
if (
(ops=2) and
(operands[1].opr.typ=OPR_REGISTER) and
@@ -998,8 +988,6 @@ var
ai : taicpu;
begin
ConcatInstruction:=nil;
- if (OpOrder=op_intel) then
- SwapOperands;
ai:=nil;
for i:=1 to Ops do
@@ -1160,7 +1148,7 @@ begin
ai:=taicpu.op_none(opcode,siz);
ai.fileinfo:=filepos;
- ai.SetOperandOrder(OpOrder);
+ ai.SetOperandOrder(op_att);
ai.Ops:=Ops;
ai.Allocate_oper(Ops);
for i:=1 to Ops do
diff --git a/compiler/x86/rax86att.pas b/compiler/x86/rax86att.pas
index b13c587dde..85f60629e0 100644
--- a/compiler/x86/rax86att.pas
+++ b/compiler/x86/rax86att.pas
@@ -98,9 +98,6 @@ Implementation
procedure Tx86attInstruction.FixupOpcode;
begin
- if (OpOrder=op_intel) then
- SwapOperands;
-
case opcode of
A_MOVQ:
begin
@@ -973,7 +970,6 @@ Implementation
instr : Tx86Instruction;
begin
instr:=Tx86attInstruction.Create(Tx86Operand);
- instr.OpOrder:=op_att;
BuildOpcode(instr);
instr.AddReferenceSizes;
instr.SetInstructionOpsize;
diff --git a/compiler/x86/rax86int.pas b/compiler/x86/rax86int.pas
index ab39284882..9e2080659e 100644
--- a/compiler/x86/rax86int.pas
+++ b/compiler/x86/rax86int.pas
@@ -65,7 +65,7 @@ Unit Rax86int;
procedure BuildRecordOffsetSize(const expr: string;var offset:aint;var size:aint; var mangledname: string; needvmtofs: boolean);
procedure BuildConstSymbolExpression(needofs,isref,startingminus:boolean;var value:aint;var asmsym:string;var asmsymtyp:TAsmsymtype);
function BuildConstExpression:aint;
- function BuildRefConstExpression:aint;
+ function BuildRefConstExpression(startingminus:boolean=false):aint;
procedure BuildReference(oper : tx86operand);
procedure BuildOperand(oper: tx86operand;istypecast:boolean);
procedure BuildConstantOperand(oper: tx86operand);
@@ -1141,13 +1141,13 @@ Unit Rax86int;
end;
- Function tx86intreader.BuildRefConstExpression:aint;
+ Function tx86intreader.BuildRefConstExpression(startingminus:boolean):aint;
var
l : aint;
hs : string;
hssymtyp : TAsmsymtype;
begin
- BuildConstSymbolExpression(false,true,false,l,hs,hssymtyp);
+ BuildConstSymbolExpression(false,true,startingminus,l,hs,hssymtyp);
if hs<>'' then
Message(asmr_e_relocatable_symbol_not_allowed);
BuildRefConstExpression:=l;
@@ -1190,7 +1190,8 @@ Unit Rax86int;
(SearchIConstant(actasmpattern,l) or
SearchRecordType(actasmpattern)) then
begin
- l:=BuildRefConstExpression;
+ l:=BuildRefConstExpression(negative);
+ negative:=false; { "l" was negated if necessary }
GotPlus:=(prevasmtoken=AS_PLUS);
GotStar:=(prevasmtoken=AS_STAR);
case oper.opr.typ of
@@ -1198,23 +1199,15 @@ Unit Rax86int;
begin
if GotStar then
Message(asmr_e_invalid_reference_syntax);
- if negative then
- Dec(oper.opr.localsymofs,l)
- else
- Inc(oper.opr.localsymofs,l);
+ Inc(oper.opr.localsymofs,l);
end;
OPR_REFERENCE :
begin
if GotStar then
oper.opr.ref.scalefactor:=l
else
- begin
- if negative then
- Dec(oper.opr.ref.offset,l)
- else
- Inc(oper.opr.ref.offset,l);
- end;
- end;
+ Inc(oper.opr.ref.offset,l);
+ end;
end;
end
else
@@ -1427,6 +1420,11 @@ Unit Rax86int;
begin
if (oper.opr.localindexreg<>NR_NO) then
Message(asmr_e_multiple_index);
+{$ifdef x86_64}
+ { Locals/parameters cannot be accessed RIP-relative. Need a dedicated error message here? }
+ if (hreg=NR_RIP) then
+ Message(asmr_e_no_local_or_para_allowed);
+{$endif x86_64}
oper.opr.localindexreg:=hreg;
if scale<>0 then
begin
@@ -1980,6 +1978,7 @@ Unit Rax86int;
operandnum : longint;
is_far_const:boolean;
i:byte;
+ tmp: toperand;
begin
PrefixOp:=A_None;
OverrideOp:=A_None;
@@ -1989,7 +1988,6 @@ Unit Rax86int;
if is_prefix(actopcode) then
with instr do
begin
- OpOrder:=op_intel;
PrefixOp:=ActOpcode;
opcode:=ActOpcode;
condition:=ActCondition;
@@ -2001,7 +1999,6 @@ Unit Rax86int;
if is_override(actopcode) then
with instr do
begin
- OpOrder:=op_intel;
OverrideOp:=ActOpcode;
opcode:=ActOpcode;
condition:=ActCondition;
@@ -2025,7 +2022,6 @@ Unit Rax86int;
{ Fill the instr object with the current state }
with instr do
begin
- OpOrder:=op_intel;
Opcode:=ActOpcode;
condition:=ActCondition;
opsize:=ActOpsize;
@@ -2052,15 +2048,13 @@ Unit Rax86int;
{$endif x86_64}
;
{ We are reading operands, so opcode will be an AS_ID }
- operandnum:=1;
+ { process operands backwards to get them in AT&T order }
+ operandnum:=max_operands;
is_far_const:=false;
Consume(AS_OPCODE);
{ Zero operand opcode ? }
if actasmtoken in [AS_SEPARATOR,AS_END] then
- begin
- operandnum:=0;
- exit;
- end;
+ exit;
{ Read Operands }
repeat
case actasmtoken of
@@ -2072,10 +2066,13 @@ Unit Rax86int;
{ Operand delimiter }
AS_COMMA :
begin
- if operandnum > Max_Operands then
+ { should have something before the comma }
+ if instr.operands[operandnum].opr.typ=OPR_NONE then
+ Message(asmr_e_syntax_error);
+ if operandnum <= 1 then
Message(asmr_e_too_many_operands)
else
- Inc(operandnum);
+ Dec(operandnum);
Consume(AS_COMMA);
end;
@@ -2083,10 +2080,10 @@ Unit Rax86int;
AS_COLON:
begin
is_far_const:=true;
- if operandnum>1 then
+ if operandnum<max_operands then
message(asmr_e_too_many_operands)
else
- inc(operandnum);
+ dec(operandnum);
consume(AS_COLON);
end;
@@ -2116,6 +2113,15 @@ Unit Rax86int;
BuildOperand(instr.Operands[operandnum] as tx86operand,false);
end; { end case }
until false;
+
+ { shift operands to start from 1, exchange to make sure they are destroyed correctly }
+ for i:=operandnum to max_operands do
+ begin
+ tmp:=instr.operands[i+1-operandnum];
+ instr.operands[i+1-operandnum]:=instr.operands[i];
+ instr.operands[i]:=tmp;
+ end;
+ operandnum:=(max_operands+1)-operandnum;
instr.ops:=operandnum;
{ Check operands }
for i:=1 to operandnum do
@@ -2303,9 +2309,6 @@ Unit Rax86int;
BuildOpcode(instr);
with instr do
begin
- { We need AT&T style operands }
- Swapoperands;
- { Must be done with args in ATT order }
CheckNonCommutativeOpcodes;
AddReferenceSizes;
SetInstructionOpsize;
diff --git a/compiler/x86/symx86.pas b/compiler/x86/symx86.pas
index 45c93a8cd3..500e4443c7 100644
--- a/compiler/x86/symx86.pas
+++ b/compiler/x86/symx86.pas
@@ -26,7 +26,7 @@ unit symx86;
interface
uses
- globtype,
+ globtype, cclasses,
symconst, symtype,symdef,symsym;
type
@@ -45,10 +45,62 @@ type
end;
tx86pointerdefclass = class of tx86pointerdef;
+ tx86PtrDefKey = packed record
+ def: tdef;
+ x86typ:tx86pointertyp;
+ end;
+
+ { tx86PtrDefHashSet }
+
+ tx86PtrDefHashSet = class(TPtrDefHashSet)
+ private
+ class procedure Key2FullKey(Key: Pointer; out FullKey: tx86PtrDefKey);
+ public
+ function Find(Key: Pointer; KeyLen: Integer): PHashSetItem;override;
+ function FindOrAdd(Key: Pointer; KeyLen: Integer;
+ var Found: Boolean): PHashSetItem;override;
+ function FindOrAdd(Key: Pointer; KeyLen: Integer): PHashSetItem;override;
+ function Get(Key: Pointer; KeyLen: Integer): TObject;override;
+ end;
+
+ { returns a pointerdef for def, reusing an existing one in case it exists
+ in the current module }
+ function getx86pointerdef(def: tdef;x86typ:tx86pointertyp): tpointerdef;
+
implementation
uses
- globals, verbose;
+ globals, verbose,
+ symbase, fmodule;
+
+ function getx86pointerdef(def: tdef;x86typ:tx86pointertyp): tpointerdef;
+ var
+ res: PHashSetItem;
+ oldsymtablestack: tsymtablestack;
+ key: tx86PtrDefKey;
+ begin
+ if not assigned(current_module) then
+ internalerror(2011071101);
+ key.def:=def;
+ key.x86typ:=x86typ;
+ res:=current_module.ptrdefs.FindOrAdd(@key,sizeof(key));
+ if not assigned(res^.Data) then
+ begin
+ { since these pointerdefs can be reused anywhere in the current
+ unit, add them to the global/staticsymtable }
+ oldsymtablestack:=symtablestack;
+ { do not simply push/pop current_module.localsymtable, because
+ that can have side-effects (e.g., it removes helpers) }
+ symtablestack:=nil;
+ res^.Data:=tx86pointerdefclass(cpointerdef).createx86(def,x86typ);
+ if assigned(current_module.localsymtable) then
+ current_module.localsymtable.insertdef(tdef(res^.Data))
+ else
+ current_module.globalsymtable.insertdef(tdef(res^.Data));
+ symtablestack:=oldsymtablestack;
+ end;
+ result:=tpointerdef(res^.Data);
+ end;
{****************************************************************************
tx86pointerdef
@@ -136,5 +188,69 @@ implementation
end;
+{****************************************************************************
+ tx86PtrDefHashSet
+****************************************************************************}
+
+ class procedure tx86PtrDefHashSet.Key2FullKey(Key: Pointer; out FullKey: tx86PtrDefKey);
+ type
+ pdef=^tdef;
+ begin
+ FullKey.def:=pdef(Key)^;
+ FullKey.x86typ:=tx86pointerdefclass(cpointerdef).default_x86_data_pointer_type;
+ end;
+
+ function tx86PtrDefHashSet.Find(Key: Pointer; KeyLen: Integer): PHashSetItem;
+ var
+ FullKey: tx86PtrDefKey;
+ begin
+ if KeyLen=SizeOf(tdef) then
+ begin
+ Key2FullKey(Key, FullKey);
+ Result:=inherited Find(@FullKey, SizeOf(FullKey));
+ end
+ else
+ Result:=inherited Find(Key, KeyLen);
+ end;
+
+ function tx86PtrDefHashSet.FindOrAdd(Key: Pointer; KeyLen: Integer; var Found: Boolean): PHashSetItem;
+ var
+ FullKey: tx86PtrDefKey;
+ begin
+ if KeyLen=SizeOf(tdef) then
+ begin
+ Key2FullKey(Key, FullKey);
+ Result:=inherited FindOrAdd(@FullKey, SizeOf(FullKey), Found);
+ end
+ else
+ Result:=inherited FindOrAdd(Key, KeyLen, Found);
+ end;
+
+ function tx86PtrDefHashSet.FindOrAdd(Key: Pointer; KeyLen: Integer): PHashSetItem;
+ var
+ FullKey: tx86PtrDefKey;
+ begin
+ if KeyLen=SizeOf(tdef) then
+ begin
+ Key2FullKey(Key, FullKey);
+ Result:=inherited FindOrAdd(@FullKey, SizeOf(FullKey));
+ end
+ else
+ Result:=inherited FindOrAdd(Key, KeyLen);
+ end;
+
+ function tx86PtrDefHashSet.Get(Key: Pointer; KeyLen: Integer): TObject;
+ var
+ FullKey: tx86PtrDefKey;
+ begin
+ if KeyLen=SizeOf(tdef) then
+ begin
+ Key2FullKey(Key, FullKey);
+ Result:=inherited Get(@FullKey, SizeOf(FullKey));
+ end
+ else
+ Result:=inherited Get(Key, KeyLen);
+ end;
+
end.
diff --git a/compiler/x86_64/cgcpu.pas b/compiler/x86_64/cgcpu.pas
index 3f1dce9a6b..d702844f4f 100644
--- a/compiler/x86_64/cgcpu.pas
+++ b/compiler/x86_64/cgcpu.pas
@@ -36,6 +36,9 @@ unit cgcpu;
tcgx86_64 = class(tcgx86)
procedure init_register_allocators;override;
+ procedure a_loadfpu_ref_cgpara(list: TAsmList; size: tcgsize; const ref: treference; const cgpara: TCGPara); override;
+ procedure a_loadfpu_reg_ref(list: TAsmList; fromsize, tosize: tcgsize; reg: tregister; const ref: treference); override;
+
procedure g_proc_entry(list : TAsmList;localsize:longint; nostackframe:boolean);override;
procedure g_proc_exit(list : TAsmList;parasize:longint;nostackframe:boolean);override;
procedure g_intf_wrapper(list: TAsmList; procdef: tprocdef; const labelname: string; ioffset: longint);override;
@@ -116,6 +119,30 @@ unit cgcpu;
end;
+ procedure tcgx86_64.a_loadfpu_ref_cgpara(list: TAsmList; size: tcgsize; const ref: treference; const cgpara: TCGPara);
+ begin
+ { a record containing an extended value is returned on the x87 stack
+ -> size will be OS_F128 (if not packed), while cgpara.paraloc^.size
+ contains the proper size
+
+ In the future we should probably always use cgpara.location^.size, but
+ that should only be tested/done after 2.8 is branched }
+ if size in [OS_128,OS_F128] then
+ size:=cgpara.location^.size;
+ inherited;
+ end;
+
+
+ procedure tcgx86_64.a_loadfpu_reg_ref(list: TAsmList; fromsize, tosize: tcgsize; reg: tregister; const ref: treference);
+ begin
+ { same as with a_loadfpu_ref_cgpara() above, but on the callee side
+ when the value is moved from the fpu register into a memory location }
+ if tosize in [OS_128,OS_F128] then
+ tosize:=OS_F80;
+ inherited;
+ end;
+
+
function tcgx86_64.use_push: boolean;
begin
result:=(current_procinfo.framepointer=NR_STACK_POINTER_REG) or
@@ -330,10 +357,6 @@ unit cgcpu;
hreg : tregister;
r : longint;
begin
- { Release PIC register }
- if cs_create_pic in current_settings.moduleswitches then
- list.concat(tai_regalloc.dealloc(NR_PIC_OFFSET_REG,nil));
-
{ Prevent return address from a possible call from ending up in the epilogue }
{ (restoring registers happens before epilogue, providing necessary padding) }
if (current_procinfo.flags*[pi_has_unwind_info,pi_do_call,pi_has_saved_regs])=[pi_has_unwind_info,pi_do_call] then
diff --git a/compiler/x86_64/cpuelf.pas b/compiler/x86_64/cpuelf.pas
index b73950277c..1d27bf8e8e 100644
--- a/compiler/x86_64/cpuelf.pas
+++ b/compiler/x86_64/cpuelf.pas
@@ -674,7 +674,8 @@ implementation
asmbin : '';
asmcmd : '';
supported_targets : [system_x86_64_linux,system_x86_64_freebsd,
- system_x86_64_openbsd,system_x86_64_netbsd];
+ system_x86_64_openbsd,system_x86_64_netbsd,
+ system_x86_64_dragonfly];
flags : [af_outputbinary,af_smartlink_sections,af_supports_dwarf];
labelprefix : '.L';
comment : '';
diff --git a/compiler/x86_64/cpuinfo.pas b/compiler/x86_64/cpuinfo.pas
index cbf64867c9..8dfb941acf 100644
--- a/compiler/x86_64/cpuinfo.pas
+++ b/compiler/x86_64/cpuinfo.pas
@@ -30,6 +30,13 @@ Interface
Type
bestreal = extended;
+{$if FPC_FULLVERSION>20700}
+{$ifdef FPC_HAS_TYPE_EXTENDED}
+ bestrealrec = TExtended80Rec;
+{$else}
+ bestrealrec = TDoubleRec;
+{$endif}
+{$endif FPC_FULLVERSION>20700}
ts32real = single;
ts64real = double;
ts80real = extended;
@@ -58,7 +65,15 @@ Type
fpu_avx2
);
+ tcontrollertype =
+ (ct_none
+ );
+
+
Const
+ { Is there support for dealing with multiple microcontrollers available }
+ { for this platform? }
+ ControllerSupport = true;
{ Size of native extended type }
extended_size = 10;
{ Size of a multimedia register }
@@ -66,6 +81,15 @@ Const
{ target cpu string (used by compiler options) }
target_cpu_string = 'x86_64';
+ { 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:''; flashbase:0; flashsize:0; srambase:0; sramsize:0));
+ {$POP}
+
{ calling conventions supported by the code generator }
supported_calling_conventions : tproccalloptions = [
pocall_internproc,
diff --git a/compiler/x86_64/cpupara.pas b/compiler/x86_64/cpupara.pas
index 7c1ea00457..c61712b10b 100644
--- a/compiler/x86_64/cpupara.pas
+++ b/compiler/x86_64/cpupara.pas
@@ -407,6 +407,20 @@ unit cpupara;
if (classes[i].typ=X86_64_X87UP_CLASS) and
(classes[i-1].typ<>X86_64_X87_CLASS) then
exit(0);
+
+ (* FPC addition: because we store an extended in 10 bytes, the
+ X86_64_X87UP_CLASS can be replaced with e.g. INTEGER if an
+ extended is followed by e.g. an array [0..5] of byte -> we also
+ have to check whether each X86_64_X87_CLASS is followed by
+ X86_64_X87UP_CLASS -- if not, pass in memory
+
+ This cannot happen in the original ABI, because there
+ sizeof(extended) = 16 and hence nothing can be merged with
+ X86_64_X87UP_CLASS and change it into something else *)
+ if (classes[i].typ=X86_64_X87_CLASS) and
+ ((i=(words-1)) or
+ (classes[i+1].typ<>X86_64_X87UP_CLASS)) then
+ exit(0);
end;
{ FIXME: in case a record contains empty padding space, e.g. a
@@ -1022,6 +1036,18 @@ unit cpupara;
end;
inc(mmretregidx);
end;
+ X86_64_X87_CLASS:
+ begin
+ { must be followed by X86_64_X87UP_CLASS and that must be
+ the last class }
+ if (i<>(numclasses-2)) or
+ (classes[i+1].typ<>X86_64_X87UP_CLASS) then
+ internalerror(2014110401);
+ paraloc^.loc:=LOC_FPUREGISTER;
+ paraloc^.register:=NR_FPU_RESULT_REG;
+ paraloc^.size:=OS_F80;
+ break;
+ end;
X86_64_NO_CLASS:
begin
{ empty record/array }
diff --git a/compiler/x86_64/nx64flw.pas b/compiler/x86_64/nx64flw.pas
index ff2665ddac..2f246563fd 100644
--- a/compiler/x86_64/nx64flw.pas
+++ b/compiler/x86_64/nx64flw.pas
@@ -448,7 +448,7 @@ procedure tx64tryexceptnode.pass_generate_code;
begin
{ emit filter table to a temporary asmlist }
hlist:=TAsmList.Create;
- current_asmdata.getdatalabel(filterlabel);
+ current_asmdata.getaddrlabel(filterlabel);
new_section(hlist,sec_rodata_norel,filterlabel.name,4);
cg.a_label(hlist,filterlabel);
onnodecount:=tai_const.create_32bit(0);
@@ -459,8 +459,7 @@ procedure tx64tryexceptnode.pass_generate_code;
begin
if hnode.nodetype<>onn then
InternalError(2011103101);
- { TODO: make it done without using global label }
- current_asmdata.getglobaljumplabel(onlabel);
+ current_asmdata.getjumplabel(onlabel);
hlist.concat(tai_const.create_rva_sym(current_asmdata.RefAsmSymbol(tonnode(hnode).excepttype.vmt_mangledname,AT_DATA)));
hlist.concat(tai_const.create_rva_sym(onlabel));
cg.a_label(current_asmdata.CurrAsmList,onlabel);
@@ -476,8 +475,7 @@ procedure tx64tryexceptnode.pass_generate_code;
inc(onnodecount.value);
end;
{ now move filter table to permanent list all at once }
- maybe_new_object_file(current_asmdata.asmlists[al_typedconsts]);
- current_asmdata.asmlists[al_typedconsts].concatlist(hlist);
+ current_procinfo.aktlocaldata.concatlist(hlist);
hlist.free;
end;
diff --git a/compiler/x86_64/rax64att.pas b/compiler/x86_64/rax64att.pas
index 5f5ac9ccf9..e7d4cc8245 100644
--- a/compiler/x86_64/rax64att.pas
+++ b/compiler/x86_64/rax64att.pas
@@ -47,7 +47,6 @@ Unit rax64att;
instr : Tx86Instruction;
begin
instr:=Tx86attInstruction.Create(Tx86Operand);
- instr.OpOrder:=op_att;
BuildOpcode(instr);
instr.AddReferenceSizes;
instr.SetInstructionOpsize;
diff --git a/compiler/x86_64/symcpu.pas b/compiler/x86_64/symcpu.pas
index 4e33d0ceb9..195634520c 100644
--- a/compiler/x86_64/symcpu.pas
+++ b/compiler/x86_64/symcpu.pas
@@ -207,5 +207,7 @@ begin
cconstsym:=tcpuconstsym;
cenumsym:=tcpuenumsym;
csyssym:=tcpusyssym;
+
+ cPtrDefHashSet:=tx86PtrDefHashSet;
end.
diff --git a/ide/Makefile b/ide/Makefile
index 21694b00ac..221152abf3 100644
--- a/ide/Makefile
+++ b/ide/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -575,6 +581,12 @@ 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=
@@ -620,6 +632,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1156,6 +1173,14 @@ 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
@@ -1388,6 +1413,14 @@ 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
@@ -1532,6 +1565,14 @@ 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
@@ -1905,7 +1946,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1935,17 +1976,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2139,11 +2186,10 @@ examples:
shared:
sourceinstall:
exampleinstall:
-zipsourceinstall:
zipexampleinstall:
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2168,15 +2214,15 @@ ifdef PPC_TARGET
FPMAKE_OPT+=--CompilerTarget=$(PPC_TARGET)
endif
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2201,19 +2247,25 @@ endif
-$(DEL) fpmake.dbg
endif
cleanall: distclean
-install: fpmake
+install: fpmake$(SRCEXEEXT)
ifdef UNIXHier
$(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) $(FPMAKE_INSTALL_OPT)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) $(FPMAKE_INSTALL_OPT) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) $(FPMAKE_INSTALL_OPT) -ie -fsp 0
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/ide/Makefile.fpc b/ide/Makefile.fpc
index e2a2492455..b330a20430 100644
--- a/ide/Makefile.fpc
+++ b/ide/Makefile.fpc
@@ -53,15 +53,15 @@ FPMAKE_OPT+=--CompilerTarget=$(PPC_TARGET)
endif
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -93,20 +93,27 @@ endif
-$(DEL) fpmake.dbg
endif
cleanall: distclean
-install: fpmake
+install: fpmake$(SRCEXEEXT)
ifdef UNIXHier
$(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) $(FPMAKE_INSTALL_OPT)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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) $(FPMAKE_INSTALL_OPT) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) $(FPMAKE_INSTALL_OPT) -ie -fsp 0
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/ide/Makefile.fpc.fpcmake b/ide/Makefile.fpc.fpcmake
index 3ab4ec31d8..3e331dec4e 100644
--- a/ide/Makefile.fpc.fpcmake
+++ b/ide/Makefile.fpc.fpcmake
@@ -6,7 +6,7 @@
[package]
name=ide
-version=2.7.1
+version=3.1.1
[target]
dirs=compiler
diff --git a/ide/compiler/Makefile b/ide/compiler/Makefile
index fd728ffa91..6ae5b9efbc 100644
--- a/ide/compiler/Makefile
+++ b/ide/compiler/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -418,6 +424,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=compunit
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=compunit
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=compunit
endif
@@ -505,6 +514,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=compunit
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=compunit
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=compunit
endif
@@ -559,6 +571,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=compunit
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=compunit
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=compunit
endif
@@ -641,6 +656,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-Ur -dNOCATCH
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Ur -dNOCATCH
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-Ur -dNOCATCH
endif
@@ -728,6 +746,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-Ur -dNOCATCH
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Ur -dNOCATCH
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-Ur -dNOCATCH
endif
@@ -782,6 +803,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-Ur -dNOCATCH
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Ur -dNOCATCH
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-Ur -dNOCATCH
endif
@@ -863,6 +887,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
endif
@@ -950,6 +977,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
endif
@@ -1004,6 +1034,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_INCLUDEDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET)
endif
@@ -1085,6 +1118,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
endif
@@ -1172,6 +1208,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
endif
@@ -1226,6 +1265,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_UNITDIR+=$(COMPILERDIR) $(COMPILERDIR)/$(PPC_TARGET) $(COMPILERDIR)/targets $(COMPILERDIR)/systems
endif
@@ -1480,6 +1522,12 @@ 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=
@@ -1525,6 +1573,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1946,6 +1999,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -2033,6 +2089,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -2087,6 +2146,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
endif
@@ -2250,7 +2312,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2280,17 +2342,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/ide/fakegdb/Makefile b/ide/fakegdb/Makefile
index f6a93407bd..5340eddc66 100644
--- a/ide/fakegdb/Makefile
+++ b/ide/fakegdb/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=gdbcon gdbint
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=gdbcon gdbint
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=gdbcon gdbint
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=gdbcon gdbint
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=gdbcon gdbint
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=gdbcon gdbint
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=gdbcon gdbint
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=gdbcon gdbint
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=gdbcon gdbint
endif
@@ -786,6 +801,12 @@ 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=
@@ -831,6 +852,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1252,6 +1278,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1339,6 +1368,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1393,6 +1425,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1556,7 +1591,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1586,17 +1621,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/ide/fp.pas b/ide/fp.pas
index 3ebb44b5b5..f1de80bf15 100644
--- a/ide/fp.pas
+++ b/ide/fp.pas
@@ -328,15 +328,23 @@ procedure InitCompilerSwitches;
default_settings.localswitches:=[cs_typed_const_writable];
end;
-
+{$IFDEF HASAMIGA}
+procedure SetAmigaWindowTitle;
+begin
+ { window title first, then screen title, shown when the window is active }
+ Video.SetWindowTitle(
+ 'Free Pascal IDE',
+ 'Free Pascal IDE '+VersionStr+' ['+{$i %date%}+'] - Compiler '+Full_Version_String);
+end;
+{$ENDIF}
{The square bullet needs an MS-DOS code page. On Unix it is for sure the code
page is not available before video is initialized. (And only in certain
circumstances after that, so, use a plain ascii character as bullet on Unix.)}
-{$if defined(unix) or defined(amiga) or defined(morphos)}
+{$if defined(unix) or defined(HASAMIGA)}
const bullet='*';
{$else}
-const bullet='þ';
+const bullet=#254;
{$endif}
BEGIN
@@ -424,6 +432,10 @@ BEGIN
from command line PM }
ParseUserScreen;
+{$IFDEF HASAMIGA}
+ SetAmigaWindowTitle;
+{$ENDIF}
+
{ Update IDE }
IDEApp.Update;
IDEApp.UpdateMode;
diff --git a/ide/fpconst.pas b/ide/fpconst.pas
index 113343edf4..1d1f223507 100644
--- a/ide/fpconst.pas
+++ b/ide/fpconst.pas
@@ -31,24 +31,35 @@ const
CompilerStatusUpdateDelay = 0.1; { in secs }
{$undef USE_SPECIAL_BASENAME}
-{$ifdef m68k}
- {$ifdef cpui386}
- {$define USE_SPECIAL_BASENAME}
- FPBaseName = 'fpm68k';
- {$endif cpui386}
-{$endif m68k}
-{$ifdef powerpc}
- {$ifdef cpui386}
- {$define USE_SPECIAL_BASENAME}
- FPBaseName = 'fpppc';
- {$endif powerpc}
-{$endif m68k}
-{$ifdef i386}
- {$ifdef cpu68k}
- {$define USE_SPECIAL_BASENAME}
- FPBaseName = 'fpi386';
- {$endif cpu68k}
-{$endif i386}
+{$ifdef USE_FPBASENAME}
+ { FPBaseName set through environment variable FPBASENAME }
+ FPBaseName = {$i %FPBASENAME%};
+ {$define USE_SPECIAL_BASENAME}
+{$else}
+ {$ifdef m68k}
+ {$ifdef cpui386}
+ {$define USE_SPECIAL_BASENAME}
+ FPBaseName = 'fpm68k';
+ {$endif cpui386}
+ {$endif m68k}
+ {$ifdef powerpc}
+ {$ifdef cpui386}
+ {$define USE_SPECIAL_BASENAME}
+ FPBaseName = 'fpppc';
+ {$endif powerpc}
+ {$endif m68k}
+ {$ifdef i386}
+ {$ifdef cpu68k}
+ {$define USE_SPECIAL_BASENAME}
+ FPBaseName = 'fpi386';
+ {$endif cpu68k}
+ {$endif i386}
+ {$ifdef SUPPORT_REMOTE}
+ {$define USE_SPECIAL_BASENAME}
+ { this uses PPC_TARGET env. variable from Makefile }
+ FPBaseName = 'fp_'+{$i %PPC_TARGET%};
+ {$endif SUPPORT_REMOTE}
+{$endif not USE_FPBASENAME}
{$ifndef USE_SPECIAL_BASENAME}
FPBaseName = 'fp';
{$endif not USE_SPECIAL_BASENAME}
diff --git a/ide/fpdebug.pas b/ide/fpdebug.pas
index a4caf9b9b5..6222d44999 100644
--- a/ide/fpdebug.pas
+++ b/ide/fpdebug.pas
@@ -54,7 +54,10 @@ type
TBreakNumber : longint;
FPCBreakErrorNumber : longint;
{$ifdef SUPPORT_REMOTE}
- isRemoteDebugging:boolean;
+ isRemoteDebugging,
+ isFirstRemote,
+ isConnectedToRemote,
+ usessh :boolean;
{$endif SUPPORT_REMOTE}
constructor Init;
procedure SetExe(const exefn:string);
@@ -330,6 +333,9 @@ procedure RegisterFPDebugViews;
procedure UpdateDebugViews;
+{$ifdef SUPPORT_REMOTE}
+function TransformRemoteString(st : string) : string;
+{$endif SUPPORT_REMOTE}
implementation
@@ -339,7 +345,7 @@ uses
{$ifdef DOS}
fpusrscr,
{$endif DOS}
-
+ fpredir,
App,Strings,
FVConsts,
MsgBox,
@@ -350,7 +356,7 @@ uses
termio,
{$endif Unix}
Systems,Globals,
- FPRegs,
+ FPRegs,FPTools,
FPVars,FPUtils,FPConst,FPSwitch,
FPIntf,FPCompil,FPIde,FPHelp,
Validate,WUtils,Wconsts;
@@ -615,7 +621,8 @@ procedure UpdateDebugViews;
begin
{$ifdef SUPPORT_REMOTE}
- if isRemoteDebugging then
+ if assigned(Debugger) and
+ Debugger^.isRemoteDebugging then
PushStatus(msg_getting_info_on+RemoteMachine);
{$endif SUPPORT_REMOTE}
DeskTop^.Lock;
@@ -633,7 +640,8 @@ procedure UpdateDebugViews;
VectorWindow^.Update;
DeskTop^.UnLock;
{$ifdef SUPPORT_REMOTE}
- if isRemoteDebugging then
+ if assigned(Debugger) and
+ Debugger^.isRemoteDebugging then
PopStatus;
{$endif SUPPORT_REMOTE}
end;
@@ -652,6 +660,13 @@ begin
switch_to_user:=true;
GetDir(0,OrigPwd);
Command('set print object off');
+{$ifdef SUPPORT_REMOTE}
+ isFirstRemote:=true;
+{$ifdef FPC_ARMEL32}
+ { GDB needs advice on exact file type }
+ Command('set gnutarget elf32-littlearm');
+{$endif FPC_ARMEL32}
+{$endif SUPPORT_REMOTE}
end;
procedure TDebugController.SetExe(const exefn:string);
@@ -815,18 +830,22 @@ const
TargetProtocol = 'palmos';
{$else}
const
- TargetProtocol = 'remote';
+ TargetProtocol = 'extended-remote';
{$endif PALMOSGDB}
{$ifdef SUPPORT_REMOTE}
var
S,ErrorStr : string;
+ ErrorVal : longint;
{$endif SUPPORT_REMOTE}
begin
ResetBreakpointsValues;
{$ifdef SUPPORT_REMOTE}
NoSwitch:=true;
isRemoteDebugging:=false;
+ if TargetProtocol<>'extended-remote' then
+ isConnectedToRemote:=false;
+ usessh:=true;
{$ifndef CROSSGDB}
If (RemoteMachine<>'') and (RemotePort<>'') then
{$else CROSSGDB}
@@ -834,7 +853,38 @@ begin
{$endif CROSSGDB}
begin
isRemoteDebugging:=true;
- S:=RemoteMachine;
+ if UseSsh and not isConnectedToRemote then
+ begin
+ s:=TransformRemoteString(RemoteSshExecCommand);
+ PushStatus(S);
+{$ifdef Unix}
+ error:=0;
+ { return without waiting for the function to end }
+ s:= s+' &';
+ If fpsystem(s)=-1 Then
+ ErrorVal:=fpgeterrno;
+{$else}
+ IDEApp.DoExecute(GetEnv('COMSPEC'),'/C '+s,'','ssh__.out','ssh___.err',exNormal);
+ ErrorVal:=DosError;
+{$endif}
+ PopStatus;
+ // if errorval <> 0 then
+ // AdvMessageBoxRect(var R: TRect; const Msg: String; Params: Pointer; AOptions: longint): Word;
+ AddToolMessage('',#3'Start'#13#3+s+#13#3'returned '+
+ IntToStr(Errorval),0,0);
+
+ end
+ else if not UseSsh then
+ begin
+ s:=TransformRemoteString(RemoteExecCommand);
+ MessageBox(#3'Start in remote'#13#3+s,nil,mfOKbutton);
+ end;
+ if usessh then
+ { we use ssh port redirection }
+ S:='localhost'
+ //S:=TransformRemoteString('$REMOTEMACHINE')
+ else
+ S:=RemoteMachine;
If pos('@',S)>0 then
S:=copy(S,pos('@',S)+1,High(S));
If RemotePort<>'' then
@@ -845,16 +895,19 @@ begin
S:='localhost:2000';
{$endif PALMOSGDB}
PushStatus(msg_connectingto+S);
- Command('target '+TargetProtocol+' '+S);
+ AddToolMessage('',msg_connectingto+S,0,0);
+ UpdateToolMessages;
+ if not isConnectedToRemote then
+ Command('target '+TargetProtocol+' '+S);
if Error then
begin
ErrorStr:=strpas(GetError);
ErrorBox(#3'Error in "target '+TargetProtocol+'"'#13#3+ErrorStr,nil);
PopStatus;
exit;
- end;
- s:=IDEApp.GetRemoteExecString;
- MessageBox(#3'Start in remote'#13#3+s,nil,mfOKbutton);
+ end
+ else
+ isConnectedToRemote:=true;
PopStatus;
end
else
@@ -910,17 +963,24 @@ begin
GDBWindow^.Editor^.Lock;
{$ifdef SUPPORT_REMOTE}
if isRemoteDebugging then
- begin
- inc(init_count);
- { pass the stop in start code }
- Command('continue');
- end else
+ begin
+ inc(init_count);
+ { pass the stop in start code }
+ if isFirstRemote then
+ Command('continue')
+ else
+ Command ('start');
+ isFirstRemote:=false;
+ end
+ else
{$endif SUPPORT_REMOTE}
- { Set cwd for debuggee }
- SetDir(GetRunDir);
- inherited Run;
- { Restore cwd for IDE }
- SetDir(StartupDir);
+ begin
+ { Set cwd for debuggee }
+ SetDir(GetRunDir);
+ inherited Run;
+ { Restore cwd for IDE }
+ SetDir(StartupDir);
+ end;
DebuggerScreen;
If assigned(GDBWindow) then
GDBWindow^.Editor^.UnLock;
@@ -1093,6 +1153,15 @@ procedure TDebugController.Reset;
var
old_reset : boolean;
begin
+{$ifdef SUPPORT_REMOTE}
+ if isConnectedToRemote then
+ begin
+ Command('monitor exit');
+ Command('disconnect');
+ isConnectedToRemote:=false;
+ isFirstRemote:=true;
+ end;
+{$endif SUPPORT_REMOTE}
inherited Reset;
{ we need to free the executable
if we want to recompile it }
@@ -3618,6 +3687,48 @@ end;
inherited done;
end;
+
+
+{$ifdef SUPPORT_REMOTE}
+{****************************************************************************
+ TransformRemoteString
+****************************************************************************}
+function TransformRemoteString(st : string) : string;
+begin
+ If RemoteConfig<>'' then
+ ReplaceStrI(St,'$CONFIG','-F '+RemoteConfig)
+ else
+ ReplaceStrI(St,'$CONFIG','');
+ If RemoteIdent<>'' then
+ ReplaceStrI(St,'$IDENT','-i '+RemoteIdent)
+ else
+ ReplaceStrI(St,'$IDENT','');
+ If RemotePuttySession<>'' then
+ ReplaceStrI(St,'$PUTTYSESSION','-load '+RemotePuttySession)
+ else
+ ReplaceStrI(St,'$PUTTYSESSION','');
+ ReplaceStrI(St,'$LOCALFILENAME',NameAndExtOf(ExeFile));
+ ReplaceStrI(St,'$LOCALFILE',ExeFile);
+ ReplaceStrI(St,'$REMOTEDIR',RemoteDir);
+ ReplaceStrI(St,'$REMOTEPORT',RemotePort);
+ ReplaceStrI(St,'$REMOTEMACHINE',RemoteMachine);
+ ReplaceStrI(St,'$REMOTEGDBSERVER',maybequoted(remotegdbserver));
+ ReplaceStrI(St,'$REMOTECOPY',maybequoted(RemoteCopy));
+ ReplaceStrI(St,'$REMOTESHELL',maybequoted(RemoteShell));
+ { avoid infinite recursion here !!! }
+ if Pos('$REMOTEEXECCOMMAND',UpcaseSTr(St))>0 then
+ ReplaceStrI(St,'$REMOTEEXECCOMMAND',TransformRemoteString(RemoteExecCommand));
+{$ifdef WINDOWS}
+ ReplaceStrI(St,'$START','start "Shell to remote"');
+ ReplaceStrI(St,'$DOITINBACKGROUND','');
+{$else}
+ ReplaceStrI(St,'$START','');
+ ReplaceStrI(St,'$DOITINBACKGROUND',' &');
+{$endif}
+ TransformRemoteString:=st;
+end;
+{$endif SUPPORT_REMOTE}
+
{****************************************************************************
Init/Final
****************************************************************************}
diff --git a/ide/fphelp.pas b/ide/fphelp.pas
index aafc1b8fa9..3315790e29 100644
--- a/ide/fphelp.pas
+++ b/ide/fphelp.pas
@@ -115,8 +115,18 @@ const
hint_editcut = 'Remove the selected text and put it in the clipboard';
hint_editcopy = 'Copy the selected text in the clipboard';
hint_editpaste = 'Insert selected text from the clipboard at the cursor position';
+ {$ifdef HASAMIGA}
+ {$ifdef AROS}
+ hint_editcopywin = 'Copy the selected text in AROS clipboard';
+ hint_editpastewin = 'Insert selected text from AROS clipboard at the cursor position';
+ {$else}
+ hint_editcopywin = 'Copy the selected text to the system clipboard';
+ hint_editpastewin = 'Insert selected text from the system clipboard at the cursor position';
+ {$endif}
+ {$else}
hint_editcopywin = 'Copy the selected text in windows clipboard';
hint_editpastewin = 'Insert selected text from windows clipboard at the cursor position';
+ {$endif}
hint_editclear = 'Delete the selected text';
hint_editselectall = 'Select the whole text';
hint_editunselect = 'Unselect everything';
diff --git a/ide/fpide.pas b/ide/fpide.pas
index dacea17928..2d89e5ec3c 100644
--- a/ide/fpide.pas
+++ b/ide/fpide.pas
@@ -235,8 +235,18 @@ resourcestring menu_local_gotosource = '~G~oto source';
menu_file_exit = 'E~x~it';
menu_edit = '~E~dit';
+ {$ifdef HASAMIGA}
+ {$ifdef AROS}
+ menu_edit_copywin = 'Cop~y~ to AROS';
+ menu_edit_pastewin = 'Paste from A~R~OS';
+ {$else}
+ menu_edit_copywin = 'Cop~y~ to System';
+ menu_edit_pastewin = 'Paste from Syste~m~';
+ {$endif}
+ {$else}
menu_edit_copywin = 'Cop~y~ to Windows';
menu_edit_pastewin = 'Paste from ~W~indows';
+ {$endif}
menu_edit_undo = '~U~ndo';
menu_edit_redo = '~R~edo';
menu_edit_cut = 'Cu~t~';
@@ -380,6 +390,8 @@ resourcestring menu_local_gotosource = '~G~oto source';
menu_key_edit_copy_microsoft = menu_key_common_copy_microsoft;
menu_key_edit_paste_microsoft = 'Ctrl+V';
menu_key_edit_clear = 'Ctrl+Del';
+ menu_key_edit_all_microsoft = 'Ctrl+A';
+ menu_key_edit_all_borland = '';
menu_key_run_run = 'Ctrl+F9';
menu_key_run_stepover = 'F8';
@@ -572,9 +584,12 @@ resourcestring menu_local_gotosource = '~G~oto source';
label_remote_dir = 'Remote ~d~irectory';
label_remote_config = 'Remote config ~o~ptions';
label_remote_ident = 'Remote ~i~dent';
- label_remote_command = 'Remote ~c~ommand';
- label_remote_scp = 'Scp executable';
- label_remote_ssh = 'Ssh executable';
+ label_remote_send_command = 'Remote ~S~end command';
+ label_remote_exec_command = 'Remote ~E~xec command';
+ label_remote_ssh_exec_command = 'Remote Ss~h~ exec command';
+ label_remote_copy = 'Remote copy executable';
+ label_remote_shell = 'Remote shell executable';
+ label_remote_gdbserver = 'Remote gdbserver executable';
{Directories dialog.}
dialog_directories = 'Directories';
@@ -878,7 +893,7 @@ begin
NewItem(menu_edit_copy,menu_key_edit_copy, copy_key, cmCopy, hcCopy,
NewItem(menu_edit_paste,menu_key_edit_paste, paste_key, cmPaste, hcPaste,
NewItem(menu_edit_clear,menu_key_edit_clear, kbCtrlDel, cmClear, hcClear,
- NewItem(menu_edit_selectall,'', kbNoKey, cmSelectAll, hcSelectAll,
+ NewItem(menu_edit_selectall,menu_key_edit_all, all_Key, cmSelectAll, hcSelectAll,
NewItem(menu_edit_unselect,'', kbNoKey, cmUnselect, hcUnselect,
NewLine(
NewItem(menu_edit_showclipboard,'', kbNoKey, cmShowClipboard, hcShowClipboard,
@@ -1041,20 +1056,24 @@ begin
menu_key_edit_cut:=menu_key_edit_cut_microsoft;
menu_key_edit_copy:=menu_key_edit_copy_microsoft;
menu_key_edit_paste:=menu_key_edit_paste_microsoft;
+ menu_key_edit_all:=menu_key_edit_all_microsoft;
menu_key_hlplocal_copy:=menu_key_hlplocal_copy_microsoft;
cut_key:=kbCtrlX;
copy_key:=kbCtrlC;
paste_key:=kbCtrlV;
+ all_key:=kbCtrlA;
end;
ekm_borland:
begin
menu_key_edit_cut:=menu_key_edit_cut_borland;
menu_key_edit_copy:=menu_key_edit_copy_borland;
menu_key_edit_paste:=menu_key_edit_paste_borland;
+ menu_key_edit_all:=menu_key_edit_all_borland;
menu_key_hlplocal_copy:=menu_key_hlplocal_copy_borland;
cut_key:=kbShiftDel;
copy_key:=kbCtrlIns;
paste_key:=kbShiftIns;
+ all_key:=kbNoKey;
end;
end;
loadmenubar;
@@ -1468,7 +1487,6 @@ begin
if Assigned(UserScreen) then
UserScreen^.SwitchBackToIDEScreen;
- Video.SetCursorType(crHidden);
{$ifdef Windows}
{ This message was sent when the VideoBuffer was smaller
than was the IdeApp thought => writes to random memory and random crashes... PM }
@@ -1543,7 +1561,9 @@ begin
Writeln('Running "'+ProgramPath+' '+Params+'"');
{ DO NOT use COMSPEC for exe files as the
ExitCode is lost in those cases PM }
-
+{$ifdef HASAMIGA}
+ DosExecute(ProgramPath, Params);
+{$else}
{$ifndef Unix}
posexe:=Pos('.EXE',UpCaseStr(ProgramPath));
{ if programpath was three char long => bug }
@@ -1570,6 +1590,7 @@ begin
InFile,OutFile,ErrFile);
end;
{$endif Unix}
+{$endif HASAMIGA}
{$ifdef Unix}
if (DebuggeeTTY='') and (OutFile='') and (ExecType<>exDosShell) then
@@ -1718,6 +1739,9 @@ procedure TIDEApp.DosShell;
var
s : string;
begin
+{$ifdef HASAMIGA}
+ s := 'C:NewShell';
+{$else}
{$ifdef Unix}
s:=GetEnv('SHELL');
if s='' then
@@ -1735,6 +1759,7 @@ begin
s:='';
end;
{$endif}
+{$endif}
if s='' then
ErrorBox(msg_errorexecutingshell,nil)
else
diff --git a/ide/fpini.pas b/ide/fpini.pas
index a5b32de075..a4ede2221b 100644
--- a/ide/fpini.pas
+++ b/ide/fpini.pas
@@ -32,6 +32,7 @@ procedure SetPrinterDevice(const Device: string);
implementation
uses
+ sysutils, { used for SameFileName function }
Dos,Objects,Drivers,
FVConsts,
Version,
@@ -102,10 +103,17 @@ const
ieDebuggeeRedir = 'DebugRedirection';
ieRemoteMachine = 'RemoteMachine';
ieRemotePort = 'RemotePort';
+ ieRemotePuttySession = 'RemotePuttySession';
ieRemoteSendCommand = 'RemoteSendCommand';
+ ieRemoteExecCommand = 'RemoteExecCommand';
+ ieRemoteSshExecCommand = 'RemoteSshExecCommand';
ieRemoteConfig = 'RemoteSendConfig';
ieRemoteIdent = 'RemoteSendIdent';
ieRemoteDirectory = 'RemoteDirectory';
+ ieRemoteCopy = 'RemoteCopy';
+ ieRemoteShell = 'RemoteShell';
+ ieRemoteGdbServer = 'gdbserver';
+
iePrimaryFile = 'PrimaryFile';
ieCompileMode = 'CompileMode';
iePalette = 'Palette';
@@ -226,10 +234,17 @@ begin
ErrorBox(FormatStrStr(msg_errorwritingfile,CurDir+IniName),nil)
else
IniFileName:=CurDir+IniName;
- if CopyFile(SwitchesPath,CurDir+SwitchesName)=false then
- ErrorBox(FormatStrStr(msg_errorwritingfile,CurDir+SwitchesName),nil)
- else
- SwitchesPath:=CurDir+SwitchesName;
+ { copy also SwitchesPath to current dir, but only if
+ 1) SwitchesPath exists
+ 2) SwitchesPath is different from CurDir+SwitchesName }
+ if ExistsFile(SwitchesPath) and
+ not SameFileName(SwitchesPath,CurDir+SwitchesName) then
+ begin
+ if CopyFile(SwitchesPath,CurDir+SwitchesName)=false then
+ ErrorBox(FormatStrStr(msg_errorwritingfile,CurDir+SwitchesName),nil)
+ else
+ SwitchesPath:=CurDir+SwitchesName;
+ end;
end;
end
else
@@ -420,10 +435,16 @@ begin
{$ifdef SUPPORT_REMOTE}
RemoteMachine :=INIFile^.GetEntry(secRun,ieRemoteMachine,RemoteMachine);
RemotePort :=INIFile^.GetEntry(secRun,ieRemotePort,RemotePort);
+ RemotePuttySession :=INIFile^.GetEntry(secRun,ieRemotePuttySession,RemotePuttySession);
RemoteSendCommand :=INIFile^.GetEntry(secRun,ieRemoteSendCommand,RemoteSendCommand);
+ RemoteExecCommand :=INIFile^.GetEntry(secRun,ieRemoteExecCommand,RemoteExecCommand);
+ RemoteSshExecCommand :=INIFile^.GetEntry(secRun,ieRemoteSshExecCommand,RemoteSshExecCommand);
RemoteConfig :=INIFile^.GetEntry(secRun,ieRemoteConfig,RemoteConfig);
RemoteIdent :=INIFile^.GetEntry(secRun,ieRemoteIdent,RemoteIdent);
RemoteDir :=INIFile^.GetEntry(secRun,ieRemoteDirectory,RemoteDir);
+ RemoteGDBServer :=INIFile^.GetEntry(secRun,ieRemoteGDBServer,RemoteGDBServer);
+ RemoteCopy :=INIFile^.GetEntry(secRun,ieRemoteCopy,RemoteCopy);
+ RemoteShell :=INIFile^.GetEntry(secRun,ieRemoteShell,RemoteShell);
{$endif SUPPORT_REMOTE}
{ Compile }
S:=INIFile^.GetEntry(secCompile,ieCompileMode,'');
@@ -637,10 +658,19 @@ begin
{$ifdef SUPPORT_REMOTE}
INIFile^.SetEntry(secRun,ieRemoteMachine,RemoteMachine);
INIFile^.SetEntry(secRun,ieRemotePort,RemotePort);
+ INIFile^.SetEntry(secRun,ieRemotePuttySession,RemotePuttySession);
INIFile^.SetEntry(secRun,ieRemoteSendCommand,RemoteSendCommand);
INIFile^.SetEntry(secRun,ieRemoteConfig,RemoteConfig);
INIFile^.SetEntry(secRun,ieRemoteIdent,RemoteIdent);
INIFile^.SetEntry(secRun,ieRemoteDirectory,RemoteDir);
+ INIFile^.SetEntry(secRun,ieRemoteExecCommand,RemoteExecCommand);
+ INIFile^.SetEntry(secRun,ieRemoteSshExecCommand,RemoteSshExecCommand);
+ INIFile^.SetEntry(secRun,ieRemoteConfig,RemoteConfig);
+ INIFile^.SetEntry(secRun,ieRemoteIdent,RemoteIdent);
+ INIFile^.SetEntry(secRun,ieRemoteDirectory,RemoteDir);
+ INIFile^.SetEntry(secRun,ieRemoteGDBServer,RemoteGDBServer);
+ INIFile^.SetEntry(secRun,ieRemoteCopy,RemoteCopy);
+ INIFile^.SetEntry(secRun,ieRemoteShell,RemoteShell);
{$endif SUPPORT_REMOTE}
{ Compile }
INIFile^.SetEntry(secCompile,iePrimaryFile,PrimaryFile);
diff --git a/ide/fpmake.pp b/ide/fpmake.pp
index 34594b201d..162a85fa95 100644
--- a/ide/fpmake.pp
+++ b/ide/fpmake.pp
@@ -153,19 +153,18 @@ begin
CompilerTarget:=Defaults.CPU;
P:=AddPackage('ide');
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Dependencies.Add('rtl');
P.Dependencies.Add('rtl-extra');
P.Dependencies.Add('fv');
P.Dependencies.Add('chm');
{ This one is only needed if DEBUG is set }
P.Dependencies.Add('regexpr');
if not (NoGDBOption) then
- P.Dependencies.Add('gdbint',AllOSes-[morphos]);
+ P.Dependencies.Add('gdbint',AllOSes-AllAmigaLikeOSes);
P.Dependencies.Add('graph',[go32v2]);
P.SupportBuildModes:=[bmOneByOne];
@@ -201,17 +200,17 @@ begin
T.Directory:='compiler';
T.Install:=false;
- P.InstallFiles.Add('fp.ans','$(BININSTALLDIR)');
- P.InstallFiles.Add('gplprog.pt','$(BININSTALLDIR)');
- P.InstallFiles.Add('gplunit.pt','$(BININSTALLDIR)');
- P.InstallFiles.Add('program.pt','$(BININSTALLDIR)');
- P.InstallFiles.Add('unit.pt','$(BININSTALLDIR)');
- P.InstallFiles.Add('cvsco.tdf','$(BININSTALLDIR)');
- P.InstallFiles.Add('cvsdiff.tdf','$(BININSTALLDIR)');
- P.InstallFiles.Add('cvsup.tdf','$(BININSTALLDIR)');
- P.InstallFiles.Add('grep.tdf','$(BININSTALLDIR)');
- P.InstallFiles.Add('tpgrep.tdf','$(BININSTALLDIR)');
- P.InstallFiles.Add('fp32.ico', [win32, win64], '$(BININSTALLDIR)');
+ P.InstallFiles.Add('fp.ans','$(bininstalldir)');
+ P.InstallFiles.Add('gplprog.pt','$(bininstalldir)');
+ P.InstallFiles.Add('gplunit.pt','$(bininstalldir)');
+ P.InstallFiles.Add('program.pt','$(bininstalldir)');
+ P.InstallFiles.Add('unit.pt','$(bininstalldir)');
+ P.InstallFiles.Add('cvsco.tdf','$(bininstalldir)');
+ P.InstallFiles.Add('cvsdiff.tdf','$(bininstalldir)');
+ P.InstallFiles.Add('cvsup.tdf','$(bininstalldir)');
+ P.InstallFiles.Add('grep.tdf','$(bininstalldir)');
+ P.InstallFiles.Add('tpgrep.tdf','$(bininstalldir)');
+ P.InstallFiles.Add('fp32.ico', [win32, win64], '$(bininstalldir)');
P.Sources.AddDoc('readme.ide');
diff --git a/ide/fpmdebug.inc b/ide/fpmdebug.inc
index 8cad30cb25..4251f8164f 100644
--- a/ide/fpmdebug.inc
+++ b/ide/fpmdebug.inc
@@ -14,46 +14,26 @@
**********************************************************************}
{$ifdef SUPPORT_REMOTE}
-function GetRemoteString : string;
-var
- St : string;
-begin
- St:=RemoteSendCommand;
- If RemoteConfig<>'' then
- ReplaceStrI(St,'$CONFIG','-F '+RemoteConfig)
- else
- ReplaceStrI(St,'$CONFIG','');
- If RemoteIdent<>'' then
- ReplaceStrI(St,'$IDENT','-i '+RemoteIdent)
- else
- ReplaceStrI(St,'$IDENT','');
- ReplaceStrI(St,'$LOCALFILE',GDBFileName(ExeFile));
- ReplaceStrI(St,'$REMOTEDIR',RemoteDir);
- ReplaceStrI(St,'$REMOTEMACHINE',RemoteMachine);
- GetRemoteString:=st;
-end;
-
procedure TIDEApp.TransferRemote;
var
- S,SendCommand : string;
+ DoSendCommand : string;
Executed : boolean;
begin
- SendCommand:=GetRemoteString;
- if SendCommand<>'' then
+ DoSendCommand:=TransformRemoteString(RemoteSendCommand);
+ if DoSendCommand<>'' then
begin
- s:='scp'+exeext;
- if LocateExeFile(s) then
- Executed:=DoExecute(s,SendCommand,'','','',exNormal)
- else
- Executed:=DoExecute('scp',SendCommand,'','','',exNormal);
+ Executed:=DoExecute(DoSendCommand,'','','send___.out','send___.err',exNormal);
if Executed then
begin
if (DosError<>0) or (DosExitCode<>0) then
- ErrorBox(#3'Execution of'#13#3+s+' '+SendCommand+#13#3+
+ ErrorBox(#3'Execution of'#13#3+DoSendCommand+#13#3+
'returned ('+inttostr(DosError)+','+inttostr(DosExitCode)+')',nil);
+ ProcessMessageFile('send___.out');
+ ProcessMessageFile('send___.err');
+ UpdateToolMessages;
end
else
- ErrorBox(#3'Unable to execute'#13#3+s+' '+SendCommand,nil);
+ ErrorBox(#3'Unable to execute'#13#3+DoSendCommand,nil);
end
else
@@ -63,6 +43,9 @@ end;
procedure TIDEApp.DoUserScreenWindow;
begin
+ {$ifdef HASAMIGA}
+ Exit; // Do not open the Userscreen on AMIGA systems, its not closeable
+ {$endif}
if UserScreenWindow=nil then
begin
New(UserScreenWindow, Init(UserScreen, SearchFreeWindowNo));
diff --git a/ide/fpmingw.pas b/ide/fpmingw.pas
index c4d98c09f5..8c25b517f0 100644
--- a/ide/fpmingw.pas
+++ b/ide/fpmingw.pas
@@ -14,6 +14,8 @@ unit fpmingw;
**********************************************************************}
+{$I globdir.inc}
+
interface
// mingw put atexit in binaries, so that it can have one atexit, and call it from
@@ -72,9 +74,11 @@ procedure doinit;
begin
// not (yet) done: set mingw exception handlers:
// SetUnhandledExceptionFilter (_gnu_exception_handler);
+{$ifndef DISABLE_CPU_FEATURES_INIT}
{$ifdef win32}
__cpu_features_init; // load CPU features. Might be useful for debugger :-)
{$endif win32}
+{$endif ndef DISABLE_CPU_FEATURES_INIT}
// fpreset; // don't do this, we init our own fp mask
diff --git a/ide/fpmopts.inc b/ide/fpmopts.inc
index 38e3418524..0f7edefd00 100644
--- a/ide/fpmopts.inc
+++ b/ide/fpmopts.inc
@@ -584,10 +584,11 @@ end;
procedure TIDEApp.DoRemote;
var R,R2: TRect;
- IL1,IL2,IL3,IL4,IL5,IL6: PEditorInputLine;
+ IL1,IL2,IL3,IL4,IL5,IL6,IL7,IL8: PEditorInputLine;
+ IL9,IL10,IL11 : PEditorInputLine;
D: PCenterDialog;
const
- FieldLines = 6;
+ FieldLines = 11;
begin
{
RemoteMachine : string = '';
@@ -641,13 +642,48 @@ begin
Insert(IL5);
R2.Move(0,-1);
Insert(New(PLabel, Init(R2,label_remote_ident, IL5)));
- { remote machine command }
+ { remote machine send command }
R2.Move(0,3);
New(IL6, Init(R2, 255));
IL6^.Data^:=RemoteSendCommand;
Insert(IL6);
R2.Move(0,-1);
- Insert(New(PLabel, Init(R2,label_remote_command, IL6)));
+ Insert(New(PLabel, Init(R2,label_remote_send_command, IL6)));
+ { remote machine exec command }
+ R2.Move(0,3);
+ New(IL7, Init(R2, 255));
+ IL7^.Data^:=RemoteExecCommand;
+ Insert(IL7);
+ R2.Move(0,-1);
+ Insert(New(PLabel, Init(R2,label_remote_exec_command, IL7)));
+ { remote machine exec command using ssh }
+ R2.Move(0,3);
+ New(IL8, Init(R2, 255));
+ IL8^.Data^:=RemoteSshExecCommand;
+ Insert(IL8);
+ R2.Move(0,-1);
+ Insert(New(PLabel, Init(R2,label_remote_ssh_exec_command, IL8)));
+ { Remote shell executable }
+ R2.Move(0,3);
+ New(IL9, Init(R2, 255));
+ IL9^.Data^:=RemoteShell;
+ Insert(IL9);
+ R2.Move(0,-1);
+ Insert(New(PLabel, Init(R2,label_remote_shell, IL9)));
+ { Remote copy executable }
+ R2.Move(0,3);
+ New(IL10, Init(R2, 255));
+ IL10^.Data^:=RemoteCopy;
+ Insert(IL10);
+ R2.Move(0,-1);
+ Insert(New(PLabel, Init(R2,label_remote_copy, IL10)));
+ R2.Move(0,3);
+ { Remote gdbserver }
+ New(IL11, Init(R2, 255));
+ IL11^.Data^:=RemoteGdbServer;
+ Insert(IL11);
+ R2.Move(0,-1);
+ Insert(New(PLabel, Init(R2,label_remote_gdbserver, IL11)));
end;
InsertButtons(D);
if Desktop^.ExecView(D)=cmOK then
@@ -658,6 +694,11 @@ begin
RemoteConfig:=IL4^.Data^;
RemoteIdent:=IL5^.Data^;
RemoteSendCommand:=IL6^.Data^;
+ RemoteExecCommand:=IL7^.Data^;
+ RemoteSshExecCommand:=IL8^.Data^;
+ RemoteShell:=IL9^.Data^;
+ RemoteCopy:=IL10^.Data^;
+ RemoteGdbServer:=IL11^.Data^;
end;
Dispose(D, Done);
end;
diff --git a/ide/fpredir.pas b/ide/fpredir.pas
index 66f8a569ba..aa50c8c826 100644
--- a/ide/fpredir.pas
+++ b/ide/fpredir.pas
@@ -56,6 +56,7 @@ Var
procedure InitRedir;
function ExecuteRedir (Const ProgName, ComLine, RedirStdIn, RedirStdOut, RedirStdErr : String) : boolean;
procedure DosExecute(ProgName, ComLine : String);
+function MaybeQuoted(const s:string):string;
function ChangeRedirOut(Const Redir : String; AppendToFile : Boolean) : Boolean;
procedure RestoreRedirOut;
@@ -788,8 +789,12 @@ end;
{............................................................................}
-
procedure DosExecute(ProgName, ComLine : String);
+{$ifdef HASAMIGA}
+ begin
+ Dos.Exec(ProgName, ComLine);
+ end;
+{$else}
{$ifdef Windows}
var
StoreInherit : BOOL;
@@ -845,6 +850,7 @@ end;
end;
{$endif CPU86}
End;
+{$endif HASAMIGA}
{*****************************************************************************
Initialize
diff --git a/ide/fptemplt.pas b/ide/fptemplt.pas
index c40678e938..d22933be12 100644
--- a/ide/fptemplt.pas
+++ b/ide/fptemplt.pas
@@ -255,7 +255,11 @@ procedure InitTemplates;
PT : PTemplate;
i : sw_integer;
begin
+ {$ifdef HASAMIGA}
+ if (copy(Dir,length(Dir),1)<>DirSep) and (copy(Dir,length(Dir),1)<>DriveSeparator) then Dir:=Dir+DirSep;
+ {$else}
if copy(Dir,length(Dir),1)<>DirSep then Dir:=Dir+DirSep;
+ {$endif}
FindFirst(Dir+'*'+TemplateExt,AnyFile,SR);
while (DosError=0) do
begin
diff --git a/ide/fpusrscr.pas b/ide/fpusrscr.pas
index 92e03b9f36..1dd6c1aa76 100644
--- a/ide/fpusrscr.pas
+++ b/ide/fpusrscr.pas
@@ -86,6 +86,11 @@ type
{$DEFINE AMIGASCREEN}
{$ENDIF}
+{$IFDEF AROS}
+ {$DEFINE AMIGASCREEN}
+{$ENDIF}
+
+
{$IFDEF AMIGASCREEN}
PAmigaScreen = ^TAmigaScreen;
TAmigaScreen = object(TScreen)
@@ -179,7 +184,8 @@ type
GraphModeName : string;
GraphXres,GraphYres : longint;
GraphBuffer : pointer;
- ConsoleGraphDriver, ConsoleGraphMode : word;
+ GraphCGABkColor: Integer;
+ ConsoleGraphDriver, ConsoleGraphMode : smallint;
{$endif USE_GRAPH_SWITCH}
function GetLineStartOfs(Line: integer): word;
procedure GetBuffer(Size: word);
@@ -478,7 +484,9 @@ begin
GetMem(VIDEBuffer,IDEVideoInfo.ScreenSize);
VIDEBufferSize:=IDEVideoInfo.ScreenSize;
end;
+ HideMouse;
DosmemGet(VSeg,SOfs,VIDEBuffer^,IDEVideoInfo.ScreenSize);
+ ShowMouse;
end;
procedure TDosScreen.SaveConsoleScreen;
@@ -502,54 +510,75 @@ begin
(ConsoleVideoInfo.Mode=$13) or
(ConsoleVideoInfo.Mode=$12) or
(ConsoleVideoInfo.Mode=$10) or
- (ConsoleVideoInfo.Mode=$E) then
+ (ConsoleVideoInfo.Mode=$E) or
+ (ConsoleVideoInfo.Mode=$6) or
+ (ConsoleVideoInfo.Mode=$4) then
begin
- if VesaSetMode(ConsoleVideoInfo.Mode or $8000) then
+ Graph.DontClearGraphMemory:=true;
+ if ConsoleVideoInfo.Mode>=$100 then
begin
- Graph.DontClearGraphMemory:=true;
- if ConsoleVideoInfo.Mode>=$100 then
- begin
- GraphDriver:=Graph.Vesa;
- GraphMode:=ConsoleVideoInfo.Mode and $fff;
- end
- else
- begin
- GraphDriver:=Graph.VGA;
- case ConsoleVideoInfo.Mode of
- $E : GraphMode:=VGALo;
- $10 : GraphMode:=VGAMed;
- $12 : GraphMode:=VGAHi;
- $13 : begin
- GraphDriver:=Graph.LowRes;
- GraphMode:=0;
- end;
- end;
- end;
- Graph.InitGraph(GraphDriver,GraphMode,'');
- if graphresult=grOk then
- begin
- ConsoleGraphDriver:=GraphDriver;
- GraphDriverName:=GetDriverName;
- GraphModeName:=GetModeName(GraphMode);
- ConsoleGraphMode:=GraphMode;
- Graph.DontClearGraphMemory:=false;
- GraphXres:=Graph.GetmaxX;
- GraphYres:=Graph.GetmaxY;
- GraphImageSize:=ImageSize(0,0,GraphXres,GraphYres);
- GetMem(GraphBuffer,GraphImageSize);
- FillChar(GraphBuffer^,GraphImageSize,#0);
- GetImage(0,0,GraphXres,GraphYres,GraphBuffer^);
- ConsoleVideoInfo.Rows:=GraphYres div 8;
- ConsoleVideoInfo.Cols:=GraphXres div 8;
- {FreeBuffer;}
- saved:=true;
- end
+ GraphDriver:=Graph.Vesa;
+ GraphMode:=ConsoleVideoInfo.Mode and $fff;
+ end
+ else
+ begin
+ case ConsoleVideoInfo.Mode of
+ $4 : begin
+ GraphDriver:=Graph.CGA;
+ case (Mem[$40:$66] shr 4) and 3 of
+ 0: GraphMode:=CGAC2;
+ 1: GraphMode:=CGAC0;
+ 2: GraphMode:=CGAC3;
+ 3: GraphMode:=CGAC1;
+ end;
+ GraphCGABkColor:=Mem[$40:$66] and $0F;
+ end;
+ $6 : begin
+ GraphDriver:=Graph.CGA;
+ GraphMode:=CGAHi;
+ end;
+ $E : begin
+ GraphDriver:=Graph.VGA;
+ GraphMode:=VGALo;
+ end;
+ $10 : begin
+ GraphDriver:=Graph.VGA;
+ GraphMode:=VGAMed;
+ end;
+ $12 : begin
+ GraphDriver:=Graph.VGA;
+ GraphMode:=VGAHi;
+ end;
+ $13 : begin
+ GraphDriver:=Graph.LowRes;
+ GraphMode:=0;
+ end;
+ end;
+ end;
+ Graph.InitGraph(GraphDriver,GraphMode,'');
+ if graphresult=grOk then
+ begin
+ ConsoleGraphDriver:=GraphDriver;
+ GraphDriverName:=GetDriverName;
+ GraphModeName:=GetModeName(GraphMode);
+ ConsoleGraphMode:=GraphMode;
+ Graph.DontClearGraphMemory:=false;
+ GraphXres:=Graph.GetmaxX;
+ GraphYres:=Graph.GetmaxY;
+ GraphImageSize:=ImageSize(0,0,GraphXres,GraphYres);
+ GetMem(GraphBuffer,GraphImageSize);
+ FillChar(GraphBuffer^,GraphImageSize,#0);
+ GetImage(0,0,GraphXres,GraphYres,GraphBuffer^);
+ ConsoleVideoInfo.Rows:=GraphYres div 8;
+ ConsoleVideoInfo.Cols:=GraphXres div 8;
+ {FreeBuffer;}
+ saved:=true;
+ end
{$ifdef DEBUG}
- else
- Writeln(stderr,'Error in InitGraph ',Graphdriver, ' ',Graphmode)
+ else
+ Writeln(stderr,'Error in InitGraph ',Graphdriver, ' ',Graphmode)
{$endif DEBUG}
- ;
- end;
+ ;
end;
{ mode < $100 so use standard Save code }
if not saved then
@@ -571,51 +600,31 @@ var
VSeg,SOfs: word;
{$ifdef USE_GRAPH_SWITCH}
restored : boolean;
- GraphDriver,GraphMode : integer;
{$endif USE_GRAPH_SWITCH}
begin
- SetVideoMode(ConsoleVideoInfo);
{$ifdef USE_GRAPH_SWITCH}
restored:=false;
if assigned(GraphBuffer) then
begin
- if VesaSetMode(ConsoleVideoInfo.Mode) then
+ Graph.InitGraph(ConsoleGraphDriver,ConsoleGraphMode,'');
+ if graphresult=grOk then
begin
- if ConsoleVideoInfo.Mode>=$100 then
- begin
- GraphDriver:=Graph.Vesa;
- GraphMode:=ConsoleVideoInfo.Mode and $fff;
- end
- else
- begin
- GraphDriver:=Graph.VGA;
- case ConsoleVideoInfo.Mode of
- $E : GraphMode:=VGALo;
- $10 : GraphMode:=VGAMed;
- $12 : GraphMode:=VGAHi;
- $13 : begin
- GraphDriver:=Graph.LowRes;
- GraphMode:=0;
- end;
- end;
- end;
- if (ConsoleGraphDriver<>GraphDriver) or
- (ConsoleGraphMode<>GraphMode) then
- Graph.InitGraph(GraphDriver,GraphMode,'');
- if graphresult=grOk then
- begin
- PutImage(0,0,GraphBuffer^,CopyPut);
- FreeMem(GraphBuffer,GraphImageSize);
- GraphBuffer:=nil;
- GraphImageSize:=0;
- restored:=true;
- end;
+ if (ConsoleGraphDriver=CGA) and
+ (ConsoleGraphMode>=CGAC0) and
+ (ConsoleGraphMode<=CGAC3) then
+ SetBkColor(GraphCGABkColor);
+ PutImage(0,0,GraphBuffer^,CopyPut);
+ FreeMem(GraphBuffer,GraphImageSize);
+ GraphBuffer:=nil;
+ GraphImageSize:=0;
+ restored:=true;
end;
end;
{ mode < $100 so use standard Save code }
if not restored then
{$endif USE_GRAPH_SWITCH}
begin
+ SetVideoMode(ConsoleVideoInfo);
if ConsoleVideoInfo.Mode=7 then
VSeg:=SegB000
else
@@ -1572,7 +1581,7 @@ begin
UserScreen:=New(PNWLScreen, Init);
{$else}
{$ifdef AMIGASCREEN}
- UserScreen:=nil; //New(PAmigaScreen, Init);
+ UserScreen:=New(PAmigaScreen, Init);
{$else}
UserScreen:=New(PScreen, Init);
{$endif AMIGASCREEN}
diff --git a/ide/fputils.pas b/ide/fputils.pas
index 25f89a2966..4026211284 100644
--- a/ide/fputils.pas
+++ b/ide/fputils.pas
@@ -29,12 +29,20 @@ const
pasext = '.pas';
ppext = '.pp';
{$else}
+ {$ifdef HASAMIGA}
+ listsep = [';'];
+ exeext = '';
+ pasext = '.pas';
+ ppext = '.pp';
+ {$else HASAMIGA}
listsep = [';'];
exeext = '.exe';
pasext = '.pas';
ppext = '.pp';
+ {$endif HASAMIGA}
{$endif}
+
function SmartPath(Path: string): string;
Function FixPath(s:string;allowdot:boolean):string;
function FixFileName(const s:string):string;
@@ -97,7 +105,11 @@ function SmartPath(Path: string): string;
var S: string;
begin
GetDir(0,S);
+{$ifdef HASAMIGA}
+ if (copy(S,length(S),1)<>DirSep) and (copy(S,length(S),1)<>DriveSeparator) then S:=S+DirSep;
+{$else}
if copy(S,length(S),1)<>DirSep then S:=S+DirSep;
+{$endif}
{$ifdef FSCaseInsensitive}
if (LowerCaseStr(copy(Path,1,length(S)))=LowerCaseStr(S)) {and (Pos('\',copy(Path,length(S)+1,High(S)))=0)} then
{$else}
diff --git a/ide/fpvars.pas b/ide/fpvars.pas
index a5a1d0850e..02ec192baa 100644
--- a/ide/fpvars.pas
+++ b/ide/fpvars.pas
@@ -90,7 +90,7 @@ const ClipboardWindow : PClipboardWindow = nil;
ShowStatusOnError: boolean = true;
StartupDir : string = '.'+DirSep;
IDEDir : string = '.'+DirSep;
-{$if defined(WINDOWS) or defined(Unix)}
+{$if defined(WINDOWS) or defined(Unix) or defined(Aros)}
SystemIDEDir : string = '';
{$endif defined(WINDOWS) or defined(Unix)}
INIFileName : string = ININame;
@@ -121,11 +121,28 @@ const ClipboardWindow : PClipboardWindow = nil;
{$ifdef SUPPORT_REMOTE}
RemoteMachine : string = '';
+ RemotePuttySession : string = '';
RemotePort : string = '2345';
RemoteConfig : string = '';
RemoteIdent : string = '';
RemoteDir : string = '';
- RemoteSendCommand : string = 'scp $CONFIG $IDENT $LOCALFILE $REMOTEMACHINE:$REMOTEDIR';
+ RemoteGDBServer : string = 'gdbserver';
+{$ifdef Windows}
+ RemoteCopy : string = 'pscp.exe';
+ RemoteShell : string = 'plink.exe';
+{$else not windows}
+ RemoteCopy : string = 'scp';
+ RemoteShell : string = 'ssh';
+{$endif not windows}
+
+ RemoteSendCommand : string =
+ '$REMOTECOPY $CONFIG $IDENT $LOCALFILE $REMOTEMACHINE:$REMOTEDIR';
+ RemoteExecCommand : string =
+ '"cd $REMOTEDIR; chmod u+x ./$LOCALFILENAME;'+
+ ' $REMOTEGDBSERVER :$REMOTEPORT ./$LOCALFILENAME"';
+ RemoteSshExecCommand : string =
+ '$START $REMOTESHELL $CONFIG $IDENT -L $REMOTEPORT:localhost:$REMOTEPORT $REMOTEMACHINE '+
+ '"$REMOTEEXECCOMMAND" $DOITINBACKGROUND';
{$endif SUPPORT_REMOTE}
DebuggeeTTY : string = '';
diff --git a/ide/fpviews.pas b/ide/fpviews.pas
index 3319a882c4..e1d8ce457d 100644
--- a/ide/fpviews.pas
+++ b/ide/fpviews.pas
@@ -510,6 +510,7 @@ const menu_key_common_copy_borland = 'Ctrl+Ins';
menu_key_edit_cut_microsoft = 'Ctrl+X';
menu_key_edit_copy_microsoft = menu_key_common_copy_microsoft;
menu_key_edit_paste_microsoft = 'Ctrl+V';
+ menu_key_edit_all_borland = '';
menu_key_edit_clear = 'Ctrl+Del';
menu_key_common_helpindex = 'Shift+F1';
@@ -530,10 +531,12 @@ const menu_key_common_copy_borland = 'Ctrl+Ins';
const menu_key_edit_cut:string[63]=menu_key_edit_cut_borland;
menu_key_edit_copy:string[63]=menu_key_edit_copy_borland;
menu_key_edit_paste:string[63]=menu_key_edit_paste_borland;
+ menu_key_edit_all:string[63]=menu_key_edit_all_borland;
menu_key_hlplocal_copy:string[63]=menu_key_hlplocal_copy_borland;
cut_key:word=kbShiftDel;
copy_key:word=kbCtrlIns;
paste_key:word=kbShiftIns;
+ all_key:word=kbNoKey;
procedure RegisterFPViews;
@@ -4238,7 +4241,7 @@ begin
HelpCtx:=hcAbout;
GetExtent(R); R.Grow(-3,-2);
R2.Copy(R); R2.B.Y:=R2.A.Y+1;
- Insert(New(PStaticText, Init(R2, ^C'FreePascal IDE for '+source_info.name)));
+ Insert(New(PStaticText, Init(R2, ^C'Free Pascal IDE for '+source_info.name)));
R2.Move(0,1);
Insert(New(PStaticText, Init(R2, ^C'Target CPU: '+target_cpu_string)));
R2.Move(0,1);
@@ -4354,7 +4357,7 @@ end;
procedure TFPASCIIChart.HandleEvent(var Event: TEvent);
var W: PSourceWindow;
begin
- writeln(stderr,'all what=',event.what,' cmd=', event.command);
+ {writeln(stderr,'all what=',event.what,' cmd=', event.command);}
case Event.What of
evKeyDown :
case Event.KeyCode of
@@ -4366,7 +4369,7 @@ begin
end;
evCommand :
begin
- writeln(stderr,'fpascii what=',event.what, ' cmd=', event.command, ' ',cmtransfer,' ',cmsearchwindow);
+ {writeln(stderr,'fpascii what=',event.what, ' cmd=', event.command, ' ',cmtransfer,' ',cmsearchwindow);}
if Event.Command=(AsciiTableCommandBase+1) then // variable
begin
W:=FirstEditorWindow;
diff --git a/ide/globdir.inc b/ide/globdir.inc
index fd28d478a1..520779f3e6 100644
--- a/ide/globdir.inc
+++ b/ide/globdir.inc
@@ -31,11 +31,9 @@
{$define SignalIsCdecl}
{$define FSCaseInsensitive}
{$define HasSysMsgUnit}
- {$ifdef DEBUG}
- {$ifndef NOVESA}
- {$define USE_GRAPH_SWITCH}
- {$endif not NOVESA}
- {$endif DEBUG}
+ {$ifndef NOVESA}
+ {$define USE_GRAPH_SWITCH}
+ {$endif not NOVESA}
{$endif}
{$ifdef Linux}
@@ -102,10 +100,17 @@
{$ifdef Amiga}
{$define FSCaseInsensitive}
+ {$define WinClipSupported}
{$endif}
{$ifdef MorphOS}
{$define FSCaseInsensitive}
+ {$define WinClipSupported}
+{$endif}
+
+{$ifdef AROS}
+ {$define FSCaseInsensitive}
+ {$define WinClipSupported}
{$endif}
{ --- Exclude debugger support --- }
@@ -177,3 +182,16 @@
{$ifdef CROSSGDB}
{$define SUPPORT_REMOTE}
{$endif CROSSGDB}
+
+{$ifdef FPC_ARMEL}
+ {$define FPC_ARMEL32}
+{$endif FPC_ARMEL}
+{$ifdef FPC_ARMEB}
+ {$define FPC_ARMEB32}
+{$endif FPC_ARMEB}
+{$ifdef FPC_OARM}
+ {$define FPC_ARMEL32}
+{$endif FPC_OARM}
+{$ifdef FPC_ARMHF}
+ {$define FPC_ARMEL32}
+{$endif FPC_ARMHF}
diff --git a/ide/wconsole.pas b/ide/wconsole.pas
index cf1906eda7..dad7e4b8b9 100644
--- a/ide/wconsole.pas
+++ b/ide/wconsole.pas
@@ -43,6 +43,9 @@ interface
{$ifdef morphos}
longint
{$endif morphos}
+{$ifdef aros}
+ longint
+{$endif aros}
;
Procedure SaveConsoleMode(var ConsoleMode : TConsoleMode);
Procedure RestoreConsoleMode(const ConsoleMode : TConsoleMode);
diff --git a/ide/wconstse.inc b/ide/wconstse.inc
index f6db04f4b2..81ec61df67 100644
--- a/ide/wconstse.inc
+++ b/ide/wconstse.inc
@@ -99,11 +99,11 @@
msg_cutting = 'Cutting';
{ Help system }
- msg_nohelpfilesinstalled1 = 'To keep the size of the FPC download reasonably low, it comes without html formatted docs';
- msg_nohelpfilesinstalled2 = 'which are necessary for the IDE.';
- msg_nohelpfilesinstalled3 = 'To get these docs, go to http://www.freepascal.org/down/docs/docs.var and get one';
- msg_nohelpfilesinstalled4 = 'of the html doc archives and unpack the enclosed contents into your FPC directory.';
- msg_nohelpfilesinstalled5 = 'Add fpctoc.html via Help|Files ... to the IDE help file system.';
+ msg_nohelpfilesinstalled1 = 'To keep the size of the FPC download reasonably low, the CHM help files';
+ msg_nohelpfilesinstalled2 = 'which are necessary for the IDE help to function, are omitted.';
+ msg_nohelpfilesinstalled3 = 'To get these docs, go to ftp://ftp.freepascal.org/pub/fpc/dist/ and get doc-chm.zip';
+ msg_nohelpfilesinstalled4 = 'for your version. Extract the CHM files and add them to the IDE using Help|Files,';
+ msg_nohelpfilesinstalled5 = 'add toc.chm first.';
msg_helpindex = 'Help index';
msg_nohelpavailabelforthistopic = 'No help available for this topic.';
msg_pagenotavailable = 'Page not available';
diff --git a/ide/whelp.pas b/ide/whelp.pas
index 4c35cbd4eb..02630d8a51 100644
--- a/ide/whelp.pas
+++ b/ide/whelp.pas
@@ -192,6 +192,9 @@ uses
{$ifdef netware_clib}
nwserv,
{$endif}
+{$ifdef HASAMIGA}
+ dos,
+{$endif}
Strings,
WConsts;
@@ -202,6 +205,11 @@ type
procedure FreeItem(Item: Pointer); virtual;
end;
+{$ifdef HASAMIGA}
+var
+ StartupTicks: Int64;
+{$endif}
+
const
HelpFileTypes : PHelpFileTypeCollection = nil;
@@ -306,14 +314,9 @@ begin
GetDosTicks := Nwserv.GetCurrentTicks;
end;
{$endif}
-{$ifdef amiga}
+{$ifdef HASAMIGA}
begin
- GetDosTicks := -1;
-end;
-{$endif}
-{$ifdef morphos}
-begin
- GetDosTicks := -1;
+ GetDosTicks := ((dos.GetMsCount div 55) - StartupTicks) and $7FFFFFFF;
end;
{$endif}
@@ -992,4 +995,9 @@ begin
Dispose(HelpFiles, Done);
end;
+{$ifdef HASAMIGA}
+INITIALIZATION
+ StartupTicks := dos.GetMsCount div 55;
+{$endif}
+
END.
diff --git a/ide/winclip.pas b/ide/winclip.pas
index 327648d1a0..68cbc6cc8d 100644
--- a/ide/winclip.pas
+++ b/ide/winclip.pas
@@ -46,6 +46,12 @@ implementation
strings,windows;
{$endif Windows}
+{$ifdef HASAMIGA}
+ uses
+ clipboard,cliputils;
+{$endif}
+
+
{$ifdef DOS}
function WinClipboardSupported : boolean;
var
@@ -129,6 +135,36 @@ begin
end;
{$endif Windows}
+{$ifdef HASAMIGA}
+function WinClipboardSupported: Boolean;
+begin
+ WinClipboardSupported := True;
+end;
+
+function OpenWinClipboard: boolean;
+begin
+ OpenWinClipboard := True;
+end;
+
+function EmptyWinClipboard: boolean;
+begin
+ EmptyWinClipboard := GetTextFromClip(PRIMARY_CLIP) = '';
+end;
+
+function CloseWinClipboard : boolean;
+begin
+ CloseWinClipboard:= True;
+end;
+
+function InternGetDataSize: LongInt;
+var
+ Text: string;
+begin
+ Text := GetTextFromClip(PRIMARY_CLIP);
+ InternGetDataSize := Length(Text);
+end;
+{$endif HASAMIGA}
+
function GetTextWinClipboardSize : longint;
begin
@@ -147,6 +183,10 @@ var
h : HGlobal;
pp : pchar;
{$endif Windows}
+{$ifdef HASAMIGA}
+ Text: AnsiString;
+ pp: PChar;
+{$endif HASAMIGA}
begin
p:=nil;
GetTextWinClipBoardData:=False;
@@ -181,6 +221,14 @@ begin
end;
GetTextWinClipBoardData:=h<>0;
{$endif Windows}
+{$ifdef HASAMIGA}
+ Text := GetTextFromClip(0) + #0;
+ PP := @Text[1];
+ l := Length(Text);
+ GetMem(p,l);
+ Move(pp^,p^,l);
+ GetTextWinClipBoardData := True;
+{$endif HASAMIGA}
CloseWinClipBoard;
{$ifdef DOS}
M.MoveDataFrom(l,P^);
@@ -199,6 +247,10 @@ var
pp : pchar;
res : boolean;
{$endif Windows}
+{$ifdef HASAMIGA}
+ pp: PChar;
+ Test: AnsiString;
+{$endif HASAMIGA}
begin
SetTextWinClipBoardData:=False;
if (l=0) or (l>65520) then
@@ -239,6 +291,9 @@ begin
GlobalUnlock(h);
SetTextWinClipBoardData:=res;
{$endif Windows}
+{$ifdef HASAMIGA}
+ PutTextToClip(0, AnsiString(p));
+{$endif HASAMIGA}
CloseWinClipBoard;
end;
diff --git a/ide/wini.pas b/ide/wini.pas
index 53f5bc392d..4cef370c71 100644
--- a/ide/wini.pas
+++ b/ide/wini.pas
@@ -123,13 +123,40 @@ end;
function TINIEntry.GetText: string;
var S,CoS: string;
+ delimiter : char;
+ i : longint;
begin
if Text=nil then
begin
CoS:=GetComment;
S:=GetTag+'='+GetValue;
if Trim(S)='=' then S:=CoS else
- if CoS<>'' then S:=S+' '+CommentChar+' '+CoS;
+ if CoS<>'' then
+ begin
+ { if Value contains CommentChar, we need to add delimiters }
+ if pos(CommentChar,S)>0 then
+ begin
+ delimiter:=#0;
+ while delimiter < #255 do
+ begin
+ if (delimiter in ValidStrDelimiters) and
+ (pos(delimiter,S)=0) then
+ break;
+ delimiter:=succ(delimiter);
+ end;
+ if delimiter=#255 then
+ delimiter:='"';
+ { we use \", but we also need to escape \ itself }
+ for i:=length(s) downto 1 do
+ if (s[i]=delimiter) then
+ s:=copy(s,1,i-1)+'\'+delimiter+copy(s,i+1,length(s))
+ else if (s[i]='\') then
+ s:=copy(s,1,i-1)+'\\'+copy(s,i+1,length(s));
+
+ s:=delimiter+s+delimiter;
+ end;
+ S:=S+' '+CommentChar+' '+CoS;
+ end
end
else S:=Text^;
GetText:=S;
@@ -176,7 +203,8 @@ var S,ValueS: string;
begin
S:=GetText; Delimiter:=#0;
P:=Pos('=',S); P2:=Pos(CommentChar,S);
- if (P2<>0) and (P2<P) then P:=0;
+ if (P2<>0) and (P2<P) then
+ P:=0;
if P<>0 then
begin
Tag:=NewStr(copy(S,1,P-1));
@@ -186,15 +214,38 @@ begin
while (P2<=length(S)) do
begin
C:=S[P2];
- if (P2=StartP) and (C in ValidStrDelimiters) then begin Delimiter:=C; InString:=true; end else
- if C=Delimiter then InString:=not InString else
- if (C=CommentChar) and (InString=false) then Break else
- ValueS:=ValueS+C;
+ if (P2=StartP) and (C in ValidStrDelimiters) then
+ begin
+ Delimiter:=C;
+ InString:=true;
+ end
+ { if Value is delimited with ' or ", handle escaping }
+ else if (Delimiter<>#0) and (C='\') and (P2<length(S)) then
+ begin
+ inc(P2);
+ C:=S[P2];
+ ValueS:=ValueS+C;
+ end
+ else if C=Delimiter then
+ InString:=not InString
+ else if (C=CommentChar) and (InString=false) then
+ Break
+ else
+ ValueS:=ValueS+C;
Inc(P2);
end;
Value:=NewStr(Trim(ValueS));
Comment:=NewStr(copy(S,P2+1,High(S)));
- end else
+ { dispose raw text as special treatment is needed for
+ write }
+ if assigned(Comment) and assigned(Text) and
+ (delimiter<>#0) then
+ begin
+ DisposeStr(Text);
+ Text:=nil;
+ end;
+ end
+ else
begin
Tag:=nil;
TagHash:=0;
diff --git a/ide/wutils.pas b/ide/wutils.pas
index 4e890a1994..e7242bc385 100644
--- a/ide/wutils.pas
+++ b/ide/wutils.pas
@@ -514,7 +514,11 @@ function DirOf(const S: string): string;
var D: DirStr; E: ExtStr; N: NameStr;
begin
FSplit(S,D,N,E);
- if (D<>'') and (D[Length(D)]<>DirSep) then
+ if (D<>'') and (D[Length(D)]<>DirSep)
+ {$ifdef HASAMIGA}
+ and (D[Length(D)]<>DriveSeparator)
+ {$endif}
+ then
DirOf:=D+DirSep
else
DirOf:=D;
@@ -1220,7 +1224,11 @@ function GetCurDir: string;
var S: string;
begin
GetDir(0,S);
+{$ifdef HASAMIGA}
+ if (copy(S,length(S),1)<>DirSep) and (copy(S,length(S),1)<>DriveSeparator) then S:=S+DirSep;
+{$else}
if copy(S,length(S),1)<>DirSep then S:=S+DirSep;
+{$endif}
GetCurDir:=S;
end;
@@ -1233,7 +1241,7 @@ var Dir: string;
begin
Dir:=GetEnv('TEMP');
if Dir='' then Dir:=GetEnv('TMP');
-{$if defined(morphos) or defined(amiga)}
+{$ifdef HASAMIGA}
if Dir='' then Dir:='T:';
{$endif}
if (Dir<>'') then if not ExistsDir(Dir) then Dir:='';
diff --git a/installer/Makefile b/installer/Makefile
index f563c472a4..613d8eb632 100644
--- a/installer/Makefile
+++ b/installer/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=installer
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_PROGRAMS+=installer writeidx
endif
@@ -438,6 +444,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=scroll insthelp
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=scroll insthelp
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=scroll insthelp
endif
@@ -525,6 +534,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=scroll insthelp
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=scroll insthelp
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=scroll insthelp
endif
@@ -579,6 +591,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=scroll insthelp
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=scroll insthelp
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=scroll insthelp
endif
@@ -700,6 +715,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_UNITDIR+=../ide
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_UNITDIR+=../ide
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_UNITDIR+=../ide
endif
@@ -787,6 +805,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_UNITDIR+=../ide
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_UNITDIR+=../ide
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_UNITDIR+=../ide
endif
@@ -841,6 +862,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_UNITDIR+=../ide
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_UNITDIR+=../ide
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_UNITDIR+=../ide
endif
@@ -1095,6 +1119,12 @@ 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=
@@ -1140,6 +1170,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1768,6 +1803,18 @@ REQUIRE_PACKAGES_FV=1
REQUIRE_PACKAGES_UNZIP=1
REQUIRE_PACKAGES_RTL-EXTRA=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
+REQUIRE_PACKAGES_RTL-CONSOLE=1
+REQUIRE_PACKAGES_FV=1
+REQUIRE_PACKAGES_UNZIP=1
+REQUIRE_PACKAGES_RTL-EXTRA=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2116,6 +2163,18 @@ REQUIRE_PACKAGES_FV=1
REQUIRE_PACKAGES_UNZIP=1
REQUIRE_PACKAGES_RTL-EXTRA=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
+REQUIRE_PACKAGES_RTL-CONSOLE=1
+REQUIRE_PACKAGES_FV=1
+REQUIRE_PACKAGES_UNZIP=1
+REQUIRE_PACKAGES_RTL-EXTRA=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2332,6 +2391,18 @@ REQUIRE_PACKAGES_FV=1
REQUIRE_PACKAGES_UNZIP=1
REQUIRE_PACKAGES_RTL-EXTRA=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
+REQUIRE_PACKAGES_RTL-CONSOLE=1
+REQUIRE_PACKAGES_FV=1
+REQUIRE_PACKAGES_UNZIP=1
+REQUIRE_PACKAGES_RTL-EXTRA=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2873,7 +2944,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2903,17 +2974,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/installer/Makefile.fpc b/installer/Makefile.fpc
index 5c356eeb9e..a628899b7d 100644
--- a/installer/Makefile.fpc
+++ b/installer/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=installer
-version=2.7.1
+version=3.1.1
[target]
programs_go32v2=install writeidx
diff --git a/installer/install.dat b/installer/install.dat
index 17ab576884..50626c2702 100644
--- a/installer/install.dat
+++ b/installer/install.dat
@@ -3,10 +3,10 @@
#
# Install file for Go32v2/Win32/OS2/EMX
#
-# Warning: no package should contain more than 16 files
+# Warning: no package should contain more than 60 files
-title=Free Pascal Compiler 2.7.1
-version=2.7.1
+title=Free Pascal Compiler 3.1.1
+version=3.1.1
#
# General
@@ -95,6 +95,46 @@ package=uhermesdos.zip[uhermdos.zip],Port of Hermes graphics library
package=ufppkgdos.zip[ufppkdos.zip],Units for FPPkg packaging support
# Dos 34
package=ufcl-sounddos.zip[ufsnddos.zip],Free Component Library (FCL)-sound files
+# Dos 35
+package=ufcl-sdodos.zip[ufcsddos.zip],Free Component Library (FCL)-Service Data Objects
+# Dos 36
+package=ufcl-stldos.zip[ufcstdos.zip],Free Component Library (FCL)-generic container library
+# Dos 37
+package=ulibtardos.zip[ultardos.zip],Unit for .tar file handling
+# Dos 38
+package=urtl-consoledos.zip[urtlcdos.zip],RTL-console abstraction (keyboard, video & mouse)
+# Dos 39
+package=urtl-extrados.zip[urtledos.zip],RTL-additional units not needed for bootstrapping
+# Dos 40
+package=urtl-objpasdos.zip[urtlodos.zip],RTL-Object Pascal units (e.g. Delphi compatibility)
+# Dos 41
+package=urtl-unicodedos.zip[urtludos.zip],RTL-miscellaneous Unicode support units
+# Dos 42
+package=utils-fpcmkcfgdos.zip[fcmkdos.zip],Creation of Free Pascal configuration files
+# Dos 43
+package=utils-fpcmdos.zip[fpcmdos.zip],Generate Makefiles out of Makefile.fpc files
+# Dos 44
+package=utils-fpdocdos.zip[fpdocdos.zip],Free Pascal documentation generation utility
+# Dos 45
+package=utils-fppkgdos.zip[fppkgdos.zip],Free Pascal package repository utility
+# Dos 46
+package=utils-fprcpdos.zip[fprcpdos.zip],Free Pascal Resource Compiler Preprocessor
+# Dos 47
+package=utils-h2pasdos.zip[h2pasdos.zip],Create Pascal interface units from C headers
+# Dos 48
+package=utils-pas2fpmdos.zip[p2fmdos.zip],Generate fpmake.pp for Pascal source
+# Dos 49
+package=utils-pas2jnidos.zip[p2jndos.zip],Generate JNI bridge for Pascal code
+# Dos 50
+package=utils-pas2utdos.zip[p2utdos.zip],Pascal source to FPC Unit test generator
+# Dos 51
+package=utils-rmwaitdos.zip[rmwdos.zip],Remove (delete) file(s) with optional retries
+# Dos 52
+package=utils-lexyaccdos.zip[tplydos.zip],Compiler generator for TP and compatibles
+# Dos 53
+package=units-ptcdos.zip[uptcdos.zip],Free portable framebuffer library
+# Dos 54
+package=utils-dxegendos.zip[dxegdos.zip],Generation of D~X~E modules loadable at runtime
#
# Win32 packages
@@ -123,7 +163,7 @@ package=gdb.i386-win32.zip,GNU ~D~ebugger for Win32
# Win32 7
package=units-fv.i386-win32.zip,Free ~V~ision (FV)
# Win32 8
-package=units-fpgtk.i386-win32.zip,fpGTK units
+package=units-fpgtk.i386-win32.zip,Lightweight OOP wrapper over GTK1
# Win32 9
package=units-sqlite.i386-win32.zip,SQLite interface units
# Win32 10
@@ -224,6 +264,20 @@ package=units-bzip2.i386-win32.zip,Units for bzip2 decompression
package=units-fcl-js.i386-win32.zip,Free Component Library (FCL)-Javascript support
# Win32-2 31
package=units-fcl-sound.i386-win32.zip,Free Component Library (FCL)-sound files
+# Win32-2 32
+package=units-fcl-sdo.i386-win32.zip,Free Component Library (FCL)-Service Data Objects
+# Win32-2 33
+package=units-fcl-stl.i386-win32.zip,Free Component Library (FCL)-generic container library
+# Win32-2 34
+package=units-libtar.i386-win32.zip,Unit for .tar file handling
+# Win32-2 35
+package=units-rtl-console.i386-win32.zip,RTL-console abstraction (keyboard, video & mouse)
+# Win32-2 36
+package=units-rtl-extra.i386-win32.zip,RTL-additional units not needed for bootstrapping
+# Win32-2 37
+package=units-rtl-objpas.i386-win32.zip,RTL-Object Pascal units (e.g. Delphi compatibility)
+# Win32-2 38
+package=units-rtl-unicode.i386-win32.zip,RTL-miscellaneous Unicode support units
#
# OS/2 packages
@@ -255,6 +309,7 @@ package=uos2unitsos2.zip[uos2os2.zip],Units interfacing libraries delivered with
#package=uclkdllos2.zip[uclkos2.zip],CLKDLL interface unit (eCS 1.1+)
# OS/2 9
#package=ulvmos2.zip,LVM interface unit (OS/2 v4.5 / eCS)
+package=utils-h2pasos2.zip[h2pasos2.zip],Create Pascal interface units from C headers
# OS/2 10
package=upasjpegos2.zip[upjpos2.zip],Pas~J~PEG units
# OS/2 11
@@ -283,6 +338,30 @@ package=uhermesos2.zip[uhermos2.zip],Port of Hermes graphics library
package=ufppkgos2.zip[ufppkos2.zip],Units for FPPkg packaging support
# OS/2 23
package=uopensslos2.zip[uosslos2.zip],OpenSSL interface units
+# OS/2 24
+package=utils-fpcmkcfgos2.zip[fcmkos2.zip],Creation of Free Pascal configuration files
+# OS/2 25
+package=utils-fpdocos2.zip[fpdocos2.zip],Free Pascal documentation generation utility
+# OS/2 26
+package=utils-fpmcos2.zip[fpmcos2.zip],Free Pascal Message Compiler
+# OS/2 27
+package=utils-fppkgos2.zip[fppkgos2.zip],Free Pascal package repository utility
+# OS/2 28
+package=utils-fprcpos2.zip[fprcpos2.zip],Free Pascal Resource Compiler Preprocessor
+# OS/2 29
+package=utils-fpcresos2.zip[fpresos2.zip],Free Pascal Resource Converter
+# OS/2 30
+package=utils-pas2fpmos2.zip[p2fmos2.zip],Generate fpmake.pp for Pascal source
+# OS/2 31
+package=utils-pas2jnios2.zip[p2jnos2.zip],Generate JNI bridge for Pascal code
+# OS/2 32
+package=utils-pas2utos2.zip[p2utos2.zip],Pascal source to FPC Unit test generator
+# OS/2 33
+package=utils-rmwaitos2.zip[rmwos2.zip],Remove (delete) file(s) with optional retries
+# OS/2 34
+package=utils-lexyaccos2.zip[tplyos2.zip],Compiler generator for TP and compatibles
+# OS/2 35
+package=utils-fpcmos2.zip[fpcmos2.zip],Generate Makefiles out of Makefile.fpc files
#
# OS/2 packages 2nd part
@@ -306,11 +385,11 @@ package=uunzipos2.zip[uzipos2.zip],Unzip units
# OS/2-2 8
#package=ummtkos2.zip,MMOS/2 interface units
# OS/2-2 9
-package=ux11os2.zip,X11 interface units
+package=ux11os2.zip,X Window (X11) interface units
# OS/2-2 10
package=ugtk1os2.zip,GTK1 interface units
# OS/2-2 11
-package=ufpgtkos2.zip[ufpgtos2.zip],fpGTK units
+package=ufpgtkos2.zip[ufpgtos2.zip],Lightweight OOP wrapper over GTK1
# OS/2-2 12
package=uimlibos2.zip[uimlbos2.zip],ImLib interface units
# OS/2-2 13
@@ -341,6 +420,20 @@ package=ubzip2os2.zip[ubz2os2.zip],Units for bzip2 decompression
package=ufcl-jsos2.zip[ufcjsos2.zip],Free Component Library (FCL)-Javascript support
# OS/2-2 26
package=ufcl-soundos2.zip[ufsndos2.zip],Free Component Library (FCL)-sound files
+# OS/2-2 27
+package=ufcl-sdoos2.zip[ufcsdos2.zip],Free Component Library (FCL)-Service Data Objects
+# OS/2-2 28
+package=ufcl-stlos2.zip[ufcstos2.zip],Free Component Library (FCL)-generic container library
+# OS/2-2 29
+package=ulibtaros2.zip[ultaros2.zip],Unit for .tar file handling
+# OS/2-2 30
+package=urtl-consoleos2.zip[urtlcos2.zip],RTL-console abstraction (keyboard, video & mouse)
+# OS/2-2 31
+package=urtl-extraos2.zip[urtleos2.zip],RTL-additional units not needed for bootstrapping
+# OS/2-2 32
+package=urtl-objpasos2.zip[urtloos2.zip],RTL-Object Pascal units (e.g. Delphi compatibility)
+# OS/2-2 33
+package=urtl-unicodeos2.zip[urtluos2.zip],RTL-miscellaneous Unicode support units
@@ -403,6 +496,32 @@ package=uhermesemx.zip[uhermemx.zip],Port of Hermes graphics library
package=ufppkgemx.zip[ufppkemx.zip],Units for FPPkg packaging support
# EMX 23
package=uopensslemx.zip[uosslemx.zip],OpenSSL interface units
+# EMX 24
+package=utils-fpcmkcfgemx.zip[fcmkemx.zip],Creation of Free Pascal configuration files
+# EMX 25
+package=utils-fpdocemx.zip[fpdocemx.zip],Free Pascal documentation generation utility.
+# EMX 26
+package=utils-fpmcemx.zip[fpmcemx.zip],Free Pascal Message Compiler.
+# EMX 27
+package=utils-fppkgemx.zip[fppkgemx.zip],Free Pascal package repository utility.
+# EMX 28
+package=utils-fprcpemx.zip[fprcpemx.zip],Free Pascal Resource Compiler Preprocessor
+# EMX 29
+package=utils-fpcresemx.zip[fpresemx.zip],Free Pascal Resource Converter
+# EMX 30
+package=utils-h2pasemx.zip[h2pasemx.zip],Create Pascal interface units from C headers
+# EMX 31
+package=utils-pas2fpmemx.zip[p2fmemx.zip],Generate fpmake.pp for Pascal source
+# EMX 32
+package=utils-pas2jniemx.zip[p2jnemx.zip],Generate JNI bridge for Pascal code
+# EMX 33
+package=utils-pas2utemx.zip[p2utemx.zip],Pascal source to FPC Unit test generator
+# EMX 34
+package=utils-rmwaitemx.zip[rmwemx.zip],Remove (delete) file(s) with optional retries
+# EMX 35
+package=utils-lexyaccemx.zip[tplyemx.zip],Compiler generator for TP and compatibles
+# EMX 36
+package=utils-fpcmemx.zip[fpcmemx.zip],Generate Makefiles out of Makefile.fpc files
#
# EMX packages 2nd part
@@ -426,11 +545,11 @@ package=uunzipemx.zip[uzipemx.zip],Unzip units
# EMX-2 8
#package=ummtkemx.zip,MMOS/2 interface units
# EMX-2 9
-package=ux11emx.zip,X11 interface units
+package=ux11emx.zip,X Window (X11) interface units
# EMX-2 10
package=ugtk1emx.zip,GTK1 interface units
# EMX-2 11
-package=ufpgtkemx.zip,fpGTK units
+package=units-fpgtkemx.zip[ufpgtemx.zip],Lightweight OOP wrapper over GTK1
# EMX-2 12
package=uimlibemx.zip[uimlbemx.zip],ImLib interface units
# EMX-2 13
@@ -461,6 +580,20 @@ package=ubzip2emx.zip[ubz2emx.zip],Units for bzip2 decompression
package=ufcl-jsemx.zip[ufcjsemx.zip],Free Component Library (FCL)-Javascript support
# EMX-2 26
package=ufcl-soundemx.zip[ufsndemx.zip],Free Component Library (FCL)-sound files
+# EMX-2 27
+package=ufcl-sdoemx.zip[ufcsdemx.zip],Free Component Library (FCL)-Service Data Objects
+# EMX-2 28
+package=ufcl-stlemx.zip[ufcstemx.zip],Free Component Library (FCL)-generic container library
+# EMX-2 29
+package=ulibtaremx.zip[ultaremx.zip],Unit for .tar file handling
+# EMX-2 30
+package=urtl-consoleemx.zip[urtlcemx.zip],RTL-console abstraction (keyboard, video & mouse)
+# EMX-2 31
+package=urtl-extraemx.zip[urtleemx.zip],RTL-additional units not needed for bootstrapping
+# EMX-2 32
+package=urtl-objpasemx.zip[urtloemx.zip],RTL-Object Pascal units (e.g. Delphi compatibility)
+# EMX-2 33
+package=urtl-unicodeemx.zip[urtluemx.zip],RTL-miscellaneous Unicode support units
#
@@ -493,7 +626,7 @@ package=rtl.source.zip[rtlsrc.zip],Run time library sources
# Source 4
package=ide.source.zip[idesrc.zip],IDE sources
# Source 5
-package=utils.source.zip[utilsrc.zip],~U~tils sources
+package=utils.source.zip[utilssrc.zip],~U~tils sources
# Source 6
package=installer.source.zip[instsrc.zip],~I~nstaller sources
# Source 7
@@ -520,6 +653,34 @@ package=units-graph.source.zip[ugrphsrc.zip],Unit Graph sources
package=units-hermes.source.zip[uhermsrc.zip],Port of Hermes graphics library
# Source 18
package=units-fppkg.source.zip[ufppksrc.zip],Units for FPPkg packaging support
+# Source 19
+package=utils-dxegen.source.zip[dxegsrc.zip],Generation of D~X~E modules loadable at runtime
+# Source 20
+package=utils-fpcmkcfg.source.zip[fcmksrc.zip],Creation of Free Pascal configuration files
+# Source 21
+package=utils-fpcm.source.zip[fpcmsrc.zip],Generate Makefiles out of Makefile.fpc files
+# Source 22
+package=utils-fpdoc.source.zip[fpdocsrc.zip],Free Pascal documentation generation utility
+# Source 23
+package=utils-fpmc.source.zip[fpmcsrc.zip],Free Pascal Message Compiler
+# Source 24
+package=utils-fppkg.source.zip[fppkgsrc.zip],Free Pascal package repository utility
+# Source 25
+package=utils-fprcp.source.zip[fprcpsrc.zip],Free Pascal Resource Compiler Preprocessor
+# Source 26
+package=utils-fpcres.source.zip[fpressrc.zip],Free Pascal Resource Converter
+# Source 27
+package=utils-h2pas.source.zip[h2passrc.zip],Create Pascal interface units from C headers
+# Source 28
+package=utils-pas2fpm.source.zip[p2fmsrc.zip],Generate fpmake.pp for Pascal source
+# Source 29
+package=utils-pas2jni.source.zip[p2jnsrc.zip],Generate JNI bridge for Pascal code
+# Source 30
+package=utils-pas2ut.source.zip[p2utsrc.zip],Pascal source to FPC Unit test generator
+# Source 31
+package=utils-rmwait.source.zip[rmwsrc.zip],Remove (delete) file(s) with optional retries
+# Source 32
+package=utils-lexyacc.source.zip[tplysrc.zip],Compiler generator for TP and compatibles
#
# Source packages 2nd part
@@ -547,6 +708,7 @@ package=units-os2units.source.zip[uos2src.zip],Units interfacing libraries deliv
#package=units-clkdll.source.zip[uclksrc.zip],CLKDLL interface unit (eCS 1.1+)
# Source-2 10
#package=units-lvm.source.zip[ulvmsrc.zip],OS/2 LVM interface unit sources
+package=units-gtk1.source.zip[ugtk1src.zip],Header to the GTK widgetset (v1)
# Source-2 11
package=units-pasjpeg.source.zip[upjpsrc.zip],PasJPEG units sources
# Source-2 12
@@ -556,7 +718,7 @@ package=units-libpng.source.zip[ulpngsrc.zip],LibPNG interface units sources
# Source-2 14
package=units-imlib.source.zip[uimlbsrc.zip],ImLib interface units sources
# Source-2 15
-package=units-fpgtk.source.zip[ufpgtsrc.zip],fpGTK units sources
+package=units-fpgtk.source.zip[ufpgtsrc.zip],Lightweight OOP wrapper over GTK1 sources
# Source-2 16
package=units-sqlite.source.zip[usqltsrc.zip],SQLite interface units sources
# Source-2 17
@@ -579,6 +741,10 @@ package=units-fcl-res.source.zip[ufclesrc.zip],Free Component Library (FCL)-reso
package=units-bzip2.source.zip[ubz2src.zip],Units for bzip2 decompression
# Source-2 26
package=fcl-js.source.zip[ufcjssrc.zip],Free Component Library (FCL)-Javascript support
+# Source-2 27
+package=units-ptc.source.zip[uptcsrc.zip],Free portable framebuffer library
+# Source-2 28
+package=units-x11.source.zip[ux11src.zip],X Window (X11) interface units
#
@@ -597,37 +763,51 @@ package=units-hash.source.zip[uhashsrc.zip],Hash calculation units sources
# Source-3 5
package=units-fftw.source.zip[ufftwsrc.zip],FFTW interface unit sources
# Source-3 6
-package=fcl-base.source.zip[ufclbsrc.zip],Free component library (FCL)-base part
+package=units-fcl-base.source.zip[ufclbsrc.zip],Free component library (FCL)-base part
# Source-3 7
-package=fcl-db.source.zip[ufcldsrc.zip],Free component library (FCL)-datasets
+package=units-fcl-db.source.zip[ufcldsrc.zip],Free component library (FCL)-datasets
# Source-3 8
-package=fcl-fpcunit.source.zip[ufclusrc.zip],Free component library (FCL)-FPCUnit
+package=units-fcl-fpcunit.source.zip[ufclusrc.zip],Free component library (FCL)-FPCUnit
# Source-3 9
-package=fcl-image.source.zip[ufclisrc.zip],Free component library (FCL)-images
+package=units-fcl-image.source.zip[ufclisrc.zip],Free component library (FCL)-images
# Source-3 10
-package=fcl-net.source.zip[ufclnsrc.zip],Free component library (FCL)-network
+package=units-fcl-net.source.zip[ufclnsrc.zip],Free component library (FCL)-network
# Source-3 11
-package=fcl-passrc.source.zip[ufclssrc.zip],Free component library (FCL)-Pascal source processing
+package=units-fcl-passrc.source.zip[ufclssrc.zip],Free component library (FCL)-Pascal source processing
# Source-3 12
-package=fcl-registry.source.zip[ufclrsrc.zip],Free component library (FCL)-registry
+package=units-fcl-registry.source.zip[ufclrsrc.zip],Free component library (FCL)-registry
# Source-3 13
-package=fcl-xml.source.zip[ufclxsrc.zip],Free component library (FCL)-XML files
+package=units-fcl-xml.source.zip[ufclxsrc.zip],Free component library (FCL)-XML files
# Source-3 14
-package=fcl-web.source.zip[ufclwsrc.zip],Free component library (FCL)-Web
+package=units-fcl-web.source.zip[ufclwsrc.zip],Free component library (FCL)-Web
# Source-3 15
-package=httpd-1.3.source.zip[uhd13src.zip],HTTPD 1.3 interface units sources
+package=units-httpd-1.3.source.zip[uhd13src.zip],HTTPD 1.3 interface units sources
# Source-3 16
-package=httpd-2.0.source.zip[uhd20src.zip],HTTPD 2.0 interface units sources
+package=units-httpd-2.0.source.zip[uhd20src.zip],HTTPD 2.0 interface units sources
# Source-3 17
-package=httpd-2.2.source.zip[uhd22src.zip],HTTPD 2.2 interface units sources
+package=units-httpd-2.2.source.zip[uhd22src.zip],HTTPD 2.2 interface units sources
# Source-3 18
-package=oggvorbis.source.zip[uoggvsrc.zip],OGG Vorbis interface units sources
+package=units-oggvorbis.source.zip[uoggvsrc.zip],OGG Vorbis interface units sources
# Source-3 19
-package=openal.source.zip[uoalsrc.zip],OpenAL interface units sources
+package=units-openal.source.zip[uoalsrc.zip],OpenAL interface units sources
# Source-3 20
-package=openssl.source.zip[uosslsrc.zip],OpenSSL interface units sources
+package=units-openssl.source.zip[uosslsrc.zip],OpenSSL interface units sources
# Source-3 21
-package=fcl-sound.source.zip[ufsndsrc.zip],Free Component Library (FCL)-sound files sources
+package=units-fcl-sound.source.zip[ufsndsrc.zip],Free Component Library (FCL)-sound files sources
+# Source-3 22
+package=units-fcl-sdo.source.zip[ufcsdsrc.zip],Free Component Library (FCL)-Service Data Objects
+# Source-3 23
+package=units-fcl-stl.source.zip[ufcstsrc.zip],Free Component Library (FCL)-generic container library
+# Source-3 24
+package=units-libtar.source.zip[ultarsrc.zip],Unit for .tar file handling
+# Source-3 25
+package=units-rtl-console.source.zip[urtlcsrc.zip],RTL-console abstraction (keyboard, video & mouse)
+# Source-3 26
+package=units-rtl-extra.source.zip[urtlesrc.zip],RTL-additional units not needed for bootstrapping
+# Source-3 27
+package=units-rtl-objpas.source.zip[urtlosrc.zip],RTL-Object Pascal units (e.g. Delphi compatibility)
+# Source-3 28
+package=units-rtl-unicode.source.zip[urtlusrc.zip],RTL-miscellaneous Unicode support units
defaultcfg=
#
@@ -669,6 +849,22 @@ defaultcfg=
# Parsing switches
# ----------------
+# Pascal language mode
+# -Mfpc free pascal dialect (default)
+# -Mobjfpc switch some Delphi 2 extensions on
+# -Mdelphi tries to be Delphi compatible
+# -Mtp tries to be TP/BP 7.0 compatible
+# -Mgpc tries to be gpc compatible
+# -Mmacpas tries to be compatible to the macintosh pascal dialects
+#
+# Turn on Object Pascal extensions by default
+#-Mobjfpc
+
+# Assembler reader mode
+# -Rdefault use default assembler
+# -Ratt read AT&T style assembler
+# -Rintel read Intel style assembler
+#
# All assembler blocks are intel styled by default
#-Rintel
@@ -679,19 +875,29 @@ defaultcfg=
#-Rdirect
# Semantic checking
-# -S2 switch some Delphi 2 extensions on
-# -Sc supports operators like C (*=,+=,/= and -=)
-# -Sd tries to be Delphi compatible
-# -Se<x> compiler stops after the <x> errors (default is 1)
-# -Sg allow LABEL and GOTO
-# -Sh Use ansistrings
-# -Si support C++ styled INLINE
-# -Sm support macros like C (global)
-# -So tries to be TP/BP 7.0 compatible
-# -Sp tries to be gpc compatible
-# -Ss constructor name must be init (destructor must be done)
-# -St allow static keyword in objects
-# Allow goto, inline, C-operators
+# -S2 same as -Mobjfpc
+# -Sa include assertion code.
+# -Sc supports operators like C (*=,+=,/= and -=)
+# -Sd same as -Mdelphi
+# -Se<x> error options. <x> is a combination of the following:
+# <n> : compiler stops after <n> errors (default is 1)
+# w : compiler stops also after warnings
+# n : compiler stops also after notes
+# h : compiler stops also after hints
+# -Sg allow LABEL and GOTO
+# -Sh Use ansistrings
+# -Si support C++ styled INLINE
+# -Sk load fpcylix unit
+# -SI<x> set interface style to <x>
+# -SIcom COM compatible interface (default)
+# -SIcorba CORBA compatible interface
+# -Sm support macros like C (global)
+# -So same as -Mtp
+# -Sp same as -Mgpc
+# -Ss constructor name must be init (destructor must be done)
+# -Sx enable exception keywords (default in Delphi/ObjFPC modes)
+#
+# Allow goto, inline, C-operators, C-vars
-Sgic
# ---------------
@@ -713,9 +919,21 @@ defaultcfg=
#-Ct
# Optimizer switches
-# -O1 level 1 optimizations (quick and debugger friendly)
-# -O2 level 2 optimizations (-O1 + quick optimizations)
-# -O3 level 3 optimizations (-O2 + slow optimizations)
+# -Os generate smaller code
+# -Oa=N set alignment to N
+# -O1 level 1 optimizations (quick optimizations, debuggable)
+# -O2 level 2 optimizations (-O1 + optimizations which make debugging more difficult)
+# -O3 level 3 optimizations (-O2 + optimizations which also may make the program slower rather than faster)
+# -Oo<x> switch on optimalization x. See fpc -i for possible values
+# -OoNO<x> switch off optimalization x. See fpc -i for possible values
+# -Op<x> set target cpu for optimizing, see fpc -i for possible values
+
+#ifdef darwin
+#ifdef cpui386
+-Cppentiumm
+-Oppentiumm
+#endif
+#endif
# -----------------------
@@ -732,6 +950,8 @@ defaultcfg=
#-Fr%basepath%/msg/errord.msg
#-Fr%basepath%/msg/errorr.msg
+# search path for unicode binary files
+-FM%basepath%/unicode/
# path to the gcclib
#-Fl%basepath%/lib
@@ -749,12 +969,42 @@ defaultcfg=
-Fu%basepath%/units/%fpctargetmacro%/*
-Fu%basepath%/units/%fpctargetmacro%/rtl
+#ifdef cpui8086
+-Fu%basepath%/units/%fpctargetmacro%/$fpcsubarch-$fpcmemorymodel
+-Fu%basepath%/units/%fpctargetmacro%/$fpcsubarch-$fpcmemorymodel/*
+-Fu%basepath%/units/%fpctargetmacro%/$fpcsubarch-$fpcmemorymodel/rtl
+#endif
+
# searchpath for libraries
#-Fl%basepath%/lib
#-Fl/lib;/usr/lib
# searchpath for tools
-FD%basepath%/bin/%fpctargetmacro%
+# never need cross-prefix when targeting the JVM
+# (no native compiler, always cross-compiling)
+#ifdef cpujvm
+#undef NEEDCROSSBINUTILS
+#endif
+
+# for android cross-prefix is set by compiler
+#ifdef android
+#undef NEEDCROSSBINUTILS
+#endif
+
+# never need cross-prefix when targeting the i8086
+# (no native compiler, always cross-compiling)
+#ifdef cpui8086
+#undef NEEDCROSSBINUTILS
+#endif
+
+# binutils prefix for cross compiling
+#IFDEF FPC_CROSSCOMPILING
+#IFDEF NEEDCROSSBINUTILS
+ -XP$FPCTARGET-
+#ENDIF
+#ENDIF
+
# -------------
# Linking
@@ -762,6 +1012,15 @@ defaultcfg=
# generate always debugging information for GDB (slows down the compiling
# process)
+# -gc generate checks for pointers
+# -gd use dbx
+# -gg use gsym
+# -gh use heap trace unit (for memory leak debugging)
+# -gl use line info unit to show more info for backtraces
+# -gv generates programs tracable with valgrind
+# -gw generate dwarf debugging info
+#
+# Enable debuginfo and use the line info unit by default
#-gl
# always pass an option to the linker
@@ -770,6 +1029,13 @@ defaultcfg=
# Always strip debuginfo from the executable
-Xs
+# Always use smartlinking on i8086, because the system unit exceeds the 64kb
+# code limit
+#ifdef cpui8086
+-CX
+-XX
+#endif
+
# -------------
# Miscellaneous
@@ -779,15 +1045,19 @@ defaultcfg=
-l
# Verbosity
-# e : Show errors (default) d : Show debug info
-# w : Show warnings u : Show used files
-# n : Show notes t : Show tried files
-# h : Show hints m : Show defined macros
-# i : Show general info p : Show compiled procedures
-# l : Show linenumbers c : Show conditionals
-# a : Show everything 0 : Show nothing (except errors)
-
-# Display Info, Warnings, Notes and Hints
+# e : Show errors (default) d : Show debug info
+# w : Show warnings u : Show unit info
+# n : Show notes t : Show tried/used files
+# h : Show hints s : Show time stamps
+# i : Show general info q : Show message numbers
+# l : Show linenumbers c : Show conditionals
+# a : Show everything 0 : Show nothing (except errors)
+# b : Write file names messages r : Rhide/GCC compatibility mode
+# with full path x : Executable info (Win32 only)
+# v : write fpcdebug.txt with p : Write tree.log with parse tree
+# lots of debugging info
+#
+# Display Info, Warnings and Notes
-viwn
# If you don't want so much verbosity use
#-vw
diff --git a/installer/install.pas b/installer/install.pas
index 8d5b46d528..053e9b52b4 100644
--- a/installer/install.pas
+++ b/installer/install.pas
@@ -93,12 +93,12 @@ program install;
WHTMLScn,insthelp;
const
- installerversion='2.7.1';
+ installerversion='3.1.1';
installercopyright='Copyright (c) 1993-2011 Florian Klaempfl';
maxpacks=20;
- maxpackages=40;
+ maxpackages=60;
maxdefcfgs=1024;
HTMLIndexExt = '.htx';
diff --git a/installer/winshell.pas b/installer/winshell.pas
index 378dee1f86..37bb7c725d 100644
--- a/installer/winshell.pas
+++ b/installer/winshell.pas
@@ -9,6 +9,8 @@ interface
uses
Windows;
+type
+ INT = WINT;
const
{ GetCurrentPlatform constants }
pfAll = %11111111;
@@ -337,7 +339,7 @@ begin
end;
if link^.vtbl^.QueryInterface (link, IID_IShellLinkDataList, DL) = S_OK then
begin
- flags:=-1;
+ flags:= DWORD(-1);
if DL^.vtbl^.GetFlags(DL,flags)=S_OK then
begin
writeln('Link flag is ',hexstr(flags,8));
diff --git a/packages/Makefile b/packages/Makefile
index e6aac2ad38..bebb106b96 100644
--- a/packages/Makefile
+++ b/packages/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -345,6 +351,7 @@ endif
ifdef UNITDIR_FPMAKE_FPMKUNIT
override COMPILER_FPMAKE_UNITDIR=$(UNITDIR_FPMAKE_FPMKUNIT)
endif
+SUB_FPMAKE_SRCS=$(wildcard */fpmake.pp)
override INSTALL_FPCPACKAGE=y
override INSTALL_FPCSUBDIR=packages
ifdef REQUIRE_UNITSDIR
@@ -589,6 +596,12 @@ 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=
@@ -634,6 +647,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1055,6 +1073,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1142,6 +1163,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1196,6 +1220,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1359,7 +1386,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1389,17 +1416,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -1593,12 +1626,11 @@ examples:
shared:
sourceinstall:
exampleinstall:
-zipsourceinstall:
zipexampleinstall:
cleanall:
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall cleanall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall cleanall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -1616,18 +1648,19 @@ ifndef BUILDFULLNATIVE
FPMAKE_OPT+=-sp
endif
.NOTPARALLEL:
+fpmkunit_bootstrap:
+ $(MAKE) -C fpmkunit bootstrap
fpmkunit_clean_bootstrap:
$(MAKE) -C fpmkunit clean_bootstrap
-fpmake: fpmake.pp
- $(MAKE) -C fpmkunit bootstrap
+fpmake$(SRCEXEEXT): fpmake.pp fpmkunit_bootstrap $(SUB_FPMAKE_SRCS) fpmake_add.inc fpmake_proc.inc
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
- $(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+all: fpmake$(SRCEXEEXT)
+ $(LOCALFPMAKE) compile $(FPMAKE_OPT)
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean: fpmkunit_clean_bootstrap
@@ -1651,19 +1684,45 @@ endif
-$(DEL) fpmake.o
-$(DEL) fpmake.dbg
endif
-install: fpmake
+install: fpmake$(SRCEXEEXT)
ifdef UNIXHier
$(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) $(FPMAKE_INSTALL_OPT)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) $(FPMAKE_INSTALL_OPT) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) $(FPMAKE_INSTALL_OPT) -ie -fsp 0
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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
+PPULIST:=$(wildcard */units/*/*.ppu)
+PPULOGLIST:=$(subst .ppu,.log-ppu,$(PPULIST))
+RMPPULOGLIST:=$(subst .ppu,.rm-log-ppu,$(PPULIST))
+.PHONY : ppulogs cleanppulogs testppudump $(RMPPULOGLIST)
+ppulogs : $(PPULOGLIST)
+vpath %.ppu $(ALLPPUDIRS)
+vpath %.log-ppu $(ALLPPUDIRS)
+vpath %.rm-log-ppu $(ALLPPUDIRS)
+%.log-ppu : %.ppu ../compiler/utils/ppudump$(EXEEXT)
+ ..$(PATHSEP)compiler$(PATHSEP)utils$(PATHSEP)ppudump -VA -M $< > $@
+%.rm-log-ppu : %.ppu ../compiler/utils/ppudump$(EXEEXT)
+ -$(RMPROG) $<
+../compiler/utils/ppudump$(EXEEXT):
+ $(MAKE) -C $(COMPILERDIR)/utils ppudump$(EXEEXT)
+ppuinfo :
+ echo PPU list is "$(PPULIST)"
+ echo PPULOG list is "$(PPULOGLIST)"
+cleanppulogs : $(RMPPULOGLIST)
+testppudump :
+ $(MAKE) cleanppulogs ppulogs
diff --git a/packages/Makefile.fpc b/packages/Makefile.fpc
index 5c64e40a60..41b62aa53a 100644
--- a/packages/Makefile.fpc
+++ b/packages/Makefile.fpc
@@ -13,11 +13,11 @@ fpcsubdir=packages
fpcdir=..
[prerules]
-# Translate INSTALL_UNITDIR to fpmake's --unitinstalldir parameter
+# Translate INSTALL_UNITDIR to fpmake's --unitinstalldir parameter
ifdef INSTALL_UNITDIR
FPMAKE_INSTALL_OPT+=--unitinstalldir=$(INSTALL_UNITDIR)
endif
-# Translate OS_TARGET and CPU_TARGET to fpmake's --os and --cpu parameters
+# Translate OS_TARGET and CPU_TARGET to fpmake's --os and --cpu parameters
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
endif
@@ -43,6 +43,8 @@ ifdef UNITDIR_FPMAKE_FPMKUNIT
override COMPILER_FPMAKE_UNITDIR=$(UNITDIR_FPMAKE_FPMKUNIT)
endif
+SUB_FPMAKE_SRCS=$(wildcard */fpmake.pp)
+
[rules]
# Do not pass the Makefile's unit and binary target locations. fpmake uses it's own.
override FPCOPT:=$(filter-out -FU%,$(FPCOPT))
@@ -61,18 +63,19 @@ FPMAKE_OPT+=-sp
endif
.NOTPARALLEL:
+fpmkunit_bootstrap:
+ $(MAKE) -C fpmkunit bootstrap
fpmkunit_clean_bootstrap:
$(MAKE) -C fpmkunit clean_bootstrap
-fpmake: fpmake.pp
- $(MAKE) -C fpmkunit bootstrap
+fpmake$(SRCEXEEXT): fpmake.pp fpmkunit_bootstrap $(SUB_FPMAKE_SRCS) fpmake_add.inc fpmake_proc.inc
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
- $(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+all: fpmake$(SRCEXEEXT)
+ $(LOCALFPMAKE) compile $(FPMAKE_OPT)
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -103,20 +106,63 @@ endif
-$(DEL) fpmake.o
-$(DEL) fpmake.dbg
endif
-install: fpmake
+install: fpmake$(SRCEXEEXT)
ifdef UNIXHier
$(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) $(FPMAKE_INSTALL_OPT)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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) $(FPMAKE_INSTALL_OPT) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) $(FPMAKE_INSTALL_OPT) -ie -fsp 0
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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
+
+#####################################################################
+# PPU testing targets
+#####################################################################
+
+PPULIST:=$(wildcard */units/*/*.ppu)
+PPULOGLIST:=$(subst .ppu,.log-ppu,$(PPULIST))
+RMPPULOGLIST:=$(subst .ppu,.rm-log-ppu,$(PPULIST))
+
+.PHONY : ppulogs cleanppulogs testppudump $(RMPPULOGLIST)
+
+ppulogs : $(PPULOGLIST)
+
+vpath %.ppu $(ALLPPUDIRS)
+vpath %.log-ppu $(ALLPPUDIRS)
+vpath %.rm-log-ppu $(ALLPPUDIRS)
+
+%.log-ppu : %.ppu ../compiler/utils/ppudump$(EXEEXT)
+ ..$(PATHSEP)compiler$(PATHSEP)utils$(PATHSEP)ppudump -VA -M $< > $@
+
+%.rm-log-ppu : %.ppu ../compiler/utils/ppudump$(EXEEXT)
+ -$(RMPROG) $<
+
+
+../compiler/utils/ppudump$(EXEEXT):
+ $(MAKE) -C $(COMPILERDIR)/utils ppudump$(EXEEXT)
+
+ppuinfo :
+ echo PPU list is "$(PPULIST)"
+ echo PPULOG list is "$(PPULOGLIST)"
+
+cleanppulogs : $(RMPPULOGLIST)
+
+testppudump :
+ $(MAKE) cleanppulogs ppulogs
+
diff --git a/packages/Makefile.fpc.fpcmake b/packages/Makefile.fpc.fpcmake
index 38db07ae9f..14784b213b 100644
--- a/packages/Makefile.fpc.fpcmake
+++ b/packages/Makefile.fpc.fpcmake
@@ -13,58 +13,64 @@ dirs_powerpc64_linux=graph
dirs_sparc_linux=graph
dirs_arm_linux=graph
dirs_m68k_linux=graph
-dirs_beos=rtl-console fv fcl-web fastcgi fcl-async ibase mysql ncurses zlib oracle odbc postgres sqlite pthreads imagemagick \
+dirs_beos=rtl-console rtl-unicode fv fcl-web fastcgi fcl-async ibase mysql ncurses zlib oracle odbc postgres sqlite pthreads imagemagick \
gdbint libpng x11 gdbm tcl syslog libcurl opengl cairo bfd aspell svgalib \
imlib utmp fpgtk xforms fftw pcap ggi sdl openssl graph gnome1 gtk1 gtk2 librsvg httpd22 pxlib numlib \
iconvenc
-dirs_haiku=rtl-console fv fcl-web fastcgi fcl-async ibase mysql ncurses zlib oracle odbc postgres sqlite pthreads imagemagick \
+dirs_haiku=rtl-console rtl-unicode fv fcl-web fastcgi fcl-async ibase mysql ncurses zlib oracle odbc postgres sqlite pthreads imagemagick \
gdbint libpng x11 gdbm tcl syslog libcurl opengl cairo bfd aspell svgalib \
imlib utmp fpgtk xforms fftw pcap ggi sdl openssl graph gnome1 gtk1 gtk2 librsvg httpd22 pxlib numlib \
iconvenc
-dirs_freebsd=rtl-console fv fcl-web fastcgi fcl-async ibase mysql ncurses zlib oracle odbc postgres sqlite pthreads imagemagick \
+dirs_freebsd=rtl-console rtl-unicode fv fcl-web fastcgi fcl-async ibase mysql ncurses zlib oracle odbc postgres sqlite pthreads imagemagick \
gdbint libpng x11 gdbm tcl syslog libcurl opengl cairo bfd aspell svgalib \
imlib utmp fpgtk xforms fftw pcap ggi sdl openssl graph gnome1 gtk1 gtk2 librsvg httpd22 pxlib numlib \
users iconvenc gmp fcl-extra libxml
-dirs_darwin=rtl-console fv fcl-web fastcgi fcl-async ibase mysql ncurses zlib oracle odbc postgres sqlite pthreads imagemagick \
+dirs_dragonfly=rtl-console fv fcl-web fastcgi fcl-async ibase mysql ncurses zlib oracle odbc postgres sqlite pthreads imagemagick \
+ gdbint libpng x11 gdbm tcl syslog libcurl opengl cairo bfd aspell svgalib \
+ imlib utmp fpgtk xforms fftw pcap ggi sdl openssl graph gnome1 gtk1 gtk2 librsvg httpd22 pxlib numlib \
+ users iconvenc gmp fcl-extra libxml
+dirs_darwin=rtl-console rtl-unicode fv fcl-web fastcgi fcl-async ibase mysql ncurses zlib oracle odbc postgres sqlite pthreads imagemagick \
libpng gdbm tcl syslog libcurl bfd aspell utmp fftw pcap openssl numlib iconvenc gmp fcl-extra univint iosxlocale
-dirs_iphonesim=rtl-console fv fcl-web fastcgi fcl-async ibase mysql ncurses zlib oracle odbc postgres sqlite pthreads imagemagick \
+dirs_iphonesim=rtl-console rtl-unicode fv fcl-web fastcgi fcl-async ibase mysql ncurses zlib oracle odbc postgres sqlite pthreads imagemagick \
libpng gdbm tcl syslog libcurl bfd aspell utmp fftw pcap openssl numlib iconvenc gmp fcl-extra univint iosxlocale
dirs_i386_darwin=graph sdl opengl x11 cairo gtk1 gtk2 librsvg fpgtk xforms gnome1 httpd22 imlib objcrtl cocoaint opencl openal
dirs_powerpc_darwin=graph sdl opengl x11 cairo gtk1 gtk2 librsvg fpgtk xforms gnome1 httpd22 imlib objcrtl cocoaint
dirs_x86_64_darwin=opengl x11 cairo gtk1 gtk2 librsvg fpgtk xforms gnome1 httpd22 imlib cocoaint objcrtl
dirs_powerpc64_darwin=opengl x11 cairo gtk1 gtk2 librsvg fpgtk xforms gnome1 httpd22 imlib cocoaint objcrtl
-dirs_arm_darwin= httpd22 opengles objcrtl
+dirs_arm_darwin=httpd22 opengles objcrtl
dirs_i386_iphonesim= httpd22 opengles objcrtl
-dirs_solaris=rtl-console fv fcl-web fastcgi fcl-async ibase mysql ncurses zlib oracle odbc postgres sqlite pthreads imagemagick \
+dirs_solaris=rtl-console rtl-unicode fv fcl-web fastcgi fcl-async ibase mysql ncurses zlib oracle odbc postgres sqlite pthreads imagemagick \
libpng x11 gdbm tcl syslog libcurl opengl cairo gtk1 bfd svgalib fcl-extra \
imlib utmp fpgtk xforms fftw pcap ggi openssl gnome1 httpd22 numlib iconvenc gtk2 cairo
-dirs_netbsd=rtl-console fv fcl-web fastcgi fcl-async ibase mysql ncurses zlib oracle odbc postgres sqlite pthreads imagemagick \
+dirs_netbsd=rtl-console rtl-unicode fv fcl-web fastcgi fcl-async ibase mysql ncurses zlib oracle odbc postgres sqlite pthreads imagemagick \
gdbint libpng x11 gdbm tcl syslog libcurl opengl cairo gtk1 gtk2 librsvg bfd aspell svgalib \
imlib utmp fpgtk xforms fftw pcap ggi sdl openssl gnome1 httpd22 pxlib numlib
-dirs_openbsd=rtl-console fv fcl-web fastcgi fcl-async ibase mysql ncurses zlib oracle odbc postgres sqlite pthreads imagemagick \
+dirs_openbsd=rtl-console rtl-unicode fv fcl-web fastcgi fcl-async ibase mysql ncurses zlib oracle odbc postgres sqlite pthreads imagemagick \
gdbint libpng x11 gdbm tcl syslog libcurl opengl cairo gtk1 gtk2 librsvg bfd aspell svgalib \
imlib utmp fpgtk xforms fftw pcap ggi sdl openssl gnome1 httpd22 pxlib numlib
-dirs_linux=rtl-console fv fcl-web fastcgi fcl-async ibase mysql ncurses unzip zlib oracle dbus odbc postgres sqlite pthreads imagemagick \
+dirs_linux=rtl-console rtl-unicode fv fcl-web fastcgi fcl-async ibase mysql ncurses unzip zlib oracle dbus odbc postgres sqlite pthreads imagemagick \
gdbint libpng x11 uuid ldap modplug dts mad gdbm tcl syslog libcurl opengl opencl cairo gtk1 gtk2 librsvg \
a52 bfd aspell svgalib newt cdrom users iconvenc libxml proj4 fcl-extra zorba \
imlib utmp fpgtk openal lua oggvorbis xforms fftw pcap ggi sdl openssl gnome1 httpd22 \
pxlib numlib gmp libsee ptc
-dirs_win32=rtl-console fv winunits-base winunits-jedi fcl-web fastcgi ibase mysql zlib oracle odbc postgres sqlite imagemagick \
+dirs_win32=rtl-console rtl-unicode fv winunits-base winunits-jedi fcl-web fastcgi ibase mysql zlib oracle odbc postgres sqlite imagemagick \
gdbint libpng mad tcl opengl gtk1 gtk2 librsvg a52 cdrom fpgtk openal fftw lua fcl-extra zorba \
oggvorbis sdl openssl graph pcap httpd22 pxlib numlib winceunits cairo libxml \
gmp opencl libsee nvapi ptc aspell
-dirs_win64=rtl-console fv winunits-base winunits-jedi fcl-web fastcgi ibase mysql zlib oracle odbc postgres sqlite imagemagick gdbint \
+dirs_win64=rtl-console rtl-unicode fv winunits-base winunits-jedi fcl-web fastcgi ibase mysql zlib oracle odbc postgres sqlite imagemagick gdbint \
tcl opengl gtk1 fpgtk fftw sdl openssl cdrom httpd22 numlib fcl-extra opencl nvapi ptc graph
-dirs_wince=winceunits httpd22 fcl-web fastcgi tcl fftw unzip zlib sqlite mysql ibase postgres oracle odbc sdl openssl oggvorbis numlib
-dirs_os2=rtl-console fv zlib libpng x11 tcl fpgtk rexx os2units gtk1 imlib
-dirs_emx=rtl-console fv zlib libpng x11 tcl fpgtk rexx os2units gtk1 imlib
-dirs_netware=rtl-console fv zlib unzip
-dirs_netwlibc=rtl-console fv zlib unzip
+dirs_wince=rtl-unicode winceunits httpd22 fcl-web fastcgi tcl fftw unzip zlib sqlite mysql ibase postgres oracle odbc sdl openssl oggvorbis numlib
+dirs_os2=rtl-console rtl-unicode fv zlib libpng x11 tcl fpgtk rexx os2units gtk1 imlib
+dirs_emx=rtl-console rtl-unicode fv zlib libpng x11 tcl fpgtk rexx os2units gtk1 imlib
+dirs_netware=rtl-console rtl-unicode fv zlib unzip
+dirs_netwlibc=rtl-console rtl-unicode fv zlib unzip
dirs_palmos=palmunits
-dirs_go32v2=rtl-console fv graph unzip gdbint
-dirs_amiga=amunits
-dirs_morphos=rtl-console fv opengl sdl
+dirs_go32v2=rtl-console rtl-unicode fv graph unzip gdbint
+dirs_amiga=amunits ami-extra rtl-console rtl-unicode fv
+dirs_morphos=morphunits ami-extra rtl-console rtl-unicode fv opengl sdl
+dirs_aros=arosunits ami-extra rtl-console rtl-unicode fv
dirs_wii=libogcfpc
+dirs_arm_nds=libndsfpc
[install]
fpcpackage=y
@@ -152,7 +158,7 @@ iosxlocale_release: univint_release
iosxlocle_shared: univint_shared
endif
-ifneq ($(findstring $(OS_TARGET),beos haiku freebsd darwin iphonesim solaris netbsd openbsd linux win32 win64 wince),)
+ifneq ($(findstring $(OS_TARGET),beos haiku freebsd darwin iphonesim solaris netbsd openbsd linux win32 win64 wince dragonfly),)
fppkg_all: fpmkunit_all fcl-base_all fcl-xml_all fcl-process_all fcl-net_all paszlib_all fcl-web_all fpmkunit_all
fppkg_debug: fpmkunit_debug fcl-base_debug fcl-xml_debug fcl-process_debug fcl-net_debug paszlib_debug fcl-web_debug fpmkunit_debug
fppkg_smart: fpmkunit_smart fcl-base_smart fcl-xml_smart fcl-process_smart fcl-net_smart paszlib_smart fcl-web_smart fpmkunit_smart
@@ -202,7 +208,7 @@ fcl-registry_smart: fpmkunit_smart fcl-xml_smart
fcl-registry_release: fpmkunit_release fcl-xml_release
fcl-registry_shared: fpmkunit_shared fcl-xml_shared
-ifeq ($(findstring $(OS_TARGET),linux darwin iphonesim freebsd openbsd netbsd solaris),)
+ifeq ($(findstring $(OS_TARGET),linux darwin iphonesim freebsd openbsd netbsd solaris dragonfly),)
fcl-net_all: fpmkunit_all fcl-passrc_all fcl-xml_all
fcl-net_debug: fpmkunit_debug fcl-passrc_debug fcl-xml_debug
fcl-net_smart: fpmkunit_smart fcl-passrc_smart fcl-xml_smart
@@ -246,7 +252,7 @@ fcl-async_smart: fpmkunit_smart
fcl-async_release: fpmkunit_release
fcl-async_shared: fpmkunit_shared
-ifneq ($(findstring $(OS_TARGET),linux freebsd openbsd netbsd win32 beos haiku),)
+ifneq ($(findstring $(OS_TARGET),linux freebsd openbsd netbsd win32 beos haiku dragonfly),)
fcl-db_all: fcl-xml_all fcl-base_all mysql_all ibase_all oracle_all odbc_all postgres_all sqlite_all pxlib_all fcl-json_all fpmkunit_all
fcl-db_debug: fcl-xml_debug fcl-base_debug mysql_debug ibase_debug oracle_debug odbc_debug postgres_debug sqlite_debug pxlib_debug fcl-json_debug fpmkunit_debug
fcl-db_smart: fcl-xml_smart fcl-base_smart mysql_smart ibase_smart oracle_smart odbc_smart postgres_smart sqlite_smart pxlib_smart fcl-json_smart fpmkunit_smart
@@ -280,7 +286,7 @@ libpng_smart: zlib_smart fpmkunit_smart
libpng_release: zlib_release fpmkunit_release
libpng_shared: zlib_shared fpmkunit_shared
-ifneq ($(findstring $(OS_TARGET),linux darwin iphonesim freebsd openbsd netbsd solaris),)
+ifneq ($(findstring $(OS_TARGET),linux darwin iphonesim freebsd openbsd netbsd solaris dragonfly),)
cairo_all: x11_all fcl-image_all fpmkunit_all
cairo_debug: x11_debug fcl-image_debug fpmkunit_debug
cairo_smart: x11_smart fcl-image_smart fpmkunit_smart
@@ -322,7 +328,7 @@ graph_debug: ptc_debug
graph_release: ptc_release
endif
-ifneq ($(findstring $(OS_TARGET),linux darwin iphonesim freebsd openbsd netbsd solaris),)
+ifneq ($(findstring $(OS_TARGET),linux darwin iphonesim freebsd openbsd netbsd solaris dragonfly),)
gtk1_all: x11_all opengl_all fpmkunit_all
gtk1_debug: x11_debug opengl_debug fpmkunit_debug
gtk1_smart: x11_smart opengl_smart fpmkunit_smart
@@ -368,7 +374,7 @@ libpng_smart: zlib_smart
libpng_debug: zlib_debug
libpng_release: zlib_release
-ifneq ($(findstring $(OS_TARGET),linux darwin iphonesim freebsd openbsd netbsd solaris),)
+ifneq ($(findstring $(OS_TARGET),linux darwin iphonesim freebsd openbsd netbsd solaris dragonfly),)
sdl_all: pthreads_all x11_all fpmkunit_all
sdl_shared: pthreads_shared x11_shared fpmkunit_shared
sdl_smart: pthreads_smart x11_smart fpmkunit_smart
@@ -456,7 +462,7 @@ librsvg_smart: gtk2_smart fpmkunit_smart
librsvg_debug: gtk2_debug fpmkunit_debug
librsvg_release: gtk2_release fpmkunit_release
-ifneq ($(findstring $(OS_TARGET),linux freebsd darwin iphonesim beos haiku),)
+ifneq ($(findstring $(OS_TARGET),linux freebsd darwin iphonesim beos haiku dragonfly),)
fcl-xml_all: iconvenc_all
fcl-xml_shared: iconvenc_shared
fcl-xml_smart: iconvenc_smart
diff --git a/packages/a52/Makefile b/packages/a52/Makefile
index 4e6e2d692d..e641e0093f 100644
--- a/packages/a52/Makefile
+++ b/packages/a52/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=a52
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/a52/Makefile.fpc b/packages/a52/Makefile.fpc
index a4e49bda8a..7d5e99bcad 100644
--- a/packages/a52/Makefile.fpc
+++ b/packages/a52/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=a52
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/a52/Makefile.fpc.fpcmake b/packages/a52/Makefile.fpc.fpcmake
index 100b8afb25..0787e145c6 100644
--- a/packages/a52/Makefile.fpc.fpcmake
+++ b/packages/a52/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=a52
-version=2.7.1
+version=3.1.1
[target]
units=a52
diff --git a/packages/a52/fpmake.pp b/packages/a52/fpmake.pp
index d8dafe4427..409efec409 100644
--- a/packages/a52/fpmake.pp
+++ b/packages/a52/fpmake.pp
@@ -25,7 +25,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
T:=P.Targets.AddUnit('a52.pas');
diff --git a/packages/ami-extra/Makefile b/packages/ami-extra/Makefile
new file mode 100644
index 0000000000..b14dc98abc
--- /dev/null
+++ b/packages/ami-extra/Makefile
@@ -0,0 +1,2407 @@
+#
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
+#
+default: all
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
+UNIXs = linux $(BSDs) solaris qnx haiku aix
+LIMIT83fs = go32v2 os2 emx watcom msdos
+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),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
+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 units)),)
+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 units)),)
+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 units)),)
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+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
+ifeq ($(CPU_TARGET),mipsel)
+BINUTILSPREFIX=mipsel-linux-android-
+endif
+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 $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
+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=ami-extra
+override PACKAGE_VERSION=3.1.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
+BATCHEXT=.bat
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+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=
+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
+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-qnx)
+REQUIRE_PACKAGES_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-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),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-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),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-embedded)
+REQUIRE_PACKAGES_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-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-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-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),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-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
+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)
+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)
+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
+ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
+ifeq ($(CPU_TARGET),i386)
+FPCCPUOPT:=-OG2p3
+endif
+ifeq ($(CPU_TARGET),powerpc)
+FPCCPUOPT:=-O1r
+endif
+else
+FPCCPUOPT:=-O2
+endif
+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),)
+ifeq ($(CPU_TARGET),x86_64)
+override FPCOPT+=-Cg
+endif
+endif
+ifdef LINKSHARED
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+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
+override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
+ifneq ($(UNITTARGETDIRPREFIX),)
+override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
+override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
+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: $(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)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
+endif
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
+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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *$(ASMEXT) *_ppas$(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
+ -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+ -$(DEL) *.o *.ppu *.a
+endif
+ -$(DELTREE) *$(SMARTEXT)
+ -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *_ppas$(BATCHEXT)
+ifdef AOUTEXT
+ -$(DEL) *$(AOUTEXT)
+endif
+ifdef DEBUGSYMEXT
+ -$(DEL) *$(DEBUGSYMEXT)
+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))
+ifdef FPMAKEOPT
+FPMAKE_OPT+=$(FPMAKEOPT)
+endif
+FPMAKE_OPT+=--localunitdir=../..
+FPMAKE_OPT+=--globalunitdir=..
+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/packages/ami-extra/Makefile.fpc b/packages/ami-extra/Makefile.fpc
new file mode 100644
index 0000000000..5f6b5eba6d
--- /dev/null
+++ b/packages/ami-extra/Makefile.fpc
@@ -0,0 +1,100 @@
+#
+# Makefile.fpc for running fpmake
+#
+
+[package]
+name=ami-extra
+version=3.1.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))
+# Compose general fpmake-parameters
+ifdef FPMAKEOPT
+FPMAKE_OPT+=$(FPMAKEOPT)
+endif
+FPMAKE_OPT+=--localunitdir=../..
+FPMAKE_OPT+=--globalunitdir=..
+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/packages/ami-extra/Makefile.fpc.fpcmake b/packages/ami-extra/Makefile.fpc.fpcmake
new file mode 100644
index 0000000000..ca5d77f1c6
--- /dev/null
+++ b/packages/ami-extra/Makefile.fpc.fpcmake
@@ -0,0 +1,23 @@
+#
+# Makefile.fpc for Free Pascal Amiga-like Extra Units
+#
+
+[package]
+name=ami-extra
+version=3.1.1
+
+[target]
+units=cliputils
+
+[compiler]
+includedir=src
+sourcedir=src
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[rules]
+.NOTPARALLEL:
diff --git a/packages/ami-extra/README.txt b/packages/ami-extra/README.txt
new file mode 100644
index 0000000000..d98e8d7816
--- /dev/null
+++ b/packages/ami-extra/README.txt
@@ -0,0 +1,9 @@
+This package contains additional utility and helper units
+which are common to Amiga-like systems. Most utility units
+(which are not deprecated) from amunits package should be
+moved in here, and get compiled also for AROS and MorphOS.
+
+This package is not for interface units for 3rd party
+libraries, because those are mostly system specific, or
+contain system specific information (aligment, ABI dependent
+function call declarations, etc).
diff --git a/packages/ami-extra/fpmake.pp b/packages/ami-extra/fpmake.pp
new file mode 100644
index 0000000000..e35e62b884
--- /dev/null
+++ b/packages/ami-extra/fpmake.pp
@@ -0,0 +1,40 @@
+{$ifndef ALLPACKAGES}
+{$mode objfpc}{$H+}
+program fpmake;
+
+uses fpmkunit;
+
+Var
+ P : TPackage;
+ T : TTarget;
+begin
+ With Installer do
+ begin
+{$endif ALLPACKAGES}
+
+ P:=AddPackage('ami-extra');
+
+ P.Author := 'FPC core team';
+ P.License := 'LGPL with modification';
+ P.HomepageURL := 'www.freepascal.org';
+ P.Description := 'ami-extra, additional units for Amiga-like systems';
+
+ P.Dependencies.Add('morphunits',[morphos]);
+ P.Dependencies.Add('arosunits',[aros]);
+ P.Dependencies.Add('amunits',[amiga]);
+
+{$ifdef ALLPACKAGES}
+ P.Directory:=ADirectory;
+{$endif ALLPACKAGES}
+ P.Version:='3.1.1';
+ P.SourcePath.Add('src');
+
+ P.OSes:=AllAmigaLikeOSes;
+
+ T:=P.Targets.AddUnit('cliputils.pas');
+
+{$ifndef ALLPACKAGES}
+ Run;
+ end;
+end.
+{$endif ALLPACKAGES}
diff --git a/packages/ami-extra/src/cliputils.pas b/packages/ami-extra/src/cliputils.pas
new file mode 100644
index 0000000000..d779843257
--- /dev/null
+++ b/packages/ami-extra/src/cliputils.pas
@@ -0,0 +1,127 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ Clipboard helper functions for Amiga-likes
+
+ 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}
+{$H+}
+unit cliputils;
+
+interface
+
+function GetTextFromClip(ClipUnit: Byte): string;
+function PutTextToClip(ClipUnit: Byte; Text: string): Boolean;
+
+implementation
+
+uses
+ exec, clipboard, iffparse;
+
+const
+ ID_FTXT = 1179932756;
+ ID_CHRS = 1128813139;
+
+function GetTextFromClip(ClipUnit: Byte): string;
+var
+ Iff: PIffHandle;
+ Error: LongInt;
+ Cn: PContextNode;
+ Buf: PChar;
+ Len: Integer;
+ Cu: LongInt;
+begin
+ Result := '';
+ Cu := ClipUnit;
+ Iff := AllocIff;
+ if Assigned(Iff) then
+ begin
+ InitIffAsClip(iff);
+ Iff^.iff_Stream := LongWord(OpenClipboard(Cu));
+ if Iff^.iff_Stream<>0 then
+ begin
+ if OpenIff(Iff, IFFF_READ) = 0 then
+ begin
+ if StopChunk(iff, ID_FTXT, ID_CHRS) = 0 then
+ begin
+ while True do
+ begin
+ Error := ParseIff(iff, IFFPARSE_SCAN);
+ if (Error <> 0) and (Error <> IFFERR_EOC) then
+ Break;
+ Cn := CurrentChunk(Iff);
+ if not Assigned(Cn) then
+ begin
+ Continue;
+ end;
+ Len := Cn^.cn_Size;
+ if (Cn^.cn_Type = ID_FTXT) and (Cn^.cn_ID = ID_CHRS) and (Len > 0) then
+ begin
+ GetMem(Buf, Len + 1);
+ FillChar(Buf^, Len + 1, #0);
+ try
+ ReadChunkBytes(Iff, Buf, Len);
+ Result := Result + string(Buf);
+ finally
+ FreeMem(Buf);
+ end;
+ end;
+ end;
+ end;
+ CloseIff(Iff);
+ end;
+ CloseClipboard(PClipBoardHandle(iff^.iff_Stream));
+ end;
+ FreeIFF(Iff);
+ end;
+end;
+
+function PutTextToClip(ClipUnit: Byte; Text: string): Boolean;
+var
+ Iff: PIffHandle;
+ TText: string;
+ Len: Integer;
+begin
+ Result := False;
+ Iff := AllocIff;
+ if Assigned(Iff) then
+ begin
+ InitIffAsClip(iff);
+ Iff^.iff_Stream := LongWord(OpenClipboard(ClipUnit));
+ if Iff^.iff_Stream <> 0 then
+ begin
+ if OpenIff(Iff, IFFF_WRITE) = 0 then
+ begin
+ if PushChunk(iff, ID_FTXT, ID_FORM, IFFSIZE_UNKNOWN) = 0 then
+ begin
+ if PushChunk(iff, 0, ID_CHRS, IFFSIZE_UNKNOWN) = 0 then
+ begin
+ Len := Length(Text);
+ TText := Text + #0;
+ Result := WriteChunkBytes(iff, @(TText[1]), Len) = len;
+ PopChunk(iff);
+ end;
+ PopChunk(iff);
+ end;
+ CloseIff(iff);
+ end;
+ CloseClipboard(PClipBoardHandle(iff^.iff_Stream));
+ end;
+ FreeIFF(Iff);
+ end;
+end;
+
+begin
+{$IF DEFINED(MORPHOS)}
+ InitIFFParseLibrary;
+{$ENDIF}
+end.
diff --git a/packages/amunits/Makefile b/packages/amunits/Makefile
index 7708e2f5f4..4724a8d49b 100644
--- a/packages/amunits/Makefile
+++ b/packages/amunits/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=amunits
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/amunits/Makefile.fpc b/packages/amunits/Makefile.fpc
index 9f692c3593..5279981a38 100644
--- a/packages/amunits/Makefile.fpc
+++ b/packages/amunits/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=amunits
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/amunits/Makefile.fpc.fpcmake b/packages/amunits/Makefile.fpc.fpcmake
index c276da741e..4dca390b00 100644
--- a/packages/amunits/Makefile.fpc.fpcmake
+++ b/packages/amunits/Makefile.fpc.fpcmake
@@ -4,21 +4,21 @@
[package]
name=amunits
-version=2.7.1
+version=3.1.1
[target]
-units= msgbox amigautils wbargs vartags pastoc tagsarray systemvartags \
- deadkeys consoleio pcq longarray linklist hisoft timerutils easyasl \
- doublebuffer intuition graphics amigalib nonvolatile iffparse hardware \
+units= amsgbox amigautils wbargs vartags pastoc tagsarray systemvartags deadkeys \
+ deadkeys consoleio pcq longarray linklist hisoft exec timerutils easyasl \
+ doublebuffer intuition agraphics amigalib nonvolatile iffparse hardware \
expansion diskfont conunit amigados configvars keyboard bootblock icon \
- cd realtime rexx translator scsidisk lowlevel configregs prefs parallel \
+ cd realtime rexx translator scsidisk lowlevel configregs prefs parallel \
gadtools prtgfx romboot_base trackdisk expansionbase amigaguide \
amigaprinter bullet clipboard keymap utility timer workbench colorwheel \
prtbase console locale tapedeck serial gameport gradientslider input \
audio datatypes asl commodities hardblocks layers inputevent identify \
gtlayout tritonmacros render mui picasso96api guigfx preferences \
xadmaster cybergraphics ptreplay reqtools amarquee ttengine triton zlib \
- mysticview ahi lucyplay ahi_sub
+ mysticview ahi lucyplay ahi_sub
[compiler]
includedir=src
diff --git a/packages/amunits/examples/asltest.pas b/packages/amunits/examples/asltest.pas
index a48ed034fd..169ffc1702 100644
--- a/packages/amunits/examples/asltest.pas
+++ b/packages/amunits/examples/asltest.pas
@@ -1,6 +1,6 @@
PROGRAM AslTest;
-uses Exec, Utility, Asl, msgbox, systemvartags;
+uses Exec, Utility, Asl, amsgbox, systemvartags;
{
@@ -32,7 +32,7 @@ BEGIN
TAG_DONE]);
IF fr <> nil THEN BEGIN
- dummy := AslRequest(fr,NIL);
+ dummy := AslRequest(fr,NIL) <> LFALSE;
if dummy then begin
MessageBox('Test of Asl',
' The path is :' +
diff --git a/packages/amunits/examples/bezier.pas b/packages/amunits/examples/bezier.pas
index 6650ac4de8..2603469a91 100644
--- a/packages/amunits/examples/bezier.pas
+++ b/packages/amunits/examples/bezier.pas
@@ -35,7 +35,7 @@ Program Bezier;
nils.sjoholm@mailbox.swipnet.se
}
-uses exec, intuition, graphics, utility,pastoc, systemvartags;
+uses exec, intuition, agraphics, utility,pastoc, systemvartags;
type
PointRec = packed Record
@@ -69,7 +69,7 @@ end;
Procedure DrawLine;
begin
- Move(rp, Trunc(Points[PointCount].X), Trunc(Points[PointCount].Y));
+ GFXMove(rp, Trunc(Points[PointCount].X), Trunc(Points[PointCount].Y));
Draw(rp, LastX, LastY);
end;
@@ -201,7 +201,7 @@ Procedure DrawCurve;
var
i : Integer;
begin
- Move(rp, Trunc(Points[1].X), Trunc(Points[1].Y));
+ GfxMove(rp, Trunc(Points[1].X), Trunc(Points[1].Y));
for i := 2 to PointCount do
Draw(rp, Round(Points[i].X), Round(Points[i].Y));
end;
@@ -248,10 +248,10 @@ begin
IF w=NIL THEN CleanUpAndDie;
rp := w^.RPort;
- Move(rp, 252, 30);
- GText(rp, pas2c('Enter points by pressing the left mouse button'), 46);
- Move(rp, 252, 40);
- GText(rp, pas2c('Double click on the last point to begin drawing'), 47);
+ GfxMove(rp, 252, 30);
+ GfxText(rp, pas2c('Enter points by pressing the left mouse button'), 46);
+ GfxMove(rp, 252, 40);
+ GfxText(rp, pas2c('Double click on the last point to begin drawing'), 47);
repeat
GetPoints; { Both these routines will quit if }
DrawBezier; { the window is closed. }
diff --git a/packages/amunits/examples/bezier2.pas b/packages/amunits/examples/bezier2.pas
index 6a6bb35c35..c067cb07e0 100644
--- a/packages/amunits/examples/bezier2.pas
+++ b/packages/amunits/examples/bezier2.pas
@@ -26,7 +26,7 @@ Program Bezier;
nils.sjoholm@mailbox.swipnet.se
}
-uses exec, intuition, graphics, utility, pastoc, systemvartags;
+uses exec, intuition, agraphics, utility, pastoc, systemvartags;
type
PointRec = Record
@@ -72,7 +72,7 @@ end;
Procedure DrawLine;
begin
- Move(rp, Points[PointCount].X, Points[PointCount].Y);
+ GfxMove(rp, Points[PointCount].X, Points[PointCount].Y);
Draw(rp, LastX, LastY);
end;
@@ -133,10 +133,10 @@ var
end;
begin
- Move(rp, 252, 30);
- GText(rp, 'Enter points by pressing the left mouse button', 46);
- Move(rp, 252, 40);
- GText(rp, 'Double click on the last point to begin drawing', 47);
+ GfxMove(rp, 252, 30);
+ GfxText(rp, 'Enter points by pressing the left mouse button', 46);
+ GfxMove(rp, 252, 40);
+ GfxText(rp, 'Double click on the last point to begin drawing', 47);
ModifyIDCMP(w, IDCMP_CLOSEWINDOW or IDCMP_MOUSEBUTTONS or IDCMP_MOUSEMOVE);
SetDrMd(rp, COMPLEMENT);
PointCount := 0;
@@ -223,7 +223,7 @@ begin
increment := 0.01; { This could be a function of PointCount }
t := 0.0;
tprime := 1.0;
- Move(rp, Trunc(BezierX(Pred(PointCount), 1)),
+ GfxMove(rp, Trunc(BezierX(Pred(PointCount), 1)),
Trunc(BezierY(Pred(PointCount), 1)));
t := t + increment;
tprime := 1.0 - t;
diff --git a/packages/amunits/examples/easygadtools.pas b/packages/amunits/examples/easygadtools.pas
index 675ec2fdd4..2aff40b2ee 100644
--- a/packages/amunits/examples/easygadtools.pas
+++ b/packages/amunits/examples/easygadtools.pas
@@ -15,7 +15,7 @@ PROGRAM EasyGadtools;
}
-USES Intuition, Exec, Graphics, GadTools, Utility, pastoc,systemvartags;
+USES Intuition, Exec, AGraphics, GadTools, Utility, pastoc,systemvartags;
CONST
diff --git a/packages/amunits/examples/getfontasl.pas b/packages/amunits/examples/getfontasl.pas
index 9454ec73e3..790e4baae1 100644
--- a/packages/amunits/examples/getfontasl.pas
+++ b/packages/amunits/examples/getfontasl.pas
@@ -1,6 +1,6 @@
PROGRAM GetFontAsltest;
-uses easyasl,msgbox,amigautils;
+uses easyasl,amsgbox,amigautils;
{
An example to get a font with easyasl.
diff --git a/packages/amunits/examples/imagegadget.pas b/packages/amunits/examples/imagegadget.pas
index 166a118a0f..feb11af070 100644
--- a/packages/amunits/examples/imagegadget.pas
+++ b/packages/amunits/examples/imagegadget.pas
@@ -21,7 +21,7 @@ PROGRAM ImageGadget;
nils.sjoholm@mailbox.swipnet.se
}
-USES Intuition, Exec, Graphics, GadTools, Utility, systemvartags,pastoc;
+USES Intuition, Exec, AGraphics, GadTools, Utility, systemvartags,pastoc;
CONST
@@ -289,6 +289,7 @@ end;
FUNCTION EasyReq(wp : pWindow; title,body,gad : PChar) : Longint;
VAR
es : tEasyStruct;
+ Res: LongWord;
BEGIN
es.es_StructSize:=SizeOf(tEasyStruct);
es.es_Flags:=0;
@@ -296,7 +297,7 @@ BEGIN
es.es_TextFormat:=body;
es.es_GadgetFormat:=gad;
- EasyReq := EasyRequestArgs(wp,@es,0,NIL);
+ EasyReq := EasyRequestArgs(wp,@es,@Res,NIL);
END;
PROCEDURE CleanUp(why : PChar; rc : BYTE);
diff --git a/packages/amunits/examples/moire.pas b/packages/amunits/examples/moire.pas
index e1c5c14352..2499618cd4 100644
--- a/packages/amunits/examples/moire.pas
+++ b/packages/amunits/examples/moire.pas
@@ -21,7 +21,7 @@ Program Moire;
nils.sjoholm@mailbox.swipnet.se
}
-uses Exec, Intuition, Graphics, Utility, systemvartags;
+uses Exec, Intuition, AGraphics, Utility, systemvartags;
const
@@ -47,7 +47,7 @@ begin
while x < Pred(Width - BorderRight - BorderLeft) do begin
Stop := Pred(Width - BorderRight);
SetAPen(RP, Pen);
- Move(RP, Succ(x + BorderLeft), BorderTop);
+ GfxMove(RP, Succ(x + BorderLeft), BorderTop);
Draw(RP, Stop - x, Pred(Height - BorderBottom));
Pen := (Pen + 1) mod 4;
Inc(x);
@@ -59,7 +59,7 @@ begin
while x < Pred(Height - BorderBottom - BorderTop) do begin
Stop := Pred(Height - BorderBottom);
SetAPen(RP, Pen);
- Move(RP, Pred(Width - BorderRight), Succ(x + BorderTop));
+ GfxMove(RP, Pred(Width - BorderRight), Succ(x + BorderTop));
Draw(RP, Succ(BorderLeft), Stop - x);
Pen := (Pen + 1) mod 4;
Inc(x);
diff --git a/packages/amunits/examples/otherlibs/bestmodeid.pas b/packages/amunits/examples/otherlibs/bestmodeid.pas
index 79765b5e73..b47ed77d0c 100644
--- a/packages/amunits/examples/otherlibs/bestmodeid.pas
+++ b/packages/amunits/examples/otherlibs/bestmodeid.pas
@@ -17,7 +17,7 @@ PROGRAM BestModeID;
nils.sjoholm@mailbox.swipnet.se
}
-uses exec, amigados, graphics, picasso96api, utility;
+uses exec, amigados, agraphics, picasso96api, utility;
Const
diff --git a/packages/amunits/examples/otherlibs/gadgetdemo.pas b/packages/amunits/examples/otherlibs/gadgetdemo.pas
index 11e9236c34..07ffbc8adb 100644
--- a/packages/amunits/examples/otherlibs/gadgetdemo.pas
+++ b/packages/amunits/examples/otherlibs/gadgetdemo.pas
@@ -125,7 +125,7 @@ ProjectStart;
SetTRTag(TRAT_Value,5);
SetTRTag(TRAT_ID,ScrollGadID);
Space;
- ClippedTextBoxMW('5',ScrollGadTextID,2);
+ ClippedTextBoxMW(PChar('5'),ScrollGadTextID,2);
EndLine;
Space;
BeginLine;
diff --git a/packages/amunits/examples/otherlibs/gttest.pas b/packages/amunits/examples/otherlibs/gttest.pas
index 7e1beacf40..afaaf914bc 100644
--- a/packages/amunits/examples/otherlibs/gttest.pas
+++ b/packages/amunits/examples/otherlibs/gttest.pas
@@ -18,7 +18,7 @@ program gttest;
}
-uses intuition, exec, gadtools, utility, gtlayout, msgbox;
+uses intuition, exec, gadtools, utility, gtlayout, amsgbox;
const
ltrue : longint = 1;
diff --git a/packages/amunits/examples/otherlibs/openpip.pas b/packages/amunits/examples/otherlibs/openpip.pas
index 964dc27992..4555be90d1 100644
--- a/packages/amunits/examples/otherlibs/openpip.pas
+++ b/packages/amunits/examples/otherlibs/openpip.pas
@@ -17,7 +17,7 @@ Program OpenPIP;
nils.sjoholm@mailbox.swipnet.se
}
-uses exec, amigados, graphics, intuition, picasso96api, utility,strings;
+uses exec, amigados, agraphics, intuition, picasso96api, utility,strings;
Const
diff --git a/packages/amunits/examples/otherlibs/openscreen.pas b/packages/amunits/examples/otherlibs/openscreen.pas
index c324522cde..f4df90085e 100644
--- a/packages/amunits/examples/otherlibs/openscreen.pas
+++ b/packages/amunits/examples/otherlibs/openscreen.pas
@@ -20,7 +20,7 @@ PROGRAM OpenScreen;
}
-uses exec, amigados, graphics, intuition, picasso96api, utility,systemvartags;
+uses exec, amigados, agraphics, intuition, picasso96api, utility,systemvartags;
Const
diff --git a/packages/amunits/examples/otherlibs/p96checkboards.pas b/packages/amunits/examples/otherlibs/p96checkboards.pas
index de243871bb..ba0490640a 100644
--- a/packages/amunits/examples/otherlibs/p96checkboards.pas
+++ b/packages/amunits/examples/otherlibs/p96checkboards.pas
@@ -17,7 +17,7 @@ Program P96CheckBoards;
}
-uses exec, amigados, graphics, picasso96api,utility,amigalib;
+uses exec, amigados, agraphics, picasso96api,utility,amigalib;
var
NumBoards : Longint;
diff --git a/packages/amunits/examples/otherlibs/requestmodeid.pas b/packages/amunits/examples/otherlibs/requestmodeid.pas
index 2765342b4e..1a68b14144 100644
--- a/packages/amunits/examples/otherlibs/requestmodeid.pas
+++ b/packages/amunits/examples/otherlibs/requestmodeid.pas
@@ -17,7 +17,7 @@ Program RequestModeID;
nils.sjoholm@mailbox.swipnet.se
}
-uses exec, amigados, graphics, intuition, picasso96api, utility;
+uses exec, amigados, agraphics, intuition, picasso96api, utility;
Const
template : pchar = 'Width=W/N,Height=H/N,Depth=D/N';
diff --git a/packages/amunits/examples/otherlibs/rtdemo.pas b/packages/amunits/examples/otherlibs/rtdemo.pas
index 212a0c6f89..400928ea23 100644
--- a/packages/amunits/examples/otherlibs/rtdemo.pas
+++ b/packages/amunits/examples/otherlibs/rtdemo.pas
@@ -41,7 +41,7 @@ VAR
filename : PChar;
dummy : PChar;
dummy2 : PChar;
- longnum : Longint;
+ longnum : Longword;
ret : Longint;
color : Longint;
undertag : Array [0..1] of tTagItem;
@@ -204,9 +204,9 @@ BEGIN
rtEZRequestA(dummy,'_Great|_Fantastic|_Swell|Oh _Boy',NIL,NIL,@undertag);
rtEZRequestA('You may also use C-style formatting codes in the body text.' + #10 +
- 'Like this:' + #10 + + #10 +
- 'The number %%ld is written %%s. will give:' + #10 + + #10 +
- 'The number %ld is written %s.' + #10 + + #10 +
+ 'Like this:' + #10 + #10 +
+ 'The number %%ld is written %%s. will give:' + #10 + #10 +
+ 'The number %ld is written %s.' + #10 + #10 +
'if you also pass ''5'' and ''five'' to rtEZRequestA().',
'_Proceed',NIL,readinlongs([5,'five']),@undertag);
diff --git a/packages/amunits/examples/otherlibs/writetruecolordata.pas b/packages/amunits/examples/otherlibs/writetruecolordata.pas
index cc7fe626ab..ae31bbb67b 100644
--- a/packages/amunits/examples/otherlibs/writetruecolordata.pas
+++ b/packages/amunits/examples/otherlibs/writetruecolordata.pas
@@ -17,7 +17,7 @@ Program WriteTrueColorData;
nils.sjoholm@mailbox.swipnet.se
}
-uses exec, amigados, intuition, graphics, picasso96api, utility,systemvartags;
+uses exec, amigados, intuition, agraphics, picasso96api, utility,systemvartags;
Const
diff --git a/packages/amunits/examples/penshare.pas b/packages/amunits/examples/penshare.pas
index 7eb37e9c28..b3b412cf94 100644
--- a/packages/amunits/examples/penshare.pas
+++ b/packages/amunits/examples/penshare.pas
@@ -32,7 +32,7 @@ Program PenShare;
nils.sjoholm@mailbox.swipnet.se
}
-uses exec, graphics, intuition, utility,systemvartags;
+uses exec, agraphics, intuition, utility,systemvartags;
VAR RP : pRastPort;
Win : pWindow;
@@ -87,16 +87,16 @@ Begin
CleanExit('Please set more colors for Workbench.',10);
SetAPen(RP,Colors[0]);
- Move(RP,40,40);
- GText(RP,'Red',3);
+ GfxMove(RP,40,40);
+ GfxText(RP,'Red',3);
SetAPen(RP,Colors[1]);
- Move(RP,40,60);
- GText(RP,'Green',5);
+ GfxMove(RP,40,60);
+ GfxText(RP,'Green',5);
SetAPen(RP,Colors[2]);
- Move(RP,40,80);
- GText(RP,'Blue',4);
+ GfxMove(RP,40,80);
+ GfxText(RP,'Blue',4);
Msg:=WaitPort(Win^.UserPort);
Msg:=GetMsg(Win^.UserPort);
diff --git a/packages/amunits/examples/snow.pas b/packages/amunits/examples/snow.pas
index 8f61f95dd0..a01ea9c01d 100644
--- a/packages/amunits/examples/snow.pas
+++ b/packages/amunits/examples/snow.pas
@@ -23,7 +23,7 @@ takes a long time, and frankly doesn't look as good as level 5. }
}
-uses exec,intuition,graphics,utility,systemvartags;
+uses exec,intuition,agraphics,utility,systemvartags;
@@ -145,7 +145,7 @@ begin
for n := 0 to nc do
sn[n] := 0;
- Move(rp, trunc(x), trunc(y));
+ GfxMove(rp, trunc(x), trunc(y));
repeat
d := 0;
diff --git a/packages/amunits/examples/sortdemo.pas b/packages/amunits/examples/sortdemo.pas
index 66816576dc..e94aa1c997 100644
--- a/packages/amunits/examples/sortdemo.pas
+++ b/packages/amunits/examples/sortdemo.pas
@@ -38,7 +38,7 @@ PROGRAM SortDemo;
so you have to wait until it's finished.
}
-uses Exec, Intuition, Graphics, Utility, GadTools, msgbox,systemvartags;
+uses Exec, Intuition, AGraphics, Utility, GadTools, amsgbox,systemvartags;
CONST
@@ -550,7 +550,7 @@ VAR
MenuNumber : Integer;
ItemNumber : Integer;
SubItemNumber : Integer;
- t0,t1,l : Longint;
+ t0,t1,l : Longword;
begin
if IMessage.Code = MENUNULL then
diff --git a/packages/amunits/examples/stars.pas b/packages/amunits/examples/stars.pas
index 48f36a1087..4075730a5a 100644
--- a/packages/amunits/examples/stars.pas
+++ b/packages/amunits/examples/stars.pas
@@ -1,7 +1,7 @@
PROGRAM Sterne;
-uses Exec, Graphics, Intuition, Utility, systemvartags;
+uses Exec, AGraphics, Intuition, Utility, systemvartags;
diff --git a/packages/amunits/examples/talk2boopsi.pas b/packages/amunits/examples/talk2boopsi.pas
index 826a3edbc2..28de3a59d6 100644
--- a/packages/amunits/examples/talk2boopsi.pas
+++ b/packages/amunits/examples/talk2boopsi.pas
@@ -28,7 +28,7 @@ make them }
}
-uses Exec, Intuition, Utility,msgbox, systemvartags;
+uses Exec, Intuition, Utility,amsgbox, systemvartags;
diff --git a/packages/amunits/examples/wbtest.pas b/packages/amunits/examples/wbtest.pas
index 5ffa4dd96a..8c77fed78f 100644
--- a/packages/amunits/examples/wbtest.pas
+++ b/packages/amunits/examples/wbtest.pas
@@ -14,7 +14,7 @@ program wbtest;
nils.sjoholm@mailbox.swipnet.se
}
-uses wbargs, msgbox;
+uses wbargs, amsgbox;
var
i : integer;
diff --git a/packages/amunits/fpmake.pp b/packages/amunits/fpmake.pp
index 209a07816c..1517712b40 100644
--- a/packages/amunits/fpmake.pp
+++ b/packages/amunits/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Nils Sjoholm';
P.License := 'LGPL with modification';
@@ -33,7 +33,7 @@ begin
P.SourcePath.Add('src/utilunits');
P.IncludePath.Add('src');
- T:=P.Targets.AddUnit('msgbox.pas');
+ T:=P.Targets.AddUnit('amsgbox.pas');
T:=P.Targets.AddUnit('amigautils.pas');
T:=P.Targets.AddUnit('wbargs.pas');
T:=P.Targets.AddUnit('vartags.pas');
@@ -49,8 +49,9 @@ begin
T:=P.Targets.AddUnit('timerutils.pas');
T:=P.Targets.AddUnit('easyasl.pas');
T:=P.Targets.AddUnit('doublebuffer.pas');
+ T:=P.Targets.AddUnit('exec.pas');
T:=P.Targets.AddUnit('intuition.pas');
- T:=P.Targets.AddUnit('graphics.pas');
+ T:=P.Targets.AddUnit('agraphics.pas');
T:=P.Targets.AddUnit('amigalib.pas');
T:=P.Targets.AddUnit('nonvolatile.pas');
T:=P.Targets.AddUnit('iffparse.pas');
@@ -60,7 +61,7 @@ begin
T:=P.Targets.AddUnit('conunit.pas');
T:=P.Targets.AddUnit('amigados.pas');
T:=P.Targets.AddUnit('configvars.pas');
- T:=P.Targets.AddUnit('keyboard.pas');
+ T:=P.Targets.AddUnit('akeyboard.pas');
T:=P.Targets.AddUnit('bootblock.pas');
T:=P.Targets.AddUnit('icon.pas');
T:=P.Targets.AddUnit('cd.pas');
diff --git a/packages/amunits/src/coreunits/graphics.pas b/packages/amunits/src/coreunits/agraphics.pas
index 168913cfaf..8c9cf3f4cb 100644
--- a/packages/amunits/src/coreunits/graphics.pas
+++ b/packages/amunits/src/coreunits/agraphics.pas
@@ -55,13 +55,9 @@
nils.sjoholm@mailbox.swipnet.se
}
+{$PACKRECORDS 2}
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
-
-unit graphics;
+unit agraphics;
INTERFACE
@@ -2240,169 +2236,169 @@ const
var
GfxBase : pLibrary;
-PROCEDURE AddAnimOb(anOb : pAnimOb; anKey : ppAnimOb; rp : pRastPort);
-PROCEDURE AddBob(bob : pBob; rp : pRastPort);
-PROCEDURE AddFont(textFont : pTextFont);
-PROCEDURE AddVSprite(vSprite : pVSprite; rp : pRastPort);
-FUNCTION AllocBitMap(sizex : ULONG; sizey : ULONG; depth : ULONG; flags : ULONG;const friend_bitmap : pBitMap) : pBitMap;
-FUNCTION AllocDBufInfo(vp : pViewPort) : pDBufInfo;
-FUNCTION AllocRaster(width : ULONG; height : ULONG) : pCHAR;
-FUNCTION AllocSpriteDataA(const bm : pBitMap;const tags : pTagItem) : pExtSprite;
-PROCEDURE AndRectRegion(region : pRegion;const rectangle : pRectangle);
-FUNCTION AndRegionRegion(const srcRegion : pRegion; destRegion : pRegion) : BOOLEAN;
-PROCEDURE Animate(anKey : ppAnimOb; rp : pRastPort);
-FUNCTION AreaDraw(rp : pRastPort; x : LONGINT; y : LONGINT) : LONGINT;
-FUNCTION AreaEllipse(rp : pRastPort; xCenter : LONGINT; yCenter : LONGINT; a : LONGINT; b : LONGINT) : LONGINT;
-FUNCTION AreaEnd(rp : pRastPort) : LONGINT;
-FUNCTION AreaMove(rp : pRastPort; x : LONGINT; y : LONGINT) : LONGINT;
-PROCEDURE AskFont(rp : pRastPort; textAttr : pTextAttr);
-FUNCTION AskSoftStyle(rp : pRastPort) : ULONG;
-FUNCTION AttachPalExtra(cm : pColorMap; vp : pViewPort) : LONGINT;
-FUNCTION AttemptLockLayerRom(layer : pLayer) : BOOLEAN;
-FUNCTION BestModeIDA(const tags : pTagItem) : ULONG;
-PROCEDURE BitMapScale(bitScaleArgs : pBitScaleArgs);
-FUNCTION BltBitMap(const srcBitMap : pBitMap; xSrc : LONGINT; ySrc : LONGINT; destBitMap : pBitMap; xDest : LONGINT; yDest : LONGINT; xSize : LONGINT; ySize : LONGINT; minterm : ULONG; mask : ULONG; tempA : pCHAR) : LONGINT;
-PROCEDURE BltBitMapRastPort(const srcBitMap : pBitMap; xSrc : LONGINT; ySrc : LONGINT; destRP : pRastPort; xDest : LONGINT; yDest : LONGINT; xSize : LONGINT; ySize : LONGINT; minterm : ULONG);
-PROCEDURE BltClear(memBlock : pCHAR; byteCount : ULONG; flags : ULONG);
-PROCEDURE BltMaskBitMapRastPort(const srcBitMap : pBitMap; xSrc : LONGINT; ySrc : LONGINT; destRP : pRastPort; xDest : LONGINT; yDest : LONGINT; xSize : LONGINT; ySize : LONGINT; minterm : ULONG;const bltMask : pCHAR);
-PROCEDURE BltPattern(rp : pRastPort;const mask : pCHAR; xMin : LONGINT; yMin : LONGINT; xMax : LONGINT; yMax : LONGINT; maskBPR : ULONG);
-PROCEDURE BltTemplate(const source : pCHAR; xSrc : LONGINT; srcMod : LONGINT; destRP : pRastPort; xDest : LONGINT; yDest : LONGINT; xSize : LONGINT; ySize : LONGINT);
-FUNCTION CalcIVG(v : pView; vp : pViewPort) : WORD;
-PROCEDURE CBump(copList : pUCopList);
-FUNCTION ChangeExtSpriteA(vp : pViewPort; oldsprite : pExtSprite; newsprite : pExtSprite;const tags : pTagItem) : LONGINT;
-PROCEDURE ChangeSprite(vp : pViewPort; sprite : pSimpleSprite; newData : pWORD);
-PROCEDURE ChangeVPBitMap(vp : pViewPort; bm : pBitMap; db : pDBufInfo);
-PROCEDURE ClearEOL(rp : pRastPort);
-FUNCTION ClearRectRegion(region : pRegion;const rectangle : pRectangle) : BOOLEAN;
-PROCEDURE ClearRegion(region : pRegion);
-PROCEDURE ClearScreen(rp : pRastPort);
-PROCEDURE ClipBlit(srcRP : pRastPort; xSrc : LONGINT; ySrc : LONGINT; destRP : pRastPort; xDest : LONGINT; yDest : LONGINT; xSize : LONGINT; ySize : LONGINT; minterm : ULONG);
-PROCEDURE CloseFont(textFont : pTextFont);
-FUNCTION CloseMonitor(monitorSpec : pMonitorSpec) : BOOLEAN;
-PROCEDURE CMove(copList : pUCopList; destination : POINTER; data : LONGINT);
-FUNCTION CoerceMode(vp : pViewPort; monitorid : ULONG; flags : ULONG) : ULONG;
-PROCEDURE CopySBitMap(layer : pLayer);
-PROCEDURE CWait(copList : pUCopList; v : LONGINT; h : LONGINT);
-PROCEDURE DisownBlitter;
-PROCEDURE DisposeRegion(region : pRegion);
-PROCEDURE DoCollision(rp : pRastPort);
-PROCEDURE Draw(rp : pRastPort; x : LONGINT; y : LONGINT);
-PROCEDURE DrawEllipse(rp : pRastPort; xCenter : LONGINT; yCenter : LONGINT; a : LONGINT; b : LONGINT);
-PROCEDURE DrawGList(rp : pRastPort; vp : pViewPort);
-PROCEDURE EraseRect(rp : pRastPort; xMin : LONGINT; yMin : LONGINT; xMax : LONGINT; yMax : LONGINT);
-FUNCTION ExtendFont(font : pTextFont;const fontTags : pTagItem) : ULONG;
-FUNCTION FindColor(cm : pColorMap; r : ULONG; g : ULONG; b : ULONG; maxcolor : LONGINT) : LONGINT;
-FUNCTION FindDisplayInfo(displayID : ULONG) : POINTER;
-FUNCTION Flood(rp : pRastPort; mode : ULONG; x : LONGINT; y : LONGINT) : BOOLEAN;
-PROCEDURE FontExtent(const font : pTextFont; fontExtent : pTextExtent);
-PROCEDURE FreeBitMap(bm : pBitMap);
-PROCEDURE FreeColorMap(colorMap : pColorMap);
-PROCEDURE FreeCopList(copList : pCopList);
-PROCEDURE FreeCprList(cprList : pcprlist);
-PROCEDURE FreeDBufInfo(dbi : pDBufInfo);
-PROCEDURE FreeGBuffers(anOb : pAnimOb; rp : pRastPort; flag : LONGINT);
-PROCEDURE FreeRaster(p : pCHAR; width : ULONG; height : ULONG);
-PROCEDURE FreeSprite(num : LONGINT);
-PROCEDURE FreeSpriteData(sp : pExtSprite);
-PROCEDURE FreeVPortCopLists(vp : pViewPort);
-FUNCTION GetAPen(rp : pRastPort) : ULONG;
-FUNCTION GetBitMapAttr(const bm : pBitMap; attrnum : ULONG) : ULONG;
-FUNCTION GetBPen(rp : pRastPort) : ULONG;
-FUNCTION GetColorMap(entries : LONGINT) : pColorMap;
-FUNCTION GetDisplayInfoData(const handle : POINTER; buf : pCHAR; size : ULONG; tagID : ULONG; displayID : ULONG) : ULONG;
-FUNCTION GetDrMd(rp : pRastPort) : ULONG;
-FUNCTION GetExtSpriteA(ss : pExtSprite;const tags : pTagItem) : LONGINT;
-FUNCTION GetGBuffers(anOb : pAnimOb; rp : pRastPort; flag : LONGINT) : BOOLEAN;
-FUNCTION GetOutlinePen(rp : pRastPort) : ULONG;
-PROCEDURE GetRGB32(const cm : pColorMap; firstcolor : ULONG; ncolors : ULONG; table : pulong);
-FUNCTION GetRGB4(colorMap : pColorMap; entry : LONGINT) : ULONG;
-PROCEDURE GetRPAttrsA(const rp : pRastPort;const tags : pTagItem);
-FUNCTION GetSprite(sprite : pSimpleSprite; num : LONGINT) : smallint;
-FUNCTION GetVPModeID(const vp : pViewPort) : LONGINT;
-PROCEDURE GfxAssociate(const associateNode : POINTER; gfxNodePtr : POINTER);
-PROCEDURE GfxFree(gfxNodePtr : POINTER);
-FUNCTION GfxLookUp(const associateNode : POINTER) : POINTER;
-FUNCTION GfxNew(gfxNodeType : ULONG) : POINTER;
-PROCEDURE InitArea(areaInfo : pAreaInfo; vectorBuffer : POINTER; maxVectors : LONGINT);
-PROCEDURE InitBitMap(bitMap : pBitMap; depth : LONGINT; width : LONGINT; height : LONGINT);
-PROCEDURE InitGels(head : pVSprite; tail : pVSprite; gelsInfo : pGelsInfo);
-PROCEDURE InitGMasks(anOb : pAnimOb);
-PROCEDURE InitMasks(vSprite : pVSprite);
-PROCEDURE InitRastPort(rp : pRastPort);
-FUNCTION InitTmpRas(tmpRas : pTmpRas; buffer : PLANEPTR; size : LONGINT) : pTmpRas;
-PROCEDURE InitView(view : pView);
-PROCEDURE InitVPort(vp : pViewPort);
-PROCEDURE LoadRGB32(vp : pViewPort;const table : pULONG);
-PROCEDURE LoadRGB4(vp : pViewPort;const colors : pWord; count : LONGINT);
-PROCEDURE LoadView(view : pView);
-PROCEDURE LockLayerRom(layer : pLayer);
-FUNCTION MakeVPort(view : pView; vp : pViewPort) : ULONG;
-FUNCTION ModeNotAvailable(modeID : ULONG) : LONGINT;
-PROCEDURE Move(rp : pRastPort; x : LONGINT; y : LONGINT);
-PROCEDURE MoveSprite(vp : pViewPort; sprite : pSimpleSprite; x : LONGINT; y : LONGINT);
-FUNCTION MrgCop(view : pView) : ULONG;
-FUNCTION NewRegion : pRegion;
-FUNCTION NextDisplayInfo(displayID : ULONG) : ULONG;
-FUNCTION ObtainBestPenA(cm : pColorMap; r : ULONG; g : ULONG; b : ULONG;const tags : pTagItem) : LONGINT;
-FUNCTION ObtainPen(cm : pColorMap; n : ULONG; r : ULONG; g : ULONG; b : ULONG; f : LONGINT) : ULONG;
-FUNCTION OpenFont(textAttr : pTextAttr) : pTextFont;
-FUNCTION OpenMonitor(const monitorName : pCHAR; displayID : ULONG) : pMonitorSpec;
-FUNCTION OrRectRegion(region : pRegion;const rectangle : pRectangle) : BOOLEAN;
-FUNCTION OrRegionRegion(const srcRegion : pRegion; destRegion : pRegion) : BOOLEAN;
-PROCEDURE OwnBlitter;
-PROCEDURE PolyDraw(rp : pRastPort; count : LONGINT;const polyTable : pLongint);
-PROCEDURE QBlit(blit : pbltnode);
-PROCEDURE QBSBlit(blit : pbltnode);
-FUNCTION ReadPixel(rp : pRastPort; x : LONGINT; y : LONGINT) : ULONG;
-FUNCTION ReadPixelArray8(rp : pRastPort; xstart : ULONG; ystart : ULONG; xstop : ULONG; ystop : ULONG; array_ : pointer; temprp : pRastPort) : LONGINT;
-FUNCTION ReadPixelLine8(rp : pRastPort; xstart : ULONG; ystart : ULONG; width : ULONG; array_ : pointer; tempRP : pRastPort) : LONGINT;
-PROCEDURE RectFill(rp : pRastPort; xMin : LONGINT; yMin : LONGINT; xMax : LONGINT; yMax : LONGINT);
-PROCEDURE ReleasePen(cm : pColorMap; n : ULONG);
-PROCEDURE RemFont(textFont : pTextFont);
-PROCEDURE RemIBob(bob : pBob; rp : pRastPort; vp : pViewPort);
-PROCEDURE RemVSprite(vSprite : pVSprite);
-FUNCTION ScalerDiv(factor : ULONG; numerator : ULONG; denominator : ULONG) : WORD;
-PROCEDURE ScrollRaster(rp : pRastPort; dx : LONGINT; dy : LONGINT; xMin : LONGINT; yMin : LONGINT; xMax : LONGINT; yMax : LONGINT);
-PROCEDURE ScrollRasterBF(rp : pRastPort; dx : LONGINT; dy : LONGINT; xMin : LONGINT; yMin : LONGINT; xMax : LONGINT; yMax : LONGINT);
-PROCEDURE ScrollVPort(vp : pViewPort);
-PROCEDURE SetABPenDrMd(rp : pRastPort; apen : ULONG; bpen : ULONG; drawmode : ULONG);
-PROCEDURE SetAPen(rp : pRastPort; pen : ULONG);
-PROCEDURE SetBPen(rp : pRastPort; pen : ULONG);
-FUNCTION SetChipRev(want : ULONG) : ULONG;
-PROCEDURE SetCollision(num : ULONG; routine : tPROCEDURE; gelsInfo : pGelsInfo);
-PROCEDURE SetDrMd(rp : pRastPort; drawMode : ULONG);
-FUNCTION SetFont(rp : pRastPort;const textFont : pTextFont) : LONGINT;
-PROCEDURE SetMaxPen(rp : pRastPort; maxpen : ULONG);
-FUNCTION SetOutlinePen(rp : pRastPort; pen : ULONG) : ULONG;
-PROCEDURE SetRast(rp : pRastPort; pen : ULONG);
-PROCEDURE SetRGB32(vp : pViewPort; n : ULONG; r : ULONG; g : ULONG; b : ULONG);
-PROCEDURE SetRGB32CM(cm : pColorMap; n : ULONG; r : ULONG; g : ULONG; b : ULONG);
-PROCEDURE SetRGB4(vp : pViewPort; index : LONGINT; red : ULONG; green : ULONG; blue : ULONG);
-PROCEDURE SetRGB4CM(colorMap : pColorMap; index : LONGINT; red : ULONG; green : ULONG; blue : ULONG);
-PROCEDURE SetRPAttrsA(rp : pRastPort;const tags : pTagItem);
-FUNCTION SetSoftStyle(rp : pRastPort; style : ULONG; enable : ULONG) : ULONG;
-FUNCTION SetWriteMask(rp : pRastPort; msk : ULONG) : ULONG;
-PROCEDURE SortGList(rp : pRastPort);
-PROCEDURE StripFont(font : pTextFont);
-PROCEDURE SyncSBitMap(layer : pLayer);
-FUNCTION GText(rp : pRastPort;const string_ : pCHAR; count : ULONG) : LONGINT;
-FUNCTION TextExtent(rp : pRastPort;const string_ : pCHAR; count : LONGINT; _textExtent : pTextExtent) : smallint;
-FUNCTION TextFit(rp : pRastPort;const string_ : pCHAR; strLen : ULONG; textExtent : pTextExtent; constrainingExtent : pTextExtent; strDirection : LONGINT; constrainingBitWidth : ULONG; constrainingBitHeight : ULONG) : ULONG;
-FUNCTION TextLength(rp : pRastPort;const string_ : pCHAR; count : ULONG) : smallint;
-FUNCTION UCopperListInit(uCopList : pUCopList; n : LONGINT) : pCopList;
-PROCEDURE UnlockLayerRom(layer : pLayer);
-FUNCTION VBeamPos : LONGINT;
-FUNCTION VideoControl(colorMap : pColorMap; tagarray : pTagItem) : BOOLEAN;
-PROCEDURE WaitBlit;
-PROCEDURE WaitBOVP(vp : pViewPort);
-PROCEDURE WaitTOF;
-FUNCTION WeighTAMatch(reqTextAttr : pTextAttr; targetTextAttr : pTextAttr; targetTags : pTagItem) : smallint;
-PROCEDURE WriteChunkyPixels(rp : pRastPort; xstart : ULONG; ystart : ULONG; xstop : ULONG; ystop : ULONG; array_ : pointer; bytesperrow : LONGINT);
-FUNCTION WritePixel(rp : pRastPort; x : LONGINT; y : LONGINT) : LONGINT;
-FUNCTION WritePixelArray8(rp : pRastPort; xstart : ULONG; ystart : ULONG; xstop : ULONG; ystop : ULONG; array_ : pointer; temprp : pRastPort) : LONGINT;
-FUNCTION WritePixelLine8(rp : pRastPort; xstart : ULONG; ystart : ULONG; width : ULONG; array_ : pointer; tempRP : pRastPort) : LONGINT;
-FUNCTION XorRectRegion(region : pRegion;const rectangle : pRectangle) : BOOLEAN;
-FUNCTION XorRegionRegion(const srcRegion : pRegion; destRegion : pRegion) : BOOLEAN;
+PROCEDURE AddAnimOb(anOb : pAnimOb location 'a0'; anKey : ppAnimOb location 'a1'; rp : pRastPort location 'a2'); syscall GfxBase 156;
+PROCEDURE AddBob(bob : pBob location 'a0'; rp : pRastPort location 'a1'); syscall GfxBase 096;
+PROCEDURE AddFont(textFont : pTextFont location 'a1'); syscall GfxBase 480;
+PROCEDURE AddVSprite(vSprite : pVSprite location 'a0'; rp : pRastPort location 'a1'); syscall GfxBase 102;
+FUNCTION AllocBitMap(sizex : ULONG location 'd0'; sizey : ULONG location 'd1'; depth : ULONG location 'd2'; flags : ULONG location 'd3'; const friend_bitmap : pBitMap location 'a0') : pBitMap; syscall GfxBase 918;
+FUNCTION AllocDBufInfo(vp : pViewPort location 'a0') : pDBufInfo; syscall GfxBase 966;
+FUNCTION AllocRaster(width : ULONG location 'd0'; height : ULONG location 'd1') : pCHAR; syscall GfxBase 492;
+FUNCTION AllocSpriteDataA(const bm : pBitMap location 'a2';const tags : pTagItem location 'a1') : pExtSprite; syscall GfxBase 1020;
+PROCEDURE AndRectRegion(region : pRegion location 'a0';const rectangle : pRectangle location 'a1'); syscall GfxBase 504;
+FUNCTION AndRegionRegion(const srcRegion : pRegion location 'a0'; destRegion : pRegion location 'a1') : LongBool; syscall GfxBase 624;
+PROCEDURE Animate(anKey : ppAnimOb location 'a0'; rp : pRastPort location 'a1'); syscall GfxBase 162;
+FUNCTION AreaDraw(rp : pRastPort location 'a1'; x : LONGINT location 'd0'; y : LONGINT location 'd1') : LONGINT; syscall GfxBase 258;
+FUNCTION AreaEllipse(rp : pRastPort location 'a1'; xCenter : LONGINT location 'd0'; yCenter : LONGINT location 'd1'; a : LONGINT location 'd2'; b : LONGINT location 'd3') : LONGINT; syscall GfxBase 186;
+FUNCTION AreaEnd(rp : pRastPort location 'a1') : LONGINT; syscall GfxBase 264;
+FUNCTION AreaMove(rp : pRastPort location 'a1'; x : LONGINT location 'd0'; y : LONGINT location 'd1') : LONGINT; syscall GfxBase 252;
+PROCEDURE AskFont(rp : pRastPort location 'a1'; textAttr : pTextAttr location 'a0'); syscall GfxBase 474;
+FUNCTION AskSoftStyle(rp : pRastPort location 'a1') : ULONG; syscall GfxBase 084;
+FUNCTION AttachPalExtra(cm : pColorMap location 'a0'; vp : pViewPort location 'a1') : LONGINT; syscall GfxBase 834;
+FUNCTION AttemptLockLayerRom(layer : pLayer location 'a5') : LongBool; syscall GfxBase 654;
+FUNCTION BestModeIDA(const tags : pTagItem location 'a0') : ULONG; syscall GfxBase 1050;
+PROCEDURE BitMapScale(bitScaleArgs : pBitScaleArgs location 'a0'); syscall GfxBase 678;
+FUNCTION BltBitMap(const srcBitMap : pBitMap location 'a0'; xSrc : LONGINT location 'd0'; ySrc : LONGINT location 'd1'; destBitMap : pBitMap location 'a1'; xDest : LONGINT location 'd2'; yDest : LONGINT location 'd3'; xSize : LONGINT location 'd4'; ySize : LONGINT location 'd5'; minterm : ULONG location 'd6'; mask : ULONG location 'd7'; tempA : pCHAR location 'a2') : LONGINT; syscall GfxBase 030;
+PROCEDURE BltBitMapRastPort(const srcBitMap : pBitMap location 'a0'; xSrc : LONGINT location 'd0'; ySrc : LONGINT location 'd1'; destRP : pRastPort location 'a1'; xDest : LONGINT location 'd2'; yDest : LONGINT location 'd3'; xSize : LONGINT location 'd4'; ySize : LONGINT location 'd5'; minterm : ULONG location 'd6'); syscall GfxBase 606;
+PROCEDURE BltClear(memBlock : pCHAR location 'a1'; byteCount : ULONG location 'd0'; flags : ULONG location 'd1'); syscall GfxBase 300;
+PROCEDURE BltMaskBitMapRastPort(const srcBitMap : pBitMap location 'a0'; xSrc : LONGINT location 'd0'; ySrc : LONGINT location 'd1'; destRP : pRastPort location 'a1'; xDest : LONGINT location 'd2'; yDest : LONGINT location 'd3'; xSize : LONGINT location 'd4'; ySize : LONGINT location 'd5'; minterm : ULONG location 'd6';const bltMask : pCHAR location 'a2'); syscall GfxBase 636;
+PROCEDURE BltPattern(rp : pRastPort location 'a1';const mask : pCHAR location 'a0'; xMin : LONGINT location 'd0'; yMin : LONGINT location 'd1'; xMax : LONGINT location 'd2'; yMax : LONGINT location 'd3'; maskBPR : ULONG location 'd4'); syscall GfxBase 312;
+PROCEDURE BltTemplate(const source : pCHAR location 'a0'; xSrc : LONGINT location 'd0'; srcMod : LONGINT location 'd1'; destRP : pRastPort location 'a1'; xDest : LONGINT location 'd2'; yDest : LONGINT location 'd3'; xSize : LONGINT location 'd4'; ySize : LONGINT location 'd5'); syscall GfxBase 036;
+FUNCTION CalcIVG(v : pView location 'a0'; vp : pViewPort location 'a1') : WORD; syscall GfxBase 828;
+PROCEDURE CBump(copList : pUCopList location 'a1'); syscall GfxBase 366;
+FUNCTION ChangeExtSpriteA(vp : pViewPort location 'a0'; oldsprite : pExtSprite location 'a1'; newsprite : pExtSprite location 'a2';const tags : pTagItem location 'a3') : LONGINT; syscall GfxBase 1026;
+PROCEDURE ChangeSprite(vp : pViewPort location 'a0'; sprite : pSimpleSprite location 'a1'; newData : pWORD location 'a2'); syscall GfxBase 420;
+PROCEDURE ChangeVPBitMap(vp : pViewPort location 'a0'; bm : pBitMap location 'a1'; db : pDBufInfo location 'a2'); syscall GfxBase 942;
+PROCEDURE ClearEOL(rp : pRastPort location 'a1'); syscall GfxBase 042;
+FUNCTION ClearRectRegion(region : pRegion location 'a0';const rectangle : pRectangle location 'a1') : LongBool; syscall GfxBase 522;
+PROCEDURE ClearRegion(region : pRegion location 'a0'); syscall GfxBase 528;
+PROCEDURE ClearScreen(rp : pRastPort location 'a1'); syscall GfxBase 048;
+PROCEDURE ClipBlit(srcRP : pRastPort location 'a0'; xSrc : LONGINT location 'd0'; ySrc : LONGINT location 'd1'; destRP : pRastPort location 'a1'; xDest : LONGINT location 'd2'; yDest : LONGINT location 'd3'; xSize : LONGINT location 'd4'; ySize : LONGINT location 'd5'; minterm : ULONG location 'd6'); syscall GfxBase 552;
+PROCEDURE CloseFont(textFont : pTextFont location 'a1'); syscall GfxBase 078;
+FUNCTION CloseMonitor(monitorSpec : pMonitorSpec location 'a0') : LongBool; syscall GfxBase 720;
+PROCEDURE CMove(copList : pUCopList location 'a1'; destination : POINTER location 'a0'; data : LONGINT location 'd1'); syscall GfxBase 372;
+FUNCTION CoerceMode(vp : pViewPort location 'a0'; monitorid : ULONG location 'd0'; flags : ULONG location 'd1') : ULONG; syscall GfxBase 936;
+PROCEDURE CopySBitMap(layer : pLayer location 'a0'); syscall GfxBase 450;
+PROCEDURE CWait(copList : pUCopList location 'a1'; v : LONGINT location 'd0'; h : LONGINT location 'd1'); syscall GfxBase 378;
+PROCEDURE DisownBlitter; syscall GfxBase 462;
+PROCEDURE DisposeRegion(region : pRegion location 'a0'); syscall GfxBase 534;
+PROCEDURE DoCollision(rp : pRastPort location 'a1'); syscall GfxBase 108;
+PROCEDURE Draw(rp : pRastPort location 'a1'; x : LONGINT location 'd0'; y : LONGINT location 'd1'); syscall GfxBase 246;
+PROCEDURE DrawEllipse(rp : pRastPort location 'a1'; xCenter : LONGINT location 'd0'; yCenter : LONGINT location 'd1'; a : LONGINT location 'd2'; b : LONGINT location 'd3'); syscall GfxBase 180;
+PROCEDURE DrawGList(rp : pRastPort location 'a1'; vp : pViewPort location 'a0'); syscall GfxBase 114;
+PROCEDURE EraseRect(rp : pRastPort location 'a1'; xMin : LONGINT location 'd0'; yMin : LONGINT location 'd1'; xMax : LONGINT location 'd2'; yMax : LONGINT location 'd3'); syscall GfxBase 810;
+FUNCTION ExtendFont(font : pTextFont location 'a0';const fontTags : pTagItem location 'a1') : ULONG; syscall GfxBase 816;
+FUNCTION FindColor(cm : pColorMap location 'a3'; r : ULONG location 'd1'; g : ULONG location 'd2'; b : ULONG location 'd3'; maxcolor : LONGINT location 'd4') : LONGINT; syscall GfxBase 1008;
+FUNCTION FindDisplayInfo(displayID : ULONG location 'd0') : POINTER; syscall GfxBase 726;
+FUNCTION Flood(rp : pRastPort location 'a1'; mode : ULONG location 'd2'; x : LONGINT location 'd0'; y : LONGINT location 'd1') : LongBool; syscall GfxBase 330;
+PROCEDURE FontExtent(const font : pTextFont location 'a0'; fontExtent : pTextExtent location 'a1'); syscall GfxBase 762;
+PROCEDURE FreeBitMap(bm : pBitMap location 'a0'); syscall GfxBase 924;
+PROCEDURE FreeColorMap(colorMap : pColorMap location 'a0'); syscall GfxBase 576;
+PROCEDURE FreeCopList(copList : pCopList location 'a0'); syscall GfxBase 546;
+PROCEDURE FreeCprList(cprList : pcprlist location 'a0'); syscall GfxBase 564;
+PROCEDURE FreeDBufInfo(dbi : pDBufInfo location 'a1'); syscall GfxBase 972;
+PROCEDURE FreeGBuffers(anOb : pAnimOb location 'a0'; rp : pRastPort location 'a1'; flag : LONGINT location 'd0'); syscall GfxBase 600;
+PROCEDURE FreeRaster(p : pCHAR location 'a0'; width : ULONG location 'd0'; height : ULONG location 'd1'); syscall GfxBase 498;
+PROCEDURE FreeSprite(num : LONGINT location 'd0'); syscall GfxBase 414;
+PROCEDURE FreeSpriteData(sp : pExtSprite location 'a2'); syscall GfxBase 1032;
+PROCEDURE FreeVPortCopLists(vp : pViewPort location 'a0'); syscall GfxBase 540;
+FUNCTION GetAPen(rp : pRastPort location 'a0') : ULONG; syscall GfxBase 858;
+FUNCTION GetBitMapAttr(const bm : pBitMap location 'a0'; attrnum : ULONG location 'd1') : ULONG; syscall GfxBase 960;
+FUNCTION GetBPen(rp : pRastPort location 'a0') : ULONG; syscall GfxBase 864;
+FUNCTION GetColorMap(entries : LONGINT location 'd0') : pColorMap; syscall GfxBase 570;
+FUNCTION GetDisplayInfoData(const handle : POINTER location 'a0'; buf : pCHAR location 'a1'; size : ULONG location 'd0'; tagID : ULONG location 'd1'; displayID : ULONG location 'd2') : ULONG; syscall GfxBase 756;
+FUNCTION GetDrMd(rp : pRastPort location 'a0') : ULONG; syscall GfxBase 870;
+FUNCTION GetExtSpriteA(ss : pExtSprite location 'a2';const tags : pTagItem location 'a1') : LONGINT; syscall GfxBase 930;
+FUNCTION GetGBuffers(anOb : pAnimOb location 'a0'; rp : pRastPort location 'a1'; flag : LONGINT location 'd0') : LongBool; syscall GfxBase 168;
+FUNCTION GetOutlinePen(rp : pRastPort location 'a0') : ULONG; syscall GfxBase 876;
+PROCEDURE GetRGB32(const cm : pColorMap location 'a0'; firstcolor : ULONG location 'd0'; ncolors : ULONG location 'd1'; table : pulong location 'a1'); syscall GfxBase 900;
+FUNCTION GetRGB4(colorMap : pColorMap location 'a0'; entry : LONGINT location 'd0') : ULONG; syscall GfxBase 582;
+PROCEDURE GetRPAttrsA(const rp : pRastPort location 'a0';const tags : pTagItem location 'a1'); syscall GfxBase 1044;
+FUNCTION GetSprite(sprite : pSimpleSprite location 'a0'; num : LONGINT location 'd0') : smallint; syscall GfxBase 408;
+FUNCTION GetVPModeID(const vp : pViewPort location 'a0') : LONGINT; syscall GfxBase 792;
+PROCEDURE GfxAssociate(const associateNode : POINTER location 'a0'; gfxNodePtr : POINTER location 'a1'); syscall GfxBase 672;
+PROCEDURE GfxFree(gfxNodePtr : POINTER location 'a0'); syscall GfxBase 666;
+FUNCTION GfxLookUp(const associateNode : POINTER location 'a0') : POINTER; syscall GfxBase 702;
+FUNCTION GfxNew(gfxNodeType : ULONG location 'd0') : POINTER; syscall GfxBase 660;
+PROCEDURE InitArea(areaInfo : pAreaInfo location 'a0'; vectorBuffer : POINTER location 'a1'; maxVectors : LONGINT location 'd0'); syscall GfxBase 282;
+PROCEDURE InitBitMap(bitMap : pBitMap location 'a0'; depth : LONGINT location 'd0'; width : LONGINT location 'd1'; height : LONGINT location 'd2'); syscall GfxBase 390;
+PROCEDURE InitGels(head : pVSprite location 'a0'; tail : pVSprite location 'a1'; gelsInfo : pGelsInfo location 'a2'); syscall GfxBase 120;
+PROCEDURE InitGMasks(anOb : pAnimOb location 'a0'); syscall GfxBase 174;
+PROCEDURE InitMasks(vSprite : pVSprite location 'a0'); syscall GfxBase 126;
+PROCEDURE InitRastPort(rp : pRastPort location 'a1'); syscall GfxBase 198;
+FUNCTION InitTmpRas(tmpRas : pTmpRas location 'a0'; buffer : PLANEPTR location 'a1'; size : LONGINT location 'd0') : pTmpRas; syscall GfxBase 468;
+PROCEDURE InitView(view : pView location 'a1'); syscall GfxBase 360;
+PROCEDURE InitVPort(vp : pViewPort location 'a0'); syscall GfxBase 204;
+PROCEDURE LoadRGB32(vp : pViewPort location 'a0';const table : pULONG location 'a1'); syscall GfxBase 882;
+PROCEDURE LoadRGB4(vp : pViewPort location 'a0';const colors : pWord location 'a1'; count : LONGINT location 'd0'); syscall GfxBase 192;
+PROCEDURE LoadView(view : pView location 'a1'); syscall GfxBase 222;
+PROCEDURE LockLayerRom(layer : pLayer location 'a5'); syscall GfxBase 432;
+FUNCTION MakeVPort(view : pView location 'a0'; vp : pViewPort location 'a1') : ULONG; syscall GfxBase 216;
+FUNCTION ModeNotAvailable(modeID : ULONG location 'd0') : LONGINT; syscall GfxBase 798;
+PROCEDURE gfxMove(rp : pRastPort location 'a1'; x : LONGINT location 'd0'; y : LONGINT location 'd1'); syscall GfxBase 240;
+PROCEDURE MoveSprite(vp : pViewPort location 'a0'; sprite : pSimpleSprite location 'a1'; x : LONGINT location 'd0'; y : LONGINT location 'd1'); syscall GfxBase 426;
+FUNCTION MrgCop(view : pView location 'a1') : ULONG; syscall GfxBase 210;
+FUNCTION NewRegion : pRegion; syscall GfxBase 516;
+FUNCTION NextDisplayInfo(displayID : ULONG location 'd0') : ULONG; syscall GfxBase 732;
+FUNCTION ObtainBestPenA(cm : pColorMap location 'a0'; r : ULONG location 'd1'; g : ULONG location 'd2'; b : ULONG location 'd3';const tags : pTagItem location 'a1') : LONGINT; syscall GfxBase 840;
+FUNCTION ObtainPen(cm : pColorMap location 'a0'; n : ULONG location 'd0'; r : ULONG location 'd1'; g : ULONG location 'd2'; b : ULONG location 'd3'; f : LONGINT location 'd4') : ULONG; syscall GfxBase 954;
+FUNCTION OpenFont(textAttr : pTextAttr location 'a0') : pTextFont; syscall GfxBase 072;
+FUNCTION OpenMonitor(const monitorName : pCHAR location 'a1'; displayID : ULONG location 'd0') : pMonitorSpec; syscall GfxBase 714;
+FUNCTION OrRectRegion(region : pRegion location 'a0';const rectangle : pRectangle location 'a1') : LongBool; syscall GfxBase 510;
+FUNCTION OrRegionRegion(const srcRegion : pRegion location 'a0'; destRegion : pRegion location 'a1') : LongBool; syscall GfxBase 612;
+PROCEDURE OwnBlitter; syscall GfxBase 456;
+PROCEDURE PolyDraw(rp : pRastPort location 'a1'; count : LONGINT location 'd0';const polyTable : pLongint location 'a0'); syscall GfxBase 336;
+PROCEDURE QBlit(blit : pbltnode location 'a1'); syscall GfxBase 276;
+PROCEDURE QBSBlit(blit : pbltnode location 'a1'); syscall GfxBase 294;
+FUNCTION ReadPixel(rp : pRastPort location 'a1'; x : LONGINT location 'd0'; y : LONGINT location 'd1') : ULONG; syscall GfxBase 318;
+FUNCTION ReadPixelArray8(rp : pRastPort location 'a0'; xstart : ULONG location 'd0'; ystart : ULONG location 'd1'; xstop : ULONG location 'd2'; ystop : ULONG location 'd3'; array_ : pointer location 'a2'; temprp : pRastPort location 'a1') : LONGINT; syscall GfxBase 780;
+FUNCTION ReadPixelLine8(rp : pRastPort location 'a0'; xstart : ULONG location 'd0'; ystart : ULONG location 'd1'; width : ULONG location 'd2'; array_ : pointer location 'a2'; tempRP : pRastPort location 'a1') : LONGINT; syscall GfxBase 768;
+PROCEDURE RectFill(rp : pRastPort location 'a1'; xMin : LONGINT location 'd0'; yMin : LONGINT location 'd1'; xMax : LONGINT location 'd2'; yMax : LONGINT location 'd3'); syscall GfxBase 306;
+PROCEDURE ReleasePen(cm : pColorMap location 'a0'; n : ULONG location 'd0'); syscall GfxBase 948;
+PROCEDURE RemFont(textFont : pTextFont location 'a1'); syscall GfxBase 486;
+PROCEDURE RemIBob(bob : pBob location 'a0'; rp : pRastPort location 'a1'; vp : pViewPort location 'a2'); syscall GfxBase 132;
+PROCEDURE RemVSprite(vSprite : pVSprite location 'a0'); syscall GfxBase 138;
+FUNCTION ScalerDiv(factor : ULONG location 'd0'; numerator : ULONG location 'd1'; denominator : ULONG location 'd2') : WORD; syscall GfxBase 684;
+PROCEDURE ScrollRaster(rp : pRastPort location 'a1'; dx : LONGINT location 'd0'; dy : LONGINT location 'd1'; xMin : LONGINT location 'd2'; yMin : LONGINT location 'd3'; xMax : LONGINT location 'd4'; yMax : LONGINT location 'd5'); syscall GfxBase 396;
+PROCEDURE ScrollRasterBF(rp : pRastPort location 'a1'; dx : LONGINT location 'd0'; dy : LONGINT location 'd1'; xMin : LONGINT location 'd2'; yMin : LONGINT location 'd3'; xMax : LONGINT location 'd4'; yMax : LONGINT location 'd5'); syscall GfxBase 1002;
+PROCEDURE ScrollVPort(vp : pViewPort location 'a0'); syscall GfxBase 588;
+PROCEDURE SetABPenDrMd(rp : pRastPort location 'a1'; apen : ULONG location 'd0'; bpen : ULONG location 'd1'; drawmode : ULONG location 'd2'); syscall GfxBase 894;
+PROCEDURE SetAPen(rp : pRastPort location 'a1'; pen : ULONG location 'd0'); syscall GfxBase 342;
+PROCEDURE SetBPen(rp : pRastPort location 'a1'; pen : ULONG location 'd0'); syscall GfxBase 348;
+FUNCTION SetChipRev(want : ULONG location 'd0') : ULONG; syscall GfxBase 888;
+PROCEDURE SetCollision(num : ULONG location 'd0'; routine : tPROCEDURE location 'a0'; gelsInfo : pGelsInfo location 'a1'); syscall GfxBase 144;
+PROCEDURE SetDrMd(rp : pRastPort location 'a1'; drawMode : ULONG location 'd0'); syscall GfxBase 354;
+FUNCTION SetFont(rp : pRastPort location 'a1';const textFont : pTextFont location 'a0') : LONGINT; syscall GfxBase 066;
+PROCEDURE SetMaxPen(rp : pRastPort location 'a0'; maxpen : ULONG location 'd0'); syscall GfxBase 990;
+FUNCTION SetOutlinePen(rp : pRastPort location 'a0'; pen : ULONG location 'd0') : ULONG; syscall GfxBase 978;
+PROCEDURE SetRast(rp : pRastPort location 'a1'; pen : ULONG location 'd0'); syscall GfxBase 234;
+PROCEDURE SetRGB32(vp : pViewPort location 'a0'; n : ULONG location 'd0'; r : ULONG location 'd1'; g : ULONG location 'd2'; b : ULONG location 'd3'); syscall GfxBase 852;
+PROCEDURE SetRGB32CM(cm : pColorMap location 'a0'; n : ULONG location 'd0'; r : ULONG location 'd1'; g : ULONG location 'd2'; b : ULONG location 'd3'); syscall GfxBase 996;
+PROCEDURE SetRGB4(vp : pViewPort location 'a0'; index : LONGINT location 'd0'; red : ULONG location 'd1'; green : ULONG location 'd2'; blue : ULONG location 'd3'); syscall GfxBase 288;
+PROCEDURE SetRGB4CM(colorMap : pColorMap location 'a0'; index : LONGINT location 'd0'; red : ULONG location 'd1'; green : ULONG location 'd2'; blue : ULONG location 'd3'); syscall GfxBase 630;
+PROCEDURE SetRPAttrsA(rp : pRastPort location 'a0';const tags : pTagItem location 'a1'); syscall GfxBase 1038;
+FUNCTION SetSoftStyle(rp : pRastPort location 'a1'; style : ULONG location 'd0'; enable : ULONG location 'd1') : ULONG; syscall GfxBase 090;
+FUNCTION SetWriteMask(rp : pRastPort location 'a0'; msk : ULONG location 'd0') : ULONG; syscall GfxBase 984;
+PROCEDURE SortGList(rp : pRastPort location 'a1'); syscall GfxBase 150;
+PROCEDURE StripFont(font : pTextFont location 'a0'); syscall GfxBase 822;
+PROCEDURE SyncSBitMap(layer : pLayer location 'a0'); syscall GfxBase 444;
+FUNCTION GfxText(rp : pRastPort location 'a1';const string_ : pCHAR location 'a0'; count : ULONG location 'd0') : LONGINT; syscall GfxBase 060;
+FUNCTION TextExtent(rp : pRastPort location 'a1';const string_ : pCHAR location 'a0'; count : LONGINT location 'd0'; _textExtent : pTextExtent location 'a2') : smallint; syscall GfxBase 690;
+FUNCTION TextFit(rp : pRastPort location 'a1';const string_ : pCHAR location 'a0'; strLen : ULONG location 'd0'; textExtent : pTextExtent location 'a2'; constrainingExtent : pTextExtent location 'a3'; strDirection : LONGINT location 'd1'; constrainingBitWidth : ULONG location 'd2'; constrainingBitHeight : ULONG location 'd3') : ULONG; syscall GfxBase 696;
+FUNCTION TextLength(rp : pRastPort location 'a1';const string_ : pCHAR location 'a0'; count : ULONG location 'd0') : smallint; syscall GfxBase 054;
+FUNCTION UCopperListInit(uCopList : pUCopList location 'a0'; n : LONGINT location 'd0') : pCopList; syscall GfxBase 594;
+PROCEDURE UnlockLayerRom(layer : pLayer location 'a5'); syscall GfxBase 438;
+FUNCTION VBeamPos : LONGINT; syscall GfxBase 384;
+FUNCTION VideoControl(colorMap : pColorMap location 'a0'; tagarray : pTagItem location 'a1') : LongBool; syscall GfxBase 708;
+PROCEDURE WaitBlit; syscall GfxBase 228;
+PROCEDURE WaitBOVP(vp : pViewPort location 'a0'); syscall GfxBase 402;
+PROCEDURE WaitTOF; syscall GfxBase 270;
+FUNCTION WeighTAMatch(reqTextAttr : pTextAttr location 'a0'; targetTextAttr : pTextAttr location 'a1'; targetTags : pTagItem location 'a2') : smallint; syscall GfxBase 804;
+PROCEDURE WriteChunkyPixels(rp : pRastPort location 'a0'; xstart : ULONG location 'd0'; ystart : ULONG location 'd1'; xstop : ULONG location 'd2'; ystop : ULONG location 'd3'; array_ : pointer location 'a2'; bytesperrow : LONGINT location 'd4'); syscall GfxBase 1056;
+FUNCTION WritePixel(rp : pRastPort location 'a1'; x : LONGINT location 'd0'; y : LONGINT location 'd1') : LONGINT; syscall GfxBase 324;
+FUNCTION WritePixelArray8(rp : pRastPort location 'a0'; xstart : ULONG location 'd0'; ystart : ULONG location 'd1'; xstop : ULONG location 'd2'; ystop : ULONG location 'd3'; array_ : pointer location 'a2'; temprp : pRastPort location 'a1') : LONGINT; syscall GfxBase 786;
+FUNCTION WritePixelLine8(rp : pRastPort location 'a0'; xstart : ULONG location 'd0'; ystart : ULONG location 'd1'; width : ULONG location 'd2'; array_ : pointer location 'a2'; tempRP : pRastPort location 'a1') : LONGINT; syscall GfxBase 774;
+FUNCTION XorRectRegion(region : pRegion location 'a0';const rectangle : pRectangle location 'a1') : LongBool; syscall GfxBase 558;
+FUNCTION XorRegionRegion(const srcRegion : pRegion location 'a0'; destRegion : pRegion location 'a1') : LongBool; syscall GfxBase 618;
{ gfxmacros }
@@ -2438,7 +2434,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox;
+amsgbox;
{$endif dont_use_openlib}
PROCEDURE BNDRYOFF (w: pRastPort);
@@ -2536,2161 +2532,6 @@ BEGIN
cust^.intena := BITSET OR INTF_VERTB;
END;
-PROCEDURE AddAnimOb(anOb : pAnimOb; anKey : ppAnimOb; rp : pRastPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L anOb,A0
- MOVEA.L anKey,A1
- MOVEA.L rp,A2
- MOVEA.L GfxBase,A6
- JSR -156(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE AddBob(bob : pBob; rp : pRastPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L bob,A0
- MOVEA.L rp,A1
- MOVEA.L GfxBase,A6
- JSR -096(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE AddFont(textFont : pTextFont);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L textFont,A1
- MOVEA.L GfxBase,A6
- JSR -480(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE AddVSprite(vSprite : pVSprite; rp : pRastPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vSprite,A0
- MOVEA.L rp,A1
- MOVEA.L GfxBase,A6
- JSR -102(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION AllocBitMap(sizex : ULONG; sizey : ULONG; depth : ULONG; flags : ULONG;const friend_bitmap : pBitMap) : pBitMap;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L sizex,D0
- MOVE.L sizey,D1
- MOVE.L depth,D2
- MOVE.L flags,D3
- MOVEA.L friend_bitmap,A0
- MOVEA.L GfxBase,A6
- JSR -918(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AllocDBufInfo(vp : pViewPort) : pDBufInfo;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vp,A0
- MOVEA.L GfxBase,A6
- JSR -966(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AllocRaster(width : ULONG; height : ULONG) : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L width,D0
- MOVE.L height,D1
- MOVEA.L GfxBase,A6
- JSR -492(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AllocSpriteDataA(const bm : pBitMap;const tags : pTagItem) : pExtSprite;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L bm,A2
- MOVEA.L tags,A1
- MOVEA.L GfxBase,A6
- JSR -1020(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE AndRectRegion(region : pRegion;const rectangle : pRectangle);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L region,A0
- MOVEA.L rectangle,A1
- MOVEA.L GfxBase,A6
- JSR -504(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION AndRegionRegion(const srcRegion : pRegion; destRegion : pRegion) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L srcRegion,A0
- MOVEA.L destRegion,A1
- MOVEA.L GfxBase,A6
- JSR -624(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE Animate(anKey : ppAnimOb; rp : pRastPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L anKey,A0
- MOVEA.L rp,A1
- MOVEA.L GfxBase,A6
- JSR -162(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION AreaDraw(rp : pRastPort; x : LONGINT; y : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L x,D0
- MOVE.L y,D1
- MOVEA.L GfxBase,A6
- JSR -258(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AreaEllipse(rp : pRastPort; xCenter : LONGINT; yCenter : LONGINT; a : LONGINT; b : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L xCenter,D0
- MOVE.L yCenter,D1
- MOVE.L a,D2
- MOVE.L b,D3
- MOVEA.L GfxBase,A6
- JSR -186(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AreaEnd(rp : pRastPort) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVEA.L GfxBase,A6
- JSR -264(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AreaMove(rp : pRastPort; x : LONGINT; y : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L x,D0
- MOVE.L y,D1
- MOVEA.L GfxBase,A6
- JSR -252(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE AskFont(rp : pRastPort; textAttr : pTextAttr);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVEA.L textAttr,A0
- MOVEA.L GfxBase,A6
- JSR -474(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION AskSoftStyle(rp : pRastPort) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVEA.L GfxBase,A6
- JSR -084(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AttachPalExtra(cm : pColorMap; vp : pViewPort) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L cm,A0
- MOVEA.L vp,A1
- MOVEA.L GfxBase,A6
- JSR -834(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AttemptLockLayerRom(layer : pLayer) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L layer,A5
- MOVEA.L GfxBase,A6
- JSR -654(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION BestModeIDA(const tags : pTagItem) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L tags,A0
- MOVEA.L GfxBase,A6
- JSR -1050(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE BitMapScale(bitScaleArgs : pBitScaleArgs);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L bitScaleArgs,A0
- MOVEA.L GfxBase,A6
- JSR -678(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION BltBitMap(const srcBitMap : pBitMap; xSrc : LONGINT; ySrc : LONGINT; destBitMap : pBitMap; xDest : LONGINT; yDest : LONGINT; xSize : LONGINT; ySize : LONGINT; minterm : ULONG; mask : ULONG; tempA : pCHAR) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L srcBitMap,A0
- MOVE.L xSrc,D0
- MOVE.L ySrc,D1
- MOVEA.L destBitMap,A1
- MOVE.L xDest,D2
- MOVE.L yDest,D3
- MOVE.L xSize,D4
- MOVE.L ySize,D5
- MOVE.L minterm,D6
- MOVE.L mask,D7
- MOVEA.L tempA,A2
- MOVEA.L GfxBase,A6
- JSR -030(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE BltBitMapRastPort(const srcBitMap : pBitMap; xSrc : LONGINT; ySrc : LONGINT; destRP : pRastPort; xDest : LONGINT; yDest : LONGINT; xSize : LONGINT; ySize : LONGINT; minterm : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L srcBitMap,A0
- MOVE.L xSrc,D0
- MOVE.L ySrc,D1
- MOVEA.L destRP,A1
- MOVE.L xDest,D2
- MOVE.L yDest,D3
- MOVE.L xSize,D4
- MOVE.L ySize,D5
- MOVE.L minterm,D6
- MOVEA.L GfxBase,A6
- JSR -606(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE BltClear(memBlock : pCHAR; byteCount : ULONG; flags : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L memBlock,A1
- MOVE.L byteCount,D0
- MOVE.L flags,D1
- MOVEA.L GfxBase,A6
- JSR -300(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE BltMaskBitMapRastPort(const srcBitMap : pBitMap; xSrc : LONGINT; ySrc : LONGINT; destRP : pRastPort; xDest : LONGINT; yDest : LONGINT; xSize : LONGINT; ySize : LONGINT; minterm : ULONG;const bltMask : pCHAR);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L srcBitMap,A0
- MOVE.L xSrc,D0
- MOVE.L ySrc,D1
- MOVEA.L destRP,A1
- MOVE.L xDest,D2
- MOVE.L yDest,D3
- MOVE.L xSize,D4
- MOVE.L ySize,D5
- MOVE.L minterm,D6
- MOVEA.L bltMask,A2
- MOVEA.L GfxBase,A6
- JSR -636(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE BltPattern(rp : pRastPort;const mask : pCHAR; xMin : LONGINT; yMin : LONGINT; xMax : LONGINT; yMax : LONGINT; maskBPR : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVEA.L mask,A0
- MOVE.L xMin,D0
- MOVE.L yMin,D1
- MOVE.L xMax,D2
- MOVE.L yMax,D3
- MOVE.L maskBPR,D4
- MOVEA.L GfxBase,A6
- JSR -312(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE BltTemplate(const source : pCHAR; xSrc : LONGINT; srcMod : LONGINT; destRP : pRastPort; xDest : LONGINT; yDest : LONGINT; xSize : LONGINT; ySize : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L source,A0
- MOVE.L xSrc,D0
- MOVE.L srcMod,D1
- MOVEA.L destRP,A1
- MOVE.L xDest,D2
- MOVE.L yDest,D3
- MOVE.L xSize,D4
- MOVE.L ySize,D5
- MOVEA.L GfxBase,A6
- JSR -036(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION CalcIVG(v : pView; vp : pViewPort) : WORD;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L v,A0
- MOVEA.L vp,A1
- MOVEA.L GfxBase,A6
- JSR -828(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE CBump(copList : pUCopList);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L copList,A1
- MOVEA.L GfxBase,A6
- JSR -366(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION ChangeExtSpriteA(vp : pViewPort; oldsprite : pExtSprite; newsprite : pExtSprite;const tags : pTagItem) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vp,A0
- MOVEA.L oldsprite,A1
- MOVEA.L newsprite,A2
- MOVEA.L tags,A3
- MOVEA.L GfxBase,A6
- JSR -1026(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE ChangeSprite(vp : pViewPort; sprite : pSimpleSprite; newData : pWORD);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vp,A0
- MOVEA.L sprite,A1
- MOVEA.L newData,A2
- MOVEA.L GfxBase,A6
- JSR -420(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ChangeVPBitMap(vp : pViewPort; bm : pBitMap; db : pDBufInfo);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vp,A0
- MOVEA.L bm,A1
- MOVEA.L db,A2
- MOVEA.L GfxBase,A6
- JSR -942(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ClearEOL(rp : pRastPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVEA.L GfxBase,A6
- JSR -042(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION ClearRectRegion(region : pRegion;const rectangle : pRectangle) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L region,A0
- MOVEA.L rectangle,A1
- MOVEA.L GfxBase,A6
- JSR -522(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE ClearRegion(region : pRegion);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L region,A0
- MOVEA.L GfxBase,A6
- JSR -528(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ClearScreen(rp : pRastPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVEA.L GfxBase,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ClipBlit(srcRP : pRastPort; xSrc : LONGINT; ySrc : LONGINT; destRP : pRastPort; xDest : LONGINT; yDest : LONGINT; xSize : LONGINT; ySize : LONGINT; minterm : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L srcRP,A0
- MOVE.L xSrc,D0
- MOVE.L ySrc,D1
- MOVEA.L destRP,A1
- MOVE.L xDest,D2
- MOVE.L yDest,D3
- MOVE.L xSize,D4
- MOVE.L ySize,D5
- MOVE.L minterm,D6
- MOVEA.L GfxBase,A6
- JSR -552(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE CloseFont(textFont : pTextFont);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L textFont,A1
- MOVEA.L GfxBase,A6
- JSR -078(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION CloseMonitor(monitorSpec : pMonitorSpec) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L monitorSpec,A0
- MOVEA.L GfxBase,A6
- JSR -720(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE CMove(copList : pUCopList; destination : POINTER; data : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L copList,A1
- MOVE.L destination,D0
- MOVE.L data,D1
- MOVEA.L GfxBase,A6
- JSR -372(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION CoerceMode(vp : pViewPort; monitorid : ULONG; flags : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vp,A0
- MOVE.L monitorid,D0
- MOVE.L flags,D1
- MOVEA.L GfxBase,A6
- JSR -936(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE CopySBitMap(layer : pLayer);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L layer,A0
- MOVEA.L GfxBase,A6
- JSR -450(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE CWait(copList : pUCopList; v : LONGINT; h : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L copList,A1
- MOVE.L v,D0
- MOVE.L h,D1
- MOVEA.L GfxBase,A6
- JSR -378(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE DisownBlitter;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L GfxBase,A6
- JSR -462(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE DisposeRegion(region : pRegion);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L region,A0
- MOVEA.L GfxBase,A6
- JSR -534(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE DoCollision(rp : pRastPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVEA.L GfxBase,A6
- JSR -108(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE Draw(rp : pRastPort; x : LONGINT; y : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L x,D0
- MOVE.L y,D1
- MOVEA.L GfxBase,A6
- JSR -246(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE DrawEllipse(rp : pRastPort; xCenter : LONGINT; yCenter : LONGINT; a : LONGINT; b : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L xCenter,D0
- MOVE.L yCenter,D1
- MOVE.L a,D2
- MOVE.L b,D3
- MOVEA.L GfxBase,A6
- JSR -180(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE DrawGList(rp : pRastPort; vp : pViewPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVEA.L vp,A0
- MOVEA.L GfxBase,A6
- JSR -114(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE EraseRect(rp : pRastPort; xMin : LONGINT; yMin : LONGINT; xMax : LONGINT; yMax : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L xMin,D0
- MOVE.L yMin,D1
- MOVE.L xMax,D2
- MOVE.L yMax,D3
- MOVEA.L GfxBase,A6
- JSR -810(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION ExtendFont(font : pTextFont;const fontTags : pTagItem) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L font,A0
- MOVEA.L fontTags,A1
- MOVEA.L GfxBase,A6
- JSR -816(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindColor(cm : pColorMap; r : ULONG; g : ULONG; b : ULONG; maxcolor : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L cm,A3
- MOVE.L r,D1
- MOVE.L g,D2
- MOVE.L b,D3
- MOVE.L maxcolor,D4
- MOVEA.L GfxBase,A6
- JSR -1008(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindDisplayInfo(displayID : ULONG) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L displayID,D0
- MOVEA.L GfxBase,A6
- JSR -726(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION Flood(rp : pRastPort; mode : ULONG; x : LONGINT; y : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L mode,D2
- MOVE.L x,D0
- MOVE.L y,D1
- MOVEA.L GfxBase,A6
- JSR -330(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE FontExtent(const font : pTextFont; fontExtent : pTextExtent);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L font,A0
- MOVEA.L fontExtent,A1
- MOVEA.L GfxBase,A6
- JSR -762(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeBitMap(bm : pBitMap);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L bm,A0
- MOVEA.L GfxBase,A6
- JSR -924(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeColorMap(colorMap : pColorMap);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L colorMap,A0
- MOVEA.L GfxBase,A6
- JSR -576(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeCopList(copList : pCopList);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L copList,A0
- MOVEA.L GfxBase,A6
- JSR -546(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeCprList(cprList : pcprlist);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L cprList,A0
- MOVEA.L GfxBase,A6
- JSR -564(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeDBufInfo(dbi : pDBufInfo);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L dbi,A1
- MOVEA.L GfxBase,A6
- JSR -972(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeGBuffers(anOb : pAnimOb; rp : pRastPort; flag : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L anOb,A0
- MOVEA.L rp,A1
- MOVE.L flag,D0
- MOVEA.L GfxBase,A6
- JSR -600(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeRaster(p : pCHAR; width : ULONG; height : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L p,A0
- MOVE.L width,D0
- MOVE.L height,D1
- MOVEA.L GfxBase,A6
- JSR -498(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeSprite(num : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L num,D0
- MOVEA.L GfxBase,A6
- JSR -414(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeSpriteData(sp : pExtSprite);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sp,A2
- MOVEA.L GfxBase,A6
- JSR -1032(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeVPortCopLists(vp : pViewPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vp,A0
- MOVEA.L GfxBase,A6
- JSR -540(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION GetAPen(rp : pRastPort) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVEA.L GfxBase,A6
- JSR -858(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetBitMapAttr(const bm : pBitMap; attrnum : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L bm,A0
- MOVE.L attrnum,D1
- MOVEA.L GfxBase,A6
- JSR -960(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetBPen(rp : pRastPort) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVEA.L GfxBase,A6
- JSR -864(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetColorMap(entries : LONGINT) : pColorMap;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L entries,D0
- MOVEA.L GfxBase,A6
- JSR -570(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetDisplayInfoData(const handle : POINTER; buf : pCHAR; size : ULONG; tagID : ULONG; displayID : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L handle,A0
- MOVEA.L buf,A1
- MOVE.L size,D0
- MOVE.L tagID,D1
- MOVE.L displayID,D2
- MOVEA.L GfxBase,A6
- JSR -756(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetDrMd(rp : pRastPort) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVEA.L GfxBase,A6
- JSR -870(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetExtSpriteA(ss : pExtSprite;const tags : pTagItem) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L ss,A2
- MOVEA.L tags,A1
- MOVEA.L GfxBase,A6
- JSR -930(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetGBuffers(anOb : pAnimOb; rp : pRastPort; flag : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L anOb,A0
- MOVEA.L rp,A1
- MOVE.L flag,D0
- MOVEA.L GfxBase,A6
- JSR -168(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION GetOutlinePen(rp : pRastPort) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVEA.L GfxBase,A6
- JSR -876(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE GetRGB32(const cm : pColorMap; firstcolor : ULONG; ncolors : ULONG; table : pUlong);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L cm,A0
- MOVE.L firstcolor,D0
- MOVE.L ncolors,D1
- MOVEA.L table,A1
- MOVEA.L GfxBase,A6
- JSR -900(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION GetRGB4(colorMap : pColorMap; entry : LONGINT) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L colorMap,A0
- MOVE.L entry,D0
- MOVEA.L GfxBase,A6
- JSR -582(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE GetRPAttrsA(const rp : pRastPort;const tags : pTagItem);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVEA.L tags,A1
- MOVEA.L GfxBase,A6
- JSR -1044(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION GetSprite(sprite : pSimpleSprite; num : LONGINT) : smallint;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sprite,A0
- MOVE.L num,D0
- MOVEA.L GfxBase,A6
- JSR -408(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetVPModeID(const vp : pViewPort) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vp,A0
- MOVEA.L GfxBase,A6
- JSR -792(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE GfxAssociate(const associateNode : POINTER; gfxNodePtr : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L associateNode,A0
- MOVEA.L gfxNodePtr,A1
- MOVEA.L GfxBase,A6
- JSR -672(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE GfxFree(gfxNodePtr : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L gfxNodePtr,A0
- MOVEA.L GfxBase,A6
- JSR -666(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION GfxLookUp(const associateNode : POINTER) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L associateNode,A0
- MOVEA.L GfxBase,A6
- JSR -702(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GfxNew(gfxNodeType : ULONG) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L gfxNodeType,D0
- MOVEA.L GfxBase,A6
- JSR -660(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE InitArea(areaInfo : pAreaInfo; vectorBuffer : POINTER; maxVectors : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L areaInfo,A0
- MOVEA.L vectorBuffer,A1
- MOVE.L maxVectors,D0
- MOVEA.L GfxBase,A6
- JSR -282(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE InitBitMap(bitMap : pBitMap; depth : LONGINT; width : LONGINT; height : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L bitMap,A0
- MOVE.L depth,D0
- MOVE.L width,D1
- MOVE.L height,D2
- MOVEA.L GfxBase,A6
- JSR -390(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE InitGels(head : pVSprite; tail : pVSprite; gelsInfo : pGelsInfo);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L head,A0
- MOVEA.L tail,A1
- MOVEA.L gelsInfo,A2
- MOVEA.L GfxBase,A6
- JSR -120(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE InitGMasks(anOb : pAnimOb);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L anOb,A0
- MOVEA.L GfxBase,A6
- JSR -174(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE InitMasks(vSprite : pVSprite);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vSprite,A0
- MOVEA.L GfxBase,A6
- JSR -126(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE InitRastPort(rp : pRastPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVEA.L GfxBase,A6
- JSR -198(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION InitTmpRas(tmpRas : pTmpRas; buffer : PLANEPTR; size : LONGINT) : pTmpRas;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L tmpRas,A0
- MOVEA.L buffer,A1
- MOVE.L size,D0
- MOVEA.L GfxBase,A6
- JSR -468(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE InitView(view : pView);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L view,A1
- MOVEA.L GfxBase,A6
- JSR -360(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE InitVPort(vp : pViewPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vp,A0
- MOVEA.L GfxBase,A6
- JSR -204(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE LoadRGB32(vp : pViewPort;const table : pULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vp,A0
- MOVEA.L table,A1
- MOVEA.L GfxBase,A6
- JSR -882(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE LoadRGB4(vp : pViewPort;const colors : pWord; count : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vp,A0
- MOVEA.L colors,A1
- MOVE.L count,D0
- MOVEA.L GfxBase,A6
- JSR -192(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE LoadView(view : pView);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L view,A1
- MOVEA.L GfxBase,A6
- JSR -222(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE LockLayerRom(layer : pLayer);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L layer,A5
- MOVEA.L GfxBase,A6
- JSR -432(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION MakeVPort(view : pView; vp : pViewPort) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L view,A0
- MOVEA.L vp,A1
- MOVEA.L GfxBase,A6
- JSR -216(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ModeNotAvailable(modeID : ULONG) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L modeID,D0
- MOVEA.L GfxBase,A6
- JSR -798(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE Move(rp : pRastPort; x : LONGINT; y : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L x,D0
- MOVE.L y,D1
- MOVEA.L GfxBase,A6
- JSR -240(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE MoveSprite(vp : pViewPort; sprite : pSimpleSprite; x : LONGINT; y : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vp,A0
- MOVEA.L sprite,A1
- MOVE.L x,D0
- MOVE.L y,D1
- MOVEA.L GfxBase,A6
- JSR -426(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION MrgCop(view : pView) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L view,A1
- MOVEA.L GfxBase,A6
- JSR -210(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION NewRegion : pRegion;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L GfxBase,A6
- JSR -516(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION NextDisplayInfo(displayID : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L displayID,D0
- MOVEA.L GfxBase,A6
- JSR -732(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ObtainBestPenA(cm : pColorMap; r : ULONG; g : ULONG; b : ULONG;const tags : pTagItem) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L cm,A0
- MOVE.L r,D1
- MOVE.L g,D2
- MOVE.L b,D3
- MOVEA.L tags,A1
- MOVEA.L GfxBase,A6
- JSR -840(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ObtainPen(cm : pColorMap; n : ULONG; r : ULONG; g : ULONG; b : ULONG; f : LONGINT) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L cm,A0
- MOVE.L n,D0
- MOVE.L r,D1
- MOVE.L g,D2
- MOVE.L b,D3
- MOVE.L f,D4
- MOVEA.L GfxBase,A6
- JSR -954(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION OpenFont(textAttr : pTextAttr) : pTextFont;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L textAttr,A0
- MOVEA.L GfxBase,A6
- JSR -072(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION OpenMonitor(const monitorName : pCHAR; displayID : ULONG) : pMonitorSpec;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L monitorName,A1
- MOVE.L displayID,D0
- MOVEA.L GfxBase,A6
- JSR -714(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION OrRectRegion(region : pRegion;const rectangle : pRectangle) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L region,A0
- MOVEA.L rectangle,A1
- MOVEA.L GfxBase,A6
- JSR -510(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION OrRegionRegion(const srcRegion : pRegion; destRegion : pRegion) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L srcRegion,A0
- MOVEA.L destRegion,A1
- MOVEA.L GfxBase,A6
- JSR -612(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE OwnBlitter;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L GfxBase,A6
- JSR -456(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE PolyDraw(rp : pRastPort; count : LONGINT;const polyTable : pLongint);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L count,D0
- MOVEA.L polyTable,A0
- MOVEA.L GfxBase,A6
- JSR -336(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE QBlit(blit : pbltnode);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L blit,A1
- MOVEA.L GfxBase,A6
- JSR -276(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE QBSBlit(blit : pbltnode);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L blit,A1
- MOVEA.L GfxBase,A6
- JSR -294(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION ReadPixel(rp : pRastPort; x : LONGINT; y : LONGINT) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L x,D0
- MOVE.L y,D1
- MOVEA.L GfxBase,A6
- JSR -318(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ReadPixelArray8(rp : pRastPort; xstart : ULONG; ystart : ULONG; xstop : ULONG; ystop : ULONG; array_ : pointer; temprp : pRastPort) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVE.L xstart,D0
- MOVE.L ystart,D1
- MOVE.L xstop,D2
- MOVE.L ystop,D3
- MOVEA.L array_,A2
- MOVEA.L temprp,A1
- MOVEA.L GfxBase,A6
- JSR -780(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ReadPixelLine8(rp : pRastPort; xstart : ULONG; ystart : ULONG; width : ULONG; array_ : pointer; tempRP : pRastPort) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVE.L xstart,D0
- MOVE.L ystart,D1
- MOVE.L width,D2
- MOVEA.L array_,A2
- MOVEA.L tempRP,A1
- MOVEA.L GfxBase,A6
- JSR -768(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE RectFill(rp : pRastPort; xMin : LONGINT; yMin : LONGINT; xMax : LONGINT; yMax : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L xMin,D0
- MOVE.L yMin,D1
- MOVE.L xMax,D2
- MOVE.L yMax,D3
- MOVEA.L GfxBase,A6
- JSR -306(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ReleasePen(cm : pColorMap; n : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L cm,A0
- MOVE.L n,D0
- MOVEA.L GfxBase,A6
- JSR -948(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE RemFont(textFont : pTextFont);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L textFont,A1
- MOVEA.L GfxBase,A6
- JSR -486(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE RemIBob(bob : pBob; rp : pRastPort; vp : pViewPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L bob,A0
- MOVEA.L rp,A1
- MOVEA.L vp,A2
- MOVEA.L GfxBase,A6
- JSR -132(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE RemVSprite(vSprite : pVSprite);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vSprite,A0
- MOVEA.L GfxBase,A6
- JSR -138(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION ScalerDiv(factor : ULONG; numerator : ULONG; denominator : ULONG) : WORD;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L factor,D0
- MOVE.L numerator,D1
- MOVE.L denominator,D2
- MOVEA.L GfxBase,A6
- JSR -684(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE ScrollRaster(rp : pRastPort; dx : LONGINT; dy : LONGINT; xMin : LONGINT; yMin : LONGINT; xMax : LONGINT; yMax : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L dx,D0
- MOVE.L dy,D1
- MOVE.L xMin,D2
- MOVE.L yMin,D3
- MOVE.L xMax,D4
- MOVE.L yMax,D5
- MOVEA.L GfxBase,A6
- JSR -396(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ScrollRasterBF(rp : pRastPort; dx : LONGINT; dy : LONGINT; xMin : LONGINT; yMin : LONGINT; xMax : LONGINT; yMax : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L dx,D0
- MOVE.L dy,D1
- MOVE.L xMin,D2
- MOVE.L yMin,D3
- MOVE.L xMax,D4
- MOVE.L yMax,D5
- MOVEA.L GfxBase,A6
- JSR -1002(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ScrollVPort(vp : pViewPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vp,A0
- MOVEA.L GfxBase,A6
- JSR -588(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE SetABPenDrMd(rp : pRastPort; apen : ULONG; bpen : ULONG; drawmode : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L apen,D0
- MOVE.L bpen,D1
- MOVE.L drawmode,D2
- MOVEA.L GfxBase,A6
- JSR -894(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE SetAPen(rp : pRastPort; pen : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L pen,D0
- MOVEA.L GfxBase,A6
- JSR -342(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE SetBPen(rp : pRastPort; pen : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L pen,D0
- MOVEA.L GfxBase,A6
- JSR -348(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION SetChipRev(want : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L want,D0
- MOVEA.L GfxBase,A6
- JSR -888(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE SetCollision(num : ULONG; routine : tPROCEDURE; gelsInfo : pGelsInfo);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L num,D0
- MOVEA.L routine,A0
- MOVEA.L gelsInfo,A1
- MOVEA.L GfxBase,A6
- JSR -144(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE SetDrMd(rp : pRastPort; drawMode : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L drawMode,D0
- MOVEA.L GfxBase,A6
- JSR -354(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION SetFont(rp : pRastPort;const textFont : pTextFont) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVEA.L textFont,A0
- MOVEA.L GfxBase,A6
- JSR -066(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE SetMaxPen(rp : pRastPort; maxpen : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVE.L maxpen,D0
- MOVEA.L GfxBase,A6
- JSR -990(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION SetOutlinePen(rp : pRastPort; pen : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVE.L pen,D0
- MOVEA.L GfxBase,A6
- JSR -978(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE SetRast(rp : pRastPort; pen : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L pen,D0
- MOVEA.L GfxBase,A6
- JSR -234(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE SetRGB32(vp : pViewPort; n : ULONG; r : ULONG; g : ULONG; b : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vp,A0
- MOVE.L n,D0
- MOVE.L r,D1
- MOVE.L g,D2
- MOVE.L b,D3
- MOVEA.L GfxBase,A6
- JSR -852(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE SetRGB32CM(cm : pColorMap; n : ULONG; r : ULONG; g : ULONG; b : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L cm,A0
- MOVE.L n,D0
- MOVE.L r,D1
- MOVE.L g,D2
- MOVE.L b,D3
- MOVEA.L GfxBase,A6
- JSR -996(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE SetRGB4(vp : pViewPort; index : LONGINT; red : ULONG; green : ULONG; blue : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vp,A0
- MOVE.L index,D0
- MOVE.L red,D1
- MOVE.L green,D2
- MOVE.L blue,D3
- MOVEA.L GfxBase,A6
- JSR -288(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE SetRGB4CM(colorMap : pColorMap; index : LONGINT; red : ULONG; green : ULONG; blue : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L colorMap,A0
- MOVE.L index,D0
- MOVE.L red,D1
- MOVE.L green,D2
- MOVE.L blue,D3
- MOVEA.L GfxBase,A6
- JSR -630(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE SetRPAttrsA(rp : pRastPort;const tags : pTagItem);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVEA.L tags,A1
- MOVEA.L GfxBase,A6
- JSR -1038(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION SetSoftStyle(rp : pRastPort; style : ULONG; enable : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L style,D0
- MOVE.L enable,D1
- MOVEA.L GfxBase,A6
- JSR -090(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetWriteMask(rp : pRastPort; msk : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVE.L msk,D0
- MOVEA.L GfxBase,A6
- JSR -984(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE SortGList(rp : pRastPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVEA.L GfxBase,A6
- JSR -150(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE StripFont(font : pTextFont);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L font,A0
- MOVEA.L GfxBase,A6
- JSR -822(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE SyncSBitMap(layer : pLayer);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L layer,A0
- MOVEA.L GfxBase,A6
- JSR -444(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION GText(rp : pRastPort;const string_ : pCHAR; count : ULONG) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVEA.L string_,A0
- MOVE.L count,D0
- MOVEA.L GfxBase,A6
- JSR -060(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION TextExtent(rp : pRastPort;const string_ : pCHAR; count : LONGINT; _textExtent : pTextExtent) : smallint;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVEA.L string_,A0
- MOVE.L count,D0
- MOVEA.L _textExtent,A2
- MOVEA.L GfxBase,A6
- JSR -690(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION TextFit(rp : pRastPort;const string_ : pCHAR; strLen : ULONG; textExtent : pTextExtent; constrainingExtent : pTextExtent; strDirection : LONGINT; constrainingBitWidth : ULONG; constrainingBitHeight : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVEA.L string_,A0
- MOVE.L strLen,D0
- MOVEA.L textExtent,A2
- MOVEA.L constrainingExtent,A3
- MOVE.L strDirection,D1
- MOVE.L constrainingBitWidth,D2
- MOVE.L constrainingBitHeight,D3
- MOVEA.L GfxBase,A6
- JSR -696(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION TextLength(rp : pRastPort;const string_ : pCHAR; count : ULONG) : smallint;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVEA.L string_,A0
- MOVE.L count,D0
- MOVEA.L GfxBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION UCopperListInit(uCopList : pUCopList; n : LONGINT) : pCopList;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L uCopList,A0
- MOVE.L n,D0
- MOVEA.L GfxBase,A6
- JSR -594(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE UnlockLayerRom(layer : pLayer);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L layer,A5
- MOVEA.L GfxBase,A6
- JSR -438(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION VBeamPos : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L GfxBase,A6
- JSR -384(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION VideoControl(colorMap : pColorMap; tagarray : pTagItem) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L colorMap,A0
- MOVEA.L tagarray,A1
- MOVEA.L GfxBase,A6
- JSR -708(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE WaitBlit;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L GfxBase,A6
- JSR -228(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE WaitBOVP(vp : pViewPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vp,A0
- MOVEA.L GfxBase,A6
- JSR -402(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE WaitTOF;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L GfxBase,A6
- JSR -270(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION WeighTAMatch(reqTextAttr : pTextAttr; targetTextAttr : pTextAttr; targetTags : pTagItem) : smallint;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L reqTextAttr,A0
- MOVEA.L targetTextAttr,A1
- MOVEA.L targetTags,A2
- MOVEA.L GfxBase,A6
- JSR -804(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE WriteChunkyPixels(rp : pRastPort; xstart : ULONG; ystart : ULONG; xstop : ULONG; ystop : ULONG; array_ : pointer; bytesperrow : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVE.L xstart,D0
- MOVE.L ystart,D1
- MOVE.L xstop,D2
- MOVE.L ystop,D3
- MOVEA.L array_,A2
- MOVE.L bytesperrow,D4
- MOVEA.L GfxBase,A6
- JSR -1056(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION WritePixel(rp : pRastPort; x : LONGINT; y : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A1
- MOVE.L x,D0
- MOVE.L y,D1
- MOVEA.L GfxBase,A6
- JSR -324(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION WritePixelArray8(rp : pRastPort; xstart : ULONG; ystart : ULONG; xstop : ULONG; ystop : ULONG; array_ : pointer; temprp : pRastPort) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVE.L xstart,D0
- MOVE.L ystart,D1
- MOVE.L xstop,D2
- MOVE.L ystop,D3
- MOVEA.L array_,A2
- MOVEA.L temprp,A1
- MOVEA.L GfxBase,A6
- JSR -786(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION WritePixelLine8(rp : pRastPort; xstart : ULONG; ystart : ULONG; width : ULONG; array_ : pointer; tempRP : pRastPort) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVE.L xstart,D0
- MOVE.L ystart,D1
- MOVE.L width,D2
- MOVEA.L array_,A2
- MOVEA.L tempRP,A1
- MOVEA.L GfxBase,A6
- JSR -774(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION XorRectRegion(region : pRegion;const rectangle : pRectangle) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L region,A0
- MOVEA.L rectangle,A1
- MOVEA.L GfxBase,A6
- JSR -558(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION XorRegionRegion(const srcRegion : pRegion; destRegion : pRegion) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L srcRegion,A0
- MOVEA.L destRegion,A1
- MOVEA.L GfxBase,A6
- JSR -618(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
const
{ Change VERSION and LIBVERSION to proper values }
diff --git a/packages/amunits/src/coreunits/keyboard.pas b/packages/amunits/src/coreunits/akeyboard.pas
index 44aa83c6b1..5a56bbf36d 100644
--- a/packages/amunits/src/coreunits/keyboard.pas
+++ b/packages/amunits/src/coreunits/akeyboard.pas
@@ -18,7 +18,7 @@
Keyboard device command definitions
}
-unit keyboard;
+unit akeyboard;
INTERFACE
diff --git a/packages/amunits/src/coreunits/amigados.pas b/packages/amunits/src/coreunits/amigados.pas
index eb1aa2d363..34eed754b0 100644
--- a/packages/amunits/src/coreunits/amigados.pas
+++ b/packages/amunits/src/coreunits/amigados.pas
@@ -43,12 +43,7 @@
nils.sjoholm@mailbox.swipnet.se
}
-
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
unit amigados;
@@ -205,7 +200,7 @@ Type
id_InUse : Longint; { Flag, zero if not in use }
end;
-{$PACKRECORDS NORMAL}
+{$PACKRECORDS 2}
Const
@@ -1578,169 +1573,169 @@ CONST
{ no tags are defined yet for NewLoadSeg }
-PROCEDURE AbortPkt(port : pMsgPort; pkt : pDosPacket);
-FUNCTION AddBuffers(const name : pCHAR; number : LONGINT) : BOOLEAN;
-FUNCTION AddDosEntry(dlist : pDosList) : BOOLEAN;
-FUNCTION AddPart(dirname : pCHAR;const filename : pCHAR; size : ULONG) : BOOLEAN;
-FUNCTION AddSegment(const name : pCHAR; seg : LONGINT; system : LONGINT) : BOOLEAN;
-FUNCTION AllocDosObject(type_ : ULONG;const tags : pTagItem) : POINTER;
-FUNCTION AllocDosObjectTagList(type_ : ULONG;const tags : pTagItem) : POINTER;
-FUNCTION AssignAdd(const name : pCHAR; lock : LONGINT) : BOOLEAN;
-FUNCTION AssignLate(const name : pCHAR;const path : pCHAR) : BOOLEAN;
-FUNCTION AssignLock(const name : pCHAR; lock : LONGINT) : BOOLEAN;
-FUNCTION AssignPath(const name : pCHAR;const path : pCHAR) : BOOLEAN;
-FUNCTION AttemptLockDosList(flags : ULONG) : pDosList;
-FUNCTION ChangeMode(type_ : LONGINT; fh : LONGINT; newmode : LONGINT) : BOOLEAN;
-FUNCTION CheckSignal(mask : LONGINT) : LONGINT;
-FUNCTION Cli : pCommandLineInterface;
-FUNCTION CliInitNewcli(dp : pDosPacket) : LONGINT;
-FUNCTION CliInitRun(dp : pDosPacket) : LONGINT;
-FUNCTION CompareDates(const date1 : pDateStamp;const date2 : pDateStamp) : LONGINT;
-FUNCTION CreateDir(const name : pCHAR) : LONGINT;
-FUNCTION CreateNewProc(const tags : pTagItem) : pProcess;
-FUNCTION CreateNewProcTagList(const tags : pTagItem) : pProcess;
-FUNCTION CreateProc(const name : pCHAR; pri : LONGINT; segList : LONGINT; stackSize : LONGINT) : pMsgPort;
-FUNCTION CurrentDir(lock : LONGINT) : LONGINT;
-PROCEDURE DateStamp(date : pDateStamp);
-FUNCTION DateToStr(datetime : pDateTime) : BOOLEAN;
-FUNCTION DeleteFile(const name : pCHAR) : BOOLEAN;
-FUNCTION DeleteVar(const name : pCHAR; flags : ULONG) : BOOLEAN;
-FUNCTION DeviceProc(const name : pCHAR) : pMsgPort;
-FUNCTION DoPkt(port : pMsgPort; action : LONGINT; arg1 : LONGINT; arg2 : LONGINT; arg3 : LONGINT; arg4 : LONGINT; arg5 : LONGINT) : LONGINT;
-FUNCTION DoPkt0(port : pMsgPort; action : LONGINT) : LONGINT;
-FUNCTION DoPkt1(port : pMsgPort; action : LONGINT; arg1 : LONGINT) : LONGINT;
-FUNCTION DoPkt2(port : pMsgPort; action : LONGINT; arg1 : LONGINT; arg2 : LONGINT) : LONGINT;
-FUNCTION DoPkt3(port : pMsgPort; action : LONGINT; arg1 : LONGINT; arg2 : LONGINT; arg3 : LONGINT) : LONGINT;
-FUNCTION DoPkt4(port : pMsgPort; action : LONGINT; arg1 : LONGINT; arg2 : LONGINT; arg3 : LONGINT; arg4 : LONGINT) : LONGINT;
-PROCEDURE DOSClose(file_ : LONGINT);
-PROCEDURE DOSDelay(timeout : LONGINT);
-PROCEDURE DOSExit(returnCode : LONGINT);
-FUNCTION DOSFlush(fh : LONGINT) : BOOLEAN;
-FUNCTION DOSInput : LONGINT;
-FUNCTION DOSOpen(const name : pCHAR; accessMode : LONGINT) : LONGINT;
-FUNCTION DOSOutput : LONGINT;
-FUNCTION DOSRead(file_ : LONGINT; buffer : POINTER; length : LONGINT) : LONGINT;
-FUNCTION DOSRename(const oldName : pCHAR;const newName : pCHAR) : Boolean;
-FUNCTION DOSSeek(file_ : LONGINT; position : LONGINT; offset : LONGINT) : LONGINT;
-FUNCTION DOSWrite(file_ : LONGINT; buffer : POINTER; length : LONGINT) : LONGINT;
-FUNCTION DupLock(lock : LONGINT) : LONGINT;
-FUNCTION DupLockFromFH(fh : LONGINT) : LONGINT;
-PROCEDURE EndNotify(notify : pNotifyRequest);
-FUNCTION ErrorReport(code : LONGINT; type_ : LONGINT; arg1 : ULONG; device : pMsgPort) : BOOLEAN;
-FUNCTION ExAll(lock : LONGINT; buffer : pExAllData; size : LONGINT; data : LONGINT; control : pExAllControl) : BOOLEAN;
-PROCEDURE ExAllEnd(lock : LONGINT; buffer : pExAllData; size : LONGINT; data : LONGINT; control : pExAllControl);
-FUNCTION Examine(lock : LONGINT; fileInfoBlock : pFileInfoBlock) : BOOLEAN;
-FUNCTION ExamineFH(fh : LONGINT; fib : pFileInfoBlock) : BOOLEAN;
-FUNCTION Execute(const string_ : pCHAR; file_ : LONGINT; file2 : LONGINT) : BOOLEAN;
-FUNCTION ExNext(lock : LONGINT; fileInfoBlock : pFileInfoBlock) : BOOLEAN;
-FUNCTION Fault(code : LONGINT; header : pCHAR; buffer : pCHAR; len : LONGINT) : BOOLEAN;
-FUNCTION FGetC(fh : LONGINT) : LONGINT;
-FUNCTION FGets(fh : LONGINT; buf : pCHAR; buflen : ULONG) : pCHAR;
-FUNCTION FilePart(const path : pCHAR) : pCHAR;
-FUNCTION FindArg(const keyword : pCHAR;const arg_template : pCHAR) : LONGINT;
-FUNCTION FindCliProc(num : ULONG) : pProcess;
-FUNCTION FindDosEntry(const dlist : pDosList;const name : pCHAR; flags : ULONG) : pDosList;
-FUNCTION FindSegment(const name : pCHAR;const seg : pSegment; system : LONGINT) : pSegment;
-FUNCTION FindVar(const name : pCHAR; type_ : ULONG) : pLocalVar;
-FUNCTION Format(const filesystem : pCHAR;const volumename : pCHAR; dostype : ULONG) : BOOLEAN;
-FUNCTION FPutC(fh : LONGINT; ch : LONGINT) : LONGINT;
-FUNCTION FPuts(fh : LONGINT;const str : pCHAR) : BOOLEAN;
-FUNCTION FRead(fh : LONGINT; block : POINTER; blocklen : ULONG; number : ULONG) : LONGINT;
-PROCEDURE FreeArgs(args : pRDArgs);
-PROCEDURE FreeDeviceProc(dp : pDevProc);
-PROCEDURE FreeDosEntry(dlist : pDosList);
-PROCEDURE FreeDosObject(type_ : ULONG; ptr : POINTER);
-FUNCTION FWrite(fh : LONGINT; block : POINTER; blocklen : ULONG; number : ULONG) : LONGINT;
-FUNCTION GetArgStr : pCHAR;
-FUNCTION GetConsoleTask : pMsgPort;
-FUNCTION GetCurrentDirName(buf : pCHAR; len : LONGINT) : BOOLEAN;
-FUNCTION GetDeviceProc(const name : pCHAR; dp : pDevProc) : pDevProc;
-FUNCTION GetFileSysTask : pMsgPort;
-FUNCTION GetProgramDir : LONGINT;
-FUNCTION GetProgramName(buf : pCHAR; len : LONGINT) : BOOLEAN;
-FUNCTION GetPrompt(buf : pCHAR; len : LONGINT) : BOOLEAN;
-FUNCTION GetVar(const name : pCHAR; buffer : pCHAR; size : LONGINT; flags : LONGINT) : LONGINT;
-FUNCTION Info(lock : LONGINT; parameterBlock : pInfoData) : BOOLEAN;
-FUNCTION Inhibit(const name : pCHAR; onoff : LONGINT) : BOOLEAN;
-FUNCTION InternalLoadSeg(fh : LONGINT; table : LONGINT;const funcarray : pLONGINT; VAR stack : LONGINT) : LONGINT;
-FUNCTION InternalUnLoadSeg(seglist : LONGINT; freefunc : tPROCEDURE) : BOOLEAN;
-FUNCTION IoErr : LONGINT;
-FUNCTION IsFileSystem(const name : pCHAR) : BOOLEAN;
-FUNCTION IsInteractive(file_ : LONGINT) : BOOLEAN;
-FUNCTION LoadSeg(const name : pCHAR) : LONGINT;
-FUNCTION Lock(const name : pCHAR; type_ : LONGINT) : LONGINT;
-FUNCTION LockDosList(flags : ULONG) : pDosList;
-FUNCTION LockRecord(fh : LONGINT; offset : ULONG; length : ULONG; mode : ULONG; timeout : ULONG) : BOOLEAN;
-FUNCTION LockRecords(recArray : pRecordLock; timeout : ULONG) : BOOLEAN;
-FUNCTION MakeDosEntry(const name : pCHAR; type_ : LONGINT) : pDosList;
-FUNCTION MakeLink(const name : pCHAR; dest : LONGINT; soft : LONGINT) : BOOLEAN;
-PROCEDURE MatchEnd(anchor : pAnchorPath);
-FUNCTION MatchFirst(const pat : pCHAR; anchor : pAnchorPath) : LONGINT;
-FUNCTION MatchNext(anchor : pAnchorPath) : LONGINT;
-FUNCTION MatchPattern(const pat : pCHAR; str : pCHAR) : BOOLEAN;
-FUNCTION MatchPatternNoCase(const pat : pCHAR; str : pCHAR) : BOOLEAN;
-FUNCTION MaxCli : ULONG;
-FUNCTION NameFromFH(fh : LONGINT; buffer : pCHAR; len : LONGINT) : BOOLEAN;
-FUNCTION NameFromLock(lock : LONGINT; buffer : pCHAR; len : LONGINT) : BOOLEAN;
-FUNCTION NewLoadSeg(const file_ : pCHAR;const tags : pTagItem) : LONGINT;
-FUNCTION NewLoadSegTagList(const file_ : pCHAR;const tags : pTagItem) : LONGINT;
-FUNCTION NextDosEntry(const dlist : pDosList; flags : ULONG) : pDosList;
-FUNCTION OpenFromLock(lock : LONGINT) : LONGINT;
-FUNCTION ParentDir(lock : LONGINT) : LONGINT;
-FUNCTION ParentOfFH(fh : LONGINT) : LONGINT;
-FUNCTION ParsePattern(const pat : pCHAR; buf : pCHAR; buflen : LONGINT) : LONGINT;
-FUNCTION ParsePatternNoCase(const pat : pCHAR; buf : pCHAR; buflen : LONGINT) : LONGINT;
-FUNCTION PathPart(const path : pCHAR) : pCHAR;
-FUNCTION PrintFault(code : LONGINT;const header : pCHAR) : BOOLEAN;
-FUNCTION PutStr(const str : pCHAR) : BOOLEAN;
-FUNCTION ReadArgs(const arg_template : pCHAR; arra : pLONGINT; args : pRDArgs) : pRDArgs;
-FUNCTION ReadItem(const name : pCHAR; maxchars : LONGINT; cSource : pCSource) : LONGINT;
-FUNCTION ReadLink(port : pMsgPort; lock : LONGINT;const path : pCHAR; buffer : pCHAR; size : ULONG) : BOOLEAN;
-FUNCTION Relabel(const drive : pCHAR;const newname : pCHAR) : BOOLEAN;
-FUNCTION RemAssignList(const name : pCHAR; lock : LONGINT) : BOOLEAN;
-FUNCTION RemDosEntry(dlist : pDosList) : BOOLEAN;
-FUNCTION RemSegment(seg : pSegment) : BOOLEAN;
-PROCEDURE ReplyPkt(dp : pDosPacket; res1 : LONGINT; res2 : LONGINT);
-FUNCTION RunCommand(seg : LONGINT; stack : LONGINT;const paramptr : pCHAR; paramlen : LONGINT) : LONGINT;
-FUNCTION SameDevice(lock1 : LONGINT; lock2 : LONGINT) : BOOLEAN;
-FUNCTION SameLock(lock1 : LONGINT; lock2 : LONGINT) : LONGINT;
-FUNCTION SelectInput(fh : LONGINT) : LONGINT;
-FUNCTION SelectOutput(fh : LONGINT) : LONGINT;
-PROCEDURE SendPkt(dp : pDosPacket; port : pMsgPort; replyport : pMsgPort);
-FUNCTION SetArgStr(const string_ : pCHAR) : BOOLEAN;
-FUNCTION SetComment(const name : pCHAR;const comment : pCHAR) : BOOLEAN;
-FUNCTION SetConsoleTask(const task : pMsgPort) : pMsgPort;
-FUNCTION SetCurrentDirName(const name : pCHAR) : BOOLEAN;
-FUNCTION SetFileDate(const name : pCHAR; date : pDateStamp) : BOOLEAN;
-FUNCTION SetFileSize(fh : LONGINT; pos : LONGINT; mode : LONGINT) : BOOLEAN;
-FUNCTION SetFileSysTask(const task : pMsgPort) : pMsgPort;
-FUNCTION SetIoErr(result : LONGINT) : LONGINT;
-FUNCTION SetMode(fh : LONGINT; mode : LONGINT) : BOOLEAN;
-FUNCTION SetOwner(const name : pCHAR; owner_info : LONGINT) : BOOLEAN;
-FUNCTION SetProgramDir(lock : LONGINT) : LONGINT;
-FUNCTION SetProgramName(const name : pCHAR) : BOOLEAN;
-FUNCTION SetPrompt(const name : pCHAR) : BOOLEAN;
-FUNCTION SetProtection(const name : pCHAR; protect : LONGINT) : BOOLEAN;
-FUNCTION SetVar(const name : pCHAR; buffer : pCHAR; size : LONGINT; flags : LONGINT) : BOOLEAN;
-FUNCTION SetVBuf(fh : LONGINT; buff : pCHAR; type_ : LONGINT; size : LONGINT) : BOOLEAN;
-FUNCTION SplitName(const name : pCHAR; seperator : ULONG; buf : pCHAR; oldpos : LONGINT; size : LONGINT) : smallint;
-FUNCTION StartNotify(notify : pNotifyRequest) : BOOLEAN;
-FUNCTION StrToDate(datetime : pDateTime) : BOOLEAN;
-FUNCTION StrToLong(const string_ : pCHAR; VAR value : LONGINT) : LONGINT;
-FUNCTION SystemTagList(const command : pCHAR;const tags : pTagItem) : LONGINT;
-FUNCTION DOSSystem(const command : pCHAR;const tags : pTagItem) : LONGINT;
-FUNCTION UnGetC(fh : LONGINT; character : LONGINT) : LONGINT;
-PROCEDURE UnLoadSeg(seglist : LONGINT);
-PROCEDURE UnLock(lock : LONGINT);
-PROCEDURE UnLockDosList(flags : ULONG);
-FUNCTION UnLockRecord(fh : LONGINT; offset : ULONG; length : ULONG) : BOOLEAN;
-FUNCTION UnLockRecords(recArray : pRecordLock) : BOOLEAN;
-FUNCTION VFPrintf(fh : LONGINT;const format : pCHAR;const argarray : POINTER) : LONGINT;
-PROCEDURE VFWritef(fh : LONGINT;const format : pCHAR;const argarray : pLONGINT);
-FUNCTION VPrintf(const format : pCHAR; const argarray : POINTER) : LONGINT;
-FUNCTION WaitForChar(file_ : LONGINT; timeout : LONGINT) : BOOLEAN;
-FUNCTION WaitPkt : pDosPacket;
-FUNCTION WriteChars(const buf : pCHAR; buflen : ULONG) : LONGINT;
+PROCEDURE AbortPkt(port : pMsgPort location 'd1'; pkt : pDosPacket location 'd2'); syscall _DOSBase 264;
+FUNCTION AddBuffers(const name : pCHAR location 'd1'; number : LONGINT location 'd2') : LongBool; syscall _DOSBase 732;
+FUNCTION AddDosEntry(dlist : pDosList location 'd1') : LongBool; syscall _DOSBase 678;
+FUNCTION AddPart(dirname : pCHAR location 'd1';const filename : pCHAR location 'd2'; size : ULONG location 'd3') : LongBool; syscall _DOSBase 882;
+FUNCTION AddSegment(const name : pCHAR location 'd1'; seg : LONGINT location 'd2'; system : LONGINT location 'd3') : LongBool; syscall _DOSBase 774;
+FUNCTION AllocDosObject(type_ : ULONG location 'd1';const tags : pTagItem location 'd2') : POINTER; syscall _DOSBase 228;
+FUNCTION AllocDosObjectTagList(type_ : ULONG location 'd1';const tags : pTagItem location 'd2') : POINTER; syscall _DOSBase 228;
+FUNCTION AssignAdd(const name : pCHAR location 'd1'; lock : LONGINT location 'd2') : LongBool; syscall _DOSBase 630;
+FUNCTION AssignLate(const name : pCHAR location 'd1';const path : pCHAR location 'd2') : LongBool; syscall _DOSBase 618;
+FUNCTION AssignLock(const name : pCHAR location 'd1'; lock : LONGINT location 'd2') : LongBool; syscall _DOSBase 612;
+FUNCTION AssignPath(const name : pCHAR location 'd1';const path : pCHAR location 'd2') : LongBool; syscall _DOSBase 624;
+FUNCTION AttemptLockDosList(flags : ULONG location 'd1') : pDosList; syscall _DOSBase 666;
+FUNCTION ChangeMode(type_ : LONGINT location 'd1'; fh : LONGINT location 'd2'; newmode : LONGINT location 'd3') : LongBool; syscall _DOSBase 450;
+FUNCTION CheckSignal(mask : LONGINT location 'd1') : LONGINT; syscall _DOSBase 792;
+FUNCTION Cli : pCommandLineInterface; syscall _DOSBase 492;
+FUNCTION CliInitNewcli(dp : pDosPacket location 'a0') : LONGINT; syscall _DOSBase 930;
+FUNCTION CliInitRun(dp : pDosPacket location 'a0') : LONGINT; syscall _DOSBase 936;
+FUNCTION CompareDates(const date1 : pDateStamp location 'd1';const date2 : pDateStamp location 'd2') : LONGINT; syscall _DOSBase 738;
+FUNCTION CreateDir(const name : pCHAR location 'd1') : LONGINT; syscall _DOSBase 120;
+FUNCTION CreateNewProc(const tags : pTagItem location 'd1') : pProcess; syscall _DOSBase 498;
+FUNCTION CreateNewProcTagList(const tags : pTagItem location 'd1') : pProcess; syscall _DOSBase 498;
+FUNCTION CreateProc(const name : pCHAR location 'd1'; pri : LONGINT location 'd2'; segList : LONGINT location 'd3'; stackSize : LONGINT location 'd4') : pMsgPort; syscall _DOSBase 138;
+FUNCTION CurrentDir(lock : LONGINT location 'd1') : LONGINT; syscall _DOSBase 126;
+PROCEDURE DateStamp(date : pDateStamp location 'd1'); syscall _DOSBase 192;
+FUNCTION DateToStr(datetime : pDateTime location 'd1') : LongBool; syscall _DOSBase 744;
+FUNCTION DeleteFile(const name : pCHAR location 'd1') : LongBool; syscall _DOSBase 072;
+FUNCTION DeleteVar(const name : pCHAR location 'd1'; flags : ULONG location 'd2') : LongBool; syscall _DOSBase 912;
+FUNCTION DeviceProc(const name : pCHAR location 'd1') : pMsgPort; syscall _DOSBase 174;
+FUNCTION DoPkt(port : pMsgPort location 'd1'; action : LONGINT location 'd2'; arg1 : LONGINT location 'd3'; arg2 : LONGINT location 'd4'; arg3 : LONGINT location 'd5'; arg4 : LONGINT location 'd6'; arg5 : LONGINT location 'd7') : LONGINT; syscall _DOSBase 240;
+FUNCTION DoPkt0(port : pMsgPort location 'd1'; action : LONGINT location 'd2') : LONGINT; syscall _DOSBase 240;
+FUNCTION DoPkt1(port : pMsgPort location 'd1'; action : LONGINT location 'd2'; arg1 : LONGINT location 'd3') : LONGINT; syscall _DOSBase 240;
+FUNCTION DoPkt2(port : pMsgPort location 'd1'; action : LONGINT location 'd2'; arg1 : LONGINT location 'd3'; arg2 : LONGINT location 'd4') : LONGINT; syscall _DOSBase 240;
+FUNCTION DoPkt3(port : pMsgPort location 'd1'; action : LONGINT location 'd2'; arg1 : LONGINT location 'd3'; arg2 : LONGINT location 'd4'; arg3 : LONGINT location 'd5') : LONGINT; syscall _DOSBase 240;
+FUNCTION DoPkt4(port : pMsgPort location 'd1'; action : LONGINT location 'd2'; arg1 : LONGINT location 'd3'; arg2 : LONGINT location 'd4'; arg3 : LONGINT location 'd5'; arg4 : LONGINT location 'd6') : LONGINT; syscall _DOSBase 240;
+PROCEDURE DOSClose(file_ : LONGINT location 'd1'); syscall _DOSBase 036;
+PROCEDURE DOSDelay(timeout : LONGINT location 'd1'); syscall _DOSBase 198;
+PROCEDURE DOSExit(returnCode : LONGINT location 'd1'); syscall _DOSBase 144;
+FUNCTION DOSFlush(fh : LONGINT location 'd1') : LongBool; syscall _DOSBase 360;
+FUNCTION DOSInput : LONGINT; syscall _DOSBase 054;
+FUNCTION DOSOpen(const name : pCHAR location 'd1'; accessMode : LONGINT location 'd2') : LONGINT; syscall _DOSBase 030;
+FUNCTION DOSOutput : LONGINT; syscall _DOSBase 060;
+FUNCTION DOSRead(file_ : LONGINT location 'd1'; buffer : POINTER location 'd2'; length : LONGINT location 'd3') : LONGINT; syscall _DOSBase 042;
+FUNCTION DOSRename(const oldName : pCHAR location 'd1';const newName : pCHAR location 'd2') : LongBool; syscall _DOSBase 078;
+FUNCTION DOSSeek(file_ : LONGINT location 'd1'; position : LONGINT location 'd2'; offset : LONGINT location 'd3') : LONGINT; syscall _DOSBase 066;
+FUNCTION DOSWrite(file_ : LONGINT location 'd1'; buffer : POINTER location 'd2'; length : LONGINT location 'd3') : LONGINT; syscall _DOSBase 048;
+FUNCTION DupLock(lock : LONGINT location 'd1') : LONGINT; syscall _DOSBase 096;
+FUNCTION DupLockFromFH(fh : LONGINT location 'd1') : LONGINT; syscall _DOSBase 372;
+PROCEDURE EndNotify(notify : pNotifyRequest location 'd1'); syscall _DOSBase 894;
+FUNCTION ErrorReport(code : LONGINT location 'd1'; type_ : LONGINT location 'd2'; arg1 : ULONG location 'd3'; device : pMsgPort location 'd4') : LongBool; syscall _DOSBase 480;
+FUNCTION ExAll(lock : LONGINT location 'd1'; buffer : pExAllData location 'd2'; size : LONGINT location 'd3'; data : LONGINT location 'd4'; control : pExAllControl location 'd5') : LongBool; syscall _DOSBase 432;
+PROCEDURE ExAllEnd(lock : LONGINT location 'd1'; buffer : pExAllData location 'd2'; size : LONGINT location 'd3'; data : LONGINT location 'd4'; control : pExAllControl location 'd5'); syscall _DOSBase 990;
+FUNCTION Examine(lock : LONGINT location 'd1'; fileInfoBlock : pFileInfoBlock location 'd2') : LongBool; syscall _DOSBase 102;
+FUNCTION ExamineFH(fh : LONGINT location 'd1'; fib : pFileInfoBlock location 'd2') : LongBool; syscall _DOSBase 390;
+FUNCTION Execute(const string_ : pCHAR location 'd1'; file_ : LONGINT location 'd2'; file2 : LONGINT location 'd3') : LongBool; syscall _DOSBase 222;
+FUNCTION ExNext(lock : LONGINT location 'd1'; fileInfoBlock : pFileInfoBlock location 'd2') : LongBool; syscall _DOSBase 108;
+FUNCTION Fault(code : LONGINT location 'd1'; header : pCHAR location 'd2'; buffer : pCHAR location 'd3'; len : LONGINT location 'd4') : LongBool; syscall _DOSBase 468;
+FUNCTION FGetC(fh : LONGINT location 'd1') : LONGINT; syscall _DOSBase 306;
+FUNCTION FGets(fh : LONGINT location 'd1'; buf : pCHAR location 'd2'; buflen : ULONG location 'd3') : pCHAR; syscall _DOSBase 336;
+FUNCTION FilePart(const path : pCHAR location 'd1') : pCHAR; syscall _DOSBase 870;
+FUNCTION FindArg(const keyword : pCHAR location 'd1';const arg_template : pCHAR location 'd2') : LONGINT; syscall _DOSBase 804;
+FUNCTION FindCliProc(num : ULONG location 'd1') : pProcess; syscall _DOSBase 546;
+FUNCTION FindDosEntry(const dlist : pDosList location 'd1';const name : pCHAR location 'd2'; flags : ULONG location 'd3') : pDosList; syscall _DOSBase 684;
+FUNCTION FindSegment(const name : pCHAR location 'd1';const seg : pSegment location 'd2'; system : LONGINT location 'd3') : pSegment; syscall _DOSBase 780;
+FUNCTION FindVar(const name : pCHAR location 'd1'; type_ : ULONG location 'd2') : pLocalVar; syscall _DOSBase 918;
+FUNCTION Format(const filesystem : pCHAR location 'd1';const volumename : pCHAR location 'd2'; dostype : ULONG location 'd3') : LongBool; syscall _DOSBase 714;
+FUNCTION FPutC(fh : LONGINT location 'd1'; ch : LONGINT location 'd2') : LONGINT; syscall _DOSBase 312;
+FUNCTION FPuts(fh : LONGINT location 'd1';const str : pCHAR location 'd2') : LongBool; syscall _DOSBase 342;
+FUNCTION FRead(fh : LONGINT location 'd1'; block : POINTER location 'd2'; blocklen : ULONG location 'd3'; number : ULONG location 'd4') : LONGINT; syscall _DOSBase 324;
+PROCEDURE FreeArgs(args : pRDArgs location 'd1'); syscall _DOSBase 858;
+PROCEDURE FreeDeviceProc(dp : pDevProc location 'd1'); syscall _DOSBase 648;
+PROCEDURE FreeDosEntry(dlist : pDosList); syscall _DOSBase 702;
+PROCEDURE FreeDosObject(type_ : ULONG location 'd1'; ptr : POINTER location 'd2'); syscall _DOSBase 234;
+FUNCTION FWrite(fh : LONGINT location 'd1'; block : POINTER location 'd2'; blocklen : ULONG location 'd3'; number : ULONG location 'd4') : LONGINT; syscall _DOSBase 330;
+FUNCTION GetArgStr : pCHAR; syscall _DOSBase 534;
+FUNCTION GetConsoleTask : pMsgPort; syscall _DOSBase 510;
+FUNCTION GetCurrentDirName(buf : pCHAR location 'd1'; len : LONGINT location 'd2') : LongBool; syscall _DOSBase 564;
+FUNCTION GetDeviceProc(const name : pCHAR location 'd1'; dp : pDevProc location 'd2') : pDevProc; syscall _DOSBase 642;
+FUNCTION GetFileSysTask : pMsgPort; syscall _DOSBase 522;
+FUNCTION GetProgramDir : LONGINT; syscall _DOSBase 600;
+FUNCTION GetProgramName(buf : pCHAR location 'd1'; len : LONGINT location 'd2') : LongBool; syscall _DOSBase 576;
+FUNCTION GetPrompt(buf : pCHAR location 'd1'; len : LONGINT location 'd2') : LongBool; syscall _DOSBase 588;
+FUNCTION GetVar(const name : pCHAR location 'd1'; buffer : pCHAR location 'd2'; size : LONGINT location 'd3'; flags : LONGINT location 'd4') : LONGINT; syscall _DOSBase 906;
+FUNCTION Info(lock : LONGINT location 'd1'; parameterBlock : pInfoData location 'd2') : LongBool; syscall _DOSBase 114;
+FUNCTION Inhibit(const name : pCHAR location 'd1'; onoff : LONGINT location 'd2') : LongBool; syscall _DOSBase 726;
+FUNCTION InternalLoadSeg(fh : LONGINT location 'd0'; table : LONGINT location 'a0';const funcarray : pLONGINT location 'a1'; VAR stack : LONGINT location 'a2') : LONGINT; syscall _DOSBase 756;
+FUNCTION InternalUnLoadSeg(seglist : LONGINT location 'd1'; freefunc : tPROCEDURE location 'a1') : LongBool; syscall _DOSBase 762;
+FUNCTION IoErr : LONGINT; syscall _DOSBase 132;
+FUNCTION IsFileSystem(const name : pCHAR location 'd1') : LongBool; syscall _DOSBase 708;
+FUNCTION IsInteractive(file_ : LONGINT location 'd1') : LongBool; syscall _DOSBase 216;
+FUNCTION LoadSeg(const name : pCHAR location 'd1') : LONGINT; syscall _DOSBase 150;
+FUNCTION Lock(const name : pCHAR location 'd1'; type_ : LONGINT location 'd2') : LONGINT; syscall _DOSBase 084;
+FUNCTION LockDosList(flags : ULONG location 'd1') : pDosList; syscall _DOSBase 654;
+FUNCTION LockRecord(fh : LONGINT location 'd1'; offset : ULONG location 'd2'; length : ULONG location 'd3'; mode : ULONG location 'd4'; timeout : ULONG location 'd5') : LongBool; syscall _DOSBase 270;
+FUNCTION LockRecords(recArray : pRecordLock location 'd1'; timeout : ULONG location 'd2') : LongBool; syscall _DOSBase 276;
+FUNCTION MakeDosEntry(const name : pCHAR location 'd1'; type_ : LONGINT location 'd2') : pDosList; syscall _DOSBase 696;
+FUNCTION MakeLink(const name : pCHAR location 'd1'; dest : LONGINT location 'd2'; soft : LONGINT location 'd3') : LongBool; syscall _DOSBase 444;
+PROCEDURE MatchEnd(anchor : pAnchorPath location 'd1'); syscall _DOSBase 834;
+FUNCTION MatchFirst(const pat : pCHAR location 'd1'; anchor : pAnchorPath location 'd2') : LONGINT; syscall _DOSBase 822;
+FUNCTION MatchNext(anchor : pAnchorPath location 'd1') : LONGINT; syscall _DOSBase 828;
+FUNCTION MatchPattern(const pat : pCHAR location 'd1'; str : pCHAR location 'd2') : LongBool; syscall _DOSBase 846;
+FUNCTION MatchPatternNoCase(const pat : pCHAR location 'd1'; str : pCHAR location 'd2') : LongBool; syscall _DOSBase 972;
+FUNCTION MaxCli : ULONG; syscall _DOSBase 552;
+FUNCTION NameFromFH(fh : LONGINT location 'd1'; buffer : pCHAR location 'd2'; len : LONGINT location 'd3') : LongBool; syscall _DOSBase 408;
+FUNCTION NameFromLock(lock : LONGINT location 'd1'; buffer : pCHAR location 'd2'; len : LONGINT location 'd3') : LongBool; syscall _DOSBase 402;
+FUNCTION NewLoadSeg(const file_ : pCHAR location 'd1';const tags : pTagItem location 'd2') : LONGINT; syscall _DOSBase 768;
+FUNCTION NewLoadSegTagList(const file_ : pCHAR location 'd1';const tags : pTagItem location 'd2') : LONGINT; syscall _DOSBase 768;
+FUNCTION NextDosEntry(const dlist : pDosList location 'd1'; flags : ULONG location 'd2') : pDosList; syscall _DOSBase 690;
+FUNCTION OpenFromLock(lock : LONGINT location 'd1') : LONGINT; syscall _DOSBase 378;
+FUNCTION ParentDir(lock : LONGINT location 'd1') : LONGINT; syscall _DOSBase 210;
+FUNCTION ParentOfFH(fh : LONGINT location 'd1') : LONGINT; syscall _DOSBase 384;
+FUNCTION ParsePattern(const pat : pCHAR location 'd1'; buf : pCHAR location 'd2'; buflen : LONGINT location 'd3') : LONGINT; syscall _DOSBase 840;
+FUNCTION ParsePatternNoCase(const pat : pCHAR location 'd1'; buf : pCHAR location 'd2'; buflen : LONGINT location 'd3') : LONGINT; syscall _DOSBase 966;
+FUNCTION PathPart(const path : pCHAR location 'd1') : pCHAR; syscall _DOSBase 876;
+FUNCTION PrintFault(code : LONGINT location 'd1';const header : pCHAR location 'd2') : LongBool; syscall _DOSBase 474;
+FUNCTION PutStr(const str : pCHAR location 'd1') : LongBool; syscall _DOSBase 948;
+FUNCTION ReadArgs(const arg_template : pCHAR location 'd1'; arra : pLONGINT location 'd2'; args : pRDArgs location 'd3') : pRDArgs; syscall _DOSBase 798;
+FUNCTION ReadItem(const name : pCHAR location 'd1'; maxchars : LONGINT location 'd2'; cSource : pCSource location 'd3') : LONGINT; syscall _DOSBase 810;
+FUNCTION ReadLink(port : pMsgPort location 'd1'; lock : LONGINT location 'd2';const path : pCHAR location 'd3'; buffer : pCHAR location 'd4'; size : ULONG location 'd5') : LongBool; syscall _DOSBase 438;
+FUNCTION Relabel(const drive : pCHAR location 'd1';const newname : pCHAR location 'd2') : LongBool; syscall _DOSBase 720;
+FUNCTION RemAssignList(const name : pCHAR location 'd1'; lock : LONGINT location 'd2') : LongBool; syscall _DOSBase 636;
+FUNCTION RemDosEntry(dlist : pDosList location 'd1') : LongBool; syscall _DOSBase 672;
+FUNCTION RemSegment(seg : pSegment location 'd1') : LongBool; syscall _DOSBase 786;
+PROCEDURE ReplyPkt(dp : pDosPacket location 'd1'; res1 : LONGINT location 'd2'; res2 : LONGINT location 'd3'); syscall _DOSBase 258;
+FUNCTION RunCommand(seg : LONGINT location 'd1'; stack : LONGINT location 'd2';const paramptr : pCHAR location 'd3'; paramlen : LONGINT location 'd4') : LONGINT; syscall _DOSBase 504;
+FUNCTION SameDevice(lock1 : LONGINT location 'd1'; lock2 : LONGINT location 'd2') : LongBool; syscall _DOSBase 984;
+FUNCTION SameLock(lock1 : LONGINT location 'd1'; lock2 : LONGINT location 'd2') : LONGINT; syscall _DOSBase 420;
+FUNCTION SelectInput(fh : LONGINT location 'd1') : LONGINT; syscall _DOSBase 294;
+FUNCTION SelectOutput(fh : LONGINT location 'd1') : LONGINT; syscall _DOSBase 300;
+PROCEDURE SendPkt(dp : pDosPacket location 'd1'; port : pMsgPort location 'd2'; replyport : pMsgPort location 'd3'); syscall _DOSBase 246;
+FUNCTION SetArgStr(const string_ : pCHAR location 'd1') : LongBool; syscall _DOSBase 540;
+FUNCTION SetComment(const name : pCHAR location 'd1';const comment : pCHAR location 'd2') : LongBool; syscall _DOSBase 180;
+FUNCTION SetConsoleTask(const task : pMsgPort location 'd1') : pMsgPort; syscall _DOSBase 516;
+FUNCTION SetCurrentDirName(const name : pCHAR location 'd1') : LongBool; syscall _DOSBase 558;
+FUNCTION SetFileDate(const name : pCHAR location 'd1'; date : pDateStamp location 'd2') : LongBool; syscall _DOSBase 396;
+FUNCTION SetFileSize(fh : LONGINT location 'd1'; pos : LONGINT location 'd2'; mode : LONGINT location 'd3') : LongBool; syscall _DOSBase 456;
+FUNCTION SetFileSysTask(const task : pMsgPort location 'd1') : pMsgPort; syscall _DOSBase 528;
+FUNCTION SetIoErr(result : LONGINT location 'd1') : LONGINT; syscall _DOSBase 462;
+FUNCTION SetMode(fh : LONGINT location 'd1'; mode : LONGINT location 'd2') : LongBool; syscall _DOSBase 426;
+FUNCTION SetOwner(const name : pCHAR location 'd1'; owner_info : LONGINT location 'd2') : LongBool; syscall _DOSBase 996;
+FUNCTION SetProgramDir(lock : LONGINT location 'd1') : LONGINT; syscall _DOSBase 594;
+FUNCTION SetProgramName(const name : pCHAR location 'd1') : LongBool; syscall _DOSBase 570;
+FUNCTION SetPrompt(const name : pCHAR location 'd1') : LongBool; syscall _DOSBase 582;
+FUNCTION SetProtection(const name : pCHAR location 'd1'; protect : LONGINT location 'd2') : LongBool; syscall _DOSBase 186;
+FUNCTION SetVar(const name : pCHAR location 'd1'; buffer : pCHAR location 'd2'; size : LONGINT location 'd3'; flags : LONGINT location 'd4') : LongBool; syscall _DOSBase 900;
+FUNCTION SetVBuf(fh : LONGINT location 'd1'; buff : pCHAR location 'd2'; type_ : LONGINT location 'd3'; size : LONGINT location 'd4') : LongBool; syscall _DOSBase 366;
+FUNCTION SplitName(const name : pCHAR location 'd1'; seperator : ULONG location 'd2'; buf : pCHAR location 'd3'; oldpos : LONGINT location 'd4'; size : LONGINT location 'd5') : smallint; syscall _DOSBase 414;
+FUNCTION StartNotify(notify : pNotifyRequest location 'd1') : LongBool; syscall _DOSBase 888;
+FUNCTION StrToDate(datetime : pDateTime location 'd1') : LongBool; syscall _DOSBase 750;
+FUNCTION StrToLong(const string_ : pCHAR location 'd1'; VAR value : LONGINT location 'd2') : LONGINT; syscall _DOSBase 816;
+FUNCTION SystemTagList(const command : pCHAR location 'd1';const tags : pTagItem location 'd2') : LONGINT; syscall _DOSBase 606;
+FUNCTION DOSSystem(const command : pCHAR location 'd1';const tags : pTagItem location 'd2') : LONGINT; syscall _DOSBase 606;
+FUNCTION UnGetC(fh : LONGINT location 'd1'; character : LONGINT location 'd2') : LONGINT; syscall _DOSBase 318;
+PROCEDURE UnLoadSeg(seglist : LONGINT location 'd1'); syscall _DOSBase 156;
+PROCEDURE UnLock(lock : LONGINT location 'd1'); syscall _DOSBase 090;
+PROCEDURE UnLockDosList(flags : ULONG location 'd1'); syscall _DOSBase 660;
+FUNCTION UnLockRecord(fh : LONGINT location 'd1'; offset : ULONG location 'd2'; length : ULONG location 'd3') : LongBool; syscall _DOSBase 282;
+FUNCTION UnLockRecords(recArray : pRecordLock location 'd1') : LongBool; syscall _DOSBase 288;
+FUNCTION VFPrintf(fh : LONGINT location 'd1';const format : pCHAR location 'd2';const argarray : POINTER location 'd3') : LONGINT; syscall _DOSBase 354;
+PROCEDURE VFWritef(fh : LONGINT location 'd1';const format : pCHAR location 'd2';const argarray : pLONGINT location 'd3'); syscall _DOSBase 348;
+FUNCTION VPrintf(const format : pCHAR location 'd1'; const argarray : POINTER location 'd2') : LONGINT; syscall _DOSBase 954;
+FUNCTION WaitForChar(file_ : LONGINT location 'd1'; timeout : LONGINT location 'd2') : LongBool; syscall _DOSBase 204;
+FUNCTION WaitPkt : pDosPacket; syscall _DOSBase 252;
+FUNCTION WriteChars(const buf : pCHAR location 'd1'; buflen : ULONG location 'd2') : LONGINT; syscall _DOSBase 942;
FUNCTION BADDR(bval :BPTR): POINTER;
FUNCTION MKBADDR(adr: Pointer): BPTR;
@@ -1829,8 +1824,6 @@ IMPLEMENTATION
uses pastoc;
-
-
FUNCTION BADDR(bval : BPTR): POINTER;
BEGIN
BADDR := POINTER( bval shl 2);
@@ -1841,2296 +1834,6 @@ BEGIN
MKBADDR := BPTR( LONGINT(adr) shr 2);
END;
-PROCEDURE AbortPkt(port : pMsgPort; pkt : pDosPacket);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L port,D1
- MOVE.L pkt,D2
- MOVEA.L _DOSBase,A6
- JSR -264(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION AddBuffers(const name : pCHAR; number : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L number,D2
- MOVEA.L _DOSBase,A6
- JSR -732(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AddDosEntry(dlist : pDosList) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dlist,D1
- MOVEA.L _DOSBase,A6
- JSR -678(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AddPart(dirname : pCHAR;const filename : pCHAR; size : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dirname,D1
- MOVE.L filename,D2
- MOVE.L size,D3
- MOVEA.L _DOSBase,A6
- JSR -882(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AddSegment(const name : pCHAR; seg : LONGINT; system : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L seg,D2
- MOVE.L system,D3
- MOVEA.L _DOSBase,A6
- JSR -774(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AllocDosObject(type_ : ULONG;const tags : pTagItem) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L type_,D1
- MOVE.L tags,D2
- MOVEA.L _DOSBase,A6
- JSR -228(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AllocDosObjectTagList(type_ : ULONG;const tags : pTagItem) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L type_,D1
- MOVE.L tags,D2
- MOVEA.L _DOSBase,A6
- JSR -228(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AssignAdd(const name : pCHAR; lock : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L lock,D2
- MOVEA.L _DOSBase,A6
- JSR -630(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AssignLate(const name : pCHAR;const path : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L path,D2
- MOVEA.L _DOSBase,A6
- JSR -618(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AssignLock(const name : pCHAR; lock : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L lock,D2
- MOVEA.L _DOSBase,A6
- JSR -612(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AssignPath(const name : pCHAR;const path : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L path,D2
- MOVEA.L _DOSBase,A6
- JSR -624(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AttemptLockDosList(flags : ULONG) : pDosList;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L flags,D1
- MOVEA.L _DOSBase,A6
- JSR -666(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ChangeMode(type_ : LONGINT; fh : LONGINT; newmode : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L type_,D1
- MOVE.L fh,D2
- MOVE.L newmode,D3
- MOVEA.L _DOSBase,A6
- JSR -450(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION CheckSignal(mask : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L mask,D1
- MOVEA.L _DOSBase,A6
- JSR -792(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION Cli : pCommandLineInterface;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -492(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CliInitNewcli(dp : pDosPacket) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L dp,A0
- MOVEA.L _DOSBase,A6
- JSR -930(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CliInitRun(dp : pDosPacket) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L dp,A0
- MOVEA.L _DOSBase,A6
- JSR -936(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CompareDates(const date1 : pDateStamp;const date2 : pDateStamp) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L date1,D1
- MOVE.L date2,D2
- MOVEA.L _DOSBase,A6
- JSR -738(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CreateDir(const name : pCHAR) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVEA.L _DOSBase,A6
- JSR -120(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CreateNewProc(const tags : pTagItem) : pProcess;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L tags,D1
- MOVEA.L _DOSBase,A6
- JSR -498(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CreateNewProcTagList(const tags : pTagItem) : pProcess;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L tags,D1
- MOVEA.L _DOSBase,A6
- JSR -498(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CreateProc(const name : pCHAR; pri : LONGINT; segList : LONGINT; stackSize : LONGINT) : pMsgPort;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L pri,D2
- MOVE.L segList,D3
- MOVE.L stackSize,D4
- MOVEA.L _DOSBase,A6
- JSR -138(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CurrentDir(lock : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVEA.L _DOSBase,A6
- JSR -126(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE DateStamp(date : pDateStamp);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L date,D1
- MOVEA.L _DOSBase,A6
- JSR -192(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION DateToStr(datetime : pDateTime) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L datetime,D1
- MOVEA.L _DOSBase,A6
- JSR -744(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION DeleteFile(const name : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVEA.L _DOSBase,A6
- JSR -072(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION DeleteVar(const name : pCHAR; flags : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L flags,D2
- MOVEA.L _DOSBase,A6
- JSR -912(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION DeviceProc(const name : pCHAR) : pMsgPort;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVEA.L _DOSBase,A6
- JSR -174(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DoPkt(port : pMsgPort; action : LONGINT; arg1 : LONGINT; arg2 : LONGINT; arg3 : LONGINT; arg4 : LONGINT; arg5 : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L port,D1
- MOVE.L action,D2
- MOVE.L arg1,D3
- MOVE.L arg2,D4
- MOVE.L arg3,D5
- MOVE.L arg4,D6
- MOVE.L arg5,D7
- MOVEA.L _DOSBase,A6
- JSR -240(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DoPkt0(port : pMsgPort; action : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L port,D1
- MOVE.L action,D2
- MOVEA.L _DOSBase,A6
- JSR -240(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DoPkt1(port : pMsgPort; action : LONGINT; arg1 : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L port,D1
- MOVE.L action,D2
- MOVE.L arg1,D3
- MOVEA.L _DOSBase,A6
- JSR -240(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DoPkt2(port : pMsgPort; action : LONGINT; arg1 : LONGINT; arg2 : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L port,D1
- MOVE.L action,D2
- MOVE.L arg1,D3
- MOVE.L arg2,D4
- MOVEA.L _DOSBase,A6
- JSR -240(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DoPkt3(port : pMsgPort; action : LONGINT; arg1 : LONGINT; arg2 : LONGINT; arg3 : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L port,D1
- MOVE.L action,D2
- MOVE.L arg1,D3
- MOVE.L arg2,D4
- MOVE.L arg3,D5
- MOVEA.L _DOSBase,A6
- JSR -240(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DoPkt4(port : pMsgPort; action : LONGINT; arg1 : LONGINT; arg2 : LONGINT; arg3 : LONGINT; arg4 : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L port,D1
- MOVE.L action,D2
- MOVE.L arg1,D3
- MOVE.L arg2,D4
- MOVE.L arg3,D5
- MOVE.L arg4,D6
- MOVEA.L _DOSBase,A6
- JSR -240(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE DOSClose(file_ : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L file_,D1
- MOVEA.L _DOSBase,A6
- JSR -036(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE DOSDelay(timeout : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L timeout,D1
- MOVEA.L _DOSBase,A6
- JSR -198(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE DOSExit(returnCode : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L returnCode,D1
- MOVEA.L _DOSBase,A6
- JSR -144(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION DOSFlush(fh : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVEA.L _DOSBase,A6
- JSR -360(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION DOSInput : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DOSOpen(const name : pCHAR; accessMode : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L accessMode,D2
- MOVEA.L _DOSBase,A6
- JSR -030(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DOSOutput : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -060(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DOSRead(file_ : LONGINT; buffer : POINTER; length : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L file_,D1
- MOVE.L buffer,D2
- MOVE.L length,D3
- MOVEA.L _DOSBase,A6
- JSR -042(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DOSRename(const oldName : pCHAR;const newName : pCHAR) : Boolean;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L oldName,D1
- MOVE.L newName,D2
- MOVEA.L _DOSBase,A6
- JSR -078(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION DOSSeek(file_ : LONGINT; position : LONGINT; offset : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L file_,D1
- MOVE.L position,D2
- MOVE.L offset,D3
- MOVEA.L _DOSBase,A6
- JSR -066(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DOSWrite(file_ : LONGINT; buffer : POINTER; length : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L file_,D1
- MOVE.L buffer,D2
- MOVE.L length,D3
- MOVEA.L _DOSBase,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DupLock(lock : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVEA.L _DOSBase,A6
- JSR -096(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DupLockFromFH(fh : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVEA.L _DOSBase,A6
- JSR -372(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE EndNotify(notify : pNotifyRequest);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L notify,D1
- MOVEA.L _DOSBase,A6
- JSR -894(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION ErrorReport(code : LONGINT; type_ : LONGINT; arg1 : ULONG; device : pMsgPort) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L code,D1
- MOVE.L type_,D2
- MOVE.L arg1,D3
- MOVE.L device,D4
- MOVEA.L _DOSBase,A6
- JSR -480(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION ExAll(lock : LONGINT; buffer : pExAllData; size : LONGINT; data : LONGINT; control : pExAllControl) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVE.L buffer,D2
- MOVE.L size,D3
- MOVE.L data,D4
- MOVE.L control,D5
- MOVEA.L _DOSBase,A6
- JSR -432(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE ExAllEnd(lock : LONGINT; buffer : pExAllData; size : LONGINT; data : LONGINT; control : pExAllControl);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVE.L buffer,D2
- MOVE.L size,D3
- MOVE.L data,D4
- MOVE.L control,D5
- MOVEA.L _DOSBase,A6
- JSR -990(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION Examine(lock : LONGINT; fileInfoBlock : pFileInfoBlock) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVE.L fileInfoBlock,D2
- MOVEA.L _DOSBase,A6
- JSR -102(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION ExamineFH(fh : LONGINT; fib : pFileInfoBlock) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L fib,D2
- MOVEA.L _DOSBase,A6
- JSR -390(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION Execute(const string_ : pCHAR; file_ : LONGINT; file2 : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L string_,D1
- MOVE.L file_,D2
- MOVE.L file2,D3
- MOVEA.L _DOSBase,A6
- JSR -222(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION ExNext(lock : LONGINT; fileInfoBlock : pFileInfoBlock) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVE.L fileInfoBlock,D2
- MOVEA.L _DOSBase,A6
- JSR -108(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION Fault(code : LONGINT; header : pCHAR; buffer : pCHAR; len : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L code,D1
- MOVE.L header,D2
- MOVE.L buffer,D3
- MOVE.L len,D4
- MOVEA.L _DOSBase,A6
- JSR -468(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION FGetC(fh : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVEA.L _DOSBase,A6
- JSR -306(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FGets(fh : LONGINT; buf : pCHAR; buflen : ULONG) : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L buf,D2
- MOVE.L buflen,D3
- MOVEA.L _DOSBase,A6
- JSR -336(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FilePart(const path : pCHAR) : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L path,D1
- MOVEA.L _DOSBase,A6
- JSR -870(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindArg(const keyword : pCHAR;const arg_template : pCHAR) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L keyword,D1
- MOVE.L arg_template,D2
- MOVEA.L _DOSBase,A6
- JSR -804(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindCliProc(num : ULONG) : pProcess;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L num,D1
- MOVEA.L _DOSBase,A6
- JSR -546(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindDosEntry(const dlist : pDosList;const name : pCHAR; flags : ULONG) : pDosList;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dlist,D1
- MOVE.L name,D2
- MOVE.L flags,D3
- MOVEA.L _DOSBase,A6
- JSR -684(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindSegment(const name : pCHAR;const seg : pSegment; system : LONGINT) : pSegment;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L seg,D2
- MOVE.L system,D3
- MOVEA.L _DOSBase,A6
- JSR -780(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindVar(const name : pCHAR; type_ : ULONG) : pLocalVar;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L type_,D2
- MOVEA.L _DOSBase,A6
- JSR -918(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION Format(const filesystem : pCHAR;const volumename : pCHAR; dostype : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L filesystem,D1
- MOVE.L volumename,D2
- MOVE.L dostype,D3
- MOVEA.L _DOSBase,A6
- JSR -714(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION FPutC(fh : LONGINT; ch : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L ch,D2
- MOVEA.L _DOSBase,A6
- JSR -312(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FPuts(fh : LONGINT;const str : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L str,D2
- MOVEA.L _DOSBase,A6
- JSR -342(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION FRead(fh : LONGINT; block : POINTER; blocklen : ULONG; number : ULONG) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L block,D2
- MOVE.L blocklen,D3
- MOVE.L number,D4
- MOVEA.L _DOSBase,A6
- JSR -324(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE FreeArgs(args : pRDArgs);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L args,D1
- MOVEA.L _DOSBase,A6
- JSR -858(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeDeviceProc(dp : pDevProc);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dp,D1
- MOVEA.L _DOSBase,A6
- JSR -648(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeDosEntry(dlist : pDosList);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dlist,D1
- MOVEA.L _DOSBase,A6
- JSR -702(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeDosObject(type_ : ULONG; ptr : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L type_,D1
- MOVE.L ptr,D2
- MOVEA.L _DOSBase,A6
- JSR -234(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION FWrite(fh : LONGINT; block : POINTER; blocklen : ULONG; number : ULONG) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L block,D2
- MOVE.L blocklen,D3
- MOVE.L number,D4
- MOVEA.L _DOSBase,A6
- JSR -330(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetArgStr : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -534(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetConsoleTask : pMsgPort;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -510(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetCurrentDirName(buf : pCHAR; len : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L buf,D1
- MOVE.L len,D2
- MOVEA.L _DOSBase,A6
- JSR -564(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION GetDeviceProc(const name : pCHAR; dp : pDevProc) : pDevProc;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L dp,D2
- MOVEA.L _DOSBase,A6
- JSR -642(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetFileSysTask : pMsgPort;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -522(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetProgramDir : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -600(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetProgramName(buf : pCHAR; len : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L buf,D1
- MOVE.L len,D2
- MOVEA.L _DOSBase,A6
- JSR -576(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION GetPrompt(buf : pCHAR; len : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L buf,D1
- MOVE.L len,D2
- MOVEA.L _DOSBase,A6
- JSR -588(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION GetVar(const name : pCHAR; buffer : pCHAR; size : LONGINT; flags : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L buffer,D2
- MOVE.L size,D3
- MOVE.L flags,D4
- MOVEA.L _DOSBase,A6
- JSR -906(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION Info(lock : LONGINT; parameterBlock : pInfoData) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVE.L parameterBlock,D2
- MOVEA.L _DOSBase,A6
- JSR -114(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION Inhibit(const name : pCHAR; onoff : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L onoff,D2
- MOVEA.L _DOSBase,A6
- JSR -726(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION InternalLoadSeg(fh : LONGINT; table : LONGINT;const funcarray : pLONGINT; VAR stack : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D0
- MOVEA.L table,A0
- MOVEA.L funcarray,A1
- MOVEA.L stack,A2
- MOVEA.L _DOSBase,A6
- JSR -756(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION InternalUnLoadSeg(seglist : LONGINT; freefunc : tPROCEDURE) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L seglist,D1
- MOVEA.L freefunc,A1
- MOVEA.L _DOSBase,A6
- JSR -762(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION IoErr : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -132(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION IsFileSystem(const name : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVEA.L _DOSBase,A6
- JSR -708(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION IsInteractive(file_ : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L file_,D1
- MOVEA.L _DOSBase,A6
- JSR -216(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION LoadSeg(const name : pCHAR) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVEA.L _DOSBase,A6
- JSR -150(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION Lock(const name : pCHAR; type_ : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L type_,D2
- MOVEA.L _DOSBase,A6
- JSR -084(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION LockDosList(flags : ULONG) : pDosList;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L flags,D1
- MOVEA.L _DOSBase,A6
- JSR -654(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION LockRecord(fh : LONGINT; offset : ULONG; length : ULONG; mode : ULONG; timeout : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L offset,D2
- MOVE.L length,D3
- MOVE.L mode,D4
- MOVE.L timeout,D5
- MOVEA.L _DOSBase,A6
- JSR -270(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION LockRecords(recArray : pRecordLock; timeout : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L recArray,D1
- MOVE.L timeout,D2
- MOVEA.L _DOSBase,A6
- JSR -276(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION MakeDosEntry(const name : pCHAR; type_ : LONGINT) : pDosList;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L type_,D2
- MOVEA.L _DOSBase,A6
- JSR -696(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION MakeLink(const name : pCHAR; dest : LONGINT; soft : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L dest,D2
- MOVE.L soft,D3
- MOVEA.L _DOSBase,A6
- JSR -444(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE MatchEnd(anchor : pAnchorPath);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L anchor,D1
- MOVEA.L _DOSBase,A6
- JSR -834(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION MatchFirst(const pat : pCHAR; anchor : pAnchorPath) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L pat,D1
- MOVE.L anchor,D2
- MOVEA.L _DOSBase,A6
- JSR -822(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION MatchNext(anchor : pAnchorPath) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L anchor,D1
- MOVEA.L _DOSBase,A6
- JSR -828(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION MatchPattern(const pat : pCHAR; str : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L pat,D1
- MOVE.L str,D2
- MOVEA.L _DOSBase,A6
- JSR -846(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION MatchPatternNoCase(const pat : pCHAR; str : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L pat,D1
- MOVE.L str,D2
- MOVEA.L _DOSBase,A6
- JSR -972(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION MaxCli : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -552(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION NameFromFH(fh : LONGINT; buffer : pCHAR; len : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L buffer,D2
- MOVE.L len,D3
- MOVEA.L _DOSBase,A6
- JSR -408(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION NameFromLock(lock : LONGINT; buffer : pCHAR; len : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVE.L buffer,D2
- MOVE.L len,D3
- MOVEA.L _DOSBase,A6
- JSR -402(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION NewLoadSeg(const file_ : pCHAR;const tags : pTagItem) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L file_,D1
- MOVE.L tags,D2
- MOVEA.L _DOSBase,A6
- JSR -768(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION NewLoadSegTagList(const file_ : pCHAR;const tags : pTagItem) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L file_,D1
- MOVE.L tags,D2
- MOVEA.L _DOSBase,A6
- JSR -768(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION NextDosEntry(const dlist : pDosList; flags : ULONG) : pDosList;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dlist,D1
- MOVE.L flags,D2
- MOVEA.L _DOSBase,A6
- JSR -690(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION OpenFromLock(lock : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVEA.L _DOSBase,A6
- JSR -378(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ParentDir(lock : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVEA.L _DOSBase,A6
- JSR -210(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ParentOfFH(fh : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVEA.L _DOSBase,A6
- JSR -384(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ParsePattern(const pat : pCHAR; buf : pCHAR; buflen : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L pat,D1
- MOVE.L buf,D2
- MOVE.L buflen,D3
- MOVEA.L _DOSBase,A6
- JSR -840(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ParsePatternNoCase(const pat : pCHAR; buf : pCHAR; buflen : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L pat,D1
- MOVE.L buf,D2
- MOVE.L buflen,D3
- MOVEA.L _DOSBase,A6
- JSR -966(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION PathPart(const path : pCHAR) : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L path,D1
- MOVEA.L _DOSBase,A6
- JSR -876(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION PrintFault(code : LONGINT;const header : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L code,D1
- MOVE.L header,D2
- MOVEA.L _DOSBase,A6
- JSR -474(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION PutStr(const str : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L str,D1
- MOVEA.L _DOSBase,A6
- JSR -948(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION ReadArgs(const arg_template : pCHAR; arra : pLONGINT; args : pRDArgs) : pRDArgs;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L arg_template,D1
- MOVE.L arra,D2
- MOVE.L args,D3
- MOVEA.L _DOSBase,A6
- JSR -798(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ReadItem(const name : pCHAR; maxchars : LONGINT; cSource : pCSource) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L maxchars,D2
- MOVE.L cSource,D3
- MOVEA.L _DOSBase,A6
- JSR -810(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ReadLink(port : pMsgPort; lock : LONGINT;const path : pCHAR; buffer : pCHAR; size : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L port,D1
- MOVE.L lock,D2
- MOVE.L path,D3
- MOVE.L buffer,D4
- MOVE.L size,D5
- MOVEA.L _DOSBase,A6
- JSR -438(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION Relabel(const drive : pCHAR;const newname : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L drive,D1
- MOVE.L newname,D2
- MOVEA.L _DOSBase,A6
- JSR -720(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION RemAssignList(const name : pCHAR; lock : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L lock,D2
- MOVEA.L _DOSBase,A6
- JSR -636(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION RemDosEntry(dlist : pDosList) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dlist,D1
- MOVEA.L _DOSBase,A6
- JSR -672(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION RemSegment(seg : pSegment) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L seg,D1
- MOVEA.L _DOSBase,A6
- JSR -786(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE ReplyPkt(dp : pDosPacket; res1 : LONGINT; res2 : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dp,D1
- MOVE.L res1,D2
- MOVE.L res2,D3
- MOVEA.L _DOSBase,A6
- JSR -258(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION RunCommand(seg : LONGINT; stack : LONGINT;const paramptr : pCHAR; paramlen : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L seg,D1
- MOVE.L stack,D2
- MOVE.L paramptr,D3
- MOVE.L paramlen,D4
- MOVEA.L _DOSBase,A6
- JSR -504(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SameDevice(lock1 : LONGINT; lock2 : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock1,D1
- MOVE.L lock2,D2
- MOVEA.L _DOSBase,A6
- JSR -984(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SameLock(lock1 : LONGINT; lock2 : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock1,D1
- MOVE.L lock2,D2
- MOVEA.L _DOSBase,A6
- JSR -420(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SelectInput(fh : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVEA.L _DOSBase,A6
- JSR -294(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SelectOutput(fh : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVEA.L _DOSBase,A6
- JSR -300(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE SendPkt(dp : pDosPacket; port : pMsgPort; replyport : pMsgPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dp,D1
- MOVE.L port,D2
- MOVE.L replyport,D3
- MOVEA.L _DOSBase,A6
- JSR -246(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION SetArgStr(const string_ : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L string_,D1
- MOVEA.L _DOSBase,A6
- JSR -540(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetComment(const name : pCHAR;const comment : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L comment,D2
- MOVEA.L _DOSBase,A6
- JSR -180(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetConsoleTask(const task : pMsgPort) : pMsgPort;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L task,D1
- MOVEA.L _DOSBase,A6
- JSR -516(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetCurrentDirName(const name : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVEA.L _DOSBase,A6
- JSR -558(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetFileDate(const name : pCHAR; date : pDateStamp) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L date,D2
- MOVEA.L _DOSBase,A6
- JSR -396(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetFileSize(fh : LONGINT; pos : LONGINT; mode : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L pos,D2
- MOVE.L mode,D3
- MOVEA.L _DOSBase,A6
- JSR -456(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetFileSysTask(const task : pMsgPort) : pMsgPort;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L task,D1
- MOVEA.L _DOSBase,A6
- JSR -528(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetIoErr(result : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L result,D1
- MOVEA.L _DOSBase,A6
- JSR -462(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetMode(fh : LONGINT; mode : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L mode,D2
- MOVEA.L _DOSBase,A6
- JSR -426(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetOwner(const name : pCHAR; owner_info : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L owner_info,D2
- MOVEA.L _DOSBase,A6
- JSR -996(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetProgramDir(lock : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVEA.L _DOSBase,A6
- JSR -594(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetProgramName(const name : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVEA.L _DOSBase,A6
- JSR -570(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetPrompt(const name : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVEA.L _DOSBase,A6
- JSR -582(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetProtection(const name : pCHAR; protect : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L protect,D2
- MOVEA.L _DOSBase,A6
- JSR -186(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetVar(const name : pCHAR; buffer : pCHAR; size : LONGINT; flags : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L buffer,D2
- MOVE.L size,D3
- MOVE.L flags,D4
- MOVEA.L _DOSBase,A6
- JSR -900(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetVBuf(fh : LONGINT; buff : pCHAR; type_ : LONGINT; size : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L buff,D2
- MOVE.L type_,D3
- MOVE.L size,D4
- MOVEA.L _DOSBase,A6
- JSR -366(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SplitName(const name : pCHAR; seperator : ULONG; buf : pCHAR; oldpos : LONGINT; size : LONGINT) : smallint;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L seperator,D2
- MOVE.L buf,D3
- MOVE.L oldpos,D4
- MOVE.L size,D5
- MOVEA.L _DOSBase,A6
- JSR -414(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION StartNotify(notify : pNotifyRequest) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L notify,D1
- MOVEA.L _DOSBase,A6
- JSR -888(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION StrToDate(datetime : pDateTime) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L datetime,D1
- MOVEA.L _DOSBase,A6
- JSR -750(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION StrToLong(const string_ : pCHAR; VAR value : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L string_,D1
- MOVE.L value,D2
- MOVEA.L _DOSBase,A6
- JSR -816(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SystemTagList(const command : pCHAR;const tags : pTagItem) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L command,D1
- MOVE.L tags,D2
- MOVEA.L _DOSBase,A6
- JSR -606(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DOSSystem(const command : pCHAR;const tags : pTagItem) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L command,D1
- MOVE.L tags,D2
- MOVEA.L _DOSBase,A6
- JSR -606(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION UnGetC(fh : LONGINT; character : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L character,D2
- MOVEA.L _DOSBase,A6
- JSR -318(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE UnLoadSeg(seglist : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L seglist,D1
- MOVEA.L _DOSBase,A6
- JSR -156(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE UnLock(lock : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVEA.L _DOSBase,A6
- JSR -090(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE UnLockDosList(flags : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L flags,D1
- MOVEA.L _DOSBase,A6
- JSR -660(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION UnLockRecord(fh : LONGINT; offset : ULONG; length : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L offset,D2
- MOVE.L length,D3
- MOVEA.L _DOSBase,A6
- JSR -282(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION UnLockRecords(recArray : pRecordLock) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L recArray,D1
- MOVEA.L _DOSBase,A6
- JSR -288(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION VFPrintf(fh : LONGINT;const format : pCHAR;const argarray : POINTER) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L format,D2
- MOVE.L argarray,D3
- MOVEA.L _DOSBase,A6
- JSR -354(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE VFWritef(fh : LONGINT;const format : pCHAR;const argarray : pLONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L fh,D1
- MOVE.L format,D2
- MOVE.L argarray,D3
- MOVEA.L _DOSBase,A6
- JSR -348(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION VPrintf(const format : pCHAR; const argarray : POINTER) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L format,D1
- MOVE.L argarray,D2
- MOVEA.L _DOSBase,A6
- JSR -954(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION WaitForChar(file_ : LONGINT; timeout : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L file_,D1
- MOVE.L timeout,D2
- MOVEA.L _DOSBase,A6
- JSR -204(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION WaitPkt : pDosPacket;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _DOSBase,A6
- JSR -252(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION WriteChars(const buf : pCHAR; buflen : ULONG) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L buf,D1
- MOVE.L buflen,D2
- MOVEA.L _DOSBase,A6
- JSR -942(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-
FUNCTION AddBuffers(const name : string; number : LONGINT) : BOOLEAN;
begin
AddBuffers := AddBuffers(pas2c(name), number);
diff --git a/packages/amunits/src/coreunits/amigaguide.pas b/packages/amunits/src/coreunits/amigaguide.pas
index 7f344ff053..64a82f05f4 100644
--- a/packages/amunits/src/coreunits/amigaguide.pas
+++ b/packages/amunits/src/coreunits/amigaguide.pas
@@ -282,7 +282,7 @@ var
IMPLEMENTATION
{$ifndef dont_use_openlib}
-uses msgbox;
+uses amsgbox;
{$endif dont_use_openlib}
diff --git a/packages/amunits/src/coreunits/amigaprinter.pas b/packages/amunits/src/coreunits/amigaprinter.pas
index 45ac34f5b2..b6fc67451d 100644
--- a/packages/amunits/src/coreunits/amigaprinter.pas
+++ b/packages/amunits/src/coreunits/amigaprinter.pas
@@ -18,7 +18,7 @@ unit amigaprinter;
INTERFACE
-uses exec, graphics,utility,intuition,prefs;
+uses exec,agraphics,utility,intuition,prefs;
Const
diff --git a/packages/amunits/src/coreunits/asl.pas b/packages/amunits/src/coreunits/asl.pas
index e2b746dd3b..edac4e8f3e 100644
--- a/packages/amunits/src/coreunits/asl.pas
+++ b/packages/amunits/src/coreunits/asl.pas
@@ -48,16 +48,12 @@
nils.sjoholm@mailbox.swipnet.se
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
UNIT asl;
INTERFACE
-uses exec, utility, workbench, graphics;
+uses exec, utility, workbench, agraphics;
{************************************************************************}
@@ -553,15 +549,15 @@ Const
VAR AslBase : pLibrary;
-FUNCTION AllocAslRequest(reqType : ULONG; tagList : pTagItem) : POINTER;
-FUNCTION AllocFileRequest : pFileRequester;
-FUNCTION AslRequest(requester : POINTER; tagList : pTagItem) : BOOLEAN;
-PROCEDURE FreeAslRequest(requester : POINTER);
-PROCEDURE FreeFileRequest(fileReq : pFileRequester);
-FUNCTION RequestFile(fileReq : pFileRequester) : BOOLEAN;
+FUNCTION AllocAslRequest(reqType : ULONG location 'd0'; tagList : pTagItem location 'a0') : POINTER; syscall AslBase 048;
+FUNCTION AllocFileRequest : pFileRequester; syscall AslBase 030;
+FUNCTION AslRequest(requester : POINTER location 'a0'; tagList : pTagItem location 'a1') : LongInt; syscall AslBase 060;
+PROCEDURE FreeAslRequest(requester : POINTER location 'a0'); syscall AslBase 054;
+PROCEDURE FreeFileRequest(fileReq : pFileRequester location 'a0'); syscall AslBase 036;
+FUNCTION RequestFile(fileReq : pFileRequester location 'a0') : LongInt; syscall AslBase 042;
-PROCEDURE AbortAslRequest(requester : POINTER);
-PROCEDURE ActivateAslRequest(requester : POINTER);
+PROCEDURE AbortAslRequest(requester : POINTER location 'a0'); syscall AslBase 078;
+PROCEDURE ActivateAslRequest(requester : POINTER location 'a0'); syscall AslBase 084;
{Here we read how to compile this unit}
{You can remove this include and use a define instead}
@@ -577,107 +573,9 @@ var
IMPLEMENTATION
{$ifndef dont_use_openlib}
-uses msgbox;
+uses amsgbox;
{$endif dont_use_openlib}
-FUNCTION AllocAslRequest(reqType : ULONG; tagList : pTagItem) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L reqType,D0
- MOVEA.L tagList,A0
- MOVEA.L AslBase,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AllocFileRequest : pFileRequester;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L AslBase,A6
- JSR -030(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AslRequest(requester : POINTER; tagList : pTagItem) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L requester,A0
- MOVEA.L tagList,A1
- MOVEA.L AslBase,A6
- JSR -060(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE FreeAslRequest(requester : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L requester,A0
- MOVEA.L AslBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeFileRequest(fileReq : pFileRequester);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L fileReq,A0
- MOVEA.L AslBase,A6
- JSR -036(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION RequestFile(fileReq : pFileRequester) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L fileReq,A0
- MOVEA.L AslBase,A6
- JSR -042(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE AbortAslRequest(requester : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L requester,A0
- MOVEA.L AslBase,A6
- JSR -078(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ActivateAslRequest(requester : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L requester,A0
- MOVEA.L AslBase,A6
- JSR -084(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
const
{ Change VERSION and LIBVERSION to proper values }
diff --git a/packages/amunits/src/coreunits/bullet.pas b/packages/amunits/src/coreunits/bullet.pas
index 6d52f69d1b..48032f60e3 100644
--- a/packages/amunits/src/coreunits/bullet.pas
+++ b/packages/amunits/src/coreunits/bullet.pas
@@ -31,11 +31,7 @@
nils.sjoholm@mailbox.swipnet.se Nils Sjoholm
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
unit bullet;
@@ -378,11 +374,11 @@ const
BULLETNAME : PChar = 'bullet.library';
-PROCEDURE CloseEngine(glyphEngine : pGlyphEngine);
-FUNCTION ObtainInfoA(glyphEngine : pGlyphEngine; tagList : pTagItem) : ULONG;
-FUNCTION OpenEngine : pGlyphEngine;
-FUNCTION ReleaseInfoA(glyphEngine : pGlyphEngine; tagList : pTagItem) : ULONG;
-FUNCTION SetInfoA(glyphEngine : pGlyphEngine; tagList : pTagItem) : ULONG;
+PROCEDURE CloseEngine(glyphEngine : pGlyphEngine location 'a0'); syscall BulletBase 036;
+FUNCTION ObtainInfoA(glyphEngine : pGlyphEngine location 'a0'; tagList : pTagItem location 'a1') : ULONG; syscall BulletBase 048;
+FUNCTION OpenEngine : pGlyphEngine; syscall BulletBase 030;
+FUNCTION ReleaseInfoA(glyphEngine : pGlyphEngine location 'a0'; tagList : pTagItem location 'a1') : ULONG; syscall BulletBase 054;
+FUNCTION SetInfoA(glyphEngine : pGlyphEngine location 'a0'; tagList : pTagItem location 'a1') : ULONG; syscall BulletBase 042;
{Here we read how to compile this unit}
{You can remove this include and use a define instead}
@@ -402,71 +398,9 @@ IMPLEMENTATION
}
uses
{$ifndef dont_use_openlib}
-msgbox;
+amsgbox;
{$endif dont_use_openlib}
-PROCEDURE CloseEngine(glyphEngine : pGlyphEngine);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L glyphEngine,A0
- MOVEA.L BulletBase,A6
- JSR -036(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION ObtainInfoA(glyphEngine : pGlyphEngine; tagList : pTagItem) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L glyphEngine,A0
- MOVEA.L tagList,A1
- MOVEA.L BulletBase,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION OpenEngine : pGlyphEngine;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L BulletBase,A6
- JSR -030(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ReleaseInfoA(glyphEngine : pGlyphEngine; tagList : pTagItem) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L glyphEngine,A0
- MOVEA.L tagList,A1
- MOVEA.L BulletBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetInfoA(glyphEngine : pGlyphEngine; tagList : pTagItem) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L glyphEngine,A0
- MOVEA.L tagList,A1
- MOVEA.L BulletBase,A6
- JSR -042(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-
const
{ Change VERSION and LIBVERSION to proper values }
@@ -550,6 +484,3 @@ begin
END. (* UNIT BULLET *)
-
-
-
diff --git a/packages/amunits/src/coreunits/colorwheel.pas b/packages/amunits/src/coreunits/colorwheel.pas
index 31bbac9cdc..5436f00cbb 100644
--- a/packages/amunits/src/coreunits/colorwheel.pas
+++ b/packages/amunits/src/coreunits/colorwheel.pas
@@ -26,11 +26,7 @@
nils.sjoholm@mailbox.swipnet.se Nils Sjoholm
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
UNIT colorwheel;
@@ -84,36 +80,13 @@ VAR ColorWheelBase : pLibrary;
const
COLORWHEELNAME : Pchar = 'colorwheel.library';
-PROCEDURE ConvertHSBToRGB(hsb : pColorWheelHSB; rgb : pColorWheelRGB);
-PROCEDURE ConvertRGBToHSB(rgb : pColorWheelRGB; hsb : pColorWheelHSB);
+PROCEDURE ConvertHSBToRGB(hsb : pColorWheelHSB location 'a0'; rgb : pColorWheelRGB location 'a1'); syscall ColorWheelBase 030;
+PROCEDURE ConvertRGBToHSB(rgb : pColorWheelRGB location 'a0'; hsb : pColorWheelHSB location 'a1'); syscall ColorWheelBase 036;
IMPLEMENTATION
-uses msgbox;
-
-PROCEDURE ConvertHSBToRGB(hsb : pColorWheelHSB; rgb : pColorWheelRGB);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L hsb,A0
- MOVEA.L rgb,A1
- MOVEA.L ColorWheelBase,A6
- JSR -030(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ConvertRGBToHSB(rgb : pColorWheelRGB; hsb : pColorWheelHSB);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rgb,A0
- MOVEA.L hsb,A1
- MOVEA.L ColorWheelBase,A6
- JSR -036(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
+uses amsgbox;
+
{$I useautoopenlib.inc}
{$ifdef use_auto_openlib}
diff --git a/packages/amunits/src/coreunits/commodities.pas b/packages/amunits/src/coreunits/commodities.pas
index 2b76d5eca8..d0ff6c739d 100644
--- a/packages/amunits/src/coreunits/commodities.pas
+++ b/packages/amunits/src/coreunits/commodities.pas
@@ -269,7 +269,7 @@ PROCEDURE SetFilter(filter : pCxObj; text : string);
IMPLEMENTATION
-uses pastoc,msgbox;
+uses pastoc,amsgbox;
FUNCTION ActivateCxObj(co : pCxObj; tru : LONGINT) : LONGINT;
BEGIN
diff --git a/packages/amunits/src/coreunits/console.pas b/packages/amunits/src/coreunits/console.pas
index 3780f3c90c..024faed007 100644
--- a/packages/amunits/src/coreunits/console.pas
+++ b/packages/amunits/src/coreunits/console.pas
@@ -24,12 +24,6 @@
nils.sjoholm@mailbox.swipnet.se Nils Sjoholm
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
-
unit console;
INTERFACE
@@ -127,40 +121,9 @@ const
VAR ConsoleDevice : pDevice;
-FUNCTION CDInputHandler(events : pInputEvent; consoleDev : pLibrary) : pInputEvent;
-FUNCTION RawKeyConvert(events : pInputEvent; buffer : pCHAR; length : LONGINT; keyMap : pKeyMap) : LONGINT;
+FUNCTION CDInputHandler(events : pInputEvent location 'a0'; consoleDev : pLibrary location 'a1') : pInputEvent; syscall ConsoleDevice 042;
+FUNCTION RawKeyConvert(events : pInputEvent location 'a0'; buffer : pCHAR location 'a1'; length : LONGINT location 'd1'; keyMap : pKeyMap location 'a2') : LONGINT; syscall ConsoleDevice 048;
IMPLEMENTATION
-FUNCTION CDInputHandler(events : pInputEvent; consoleDev : pLibrary) : pInputEvent;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L events,A0
- MOVEA.L consoleDev,A1
- MOVEA.L ConsoleDevice,A6
- JSR -042(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION RawKeyConvert(events : pInputEvent; buffer : pCHAR; length : LONGINT; keyMap : pKeyMap) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L events,A0
- MOVEA.L buffer,A1
- MOVE.L length,D1
- MOVEA.L keyMap,A2
- MOVEA.L ConsoleDevice,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
END. (* UNIT CONSOLE *)
-
-
-
diff --git a/packages/amunits/src/coreunits/datatypes.pas b/packages/amunits/src/coreunits/datatypes.pas
index 340ab4b7ac..25e5e44ab2 100644
--- a/packages/amunits/src/coreunits/datatypes.pas
+++ b/packages/amunits/src/coreunits/datatypes.pas
@@ -45,18 +45,14 @@
nils.sjoholm@mailbox.swipnet.se
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
unit datatypes;
INTERFACE
uses exec, amigados, intuition, utility,
- graphics, iffparse, amigaprinter, prtbase;
+ agraphics, iffparse, amigaprinter, prtbase;
const
{***************************************************************************}
@@ -1281,25 +1277,26 @@ const
}
-FUNCTION AddDTObject(win : pWindow; req : pRequester; o : pObject_; pos : LONGINT) : LONGINT;
-PROCEDURE DisposeDTObject(o : pObject_);
-FUNCTION DoAsyncLayout(o : pObject_; gpl : pgpLayout) : ULONG;
-FUNCTION DoDTMethodA(o : pObject_; win : pWindow; req : pRequester; msg : pLONGINT) : ULONG;
-FUNCTION GetDTAttrsA(o : pObject_; attrs : pTagItem) : ULONG;
-FUNCTION GetDTMethods(obj : pObject_) : Pointer;
-FUNCTION GetDTString(id : ULONG) : pCHAR;
-FUNCTION GetDTTriggerMethods(obj : pObject_) : pDTMethod;
-FUNCTION NewDTObjectA(name : POINTER; attrs : pTagItem): POINTER;
-FUNCTION ObtainDataTypeA(typ : ULONG; handle : POINTER; attrs : pTagItem) : pDataType;
-FUNCTION PrintDTObjectA(o : pObject_; w : pWindow; r : pRequester; msg : pdtPrint) : ULONG;
-PROCEDURE RefreshDTObjectA(o : pObject_; win : pWindow; req : pRequester; attrs : pTagItem);
-PROCEDURE ReleaseDataType(dt : pDataType);
-FUNCTION RemoveDTObject(win : pWindow; o : pObject_) : LONGINT;
-FUNCTION SetDTAttrsA(o : pObject_; win : pWindow; req : pRequester; attrs : pTagItem) : ULONG;
-
-FUNCTION ObtainDTDrawInfoA( o : pObject_; attrs : pTagItem) : POINTER;
-FUNCTION DrawDTObjectA(rp : pRastPort; o : pObject_; x : LONGINT; y : LONGINT; w : LONGINT; h : LONGINT; th : LONGINT; tv : LONGINT; attrs : pTagItem) : LONGINT;
-PROCEDURE ReleaseDTDrawInfo( o : pObject_; handle : POINTER);
+FUNCTION AddDTObject(win : pWindow location 'a0'; req : pRequester location 'a1'; o : pObject_ location 'a2'; pos : LONGINT location 'd0') : LONGINT; syscall DataTypesBase 072;
+PROCEDURE DisposeDTObject(o : pObject_ location 'a0'); syscall DataTypesBase 054;
+FUNCTION DoAsyncLayout(o : pObject_ location 'a0'; gpl : pgpLayout location 'a1') : ULONG; syscall DataTypesBase 084;
+FUNCTION DoDTMethodA(o : pObject_ location 'a0'; win : pWindow location 'a1'; req : pRequester location 'a2'; msg : pLONGINT location 'a3') : ULONG; syscall DataTypesBase 090;
+FUNCTION GetDTAttrsA(o : pObject_ location 'a0'; attrs : pTagItem location 'a2') : ULONG; syscall DataTypesBase 066;
+FUNCTION GetDTMethods(obj : pObject_ location 'a0') : POINTER; syscall DataTypesBase 102;
+FUNCTION GetDTString(id : ULONG location 'a0') : pCHAR; syscall DataTypesBase 138;
+FUNCTION GetDTTriggerMethods(obj : pObject_ location 'a0') : pDTMethod; syscall DataTypesBase 108;
+FUNCTION NewDTObjectA(name : POINTER location 'd0'; attrs : pTagItem location 'a0') : POINTER; syscall DataTypesBase 048;
+FUNCTION ObtainDataTypeA(typ : ULONG location 'd0'; handle : POINTER location 'a0'; attrs : pTagItem location 'a1') : pDataType; syscall DataTypesBase 036;
+FUNCTION PrintDTObjectA(o : pObject_ location 'a0'; w : pWindow location 'a1'; r : pRequester location 'a2'; msg : pdtPrint location 'a3') : ULONG; syscall DataTypesBase 114;
+PROCEDURE RefreshDTObjectA(o : pObject_ location 'a0'; win : pWindow location 'a1'; req : pRequester location 'a2'; attrs : pTagItem location 'a3'); syscall DataTypesBase 078;
+PROCEDURE ReleaseDataType(dt : pDataType location 'a0'); syscall DataTypesBase 042;
+FUNCTION RemoveDTObject(win : pWindow location 'a0'; o : pObject_ location 'a1') : LONGINT; syscall DataTypesBase 096;
+FUNCTION SetDTAttrsA(o : pObject_ location 'a0'; win : pWindow location 'a1'; req : pRequester location 'a2'; attrs : pTagItem location 'a3') : ULONG; syscall DataTypesBase 060;
+
+FUNCTION ObtainDTDrawInfoA( o : pObject_ location 'a0'; attrs : pTagItem location 'a1') : POINTER; syscall DataTypesBase 120;
+FUNCTION DrawDTObjectA(rp : pRastPort location 'a0'; o : pObject_ location 'a1'; x : LONGINT location 'd0'; y : LONGINT location 'd1'; w : LONGINT location 'd2'; h : LONGINT location 'd3'; th : LONGINT location 'd4'; tv : LONGINT location 'd5'; attrs : pTagItem location 'a2') : LONGINT; syscall DataTypesBase 126;
+PROCEDURE ReleaseDTDrawInfo( o : pObject_ location 'a0'; handle : POINTER location 'a1'); syscall DataTypesBase 132;
+
{Here we read how to compile this unit}
{You can remove this include and use a define instead}
@@ -1316,253 +1313,9 @@ var
IMPLEMENTATION
{$ifndef dont_use_openlib}
-uses msgbox;
+uses amsgbox;
{$endif dont_use_openlib}
-FUNCTION AddDTObject(win : pWindow; req : pRequester; o : pObject_; pos : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L win,A0
- MOVEA.L req,A1
- MOVEA.L o,A2
- MOVE.L pos,D0
- MOVEA.L DataTypesBase,A6
- JSR -072(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE DisposeDTObject(o : pObject_);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L o,A0
- MOVEA.L DataTypesBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION DoAsyncLayout(o : pObject_; gpl : pgpLayout) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L o,A0
- MOVEA.L gpl,A1
- MOVEA.L DataTypesBase,A6
- JSR -084(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DoDTMethodA(o : pObject_; win : pWindow; req : pRequester; msg : pLONGINT) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L o,A0
- MOVEA.L win,A1
- MOVEA.L req,A2
- MOVEA.L msg,A3
- MOVEA.L DataTypesBase,A6
- JSR -090(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetDTAttrsA(o : pObject_; attrs : pTagItem) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L o,A0
- MOVEA.L attrs,A2
- MOVEA.L DataTypesBase,A6
- JSR -066(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetDTMethods(obj : pObject_) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L obj,A0
- MOVEA.L DataTypesBase,A6
- JSR -102(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetDTString(id : ULONG) : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L id,D0
- MOVEA.L DataTypesBase,A6
- JSR -138(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetDTTriggerMethods(obj : pObject_) : pDTMethod;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L obj,A0
- MOVEA.L DataTypesBase,A6
- JSR -108(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION NewDTObjectA(name : POINTER; attrs : pTagItem) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D0
- MOVEA.L attrs,A0
- MOVEA.L DataTypesBase,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ObtainDataTypeA(typ : ULONG; handle : POINTER; attrs : pTagItem) : pDataType;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L typ,D0
- MOVEA.L handle,A0
- MOVEA.L attrs,A1
- MOVEA.L DataTypesBase,A6
- JSR -036(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION PrintDTObjectA(o : pObject_; w : pWindow; r : pRequester; msg : pdtPrint) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L o,A0
- MOVEA.L w,A1
- MOVEA.L r,A2
- MOVEA.L msg,A3
- MOVEA.L DataTypesBase,A6
- JSR -114(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE RefreshDTObjectA(o : pObject_; win : pWindow; req : pRequester; attrs : pTagItem);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L o,A0
- MOVEA.L win,A1
- MOVEA.L req,A2
- MOVEA.L attrs,A3
- MOVEA.L DataTypesBase,A6
- JSR -078(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ReleaseDataType(dt : pDataType);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L dt,A0
- MOVEA.L DataTypesBase,A6
- JSR -042(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION RemoveDTObject(win : pWindow; o : pObject_) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L win,A0
- MOVEA.L o,A1
- MOVEA.L DataTypesBase,A6
- JSR -096(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetDTAttrsA(o : pObject_; win : pWindow; req : pRequester; attrs : pTagItem) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L o,A0
- MOVEA.L win,A1
- MOVEA.L req,A2
- MOVEA.L attrs,A3
- MOVEA.L DataTypesBase,A6
- JSR -060(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-
-FUNCTION ObtainDTDrawInfoA( o : pObject_; attrs : pTagItem) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L o,A0
- MOVEA.L attrs,A1
- MOVEA.L DataTypesBase,A6
- JSR -120(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DrawDTObjectA(rp : pRastPort; o : pObject_; x : LONGINT; y : LONGINT; w : LONGINT; h : LONGINT; th : LONGINT; tv : LONGINT; attrs : pTagItem) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVEA.L o,A1
- MOVE.L x,D0
- MOVE.L y,D1
- MOVE.L w,D2
- MOVE.L h,D3
- MOVE.L th,D4
- MOVE.L tv,D5
- MOVEA.L attrs,A2
- MOVEA.L DataTypesBase,A6
- JSR -126(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE ReleaseDTDrawInfo( o : pObject_; handle : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L o,A0
- MOVEA.L handle,A1
- MOVEA.L DataTypesBase,A6
- JSR -132(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
const
{ Change VERSION and LIBVERSION to proper values }
diff --git a/packages/amunits/src/coreunits/diskfont.pas b/packages/amunits/src/coreunits/diskfont.pas
index 4e87b5c1eb..87a75b4adb 100644
--- a/packages/amunits/src/coreunits/diskfont.pas
+++ b/packages/amunits/src/coreunits/diskfont.pas
@@ -34,17 +34,13 @@
nils.sjoholm@mailbox.swipnet.se Nils Sjoholm
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
unit diskfont;
INTERFACE
-uses exec, graphics,utility;
+uses exec, agraphics,utility;
Const
@@ -143,13 +139,13 @@ const
VAR DiskfontBase : pLibrary;
-FUNCTION AvailFonts(buffer : pCHAR; bufBytes : LONGINT; flags : LONGINT) : LONGINT;
-PROCEDURE DisposeFontContents(fontContentsHeader : pFontContentsHeader);
-FUNCTION NewFontContents(fontsLock : BPTR; fontName : pCHAR) : pFontContentsHeader;
-FUNCTION NewScaledDiskFont(sourceFont : pTextFont; destTextAttr : pTextAttr) : pDiskFontHeader;
-FUNCTION OpenDiskFont(textAttr : pTextAttr) : pTextFont;
-FUNCTION GetDiskFontCtrl(tagid : LONGINT) : LONGINT;
-PROCEDURE SetDiskFontCtrlA(taglist : pTagItem);
+FUNCTION AvailFonts(buffer : pCHAR location 'a0'; bufBytes : LONGINT location 'd0'; flags : LONGINT location 'd1') : LONGINT; syscall DiskfontBase 036;
+PROCEDURE DisposeFontContents(fontContentsHeader : pFontContentsHeader location 'a1'); syscall DiskfontBase 048;
+FUNCTION NewFontContents(fontsLock : BPTR location 'a0'; fontName : pCHAR location 'a1') : pFontContentsHeader; syscall DiskfontBase 042;
+FUNCTION NewScaledDiskFont(sourceFont : pTextFont location 'a0'; destTextAttr : pTextAttr location 'a1') : pDiskFontHeader; syscall DiskfontBase 054;
+FUNCTION OpenDiskFont(textAttr : pTextAttr location 'a0') : pTextFont; syscall DiskfontBase 030;
+FUNCTION GetDiskFontCtrl(tagid : LONGINT location 'd0') : LONGINT; syscall DiskfontBase 060;
+PROCEDURE SetDiskFontCtrlA(taglist : pTagItem location 'a0'); syscall DiskfontBase 066;
{Here we read how to compile this unit}
{You can remove this include and use a define instead}
@@ -169,94 +165,9 @@ IMPLEMENTATION
}
uses
{$ifndef dont_use_openlib}
-msgbox;
+amsgbox;
{$endif dont_use_openlib}
-FUNCTION AvailFonts(buffer : pCHAR; bufBytes : LONGINT; flags : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L buffer,A0
- MOVE.L bufBytes,D0
- MOVE.L flags,D1
- MOVEA.L DiskfontBase,A6
- JSR -036(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE DisposeFontContents(fontContentsHeader : pFontContentsHeader);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L fontContentsHeader,A1
- MOVEA.L DiskfontBase,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION NewFontContents(fontsLock : BPTR; fontName : pCHAR) : pFontContentsHeader;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L fontsLock,A0
- MOVEA.L fontName,A1
- MOVEA.L DiskfontBase,A6
- JSR -042(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION NewScaledDiskFont(sourceFont : pTextFont; destTextAttr : pTextAttr) : pDiskFontHeader;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sourceFont,A0
- MOVEA.L destTextAttr,A1
- MOVEA.L DiskfontBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION OpenDiskFont(textAttr : pTextAttr) : pTextFont;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L textAttr,A0
- MOVEA.L DiskfontBase,A6
- JSR -030(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetDiskFontCtrl(tagid : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L tagid,D0
- MOVEA.L DiskfontBase,A6
- JSR -060(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE SetDiskFontCtrlA(taglist : pTagItem);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L taglist,A0
- MOVEA.L DiskfontBase,A6
- JSR -066(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
const
{ Change VERSION and LIBVERSION to proper values }
diff --git a/packages/amunits/src/coreunits/exec.pp b/packages/amunits/src/coreunits/exec.pas
index 34e2f492b9..db2b75715b 100644
--- a/packages/amunits/src/coreunits/exec.pp
+++ b/packages/amunits/src/coreunits/exec.pas
@@ -71,11 +71,7 @@
nils.sjoholm@mailbox.swipnet.se
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
UNIT EXEC;
@@ -1180,136 +1176,136 @@ CONST
-PROCEDURE AbortIO(ioRequest : pIORequest);
-PROCEDURE AddDevice(device : pDevice);
-PROCEDURE AddHead(list : pList; node : pNode);
-PROCEDURE AddIntServer(intNumber : LONGINT; interrupt_ : pInterrupt);
-PROCEDURE AddLibrary(lib : pLibrary);
-PROCEDURE AddMemHandler(memhand : pInterrupt);
-PROCEDURE AddMemList(size : ULONG; attributes : ULONG; pri : LONGINT; base : POINTER; const name : pCHAR);
-PROCEDURE AddPort(port : pMsgPort);
-PROCEDURE AddResource(resource : POINTER);
-PROCEDURE AddSemaphore(sigSem : pSignalSemaphore);
-PROCEDURE AddTail(list : pList; node : pNode);
-FUNCTION AddTask(task : pTask;const initPC : POINTER;const finalPC : POINTER) : POINTER;
-PROCEDURE Alert(alertNum : ULONG);
-FUNCTION AllocAbs(byteSize : ULONG; location : POINTER) : POINTER;
-FUNCTION Allocate(freeList : pMemHeader; byteSize : ULONG) : POINTER;
-FUNCTION AllocEntry(entry : pMemList) : pMemList;
-FUNCTION AllocMem(byteSize : ULONG; requirements : ULONG) : POINTER;
-FUNCTION AllocPooled(poolHeader : POINTER; memSize : ULONG) : POINTER;
-FUNCTION AllocSignal(signalNum : LONGINT) : shortint;
-FUNCTION AllocTrap(trapNum : LONGINT) : LONGINT;
-FUNCTION AllocVec(byteSize : ULONG; requirements : ULONG) : POINTER;
-FUNCTION AttemptSemaphore(sigSem : pSignalSemaphore) : BOOLEAN;
-FUNCTION AttemptSemaphoreShared(sigSem : pSignalSemaphore) : ULONG;
-FUNCTION AvailMem(requirements : ULONG) : ULONG;
-PROCEDURE CacheClearE(address : POINTER; length : ULONG; caches : ULONG);
-PROCEDURE CacheClearU;
-FUNCTION CacheControl(cacheBits : ULONG; cacheMask : ULONG) : ULONG;
-PROCEDURE CachePostDMA(const address : POINTER; VAR length : ULONG; flags : ULONG);
-FUNCTION CachePreDMA(const address : POINTER; VAR length : ULONG; flags : ULONG) : POINTER;
-PROCEDURE Cause(interrupt_ : pInterrupt);
-FUNCTION CheckIO(ioRequest : pIORequest) : pIORequest;
-PROCEDURE ChildFree(tid : POINTER);
-PROCEDURE ChildOrphan(tid : POINTER);
-PROCEDURE ChildStatus(tid : POINTER);
-PROCEDURE ChildWait(tid : POINTER);
-PROCEDURE CloseDevice(ioRequest : pIORequest);
-PROCEDURE CloseLibrary(lib : pLibrary);
-PROCEDURE ColdReboot;
-PROCEDURE CopyMem(const source : POINTER; dest : POINTER; size : ULONG);
-PROCEDURE CopyMemQuick(const source : POINTER; dest : POINTER; size : ULONG);
-FUNCTION CreateIORequest(const port : pMsgPort; size : ULONG) : POINTER;
-FUNCTION CreateMsgPort : pMsgPort;
-FUNCTION CreatePool(requirements : ULONG; puddleSize : ULONG; threshSize : ULONG) : POINTER;
-PROCEDURE Deallocate(freeList : pMemHeader; memoryBlock : POINTER; byteSize : ULONG);
-PROCEDURE Debug(flags : ULONG);
-PROCEDURE DeleteIORequest(iorequest : POINTER);
-PROCEDURE DeleteMsgPort(port : pMsgPort);
-PROCEDURE DeletePool(poolHeader : POINTER);
-PROCEDURE Disable;
-FUNCTION DoIO(ioRequest : pIORequest) : shortint;
-PROCEDURE Enable;
-PROCEDURE Enqueue(list : pList; node : pNode);
-PROCEDURE ExecFreeMem(memoryBlock : POINTER; byteSize : ULONG);
-PROCEDURE ExecInsert(list : pList; node : pNode; pred : pNode);
-FUNCTION FindName(list : pList; const name : pCHAR) : pNode;
-FUNCTION FindPort(const name : pCHAR) : pMsgPort;
-FUNCTION FindResident(const name : pCHAR) : pResident;
-FUNCTION FindSemaphore(const sigSem : pCHAR) : pSignalSemaphore;
-FUNCTION FindTask(const name : pCHAR) : pTask;
-PROCEDURE Forbid;
-PROCEDURE FreeEntry(entry : pMemList);
-PROCEDURE FreePooled(poolHeader : POINTER; memory : POINTER; memSize : ULONG);
-PROCEDURE FreeSignal(signalNum : LONGINT);
-PROCEDURE FreeTrap(trapNum : LONGINT);
-PROCEDURE FreeVec(memoryBlock : POINTER);
-FUNCTION GetCC : ULONG;
-FUNCTION GetMsg(port : pMsgPort) : pMessage;
-PROCEDURE InitCode(startClass : ULONG; version : ULONG);
-FUNCTION InitResident(const resident_ : pResident; segList : ULONG) : POINTER;
-PROCEDURE InitSemaphore(sigSem : pSignalSemaphore);
-PROCEDURE InitStruct(const initTable : POINTER; memory : POINTER; size : ULONG);
-PROCEDURE MakeFunctions(const target : POINTER;const functionArray : POINTER;const funcDispBase :pointer);
-FUNCTION MakeLibrary(const funcInit : POINTER;const structInit : POINTER; libInit : tPROCEDURE;dataSize : ULONG; segList : ULONG) : pLibrary;
-FUNCTION ObtainQuickVector(interruptCode : POINTER) : ULONG;
-PROCEDURE ObtainSemaphore(sigSem : pSignalSemaphore);
-PROCEDURE ObtainSemaphoreList(sigSem : pList);
-PROCEDURE ObtainSemaphoreShared(sigSem : pSignalSemaphore);
-FUNCTION OldOpenLibrary(const libName : pCHAR) : pLibrary;
-FUNCTION OpenDevice(const devName : pCHAR; unite : ULONG; ioRequest : pIORequest; flags : ULONG) : shortint;
-FUNCTION OpenLibrary(const libName : pCHAR; version : ULONG) : pLibrary;
-FUNCTION OpenResource(const resName : pCHAR) : POINTER;
-PROCEDURE Permit;
-FUNCTION Procure(sigSem : pSignalSemaphore; bidMsg : pSemaphoreMessage) : BOOLEAN;
-PROCEDURE PutMsg(port : pMsgPort; message : pMessage);
-function RawDoFmt(const formatString : pCHAR;const dataStream : POINTER; putChProc : tPROCEDURE; putChData : POINTER): pointer;
-PROCEDURE ReleaseSemaphore(sigSem : pSignalSemaphore);
-PROCEDURE ReleaseSemaphoreList(sigSem : pList);
-PROCEDURE RemDevice(device : pDevice);
-FUNCTION RemHead(list : pList) : pNode;
-PROCEDURE RemIntServer(intNumber : LONGINT; interrupt_ : pInterrupt);
-PROCEDURE RemLibrary(lib : pLibrary);
-PROCEDURE RemMemHandler(memhand : pInterrupt);
-PROCEDURE Remove(node : pNode);
-PROCEDURE RemPort(port : pMsgPort);
-PROCEDURE RemResource(resource : POINTER);
-PROCEDURE RemSemaphore(sigSem : pSignalSemaphore);
-FUNCTION RemTail(list : pList) : pNode;
-PROCEDURE RemTask(task : pTask);
-PROCEDURE ReplyMsg(message : pMessage);
-PROCEDURE SendIO(ioRequest : pIORequest);
-FUNCTION SetExcept(newSignals : ULONG; signalSet : ULONG) : ULONG;
-FUNCTION SetFunction(lib : pLibrary; funcOffset : LONGINT; newFunction : tPROCEDURE) : POINTER;
-FUNCTION SetIntVector(intNumber : LONGINT;const interrupt_ : pInterrupt) : pInterrupt;
-FUNCTION SetSignal(newSignals : ULONG; signalSet : ULONG) : ULONG;
-FUNCTION SetSR(newSR : ULONG; mask : ULONG) : ULONG;
-FUNCTION SetTaskPri(task : pTask; priority : LONGINT) : shortint;
-PROCEDURE Signal(task : pTask; signalSet : ULONG);
-PROCEDURE StackSwap(newStack : pStackSwapStruct);
-PROCEDURE SumKickData;
-PROCEDURE SumLibrary(lib : pLibrary);
-FUNCTION SuperState : POINTER;
-FUNCTION Supervisor(userFunction : tPROCEDURE) : ULONG;
-FUNCTION TypeOfMem(const address : POINTER) : ULONG;
-PROCEDURE UserState(sysStack : POINTER);
-PROCEDURE Vacate(sigSem : pSignalSemaphore; bidMsg : pSemaphoreMessage);
-FUNCTION Wait(signalSet : ULONG) : ULONG;
-FUNCTION WaitIO(ioRequest : pIORequest) : shortint;
-FUNCTION WaitPort(port : pMsgPort) : pMessage;
-
-PROCEDURE NewMinList(minlist : pMinList);
-FUNCTION AVL_AddNode(root : ppAVLNode; node : pAVLNode; func : POINTER) : pAVLNode;
-FUNCTION AVL_RemNodeByAddress(root : ppAVLNode; node : pAVLNode) : pAVLNode;
-FUNCTION AVL_RemNodeByKey(root : ppAVLNode; key : POINTER; func : POINTER) : pAVLNode;
-FUNCTION AVL_FindNode(CONST root : pAVLNode; key : POINTER; func : POINTER) : pAVLNode;
-FUNCTION AVL_FindPrevNodeByAddress(CONST node : pAVLNode) : pAVLNode;
-FUNCTION AVL_FindPrevNodeByKey(CONST root : pAVLNode; key : POINTER; func : POINTER) : pAVLNode;
-FUNCTION AVL_FindNextNodeByAddress(CONST node : pAVLNode) : pAVLNode;
-FUNCTION AVL_FindNextNodeByKey(CONST root : pAVLNode; key : POINTER; func : POINTER) : pAVLNode;
-FUNCTION AVL_FindFirstNode(CONST root : pAVLNode) : pAVLNode;
-FUNCTION AVL_FindLastNode(CONST root : pAVLNode) : pAVLNode;
+PROCEDURE AbortIO(ioRequest : pIORequest location 'a1'); syscall _ExecBase 480;
+PROCEDURE AddDevice(device : pDevice location 'a1'); syscall _ExecBase 432;
+PROCEDURE AddHead(list : pList location 'a0'; node : pNode location 'a1'); syscall _ExecBase 240;
+PROCEDURE AddIntServer(intNumber : LONGINT location 'd0'; interrupt_ : pInterrupt location 'a1'); syscall _ExecBase 168;
+PROCEDURE AddLibrary(lib : pLibrary location 'a1'); syscall _ExecBase 396;
+PROCEDURE AddMemHandler(memhand : pInterrupt location 'a1'); syscall _ExecBase 774;
+PROCEDURE AddMemList(size : ULONG location 'd0'; attributes : ULONG location 'd1'; pri : LONGINT location 'd2'; base : POINTER location 'a0'; const name : pCHAR location 'a1'); syscall _ExecBase 618;
+PROCEDURE AddPort(port : pMsgPort location 'a1'); syscall _ExecBase 354;
+PROCEDURE AddResource(resource : POINTER location 'a1'); syscall _ExecBase 486;
+PROCEDURE AddSemaphore(sigSem : pSignalSemaphore location 'a1'); syscall _ExecBase 600;
+PROCEDURE AddTail(list : pList location 'a0'; node : pNode location 'a1'); syscall _ExecBase 246;
+FUNCTION AddTask(task : pTask location 'a1';const initPC : POINTER location 'a2';const finalPC : POINTER location 'a3') : POINTER; syscall _ExecBase 282;
+PROCEDURE Alert(alertNum : ULONG location 'd7'); syscall _ExecBase 108;
+FUNCTION AllocAbs(byteSize : ULONG location 'd0'; location : POINTER location 'a1') : POINTER; syscall _ExecBase 204;
+FUNCTION Allocate(freeList : pMemHeader location 'a0'; byteSize : ULONG location 'd0') : POINTER; syscall _ExecBase 186;
+FUNCTION AllocEntry(entry : pMemList location 'a0') : pMemList; syscall _ExecBase 222;
+FUNCTION AllocMem(byteSize : ULONG location 'd0'; requirements : ULONG location 'd1') : POINTER; syscall _ExecBase 198;
+FUNCTION AllocPooled(poolHeader : POINTER location 'a0'; memSize : ULONG location 'd0') : POINTER; syscall _ExecBase 708;
+FUNCTION AllocSignal(signalNum : LONGINT location 'd0') : shortint; syscall _ExecBase 330;
+FUNCTION AllocTrap(trapNum : LONGINT location 'd0') : LONGINT; syscall _ExecBase 342;
+FUNCTION AllocVec(byteSize : ULONG location 'd0'; requirements : ULONG location 'd1') : POINTER; syscall _ExecBase 684;
+FUNCTION AttemptSemaphore(sigSem : pSignalSemaphore location 'a0') : LongBool; syscall _ExecBase 576;
+FUNCTION AttemptSemaphoreShared(sigSem : pSignalSemaphore location 'a0') : ULONG; syscall _ExecBase 720;
+FUNCTION AvailMem(requirements : ULONG location 'd1') : ULONG; syscall _ExecBase 216;
+PROCEDURE CacheClearE(address : POINTER location 'a0'; length : ULONG location 'd0'; caches : ULONG location 'd1'); syscall _ExecBase 642;
+PROCEDURE CacheClearU; syscall _ExecBase 636;
+FUNCTION CacheControl(cacheBits : ULONG location 'd0'; cacheMask : ULONG location 'd1') : ULONG; syscall _ExecBase 648;
+PROCEDURE CachePostDMA(const address : POINTER location 'a0'; VAR length : ULONG location 'a1'; flags : ULONG location 'd0'); syscall _ExecBase 768;
+FUNCTION CachePreDMA(const address : POINTER location 'a0'; VAR length : ULONG location 'a1'; flags : ULONG location 'd1') : POINTER; syscall _ExecBase 762;
+PROCEDURE Cause(interrupt_ : pInterrupt location 'a1'); syscall _ExecBase 180;
+FUNCTION CheckIO(ioRequest : pIORequest location 'a1') : pIORequest; syscall _ExecBase 468;
+PROCEDURE ChildFree(tid : POINTER location 'd0'); syscall _ExecBase 738;
+PROCEDURE ChildOrphan(tid : POINTER location 'd0'); syscall _ExecBase 744;
+PROCEDURE ChildStatus(tid : POINTER location 'd0'); syscall _ExecBase 750;
+PROCEDURE ChildWait(tid : POINTER location 'd0'); syscall _ExecBase 756;
+PROCEDURE CloseDevice(ioRequest : pIORequest location 'a1'); syscall _ExecBase 450;
+PROCEDURE CloseLibrary(lib : pLibrary location 'a1'); syscall _ExecBase 414;
+PROCEDURE ColdReboot; syscall _ExecBase 726;
+PROCEDURE CopyMem(const source : POINTER location 'a0'; dest : POINTER location 'a1'; size : ULONG location 'd0'); syscall _ExecBase 624;
+PROCEDURE CopyMemQuick(const source : POINTER location 'a0'; dest : POINTER location 'a1'; size : ULONG location 'd0'); syscall _ExecBase 630;
+FUNCTION CreateIORequest(const port : pMsgPort location 'a0'; size : ULONG location 'd0') : POINTER; syscall _ExecBase 654;
+FUNCTION CreateMsgPort : pMsgPort; syscall _ExecBase 666;
+FUNCTION CreatePool(requirements : ULONG location 'd0'; puddleSize : ULONG location 'd1'; threshSize : ULONG location 'd2') : POINTER; syscall _ExecBase 696;
+PROCEDURE Deallocate(freeList : pMemHeader location 'a0'; memoryBlock : POINTER location 'a1'; byteSize : ULONG location 'd1'); syscall _ExecBase 192;
+PROCEDURE Debug(flags : ULONG location 'd0'); syscall _ExecBase 114;
+PROCEDURE DeleteIORequest(iorequest : POINTER location 'a0'); syscall _ExecBase 660;
+PROCEDURE DeleteMsgPort(port : pMsgPort location 'a0'); syscall _ExecBase 672;
+PROCEDURE DeletePool(poolHeader : POINTER location 'a0'); syscall _ExecBase 702;
+PROCEDURE Disable; syscall _ExecBase 120;
+FUNCTION DoIO(ioRequest : pIORequest location 'a1') : shortint; syscall _ExecBase 456;
+PROCEDURE Enable; syscall _ExecBase 126;
+PROCEDURE Enqueue(list : pList location 'a0'; node : pNode location 'a1'); syscall _ExecBase 270;
+PROCEDURE ExecFreeMem(memoryBlock : POINTER location 'a1'; byteSize : ULONG location 'd0'); syscall _ExecBase 210;
+PROCEDURE ExecInsert(list : pList location 'a0'; node : pNode location 'a1'; pred : pNode location 'a2'); syscall _ExecBase 234;
+FUNCTION FindName(list : pList location 'a0'; const name : pCHAR location 'a1') : pNode; syscall _ExecBase 276;
+FUNCTION FindPort(const name : pCHAR location 'a1') : pMsgPort; syscall _ExecBase 390;
+FUNCTION FindResident(const name : pCHAR location 'a1') : pResident; syscall _ExecBase 096;
+FUNCTION FindSemaphore(const sigSem : pCHAR location 'a1') : pSignalSemaphore; syscall _ExecBase 594;
+FUNCTION FindTask(const name : pCHAR location 'a1') : pTask; syscall _ExecBase 294;
+PROCEDURE Forbid; syscall _ExecBase 132;
+PROCEDURE FreeEntry(entry : pMemList location 'a0'); syscall _ExecBase 228;
+PROCEDURE FreePooled(poolHeader : POINTER location 'a0'; memory : POINTER location 'a1'; memSize : ULONG location 'd0'); syscall _ExecBase 714;
+PROCEDURE FreeSignal(signalNum : LONGINT location 'd0'); syscall _ExecBase 336;
+PROCEDURE FreeTrap(trapNum : LONGINT location 'd0'); syscall _ExecBase 348;
+PROCEDURE FreeVec(memoryBlock : POINTER location 'a1'); syscall _ExecBase 690;
+FUNCTION GetCC : ULONG; syscall _ExecBase 528;
+FUNCTION GetMsg(port : pMsgPort location 'a0') : pMessage; syscall _ExecBase 372;
+PROCEDURE InitCode(startClass : ULONG location 'd0'; version : ULONG location 'd1'); syscall _ExecBase 072;
+FUNCTION InitResident(const resident_ : pResident location 'a1'; segList : ULONG location 'd0') : POINTER; syscall _ExecBase 102;
+PROCEDURE InitSemaphore(sigSem : pSignalSemaphore location 'a0'); syscall _ExecBase 558;
+PROCEDURE InitStruct(const initTable : POINTER location 'a1'; memory : POINTER location 'a2'; size : ULONG location 'd0'); syscall _ExecBase 078;
+PROCEDURE MakeFunctions(const target : POINTER location 'a0';const functionArray : POINTER location 'a1';const funcDispBase :pointer location 'a2'); syscall _ExecBase 090;
+FUNCTION MakeLibrary(const funcInit : POINTER location 'a0';const structInit : POINTER location 'a1'; libInit : tPROCEDURE location 'a2';dataSize : ULONG location 'd0'; segList : ULONG location 'd0') : pLibrary; syscall _ExecBase 084;
+FUNCTION ObtainQuickVector(interruptCode : POINTER location 'a0') : ULONG; syscall _ExecBase 786;
+PROCEDURE ObtainSemaphore(sigSem : pSignalSemaphore location 'a0'); syscall _ExecBase 564;
+PROCEDURE ObtainSemaphoreList(sigSem : pList location 'a0'); syscall _ExecBase 582;
+PROCEDURE ObtainSemaphoreShared(sigSem : pSignalSemaphore location 'a0'); syscall _ExecBase 678;
+FUNCTION OldOpenLibrary(const libName : pCHAR location 'a1') : pLibrary; syscall _ExecBase 408;
+FUNCTION OpenDevice(const devName : pCHAR location 'a0'; unite : ULONG location 'd0'; ioRequest : pIORequest location 'a1'; flags : ULONG location 'd1') : shortint; syscall _ExecBase 444;
+FUNCTION OpenLibrary(const libName : pCHAR location 'a1'; version : ULONG location 'd0') : pLibrary; syscall _ExecBase 552;
+FUNCTION OpenResource(const resName : pCHAR location 'a1') : POINTER; syscall _ExecBase 498;
+PROCEDURE Permit; syscall _ExecBase 138;
+FUNCTION Procure(sigSem : pSignalSemaphore location 'a0'; bidMsg : pSemaphoreMessage location 'a1') : LongBool; syscall _ExecBase 540;
+PROCEDURE PutMsg(port : pMsgPort location 'a0'; message : pMessage location 'a1'); syscall _ExecBase 366;
+function RawDoFmt(const formatString : pCHAR location 'a0';const dataStream : POINTER location 'a1'; putChProc : tPROCEDURE location 'a2'; putChData : POINTER location 'a3'): pointer; syscall _ExecBase 522;
+PROCEDURE ReleaseSemaphore(sigSem : pSignalSemaphore location 'a0'); syscall _ExecBase 570;
+PROCEDURE ReleaseSemaphoreList(sigSem : pList location 'a0'); syscall _ExecBase 588;
+PROCEDURE RemDevice(device : pDevice location 'a1'); syscall _ExecBase 438;
+FUNCTION RemHead(list : pList location 'a0') : pNode; syscall _ExecBase 258;
+PROCEDURE RemIntServer(intNumber : LONGINT location 'd0'; interrupt_ : pInterrupt location 'a1'); syscall _ExecBase 174;
+PROCEDURE RemLibrary(lib : pLibrary location 'a1'); syscall _ExecBase 402;
+PROCEDURE RemMemHandler(memhand : pInterrupt location 'a1'); syscall _ExecBase 780;
+PROCEDURE Remove(node : pNode location 'a1'); syscall _ExecBase 252;
+PROCEDURE RemPort(port : pMsgPort location 'a1'); syscall _ExecBase 360;
+PROCEDURE RemResource(resource : POINTER location 'a1'); syscall _ExecBase 492;
+PROCEDURE RemSemaphore(sigSem : pSignalSemaphore location 'a1'); syscall _ExecBase 606;
+FUNCTION RemTail(list : pList location 'a0') : pNode; syscall _ExecBase 264;
+PROCEDURE RemTask(task : pTask location 'a1'); syscall _ExecBase 288;
+PROCEDURE ReplyMsg(message : pMessage location 'a1'); syscall _ExecBase 378;
+PROCEDURE SendIO(ioRequest : pIORequest location 'a1'); syscall _ExecBase 462;
+FUNCTION SetExcept(newSignals : ULONG location 'd0'; signalSet : ULONG location 'd1') : ULONG; syscall _ExecBase 312;
+FUNCTION SetFunction(lib : pLibrary location 'a1'; funcOffset : LONGINT location 'a0'; newFunction : tPROCEDURE location 'd0') : POINTER; syscall _ExecBase 420;
+FUNCTION SetIntVector(intNumber : LONGINT location 'd0';const interrupt_ : pInterrupt location 'a1') : pInterrupt; syscall _ExecBase 162;
+FUNCTION SetSignal(newSignals : ULONG location 'd0'; signalSet : ULONG location 'd1') : ULONG; syscall _ExecBase 306;
+FUNCTION SetSR(newSR : ULONG location 'd0'; mask : ULONG location 'd1') : ULONG; syscall _ExecBase 144;
+FUNCTION SetTaskPri(task : pTask location 'a1'; priority : LONGINT location 'd0') : shortint; syscall _ExecBase 300;
+PROCEDURE Signal(task : pTask location 'a1'; signalSet : ULONG location 'd0'); syscall _ExecBase 324;
+PROCEDURE StackSwap(newStack : pStackSwapStruct location 'a0'); syscall _ExecBase 732;
+PROCEDURE SumKickData; syscall _ExecBase 612;
+PROCEDURE SumLibrary(lib : pLibrary location 'a1'); syscall _ExecBase 426;
+FUNCTION SuperState : POINTER; syscall _ExecBase 150;
+FUNCTION Supervisor(userFunction : tPROCEDURE location 'a5') : ULONG; syscall _ExecBase 030;
+FUNCTION TypeOfMem(const address : POINTER location 'a1') : ULONG; syscall _ExecBase 534;
+PROCEDURE UserState(sysStack : POINTER location 'd0'); syscall _ExecBase 156;
+PROCEDURE Vacate(sigSem : pSignalSemaphore location 'a0'; bidMsg : pSemaphoreMessage location 'a1'); syscall _ExecBase 546;
+FUNCTION Wait(signalSet : ULONG location 'd0') : ULONG; syscall _ExecBase 318;
+FUNCTION WaitIO(ioRequest : pIORequest location 'a1') : shortint; syscall _ExecBase 474;
+FUNCTION WaitPort(port : pMsgPort location 'a0') : pMessage; syscall _ExecBase 384;
+
+PROCEDURE NewMinList(minlist : pMinList location 'a0'); syscall _ExecBase 828;
+FUNCTION AVL_AddNode(root : ppAVLNode location 'a0'; node : pAVLNode location 'a1'; func : POINTER location 'a2') : pAVLNode; syscall _ExecBase 852;
+FUNCTION AVL_RemNodeByAddress(root : ppAVLNode location 'a0'; node : pAVLNode location 'a1') : pAVLNode; syscall _ExecBase 858;
+FUNCTION AVL_RemNodeByKey(root : ppAVLNode location 'a0'; key : POINTER location 'a1'; func : POINTER location 'a2') : pAVLNode; syscall _ExecBase 864;
+FUNCTION AVL_FindNode(CONST root : pAVLNode location 'a0'; key : POINTER location 'a1'; func : POINTER location 'a2') : pAVLNode; syscall _ExecBase 870;
+FUNCTION AVL_FindPrevNodeByAddress(CONST node : pAVLNode location 'a0') : pAVLNode; syscall _ExecBase 876;
+FUNCTION AVL_FindPrevNodeByKey(CONST root : pAVLNode location 'a0'; key : POINTER location 'a1'; func : POINTER location 'a2') : pAVLNode; syscall _ExecBase 882;
+FUNCTION AVL_FindNextNodeByAddress(CONST node : pAVLNode location 'a0') : pAVLNode; syscall _ExecBase 888;
+FUNCTION AVL_FindNextNodeByKey(CONST root : pAVLNode location 'a0'; key : POINTER location 'a1'; func : POINTER location 'a2') : pAVLNode; syscall _ExecBase 894;
+FUNCTION AVL_FindFirstNode(CONST root : pAVLNode location 'a0') : pAVLNode; syscall _ExecBase 900;
+FUNCTION AVL_FindLastNode(CONST root : pAVLNode location 'a0') : pAVLNode; syscall _ExecBase 906;
PROCEDURE AddMemList(size : ULONG; attributes : ULONG; pri : LONGINT; base : POINTER; const name : String);
FUNCTION FindName(list : pList; const name : String) : pNode;
@@ -1347,1561 +1343,6 @@ begin
IsMsgPortEmpty := mp_MsgList.lh_TailPred = pNode(@mp_MsgList);
end;
-PROCEDURE AbortIO(ioRequest : pIORequest);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L ioRequest,A1
- MOVEA.L _ExecBase,A6
- JSR -480(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE AddDevice(device : pDevice);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L device,A1
- MOVEA.L _ExecBase,A6
- JSR -432(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE AddHead(list : pList; node : pNode);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L list,A0
- MOVEA.L node,A1
- MOVEA.L _ExecBase,A6
- JSR -240(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE AddIntServer(intNumber : LONGINT; interrupt_ : pInterrupt);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L intNumber,D0
- MOVEA.L interrupt_,A1
- MOVEA.L _ExecBase,A6
- JSR -168(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE AddLibrary(lib : pLibrary);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L lib,A1
- MOVEA.L _ExecBase,A6
- JSR -396(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE AddMemHandler(memhand : pInterrupt);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L memhand,A1
- MOVEA.L _ExecBase,A6
- JSR -774(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE AddMemList(size : ULONG; attributes : ULONG; pri : LONGINT; base : POINTER; const name : pCHAR);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L size,D0
- MOVE.L attributes,D1
- MOVE.L pri,D2
- MOVEA.L base,A0
- MOVEA.L name,A1
- MOVEA.L _ExecBase,A6
- JSR -618(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE AddPort(port : pMsgPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L port,A1
- MOVEA.L _ExecBase,A6
- JSR -354(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE AddResource(resource : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L resource,A1
- MOVEA.L _ExecBase,A6
- JSR -486(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE AddSemaphore(sigSem : pSignalSemaphore);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sigSem,A1
- MOVEA.L _ExecBase,A6
- JSR -600(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE AddTail(list : pList; node : pNode);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L list,A0
- MOVEA.L node,A1
- MOVEA.L _ExecBase,A6
- JSR -246(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION AddTask(task : pTask;const initPC : POINTER;const finalPC : POINTER) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L task,A1
- MOVEA.L initPC,A2
- MOVEA.L finalPC,A3
- MOVEA.L _ExecBase,A6
- JSR -282(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE Alert(alertNum : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L alertNum,D7
- MOVEA.L _ExecBase,A6
- JSR -108(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION AllocAbs(byteSize : ULONG; location : POINTER) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L byteSize,D0
- MOVEA.L location,A1
- MOVEA.L _ExecBase,A6
- JSR -204(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION Allocate(freeList : pMemHeader; byteSize : ULONG) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L freeList,A0
- MOVE.L byteSize,D0
- MOVEA.L _ExecBase,A6
- JSR -186(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AllocEntry(entry : pMemList) : pMemList;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L entry,A0
- MOVEA.L _ExecBase,A6
- JSR -222(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AllocMem(byteSize : ULONG; requirements : ULONG) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L byteSize,D0
- MOVE.L requirements,D1
- MOVEA.L _ExecBase,A6
- JSR -198(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AllocPooled(poolHeader : POINTER; memSize : ULONG) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L poolHeader,A0
- MOVE.L memSize,D0
- MOVEA.L _ExecBase,A6
- JSR -708(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AllocSignal(signalNum : LONGINT) : shortint;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L signalNum,D0
- MOVEA.L _ExecBase,A6
- JSR -330(A6)
- MOVEA.L (A7)+,A6
- MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AllocTrap(trapNum : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L trapNum,D0
- MOVEA.L _ExecBase,A6
- JSR -342(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AllocVec(byteSize : ULONG; requirements : ULONG) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L byteSize,D0
- MOVE.L requirements,D1
- MOVEA.L _ExecBase,A6
- JSR -684(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AttemptSemaphore(sigSem : pSignalSemaphore) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sigSem,A0
- MOVEA.L _ExecBase,A6
- JSR -576(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION AttemptSemaphoreShared(sigSem : pSignalSemaphore) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sigSem,A0
- MOVEA.L _ExecBase,A6
- JSR -720(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AvailMem(requirements : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L requirements,D1
- MOVEA.L _ExecBase,A6
- JSR -216(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE CacheClearE(address : POINTER; length : ULONG; caches : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L address,A0
- MOVE.L length,D0
- MOVE.L caches,D1
- MOVEA.L _ExecBase,A6
- JSR -642(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE CacheClearU;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _ExecBase,A6
- JSR -636(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION CacheControl(cacheBits : ULONG; cacheMask : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L cacheBits,D0
- MOVE.L cacheMask,D1
- MOVEA.L _ExecBase,A6
- JSR -648(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE CachePostDMA(const address : POINTER; VAR length : ULONG; flags : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L address,A0
- MOVEA.L length,A1
- MOVE.L flags,D0
- MOVEA.L _ExecBase,A6
- JSR -768(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION CachePreDMA(const address : POINTER; VAR length : ULONG; flags : ULONG) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L address,A0
- MOVEA.L length,A1
- MOVE.L flags,D0
- MOVEA.L _ExecBase,A6
- JSR -762(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE Cause(interrupt_ : pInterrupt);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L interrupt_,A1
- MOVEA.L _ExecBase,A6
- JSR -180(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION CheckIO(ioRequest : pIORequest) : pIORequest;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L ioRequest,A1
- MOVEA.L _ExecBase,A6
- JSR -468(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE ChildFree(tid : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L tid,D0
- MOVEA.L _ExecBase,A6
- JSR -738(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ChildOrphan(tid : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L tid,D0
- MOVEA.L _ExecBase,A6
- JSR -744(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ChildStatus(tid : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L tid,D0
- MOVEA.L _ExecBase,A6
- JSR -750(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ChildWait(tid : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L tid,D0
- MOVEA.L _ExecBase,A6
- JSR -756(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE CloseDevice(ioRequest : pIORequest);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L ioRequest,A1
- MOVEA.L _ExecBase,A6
- JSR -450(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE CloseLibrary(lib : pLibrary);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L lib,A1
- MOVEA.L _ExecBase,A6
- JSR -414(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ColdReboot;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _ExecBase,A6
- JSR -726(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE CopyMem(const source : POINTER; dest : POINTER; size : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L source,A0
- MOVEA.L dest,A1
- MOVE.L size,D0
- MOVEA.L _ExecBase,A6
- JSR -624(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE CopyMemQuick(const source : POINTER; dest : POINTER; size : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L source,A0
- MOVEA.L dest,A1
- MOVE.L size,D0
- MOVEA.L _ExecBase,A6
- JSR -630(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION CreateIORequest(const port : pMsgPort; size : ULONG) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L port,A0
- MOVE.L size,D0
- MOVEA.L _ExecBase,A6
- JSR -654(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CreateMsgPort : pMsgPort;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _ExecBase,A6
- JSR -666(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CreatePool(requirements : ULONG; puddleSize : ULONG; threshSize : ULONG) :
-POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L requirements,D0
- MOVE.L puddleSize,D1
- MOVE.L threshSize,D2
- MOVEA.L _ExecBase,A6
- JSR -696(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE Deallocate(freeList : pMemHeader; memoryBlock : POINTER; byteSize : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L freeList,A0
- MOVEA.L memoryBlock,A1
- MOVE.L byteSize,D0
- MOVEA.L _ExecBase,A6
- JSR -192(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE Debug(flags : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L flags,D0
- MOVEA.L _ExecBase,A6
- JSR -114(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE DeleteIORequest(iorequest : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iorequest,A0
- MOVEA.L _ExecBase,A6
- JSR -660(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE DeleteMsgPort(port : pMsgPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L port,A0
- MOVEA.L _ExecBase,A6
- JSR -672(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE DeletePool(poolHeader : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L poolHeader,A0
- MOVEA.L _ExecBase,A6
- JSR -702(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE Disable;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _ExecBase,A6
- JSR -120(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION DoIO(ioRequest : pIORequest) : shortint;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L ioRequest,A1
- MOVEA.L _ExecBase,A6
- JSR -456(A6)
- MOVEA.L (A7)+,A6
- MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE Enable;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _ExecBase,A6
- JSR -126(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE Enqueue(list : pList; node : pNode);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L list,A0
- MOVEA.L node,A1
- MOVEA.L _ExecBase,A6
- JSR -270(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ExecFreeMem(memoryBlock : POINTER; byteSize : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L memoryBlock,A1
- MOVE.L byteSize,D0
- MOVEA.L _ExecBase,A6
- JSR -210(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ExecInsert(list : pList; node : pNode; pred : pNode);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L list,A0
- MOVEA.L node,A1
- MOVEA.L pred,A2
- MOVEA.L _ExecBase,A6
- JSR -234(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION FindName(list : pList; const name : pCHAR) : pNode;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L list,A0
- MOVEA.L name,A1
- MOVEA.L _ExecBase,A6
- JSR -276(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindPort(const name : pCHAR) : pMsgPort;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A1
- MOVEA.L _ExecBase,A6
- JSR -390(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindResident(const name : pCHAR) : pResident;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A1
- MOVEA.L _ExecBase,A6
- JSR -096(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindSemaphore(const sigSem : pCHAR) : pSignalSemaphore;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sigSem,A1
- MOVEA.L _ExecBase,A6
- JSR -594(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindTask(const name : pCHAR) : pTask;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A1
- MOVEA.L _ExecBase,A6
- JSR -294(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE Forbid;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _ExecBase,A6
- JSR -132(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeEntry(entry : pMemList);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L entry,A0
- MOVEA.L _ExecBase,A6
- JSR -228(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreePooled(poolHeader : POINTER; memory : POINTER; memSize : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L poolHeader,A0
- MOVEA.L memory,A1
- MOVE.L memSize,D0
- MOVEA.L _ExecBase,A6
- JSR -714(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeSignal(signalNum : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L signalNum,D0
- MOVEA.L _ExecBase,A6
- JSR -336(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeTrap(trapNum : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L trapNum,D0
- MOVEA.L _ExecBase,A6
- JSR -348(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeVec(memoryBlock : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L memoryBlock,A1
- MOVEA.L _ExecBase,A6
- JSR -690(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION GetCC : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _ExecBase,A6
- JSR -528(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetMsg(port : pMsgPort) : pMessage;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L port,A0
- MOVEA.L _ExecBase,A6
- JSR -372(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE InitCode(startClass : ULONG; version : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L startClass,D0
- MOVE.L version,D1
- MOVEA.L _ExecBase,A6
- JSR -072(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION InitResident(const resident_ : pResident; segList : ULONG) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L resident_,A1
- MOVE.L segList,D1
- MOVEA.L _ExecBase,A6
- JSR -102(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE InitSemaphore(sigSem : pSignalSemaphore);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sigSem,A0
- MOVEA.L _ExecBase,A6
- JSR -558(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE InitStruct(const initTable : POINTER; memory : POINTER; size : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L initTable,A1
- MOVEA.L memory,A2
- MOVE.L size,D0
- MOVEA.L _ExecBase,A6
- JSR -078(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE MakeFunctions(const target : POINTER;const functionArray : POINTER;const funcDispBase :pointer);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L target,A0
- MOVEA.L functionArray,A1
- MOVEA.L funcDispBase,A2
- MOVEA.L _ExecBase,A6
- JSR -090(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION MakeLibrary(const funcInit : POINTER;const structInit : POINTER; libInit : tPROCEDURE; dataSize : ULONG; segList : ULONG) : pLibrary;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L funcInit,A0
- MOVEA.L structInit,A1
- MOVEA.L libInit,A2
- MOVE.L dataSize,D0
- MOVE.L segList,D1
- MOVEA.L _ExecBase,A6
- JSR -084(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ObtainQuickVector(interruptCode : POINTER) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L interruptCode,A0
- MOVEA.L _ExecBase,A6
- JSR -786(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE ObtainSemaphore(sigSem : pSignalSemaphore);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sigSem,A0
- MOVEA.L _ExecBase,A6
- JSR -564(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ObtainSemaphoreList(sigSem : pList);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sigSem,A0
- MOVEA.L _ExecBase,A6
- JSR -582(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ObtainSemaphoreShared(sigSem : pSignalSemaphore);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sigSem,A0
- MOVEA.L _ExecBase,A6
- JSR -678(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION OldOpenLibrary(const libName : pCHAR) : pLibrary;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L libName,A1
- MOVEA.L _ExecBase,A6
- JSR -408(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION OpenDevice(const devName : pCHAR; unite : ULONG; ioRequest : pIORequest;
-flags : ULONG) : shortint;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L devName,A0
- MOVE.L unite,D0
- MOVEA.L ioRequest,A1
- MOVE.L flags,D1
- MOVEA.L _ExecBase,A6
- JSR -444(A6)
- MOVEA.L (A7)+,A6
- MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION OpenLibrary(const libName : pCHAR; version : ULONG) : pLibrary;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L libName,A1
- MOVE.L version,D0
- MOVEA.L _ExecBase,A6
- JSR -552(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION OpenResource(const resName : pCHAR) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L resName,A1
- MOVEA.L _ExecBase,A6
- JSR -498(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE Permit;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _ExecBase,A6
- JSR -138(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION Procure(sigSem : pSignalSemaphore; bidMsg : pSemaphoreMessage) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sigSem,A0
- MOVEA.L bidMsg,A1
- MOVEA.L _ExecBase,A6
- JSR -540(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE PutMsg(port : pMsgPort; message : pMessage);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L port,A0
- MOVEA.L message,A1
- MOVEA.L _ExecBase,A6
- JSR -366(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-function RawDoFmt(const formatString : pCHAR;const dataStream : POINTER; putChProc : tPROCEDURE; putChData : POINTER): pointer;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L formatString,A0
- MOVEA.L dataStream,A1
- MOVEA.L putChProc,A2
- MOVEA.L putChData,A3
- MOVEA.L _ExecBase,A6
- JSR -522(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE ReleaseSemaphore(sigSem : pSignalSemaphore);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sigSem,A0
- MOVEA.L _ExecBase,A6
- JSR -570(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ReleaseSemaphoreList(sigSem : pList);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sigSem,A0
- MOVEA.L _ExecBase,A6
- JSR -588(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE RemDevice(device : pDevice);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L device,A1
- MOVEA.L _ExecBase,A6
- JSR -438(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION RemHead(list : pList) : pNode;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L list,A0
- MOVEA.L _ExecBase,A6
- JSR -258(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE RemIntServer(intNumber : LONGINT; interrupt_ : pInterrupt);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L intNumber,D0
- MOVEA.L interrupt_,A1
- MOVEA.L _ExecBase,A6
- JSR -174(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE RemLibrary(lib : pLibrary);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L lib,A1
- MOVEA.L _ExecBase,A6
- JSR -402(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE RemMemHandler(memhand : pInterrupt);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L memhand,A1
- MOVEA.L _ExecBase,A6
- JSR -780(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE Remove(node : pNode);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L node,A1
- MOVEA.L _ExecBase,A6
- JSR -252(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE RemPort(port : pMsgPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L port,A1
- MOVEA.L _ExecBase,A6
- JSR -360(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE RemResource(resource : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L resource,A1
- MOVEA.L _ExecBase,A6
- JSR -492(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE RemSemaphore(sigSem : pSignalSemaphore);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sigSem,A1
- MOVEA.L _ExecBase,A6
- JSR -606(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION RemTail(list : pList) : pNode;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L list,A0
- MOVEA.L _ExecBase,A6
- JSR -264(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE RemTask(task : pTask);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L task,A1
- MOVEA.L _ExecBase,A6
- JSR -288(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ReplyMsg(message : pMessage);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L message,A1
- MOVEA.L _ExecBase,A6
- JSR -378(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE SendIO(ioRequest : pIORequest);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L ioRequest,A1
- MOVEA.L _ExecBase,A6
- JSR -462(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION SetExcept(newSignals : ULONG; signalSet : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L newSignals,D0
- MOVE.L signalSet,D1
- MOVEA.L _ExecBase,A6
- JSR -312(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetFunction(lib : pLibrary; funcOffset : LONGINT; newFunction : tPROCEDURE) :
-POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L lib,A1
- MOVEA.L funcOffset,A0
- MOVE.L newFunction,D0
- MOVEA.L _ExecBase,A6
- JSR -420(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetIntVector(intNumber : LONGINT;const interrupt_ : pInterrupt) : pInterrupt;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L intNumber,D0
- MOVEA.L interrupt_,A1
- MOVEA.L _ExecBase,A6
- JSR -162(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetSignal(newSignals : ULONG; signalSet : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L newSignals,D0
- MOVE.L signalSet,D1
- MOVEA.L _ExecBase,A6
- JSR -306(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetSR(newSR : ULONG; mask : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L newSR,D0
- MOVE.L mask,D1
- MOVEA.L _ExecBase,A6
- JSR -144(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetTaskPri(task : pTask; priority : LONGINT) : shortint;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L task,A1
- MOVE.L priority,D0
- MOVEA.L _ExecBase,A6
- JSR -300(A6)
- MOVEA.L (A7)+,A6
- MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE Signal(task : pTask; signalSet : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L task,A1
- MOVE.L signalSet,D0
- MOVEA.L _ExecBase,A6
- JSR -324(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE StackSwap(newStack : pStackSwapStruct);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L newStack,A0
- MOVEA.L _ExecBase,A6
- JSR -732(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE SumKickData;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _ExecBase,A6
- JSR -612(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE SumLibrary(lib : pLibrary);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L lib,A1
- MOVEA.L _ExecBase,A6
- JSR -426(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION SuperState : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _ExecBase,A6
- JSR -150(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION Supervisor(userFunction : tPROCEDURE) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L userFunction,A5
- MOVEA.L _ExecBase,A6
- JSR -030(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION TypeOfMem(const address : POINTER) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L address,A1
- MOVEA.L _ExecBase,A6
- JSR -534(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE UserState(sysStack : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L sysStack,D0
- MOVEA.L _ExecBase,A6
- JSR -156(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE Vacate(sigSem : pSignalSemaphore; bidMsg : pSemaphoreMessage);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sigSem,A0
- MOVEA.L bidMsg,A1
- MOVEA.L _ExecBase,A6
- JSR -546(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION Wait(signalSet : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L signalSet,D0
- MOVEA.L _ExecBase,A6
- JSR -318(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION WaitIO(ioRequest : pIORequest) : shortint;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L ioRequest,A1
- MOVEA.L _ExecBase,A6
- JSR -474(A6)
- MOVEA.L (A7)+,A6
- MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION WaitPort(port : pMsgPort) : pMessage;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L port,A0
- MOVEA.L _ExecBase,A6
- JSR -384(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE NewMinList(minlist : pMinList);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L minlist,A0
- MOVEA.L _ExecBase,A6
- JSR -828(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION AVL_AddNode(root : ppAVLNode; node : pAVLNode; func : POINTER) : pAVLNode;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L root,A0
- MOVEA.L node,A1
- MOVEA.L func,A2
- MOVEA.L _ExecBase,A6
- JSR -852(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AVL_RemNodeByAddress(root : ppAVLNode; node : pAVLNode) : pAVLNode;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L root,A0
- MOVEA.L node,A1
- MOVEA.L _ExecBase,A6
- JSR -858(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AVL_RemNodeByKey(root : ppAVLNode; key : POINTER; func : POINTER) : pAVLNode;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L root,A0
- MOVEA.L key,A1
- MOVEA.L func,A2
- MOVEA.L _ExecBase,A6
- JSR -864(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AVL_FindNode(CONST root : pAVLNode; key : POINTER; func : POINTER) : pAVLNode;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L root,A0
- MOVEA.L key,A1
- MOVEA.L func,A2
- MOVEA.L _ExecBase,A6
- JSR -870(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AVL_FindPrevNodeByAddress(CONST node : pAVLNode) : pAVLNode;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L node,A0
- MOVEA.L _ExecBase,A6
- JSR -876(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AVL_FindPrevNodeByKey(CONST root : pAVLNode; key : POINTER; func : POINTER) : pAVLNode;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L root,A0
- MOVEA.L key,A1
- MOVEA.L func,A2
- MOVEA.L _ExecBase,A6
- JSR -882(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AVL_FindNextNodeByAddress(CONST node : pAVLNode) : pAVLNode;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L node,A0
- MOVEA.L _ExecBase,A6
- JSR -888(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AVL_FindNextNodeByKey(CONST root : pAVLNode; key : POINTER; func : POINTER) : pAVLNode;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L root,A0
- MOVEA.L key,A1
- MOVEA.L func,A2
- MOVEA.L _ExecBase,A6
- JSR -894(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AVL_FindFirstNode(CONST root : pAVLNode) : pAVLNode;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L root,A0
- MOVEA.L _ExecBase,A6
- JSR -900(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AVL_FindLastNode(CONST root : pAVLNode) : pAVLNode;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L root,A0
- MOVEA.L _ExecBase,A6
- JSR -906(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-
PROCEDURE AddMemList(size : ULONG; attributes : ULONG; pri : LONGINT; base : POINTER; const name : String);
BEGIN
AddMemList(size,attributes,pri,base,pas2c(name));
diff --git a/packages/amunits/src/coreunits/expansion.pas b/packages/amunits/src/coreunits/expansion.pas
index 5938430827..cdccc29831 100644
--- a/packages/amunits/src/coreunits/expansion.pas
+++ b/packages/amunits/src/coreunits/expansion.pas
@@ -88,7 +88,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox;
+amsgbox;
{$endif dont_use_openlib}
FUNCTION AddBootNode(bootPri : LONGINT; flags : ULONG; deviceNode : pDeviceNode; configDev : pConfigDev) : BOOLEAN;
diff --git a/packages/amunits/src/coreunits/gadtools.pas b/packages/amunits/src/coreunits/gadtools.pas
index 5ee07ce4ce..324d64262f 100644
--- a/packages/amunits/src/coreunits/gadtools.pas
+++ b/packages/amunits/src/coreunits/gadtools.pas
@@ -44,18 +44,13 @@
nils.sjoholm@mailbox.swipnet.se
}
-
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
unit gadtools;
INTERFACE
-uses exec, intuition, graphics, utility;
+uses exec, intuition, agraphics, utility;
{------------------------------------------------------------------------}
@@ -472,25 +467,25 @@ Type
VAR
GadToolsBase : pLibrary;
-FUNCTION CreateContext(glistptr : pGadget): pGadget;
-FUNCTION CreateGadgetA(kind : ULONG; gad : pGadget;const ng : pNewGadget;const taglist : pTagItem) : pGadget;
-FUNCTION CreateMenusA(const newmenu : pNewMenu;const taglist : pTagItem) : pMenu;
-PROCEDURE DrawBevelBoxA(rport : pRastPort; left : LONGINT; top : LONGINT; width : LONGINT; height : LONGINT;const taglist : pTagItem);
-PROCEDURE FreeGadgets(gad : pGadget);
-PROCEDURE FreeMenus(menu : pMenu);
-PROCEDURE FreeVisualInfo(vi : POINTER);
-FUNCTION GetVisualInfoA(screen : pScreen;const taglist : pTagItem) : POINTER;
-PROCEDURE GT_BeginRefresh(win : pWindow);
-PROCEDURE GT_EndRefresh(win : pWindow; complete : LONGINT);
-FUNCTION GT_FilterIMsg(const imsg : pIntuiMessage) : pIntuiMessage;
-FUNCTION GT_GetGadgetAttrsA(gad : pGadget; win : pWindow; req : pRequester;const taglist : pTagItem) : LONGINT;
-FUNCTION GT_GetIMsg(iport : pMsgPort) : pIntuiMessage;
-FUNCTION GT_PostFilterIMsg(imsg : pIntuiMessage) : pIntuiMessage;
-PROCEDURE GT_RefreshWindow(win : pWindow; req : pRequester);
-PROCEDURE GT_ReplyIMsg(imsg : pIntuiMessage);
-PROCEDURE GT_SetGadgetAttrsA(gad : pGadget; win : pWindow; req : pRequester;const taglist : pTagItem);
-FUNCTION LayoutMenuItemsA(firstitem : pMenuItem; vi : POINTER;const taglist : pTagItem) : BOOLEAN;
-FUNCTION LayoutMenusA(firstmenu : pMenu; vi : POINTER;const taglist : pTagItem) : BOOLEAN;
+FUNCTION CreateContext(glistptr : pGadget location 'a0'): pGadget; syscall GadToolsBase 114;
+FUNCTION CreateGadgetA(kind : ULONG location 'd0'; gad : pGadget location 'a0'; const ng : pNewGadget location 'a1'; const taglist : pTagItem location 'a2') : pGadget; syscall GadToolsBase 030;
+FUNCTION CreateMenusA(const newmenu : pNewMenu location 'a0'; const taglist : pTagItem location 'a1') : pMenu; syscall GadToolsBase 048;
+PROCEDURE DrawBevelBoxA(rport : pRastPort location 'a0'; left : LONGINT location 'd0'; top : LONGINT location 'd1'; width : LONGINT location 'd2'; height : LONGINT location 'd3'; const taglist : pTagItem location 'a1'); syscall GadToolsBase 120;
+PROCEDURE FreeGadgets(gad : pGadget location 'a0'); syscall GadToolsBase 036;
+PROCEDURE FreeMenus(menu : pMenu location 'a0'); syscall GadToolsBase 054;
+PROCEDURE FreeVisualInfo(vi : POINTER location 'a0'); syscall GadToolsBase 132;
+FUNCTION GetVisualInfoA(screen : pScreen location 'a0'; const taglist : pTagItem location 'a1') : POINTER; syscall GadToolsBase 126;
+PROCEDURE GT_BeginRefresh(win : pWindow location 'a0'); syscall GadToolsBase 090;
+PROCEDURE GT_EndRefresh(win : pWindow location 'a0'; complete : LONGINT location 'd0'); syscall GadToolsBase 096;
+FUNCTION GT_FilterIMsg(const imsg : pIntuiMessage location 'a1') : pIntuiMessage; syscall GadToolsBase 102;
+FUNCTION GT_GetGadgetAttrsA(gad : pGadget location 'a0'; win : pWindow location 'a1'; req : pRequester location 'a2'; const taglist : pTagItem location 'a3') : LONGINT; syscall GadToolsBase 174;
+FUNCTION GT_GetIMsg(iport : pMsgPort location 'a0') : pIntuiMessage; syscall GadToolsBase 072;
+FUNCTION GT_PostFilterIMsg(imsg : pIntuiMessage location 'a1') : pIntuiMessage; syscall GadToolsBase 108;
+PROCEDURE GT_RefreshWindow(win : pWindow location 'a0'; req : pRequester location 'a1'); syscall GadToolsBase 084;
+PROCEDURE GT_ReplyIMsg(imsg : pIntuiMessage location 'a1'); syscall GadToolsBase 078;
+PROCEDURE GT_SetGadgetAttrsA(gad : pGadget location 'a0'; win : pWindow location 'a1'; req : pRequester location 'a2'; const taglist : pTagItem location 'a3'); syscall GadToolsBase 042;
+FUNCTION LayoutMenuItemsA(firstitem : pMenuItem location 'a0'; vi : POINTER location 'a1'; const taglist : pTagItem location 'a2') : LongBool; syscall GadToolsBase 060;
+FUNCTION LayoutMenusA(firstmenu : pMenu location 'a0'; vi : POINTER location 'a1'; const taglist : pTagItem location 'a2') : LongBool; syscall GadToolsBase 066;
function GTMENUITEM_USERDATA(menuitem : pMenuItem): pointer;
function GTMENU_USERDATA(menu : pMenu): pointer;
@@ -510,7 +505,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox;
+amsgbox;
{$endif dont_use_openlib}
function GTMENUITEM_USERDATA(menuitem : pMenuItem): pointer;
@@ -523,253 +518,6 @@ begin
GTMENU_USERDATA := pointer((pMenu(menu)+1));
end;
-FUNCTION CreateContext(glistptr : pGadget): pGadget;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L glistptr,A0
- MOVEA.L GadToolsBase,A6
- JSR -114(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CreateGadgetA(kind : ULONG; gad : pGadget;const ng : pNewGadget;const taglist : pTagItem) : pGadget;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L kind,D0
- MOVEA.L gad,A0
- MOVEA.L ng,A1
- MOVEA.L taglist,A2
- MOVEA.L GadToolsBase,A6
- JSR -030(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CreateMenusA(const newmenu : pNewMenu;const taglist : pTagItem) : pMenu;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L newmenu,A0
- MOVEA.L taglist,A1
- MOVEA.L GadToolsBase,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE DrawBevelBoxA(rport : pRastPort; left : LONGINT; top : LONGINT; width : LONGINT; height : LONGINT;const taglist : pTagItem);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rport,A0
- MOVE.L left,D0
- MOVE.L top,D1
- MOVE.L width,D2
- MOVE.L height,D3
- MOVEA.L taglist,A1
- MOVEA.L GadToolsBase,A6
- JSR -120(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeGadgets(gad : pGadget);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L gad,A0
- MOVEA.L GadToolsBase,A6
- JSR -036(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeMenus(menu : pMenu);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L menu,A0
- MOVEA.L GadToolsBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeVisualInfo(vi : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L vi,A0
- MOVEA.L GadToolsBase,A6
- JSR -132(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION GetVisualInfoA(screen : pScreen;const taglist : pTagItem) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L screen,A0
- MOVEA.L taglist,A1
- MOVEA.L GadToolsBase,A6
- JSR -126(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE GT_BeginRefresh(win : pWindow);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L win,A0
- MOVEA.L GadToolsBase,A6
- JSR -090(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE GT_EndRefresh(win : pWindow; complete : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L win,A0
- MOVE.L complete,D0
- MOVEA.L GadToolsBase,A6
- JSR -096(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION GT_FilterIMsg(const imsg : pIntuiMessage) : pIntuiMessage;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L imsg,A1
- MOVEA.L GadToolsBase,A6
- JSR -102(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GT_GetGadgetAttrsA(gad : pGadget; win : pWindow; req : pRequester;const taglist : pTagItem) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L gad,A0
- MOVEA.L win,A1
- MOVEA.L req,A2
- MOVEA.L taglist,A3
- MOVEA.L GadToolsBase,A6
- JSR -174(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GT_GetIMsg(iport : pMsgPort) : pIntuiMessage;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iport,A0
- MOVEA.L GadToolsBase,A6
- JSR -072(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GT_PostFilterIMsg(imsg : pIntuiMessage) : pIntuiMessage;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L imsg,A1
- MOVEA.L GadToolsBase,A6
- JSR -108(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE GT_RefreshWindow(win : pWindow; req : pRequester);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L win,A0
- MOVEA.L req,A1
- MOVEA.L GadToolsBase,A6
- JSR -084(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE GT_ReplyIMsg(imsg : pIntuiMessage);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L imsg,A1
- MOVEA.L GadToolsBase,A6
- JSR -078(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE GT_SetGadgetAttrsA(gad : pGadget; win : pWindow; req : pRequester;const taglist : pTagItem);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L gad,A0
- MOVEA.L win,A1
- MOVEA.L req,A2
- MOVEA.L taglist,A3
- MOVEA.L GadToolsBase,A6
- JSR -042(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION LayoutMenuItemsA(firstitem : pMenuItem; vi : POINTER;const taglist : pTagItem) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L firstitem,A0
- MOVEA.L vi,A1
- MOVEA.L taglist,A2
- MOVEA.L GadToolsBase,A6
- JSR -060(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION LayoutMenusA(firstmenu : pMenu; vi : POINTER;const taglist : pTagItem) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L firstmenu,A0
- MOVEA.L vi,A1
- MOVEA.L taglist,A2
- MOVEA.L GadToolsBase,A6
- JSR -066(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
const
{ Change VERSION and LIBVERSION to proper values }
diff --git a/packages/amunits/src/coreunits/hardware.pas b/packages/amunits/src/coreunits/hardware.pas
index b88894d5fb..c67bf380c6 100644
--- a/packages/amunits/src/coreunits/hardware.pas
+++ b/packages/amunits/src/coreunits/hardware.pas
@@ -18,6 +18,7 @@
registers and bits in the Complex Interface Adapter (CIA) chip
}
+{$PACKRECORDS 2}
unit hardware;
INTERFACE
diff --git a/packages/amunits/src/coreunits/icon.pas b/packages/amunits/src/coreunits/icon.pas
index e113a4718f..6cf208293f 100644
--- a/packages/amunits/src/coreunits/icon.pas
+++ b/packages/amunits/src/coreunits/icon.pas
@@ -51,17 +51,12 @@
nils.sjoholm@mailbox.swipnet.se
}
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
-
unit icon;
INTERFACE
-uses exec, workbench,utility,amigados,graphics,intuition,datatypes;
+uses exec, workbench,utility,amigados,agraphics,intuition,datatypes;
const
ICONA_Dummy = TAG_USER + $9000;
@@ -353,29 +348,29 @@ Const
VAR IconBase : pLibrary;
-FUNCTION AddFreeList(freelist : pFreeList;const mem : POINTER; size : ULONG) : BOOLEAN;
-FUNCTION BumpRevision(newname : pCHAR;const oldname : pCHAR) : pCHAR;
-FUNCTION DeleteDiskObject(const name : pCHAR) : BOOLEAN;
-FUNCTION FindToolType(const toolTypeArray : POINTER;const typeName : pCHAR) : pCHAR;
-PROCEDURE FreeDiskObject(diskobj : pDiskObject);
-PROCEDURE FreeFreeList(freelist : pFreeList);
-FUNCTION GetDefDiskObject(typ : LONGINT) : pDiskObject;
-FUNCTION GetDiskObject(const name : pCHAR) : pDiskObject;
-FUNCTION GetDiskObjectNew(const name : pCHAR) : pDiskObject;
-FUNCTION MatchToolValue(const typeString : pCHAR;const value : pCHAR) : BOOLEAN;
-FUNCTION PutDefDiskObject(const diskObject : pDiskObject) : BOOLEAN;
-FUNCTION PutDiskObject(const name : pCHAR;const diskobj : pDiskObject) : BOOLEAN;
+FUNCTION AddFreeList(freelist : pFreeList location 'a0'; const mem : POINTER location 'a1'; size : ULONG location 'a2') : LongBool; syscall IconBase 072;
+FUNCTION BumpRevision(newname : pCHAR location 'a0'; const oldname : pCHAR location 'a1') : pCHAR; syscall IconBase 108;
+FUNCTION DeleteDiskObject(const name : pCHAR location 'a0') : LongBool; syscall IconBase 138;
+FUNCTION FindToolType(const toolTypeArray : POINTER location 'a0'; const typeName : pCHAR location 'a1') : pCHAR; syscall IconBase 096;
+PROCEDURE FreeDiskObject(diskobj : pDiskObject location 'a0'); syscall IconBase 090;
+PROCEDURE FreeFreeList(freelist : pFreeList location 'a0'); syscall IconBase 054;
+FUNCTION GetDefDiskObject(typ : LONGINT location 'd0') : pDiskObject; syscall IconBase 120;
+FUNCTION GetDiskObject(const name : pCHAR location 'a0') : pDiskObject; syscall IconBase 078;
+FUNCTION GetDiskObjectNew(const name : pCHAR location 'a0') : pDiskObject; syscall IconBase 132;
+FUNCTION MatchToolValue(const typeString : pCHAR location 'a0'; const value : pCHAR location 'a1') : LongBool; syscall IconBase 102;
+FUNCTION PutDefDiskObject(const diskObject : pDiskObject location 'a0') : LongBool; syscall IconBase 126;
+FUNCTION PutDiskObject(const name : pCHAR location 'a0'; const diskobj : pDiskObject location 'a1') : LongBool; syscall IconBase 084;
{ version 44 }
-FUNCTION DupDiskObjectA(CONST diskObject : pDiskObject; CONST tags : pTagItem) : pDiskObject;
-FUNCTION IconControlA(icon : pDiskObject; CONST tags : pTagItem) : longword;
-PROCEDURE DrawIconStateA(rp : pRastPort; CONST icon : pDiskObject; CONST label_ : pCHAR; leftOffset : LONGINT; topOffset : LONGINT; state : longword; CONST tags : pTagItem);
-FUNCTION GetIconRectangleA(rp : pRastPort; CONST icon : pDiskObject; CONST label_ : pCHAR; rect : pRectangle; CONST tags : pTagItem) : BOOLEAN;
-FUNCTION NewDiskObject(type_ : LONGINT) : pDiskObject;
-FUNCTION GetIconTagList(CONST name : pCHAR; CONST tags : pTagItem) : pDiskObject;
-FUNCTION PutIconTagList(CONST name : pCHAR; CONST icon : pDiskObject; CONST tags : pTagItem) : BOOLEAN;
-FUNCTION LayoutIconA(icon : pDiskObject; screen : pScreen; tags : pTagItem) : BOOLEAN;
-PROCEDURE ChangeToSelectedIconColor(cr : pColorRegister);
+FUNCTION DupDiskObjectA(CONST diskObject : pDiskObject location 'a0'; CONST tags : pTagItem location 'a1') : pDiskObject; syscall IconBase 150;
+FUNCTION IconControlA(icon : pDiskObject location 'a0'; CONST tags : pTagItem location 'a1') : longword; syscall IconBase 156;
+PROCEDURE DrawIconStateA(rp : pRastPort location 'a0'; CONST icon : pDiskObject location 'a1'; CONST label_ : pCHAR location 'a2'; leftOffset : LONGINT location 'd0'; topOffset : LONGINT location 'd1'; state : longword location 'd2'; CONST tags : pTagItem location 'a3'); syscall IconBase 162;
+FUNCTION GetIconRectangleA(rp : pRastPort location 'a0'; CONST icon : pDiskObject location 'a1'; CONST label_ : pCHAR location 'a2'; rect : pRectangle location 'a3'; CONST tags : pTagItem location 'a4') : LongBool; syscall IconBase 168;
+FUNCTION NewDiskObject(type_ : LONGINT location 'd0') : pDiskObject; syscall IconBase 174;
+FUNCTION GetIconTagList(CONST name : pCHAR location 'a0'; CONST tags : pTagItem location 'a1') : pDiskObject; syscall IconBase 180;
+FUNCTION PutIconTagList(CONST name : pCHAR location 'a0'; CONST icon : pDiskObject location 'a1'; CONST tags : pTagItem location 'a2') : LongBool; syscall IconBase 186;
+FUNCTION LayoutIconA(icon : pDiskObject location 'a0'; screen : pScreen location 'a1'; tags : pTagItem location 'a2') : LongBool; syscall IconBase 192;
+PROCEDURE ChangeToSelectedIconColor(cr : pColorRegister location 'a0'); syscall IconBase 198;
{ overlay }
FUNCTION BumpRevision(newname : string;const oldname : pCHAR) : pCHAR;
@@ -413,7 +408,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
pastoc;
@@ -422,300 +417,6 @@ begin
PACK_ICON_ASPECT_RATIO:=(num shl 4) or den;
end;
-FUNCTION AddFreeList(freelist : pFreeList;const mem : POINTER; size : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L freelist,A0
- MOVEA.L mem,A1
- MOVEA.L size,A2
- MOVEA.L IconBase,A6
- JSR -072(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION BumpRevision(newname : pCHAR;const oldname : pCHAR) : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L newname,A0
- MOVEA.L oldname,A1
- MOVEA.L IconBase,A6
- JSR -108(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DeleteDiskObject(const name : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L IconBase,A6
- JSR -138(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION FindToolType(const toolTypeArray : POINTER;const typeName : pCHAR) : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L toolTypeArray,A0
- MOVEA.L typeName,A1
- MOVEA.L IconBase,A6
- JSR -096(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE FreeDiskObject(diskobj : pDiskObject);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L diskobj,A0
- MOVEA.L IconBase,A6
- JSR -090(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeFreeList(freelist : pFreeList);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L freelist,A0
- MOVEA.L IconBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION GetDefDiskObject(typ : LONGINT) : pDiskObject;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L typ,D0
- MOVEA.L IconBase,A6
- JSR -120(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetDiskObject(const name : pCHAR) : pDiskObject;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L IconBase,A6
- JSR -078(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetDiskObjectNew(const name : pCHAR) : pDiskObject;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L IconBase,A6
- JSR -132(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION MatchToolValue(const typeString : pCHAR;const value : pCHAR) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L typeString,A0
- MOVEA.L value,A1
- MOVEA.L IconBase,A6
- JSR -102(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION PutDefDiskObject(const diskObject : pDiskObject) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L diskObject,A0
- MOVEA.L IconBase,A6
- JSR -126(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION PutDiskObject(const name : pCHAR;const diskobj : pDiskObject) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L diskobj,A1
- MOVEA.L IconBase,A6
- JSR -084(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION DupDiskObjectA(CONST diskObject : pDiskObject; CONST tags : pTagItem) : pDiskObject;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L diskObject,A0
- MOVEA.L tags,A1
- MOVEA.L IconBase,A6
- JSR -150(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION IconControlA(icon : pDiskObject; CONST tags : pTagItem) : longword;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L icon,A0
- MOVEA.L tags,A1
- MOVEA.L IconBase,A6
- JSR -156(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE DrawIconStateA(rp : pRastPort; CONST icon : pDiskObject; CONST label_ : pCHAR; leftOffset : LONGINT; topOffset : LONGINT; state : longword; CONST tags : pTagItem);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVEA.L icon,A1
- MOVEA.L label_,A2
- MOVE.L leftOffset,D0
- MOVE.L topOffset,D1
- MOVE.L state,D2
- MOVEA.L tags,A3
- MOVEA.L IconBase,A6
- JSR -162(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION GetIconRectangleA(rp : pRastPort; CONST icon : pDiskObject; CONST label_ : pCHAR; rect : pRectangle; CONST tags : pTagItem) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVEA.L icon,A1
- MOVEA.L label_,A2
- MOVEA.L rect,A3
- MOVEA.L tags,A4
- MOVEA.L IconBase,A6
- JSR -168(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION NewDiskObject(type_ : LONGINT) : pDiskObject;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L type_,D0
- MOVEA.L IconBase,A6
- JSR -174(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetIconTagList(CONST name : pCHAR; CONST tags : pTagItem) : pDiskObject;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L tags,A1
- MOVEA.L IconBase,A6
- JSR -180(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION PutIconTagList(CONST name : pCHAR; CONST icon : pDiskObject; CONST tags : pTagItem) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L icon,A1
- MOVEA.L tags,A2
- MOVEA.L IconBase,A6
- JSR -186(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION LayoutIconA(icon : pDiskObject; screen : pScreen; tags : pTagItem) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L icon,A0
- MOVEA.L screen,A1
- MOVEA.L tags,A2
- MOVEA.L IconBase,A6
- JSR -192(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE ChangeToSelectedIconColor(cr : pColorRegister);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L cr,A0
- MOVEA.L IconBase,A6
- JSR -198(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
FUNCTION BumpRevision(newname : string;const oldname : pCHAR) : pCHAR;
begin
diff --git a/packages/amunits/src/coreunits/iffparse.pas b/packages/amunits/src/coreunits/iffparse.pas
index 8959ec85e0..f8d5100201 100644
--- a/packages/amunits/src/coreunits/iffparse.pas
+++ b/packages/amunits/src/coreunits/iffparse.pas
@@ -33,11 +33,7 @@
nils.sjoholm@mailbox.swipnet.se Nils Sjoholm
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
unit iffparse;
@@ -239,46 +235,46 @@ CONST
VAR IFFParseBase : pLibrary;
-FUNCTION AllocIFF : pIFFHandle;
-FUNCTION AllocLocalItem(typ : LONGINT; id : LONGINT; ident : LONGINT; dataSize : LONGINT) : pLocalContextItem;
-PROCEDURE CloseClipboard(clipHandle : pClipboardHandle);
-PROCEDURE CloseIFF(iff : pIFFHandle);
-FUNCTION CollectionChunk(iff : pIFFHandle; typ : LONGINT; id : LONGINT) : LONGINT;
-FUNCTION CollectionChunks(iff : pIFFHandle;const propArray : pLONGINT; numPairs : LONGINT) : LONGINT;
-FUNCTION CurrentChunk(const iff : pIFFHandle) : pContextNode;
-FUNCTION EntryHandler(iff : pIFFHandle; typ : LONGINT; id : LONGINT; position : LONGINT; handler : pHook; obj : POINTER) : LONGINT;
-FUNCTION ExitHandler(iff : pIFFHandle; typ : LONGINT; id : LONGINT; position : LONGINT; handler : pHook; obj : POINTER) : LONGINT;
-FUNCTION FindCollection(const iff : pIFFHandle; typ : LONGINT; id : LONGINT) : pCollectionItem;
-FUNCTION FindLocalItem(const iff : pIFFHandle; typ : LONGINT; id : LONGINT; ident : LONGINT) : pLocalContextItem;
-FUNCTION FindProp(const iff : pIFFHandle; typ : LONGINT; id : LONGINT) : pStoredProperty;
-FUNCTION FindPropContext(const iff : pIFFHandle) : pContextNode;
-PROCEDURE FreeIFF(iff : pIFFHandle);
-PROCEDURE FreeLocalItem(localItem : pLocalContextItem);
-FUNCTION GoodID(id : LONGINT) : LONGINT;
-FUNCTION GoodType(typ : LONGINT) : LONGINT;
-FUNCTION IDtoStr(id : LONGINT; buf : pCHAR) : pCHAR;
-PROCEDURE InitIFF(iff : pIFFHandle; flags : LONGINT;const streamHook : pHook);
-PROCEDURE InitIFFasClip(iff : pIFFHandle);
-PROCEDURE InitIFFasDOS(iff : pIFFHandle);
-FUNCTION LocalItemData(const localItem : pLocalContextItem) : POINTER;
-FUNCTION OpenClipboard(unitNumber : LONGINT) : pClipboardHandle;
-FUNCTION OpenIFF(iff : pIFFHandle; rwMode : LONGINT) : LONGINT;
-FUNCTION ParentChunk(const contextNode : pContextNode) : pContextNode;
-FUNCTION ParseIFF(iff : pIFFHandle; control : LONGINT) : LONGINT;
-FUNCTION PopChunk(iff : pIFFHandle) : LONGINT;
-FUNCTION PropChunk(iff : pIFFHandle; typ : LONGINT; id : LONGINT) : LONGINT;
-FUNCTION PropChunks(iff : pIFFHandle;const propArray : pLONGINT; numPairs : LONGINT) : LONGINT;
-FUNCTION PushChunk(iff : pIFFHandle; typ : LONGINT; id : LONGINT; size : LONGINT) : LONGINT;
-FUNCTION ReadChunkBytes(iff : pIFFHandle; buf : POINTER; numBytes : LONGINT) : LONGINT;
-FUNCTION ReadChunkRecords(iff : pIFFHandle; buf : POINTER; bytesPerRecord : LONGINT; numRecords : LONGINT) : LONGINT;
-PROCEDURE SetLocalItemPurge(localItem : pLocalContextItem;const purgeHook : pHook);
-FUNCTION StopChunk(iff : pIFFHandle; typ : LONGINT; id : LONGINT) : LONGINT;
-FUNCTION StopChunks(iff : pIFFHandle;const propArray : pLONGINT; numPairs : LONGINT) : LONGINT;
-FUNCTION StopOnExit(iff : pIFFHandle; typ : LONGINT; id : LONGINT) : LONGINT;
-PROCEDURE StoreItemInContext(iff : pIFFHandle; localItem : pLocalContextItem; contextNode : pContextNode);
-FUNCTION StoreLocalItem(iff : pIFFHandle; localItem : pLocalContextItem; position : LONGINT) : LONGINT;
-FUNCTION WriteChunkBytes(iff : pIFFHandle;const buf : POINTER; numBytes : LONGINT) : LONGINT;
-FUNCTION WriteChunkRecords(iff : pIFFHandle;const buf : POINTER; bytesPerRecord : LONGINT; numRecords : LONGINT) : LONGINT;
+FUNCTION AllocIFF : pIFFHandle; syscall IFFParseBase 030;
+FUNCTION AllocLocalItem(typ : LONGINT location 'd0'; id : LONGINT location 'd1'; ident : LONGINT location 'd2'; dataSize : LONGINT location 'd3') : pLocalContextItem; syscall IFFParseBase 186;
+PROCEDURE CloseClipboard(clipHandle : pClipboardHandle location 'a0'); syscall IFFParseBase 252;
+PROCEDURE CloseIFF(iff : pIFFHandle location 'a0'); syscall IFFParseBase 048;
+FUNCTION CollectionChunk(iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1') : LONGINT; syscall IFFParseBase 138;
+FUNCTION CollectionChunks(iff : pIFFHandle location 'a0'; const propArray : pLONGINT location 'a1'; numPairs : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 144;
+FUNCTION CurrentChunk(const iff : pIFFHandle location 'a0') : pContextNode; syscall IFFParseBase 174;
+FUNCTION EntryHandler(iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1'; position : LONGINT location 'd2'; handler : pHook location 'a1'; obj : POINTER location 'a2') : LONGINT; syscall IFFParseBase 102;
+FUNCTION ExitHandler(iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1'; position : LONGINT location 'd2'; handler : pHook location 'a1'; obj : POINTER location 'a2') : LONGINT; syscall IFFParseBase 108;
+FUNCTION FindCollection(const iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1') : pCollectionItem; syscall IFFParseBase 162;
+FUNCTION FindLocalItem(const iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1'; ident : LONGINT location 'd2') : pLocalContextItem; syscall IFFParseBase 210;
+FUNCTION FindProp(const iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1') : pStoredProperty; syscall IFFParseBase 156;
+FUNCTION FindPropContext(const iff : pIFFHandle location 'a0') : pContextNode; syscall IFFParseBase 168;
+PROCEDURE FreeIFF(iff : pIFFHandle location 'a0'); syscall IFFParseBase 054;
+PROCEDURE FreeLocalItem(localItem : pLocalContextItem location 'a0'); syscall IFFParseBase 204;
+FUNCTION GoodID(id : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 258;
+FUNCTION GoodType(typ : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 264;
+FUNCTION IDtoStr(id : LONGINT location 'd0'; buf : pCHAR location 'a0') : pCHAR; syscall IFFParseBase 270;
+PROCEDURE InitIFF(iff : pIFFHandle location 'a0'; flags : LONGINT location 'd0'; const streamHook : pHook location 'a1'); syscall IFFParseBase 228;
+PROCEDURE InitIFFasClip(iff : pIFFHandle location 'a0'); syscall IFFParseBase 240;
+PROCEDURE InitIFFasDOS(iff : pIFFHandle location 'a0'); syscall IFFParseBase 234;
+FUNCTION LocalItemData(const localItem : pLocalContextItem location 'a0') : POINTER; syscall IFFParseBase 192;
+FUNCTION OpenClipboard(unitNumber : LONGINT location 'd0') : pClipboardHandle; syscall IFFParseBase 246;
+FUNCTION OpenIFF(iff : pIFFHandle location 'a0'; rwMode : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 036;
+FUNCTION ParentChunk(const contextNode : pContextNode location 'a0') : pContextNode; syscall IFFParseBase 180;
+FUNCTION ParseIFF(iff : pIFFHandle location 'a0'; control : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 042;
+FUNCTION PopChunk(iff : pIFFHandle location 'a0') : LONGINT; syscall IFFParseBase 090;
+FUNCTION PropChunk(iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1') : LONGINT; syscall IFFParseBase 114;
+FUNCTION PropChunks(iff : pIFFHandle location 'a0'; const propArray : pLONGINT location 'a1'; numPairs : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 120;
+FUNCTION PushChunk(iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1'; size : LONGINT location 'd2') : LONGINT; syscall IFFParseBase 084;
+FUNCTION ReadChunkBytes(iff : pIFFHandle location 'a0'; buf : POINTER location 'a1'; numBytes : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 060;
+FUNCTION ReadChunkRecords(iff : pIFFHandle location 'a0'; buf : POINTER location 'a1'; bytesPerRecord : LONGINT location 'd0'; numRecords : LONGINT location 'd1') : LONGINT; syscall IFFParseBase 072;
+PROCEDURE SetLocalItemPurge(localItem : pLocalContextItem location 'a0'; const purgeHook : pHook location 'a1'); syscall IFFParseBase 198;
+FUNCTION StopChunk(iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1') : LONGINT; syscall IFFParseBase 126;
+FUNCTION StopChunks(iff : pIFFHandle location 'a0'; const propArray : pLONGINT location 'a1'; numPairs : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 132;
+FUNCTION StopOnExit(iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1') : LONGINT; syscall IFFParseBase 150;
+PROCEDURE StoreItemInContext(iff : pIFFHandle location 'a0'; localItem : pLocalContextItem location 'a1'; contextNode : pContextNode location 'a2'); syscall IFFParseBase 222;
+FUNCTION StoreLocalItem(iff : pIFFHandle location 'a0'; localItem : pLocalContextItem location 'a1'; position : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 216;
+FUNCTION WriteChunkBytes(iff : pIFFHandle location 'a0'; const buf : POINTER location 'a1'; numBytes : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 066;
+FUNCTION WriteChunkRecords(iff : pIFFHandle location 'a0'; const buf : POINTER location 'a1'; bytesPerRecord : LONGINT location 'd0'; numRecords : LONGINT location 'd1') : LONGINT; syscall IFFParseBase 078;
Function Make_ID(str : String) : LONGINT;
@@ -297,535 +293,9 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox;
+amsgbox;
{$endif dont_use_openlib}
-FUNCTION AllocIFF : pIFFHandle;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L IFFParseBase,A6
- JSR -030(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AllocLocalItem(typ : LONGINT; id : LONGINT; ident : LONGINT; dataSize : LONGINT) : pLocalContextItem;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L typ,D0
- MOVE.L id,D1
- MOVE.L ident,D2
- MOVE.L dataSize,D3
- MOVEA.L IFFParseBase,A6
- JSR -186(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE CloseClipboard(clipHandle : pClipboardHandle);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L clipHandle,A0
- MOVEA.L IFFParseBase,A6
- JSR -252(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE CloseIFF(iff : pIFFHandle);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVEA.L IFFParseBase,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION CollectionChunk(iff : pIFFHandle; typ : LONGINT; id : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVE.L typ,D0
- MOVE.L id,D1
- MOVEA.L IFFParseBase,A6
- JSR -138(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CollectionChunks(iff : pIFFHandle;const propArray : pLONGINT; numPairs : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVEA.L propArray,A1
- MOVE.L numPairs,D0
- MOVEA.L IFFParseBase,A6
- JSR -144(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CurrentChunk(const iff : pIFFHandle) : pContextNode;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVEA.L IFFParseBase,A6
- JSR -174(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION EntryHandler(iff : pIFFHandle; typ : LONGINT; id : LONGINT; position : LONGINT; handler : pHook; obj : POINTER) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVE.L typ,D0
- MOVE.L id,D1
- MOVE.L position,D2
- MOVEA.L handler,A1
- MOVEA.L obj,A2
- MOVEA.L IFFParseBase,A6
- JSR -102(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ExitHandler(iff : pIFFHandle; typ : LONGINT; id : LONGINT; position : LONGINT; handler : pHook; obj : POINTER) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVE.L typ,D0
- MOVE.L id,D1
- MOVE.L position,D2
- MOVEA.L handler,A1
- MOVEA.L obj,A2
- MOVEA.L IFFParseBase,A6
- JSR -108(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindCollection(const iff : pIFFHandle; typ : LONGINT; id : LONGINT) : pCollectionItem;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVE.L typ,D0
- MOVE.L id,D1
- MOVEA.L IFFParseBase,A6
- JSR -162(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindLocalItem(const iff : pIFFHandle; typ : LONGINT; id : LONGINT; ident : LONGINT) : pLocalContextItem;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVE.L typ,D0
- MOVE.L id,D1
- MOVE.L ident,D2
- MOVEA.L IFFParseBase,A6
- JSR -210(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindProp(const iff : pIFFHandle; typ : LONGINT; id : LONGINT) : pStoredProperty;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVE.L typ,D0
- MOVE.L id,D1
- MOVEA.L IFFParseBase,A6
- JSR -156(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION FindPropContext(const iff : pIFFHandle) : pContextNode;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVEA.L IFFParseBase,A6
- JSR -168(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE FreeIFF(iff : pIFFHandle);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVEA.L IFFParseBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeLocalItem(localItem : pLocalContextItem);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L localItem,A0
- MOVEA.L IFFParseBase,A6
- JSR -204(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION GoodID(id : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L id,D0
- MOVEA.L IFFParseBase,A6
- JSR -258(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GoodType(typ : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L typ,D0
- MOVEA.L IFFParseBase,A6
- JSR -264(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION IDtoStr(id : LONGINT; buf : pCHAR) : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L id,D0
- MOVEA.L buf,A0
- MOVEA.L IFFParseBase,A6
- JSR -270(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE InitIFF(iff : pIFFHandle; flags : LONGINT;const streamHook : pHook);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVE.L flags,D0
- MOVEA.L streamHook,A1
- MOVEA.L IFFParseBase,A6
- JSR -228(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE InitIFFasClip(iff : pIFFHandle);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVEA.L IFFParseBase,A6
- JSR -240(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE InitIFFasDOS(iff : pIFFHandle);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVEA.L IFFParseBase,A6
- JSR -234(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION LocalItemData(const localItem : pLocalContextItem) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L localItem,A0
- MOVEA.L IFFParseBase,A6
- JSR -192(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION OpenClipboard(unitNumber : LONGINT) : pClipboardHandle;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L unitNumber,D0
- MOVEA.L IFFParseBase,A6
- JSR -246(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION OpenIFF(iff : pIFFHandle; rwMode : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVE.L rwMode,D0
- MOVEA.L IFFParseBase,A6
- JSR -036(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ParentChunk(const contextNode : pContextNode) : pContextNode;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L contextNode,A0
- MOVEA.L IFFParseBase,A6
- JSR -180(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ParseIFF(iff : pIFFHandle; control : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVE.L control,D0
- MOVEA.L IFFParseBase,A6
- JSR -042(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION PopChunk(iff : pIFFHandle) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVEA.L IFFParseBase,A6
- JSR -090(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION PropChunk(iff : pIFFHandle; typ : LONGINT; id : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVE.L typ,D0
- MOVE.L id,D1
- MOVEA.L IFFParseBase,A6
- JSR -114(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION PropChunks(iff : pIFFHandle;const propArray : pLONGINT; numPairs : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVEA.L propArray,A1
- MOVE.L numPairs,D0
- MOVEA.L IFFParseBase,A6
- JSR -120(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION PushChunk(iff : pIFFHandle; typ : LONGINT; id : LONGINT; size : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVE.L typ,D0
- MOVE.L id,D1
- MOVE.L size,D2
- MOVEA.L IFFParseBase,A6
- JSR -084(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ReadChunkBytes(iff : pIFFHandle; buf : POINTER; numBytes : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVEA.L buf,A1
- MOVE.L numBytes,D0
- MOVEA.L IFFParseBase,A6
- JSR -060(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ReadChunkRecords(iff : pIFFHandle; buf : POINTER; bytesPerRecord : LONGINT; numRecords : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVEA.L buf,A1
- MOVE.L bytesPerRecord,D0
- MOVE.L numRecords,D1
- MOVEA.L IFFParseBase,A6
- JSR -072(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE SetLocalItemPurge(localItem : pLocalContextItem;const purgeHook : pHook);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L localItem,A0
- MOVEA.L purgeHook,A1
- MOVEA.L IFFParseBase,A6
- JSR -198(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION StopChunk(iff : pIFFHandle; typ : LONGINT; id : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVE.L typ,D0
- MOVE.L id,D1
- MOVEA.L IFFParseBase,A6
- JSR -126(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION StopChunks(iff : pIFFHandle; const propArray : pLONGINT; numPairs : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVEA.L propArray,A1
- MOVE.L numPairs,D0
- MOVEA.L IFFParseBase,A6
- JSR -132(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION StopOnExit(iff : pIFFHandle; typ : LONGINT; id : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVE.L typ,D0
- MOVE.L id,D1
- MOVEA.L IFFParseBase,A6
- JSR -150(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE StoreItemInContext(iff : pIFFHandle; localItem : pLocalContextItem; contextNode : pContextNode);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVEA.L localItem,A1
- MOVEA.L contextNode,A2
- MOVEA.L IFFParseBase,A6
- JSR -222(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION StoreLocalItem(iff : pIFFHandle; localItem : pLocalContextItem; position : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVEA.L localItem,A1
- MOVE.L position,D0
- MOVEA.L IFFParseBase,A6
- JSR -216(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION WriteChunkBytes(iff : pIFFHandle;const buf : POINTER; numBytes : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVEA.L buf,A1
- MOVE.L numBytes,D0
- MOVEA.L IFFParseBase,A6
- JSR -066(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION WriteChunkRecords(iff : pIFFHandle;const buf : POINTER; bytesPerRecord : LONGINT; numRecords : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iff,A0
- MOVEA.L buf,A1
- MOVE.L bytesPerRecord,D0
- MOVE.L numRecords,D1
- MOVEA.L IFFParseBase,A6
- JSR -078(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
Function Make_ID(str : String) : LONGINT;
begin
diff --git a/packages/amunits/src/coreunits/input.pas b/packages/amunits/src/coreunits/input.pas
index 6626f9fab7..11ccd765cf 100644
--- a/packages/amunits/src/coreunits/input.pas
+++ b/packages/amunits/src/coreunits/input.pas
@@ -34,21 +34,10 @@ const
VAR InputBase : pDevice;
-FUNCTION PeekQualifier : WORD;
+FUNCTION PeekQualifier : WORD; syscall InputBase 042;
IMPLEMENTATION
-FUNCTION PeekQualifier : WORD;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L InputBase,A6
- JSR -042(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
END. (* UNIT INPUT *)
diff --git a/packages/amunits/src/coreunits/inputevent.pas b/packages/amunits/src/coreunits/inputevent.pas
index 4334950e05..1e3ea22fac 100644
--- a/packages/amunits/src/coreunits/inputevent.pas
+++ b/packages/amunits/src/coreunits/inputevent.pas
@@ -13,7 +13,7 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
-
+{$PACKRECORDS 2}
unit inputevent;
INTERFACE
diff --git a/packages/amunits/src/coreunits/intuition.pas b/packages/amunits/src/coreunits/intuition.pas
index 273b7c7761..48f3b54236 100644
--- a/packages/amunits/src/coreunits/intuition.pas
+++ b/packages/amunits/src/coreunits/intuition.pas
@@ -45,18 +45,14 @@
nils.sjoholm@mailbox.swipnet.se Nils Sjoholm
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
unit intuition;
INTERFACE
-uses exec, graphics, utility, inputevent, timer, layers;
+uses exec, agraphics, utility, inputevent, timer, layers;
{
* NOTE: intuition/iobsolete.h is included at the END of this file!
@@ -1923,21 +1919,22 @@ Const
{ The SCREENTYPE bits are reserved for describing various Screen types
* available under Intuition.
}
- SCREENTYPE_f = $000F; { all the screens types available }
+ SCREENTYPE_F = $000F; { all the screens types available }
{ --- the definitions for the Screen Type ------------------------------- }
- WBENCHSCREEN_f = $0001; { Ta Da! The Workbench }
- CUSTOMSCREEN_f = $000F; { for that special look }
+ WBENCHSCREEN_F = $0001; { Ta Da! The Workbench }
+ PUBLICSCREEN_F = $0002; { Public shared (custom) screen }
+ CUSTOMSCREEN_F = $000F; { for that special look }
- SHOWTITLE_f = $0010; { this gets set by a call to ShowTitle() }
+ SHOWTITLE_F = $0010; { this gets set by a call to ShowTitle() }
- BEEPING_f = $0020; { set when Screen is beeping }
+ BEEPING_F = $0020; { set when Screen is beeping }
- CUSTOMBITMAP_f = $0040; { if you are supplying your own BitMap }
+ CUSTOMBITMAP_F = $0040; { if you are supplying your own BitMap }
- SCREENBEHIND_f = $0080; { if you want your screen to open behind
+ SCREENBEHIND_F = $0080; { if you want your screen to open behind
* already open screens
}
- SCREENQUIET_f = $0100; { if you do not want Intuition to render
+ SCREENQUIET_F = $0100; { if you do not want Intuition to render
* into your screen (gadgets, title) }
SCREENHIRES = $0200; { do no use lowres gadgets (private) }
@@ -2514,8 +2511,8 @@ Const
BAUD_MIDI = $07;
{ PaperType }
- FANFOLD = $00;
- SINGLE = $80;
+ FANFOLD_PT = $00;
+ SINGLE_PT = $80;
{ PrintPitch }
PICA = $000;
@@ -4065,127 +4062,127 @@ CONST
* uses this processing when activating a string gadget.
}
-FUNCTION ActivateGadget(gadgets : pGadget; window : pWindow; requester : pRequester) : BOOLEAN;
-PROCEDURE ActivateWindow(window : pWindow);
-PROCEDURE AddClass(classPtr : pIClass);
-FUNCTION AddGadget(window : pWindow; gadget : pGadget; position : ULONG) : WORD;
-FUNCTION AddGList(window : pWindow; gadget : pGadget; position : ULONG; numGad : LONGINT; requester : pRequester) : WORD;
-FUNCTION AllocRemember(VAR rememberKey : pRemember; size : ULONG; flags : ULONG) : POINTER;
-FUNCTION AllocScreenBuffer(sc : pScreen; bm : pBitMap; flags : ULONG) : pScreenBuffer;
-FUNCTION AutoRequest(window : pWindow;const body : pIntuiText;const posText : pIntuiText;const negText : pIntuiText; pFlag : ULONG; nFlag : ULONG; width : ULONG; height : ULONG) : BOOLEAN;
-PROCEDURE BeginRefresh(window : pWindow);
-FUNCTION BuildEasyRequestArgs(window : pWindow;const easyStruct : pEasyStruct; idcmp : ULONG;const args : POINTER) : pWindow;
-FUNCTION BuildSysRequest(window : pWindow;const body : pIntuiText;const posText : pIntuiText;const negText : pIntuiText; flags : ULONG; width : ULONG; height : ULONG) : pWindow;
-FUNCTION ChangeScreenBuffer(sc : pScreen; sb : pScreenBuffer) : ULONG;
-PROCEDURE ChangeWindowBox(window : pWindow; left : LONGINT; top : LONGINT; width : LONGINT; height : LONGINT);
-FUNCTION ClearDMRequest(window : pWindow) : BOOLEAN;
-PROCEDURE ClearMenuStrip(window : pWindow);
-PROCEDURE ClearPointer(window : pWindow);
-PROCEDURE CloseScreen(screen : pScreen);
-PROCEDURE CloseWindow(window : pWindow);
-FUNCTION CloseWorkBench : BOOLEAN;
-PROCEDURE CurrentTime(VAR seconds : ULONG; VAR micros : ULONG);
-FUNCTION DisplayAlert(alertNumber : ULONG;const string_ : pCHAR; height : ULONG) : BOOLEAN;
-PROCEDURE DisplayBeep(screen : pScreen);
-PROCEDURE DisposeObject(obj : POINTER);
-FUNCTION DoGadgetMethodA(gad : pGadget; win : pWindow; req : pRequester; message : tMsg) : ULONG;
-FUNCTION DoubleClick(sSeconds : ULONG; sMicros : ULONG; cSeconds : ULONG; cMicros : ULONG) : BOOLEAN;
-PROCEDURE DrawBorder(rp : pRastPort;const border : pBorder; leftOffset : LONGINT; topOffset : LONGINT);
-PROCEDURE DrawImage(rp : pRastPort; image : pImage; leftOffset : LONGINT; topOffset : LONGINT);
-PROCEDURE DrawImageState(rp : pRastPort; image : pImage; leftOffset : LONGINT; topOffset : LONGINT; state : ULONG;const drawInfo : pDrawInfo);
-FUNCTION EasyRequestArgs(window : pWindow;const easyStruct : pEasyStruct; idcmpPtr : pULONG;const args : POINTER) : LONGINT;
-PROCEDURE EndRefresh(window : pWindow; complete : LONGINT);
-PROCEDURE EndRequest(requester : pRequester; window : pWindow);
-PROCEDURE EraseImage(rp : pRastPort; image : pImage; leftOffset : LONGINT; topOffset : LONGINT);
-FUNCTION FreeClass(classPtr : pIClass) : BOOLEAN;
-PROCEDURE FreeRemember(VAR rememberKey : pRemember; reallyForget : LONGINT);
-PROCEDURE FreeScreenBuffer(sc : pScreen; sb : pScreenBuffer);
-PROCEDURE FreeScreenDrawInfo(screen : pScreen; drawInfo : pDrawInfo);
-PROCEDURE FreeSysRequest(window : pWindow);
-PROCEDURE GadgetMouse(gadget : pGadget; gInfo : pGadgetInfo; mousePoint : psmallint);
-FUNCTION GetAttr(attrID : ULONG; obj : POINTER; storagePtr : pULONG) : ULONG;
-PROCEDURE GetDefaultPubScreen(nameBuffer : pCHAR);
-FUNCTION GetDefPrefs(preferences : pPreferences; size : LONGINT) : pPreferences;
-FUNCTION GetPrefs(preferences : pPreferences; size : LONGINT) : pPreferences;
-FUNCTION GetScreenData(buffer : POINTER; size : ULONG; type_ : ULONG;const screen : pScreen) : BOOLEAN;
-FUNCTION GetScreenDrawInfo(screen : pScreen) : pDrawInfo;
-PROCEDURE HelpControl(win : pWindow; flags : ULONG);
-PROCEDURE InitRequester(requester : pRequester);
-FUNCTION IntuiTextLength(const iText : pIntuiText) : LONGINT;
-FUNCTION ItemAddress(const menuStrip : pMenu; menuNumber : ULONG) : pMenuItem;
-PROCEDURE LendMenus(fromwindow : pWindow; towindow : pWindow);
-FUNCTION LockIBase(dontknow : ULONG) : ULONG;
-FUNCTION LockPubScreen(const name : pCHAR) : pScreen;
-FUNCTION LockPubScreenList : pList;
-FUNCTION MakeClass(const classID : pCHAR;const superClassID : pCHAR;const superClassPtr : pIClass; instanceSize : ULONG; flags : ULONG) : pIClass;
-FUNCTION MakeScreen(screen : pScreen) : LONGINT;
-FUNCTION ModifyIDCMP(window : pWindow; flags : ULONG) : BOOLEAN;
-PROCEDURE ModifyProp(gadget : pGadget; window : pWindow; requester : pRequester; flags : ULONG; horizPot : ULONG; vertPot : ULONG; horizBody : ULONG; vertBody : ULONG);
-PROCEDURE MoveScreen(screen : pScreen; dx : LONGINT; dy : LONGINT);
-PROCEDURE MoveWindow(window : pWindow; dx : LONGINT; dy : LONGINT);
-PROCEDURE MoveWindowInFrontOf(window : pWindow; behindWindow : pWindow);
-PROCEDURE NewModifyProp(gadget : pGadget; window : pWindow; requester : pRequester; flags : ULONG; horizPot : ULONG; vertPot : ULONG; horizBody : ULONG; vertBody : ULONG; numGad : LONGINT);
-FUNCTION NewObjectA(classPtr : pIClass;const classID : pCHAR;const tagList : pTagItem) : POINTER;
-FUNCTION NextObject(objectPtrPtr : POINTER) : POINTER;
-FUNCTION NextPubScreen(const screen : pScreen; namebuf : pCHAR) : pCHAR;
-FUNCTION ObtainGIRPort(gInfo : pGadgetInfo) : pRastPort;
-PROCEDURE OffGadget(gadget : pGadget; window : pWindow; requester : pRequester);
-PROCEDURE OffMenu(window : pWindow; menuNumber : ULONG);
-PROCEDURE OnGadget(gadget : pGadget; window : pWindow; requester : pRequester);
-PROCEDURE OnMenu(window : pWindow; menuNumber : ULONG);
-FUNCTION OpenScreen(const newScreen : pNewScreen) : pScreen;
-FUNCTION OpenScreenTagList(const newScreen : pNewScreen;const tagList : pTagItem) : pScreen;
-FUNCTION OpenWindow(const newWindow : pNewWindow) : pWindow;
-FUNCTION OpenWindowTagList(const newWindow : pNewWindow;const tagList : pTagItem) : pWindow;
-FUNCTION OpenWorkBench : ULONG;
-FUNCTION PointInImage(point : ULONG; image : pImage) : BOOLEAN;
-PROCEDURE PrintIText(rp : pRastPort;const iText : pIntuiText; left : LONGINT; top : LONGINT);
-FUNCTION PubScreenStatus(screen : pScreen; statusFlags : ULONG) : WORD;
-FUNCTION QueryOverscan(displayID : ULONG; rect : pRectangle; oScanType : LONGINT) : LONGINT;
-PROCEDURE RefreshGadgets(gadgets : pGadget; window : pWindow; requester : pRequester);
-PROCEDURE RefreshGList(gadgets : pGadget; window : pWindow; requester : pRequester; numGad : LONGINT);
-PROCEDURE RefreshWindowFrame(window : pWindow);
-PROCEDURE ReleaseGIRPort(rp : pRastPort);
-FUNCTION RemakeDisplay : LONGINT;
-PROCEDURE RemoveClass(classPtr : pIClass);
-FUNCTION RemoveGadget(window : pWindow; gadget : pGadget) : WORD;
-FUNCTION RemoveGList(remPtr : pWindow; gadget : pGadget; numGad : LONGINT) : WORD;
-PROCEDURE ReportMouse(flag : LONGINT; window : pWindow);
-FUNCTION Request(requester : pRequester; window : pWindow) : BOOLEAN;
-FUNCTION ResetMenuStrip(window : pWindow; menu : pMenu) : BOOLEAN;
-FUNCTION RethinkDisplay : LONGINT;
-PROCEDURE ScreenDepth(screen : pScreen; flags : ULONG; reserved : POINTER);
-PROCEDURE ScreenPosition(screen : pScreen; flags : ULONG; x1 : LONGINT; y1 : LONGINT; x2 : LONGINT; y2 : LONGINT);
-PROCEDURE ScreenToBack(screen : pScreen);
-PROCEDURE ScreenToFront(screen : pScreen);
-PROCEDURE ScrollWindowRaster(win : pWindow; dx : LONGINT; dy : LONGINT; xMin : LONGINT; yMin : LONGINT; xMax : LONGINT; yMax : LONGINT);
-FUNCTION SetAttrsA(obj : POINTER;const tagList : pTagItem) : ULONG;
-PROCEDURE SetDefaultPubScreen(const name : pCHAR);
-FUNCTION SetDMRequest(window : pWindow; requester : pRequester) : BOOLEAN;
-FUNCTION SetEditHook(hook : pHook) : pHook;
-FUNCTION SetGadgetAttrsA(gadget : pGadget; window : pWindow; requester : pRequester;const tagList : pTagItem) : ULONG;
-FUNCTION SetMenuStrip(window : pWindow; menu : pMenu) : BOOLEAN;
-FUNCTION SetMouseQueue(window : pWindow; queueLength : ULONG) : LONGINT;
-PROCEDURE SetPointer(window : pWindow; pointer_ : pword; height : LONGINT; width : LONGINT; xOffset : LONGINT; yOffset : LONGINT);
-FUNCTION SetPrefs(const preferences : pPreferences; size : LONGINT; inform : LONGINT) : pPreferences;
-FUNCTION SetPubScreenModes(modes : ULONG) : WORD;
-PROCEDURE SetWindowPointerA(win : pWindow;const taglist : pTagItem);
-PROCEDURE SetWindowTitles(window : pWindow;const windowTitle : pCHAR;const screenTitle : pCHAR);
-PROCEDURE ShowTitle(screen : pScreen; showIt : LONGINT);
-PROCEDURE SizeWindow(window : pWindow; dx : LONGINT; dy : LONGINT);
-FUNCTION SysReqHandler(window : pWindow; idcmpPtr : pULONG; waitInput : LONGINT) : LONGINT;
-FUNCTION TimedDisplayAlert(alertNumber : ULONG;const string_ : pCHAR; height : ULONG; time : ULONG) : BOOLEAN;
-PROCEDURE UnlockIBase(ibLock : ULONG);
-PROCEDURE UnlockPubScreen(const name : pCHAR; screen : pScreen);
-PROCEDURE UnlockPubScreenList;
-FUNCTION ViewAddress : pView;
-FUNCTION ViewPortAddress(const window : pWindow) : pViewPort;
-FUNCTION WBenchToBack : BOOLEAN;
-FUNCTION WBenchToFront : BOOLEAN;
-FUNCTION WindowLimits(window : pWindow; widthMin : LONGINT; heightMin : LONGINT; widthMax : ULONG; heightMax : ULONG) : BOOLEAN;
-PROCEDURE WindowToBack(window : pWindow);
-PROCEDURE WindowToFront(window : pWindow);
-PROCEDURE ZipWindow(window : pWindow);
+FUNCTION ActivateGadget(gadgets : pGadget location 'a0'; window : pWindow location 'a1'; requester : pRequester location 'a2') : LongBool syscall _IntuitionBase 462;
+PROCEDURE ActivateWindow(window : pWindow location 'a0'); syscall _IntuitionBase 450;
+PROCEDURE AddClass(classPtr : pIClass location 'a0'); syscall _IntuitionBase 684;
+FUNCTION AddGadget(window : pWindow location 'a0'; gadget : pGadget location 'a1'; position : ULONG location 'd0') : WORD; syscall _IntuitionBase 042;
+FUNCTION AddGList(window : pWindow location 'a0'; gadget : pGadget location 'a1'; position : ULONG location 'd0'; numGad : LONGINT location 'd1'; requester : pRequester location 'a2') : WORD; syscall _IntuitionBase 438;
+FUNCTION AllocRemember(var rememberKey : pRemember location 'a0'; size : ULONG location 'd0'; flags : ULONG location 'd1') : POINTER syscall _IntuitionBase 396;
+FUNCTION AllocScreenBuffer(sc : pScreen location 'a0'; bm : pBitMap location 'a1'; flags : ULONG location 'd0') : pScreenBuffer; syscall _IntuitionBase 768;
+FUNCTION AutoRequest(window : pWindow location 'a0';const body : pIntuiText location 'a1';const posText : pIntuiText location 'a2';const negText : pIntuiText location 'a3'; pFlag : ULONG location 'd0'; nFlag : ULONG location 'd1'; width : ULONG location 'd2'; height : ULONG location 'd3') : LongBool; syscall _IntuitionBase 348;
+PROCEDURE BeginRefresh(window : pWindow location 'a0'); syscall _IntuitionBase 354;
+FUNCTION BuildEasyRequestArgs(window : pWindow location 'a0';const easyStruct : pEasyStruct location 'a1'; idcmp : ULONG location 'd0';const args : POINTER location 'a3') : pWindow; syscall _IntuitionBase 594;
+FUNCTION BuildSysRequest(window : pWindow location 'a0';const body : pIntuiText location 'a1';const posText : pIntuiText location 'a2';const negText : pIntuiText location 'a3'; flags : ULONG location 'd0'; width : ULONG location 'd1'; height : ULONG location 'd2') : pWindow; syscall _IntuitionBase 360;
+FUNCTION ChangeScreenBuffer(sc : pScreen location 'a0'; sb : pScreenBuffer location 'a1') : ULONG; syscall _IntuitionBase 780;
+PROCEDURE ChangeWindowBox(window : pWindow location 'a0'; left : LONGINT location 'd0'; top : LONGINT location 'd1'; width : LONGINT location 'd2'; height : LONGINT location 'd3'); syscall _IntuitionBase 486;
+FUNCTION ClearDMRequest(window : pWindow location 'a0') : LongBool; syscall _IntuitionBase 048;
+PROCEDURE ClearMenuStrip(window : pWindow location 'a0'); syscall _IntuitionBase 054;
+PROCEDURE ClearPointer(window : pWindow location 'a0'); syscall _IntuitionBase 060;
+PROCEDURE CloseScreen(screen : pScreen location 'a0'); syscall _IntuitionBase 066;
+PROCEDURE CloseWindow(window : pWindow location 'a0'); syscall _IntuitionBase 072;
+FUNCTION CloseWorkBench : LongBool; syscall _IntuitionBase 078;
+PROCEDURE CurrentTime(VAR seconds : ULONG location 'a0'; VAR micros : ULONG location 'a1'); syscall _IntuitionBase 084;
+FUNCTION DisplayAlert(alertNumber : ULONG location 'd0';const string_ : pCHAR location 'a0'; height : ULONG location 'd1') : LongBool; syscall _IntuitionBase 090;
+PROCEDURE DisplayBeep(screen : pScreen location 'a0'); syscall _IntuitionBase 096;
+PROCEDURE DisposeObject(obj : POINTER location 'a0'); syscall _IntuitionBase 642;
+FUNCTION DoGadgetMethodA(gad : pGadget location 'a0'; win : pWindow location 'a1'; req : pRequester location 'a2'; message : tMsg location 'a3') : ULONG; syscall _IntuitionBase 810;
+FUNCTION DoubleClick(sSeconds : ULONG location 'd0'; sMicros : ULONG location 'd1'; cSeconds : ULONG location 'd2'; cMicros : ULONG location 'd3') : LongBool; syscall _IntuitionBase 102;
+PROCEDURE DrawBorder(rp : pRastPort location 'a0';const border : pBorder location 'a1'; leftOffset : LONGINT location 'd0'; topOffset : LONGINT location 'd1'); syscall _IntuitionBase 108;
+PROCEDURE DrawImage(rp : pRastPort location 'a0'; image : pImage location 'a1'; leftOffset : LONGINT location 'd0'; topOffset : LONGINT location 'd1'); syscall _IntuitionBase 114;
+PROCEDURE DrawImageState(rp : pRastPort location 'a0'; image : pImage location 'a1'; leftOffset : LONGINT location 'd0'; topOffset : LONGINT location 'd1'; state : ULONG location 'd2';const drawInfo : pDrawInfo location 'a2'); syscall _IntuitionBase 618;
+FUNCTION EasyRequestArgs(window : pWindow location 'a0';const easyStruct : pEasyStruct location 'a1'; idcmpPtr : pULONG location 'a2';const args : POINTER location 'a3') : LONGINT; syscall _IntuitionBase 588;
+PROCEDURE EndRefresh(window : pWindow location 'a0'; complete : LONGBOOL location 'd0'); syscall _IntuitionBase 366;
+PROCEDURE EndRequest(requester : pRequester location 'a0'; window : pWindow location 'a1'); syscall _IntuitionBase 120;
+PROCEDURE EraseImage(rp : pRastPort location 'a0'; image : pImage location 'a1'; leftOffset : LONGINT location 'd0'; topOffset : LONGINT location 'd1'); syscall _IntuitionBase 630;
+FUNCTION FreeClass(classPtr : pIClass location 'a0') : LongBool; syscall _IntuitionBase 714;
+PROCEDURE FreeRemember(VAR rememberKey : pRemember location 'a0'; reallyForget : LONGINT location 'd0'); syscall _IntuitionBase 408;
+PROCEDURE FreeScreenBuffer(sc : pScreen location 'a0'; sb : pScreenBuffer location 'a1'); syscall _IntuitionBase 774;
+PROCEDURE FreeScreenDrawInfo(screen : pScreen location 'a0'; drawInfo : pDrawInfo location 'a1'); syscall _IntuitionBase 696;
+PROCEDURE FreeSysRequest(window : pWindow location 'a0'); syscall _IntuitionBase 372;
+PROCEDURE GadgetMouse(gadget : pGadget location 'a0'; gInfo : pGadgetInfo location 'a1'; mousePoint : psmallint location 'a2'); syscall _IntuitionBase 570;
+FUNCTION GetAttr(attrID : ULONG location 'd0'; obj : POINTER location 'a0'; storagePtr : pULONG location 'a1') : ULONG; syscall _IntuitionBase 654;
+PROCEDURE GetDefaultPubScreen(nameBuffer : pCHAR location 'a0'); syscall _IntuitionBase 582;
+FUNCTION GetDefPrefs(preferences : pPreferences location 'a0'; size : LONGINT location 'd0') : pPreferences; syscall _IntuitionBase 126;
+FUNCTION GetPrefs(preferences : pPreferences location 'a0'; size : LONGINT location 'd0') : pPreferences; syscall _IntuitionBase 132;
+FUNCTION GetScreenData(buffer : POINTER location 'a0'; size : ULONG location 'D0'; type_ : ULONG location 'd1';const screen : pScreen location 'a1') : LongBool; syscall _IntuitionBase 426;
+FUNCTION GetScreenDrawInfo(screen : pScreen location 'a0') : pDrawInfo; syscall _IntuitionBase 690;
+PROCEDURE HelpControl(win : pWindow location 'a0'; flags : ULONG location 'd0'); syscall _IntuitionBase 828;
+PROCEDURE InitRequester(requester : pRequester location 'a0'); syscall _IntuitionBase 138;
+FUNCTION IntuiTextLength(const iText : pIntuiText location 'a0') : LONGINT; syscall _IntuitionBase 330;
+FUNCTION ItemAddress(const menuStrip : pMenu location 'a0'; menuNumber : ULONG location 'd0') : pMenuItem; syscall _IntuitionBase 144;
+PROCEDURE LendMenus(fromwindow : pWindow location 'a0'; towindow : pWindow location 'a1'); syscall _IntuitionBase 804;
+FUNCTION LockIBase(dontknow : ULONG location 'd0') : ULONG; syscall _IntuitionBase 414;
+FUNCTION LockPubScreen(const name : pCHAR location 'a0') : pScreen; syscall _IntuitionBase 510;
+FUNCTION LockPubScreenList : pList; syscall _IntuitionBase 522;
+FUNCTION MakeClass(const classID : pCHAR location 'a0';const superClassID : pCHAR location 'a1';const superClassPtr : pIClass location 'a2'; instanceSize : ULONG location 'd0'; flags : ULONG location 'd1') : pIClass; syscall _IntuitionBase 678;
+FUNCTION MakeScreen(screen : pScreen location 'a0') : LONGINT; syscall _IntuitionBase 378;
+FUNCTION ModifyIDCMP(window : pWindow location 'a0'; flags : ULONG location 'd0') : LongBool; syscall _IntuitionBase 150;
+PROCEDURE ModifyProp(gadget : pGadget location 'a0'; window : pWindow location 'a1'; requester : pRequester location 'a2'; flags : ULONG location 'd0'; horizPot : ULONG location 'd1'; vertPot : ULONG location 'd2'; horizBody : ULONG location 'd3'; vertBody : ULONG location 'd4'); syscall _IntuitionBase 156;
+PROCEDURE MoveScreen(screen : pScreen location 'a0'; dx : LONGINT location 'd0'; dy : LONGINT location 'd1'); syscall _IntuitionBase 162;
+PROCEDURE MoveWindow(window : pWindow location 'a0'; dx : LONGINT location 'd0'; dy : LONGINT location 'd1'); syscall _IntuitionBase 168;
+PROCEDURE MoveWindowInFrontOf(window : pWindow location 'a0'; behindWindow : pWindow location 'a1'); syscall _IntuitionBase 480;
+PROCEDURE NewModifyProp(gadget : pGadget location 'a0'; window : pWindow location 'a1'; requester : pRequester location 'a2'; flags : ULONG location 'd0'; horizPot : ULONG location 'd1'; vertPot : ULONG location 'd2'; horizBody : ULONG location 'd3'; vertBody : ULONG location 'd4'; numGad : LONGINT location 'd5'); syscall _IntuitionBase 468;
+FUNCTION NewObjectA(classPtr : pIClass location 'a0';const classID : pCHAR location 'a1';const tagList : pTagItem location 'a2') : POINTER; syscall _IntuitionBase 636;
+FUNCTION NextObject(objectPtrPtr : POINTER location 'a0') : POINTER; syscall _IntuitionBase 666;
+FUNCTION NextPubScreen(const screen : pScreen location 'a0'; namebuf : pCHAR location 'a1') : pCHAR; syscall _IntuitionBase 534;
+FUNCTION ObtainGIRPort(gInfo : pGadgetInfo location 'a0') : pRastPort; syscall _IntuitionBase 558;
+PROCEDURE OffGadget(gadget : pGadget location 'a0'; window : pWindow location 'a1'; requester : pRequester location 'a2'); syscall _IntuitionBase 174;
+PROCEDURE OffMenu(window : pWindow location 'a0'; menuNumber : ULONG location 'd0'); syscall _IntuitionBase 180;
+PROCEDURE OnGadget(gadget : pGadget location 'a0'; window : pWindow location 'a1'; requester : pRequester location 'a2'); syscall _IntuitionBase 186;
+PROCEDURE OnMenu(window : pWindow location 'a0'; menuNumber : ULONG location 'd0'); syscall _IntuitionBase 192;
+FUNCTION OpenScreen(const newScreen : pNewScreen location 'a0') : pScreen; syscall _IntuitionBase 198;
+FUNCTION OpenScreenTagList(const newScreen : pNewScreen location 'a0'; const tagList : pTagItem location 'a1') : pScreen; syscall _IntuitionBase 612;
+FUNCTION OpenWindow(const newWindow : pNewWindow location 'a0') : pWindow; syscall _IntuitionBase 204;
+FUNCTION OpenWindowTagList(const newWindow : pNewWindow location 'a0'; const tagList : pTagItem location 'a1') : pWindow; syscall _IntuitionBase 606;
+FUNCTION OpenWorkBench : ULONG; syscall _IntuitionBase 210;
+FUNCTION PointInImage(point : ULONG location 'd0'; image : pImage location 'a0') : LongBool; syscall _IntuitionBase 624;
+PROCEDURE PrintIText(rp : pRastPort location 'a0';const iText : pIntuiText location 'a1'; left : LONGINT location 'd0'; top : LONGINT location 'd1'); syscall _IntuitionBase 216;
+FUNCTION PubScreenStatus(screen : pScreen location 'a0'; statusFlags : ULONG location 'd0') : WORD; syscall _IntuitionBase 552;
+FUNCTION QueryOverscan(displayID : ULONG location 'a0'; rect : pRectangle location 'a1'; oScanType : LONGINT location 'd0') : LONGINT; syscall _IntuitionBase 474;
+PROCEDURE RefreshGadgets(gadgets : pGadget location 'a0'; window : pWindow location 'a1'; requester : pRequester location 'a2'); syscall _IntuitionBase 222;
+PROCEDURE RefreshGList(gadgets : pGadget location 'a0'; window : pWindow location 'a1'; requester : pRequester location 'a2'; numGad : LONGINT location 'd0'); syscall _IntuitionBase 432;
+PROCEDURE RefreshWindowFrame(window : pWindow location 'a0'); syscall _IntuitionBase 456;
+PROCEDURE ReleaseGIRPort(rp : pRastPort location 'a0'); syscall _IntuitionBase 564;
+FUNCTION RemakeDisplay : LONGINT; syscall _IntuitionBase 384;
+PROCEDURE RemoveClass(classPtr : pIClass location 'a0'); syscall _IntuitionBase 708;
+FUNCTION RemoveGadget(window : pWindow; gadget : pGadget) : WORD; syscall _IntuitionBase 228;
+FUNCTION RemoveGList(remPtr : pWindow location 'a0'; gadget : pGadget location 'a1'; numGad : LONGINT location 'd0') : WORD; syscall _IntuitionBase 444;
+PROCEDURE ReportMouse(flag : LONGINT location 'd0'; window : pWindow location 'a0'); syscall _IntuitionBase 234;
+FUNCTION Request(requester : pRequester location 'a0'; window : pWindow location 'a1') : LongBool; syscall _IntuitionBase 240;
+FUNCTION ResetMenuStrip(window : pWindow location 'a0'; menu : pMenu location 'a1') : LongBool; syscall _IntuitionBase 702;
+FUNCTION RethinkDisplay : LONGINT; syscall _IntuitionBase 390;
+PROCEDURE ScreenDepth(screen : pScreen location 'a0'; flags : ULONG location 'd0'; reserved : POINTER location 'a1'); syscall _IntuitionBase 786;
+PROCEDURE ScreenPosition(screen : pScreen location 'a0'; flags : ULONG location 'd0'; x1 : LONGINT location 'd1'; y1 : LONGINT location 'd2'; x2 : LONGINT location 'd3'; y2 : LONGINT location 'd4'); syscall _IntuitionBase 792;
+PROCEDURE ScreenToBack(screen : pScreen location 'a0'); syscall _IntuitionBase 246;
+PROCEDURE ScreenToFront(screen : pScreen location 'a0'); syscall _IntuitionBase 252;
+PROCEDURE ScrollWindowRaster(win : pWindow location 'a0'; dx : LONGINT location 'd0'; dy : LONGINT location 'd1'; xMin : LONGINT location 'd2'; yMin : LONGINT location 'd3'; xMax : LONGINT location 'd4'; yMax : LONGINT location 'd5'); syscall _IntuitionBase 798;
+FUNCTION SetAttrsA(obj : POINTER location 'a0';const tagList : pTagItem location 'a1') : ULONG; syscall _IntuitionBase 648;
+PROCEDURE SetDefaultPubScreen(const name : pCHAR location 'a0'); syscall _IntuitionBase 540;
+FUNCTION SetDMRequest(window : pWindow location 'a0'; requester : pRequester location 'a1') : LongBool; syscall _IntuitionBase 258;
+FUNCTION SetEditHook(hook : pHook location 'a0') : pHook; syscall _IntuitionBase 492;
+FUNCTION SetGadgetAttrsA(gadget : pGadget location 'a0'; window : pWindow location 'a1'; requester : pRequester location 'a2';const tagList : pTagItem location 'a3') : ULONG; syscall _IntuitionBase 660;
+FUNCTION SetMenuStrip(window : pWindow location 'a0'; menu : pMenu location 'a1') : LongBool; syscall _IntuitionBase 264;
+FUNCTION SetMouseQueue(window : pWindow location 'a0'; queueLength : ULONG location 'd0') : LONGINT; syscall _IntuitionBase 498;
+PROCEDURE SetPointer(window : pWindow location 'a0'; pointer_ : pword location 'a1'; height : LONGINT location 'd0'; width : LONGINT location 'd1'; xOffset : LONGINT location 'd2'; yOffset : LONGINT location 'd3'); syscall _IntuitionBase 270;
+FUNCTION SetPrefs(const preferences : pPreferences location 'a0'; size : LONGINT location 'd0'; inform : LONGINT location 'd1') : pPreferences; syscall _IntuitionBase 324;
+FUNCTION SetPubScreenModes(modes : ULONG location 'd0') : WORD; syscall _IntuitionBase 546;
+PROCEDURE SetWindowPointerA(win : pWindow location 'a0';const taglist : pTagItem location 'a1'); syscall _IntuitionBase 816;
+PROCEDURE SetWindowTitles(window : pWindow location 'a0';const windowTitle : pCHAR location 'a1';const screenTitle : pCHAR location 'a2'); syscall _IntuitionBase 276;
+PROCEDURE ShowTitle(screen : pScreen location 'a0'; showIt : LONGINT location 'd0'); syscall _IntuitionBase 282;
+PROCEDURE SizeWindow(window : pWindow location 'a0'; dx : LONGINT location 'd0'; dy : LONGINT location 'd1'); syscall _IntuitionBase 288;
+FUNCTION SysReqHandler(window : pWindow location 'a0'; idcmpPtr : pULONG location 'a1'; waitInput : LONGINT location 'd0') : LONGINT; syscall _IntuitionBase 600;
+FUNCTION TimedDisplayAlert(alertNumber : ULONG location 'd0';const string_ : pCHAR location 'a0'; height : ULONG location 'd1'; time : ULONG location 'a1') : LongBool; syscall _IntuitionBase 822;
+PROCEDURE UnlockIBase(ibLock : ULONG location 'a0'); syscall _IntuitionBase 420;
+PROCEDURE UnlockPubScreen(const name : pCHAR location 'a0'; screen : pScreen location 'a1'); syscall _IntuitionBase 516;
+PROCEDURE UnlockPubScreenList; syscall _IntuitionBase 528;
+FUNCTION ViewAddress : pView; syscall _IntuitionBase 294;
+FUNCTION ViewPortAddress(const window : pWindow location 'a0') : pViewPort; syscall _IntuitionBase 300;
+FUNCTION WBenchToBack : LongBool; syscall _IntuitionBase 336;
+FUNCTION WBenchToFront : LongBool; syscall _IntuitionBase 342;
+FUNCTION WindowLimits(window : pWindow location 'a0'; widthMin : LONGINT location 'd0'; heightMin : LONGINT location 'd1'; widthMax : ULONG location 'd2'; heightMax : ULONG location 'd3') : LongBool; syscall _IntuitionBase 318;
+PROCEDURE WindowToBack(window : pWindow location 'a0'); syscall _IntuitionBase 306;
+PROCEDURE WindowToFront(window : pWindow location 'a0'); syscall _IntuitionBase 312;
+PROCEDURE ZipWindow(window : pWindow location 'a0'); syscall _IntuitionBase 504;
{ Intuition macros }
function INST_DATA (cl: pIClass; o: p_Object): Pointer;
@@ -4326,1618 +4323,6 @@ begin
SUBNUM := (n shr 11) and $1f
end;
-FUNCTION ActivateGadget(gadgets : pGadget; window : pWindow; requester : pRequester) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L gadgets,A0
- MOVEA.L window,A1
- MOVEA.L requester,A2
- MOVEA.L _IntuitionBase,A6
- JSR -462(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE ActivateWindow(window : pWindow);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L _IntuitionBase,A6
- JSR -450(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE AddClass(classPtr : pIClass);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L classPtr,A0
- MOVEA.L _IntuitionBase,A6
- JSR -684(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION AddGadget(window : pWindow; gadget : pGadget; position : ULONG) : WORD;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L gadget,A1
- MOVE.L position,D0
- MOVEA.L _IntuitionBase,A6
- JSR -042(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AddGList(window : pWindow; gadget : pGadget; position : ULONG; numGad : LONGINT; requester : pRequester) : WORD;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L gadget,A1
- MOVE.L position,D0
- MOVE.L numGad,D1
- MOVEA.L requester,A2
- MOVEA.L _IntuitionBase,A6
- JSR -438(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AllocRemember(VAR rememberKey : pRemember; size : ULONG; flags : ULONG) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rememberKey,A0
- MOVE.L size,D0
- MOVE.L flags,D1
- MOVEA.L _IntuitionBase,A6
- JSR -396(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AllocScreenBuffer(sc : pScreen; bm : pBitMap; flags : ULONG) : pScreenBuffer;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sc,A0
- MOVEA.L bm,A1
- MOVE.L flags,D0
- MOVEA.L _IntuitionBase,A6
- JSR -768(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AutoRequest(window : pWindow;const body : pIntuiText;const posText : pIntuiText;const negText : pIntuiText; pFlag : ULONG; nFlag : ULONG; width : ULONG; height : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L body,A1
- MOVEA.L posText,A2
- MOVEA.L negText,A3
- MOVE.L pFlag,D0
- MOVE.L nFlag,D1
- MOVE.L width,D2
- MOVE.L height,D3
- MOVEA.L _IntuitionBase,A6
- JSR -348(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE BeginRefresh(window : pWindow);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L _IntuitionBase,A6
- JSR -354(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION BuildEasyRequestArgs(window : pWindow;const easyStruct : pEasyStruct; idcmp : ULONG;const args : POINTER) : pWindow;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L easyStruct,A1
- MOVE.L idcmp,D0
- MOVEA.L args,A3
- MOVEA.L _IntuitionBase,A6
- JSR -594(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION BuildSysRequest(window : pWindow;const body : pIntuiText;const posText : pIntuiText;const negText : pIntuiText; flags : ULONG; width : ULONG; height : ULONG) : pWindow;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L body,A1
- MOVEA.L posText,A2
- MOVEA.L negText,A3
- MOVE.L flags,D0
- MOVE.L width,D1
- MOVE.L height,D2
- MOVEA.L _IntuitionBase,A6
- JSR -360(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ChangeScreenBuffer(sc : pScreen; sb : pScreenBuffer) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sc,A0
- MOVEA.L sb,A1
- MOVEA.L _IntuitionBase,A6
- JSR -780(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE ChangeWindowBox(window : pWindow; left : LONGINT; top : LONGINT; width : LONGINT; height : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVE.L left,D0
- MOVE.L top,D1
- MOVE.L width,D2
- MOVE.L height,D3
- MOVEA.L _IntuitionBase,A6
- JSR -486(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION ClearDMRequest(window : pWindow) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L _IntuitionBase,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE ClearMenuStrip(window : pWindow);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L _IntuitionBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ClearPointer(window : pWindow);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L _IntuitionBase,A6
- JSR -060(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE CloseScreen(screen : pScreen);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L screen,A0
- MOVEA.L _IntuitionBase,A6
- JSR -066(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE CloseWindow(window : pWindow);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L _IntuitionBase,A6
- JSR -072(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION CloseWorkBench : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _IntuitionBase,A6
- JSR -078(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE CurrentTime(VAR seconds : ULONG; VAR micros : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L seconds,A0
- MOVEA.L micros,A1
- MOVEA.L _IntuitionBase,A6
- JSR -084(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION DisplayAlert(alertNumber : ULONG;const string_ : pCHAR; height : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L alertNumber,D0
- MOVEA.L string_,A0
- MOVE.L height,D1
- MOVEA.L _IntuitionBase,A6
- JSR -090(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE DisplayBeep(screen : pScreen);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L screen,A0
- MOVEA.L _IntuitionBase,A6
- JSR -096(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE DisposeObject(obj : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L obj,A0
- MOVEA.L _IntuitionBase,A6
- JSR -642(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION DoGadgetMethodA(gad : pGadget; win : pWindow; req : pRequester; message : tMsg) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L gad,A0
- MOVEA.L win,A1
- MOVEA.L req,A2
- MOVEA.L message,A3
- MOVEA.L _IntuitionBase,A6
- JSR -810(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION DoubleClick(sSeconds : ULONG; sMicros : ULONG; cSeconds : ULONG; cMicros : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L sSeconds,D0
- MOVE.L sMicros,D1
- MOVE.L cSeconds,D2
- MOVE.L cMicros,D3
- MOVEA.L _IntuitionBase,A6
- JSR -102(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE DrawBorder(rp : pRastPort;const border : pBorder; leftOffset : LONGINT; topOffset : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVEA.L border,A1
- MOVE.L leftOffset,D0
- MOVE.L topOffset,D1
- MOVEA.L _IntuitionBase,A6
- JSR -108(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE DrawImage(rp : pRastPort; image : pImage; leftOffset : LONGINT; topOffset : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVEA.L image,A1
- MOVE.L leftOffset,D0
- MOVE.L topOffset,D1
- MOVEA.L _IntuitionBase,A6
- JSR -114(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE DrawImageState(rp : pRastPort; image : pImage; leftOffset : LONGINT; topOffset : LONGINT; state : ULONG;const drawInfo : pDrawInfo);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVEA.L image,A1
- MOVE.L leftOffset,D0
- MOVE.L topOffset,D1
- MOVE.L state,D2
- MOVEA.L drawInfo,A2
- MOVEA.L _IntuitionBase,A6
- JSR -618(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION EasyRequestArgs(window : pWindow;const easyStruct : pEasyStruct; idcmpPtr : pULONG;const args : POINTER) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L easyStruct,A1
- MOVEA.L idcmpPtr,A2
- MOVEA.L args,A3
- MOVEA.L _IntuitionBase,A6
- JSR -588(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE EndRefresh(window : pWindow; complete : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVE.L complete,D0
- MOVEA.L _IntuitionBase,A6
- JSR -366(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE EndRequest(requester : pRequester; window : pWindow);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L requester,A0
- MOVEA.L window,A1
- MOVEA.L _IntuitionBase,A6
- JSR -120(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE EraseImage(rp : pRastPort; image : pImage; leftOffset : LONGINT; topOffset : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVEA.L image,A1
- MOVE.L leftOffset,D0
- MOVE.L topOffset,D1
- MOVEA.L _IntuitionBase,A6
- JSR -630(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION FreeClass(classPtr : pIClass) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L classPtr,A0
- MOVEA.L _IntuitionBase,A6
- JSR -714(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE FreeRemember(VAR rememberKey : pRemember; reallyForget : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rememberKey,A0
- MOVE.L reallyForget,D0
- MOVEA.L _IntuitionBase,A6
- JSR -408(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeScreenBuffer(sc : pScreen; sb : pScreenBuffer);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L sc,A0
- MOVEA.L sb,A1
- MOVEA.L _IntuitionBase,A6
- JSR -774(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeScreenDrawInfo(screen : pScreen; drawInfo : pDrawInfo);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L screen,A0
- MOVEA.L drawInfo,A1
- MOVEA.L _IntuitionBase,A6
- JSR -696(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE FreeSysRequest(window : pWindow);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L _IntuitionBase,A6
- JSR -372(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE GadgetMouse(gadget : pGadget; gInfo : pGadgetInfo; mousePoint : psmallint);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L gadget,A0
- MOVEA.L gInfo,A1
- MOVEA.L mousePoint,A2
- MOVEA.L _IntuitionBase,A6
- JSR -570(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION GetAttr(attrID : ULONG; obj : POINTER; storagePtr : pULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L attrID,D0
- MOVEA.L obj,A0
- MOVEA.L storagePtr,A1
- MOVEA.L _IntuitionBase,A6
- JSR -654(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE GetDefaultPubScreen(nameBuffer : pCHAR);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L nameBuffer,A0
- MOVEA.L _IntuitionBase,A6
- JSR -582(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION GetDefPrefs(preferences : pPreferences; size : LONGINT) : pPreferences;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L preferences,A0
- MOVE.L size,D0
- MOVEA.L _IntuitionBase,A6
- JSR -126(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetPrefs(preferences : pPreferences; size : LONGINT) : pPreferences;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L preferences,A0
- MOVE.L size,D0
- MOVEA.L _IntuitionBase,A6
- JSR -132(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetScreenData(buffer : POINTER; size : ULONG; type_ : ULONG;const screen : pScreen) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L buffer,A0
- MOVE.L size,D0
- MOVE.L type_,D1
- MOVEA.L screen,A1
- MOVEA.L _IntuitionBase,A6
- JSR -426(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION GetScreenDrawInfo(screen : pScreen) : pDrawInfo;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L screen,A0
- MOVEA.L _IntuitionBase,A6
- JSR -690(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE HelpControl(win : pWindow; flags : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L win,A0
- MOVE.L flags,D0
- MOVEA.L _IntuitionBase,A6
- JSR -828(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE InitRequester(requester : pRequester);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L requester,A0
- MOVEA.L _IntuitionBase,A6
- JSR -138(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION IntuiTextLength(const iText : pIntuiText) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L iText,A0
- MOVEA.L _IntuitionBase,A6
- JSR -330(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ItemAddress(const menuStrip : pMenu; menuNumber : ULONG) : pMenuItem;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L menuStrip,A0
- MOVE.L menuNumber,D0
- MOVEA.L _IntuitionBase,A6
- JSR -144(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE LendMenus(fromwindow : pWindow; towindow : pWindow);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L fromwindow,A0
- MOVEA.L towindow,A1
- MOVEA.L _IntuitionBase,A6
- JSR -804(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION LockIBase(dontknow : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L dontknow,D0
- MOVEA.L _IntuitionBase,A6
- JSR -414(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION LockPubScreen(const name : pCHAR) : pScreen;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L _IntuitionBase,A6
- JSR -510(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION LockPubScreenList : pList;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _IntuitionBase,A6
- JSR -522(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION MakeClass(const classID : pCHAR;const superClassID : pCHAR;const superClassPtr : pIClass; instanceSize : ULONG; flags : ULONG) : pIClass;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L classID,A0
- MOVEA.L superClassID,A1
- MOVEA.L superClassPtr,A2
- MOVE.L instanceSize,D0
- MOVE.L flags,D1
- MOVEA.L _IntuitionBase,A6
- JSR -678(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION MakeScreen(screen : pScreen): LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L screen,A0
- MOVEA.L _IntuitionBase,A6
- JSR -378(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ModifyIDCMP(window : pWindow; flags : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVE.L flags,D0
- MOVEA.L _IntuitionBase,A6
- JSR -150(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE ModifyProp(gadget : pGadget; window : pWindow; requester : pRequester; flags : ULONG; horizPot : ULONG; vertPot : ULONG; horizBody : ULONG; vertBody : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L gadget,A0
- MOVEA.L window,A1
- MOVEA.L requester,A2
- MOVE.L flags,D0
- MOVE.L horizPot,D1
- MOVE.L vertPot,D2
- MOVE.L horizBody,D3
- MOVE.L vertBody,D4
- MOVEA.L _IntuitionBase,A6
- JSR -156(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE MoveScreen(screen : pScreen; dx : LONGINT; dy : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L screen,A0
- MOVE.L dx,D0
- MOVE.L dy,D1
- MOVEA.L _IntuitionBase,A6
- JSR -162(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE MoveWindow(window : pWindow; dx : LONGINT; dy : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVE.L dx,D0
- MOVE.L dy,D1
- MOVEA.L _IntuitionBase,A6
- JSR -168(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE MoveWindowInFrontOf(window : pWindow; behindWindow : pWindow);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L behindWindow,A1
- MOVEA.L _IntuitionBase,A6
- JSR -480(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE NewModifyProp(gadget : pGadget; window : pWindow; requester : pRequester; flags : ULONG; horizPot : ULONG; vertPot : ULONG; horizBody : ULONG; vertBody : ULONG; numGad : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L gadget,A0
- MOVEA.L window,A1
- MOVEA.L requester,A2
- MOVE.L flags,D0
- MOVE.L horizPot,D1
- MOVE.L vertPot,D2
- MOVE.L horizBody,D3
- MOVE.L vertBody,D4
- MOVE.L numGad,D5
- MOVEA.L _IntuitionBase,A6
- JSR -468(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION NewObjectA(classPtr : pIClass;const classID : pCHAR;const tagList : pTagItem) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L classPtr,A0
- MOVEA.L classID,A1
- MOVEA.L tagList,A2
- MOVEA.L _IntuitionBase,A6
- JSR -636(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION NextObject(objectPtrPtr : POINTER) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L objectPtrPtr,A0
- MOVEA.L _IntuitionBase,A6
- JSR -666(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION NextPubScreen(const screen : pScreen; namebuf : pCHAR) : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L screen,A0
- MOVEA.L namebuf,A1
- MOVEA.L _IntuitionBase,A6
- JSR -534(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ObtainGIRPort(gInfo : pGadgetInfo) : pRastPort;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L gInfo,A0
- MOVEA.L _IntuitionBase,A6
- JSR -558(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE OffGadget(gadget : pGadget; window : pWindow; requester : pRequester);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L gadget,A0
- MOVEA.L window,A1
- MOVEA.L requester,A2
- MOVEA.L _IntuitionBase,A6
- JSR -174(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE OffMenu(window : pWindow; menuNumber : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVE.L menuNumber,D0
- MOVEA.L _IntuitionBase,A6
- JSR -180(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE OnGadget(gadget : pGadget; window : pWindow; requester : pRequester);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L gadget,A0
- MOVEA.L window,A1
- MOVEA.L requester,A2
- MOVEA.L _IntuitionBase,A6
- JSR -186(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE OnMenu(window : pWindow; menuNumber : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVE.L menuNumber,D0
- MOVEA.L _IntuitionBase,A6
- JSR -192(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION OpenScreen(const newScreen : pNewScreen) : pScreen;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L newScreen,A0
- MOVEA.L _IntuitionBase,A6
- JSR -198(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION OpenScreenTagList(const newScreen : pNewScreen;const tagList : pTagItem) : pScreen;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L newScreen,A0
- MOVEA.L tagList,A1
- MOVEA.L _IntuitionBase,A6
- JSR -612(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION OpenWindow(const newWindow : pNewWindow) : pWindow;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L newWindow,A0
- MOVEA.L _IntuitionBase,A6
- JSR -204(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION OpenWindowTagList(const newWindow : pNewWindow;const tagList : pTagItem) : pWindow;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L newWindow,A0
- MOVEA.L tagList,A1
- MOVEA.L _IntuitionBase,A6
- JSR -606(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION OpenWorkBench : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _IntuitionBase,A6
- JSR -210(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION PointInImage(point : ULONG; image : pImage) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L point,D0
- MOVEA.L image,A0
- MOVEA.L _IntuitionBase,A6
- JSR -624(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE PrintIText(rp : pRastPort;const iText : pIntuiText; left : LONGINT; top : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVEA.L iText,A1
- MOVE.L left,D0
- MOVE.L top,D1
- MOVEA.L _IntuitionBase,A6
- JSR -216(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION PubScreenStatus(screen : pScreen; statusFlags : ULONG) : WORD;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L screen,A0
- MOVE.L statusFlags,D0
- MOVEA.L _IntuitionBase,A6
- JSR -552(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION QueryOverscan(displayID : ULONG; rect : pRectangle; oScanType : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L displayID,A0
- MOVEA.L rect,A1
- MOVE.L oScanType,D0
- MOVEA.L _IntuitionBase,A6
- JSR -474(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE RefreshGadgets(gadgets : pGadget; window : pWindow; requester : pRequester);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L gadgets,A0
- MOVEA.L window,A1
- MOVEA.L requester,A2
- MOVEA.L _IntuitionBase,A6
- JSR -222(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE RefreshGList(gadgets : pGadget; window : pWindow; requester : pRequester; numGad : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L gadgets,A0
- MOVEA.L window,A1
- MOVEA.L requester,A2
- MOVE.L numGad,D0
- MOVEA.L _IntuitionBase,A6
- JSR -432(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE RefreshWindowFrame(window : pWindow);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L _IntuitionBase,A6
- JSR -456(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ReleaseGIRPort(rp : pRastPort);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rp,A0
- MOVEA.L _IntuitionBase,A6
- JSR -564(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION RemakeDisplay : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _IntuitionBase,A6
- JSR -384(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE RemoveClass(classPtr : pIClass);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L classPtr,A0
- MOVEA.L _IntuitionBase,A6
- JSR -708(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION RemoveGadget(window : pWindow; gadget : pGadget) : WORD;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L gadget,A1
- MOVEA.L _IntuitionBase,A6
- JSR -228(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION RemoveGList(remPtr : pWindow; gadget : pGadget; numGad : LONGINT) : WORD;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L remPtr,A0
- MOVEA.L gadget,A1
- MOVE.L numGad,D0
- MOVEA.L _IntuitionBase,A6
- JSR -444(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE ReportMouse(flag : LONGINT; window : pWindow);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L flag,D0
- MOVEA.L window,A0
- MOVEA.L _IntuitionBase,A6
- JSR -234(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION Request(requester : pRequester; window : pWindow) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L requester,A0
- MOVEA.L window,A1
- MOVEA.L _IntuitionBase,A6
- JSR -240(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION ResetMenuStrip(window : pWindow; menu : pMenu) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L menu,A1
- MOVEA.L _IntuitionBase,A6
- JSR -702(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION RethinkDisplay : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _IntuitionBase,A6
- JSR -390(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE ScreenDepth(screen : pScreen; flags : ULONG; reserved : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L screen,A0
- MOVE.L flags,D0
- MOVEA.L reserved,A1
- MOVEA.L _IntuitionBase,A6
- JSR -786(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ScreenPosition(screen : pScreen; flags : ULONG; x1 : LONGINT; y1 : LONGINT; x2 : LONGINT; y2 : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L screen,A0
- MOVE.L flags,D0
- MOVE.L x1,D1
- MOVE.L y1,D2
- MOVE.L x2,D3
- MOVE.L y2,D4
- MOVEA.L _IntuitionBase,A6
- JSR -792(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ScreenToBack(screen : pScreen);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L screen,A0
- MOVEA.L _IntuitionBase,A6
- JSR -246(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ScreenToFront(screen : pScreen);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L screen,A0
- MOVEA.L _IntuitionBase,A6
- JSR -252(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ScrollWindowRaster(win : pWindow; dx : LONGINT; dy : LONGINT; xMin : LONGINT; yMin : LONGINT; xMax : LONGINT; yMax : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L win,A1
- MOVE.L dx,D0
- MOVE.L dy,D1
- MOVE.L xMin,D2
- MOVE.L yMin,D3
- MOVE.L xMax,D4
- MOVE.L yMax,D5
- MOVEA.L _IntuitionBase,A6
- JSR -798(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION SetAttrsA(obj : POINTER;const tagList : pTagItem) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L obj,A0
- MOVEA.L tagList,A1
- MOVEA.L _IntuitionBase,A6
- JSR -648(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE SetDefaultPubScreen(const name : pCHAR);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L _IntuitionBase,A6
- JSR -540(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION SetDMRequest(window : pWindow; requester : pRequester) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L requester,A1
- MOVEA.L _IntuitionBase,A6
- JSR -258(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetEditHook(hook : pHook) : pHook;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L hook,A0
- MOVEA.L _IntuitionBase,A6
- JSR -492(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetGadgetAttrsA(gadget : pGadget; window : pWindow; requester : pRequester;const tagList : pTagItem) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L gadget,A0
- MOVEA.L window,A1
- MOVEA.L requester,A2
- MOVEA.L tagList,A3
- MOVEA.L _IntuitionBase,A6
- JSR -660(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetMenuStrip(window : pWindow; menu : pMenu) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L menu,A1
- MOVEA.L _IntuitionBase,A6
- JSR -264(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION SetMouseQueue(window : pWindow; queueLength : ULONG) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVE.L queueLength,D0
- MOVEA.L _IntuitionBase,A6
- JSR -498(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE SetPointer(window : pWindow; pointer_ : pword; height : LONGINT; width : LONGINT; xOffset : LONGINT; yOffset : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L pointer_,A1
- MOVE.L height,D0
- MOVE.L width,D1
- MOVE.L xOffset,D2
- MOVE.L yOffset,D3
- MOVEA.L _IntuitionBase,A6
- JSR -270(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION SetPrefs(const preferences : pPreferences; size : LONGINT; inform : LONGINT) : pPreferences;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L preferences,A0
- MOVE.L size,D0
- MOVE.L inform,D1
- MOVEA.L _IntuitionBase,A6
- JSR -324(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetPubScreenModes(modes : ULONG) : WORD;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L modes,D0
- MOVEA.L _IntuitionBase,A6
- JSR -546(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE SetWindowPointerA(win : pWindow;const taglist : pTagItem);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L win,A0
- MOVEA.L taglist,A1
- MOVEA.L _IntuitionBase,A6
- JSR -816(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE SetWindowTitles(window : pWindow;const windowTitle : pCHAR;const screenTitle : pCHAR);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L windowTitle,A1
- MOVEA.L screenTitle,A2
- MOVEA.L _IntuitionBase,A6
- JSR -276(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ShowTitle(screen : pScreen; showIt : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L screen,A0
- MOVE.L showIt,D0
- MOVEA.L _IntuitionBase,A6
- JSR -282(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE SizeWindow(window : pWindow; dx : LONGINT; dy : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVE.L dx,D0
- MOVE.L dy,D1
- MOVEA.L _IntuitionBase,A6
- JSR -288(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION SysReqHandler(window : pWindow; idcmpPtr : pULONG; waitInput : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L idcmpPtr,A1
- MOVE.L waitInput,D0
- MOVEA.L _IntuitionBase,A6
- JSR -600(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION TimedDisplayAlert(alertNumber : ULONG;const string_ : pCHAR; height : ULONG; time : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L alertNumber,D0
- MOVEA.L string_,A0
- MOVE.L height,D1
- MOVEA.L time,A1
- MOVEA.L _IntuitionBase,A6
- JSR -822(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE UnlockIBase(ibLock : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L ibLock,A0
- MOVEA.L _IntuitionBase,A6
- JSR -420(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE UnlockPubScreen(const name : pCHAR; screen : pScreen);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L screen,A1
- MOVEA.L _IntuitionBase,A6
- JSR -516(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE UnlockPubScreenList;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _IntuitionBase,A6
- JSR -528(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION ViewAddress : pView;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _IntuitionBase,A6
- JSR -294(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ViewPortAddress(const window : pWindow) : pViewPort;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L _IntuitionBase,A6
- JSR -300(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION WBenchToBack : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _IntuitionBase,A6
- JSR -336(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION WBenchToFront : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L _IntuitionBase,A6
- JSR -342(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION WindowLimits(window : pWindow; widthMin : LONGINT; heightMin : LONGINT; widthMax : ULONG; heightMax : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVE.L widthMin,D0
- MOVE.L heightMin,D1
- MOVE.L widthMax,D2
- MOVE.L heightMax,D3
- MOVEA.L _IntuitionBase,A6
- JSR -318(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE WindowToBack(window : pWindow);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L _IntuitionBase,A6
- JSR -306(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE WindowToFront(window : pWindow);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L _IntuitionBase,A6
- JSR -312(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE ZipWindow(window : pWindow);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L _IntuitionBase,A6
- JSR -504(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-
FUNCTION DisplayAlert(alertNumber : ULONG;const string_ : string; height : ULONG) : BOOLEAN;
begin
DisplayAlert := DisplayAlert(alertNumber,pas2c(string_),height);
diff --git a/packages/amunits/src/coreunits/keymap.pas b/packages/amunits/src/coreunits/keymap.pas
index 1688b985a1..eed8858705 100644
--- a/packages/amunits/src/coreunits/keymap.pas
+++ b/packages/amunits/src/coreunits/keymap.pas
@@ -32,11 +32,7 @@
nils.sjoholm@mailbox.swipnet.se Nils Sjoholm
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
unit keymap;
@@ -114,67 +110,14 @@ VAR KeymapBase : pLibrary;
const
KEYMAPNAME : PChar = 'keymap.library';
-FUNCTION AskKeyMapDefault : pKeyMap;
-FUNCTION MapANSI(thestring : pCHAR; count : LONGINT; buffer : pCHAR; length : LONGINT; keyMap : pKeyMap) : LONGINT;
-FUNCTION MapRawKey(event : pInputEvent; buffer : pCHAR; length : LONGINT; keyMap : pKeyMap) : smallint;
-PROCEDURE SetKeyMapDefault(keyMap : pKeyMap);
+FUNCTION AskKeyMapDefault : pKeyMap; syscall KeymapBase 036;
+FUNCTION MapANSI(thestring : pCHAR location 'a0'; count : LONGINT location 'd0'; buffer : pCHAR location 'a1'; length : LONGINT location 'd1'; keyMap : pKeyMap location 'a2') : LONGINT; syscall KeymapBase 048;
+FUNCTION MapRawKey(event : pInputEvent location 'a0'; buffer : pCHAR location 'a1'; length : LONGINT location 'd1'; keyMap : pKeyMap location 'a2') : smallint; syscall KeymapBase 042;
+PROCEDURE SetKeyMapDefault(keyMap : pKeyMap location 'a0'); syscall KeymapBase 030;
IMPLEMENTATION
-uses msgbox;
-
-FUNCTION AskKeyMapDefault : pKeyMap;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L KeymapBase,A6
- JSR -036(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION MapANSI(thestring : pCHAR; count : LONGINT; buffer : pCHAR; length : LONGINT; keyMap : pKeyMap) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L thestring,A0
- MOVE.L count,D0
- MOVEA.L buffer,A1
- MOVE.L length,D1
- MOVEA.L keyMap,A2
- MOVEA.L KeymapBase,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION MapRawKey(event : pInputEvent; buffer : pCHAR; length : LONGINT; keyMap : pKeyMap) : smallint;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L event,A0
- MOVEA.L buffer,A1
- MOVE.L length,D1
- MOVEA.L keyMap,A2
- MOVEA.L KeymapBase,A6
- JSR -042(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE SetKeyMapDefault(keyMap : pKeyMap);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L keyMap,A0
- MOVEA.L KeymapBase,A6
- JSR -030(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
+uses amsgbox;
{$I useautoopenlib.inc}
{$ifdef use_auto_openlib}
diff --git a/packages/amunits/src/coreunits/layers.pas b/packages/amunits/src/coreunits/layers.pas
index b99ceb0883..1f9334a8ed 100644
--- a/packages/amunits/src/coreunits/layers.pas
+++ b/packages/amunits/src/coreunits/layers.pas
@@ -31,7 +31,7 @@
nils.sjoholm@mailbox.swipnet.se
}
-
+{$PACKRECORDS 2}
{$I useamigasmartlink.inc}
{$ifdef use_amiga_smartlink}
{$smartlink on}
@@ -40,7 +40,7 @@
UNIT layers;
INTERFACE
-USES exec, graphics, utility;
+USES exec, agraphics, utility;
const
@@ -138,7 +138,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox;
+amsgbox;
{$endif dont_use_openlib}
FUNCTION BeginUpdate(l : pLayer) : LONGINT;
diff --git a/packages/amunits/src/coreunits/locale.pas b/packages/amunits/src/coreunits/locale.pas
index 6414e01f86..b91273e5e1 100644
--- a/packages/amunits/src/coreunits/locale.pas
+++ b/packages/amunits/src/coreunits/locale.pas
@@ -34,11 +34,7 @@
nils.sjoholm@mailbox.swipnet.se
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
UNIT locale;
@@ -271,30 +267,31 @@ VAR LocaleBase : pLocaleBase;
const
LOCALENAME : PChar = 'locale.library';
-PROCEDURE CloseCatalog(catalog : pCatalog);
-PROCEDURE CloseLocale(locale : pLocale);
-FUNCTION ConvToLower(locale : pLocale; character : ULONG) : ULONG;
-FUNCTION ConvToUpper(locale : pLocale; character : ULONG) : ULONG;
-PROCEDURE FormatDate(locale : pLocale; fmtTemplate : pCHAR; date : pDateStamp; putCharFunc : pHook);
-FUNCTION FormatString(locale : pLocale; fmtTemplate : pCHAR; dataStream : POINTER; putCharFunc : pHook) : POINTER;
-FUNCTION GetCatalogStr(catalog : pCatalog; stringNum : LONGINT; defaultString : pCHAR) : pCHAR;
-FUNCTION GetLocaleStr(locale : pLocale; stringNum : ULONG) : pCHAR;
-FUNCTION IsAlNum(locale : pLocale; character : ULONG) : BOOLEAN;
-FUNCTION IsAlpha(locale : pLocale; character : ULONG) : BOOLEAN;
-FUNCTION IsCntrl(locale : pLocale; character : ULONG) : BOOLEAN;
-FUNCTION IsDigit(locale : pLocale; character : ULONG) : BOOLEAN;
-FUNCTION IsGraph(locale : pLocale; character : ULONG) : BOOLEAN;
-FUNCTION IsLower(locale : pLocale; character : ULONG) : BOOLEAN;
-FUNCTION IsPrint(locale : pLocale; character : ULONG) : BOOLEAN;
-FUNCTION IsPunct(locale : pLocale; character : ULONG) : BOOLEAN;
-FUNCTION IsSpace(locale : pLocale; character : ULONG) : BOOLEAN;
-FUNCTION IsUpper(locale : pLocale; character : ULONG) : BOOLEAN;
-FUNCTION IsXDigit(locale : pLocale; character : ULONG) : BOOLEAN;
-FUNCTION OpenCatalogA(locale : pLocale; name : pCHAR; tags : pTagItem) : pCatalog;
-FUNCTION OpenLocale(name : pCHAR) : pLocale;
-FUNCTION ParseDate(locale : pLocale; date : pDateStamp; fmtTemplate : pCHAR; getCharFunc : pHook) : BOOLEAN;
-FUNCTION StrConvert(locale : pLocale; string1 : pCHAR; buffer : POINTER; bufferSize : ULONG; typ : ULONG) : ULONG;
-FUNCTION StrnCmp(locale : pLocale; string1 : pCHAR; string2 : pCHAR; length : LONGINT; typ : ULONG) : LONGINT;
+PROCEDURE CloseCatalog(catalog : pCatalog location 'a0'); syscall LocaleBase 036;
+PROCEDURE CloseLocale(locale : pLocale location 'a0'); syscall LocaleBase 042;
+FUNCTION ConvToLower(locale : pLocale location 'a0'; character : ULONG location 'd0') : ULONG; syscall LocaleBase 048;
+FUNCTION ConvToUpper(locale : pLocale location 'a0'; character : ULONG location 'd0') : ULONG; syscall LocaleBase 054;
+PROCEDURE FormatDate(locale : pLocale location 'a0'; fmtTemplate : pCHAR location 'a1'; date : pDateStamp location 'a2'; putCharFunc : pHook location 'a3'); syscall LocaleBase 060;
+FUNCTION FormatString(locale : pLocale location 'a0'; fmtTemplate : pCHAR location 'a1'; dataStream : POINTER location 'a2'; putCharFunc : pHook location 'a3') : POINTER; syscall LocaleBase 066;
+FUNCTION GetCatalogStr(catalog : pCatalog location 'a0'; stringNum : LONGINT location 'd0'; defaultString : pCHAR location 'a1') : pCHAR; syscall LocaleBase 072;
+FUNCTION GetLocaleStr(locale : pLocale location 'a0'; stringNum : ULONG location 'd0') : pCHAR; syscall LocaleBase 078;
+FUNCTION IsAlNum(locale : pLocale location 'a0'; character : ULONG location 'd0') : LongBool; syscall LocaleBase 084;
+FUNCTION IsAlpha(locale : pLocale location 'a0'; character : ULONG location 'd0') : LongBool; syscall LocaleBase 090;
+FUNCTION IsCntrl(locale : pLocale location 'a0'; character : ULONG location 'd0') : LongBool; syscall LocaleBase 096;
+FUNCTION IsDigit(locale : pLocale location 'a0'; character : ULONG location 'd0') : LongBool; syscall LocaleBase 102;
+FUNCTION IsGraph(locale : pLocale location 'a0'; character : ULONG location 'd0') : LongBool; syscall LocaleBase 108;
+FUNCTION IsLower(locale : pLocale location 'a0'; character : ULONG location 'd0') : LongBool; syscall LocaleBase 114;
+FUNCTION IsPrint(locale : pLocale location 'a0'; character : ULONG location 'd0') : LongBool; syscall LocaleBase 120;
+FUNCTION IsPunct(locale : pLocale location 'a0'; character : ULONG location 'd0') : LongBool; syscall LocaleBase 126;
+FUNCTION IsSpace(locale : pLocale location 'a0'; character : ULONG location 'd0') : LongBool; syscall LocaleBase 132;
+FUNCTION IsUpper(locale : pLocale location 'a0'; character : ULONG location 'd0') : LongBool; syscall LocaleBase 138;
+FUNCTION IsXDigit(locale : pLocale location 'a0'; character : ULONG location 'd0') : LongBool; syscall LocaleBase 144;
+FUNCTION OpenCatalogA(locale : pLocale location 'a0'; name : pCHAR location 'a1'; tags : pTagItem location 'a2') : pCatalog; syscall LocaleBase 150;
+FUNCTION OpenLocale(name : pCHAR location 'a0') : pLocale; syscall LocaleBase 156;
+FUNCTION ParseDate(locale : pLocale location 'a0'; date : pDateStamp location 'a1'; fmtTemplate : pCHAR location 'a2'; getCharFunc : pHook location 'a3') : LongBool; syscall LocaleBase 162;
+FUNCTION StrConvert(locale : pLocale location 'a0'; string1 : pCHAR location 'a1'; buffer : POINTER location 'a2'; bufferSize : ULONG location 'd0'; typ : ULONG location 'd1') : ULONG; syscall LocaleBase 174;
+FUNCTION StrnCmp(locale : pLocale location 'a0'; string1 : pCHAR location 'a1'; string2 : pCHAR location 'a2'; length : LONGINT location 'd0'; typ : ULONG location 'd1') : LONGINT; syscall LocaleBase 180;
+
{Here we read how to compile this unit}
{You can remove this include and use a define instead}
@@ -311,364 +308,9 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox;
+amsgbox;
{$endif dont_use_openlib}
-PROCEDURE CloseCatalog(catalog : pCatalog);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L catalog,A0
- MOVEA.L LocaleBase,A6
- JSR -036(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE CloseLocale(locale : pLocale);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVEA.L LocaleBase,A6
- JSR -042(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION ConvToLower(locale : pLocale; character : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVE.L character,D0
- MOVEA.L LocaleBase,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ConvToUpper(locale : pLocale; character : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVE.L character,D0
- MOVEA.L LocaleBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE FormatDate(locale : pLocale; fmtTemplate : pCHAR; date : pDateStamp; putCharFunc : pHook);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVEA.L fmtTemplate,A1
- MOVEA.L date,A2
- MOVEA.L putCharFunc,A3
- MOVEA.L LocaleBase,A6
- JSR -060(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION FormatString(locale : pLocale; fmtTemplate : pCHAR; dataStream : POINTER; putCharFunc : pHook) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVEA.L fmtTemplate,A1
- MOVEA.L dataStream,A2
- MOVEA.L putCharFunc,A3
- MOVEA.L LocaleBase,A6
- JSR -066(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetCatalogStr(catalog : pCatalog; stringNum : LONGINT; defaultString : pCHAR) : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L catalog,A0
- MOVE.L stringNum,D0
- MOVEA.L defaultString,A1
- MOVEA.L LocaleBase,A6
- JSR -072(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetLocaleStr(locale : pLocale; stringNum : ULONG) : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVE.L stringNum,D0
- MOVEA.L LocaleBase,A6
- JSR -078(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION IsAlNum(locale : pLocale; character : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVE.L character,D0
- MOVEA.L LocaleBase,A6
- JSR -084(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION IsAlpha(locale : pLocale; character : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVE.L character,D0
- MOVEA.L LocaleBase,A6
- JSR -090(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION IsCntrl(locale : pLocale; character : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVE.L character,D0
- MOVEA.L LocaleBase,A6
- JSR -096(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION IsDigit(locale : pLocale; character : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVE.L character,D0
- MOVEA.L LocaleBase,A6
- JSR -102(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION IsGraph(locale : pLocale; character : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVE.L character,D0
- MOVEA.L LocaleBase,A6
- JSR -108(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION IsLower(locale : pLocale; character : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVE.L character,D0
- MOVEA.L LocaleBase,A6
- JSR -114(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION IsPrint(locale : pLocale; character : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVE.L character,D0
- MOVEA.L LocaleBase,A6
- JSR -120(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION IsPunct(locale : pLocale; character : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVE.L character,D0
- MOVEA.L LocaleBase,A6
- JSR -126(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION IsSpace(locale : pLocale; character : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVE.L character,D0
- MOVEA.L LocaleBase,A6
- JSR -132(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION IsUpper(locale : pLocale; character : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVE.L character,D0
- MOVEA.L LocaleBase,A6
- JSR -138(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION IsXDigit(locale : pLocale; character : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVE.L character,D0
- MOVEA.L LocaleBase,A6
- JSR -144(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION OpenCatalogA(locale : pLocale; name : pCHAR; tags : pTagItem) : pCatalog;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVEA.L name,A1
- MOVEA.L tags,A2
- MOVEA.L LocaleBase,A6
- JSR -150(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION OpenLocale(name : pCHAR) : pLocale;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L LocaleBase,A6
- JSR -156(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ParseDate(locale : pLocale; date : pDateStamp; fmtTemplate : pCHAR; getCharFunc : pHook) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVEA.L date,A1
- MOVEA.L fmtTemplate,A2
- MOVEA.L getCharFunc,A3
- MOVEA.L LocaleBase,A6
- JSR -162(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION StrConvert(locale : pLocale; string1 : pCHAR; buffer : POINTER; bufferSize : ULONG; typ : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVEA.L string1,A1
- MOVEA.L buffer,A2
- MOVE.L bufferSize,D0
- MOVE.L typ,D1
- MOVEA.L LocaleBase,A6
- JSR -174(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION StrnCmp(locale : pLocale; string1 : pCHAR; string2 : pCHAR; length : LONGINT; typ : ULONG) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L locale,A0
- MOVEA.L string1,A1
- MOVEA.L string2,A2
- MOVE.L length,D0
- MOVE.L typ,D1
- MOVEA.L LocaleBase,A6
- JSR -180(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
const
{ Change VERSION and LIBVERSION to proper values }
diff --git a/packages/amunits/src/coreunits/lowlevel.pas b/packages/amunits/src/coreunits/lowlevel.pas
index fcf0283d10..105677cc07 100644
--- a/packages/amunits/src/coreunits/lowlevel.pas
+++ b/packages/amunits/src/coreunits/lowlevel.pas
@@ -31,11 +31,7 @@
nils.sjoholm@mailbox.swipnet.se
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
UNIT lowlevel;
@@ -267,22 +263,21 @@ Const
VAR LowLevelBase : pLibrary;
-FUNCTION AddKBInt(const intRoutine : POINTER;const intData : POINTER) : POINTER;
-FUNCTION AddTimerInt(const intRoutine : POINTER;const intData : POINTER) : POINTER;
-FUNCTION AddVBlankInt(const intRoutine : POINTER;const intData : POINTER) : POINTER;
-FUNCTION ElapsedTime(context : pEClockVal) : ULONG;
-FUNCTION GetKey : ULONG;
-FUNCTION GetLanguageSelection : BYTE;
-PROCEDURE QueryKeys(queryArray : pKeyQuery; arraySize : ULONG);
-FUNCTION ReadJoyPort(port : ULONG) : ULONG;
-PROCEDURE RemKBInt(intHandle : POINTER);
-PROCEDURE RemTimerInt(intHandle : POINTER);
-PROCEDURE RemVBlankInt(intHandle : POINTER);
-FUNCTION SetJoyPortAttrsA(portNumber : ULONG;const tagList : pTagItem) : BOOLEAN;
-PROCEDURE StartTimerInt(intHandle : POINTER; timeInterval : ULONG; continuous : LONGINT);
-PROCEDURE StopTimerInt(intHandle : POINTER);
-FUNCTION SystemControlA(const tagList : pTagItem) : ULONG;
-
+FUNCTION AddKBInt(const intRoutine : POINTER location 'a0'; const intData : POINTER location 'a1') : POINTER; syscall LowLevelBase 060;
+FUNCTION AddTimerInt(const intRoutine : POINTER location 'a0'; const intData : POINTER location 'a1') : POINTER; syscall LowLevelBase 078;
+FUNCTION AddVBlankInt(const intRoutine : POINTER location 'a0'; const intData : POINTER location 'a1') : POINTER; syscall LowLevelBase 108;
+FUNCTION ElapsedTime(context : pEClockVal location 'a0') : ULONG; syscall LowLevelBase 102;
+FUNCTION GetKey : ULONG; syscall LowLevelBase 048;
+FUNCTION GetLanguageSelection : BYTE; syscall LowLevelBase 036;
+PROCEDURE QueryKeys(queryArray : pKeyQuery location 'a0'; arraySize : ULONG location 'd1'); syscall LowLevelBase 054;
+FUNCTION ReadJoyPort(port : ULONG location 'd0') : ULONG; syscall LowLevelBase 030;
+PROCEDURE RemKBInt(intHandle : POINTER location 'a1'); syscall LowLevelBase 066;
+PROCEDURE RemTimerInt(intHandle : POINTER location 'a1'); syscall LowLevelBase 084;
+PROCEDURE RemVBlankInt(intHandle : POINTER location 'a1'); syscall LowLevelBase 114;
+FUNCTION SetJoyPortAttrsA(portNumber : ULONG location 'd0'; const tagList : pTagItem location 'a1') : LongBool; syscall LowLevelBase 132;
+PROCEDURE StartTimerInt(intHandle : POINTER location 'a1'; timeInterval : ULONG location 'd0'; continuous : LONGINT location 'd1'); syscall LowLevelBase 096;
+PROCEDURE StopTimerInt(intHandle : POINTER location 'a1'); syscall LowLevelBase 090;
+FUNCTION SystemControlA(const tagList : pTagItem location 'a1') : ULONG; syscall LowLevelBase 072;
{Here we read how to compile this unit}
{You can remove this include and use a define instead}
@@ -298,191 +293,9 @@ var
IMPLEMENTATION
{$ifndef dont_use_openlib}
-uses msgbox;
+uses amsgbox;
{$endif dont_use_openlib}
-FUNCTION AddKBInt(const intRoutine : POINTER;const intData : POINTER) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L intRoutine,A0
- MOVEA.L intData,A1
- MOVEA.L LowLevelBase,A6
- JSR -060(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AddTimerInt(const intRoutine : POINTER;const intData : POINTER) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L intRoutine,A0
- MOVEA.L intData,A1
- MOVEA.L LowLevelBase,A6
- JSR -078(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AddVBlankInt(const intRoutine : POINTER;const intData : POINTER) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L intRoutine,A0
- MOVEA.L intData,A1
- MOVEA.L LowLevelBase,A6
- JSR -108(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ElapsedTime(context : pEClockVal) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L context,A0
- MOVEA.L LowLevelBase,A6
- JSR -102(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetKey : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L LowLevelBase,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetLanguageSelection : BYTE;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L LowLevelBase,A6
- JSR -036(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE QueryKeys(queryArray : pKeyQuery; arraySize : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L queryArray,A0
- MOVE.L arraySize,D1
- MOVEA.L LowLevelBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION ReadJoyPort(port : ULONG) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L port,D0
- MOVEA.L LowLevelBase,A6
- JSR -030(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE RemKBInt(intHandle : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L intHandle,A1
- MOVEA.L LowLevelBase,A6
- JSR -066(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE RemTimerInt(intHandle : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L intHandle,A1
- MOVEA.L LowLevelBase,A6
- JSR -084(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE RemVBlankInt(intHandle : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L intHandle,A1
- MOVEA.L LowLevelBase,A6
- JSR -114(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION SetJoyPortAttrsA(portNumber : ULONG;const tagList : pTagItem) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L portNumber,D0
- MOVEA.L tagList,A1
- MOVEA.L LowLevelBase,A6
- JSR -132(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE StartTimerInt(intHandle : POINTER; timeInterval : ULONG; continuous : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L intHandle,A1
- MOVE.L timeInterval,D0
- MOVE.L continuous,D1
- MOVEA.L LowLevelBase,A6
- JSR -096(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE StopTimerInt(intHandle : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L intHandle,A1
- MOVEA.L LowLevelBase,A6
- JSR -090(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION SystemControlA(const tagList : pTagItem) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L tagList,A1
- MOVEA.L LowLevelBase,A6
- JSR -072(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
const
{ Change VERSION and LIBVERSION to proper values }
diff --git a/packages/amunits/src/coreunits/nonvolatile.pas b/packages/amunits/src/coreunits/nonvolatile.pas
index ea5edd5a20..26a2fda66e 100644
--- a/packages/amunits/src/coreunits/nonvolatile.pas
+++ b/packages/amunits/src/coreunits/nonvolatile.pas
@@ -27,11 +27,7 @@
nils.sjoholm@mailbox.swipnet.se Nils Sjoholm
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
UNIT nonvolatile;
@@ -86,13 +82,13 @@ VAR NVBase : pLibrary;
const
NONVOLATILENAME : PChar = 'nonvolatile.library';
-FUNCTION DeleteNV(const appName : pCHAR;const itemName : pCHAR; killRequesters : LONGINT) : BOOLEAN;
-PROCEDURE FreeNVData(data : POINTER);
-FUNCTION GetCopyNV(const appName : pCHAR;const itemName : pCHAR; killRequesters : LONGINT) : POINTER;
-FUNCTION GetNVInfo(killRequesters : LONGINT) : pNVInfo;
-FUNCTION GetNVList(const appName : pCHAR; killRequesters : LONGINT) : pMinList;
-FUNCTION SetNVProtection(const appName : pCHAR;const itemName : pCHAR; mask : LONGINT; killRequesters : LONGINT) : BOOLEAN;
-FUNCTION StoreNV(const appName : pCHAR;const itemName : pCHAR;const data : POINTER; length : ULONG; killRequesters : LONGINT) : WORD;
+FUNCTION DeleteNV(const appName : pCHAR location 'a0'; const itemName : pCHAR location 'a1'; killRequesters : LONGINT location 'd1') : LongBool; syscall NVBase 048;
+PROCEDURE FreeNVData(data : POINTER location 'a0'); syscall NVBase 036;
+FUNCTION GetCopyNV(const appName : pCHAR location 'a0'; const itemName : pCHAR location 'a1'; killRequesters : LONGINT location 'd1') : POINTER; syscall NVBase 030;
+FUNCTION GetNVInfo(killRequesters : LONGINT location 'd1') : pNVInfo; syscall NVBase 054;
+FUNCTION GetNVList(const appName : pCHAR location 'a0'; killRequesters : LONGINT location 'd1') : pMinList; syscall NVBase 060;
+FUNCTION SetNVProtection(const appName : pCHAR location 'a0'; const itemName : pCHAR location 'a1'; mask : LONGINT location 'd2'; killRequesters : LONGINT location 'd1') : LongBool; syscall NVBase 066;
+FUNCTION StoreNV(const appName : pCHAR location 'a0'; const itemName : pCHAR location 'a1'; const data : POINTER location 'a2'; length : ULONG location 'd0'; killRequesters : LONGINT location 'd1') : WORD; syscall NVBase 042;
{Here we read how to compile this unit}
{You can remove this include and use a define instead}
@@ -108,110 +104,9 @@ var
IMPLEMENTATION
{$ifndef dont_use_openlib}
-uses msgbox;
+uses amsgbox;
{$endif dont_use_openlib}
-FUNCTION DeleteNV(const appName : pCHAR;const itemName : pCHAR; killRequesters : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L appName,A0
- MOVEA.L itemName,A1
- MOVE.L killRequesters,D1
- MOVEA.L NVBase,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE FreeNVData(data : POINTER);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L data,A0
- MOVEA.L NVBase,A6
- JSR -036(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION GetCopyNV(const appName : pCHAR;const itemName : pCHAR; killRequesters : LONGINT) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L appName,A0
- MOVEA.L itemName,A1
- MOVE.L killRequesters,D1
- MOVEA.L NVBase,A6
- JSR -030(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetNVInfo(killRequesters : LONGINT) : pNVInfo;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L killRequesters,D1
- MOVEA.L NVBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GetNVList(const appName : pCHAR; killRequesters : LONGINT) : pMinList;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L appName,A0
- MOVE.L killRequesters,D1
- MOVEA.L NVBase,A6
- JSR -060(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION SetNVProtection(const appName : pCHAR;const itemName : pCHAR; mask : LONGINT; killRequesters : LONGINT) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L appName,A0
- MOVEA.L itemName,A1
- MOVE.L mask,D2
- MOVE.L killRequesters,D1
- MOVEA.L NVBase,A6
- JSR -066(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION StoreNV(const appName : pCHAR;const itemName : pCHAR;const data : POINTER; length : ULONG; killRequesters : LONGINT) : WORD;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L appName,A0
- MOVEA.L itemName,A1
- MOVEA.L data,A2
- MOVE.L length,D0
- MOVE.L killRequesters,D1
- MOVEA.L NVBase,A6
- JSR -042(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
const
{ Change VERSION and LIBVERSION to proper values }
diff --git a/packages/amunits/src/coreunits/prefs.pas b/packages/amunits/src/coreunits/prefs.pas
index 2e2025abe9..e300eb91f3 100644
--- a/packages/amunits/src/coreunits/prefs.pas
+++ b/packages/amunits/src/coreunits/prefs.pas
@@ -32,7 +32,7 @@
unit prefs;
INTERFACE
-uses exec, iffparse, graphics, timer, intuition;
+uses exec, iffparse, agraphics, timer, intuition;
{ Asl }
diff --git a/packages/amunits/src/coreunits/realtime.pas b/packages/amunits/src/coreunits/realtime.pas
index edc42cbf7e..706816b336 100644
--- a/packages/amunits/src/coreunits/realtime.pas
+++ b/packages/amunits/src/coreunits/realtime.pas
@@ -265,7 +265,7 @@ var
IMPLEMENTATION
{$ifndef dont_use_openlib}
-uses msgbox;
+uses amsgbox;
{$endif dont_use_openlib}
FUNCTION CreatePlayerA(const tagList : pTagItem) : pPlayer;
diff --git a/packages/amunits/src/coreunits/rexx.pas b/packages/amunits/src/coreunits/rexx.pas
index 57a8309115..679da48e2e 100644
--- a/packages/amunits/src/coreunits/rexx.pas
+++ b/packages/amunits/src/coreunits/rexx.pas
@@ -33,11 +33,7 @@
nils.sjoholm@mailbox.swipnet.se
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
UNIT rexx;
@@ -487,16 +483,16 @@ VAR RexxSysBase : pLibrary;
const
REXXSYSLIBNAME : PChar = 'rexxsyslib.library';
-PROCEDURE ClearRexxMsg(msgptr : pRexxMsg; count : ULONG);
-FUNCTION CreateArgstring(const argstring : pCHAR; length : ULONG) : pCHAR;
-FUNCTION CreateRexxMsg(const port : pMsgPort;const extension : pCHAR; host : pCHAR) : pRexxMsg;
-PROCEDURE DeleteArgstring(argstring : pCHAR);
-PROCEDURE DeleteRexxMsg(packet : pRexxMsg);
-FUNCTION FillRexxMsg(msgptr : pRexxMsg; count : ULONG; mask : ULONG) : BOOLEAN;
-FUNCTION IsRexxMsg(const msgptr : pRexxMsg) : BOOLEAN;
-FUNCTION LengthArgstring(const argstring : pCHAR) : ULONG;
-PROCEDURE LockRexxBase(resource : ULONG);
-PROCEDURE UnlockRexxBase(resource : ULONG);
+PROCEDURE ClearRexxMsg(msgptr : pRexxMsg location 'a0'; count : ULONG location 'd0'); syscall RexxSysBase 156;
+FUNCTION CreateArgstring(const argstring : pCHAR location 'a0'; length : ULONG location 'd0') : pCHAR; syscall RexxSysBase 126;
+FUNCTION CreateRexxMsg(const port : pMsgPort location 'a0'; const extension : pCHAR location 'a1'; host : pCHAR location 'd0') : pRexxMsg; syscall RexxSysBase 144;
+PROCEDURE DeleteArgstring(argstring : pCHAR location 'd0'); syscall RexxSysBase 132;
+PROCEDURE DeleteRexxMsg(packet : pRexxMsg location 'a0'); syscall RexxSysBase 150;
+FUNCTION FillRexxMsg(msgptr : pRexxMsg location 'a0'; count : ULONG location 'd0'; mask : ULONG location 'd1') : LongBool; syscall RexxSysBase 162;
+FUNCTION IsRexxMsg(const msgptr : pRexxMsg location 'a0') : LongBool; syscall RexxSysBase 168;
+FUNCTION LengthArgstring(const argstring : pCHAR location 'a0') : ULONG; syscall RexxSysBase 138;
+PROCEDURE LockRexxBase(resource : ULONG location 'd0'); syscall RexxSysBase 450;
+PROCEDURE UnlockRexxBase(resource : ULONG location 'd0'); syscall RexxSysBase 456;
FUNCTION CreateArgstring(const argstring : string; length : ULONG) : pCHAR;
FUNCTION CreateRexxMsg(const port : pMsgPort;const extension : string; host : pCHAR) : pRexxMsg;
@@ -520,139 +516,10 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
pastoc;
-
-PROCEDURE ClearRexxMsg(msgptr : pRexxMsg; count : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L msgptr,A0
- MOVE.L count,D0
- MOVEA.L RexxSysBase,A6
- JSR -156(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION CreateArgstring(const argstring : pCHAR; length : ULONG) : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L argstring,A0
- MOVE.L length,D0
- MOVEA.L RexxSysBase,A6
- JSR -126(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION CreateRexxMsg(const port : pMsgPort;const extension : pCHAR; host : pCHAR) : pRexxMsg;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L port,A0
- MOVEA.L extension,A1
- MOVE.L host,D0
- MOVEA.L RexxSysBase,A6
- JSR -144(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE DeleteArgstring(argstring : pCHAR);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L argstring,A0
- MOVEA.L RexxSysBase,A6
- JSR -132(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE DeleteRexxMsg(packet : pRexxMsg);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L packet,A0
- MOVEA.L RexxSysBase,A6
- JSR -150(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION FillRexxMsg(msgptr : pRexxMsg; count : ULONG; mask : ULONG) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L msgptr,A0
- MOVE.L count,D0
- MOVE.L mask,D1
- MOVEA.L RexxSysBase,A6
- JSR -162(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION IsRexxMsg(const msgptr : pRexxMsg) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L msgptr,A0
- MOVEA.L RexxSysBase,A6
- JSR -168(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION LengthArgstring(const argstring : pCHAR) : ULONG;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L argstring,A0
- MOVEA.L RexxSysBase,A6
- JSR -138(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE LockRexxBase(resource : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L resource,D0
- MOVEA.L RexxSysBase,A6
- JSR -450(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-PROCEDURE UnlockRexxBase(resource : ULONG);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L resource,D0
- MOVEA.L RexxSysBase,A6
- JSR -456(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-
FUNCTION CreateArgstring(const argstring : string; length : ULONG) : pCHAR;
begin
CreateArgstring := CreateArgstring(pas2c(argstring),length);
diff --git a/packages/amunits/src/coreunits/timer.pas b/packages/amunits/src/coreunits/timer.pas
index caafc63c60..6a9e800deb 100644
--- a/packages/amunits/src/coreunits/timer.pas
+++ b/packages/amunits/src/coreunits/timer.pas
@@ -25,11 +25,7 @@
nils.sjoholm@mailbox.swipnet.se
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
unit timer;
@@ -88,73 +84,12 @@ Const
var
TimerBase : Pointer;
-Procedure AddTime( Dest, Source : ptimeval);
-Function CmpTime( Dest, Source : ptimeval) : ULONG;
-Procedure SubTime( Dest, Source : ptimeval);
-function ReadEClock(Dest : pEClockVal): longint;
-procedure GetSysTime( Dest : ptimeval);
+Procedure AddTime( Dest : ptimeval location 'a0'; Source : ptimeval location 'a1'); syscall TimerBase 042;
+Function CmpTime( Dest : ptimeval location 'a0'; Source : ptimeval location 'a1') : ULONG; syscall TimerBase 054;
+Procedure SubTime( Dest : ptimeval location 'a0'; Source : ptimeval location 'a1'); syscall TimerBase 048;
+function ReadEClock(Dest : pEClockVal location 'a0'): longint; syscall TimerBase 060;
+procedure GetSysTime( Dest : ptimeval location 'a0'); syscall TimerBase 066;
IMPLEMENTATION
-Procedure AddTime( Dest, Source : ptimeval);
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L Dest,a0
- MOVE.L Source,a1
- MOVE.L TimerBase,A6
- JSR -042(A6)
- MOVE.L (A7)+,A6
- end;
-end;
-
-Function CmpTime( Dest, Source : ptimeval) : ULONG;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L Dest,a0
- MOVE.L Source,a1
- MOVE.L TimerBase,A6
- JSR -054(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-Procedure SubTime( Dest, Source : ptimeval);
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L Dest,a0
- MOVE.L Source,a1
- MOVE.L TimerBase,A6
- JSR -048(A6)
- MOVE.L (A7)+,A6
- end;
-end;
-
-function ReadEClock(Dest : pEClockVal): longint;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L Dest,a0
- MOVE.L TimerBase,A6
- JSR -060(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-procedure GetSysTime( Dest : ptimeval);
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L Dest,a0
- MOVE.L TimerBase,A6
- JSR -066(A6)
- MOVE.L (A7)+,A6
- end;
-end;
-
-
end.
diff --git a/packages/amunits/src/coreunits/translator.pas b/packages/amunits/src/coreunits/translator.pas
index 47f93cdede..eddb6fd26d 100644
--- a/packages/amunits/src/coreunits/translator.pas
+++ b/packages/amunits/src/coreunits/translator.pas
@@ -25,11 +25,6 @@
nils.sjoholm@mailbox.swipnet.se Nils Sjoholm
}
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
-
UNIT translator;
INTERFACE
@@ -46,7 +41,7 @@ VAR TranslatorBase : pLibrary;
const
TRANSLATORNAME : PChar = 'translator.library';
-FUNCTION Translate(const inputString : pCHAR; inputLength : LONGINT; outputBuffer : pCHAR; bufferSize : LONGINT) : LONGINT;
+FUNCTION Translate(const inputString : pCHAR location 'a0'; inputLength : LONGINT location 'd0'; outputBuffer : pCHAR location 'a1'; bufferSize : LONGINT location 'd1') : LONGINT; syscall TranslatorBase 030;
{Here we read how to compile this unit}
{You can remove this include and use a define instead}
@@ -62,24 +57,9 @@ var
IMPLEMENTATION
{$ifndef dont_use_openlib}
-uses msgbox;
+uses amsgbox;
{$endif dont_use_openlib}
-FUNCTION Translate(const inputString : pCHAR; inputLength : LONGINT; outputBuffer : pCHAR; bufferSize : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L inputString,A0
- MOVE.L inputLength,D0
- MOVEA.L outputBuffer,A1
- MOVE.L bufferSize,D1
- MOVEA.L TranslatorBase,A6
- JSR -030(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
const
{ Change VERSION and LIBVERSION to proper values }
diff --git a/packages/amunits/src/coreunits/utility.pas b/packages/amunits/src/coreunits/utility.pas
index 26849862fd..9aae1532c2 100644
--- a/packages/amunits/src/coreunits/utility.pas
+++ b/packages/amunits/src/coreunits/utility.pas
@@ -31,11 +31,7 @@
nils.sjoholm@mailbox.swipnet.se
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
unit utility;
@@ -340,44 +336,44 @@ Type
ub_Reserved : Byte;
END;
-function AddNamedObject(nameSpace,obj : pNamedObject) : Boolean;
-function AllocateTagItems(num : ULONG) : pTagItem;
-function AllocNamedObjectA(const name : STRPTR;const TagList : pTagItem) : pNamedObject;
-procedure Amiga2Date(amigatime : ULONG;resultat : pClockData);
-procedure ApplyTagChanges(TagList : pTagItem; const ChangeList : pTagItem);
-function AttemptRemNamedObject(obj : pNamedObject) : LongInt;
-function CallHookPkt(h : pHook;obj, paramPkt : APTR) : ULONG;
-function CheckDate(const date : pClockData) : ULONG;
-function CloneTagItems(const tagList : pTagItem) : pTagItem;
-function Date2Amiga(const date : pClockData) : ULONG;
-procedure FilterTagChanges(changelist, oldvalues : pTagItem;apply : ULONG);
-function FilterTagItems(taglist : pTagItem ;const tagArray : pULONG;logic : ULONG) : ULONG;
-function FindNamedObject(nameSpace : pNamedObject;const name : STRPTR;lastobject: pNamedObject) : pNamedObject;
-function FindTagItem(TagVal : Tag;const TagList : pTagItem) : pTagItem;
-procedure FreeNamedObject(Obj : pNamedObject);
-procedure FreeTagItems(TagList : pTagItem);
-function GetTagData(tagval : Tag;default : ULONG;const TagList : pTagItem) : ULONG;
-function GetUniqueID : ULONG;
-procedure MapTags(TagList : pTagItem;const maplist : pTagItem;IncludeMiss : ULONG);
-function NamedObjectName(Obj : pNamedObject) : STRPTR;
-function NextTagItem(Item : ppTagItem) : pTagItem;
-function PackBoolTags(InitialFlags : ULONG;const TagList, boolmap : pTagItem) : ULONG;
-function PackStructureTags(packk: APTR;const packTable : pULONG;const TagList : pTagItem) : ULONG;
-procedure RefreshTagItemClones(cloneTagItem : pTagItem; const OriginalTagItems : pTagItem);
-procedure ReleaseNamedObject(Obj : pNamedObject);
-procedure RemNamedObject(Obj : pNamedObject;Msg : pointer);
-function SDivMod32( dividend , divisor : LongInt) : LongInt;
-function SMult32(Arg1, Arg2 : LongInt) : LongInt;
-function SMult64(Arg1, Arg2 : LongInt) : LongInt;
-function Stricmp(const Str1: STRPTR;const Str2 : STRPTR) : LongInt;
-function Strnicmp(const Str1: STRPTR;const Str2 : STRPTR;len : LongInt) : LongInt;
-function TagInArray(t : Tag;const TagArray : pULONG) : Boolean;
-function ToLower(c : ULONG) : Char;
-function ToUpper(c : ULONG) : Char;
-function UDivMod32( dividend , divisor : ULONG) : ULONG;
-function UMult32(Arg1, Arg2 : ULONG) : ULONG;
-function UMult64(Arg1, Arg2 : ULONG) : ULONG;
-function UnpackStructureTags(const pac: APTR;const packTable: pULONG;TagList : pTagItem) : ULONG;
+function AddNamedObject(nameSpace : pNamedObject location 'a0';obj : pNamedObject location 'a1') : LongBool; syscall _UtilityBase 222;
+function AllocateTagItems(num : ULONG location 'd0') : pTagItem; syscall _UtilityBase 066;
+function AllocNamedObjectA(const name : STRPTR location 'a0';const TagList : pTagItem location 'a1') : pNamedObject; syscall _UtilityBase 228;
+procedure Amiga2Date(amigatime : ULONG location 'd0';resultat : pClockData location 'a0'); syscall _UtilityBase 120;
+procedure ApplyTagChanges(TagList : pTagItem location 'a0'; const ChangeList : pTagItem location 'a1'); syscall _UtilityBase 186;
+function AttemptRemNamedObject(obj : pNamedObject location 'a0') : LongInt; syscall _UtilityBase 234;
+function CallHookPkt(h : pHook location 'a0';obj: APTR location 'a2'; paramPkt : APTR location 'a1') : ULONG; syscall _UtilityBase 102;
+function CheckDate(const date : pClockData location 'a0') : ULONG; syscall _UtilityBase 132;
+function CloneTagItems(const tagList : pTagItem location 'a0') : pTagItem; syscall _UtilityBase 072;
+function Date2Amiga(const date : pClockData location 'a0') : ULONG; syscall _UtilityBase 126;
+procedure FilterTagChanges(changelist: PTagItem location 'a0'; oldvalues : pTagItem location 'a1';apply : ULONG location 'd0'); syscall _UtilityBase 054;
+function FilterTagItems(taglist : pTagItem location 'a0';const tagArray : pULONG location 'a1';logic : ULONG location 'd0') : ULONG; syscall _UtilityBase 096;
+function FindNamedObject(nameSpace : pNamedObject location 'a0';const name : STRPTR location 'a1';lastobject: pNamedObject location 'a2') : pNamedObject; syscall _UtilityBase 240;
+function FindTagItem(TagVal : Tag location 'd0';const TagList : pTagItem location 'a0') : pTagItem; syscall _UtilityBase 030;
+procedure FreeNamedObject(Obj : pNamedObject location 'a0'); syscall _UtilityBase 246;
+procedure FreeTagItems(TagList : pTagItem location 'a0'); syscall _UtilityBase 078;
+function GetTagData(tagval : Tag location 'd0';default : ULONG location 'd1';const TagList : pTagItem location 'a0') : ULONG; syscall _UtilityBase 036;
+function GetUniqueID : ULONG; syscall _UtilityBase 270;
+procedure MapTags(TagList : pTagItem location 'a0';const maplist : pTagItem location 'a1';IncludeMiss : ULONG location 'd0'); syscall _UtilityBase 060;
+function NamedObjectName(Obj : pNamedObject location 'a0') : STRPTR; syscall _UtilityBase 252;
+function NextTagItem(Item : ppTagItem location 'a0') : pTagItem; syscall _UtilityBase 048;
+function PackBoolTags(InitialFlags : ULONG location 'd0';const TagList: PTagItem location 'a0'; const boolmap : pTagItem location 'a1') : ULONG; syscall _UtilityBase 042;
+function PackStructureTags(packk: APTR location 'a0';const packTable : pULONG location 'a1';const TagList : pTagItem location 'a2') : ULONG; syscall _UtilityBase 210;
+procedure RefreshTagItemClones(cloneTagItem : pTagItem location 'a0'; const OriginalTagItems : pTagItem location 'a1'); syscall _UtilityBase 084;
+procedure ReleaseNamedObject(Obj : pNamedObject location 'a0'); syscall _UtilityBase 258;
+procedure RemNamedObject(Obj : pNamedObject location 'a0';Msg : pointer location 'a1'); syscall _UtilityBase 264;
+function SDivMod32( dividend: LongInt location 'd0'; divisor : LongInt location 'd1') : LongInt; syscall _UtilityBase 150;
+function SMult32(Arg1: LongInt location 'd0'; Arg2 : LongInt location 'd1') : LongInt; syscall _UtilityBase 138;
+function SMult64(Arg1: LongInt location 'd0'; Arg2 : LongInt location 'd1') : LongInt; syscall _UtilityBase 198;
+function Stricmp(const Str1: STRPTR location 'a0';const Str2 : STRPTR location 'a1') : LongInt; syscall _UtilityBase 162;
+function Strnicmp(const Str1: STRPTR location 'a0';const Str2 : STRPTR location 'a1';len : LongInt location 'd0') : LongInt; syscall _UtilityBase 168;
+function TagInArray(t : Tag location 'd0';const TagArray : pULONG location 'a0') : LongBool; syscall _UtilityBase 090;
+function ToLower(c : ULONG location 'd0') : Char; syscall _UtilityBase 180;
+function ToUpper(c : ULONG location 'd0') : Char; syscall _UtilityBase 174;
+function UDivMod32( dividend: ULONG location 'd0'; divisor : ULONG location 'd1') : ULONG; syscall _UtilityBase 156;
+function UMult32(Arg1: ULONG location 'd0'; Arg2 : ULONG location 'd1') : ULONG; syscall _UtilityBase 144;
+function UMult64(Arg1: ULONG location 'd0'; Arg2 : ULONG location 'd1') : ULONG; syscall _UtilityBase 204;
+function UnpackStructureTags(const pac: APTR location 'a0';const packTable: pULONG location 'a1';TagList : pTagItem location 'a2') : ULONG; syscall _UtilityBase 216;
function AllocNamedObjectA(const name : string;const TagList : pTagItem) : pNamedObject;
FUNCTION FindNamedObject(nameSpace : pNamedObject; CONST name : string; lastObject : pNamedObject) : pNamedObject;
@@ -393,499 +389,6 @@ IMPLEMENTATION
uses pastoc;
-function AddNamedObject(nameSpace,obj : pNamedObject) : Boolean;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L nameSpace,a0
- MOVE.L obj,a1
- MOVE.L _UtilityBase,A6
- JSR -222(A6)
- MOVE.L (A7)+,A6
- TST.L d0
- bne @success
- bra @end
- @success:
- move.b #1,d0
- @end:
- move.b d0,@RESULT
- end;
-end;
-
-function AllocateTagItems(num : ULONG) : pTagItem;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L num,d0
- MOVE.L _UtilityBase,A6
- JSR -066(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function AllocNamedObjectA(const name : STRPTR;const TagList : pTagItem) : pNamedObject;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L name,a0
- MOVE.L TagList,a1
- MOVE.L _UtilityBase,A6
- JSR -228(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-procedure Amiga2Date(amigatime : ULONG;resultat : pClockData);
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L amigatime,d0
- MOVE.L resultat,a0
- MOVE.L _UtilityBase,A6
- JSR -120(A6)
- MOVE.L (A7)+,A6
- end;
-end;
-
-procedure ApplyTagChanges(TagList : pTagItem;const ChangeList : pTagItem);
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L TagList,a0
- MOVE.L ChangeList,a1
- MOVE.L _UtilityBase,A6
- JSR -186(A6)
- MOVE.L (A7)+,A6
- end;
-end;
-
-function AttemptRemNamedObject(obj : pNamedObject) : LongInt;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L obj,a0
- MOVE.L _UtilityBase,A6
- JSR -234(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function CallHookPkt(h : pHook;obj, paramPkt : APTR) : ULONG;
-begin
- asm
- MOVEM.L a2/a6,-(A7)
- MOVE.L h,a0
- MOVE.L obj,a2
- MOVE.L paramPkt,a1
- MOVE.L _UtilityBase,A6
- JSR -102(A6)
- MOVEM.L (A7)+,a2/a6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function CheckDate(const date : pClockData) : ULONG;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L date,a0
- MOVE.L _UtilityBase,A6
- JSR -132(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function CloneTagItems(const tagList : pTagItem) : pTagItem;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L taglist,a0
- MOVE.L _UtilityBase,A6
- JSR -072(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function Date2Amiga(const date : pClockData) : ULONG;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L date,a0
- MOVE.L _UtilityBase,A6
- JSR -126(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-procedure FilterTagChanges(changelist, oldvalues : pTagItem;apply : ULONG);
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L changelist,a0
- MOVE.L oldvalues,a1
- MOVE.L apply,d0
- MOVE.L _UtilityBase,A6
- JSR -054(A6)
- MOVE.L (A7)+,A6
- end;
-end;
-
-function FilterTagItems(taglist : pTagItem ;const tagArray : pULONG;logic : ULONG) : ULONG;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L taglist,a0
- MOVE.L tagArray,a1
- MOVE.L logic,d0
- MOVE.L _UtilityBase,A6
- JSR -096(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function FindNamedObject(nameSpace : pNamedObject;const name : STRPTR;lastobject: pNamedObject) : pNamedObject;
-begin
- asm
- MOVEM.L a2/a6,-(A7)
- MOVE.L nameSpace,a0
- MOVE.L name,a1
- MOVE.L lastobject,a2
- MOVE.L _UtilityBase,A6
- JSR -240(A6)
- MOVEM.L (A7)+,a2/a6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function FindTagItem(TagVal : Tag;const TagList : pTagItem) : pTagItem;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L TagVal,d0
- MOVE.L TagList,a0
- MOVE.L _UtilityBase,A6
- JSR -030(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-procedure FreeNamedObject(Obj : pNamedObject);
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L Obj,a0
- MOVE.L _UtilityBase,A6
- JSR -246(A6)
- MOVE.L (A7)+,A6
- end;
-end;
-
-procedure FreeTagItems(TagList : pTagItem);
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L TagList,a0
- MOVE.L _UtilityBase,A6
- JSR -078(A6)
- MOVE.L (A7)+,A6
- end;
-end;
-
-function GetTagData(tagval : Tag;default : ULONG;const TagList : pTagItem) : ULONG;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L tagval,d0
- MOVE.L default,d1
- MOVE.L TagList,a0
- MOVE.L _UtilityBase,A6
- JSR -036(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function GetUniqueID : ULONG;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L _UtilityBase,A6
- JSR -270(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-procedure MapTags(TagList : pTagItem;const maplist : pTagItem;IncludeMiss : ULONG);
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L TagList,a0
- MOVE.L maplist,a1
- MOVE.L IncludeMiss,d0
- MOVE.L _UtilityBase,A6
- JSR -060(A6)
- MOVE.L (A7)+,A6
- end;
-end;
-
-function NamedObjectName(Obj : pNamedObject) : STRPTR;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L Obj,a0
- MOVE.L _UtilityBase,A6
- JSR -252(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function NextTagItem(Item : ppTagItem) : pTagItem;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L Item,a0
- MOVE.L _UtilityBase,A6
- JSR -048(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function PackBoolTags(InitialFlags : ULONG;const TagList, boolmap : pTagItem) : ULONG;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L InitialFlags,d0
- MOVE.L TagList,a0
- MOVE.L boolmap,a1
- MOVE.L _UtilityBase,A6
- JSR -042(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function PackStructureTags(packk: APTR;const packTable : pULONG;const TagList : pTagItem) : ULONG;
-begin
- asm
- MOVEM.L a2/a6,-(A7)
- MOVE.L packk,a0
- MOVE.L packTable,a1
- MOVE.L TagList,a2
- MOVE.L _UtilityBase,A6
- JSR -210(A6)
- MOVEM.L (A7)+,a2/a6
- MOVE.L d0,@RESULT
- end;
-end;
-
-procedure RefreshTagItemClones(cloneTagItem : pTagItem; const OriginalTagItems : pTagItem);
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L cloneTagItem,a0
- MOVE.L OriginalTagItems,a1
- MOVE.L _UtilityBase,A6
- JSR -084(A6)
- MOVE.L (A7)+,A6
- end;
-end;
-
-procedure ReleaseNamedObject(Obj : pNamedObject);
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L Obj,a0
- MOVE.L _UtilityBase,A6
- JSR -258(A6)
- MOVE.L (A7)+,A6
- end;
-end;
-
-procedure RemNamedObject(Obj : pNamedObject;Msg : pointer);
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L Obj,a0
- MOVE.L Msg,a1
- MOVE.L _UtilityBase,A6
- JSR -264(A6)
- MOVE.L (A7)+,A6
- end;
-end;
-
-function SDivMod32( dividend , divisor : LongInt) : LongInt;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L dividend,d0
- MOVE.L divisor,d1
- MOVE.L _UtilityBase,A6
- JSR -150(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function SMult32(Arg1, Arg2 : LongInt) : LongInt;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L Arg1,d0
- MOVE.L Arg2,d1
- MOVE.L _UtilityBase,A6
- JSR -138(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function SMult64(Arg1, Arg2 : LongInt) : LongInt;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L Arg1,d0
- MOVE.L Arg2,d1
- MOVE.L _UtilityBase,A6
- JSR -198(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function Stricmp(const Str1: STRPTR;const Str2 : STRPTR) : LongInt;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L Str1,a0
- MOVE.L Str2,a1
- MOVE.L _UtilityBase,A6
- JSR -162(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function Strnicmp(const Str1: STRPTR;const Str2 : STRPTR;len : LongInt) : LongInt;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L Str1,a0
- MOVE.L Str2,a1
- MOVE.L len,d0
- MOVE.L _UtilityBase,A6
- JSR -168(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function TagInArray(t : Tag;const TagArray : pULONG) : Boolean;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L t,d0
- MOVE.L TagArray,a0
- MOVE.L _UtilityBase,A6
- JSR -090(A6)
- MOVE.L (A7)+,A6
- TST.L d0
- bne @success
- bra @end
- @success:
- move.b #1,d0
- @end:
- move.b d0,@RESULT
- end;
-end;
-
-function ToLower(c : ULONG) : Char;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L c,d0
- MOVE.L _UtilityBase,A6
- JSR -180(A6)
- MOVE.L (A7)+,A6
- MOVE.B d0,@RESULT
- end;
-end;
-
-function ToUpper(c : ULONG) : Char;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L c,d0
- MOVE.L _UtilityBase,A6
- JSR -174(A6)
- MOVE.L (A7)+,A6
- MOVE.B d0,@RESULT
- end;
-end;
-
-function UDivMod32( dividend , divisor : ULONG) : ULONG;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L dividend,d0
- MOVE.L divisor,d1
- MOVE.L _UtilityBase,A6
- JSR -156(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function UMult32(Arg1, Arg2 : ULONG) : ULONG;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L Arg1,d0
- MOVE.L Arg2,d1
- MOVE.L _UtilityBase,A6
- JSR -144(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function UMult64(Arg1, Arg2 : ULONG) : ULONG;
-begin
- asm
- MOVE.L A6,-(A7)
- MOVE.L Arg1,d0
- MOVE.L Arg2,d1
- MOVE.L _UtilityBase,A6
- JSR -204(A6)
- MOVE.L (A7)+,A6
- MOVE.L d0,@RESULT
- end;
-end;
-
-function UnpackStructureTags(const pac: APTR;const packTable: pULONG;TagList : pTagItem) : ULONG;
-begin
- asm
- MOVEM.L a2/a6,-(A7)
- MOVE.L pac,a0
- MOVE.L packTable,a1
- MOVE.L TagList,a2
- MOVE.L _UtilityBase,A6
- JSR -216(A6)
- MOVEM.L (A7)+,a2/a6
- MOVE.L d0,@RESULT
- end;
-end;
-
function AllocNamedObjectA(const name : string;const TagList : pTagItem) : pNamedObject;
begin
diff --git a/packages/amunits/src/coreunits/workbench.pas b/packages/amunits/src/coreunits/workbench.pas
index fc6a472983..42d5ca6998 100644
--- a/packages/amunits/src/coreunits/workbench.pas
+++ b/packages/amunits/src/coreunits/workbench.pas
@@ -58,18 +58,13 @@
nils.sjoholm@mailbox.swipnet.se
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
+{$PACKRECORDS 2}
unit workbench;
INTERFACE
-uses exec,amigados,utility, intuition,graphics;
-
+uses exec,amigados,utility,intuition,agraphics;
Type
@@ -855,21 +850,21 @@ type
VAR
WorkbenchBase : pLibrary;
-FUNCTION AddAppIconA(id : ULONG; userdata : ULONG; text_ : pCHAR; msgport : pMsgPort; lock : pFileLock; diskobj : pDiskObject;const taglist : pTagItem) : pAppIcon;
-FUNCTION AddAppMenuItemA(id : ULONG; userdata : ULONG; text_ : pCHAR; msgport : pMsgPort;const taglist : pTagItem) : pAppMenuItem;
-FUNCTION AddAppWindowA(id : ULONG; userdata : ULONG; window : pWindow; msgport : pMsgPort;const taglist : pTagItem) : pAppWindow;
-FUNCTION RemoveAppIcon(appIcon : pAppIcon) : BOOLEAN;
-FUNCTION RemoveAppMenuItem(appMenuItem : pAppMenuItem) : BOOLEAN;
-FUNCTION RemoveAppWindow(appWindow : pAppWindow) : BOOLEAN;
-PROCEDURE WBInfo(lock : BPTR; name : pCHAR; screen : pScreen);
-
-FUNCTION AddAppWindowDropZoneA(aw : pAppWindow; id : longword; userdata : longword;const tags : pTagItem) : pAppWindowDropZone;
-FUNCTION ChangeWorkbenchSelectionA(name : pCHAR; hook : pHook;const tags : pTagItem) : BOOLEAN;
-FUNCTION CloseWorkbenchObjectA(name : pCHAR;const tags : pTagItem) : BOOLEAN;
-FUNCTION MakeWorkbenchObjectVisibleA(name : pCHAR;const tags : pTagItem) : BOOLEAN;
-FUNCTION OpenWorkbenchObjectA(name : pCHAR;const tags : pTagItem) : BOOLEAN;
-FUNCTION RemoveAppWindowDropZone(aw : pAppWindow; dropZone : pAppWindowDropZone) : BOOLEAN;
-FUNCTION WorkbenchControlA(name : pCHAR;const tags : pTagItem) : BOOLEAN;
+FUNCTION AddAppIconA(id : ULONG location 'd0'; userdata : ULONG location 'd1'; text_ : pCHAR location 'a0'; msgport : pMsgPort location 'a1'; lock : pFileLock location 'a2'; diskobj : pDiskObject location 'a3'; const taglist : pTagItem location 'a4') : pAppIcon; syscall WorkbenchBase 060;
+FUNCTION AddAppMenuItemA(id : ULONG location 'd0'; userdata : ULONG location 'd1'; text_ : pCHAR location 'a0'; msgport : pMsgPort location 'a1'; const taglist : pTagItem location 'a2') : pAppMenuItem; syscall WorkbenchBase 072;
+FUNCTION AddAppWindowA(id : ULONG location 'd0'; userdata : ULONG location 'd1'; window : pWindow location 'a0'; msgport : pMsgPort location 'a1'; const taglist : pTagItem location 'a2') : pAppWindow; syscall WorkbenchBase 042;
+FUNCTION RemoveAppIcon(appIcon : pAppIcon location 'a0') : longbool; syscall WorkbenchBase 066;
+FUNCTION RemoveAppMenuItem(appMenuItem : pAppMenuItem location 'a0') : longbool; syscall WorkbenchBase 078;
+FUNCTION RemoveAppWindow(appWindow : pAppWindow location 'a0') : longbool; syscall WorkbenchBase 054;
+PROCEDURE WBInfo(lock : BPTR location 'a0'; name : pCHAR location 'a1'; screen : pScreen location 'a2'); syscall WorkbenchBase 090;
+
+FUNCTION AddAppWindowDropZoneA(aw : pAppWindow location 'a0'; id : longword location 'd0'; userdata : longword location 'd1'; const tags : pTagItem location 'a1') : pAppWindowDropZone; syscall WorkbenchBase 114;
+FUNCTION ChangeWorkbenchSelectionA(name : pCHAR location 'a0'; hook : pHook location 'a1'; const tags : pTagItem location 'a2') : longbool; syscall WorkbenchBase 126;
+FUNCTION CloseWorkbenchObjectA(name : pCHAR location 'a0'; const tags : pTagItem location 'a1') : longbool; syscall WorkbenchBase 102;
+FUNCTION MakeWorkbenchObjectVisibleA(name : pCHAR location 'a0'; const tags : pTagItem location 'a1') : longbool; syscall WorkbenchBase 132;
+FUNCTION OpenWorkbenchObjectA(name : pCHAR location 'a0'; const tags : pTagItem location 'a1') : longbool; syscall WorkbenchBase 096;
+FUNCTION RemoveAppWindowDropZone(aw : pAppWindow location 'a0'; dropZone : pAppWindowDropZone location 'a1') : longbool; syscall WorkbenchBase 120;
+FUNCTION WorkbenchControlA(name : pCHAR location 'a0'; const tags : pTagItem location 'a1') : longbool; syscall WorkbenchBase 108;
{ overlays }
FUNCTION AddAppIconA(id : ULONG; userdata : ULONG; text_ : string; msgport : pMsgPort; lock : pFileLock; diskobj : pDiskObject;const taglist : pTagItem) : pAppIcon;
@@ -897,231 +892,10 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
pastoc;
-FUNCTION AddAppIconA(id : ULONG; userdata : ULONG; text_ : pCHAR; msgport : pMsgPort; lock : pFileLock; diskobj : pDiskObject;const taglist : pTagItem) : pAppIcon;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L id,D0
- MOVE.L userdata,D1
- MOVEA.L text_,A0
- MOVEA.L msgport,A1
- MOVEA.L lock,A2
- MOVEA.L diskobj,A3
- MOVEA.L taglist,A4
- MOVEA.L WorkbenchBase,A6
- JSR -060(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AddAppMenuItemA(id : ULONG; userdata : ULONG; text_ : pCHAR; msgport : pMsgPort;const taglist : pTagItem) : pAppMenuItem;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L id,D0
- MOVE.L userdata,D1
- MOVEA.L text_,A0
- MOVEA.L msgport,A1
- MOVEA.L taglist,A2
- MOVEA.L WorkbenchBase,A6
- JSR -072(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION AddAppWindowA(id : ULONG; userdata : ULONG; window : pWindow; msgport : pMsgPort;const taglist : pTagItem) : pAppWindow;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L id,D0
- MOVE.L userdata,D1
- MOVEA.L window,A0
- MOVEA.L msgport,A1
- MOVEA.L taglist,A2
- MOVEA.L WorkbenchBase,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION RemoveAppIcon(appIcon : pAppIcon) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L appIcon,A0
- MOVEA.L WorkbenchBase,A6
- JSR -066(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION RemoveAppMenuItem(appMenuItem : pAppMenuItem) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L appMenuItem,A0
- MOVEA.L WorkbenchBase,A6
- JSR -078(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION RemoveAppWindow(appWindow : pAppWindow) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L appWindow,A0
- MOVEA.L WorkbenchBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-PROCEDURE WBInfo(lock : BPTR; name : pCHAR; screen : pScreen);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L lock,A0
- MOVEA.L name,A1
- MOVEA.L screen,A2
- MOVEA.L WorkbenchBase,A6
- JSR -090(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
-
-FUNCTION AddAppWindowDropZoneA(aw : pAppWindow; id : longword; userdata : longword;const tags : pTagItem) : pAppWindowDropZone;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L aw,A0
- MOVE.L id,D0
- MOVE.L userdata,D1
- MOVEA.L tags,A1
- MOVEA.L WorkbenchBase,A6
- JSR -114(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION ChangeWorkbenchSelectionA(name : pCHAR; hook : pHook;const tags : pTagItem) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L hook,A1
- MOVEA.L tags,A2
- MOVEA.L WorkbenchBase,A6
- JSR -126(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION CloseWorkbenchObjectA(name : pCHAR;const tags : pTagItem) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L tags,A1
- MOVEA.L WorkbenchBase,A6
- JSR -102(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION MakeWorkbenchObjectVisibleA(name : pCHAR;const tags : pTagItem) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L tags,A1
- MOVEA.L WorkbenchBase,A6
- JSR -132(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION OpenWorkbenchObjectA(name : pCHAR;const tags : pTagItem) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L tags,A1
- MOVEA.L WorkbenchBase,A6
- JSR -096(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-
-FUNCTION RemoveAppWindowDropZone(aw : pAppWindow; dropZone : pAppWindowDropZone) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L aw,A0
- MOVEA.L dropZone,A1
- MOVEA.L WorkbenchBase,A6
- JSR -120(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION WorkbenchControlA(name : pCHAR;const tags : pTagItem) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L name,A0
- MOVEA.L tags,A1
- MOVEA.L WorkbenchBase,A6
- JSR -108(A6)
- MOVEA.L (A7)+,A6
- TST.W D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
FUNCTION AddAppIconA(id : ULONG; userdata : ULONG; text_ : string; msgport : pMsgPort; lock : pFileLock; diskobj : pDiskObject;const taglist : pTagItem) : pAppIcon;
begin
AddAppIconA := AddAppIconA(id,userdata,pas2c(text_),msgport,lock,diskobj,taglist);
@@ -1245,7 +1019,3 @@ begin
END. (* UNIT WB *)
-
-
-
-
diff --git a/packages/amunits/src/otherlibs/ahi.pas b/packages/amunits/src/otherlibs/ahi.pas
index ce499bce2c..4235d08873 100644
--- a/packages/amunits/src/otherlibs/ahi.pas
+++ b/packages/amunits/src/otherlibs/ahi.pas
@@ -27,6 +27,7 @@
nils.sjoholm@mailbox.swipnet.se Nils Sjoholm
}
+{$PACKRECORDS 2}
{$mode objfpc}
{$I useamigasmartlink.inc}
@@ -548,7 +549,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
tagsarray;
diff --git a/packages/amunits/src/otherlibs/ahi_sub.pas b/packages/amunits/src/otherlibs/ahi_sub.pas
index f39b197305..cc7f482c00 100644
--- a/packages/amunits/src/otherlibs/ahi_sub.pas
+++ b/packages/amunits/src/otherlibs/ahi_sub.pas
@@ -28,6 +28,7 @@
nils.sjoholm@mailbox.swipnet.se Nils Sjoholm
}
+{$PACKRECORDS 2}
{$I useamigasmartlink.inc}
{$ifdef use_amiga_smartlink}
@@ -171,7 +172,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
tagsarray;
diff --git a/packages/amunits/src/otherlibs/amarquee.pas b/packages/amunits/src/otherlibs/amarquee.pas
index 2eec31f658..44e06be465 100644
--- a/packages/amunits/src/otherlibs/amarquee.pas
+++ b/packages/amunits/src/otherlibs/amarquee.pas
@@ -311,7 +311,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
pastoc,tagsarray;
diff --git a/packages/amunits/src/otherlibs/cybergraphics.pas b/packages/amunits/src/otherlibs/cybergraphics.pas
index 38c85f2187..0fdf5f77ba 100644
--- a/packages/amunits/src/otherlibs/cybergraphics.pas
+++ b/packages/amunits/src/otherlibs/cybergraphics.pas
@@ -37,7 +37,7 @@
UNIT CYBERGRAPHICS;
INTERFACE
-USES Exec,graphics,utility;
+USES Exec,agraphics,utility;
VAR CyberGfxBase : pLibrary;
@@ -273,7 +273,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
tagsarray;
diff --git a/packages/amunits/src/otherlibs/gtlayout.pas b/packages/amunits/src/otherlibs/gtlayout.pas
index e3e04ea488..54a17c4eb1 100644
--- a/packages/amunits/src/otherlibs/gtlayout.pas
+++ b/packages/amunits/src/otherlibs/gtlayout.pas
@@ -51,7 +51,7 @@ UNIT GTLAYOUT;
INTERFACE
-USES Exec,intuition,utility, gadtools,graphics;
+USES Exec,intuition,utility, gadtools,agraphics;
@@ -635,7 +635,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
tagsarray;
diff --git a/packages/amunits/src/otherlibs/guigfx.pas b/packages/amunits/src/otherlibs/guigfx.pas
index ffe2b4ab02..27745ff06a 100644
--- a/packages/amunits/src/otherlibs/guigfx.pas
+++ b/packages/amunits/src/otherlibs/guigfx.pas
@@ -37,7 +37,7 @@
UNIT GUIGFX;
INTERFACE
-USES Exec,utility,graphics;
+USES Exec,utility,agraphics;
VAR GuiGFXBase : pLibrary;
@@ -220,7 +220,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
tagsarray,longarray;
diff --git a/packages/amunits/src/otherlibs/identify.pas b/packages/amunits/src/otherlibs/identify.pas
index a7aa1a8e48..3d885c1178 100644
--- a/packages/amunits/src/otherlibs/identify.pas
+++ b/packages/amunits/src/otherlibs/identify.pas
@@ -459,7 +459,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
tagsarray,pastoc;
diff --git a/packages/amunits/src/otherlibs/lucyplay.pas b/packages/amunits/src/otherlibs/lucyplay.pas
index dc2b28d5bb..0e7e465064 100644
--- a/packages/amunits/src/otherlibs/lucyplay.pas
+++ b/packages/amunits/src/otherlibs/lucyplay.pas
@@ -127,7 +127,7 @@ var
IMPLEMENTATION
{$ifndef dont_use_openlib}
-uses msgbox;
+uses amsgbox;
{$endif dont_use_openlib}
PROCEDURE lucAudioFree(smp : pLucyPlaySample);
diff --git a/packages/amunits/src/otherlibs/mui.pas b/packages/amunits/src/otherlibs/mui.pas
index 81ecba9896..471ab19ca3 100644
--- a/packages/amunits/src/otherlibs/mui.pas
+++ b/packages/amunits/src/otherlibs/mui.pas
@@ -147,7 +147,7 @@ interface
Items marked with "Custom Class" are for use in custom classes only!
}
-uses exec, intuition,utility,graphics,iffparse;
+uses exec, intuition,utility,agraphics,iffparse;
const
@@ -3598,7 +3598,7 @@ implementation
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
tagsarray,longarray;
diff --git a/packages/amunits/src/otherlibs/mysticview.pas b/packages/amunits/src/otherlibs/mysticview.pas
index 556d407683..e1f716e29c 100644
--- a/packages/amunits/src/otherlibs/mysticview.pas
+++ b/packages/amunits/src/otherlibs/mysticview.pas
@@ -36,7 +36,7 @@
UNIT MYSTICVIEW;
INTERFACE
-USES Exec,graphics,utility,intuition;
+USES Exec,agraphics,utility,intuition;
VAR MysticBase : pLibrary;
@@ -183,7 +183,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
tagsarray;
diff --git a/packages/amunits/src/otherlibs/picasso96api.pas b/packages/amunits/src/otherlibs/picasso96api.pas
index 983d587f0b..65a08cd5f4 100644
--- a/packages/amunits/src/otherlibs/picasso96api.pas
+++ b/packages/amunits/src/otherlibs/picasso96api.pas
@@ -43,7 +43,7 @@
UNIT PICASSO96API;
INTERFACE
-USES Exec, utility, graphics, intuition;
+USES Exec, utility, agraphics, intuition;
{ Picasso96.h -- include File
(C) Copyright 1996-98 Alexander Kneer & Tobias Abt
@@ -461,7 +461,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
tagsarray;
diff --git a/packages/amunits/src/otherlibs/preferences.pas b/packages/amunits/src/otherlibs/preferences.pas
index a20b0fb527..6f54480c82 100644
--- a/packages/amunits/src/otherlibs/preferences.pas
+++ b/packages/amunits/src/otherlibs/preferences.pas
@@ -160,7 +160,7 @@ var
IMPLEMENTATION
{$ifndef dont_use_openlib}
-uses msgbox;
+uses amsgbox;
{$endif dont_use_openlib}
FUNCTION AllocPrefsHandle(name : pCHAR) : POINTER;
diff --git a/packages/amunits/src/otherlibs/ptreplay.pas b/packages/amunits/src/otherlibs/ptreplay.pas
index 3058bc0192..10e775618e 100644
--- a/packages/amunits/src/otherlibs/ptreplay.pas
+++ b/packages/amunits/src/otherlibs/ptreplay.pas
@@ -107,7 +107,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
pastoc;
diff --git a/packages/amunits/src/otherlibs/render.pas b/packages/amunits/src/otherlibs/render.pas
index f2dccd6046..9ddf9dc9f8 100644
--- a/packages/amunits/src/otherlibs/render.pas
+++ b/packages/amunits/src/otherlibs/render.pas
@@ -37,7 +37,7 @@
UNIT RENDER;
INTERFACE
-USES Exec,utility,graphics;
+USES Exec,utility,agraphics;
VAR RenderBase : pLibrary;
@@ -448,7 +448,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
tagsarray;
diff --git a/packages/amunits/src/otherlibs/reqtools.pas b/packages/amunits/src/otherlibs/reqtools.pas
index 1b114868a7..568001856c 100644
--- a/packages/amunits/src/otherlibs/reqtools.pas
+++ b/packages/amunits/src/otherlibs/reqtools.pas
@@ -47,7 +47,7 @@ UNIT REQTOOLS;
INTERFACE
-USES Exec, intuition, amigados, diskfont, graphics, utility;
+USES Exec, intuition, amigados, diskfont, agraphics, utility;
@@ -689,7 +689,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
tagsarray,pastoc;
diff --git a/packages/amunits/src/otherlibs/triton.pas b/packages/amunits/src/otherlibs/triton.pas
index b6a430c6ae..7ad77a1a00 100644
--- a/packages/amunits/src/otherlibs/triton.pas
+++ b/packages/amunits/src/otherlibs/triton.pas
@@ -43,7 +43,7 @@ UNIT TRITON;
INTERFACE
-uses exec, intuition, graphics, utility;
+uses exec, intuition, agraphics, utility;
{* ------------------------------------------------------------------------------ *}
@@ -792,7 +792,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
tagsarray,pastoc;
diff --git a/packages/amunits/src/otherlibs/ttengine.pas b/packages/amunits/src/otherlibs/ttengine.pas
index 83216bf6f3..57aaf0a7dd 100644
--- a/packages/amunits/src/otherlibs/ttengine.pas
+++ b/packages/amunits/src/otherlibs/ttengine.pas
@@ -37,7 +37,7 @@
UNIT TTENGINE;
INTERFACE
-USES Exec,utility,graphics;
+USES Exec,utility,agraphics;
VAR TTEngineBase : pLibrary;
@@ -235,7 +235,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
tagsarray;
diff --git a/packages/amunits/src/otherlibs/xadmaster.pas b/packages/amunits/src/otherlibs/xadmaster.pas
index 3d012a0c5b..3ea22bec37 100644
--- a/packages/amunits/src/otherlibs/xadmaster.pas
+++ b/packages/amunits/src/otherlibs/xadmaster.pas
@@ -1245,7 +1245,7 @@ IMPLEMENTATION
uses
{$ifndef dont_use_openlib}
-msgbox,
+amsgbox,
{$endif dont_use_openlib}
tagsarray;
diff --git a/packages/amunits/src/otherlibs/zlib.pas b/packages/amunits/src/otherlibs/zlib.pas
index 47492530c4..24520baba0 100644
--- a/packages/amunits/src/otherlibs/zlib.pas
+++ b/packages/amunits/src/otherlibs/zlib.pas
@@ -28,12 +28,6 @@
nils.sjoholm@mailbox.swipnet.se
}
-
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
-
UNIT ZLIB;
INTERFACE
@@ -56,16 +50,16 @@ const
GZ_COMPRESS_BEST = 9;
-FUNCTION GZ_Close(handle : POINTER) : LONGINT;
-FUNCTION GZ_CompressMem(srcbuf : POINTER; srclen : longword; destbuf : POINTER; destlen : longword; strategy : longword; level : longword; VAR poutlen : longword) : LONGINT;
-FUNCTION GZ_DecompressMem(srcbuf : POINTER; srclen : longword; destbuf : POINTER; destlen : longword) : LONGINT;
-FUNCTION GZ_FGetC(handle : POINTER) : pLONGINT;
-FUNCTION GZ_FGetS(handle : POINTER; buf : pCHAR; len : longword) : pCHAR;
-FUNCTION GZ_FileLength(handle : POINTER) : longword;
-FUNCTION GZ_Open(filename : pCHAR; openmode : longword; strategy : longword; level : longword) : POINTER;
-FUNCTION GZ_OpenFromFH(fh : LONGINT; openmode : longword; strategy : longword; level : longword) : POINTER;
-FUNCTION GZ_Read(handle : POINTER; buf : POINTER; len : longword) : LONGINT;
-FUNCTION GZ_Write(handle : POINTER; buf : POINTER; len : longword) : LONGINT;
+FUNCTION GZ_Close(handle : POINTER location 'a0') : LONGINT; syscall ZLibBase 042;
+FUNCTION GZ_CompressMem(srcbuf : POINTER location 'a0'; srclen : longword location 'd0'; destbuf : POINTER location 'a1'; destlen : longword location 'd1'; strategy : longword location 'd2'; level : longword location 'd3'; VAR poutlen : longword location 'a2') : LONGINT; syscall ZLibBase 114;
+FUNCTION GZ_DecompressMem(srcbuf : POINTER location 'a0'; srclen : longword location 'd0'; destbuf : POINTER location 'a1'; destlen : longword location 'd1') : LONGINT; syscall ZLibBase 120;
+FUNCTION GZ_FGetC(handle : POINTER location 'a0') : pLONGINT; syscall ZLibBase 060;
+FUNCTION GZ_FGetS(handle : POINTER location 'a0'; buf : pCHAR location 'a1'; len : longword location 'd0') : pCHAR; syscall ZLibBase 054;
+FUNCTION GZ_FileLength(handle : POINTER location 'a0') : longword; syscall ZLibBase 138;
+FUNCTION GZ_Open(filename : pCHAR location 'a0'; openmode : longword location 'd0'; strategy : longword location 'd1'; level : longword location 'd2') : POINTER; syscall ZLibBase 030;
+FUNCTION GZ_OpenFromFH(fh : LONGINT location 'a0'; openmode : longword location 'd0'; strategy : longword location 'd1'; level : longword location 'd2') : POINTER; syscall ZLibBase 036;
+FUNCTION GZ_Read(handle : POINTER location 'a0'; buf : POINTER location 'a1'; len : longword location 'd0') : LONGINT; syscall ZLibBase 048;
+FUNCTION GZ_Write(handle : POINTER location 'a0'; buf : POINTER location 'a1'; len : longword location 'd0') : LONGINT; syscall ZLibBase 066;
{You can remove this include and use a define instead}
{$I useautoopenlib.inc}
@@ -80,150 +74,9 @@ var
IMPLEMENTATION
{$ifndef dont_use_openlib}
-uses msgbox;
+uses amsgbox;
{$endif dont_use_openlib}
-FUNCTION GZ_Close(handle : POINTER) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L handle,A0
- MOVEA.L ZLibBase,A6
- JSR -042(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GZ_CompressMem(srcbuf : POINTER; srclen : longword; destbuf : POINTER; destlen : longword; strategy : longword; level : longword; VAR poutlen : longword) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L srcbuf,A0
- MOVE.L srclen,D0
- MOVEA.L destbuf,A1
- MOVE.L destlen,D1
- MOVE.L strategy,D2
- MOVE.L level,D3
- MOVEA.L poutlen,A2
- MOVEA.L ZLibBase,A6
- JSR -114(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GZ_DecompressMem(srcbuf : POINTER; srclen : longword; destbuf : POINTER; destlen : longword) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L srcbuf,A0
- MOVE.L srclen,D0
- MOVEA.L destbuf,A1
- MOVE.L destlen,D1
- MOVEA.L ZLibBase,A6
- JSR -120(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GZ_FGetC(handle : POINTER) : pLONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L handle,A0
- MOVEA.L ZLibBase,A6
- JSR -060(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GZ_FGetS(handle : POINTER; buf : pCHAR; len : longword) : pCHAR;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L handle,A0
- MOVEA.L buf,A1
- MOVE.L len,D0
- MOVEA.L ZLibBase,A6
- JSR -054(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GZ_FileLength(handle : POINTER) : longword;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L handle,A0
- MOVEA.L ZLibBase,A6
- JSR -138(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GZ_Open(filename : pCHAR; openmode : longword; strategy : longword; level : longword) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L filename,A0
- MOVE.L openmode,D0
- MOVE.L strategy,D1
- MOVE.L level,D2
- MOVEA.L ZLibBase,A6
- JSR -030(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GZ_OpenFromFH(fh : LONGINT; openmode : longword; strategy : longword; level : longword) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L fh,A0
- MOVE.L openmode,D0
- MOVE.L strategy,D1
- MOVE.L level,D2
- MOVEA.L ZLibBase,A6
- JSR -036(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GZ_Read(handle : POINTER; buf : POINTER; len : longword) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L handle,A0
- MOVEA.L buf,A1
- MOVE.L len,D0
- MOVEA.L ZLibBase,A6
- JSR -048(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-FUNCTION GZ_Write(handle : POINTER; buf : POINTER; len : longword) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L handle,A0
- MOVEA.L buf,A1
- MOVE.L len,D0
- MOVEA.L ZLibBase,A6
- JSR -066(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
const
{ Change VERSION and LIBVERSION to proper values }
diff --git a/packages/amunits/src/utilunits/Makefile b/packages/amunits/src/utilunits/Makefile
index 98c9f0dd8c..bc4615f249 100644
--- a/packages/amunits/src/utilunits/Makefile
+++ b/packages/amunits/src/utilunits/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=amunits
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_UNITS+=amigautils consoleio deadkeys doublebuffer easyasl hisoft linklist longarray msgbox pastoc pcq systemvartags tagsarray timerutils vartags wbargs
endif
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=amigautils consoleio deadkeys doublebuffer easyasl hisoft linklist longarray msgbox pastoc pcq systemvartags tagsarray timerutils vartags wbargs
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=amigautils consoleio deadkeys doublebuffer easyasl hisoft linklist longarray msgbox pastoc pcq systemvartags tagsarray timerutils vartags wbargs
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=amigautils consoleio deadkeys doublebuffer easyasl hisoft linklist longarray msgbox pastoc pcq systemvartags tagsarray timerutils vartags wbargs
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=amigautils consoleio deadkeys doublebuffer easyasl hisoft linklist longarray msgbox pastoc pcq systemvartags tagsarray timerutils vartags wbargs
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=amigautils consoleio deadkeys doublebuffer easyasl hisoft linklist longarray msgbox pastoc pcq systemvartags tagsarray timerutils vartags wbargs
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=amigautils consoleio deadkeys doublebuffer easyasl hisoft linklist longarray msgbox pastoc pcq systemvartags tagsarray timerutils vartags wbargs
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=amigautils consoleio deadkeys doublebuffer easyasl hisoft linklist longarray msgbox pastoc pcq systemvartags tagsarray timerutils vartags wbargs
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=amigautils consoleio deadkeys doublebuffer easyasl hisoft linklist longarray msgbox pastoc pcq systemvartags tagsarray timerutils vartags wbargs
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=amigautils consoleio deadkeys doublebuffer easyasl hisoft linklist longarray msgbox pastoc pcq systemvartags tagsarray timerutils vartags wbargs
endif
@@ -613,6 +628,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=../inc
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=../inc
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=../inc
endif
@@ -700,6 +718,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=../inc
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=../inc
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=../inc
endif
@@ -754,6 +775,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_INCLUDEDIR+=../inc
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_INCLUDEDIR+=../inc
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_INCLUDEDIR+=../inc
endif
@@ -835,6 +859,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_UNITDIR+=../units
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_UNITDIR+=../units
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_UNITDIR+=../units
endif
@@ -922,6 +949,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_UNITDIR+=../units
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_UNITDIR+=../units
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_UNITDIR+=../units
endif
@@ -976,6 +1006,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_UNITDIR+=../units
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_UNITDIR+=../units
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_UNITDIR+=../units
endif
@@ -1057,6 +1090,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=.
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=.
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=.
endif
@@ -1144,6 +1180,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=.
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=.
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=.
endif
@@ -1198,6 +1237,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_SOURCEDIR+=.
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_SOURCEDIR+=.
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_SOURCEDIR+=.
endif
@@ -1452,6 +1494,12 @@ 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=
@@ -1497,6 +1545,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1918,6 +1971,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -2005,6 +2061,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -2059,6 +2118,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
endif
@@ -2222,7 +2284,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2252,17 +2314,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/amunits/src/utilunits/Makefile.fpc b/packages/amunits/src/utilunits/Makefile.fpc
index 914aa53286..a504d2af18 100644
--- a/packages/amunits/src/utilunits/Makefile.fpc
+++ b/packages/amunits/src/utilunits/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=amunits
-version=2.7.1
+version=3.1.1
[target]
units=amigautils consoleio deadkeys doublebuffer easyasl hisoft \
diff --git a/packages/amunits/src/utilunits/amigautils.pas b/packages/amunits/src/utilunits/amigautils.pas
index 3db73c142a..d9f4df022d 100644
--- a/packages/amunits/src/utilunits/amigautils.pas
+++ b/packages/amunits/src/utilunits/amigautils.pas
@@ -78,47 +78,11 @@ Type
fib_Reserved : Array [0..31] of Char;
end;
-{$PACKRECORDS NORMAL}
+{$PACKRECORDS 2}
-FUNCTION Examine(lock : LONGINT; fileInfoBlock : pFileInfoBlock) : BOOLEAN;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVE.L fileInfoBlock,D2
- MOVEA.L _DOSBase,A6
- JSR -102(A6)
- MOVEA.L (A7)+,A6
- TST.L D0
- BEQ.B @end
- MOVEQ #1,D0
- @end: MOVE.B D0,@RESULT
- END;
-END;
-
-FUNCTION Lock(name : pCHAR; type_ : LONGINT) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L name,D1
- MOVE.L type_,D2
- MOVEA.L _DOSBase,A6
- JSR -084(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE UnLock(lock : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVE.L lock,D1
- MOVEA.L _DOSBase,A6
- JSR -090(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
+FUNCTION Examine(lock : LONGINT location 'd1'; fileInfoBlock : pFileInfoBlock location 'd2') : LongBool; syscall _DOSBase 102;
+FUNCTION Lock(name : pCHAR location 'd1'; type_ : LONGINT location 'd2') : LONGINT; syscall _DOSBase 084;
+PROCEDURE UnLock(lock : LONGINT location 'd1'); syscall _DOSBase 090;
FUNCTION PCharCopy(s: PChar; thepos , len : Longint): PChar;
VAR
diff --git a/packages/amunits/src/utilunits/msgbox.pas b/packages/amunits/src/utilunits/amsgbox.pas
index fcafe3e6f0..8249f6937f 100644
--- a/packages/amunits/src/utilunits/msgbox.pas
+++ b/packages/amunits/src/utilunits/amsgbox.pas
@@ -21,13 +21,9 @@
nils.sjoholm@mailbox.swipnet.se Nils Sjoholm
}
+{$PACKRECORDS 2}
-{$I useamigasmartlink.inc}
-{$ifdef use_amiga_smartlink}
- {$smartlink on}
-{$endif use_amiga_smartlink}
-
-unit MsgBox;
+unit AMsgBox;
interface
@@ -49,20 +45,8 @@ type
es_GadgetFormat : pchar; { 'printf' style formatting string }
END;
-FUNCTION EasyRequestArgs(window : pointer; easyStruct : pEasyStruct; idcmpPtr : longint; args : POINTER) : LONGINT;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L window,A0
- MOVEA.L easyStruct,A1
- MOVEA.L idcmpPtr,A2
- MOVEA.L args,A3
- MOVEA.L _IntuitionBase,A6
- JSR -588(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
+
+FUNCTION EasyRequestArgs(window : pointer location 'a0'; easyStruct : pEasyStruct location 'a1'; idcmpPtr : longint location 'a2'; args : POINTER location 'a3') : LONGINT; syscall _IntuitionBase 588;
FUNCTION MessageBox(tit,txt,gad:string) : LONGint;
begin
diff --git a/packages/amunits/src/utilunits/doublebuffer.pas b/packages/amunits/src/utilunits/doublebuffer.pas
index 5c55649542..ee7f0f01be 100644
--- a/packages/amunits/src/utilunits/doublebuffer.pas
+++ b/packages/amunits/src/utilunits/doublebuffer.pas
@@ -67,7 +67,7 @@ unit doublebuffer;
interface
-uses exec, intuition, graphics;
+uses exec, intuition, agraphics;
{
OpenDoubleBuffer opens the Screen described in "ns" without
diff --git a/packages/amunits/src/utilunits/easyasl.pas b/packages/amunits/src/utilunits/easyasl.pas
index 4f44547b29..0943c5b524 100644
--- a/packages/amunits/src/utilunits/easyasl.pas
+++ b/packages/amunits/src/utilunits/easyasl.pas
@@ -142,7 +142,7 @@ BEGIN
fr := AllocAslRequest(ASL_FileRequest,@mytags);
IF fr <> NIL THEN BEGIN
- IF AslRequest(fr,NIL) THEN BEGIN
+ IF AslRequest(fr,NIL) <> 0 THEN BEGIN
IF (strlen(fr^.rf_Dir) >0) and (strlen(fr^.rf_File) > 0) THEN begin
strcopy(path,fr^.rf_Dir);
strcopy(fname,fr^.rf_File);
@@ -248,7 +248,7 @@ BEGIN
fr := AllocAslRequest(ASL_FontRequest,@mytags);
IF fr <> NIL THEN BEGIN
- IF AslRequest(fr,NIL) THEN BEGIN
+ IF AslRequest(fr,NIL) <> 0 THEN BEGIN
WITH finfo DO BEGIN
nfi_Name := strpas(fr^.fo_Attr.ta_Name);
nfi_Size := fr^.fo_Attr.ta_YSize;
@@ -322,7 +322,7 @@ BEGIN
fr := AllocAslRequest(ASL_FileRequest,@mytags);
IF fr <> NIL THEN BEGIN
- IF AslRequest(fr,NIL) THEN BEGIN
+ IF AslRequest(fr,NIL) <> 0 THEN BEGIN
IF (strlen(fr^.rf_Dir) >0) THEN begin
strcopy(path,fr^.rf_Dir);
result := true;
@@ -382,7 +382,7 @@ BEGIN
fr := AllocAslRequest(ASL_FileRequest,@mytags);
IF fr <> NIL THEN BEGIN
- IF AslRequest(fr,NIL) THEN BEGIN
+ IF AslRequest(fr,NIL) <> 0 THEN BEGIN
IF (strlen(fr^.rf_Dir) >0) THEN begin
strcopy(path,fr^.rf_Dir);
result := true;
@@ -445,7 +445,7 @@ BEGIN
fr := AllocAslRequest(ASL_FileRequest,@mytags);
IF fr <> NIL THEN BEGIN
- IF AslRequest(fr,NIL) THEN BEGIN
+ IF AslRequest(fr,NIL) <> 0 THEN BEGIN
IF (strlen(fr^.rf_Dir) >0) and (strlen(fr^.rf_File) > 0) THEN begin
strcopy(path,fr^.rf_Dir);
strcopy(fname,fr^.rf_File);
diff --git a/packages/amunits/src/utilunits/pastoc.pas b/packages/amunits/src/utilunits/pastoc.pas
index a4a111fca5..1264515c43 100644
--- a/packages/amunits/src/utilunits/pastoc.pas
+++ b/packages/amunits/src/utilunits/pastoc.pas
@@ -27,8 +27,28 @@
{$smartlink on}
{$endif use_amiga_smartlink}
-unit PasToC;
+{
+ This unit must be deprecated because at least:
+ - It is leaking memory. It allocates a new buffer for each string which won't
+ be freed until the program exits.
+ - The unit doesn't provide any way to free allocated string buffers manually.
+ (Because ReleasePas2C is not a public function.)
+ - It does allocations outside the Pascal heap, which the compiler has no control
+ over, and makes it very hard to track these allocations, because the heaptrc
+ unit doesn't work.
+ - The intuition.library documentation states that AllocRemember() is a quite
+ ineffective function, because it does two memory allocations and because it
+ doesn't use memory pools it has a terrible effect on memory fragmentation.
+ - It uses a for loop byte to copy the string contents, which is very slow.
+ - It uses a global handle without any protection, therefore it's not thread safe.
+ - The strings unit provide equivalent functionality, without the leaking problem.
+ - Because of the above reasons, this unit will be removed as soon as nothing
+ else in the AmUnits package and among the examples depend on it.
+ (KB)
+}
+unit PasToC
+ deprecated 'Pas2C function is leaking memory, don''t use it. StrPCopy in strings unit provides equivalent functionality.';
interface
@@ -57,31 +77,8 @@ var
myrememberkey : pRemember;
remember_exit : pointer;
-FUNCTION fpcAllocRemember(VAR rememberKey : pRemember; size : ULONG; flags : ULONG) : POINTER;
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rememberKey,A0
- MOVE.L size,D0
- MOVE.L flags,D1
- MOVEA.L _IntuitionBase,A6
- JSR -396(A6)
- MOVEA.L (A7)+,A6
- MOVE.L D0,@RESULT
- END;
-END;
-
-PROCEDURE fpcFreeRemember(VAR rememberKey : pRemember; reallyForget : LONGINT);
-BEGIN
- ASM
- MOVE.L A6,-(A7)
- MOVEA.L rememberKey,A0
- MOVE.L reallyForget,D0
- MOVEA.L _IntuitionBase,A6
- JSR -408(A6)
- MOVEA.L (A7)+,A6
- END;
-END;
+FUNCTION fpcAllocRemember(VAR rememberKey : pRemember location 'a0'; size : ULONG location 'd0'; flags : ULONG location 'd1') : POINTER; syscall _IntuitionBase 396;
+PROCEDURE fpcFreeRemember(VAR rememberKey : pRemember location 'a0'; reallyForget : LONGINT location 'd0'); syscall _IntuitionBase 408;
Function StringPcharCopy(Dest: PChar; Source: String):PChar;
var
diff --git a/packages/amunits/src/utilunits/systemvartags.pas b/packages/amunits/src/utilunits/systemvartags.pas
index f1bb906d19..5755420b27 100644
--- a/packages/amunits/src/utilunits/systemvartags.pas
+++ b/packages/amunits/src/utilunits/systemvartags.pas
@@ -26,7 +26,7 @@ unit systemvartags;
interface
uses exec,amigados, amigaguide, asl, bullet, intuition, datatypes ,
- gadtools, graphics, locale, lowlevel, realtime,
+ gadtools, agraphics, locale, lowlevel, realtime,
workbench, utility, tagsarray;
{ As of today boolean and char doesn't function in
@@ -232,7 +232,7 @@ end;
FUNCTION AslRequestTags(requester : POINTER; Const argv : Array Of Const) : BOOLEAN;
begin
- AslRequestTags := AslRequest(requester,readintags(argv));
+ AslRequestTags := AslRequest(requester,readintags(argv)) <> 0;
end;
FUNCTION ObtainInfo(glyphEngine : pGlyphEngine; Const argv : Array Of Const) : ULONG;
diff --git a/packages/amunits/src/utilunits/tagsarray.pas b/packages/amunits/src/utilunits/tagsarray.pas
index 5285f4c94d..ff5c857417 100644
--- a/packages/amunits/src/utilunits/tagsarray.pas
+++ b/packages/amunits/src/utilunits/tagsarray.pas
@@ -14,58 +14,98 @@
**********************************************************************}
-{
- History:
-
- First version of this unit.
- Just use this unit when you want to
- use taglist.
-
- 09 Nov 2002
-
- nils.sjoholm@mailbox.swipnet.se
-}
-
unit tagsarray;
-{$mode objfpc}
-
+{$mode objfpc}{$H+}
interface
-uses Exec, Utility;
+uses
+ Exec, Utility;
+
+type
+ TTagsList = array of ttagitem;
+ PMyTags = ^TTagsList;
-function readintags(const args : array of const): pTagItem;
+function ReadInTags(const Args: array of const): PTagItem;
+procedure AddTags(var Taglist: TTagsList; const Args: array of const);
+function GetTagPtr(var TagList: TTagsList): PTagItem;
implementation
-uses pastoc;
+var
+ MyTags: PMyTags;
+procedure AddTags(var Taglist: TTagsList; const Args: array of const);
var
- mytags : array [0..200] of ttagitem;
+ i: PtrInt;
+ ii: PtrInt;
+begin
+ ii := Length(TagList);
+ SetLength(TagList, Length(TagList) + (Length(args) DIV 2));
+ for i := 0 to High(args) do
+ begin
+ if (not Odd(i)) then
+ begin
+ TagList[ii].ti_tag := PtrInt(Args[i].vinteger);
+ end else
+ begin
+ case Args[i].vtype of
+ vtinteger : TagList[ii].ti_data := PtrInt(Args[i].vinteger);
+ vtboolean : TagList[ii].ti_data := PtrInt(byte(Args[i].vboolean));
+ vtpchar : TagList[ii].ti_data := PtrInt(Args[i].vpchar);
+ vtchar : TagList[ii].ti_data := PtrInt(Args[i].vchar);
+ vtstring : TagList[ii].ti_data := PtrInt(PChar(string(Args[i].vstring^)));
+ vtpointer : TagList[ii].ti_data := PtrInt(Args[i].vpointer);
+ end;
+ inc(ii);
+ end;
+ end;
+end;
+
+function GetTagPtr(var TagList: TTagsList): pTagItem;
+begin
+ AddTags(TagList, [TAG_END, TAG_END]);
+ GetTagPtr := @(TagList[0]);
+end;
-function readintags(const args : array of const): pTagItem;
+function ReadInTags(const Args: array of const): PTagItem;
var
- i : longint;
- ii : longint;
+ i: PtrInt;
+ ii: PtrInt;
begin
- ii := 0;
- for i := 0 to high(args) do begin
- if (not odd(i)) then begin
- mytags[ii].ti_tag := longint(Args[i].vinteger);
- end else begin
- case Args[i].vtype of
- vtinteger : mytags[ii].ti_data := longint(Args[i].vinteger);
- vtboolean : mytags[ii].ti_data := longint(byte(Args[i].vboolean));
- vtpchar : mytags[ii].ti_data := longint(Args[i].vpchar);
- vtchar : mytags[ii].ti_data := longint(Args[i].vchar);
- vtstring : mytags[ii].ti_data := longint(pas2c(Args[i].vstring^));
- vtpointer : mytags[ii].ti_data := longint(Args[i].vpointer);
- end;
- inc(ii);
- end;
+ ii := 0;
+ SetLength(MyTags^, (Length(Args) div 2) + 4); // some more at the end
+ for i := 0 to High(Args) do
+ begin
+ if not Odd(i) then
+ begin
+ mytags^[ii].ti_tag := PtrInt(Args[i].vinteger);
+ end else
+ begin
+ case Args[i].vtype of
+ vtinteger: mytags^[ii].ti_data := PtrInt(Args[i].vinteger);
+ vtboolean: mytags^[ii].ti_data := PtrInt(Byte(Args[i].vboolean));
+ vtpchar: mytags^[ii].ti_data := PtrInt(Args[i].vpchar);
+ vtchar: mytags^[ii].ti_data := PtrInt(Args[i].vchar);
+ vtstring: mytags^[ii].ti_data := PtrInt(PChar(string(Args[i].vstring^)));
+ vtpointer: mytags^[ii].ti_data := PtrInt(Args[i].vpointer);
+ end;
+ Inc(ii);
end;
- readintags := @mytags;
+ end;
+ Inc(ii);
+ // Add additional TAG_DONE (if user forget)
+ mytags^[ii].ti_tag := TAG_DONE;
+ mytags^[ii].ti_data := 0;
+ // return the pointer
+ ReadInTags := @(MyTags^[0]);
end;
+initialization
+ New(MyTags);
+ SetLength(MyTags^, 200);
+finalization
+ SetLength(MyTags^, 0);
+ Dispose(MyTags);
end.
diff --git a/packages/arosunits/Makefile b/packages/arosunits/Makefile
new file mode 100644
index 0000000000..1526720c86
--- /dev/null
+++ b/packages/arosunits/Makefile
@@ -0,0 +1,2407 @@
+#
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
+#
+default: all
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
+UNIXs = linux $(BSDs) solaris qnx haiku aix
+LIMIT83fs = go32v2 os2 emx watcom msdos
+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),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
+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 units)),)
+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 units)),)
+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 units)),)
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+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
+ifeq ($(CPU_TARGET),mipsel)
+BINUTILSPREFIX=mipsel-linux-android-
+endif
+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 $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
+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=arosunits
+override PACKAGE_VERSION=3.1.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
+BATCHEXT=.bat
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+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=
+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
+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-qnx)
+REQUIRE_PACKAGES_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-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),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-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),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-embedded)
+REQUIRE_PACKAGES_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-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-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-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),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-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
+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)
+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)
+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
+ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
+ifeq ($(CPU_TARGET),i386)
+FPCCPUOPT:=-OG2p3
+endif
+ifeq ($(CPU_TARGET),powerpc)
+FPCCPUOPT:=-O1r
+endif
+else
+FPCCPUOPT:=-O2
+endif
+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),)
+ifeq ($(CPU_TARGET),x86_64)
+override FPCOPT+=-Cg
+endif
+endif
+ifdef LINKSHARED
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+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
+override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
+ifneq ($(UNITTARGETDIRPREFIX),)
+override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
+override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
+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: $(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)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
+endif
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
+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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *$(ASMEXT) *_ppas$(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
+ -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+ -$(DEL) *.o *.ppu *.a
+endif
+ -$(DELTREE) *$(SMARTEXT)
+ -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *_ppas$(BATCHEXT)
+ifdef AOUTEXT
+ -$(DEL) *$(AOUTEXT)
+endif
+ifdef DEBUGSYMEXT
+ -$(DEL) *$(DEBUGSYMEXT)
+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))
+ifdef FPMAKEOPT
+FPMAKE_OPT+=$(FPMAKEOPT)
+endif
+FPMAKE_OPT+=--localunitdir=../..
+FPMAKE_OPT+=--globalunitdir=..
+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/packages/arosunits/Makefile.fpc b/packages/arosunits/Makefile.fpc
new file mode 100644
index 0000000000..5b0e60a70c
--- /dev/null
+++ b/packages/arosunits/Makefile.fpc
@@ -0,0 +1,100 @@
+#
+# Makefile.fpc for running fpmake
+#
+
+[package]
+name=arosunits
+version=3.1.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))
+# Compose general fpmake-parameters
+ifdef FPMAKEOPT
+FPMAKE_OPT+=$(FPMAKEOPT)
+endif
+FPMAKE_OPT+=--localunitdir=../..
+FPMAKE_OPT+=--globalunitdir=..
+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/packages/arosunits/Makefile.fpc.fpcmake b/packages/arosunits/Makefile.fpc.fpcmake
new file mode 100644
index 0000000000..7514d6b909
--- /dev/null
+++ b/packages/arosunits/Makefile.fpc.fpcmake
@@ -0,0 +1,25 @@
+#
+# Makefile.fpc for Free Pascal AROS units Bindings
+#
+
+[package]
+name=arosunits
+version=3.1.1
+
+[target]
+units= agraphics amigados exec hardware inputevent intuition keymap layers \
+ longarray tagsarray timer utility diskfont iffparse clipboard \
+ workbench icon gadtools asl mui
+
+[compiler]
+includedir=src
+sourcedir=src
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[rules]
+.NOTPARALLEL:
diff --git a/packages/arosunits/fpmake.pp b/packages/arosunits/fpmake.pp
new file mode 100644
index 0000000000..bfd1f083e3
--- /dev/null
+++ b/packages/arosunits/fpmake.pp
@@ -0,0 +1,60 @@
+{$ifndef ALLPACKAGES}
+{$mode objfpc}{$H+}
+program fpmake;
+
+uses fpmkunit;
+
+Var
+ P : TPackage;
+ T : TTarget;
+begin
+ With Installer do
+ begin
+{$endif ALLPACKAGES}
+
+ P:=AddPackage('arosunits');
+{$ifdef ALLPACKAGES}
+ P.Directory:=ADirectory;
+{$endif ALLPACKAGES}
+ P.Version:='3.1.1';
+
+ P.Author := 'Marcus Sackrow';
+ P.License := 'LGPL with modification';
+ P.HomepageURL := 'www.freepascal.org';
+ P.Email := '';
+ P.Description := 'A set of units for AROS. Currently i386 only';
+ P.NeedLibC:= false;
+
+ P.CPUs:=[i386];
+ P.OSes:=[aros];
+
+ P.SourcePath.Add('src');
+ P.IncludePath.Add('src');
+
+ T:=P.Targets.AddUnit('agraphics.pas');
+ T:=P.Targets.AddUnit('amigados.pas');
+ T:=P.Targets.AddUnit('exec.pas');
+ T:=P.Targets.AddUnit('hardware.pas');
+ T:=P.Targets.AddUnit('inputevent.pas');
+ T:=P.Targets.AddUnit('intuition.pas');
+ T:=P.Targets.AddUnit('keymap.pas');
+ T:=P.Targets.AddUnit('layers.pas');
+ T:=P.Targets.AddUnit('longarray.pas');
+ T:=P.Targets.AddUnit('tagsarray.pas');
+ T:=P.Targets.AddUnit('timer.pas');
+ T:=P.Targets.AddUnit('utility.pas');
+ T:=P.Targets.AddUnit('diskfont.pas');
+ T:=P.Targets.AddUnit('iffparse.pas');
+ T:=P.Targets.AddUnit('clipboard.pas');
+ T:=P.Targets.AddUnit('workbench.pas');
+ T:=P.Targets.AddUnit('icon.pas');
+ T:=P.Targets.AddUnit('gadtools.pas');
+ T:=P.Targets.AddUnit('asl.pas');
+ T:=P.Targets.AddUnit('mui.pas');
+ T:=P.Targets.AddUnit('cybergraphics.pas');
+
+{$ifndef ALLPACKAGES}
+ Run;
+ end;
+end.
+{$endif ALLPACKAGES}
diff --git a/packages/arosunits/src/agraphics.pas b/packages/arosunits/src/agraphics.pas
new file mode 100644
index 0000000000..d9953a42d8
--- /dev/null
+++ b/packages/arosunits/src/agraphics.pas
@@ -0,0 +1,2484 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ graphics.library 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.
+
+ **********************************************************************}
+
+unit agraphics;
+
+{$mode delphi}{$H+}
+
+Interface
+
+uses
+ Exec, Hardware, Utility;
+
+{$PACKRECORDS C}
+const
+ BITSET = $8000;
+ BITCLR = 0;
+
+type
+ TPlanePtr = PByte;
+
+ PPoint = ^TPoint;
+ TPoint = record
+ x, y: SmallInt;
+ end;
+
+ PBitMap = ^TBitMap;
+ TBitMap = record
+ BytesPerRow: Word;
+ Rows: Word;
+ Flags: Byte;
+ Depth: Byte;
+ Pad: Word;
+ Planes: array[0..7] of TPlanePtr;
+ end;
+
+ PRectangle = ^TRectangle;
+ TRectangle = record
+ MinX,
+ MinY: SmallInt;
+ MaxX,
+ MaxY: SmallInt;
+ end;
+
+ PRect32 = ^TRect32;
+ TRect32 = record
+ MinX,
+ MinY: Longint;
+ MaxX,
+ MaxY: Longint;
+ end;
+
+type
+// a structure to contain the 16 collision procedure addresses }
+ PCollTable = ^TCollTable;
+ TCollTable = array[0..15] of Pointer;
+
+// flags for AllocBitMap, etc.
+const
+ BMB_CLEAR = 0;
+ BMB_DISPLAYABLE = 1;
+ BMB_INTERLEAVED = 2;
+ BMB_STANDARD = 3;
+ BMB_MINPLANES = 4;
+ BMB_SPECIALFMT = 7; // CyberGfx Flag
+
+ BMF_CLEAR = 1 shl BMB_CLEAR;
+ BMF_DISPLAYABLE = 1 shl BMB_DISPLAYABLE;
+ BMF_INTERLEAVED = 1 shl BMB_INTERLEAVED;
+ BMF_STANDARD = 1 shl BMB_STANDARD;
+ BMF_MINPLANES = 1 shl BMB_MINPLANES;
+ BMF_SPECIALFMT = 1 shl BMB_SPECIALFMT;
+
+ BMB_PIXFMT_SHIFTUP = 24;
+
+ BMF_REQUESTVMEM = BMF_DISPLAYABLE or BMF_MINPLANES;
+// AmigaOS v4 flags
+ BMB_HIJACKED = 7;
+ BMF_HIJACKED = 1 shl 7;
+ BMB_RTGTAGS = 8;
+ BMF_RTGTAGS = 1 shl 8;
+ BMB_RTGCHECK = 9;
+ BMF_RTGCHECK = 1 shl 9;
+ BMB_FRIENDISTAG = 10;
+ BMF_FRIENDISTAG = 1 shl 10;
+ BMB_INVALID = 11;
+ BMF_INVALID = 1 shl 11;
+
+ BMF_CHECKVALUE = BMF_RTGTAGS or BMF_RTGCHECK or BMF_FRIENDISTAG;
+ BMF_CHECKMASK = BMF_HIJACKED or BMF_CHECKVALUE or BMF_INVALID;
+
+// tags for AllocBitMap */
+ BMATags_Friend = TAG_USER + 0;
+ BMATags_Depth = TAG_USER + 1;
+ BMATags_RGBFormat = TAG_USER + 2;
+ BMATags_Clear = TAG_USER + 3;
+ BMATags_Displayable = TAG_USER + 4;
+ BMATags_Private1 = TAG_USER + 5;
+ BMATags_NoMemory = TAG_USER + 6;
+ BMATags_NoSprite = TAG_USER + 7;
+ BMATags_Private2 = TAG_USER + 8;
+ BMATags_Private3 = TAG_USER + 9;
+ BMATags_ModeWidth = TAG_USER + 10;
+ BMATags_ModeHeight = TAG_USER + 11;
+ BMATags_RenderFunc = TAG_USER + 12;
+ BMATags_SaveFunc = TAG_USER + 13;
+ BMATags_UserData = TAG_USER + 14;
+ BMATags_Alignment = TAG_USER + 15;
+ BMATags_ConstantBytesPerRow = TAG_USER + 16;
+ BMATags_UserPrivate = TAG_USER + 17;
+ BMATags_Private4 = TAG_USER + 18;
+ BMATags_Private5 = TAG_USER + 19;
+ BMATags_Private6 = TAG_USER + 20;
+ BMATags_Private7 = TAG_USER + 21;
+ BMATags_BitmapColors = TAG_USER + $29;
+ BMATags_DisplayID = TAG_USER + $32;
+ BMATags_BitmapInvisible = TAG_USER + $37;
+ BMATags_BitmapColors32 = TAG_USER + $43;
+// the following IDs are for GetBitMapAttr() *}
+ BMA_HEIGHT = 0;
+ BMA_DEPTH = 4;
+ BMA_WIDTH = 8;
+ BMA_FLAGS = 12;
+
+type
+ PRegionRectangle = ^TRegionRectangle;
+ TRegionRectangle = record
+ Next, Prev: PRegionRectangle;
+ Bounds: TRectangle;
+ end;
+
+ PRegion = ^TRegion;
+ TRegion = record
+ Bounds: TRectangle;
+ RegionRectangle: PRegionRectangle;
+ end;
+
+const
+
+// internal TClipRect flags
+ CR_NEEDS_NO_CONCEALED_RASTERS = 1;
+ CR_NEEDS_NO_LAYERBLIT_DAMAGE = 2;
+
+// defines for code values for getcode
+ ISLESSX = 1 shl 0;
+ ISLESSY = 1 shl 1;
+ ISGRTRX = 1 shl 2;
+ ISGRTRY = 1 shl 3;
+
+type
+// TextAttr node, matches text attributes in RastPort
+ PTextAttr = ^TTextAttr;
+ TTextAttr = record
+ ta_Name: STRPTR; // name of the font
+ ta_YSize: Word; // height of the font
+ ta_Style: Byte; // intrinsic font style
+ ta_Flags: Byte; // font preferences and flags
+ end;
+// like TextAttr + Tags
+ PTTextAttr = ^TTTextAttr;
+ TTTextAttr = record
+ tta_Name: STRPTR; // name of the font
+ tta_YSize: Word; // height of the font
+ tta_Style: Byte; // intrinsic font style
+ tta_Flags: Byte; // font preferences and flags
+ tta_Tags: pTagItem; // TTextAttr specific extension -> extended attributes
+ end;
+
+const
+// ta_Style/tta_Style
+ FS_NORMAL = 0; // normal text (no style bits set)
+ FSB_UNDERLINED = 0; // underlined (under baseline)
+ FSF_UNDERLINED = 1 shl 0;
+ FSB_BOLD = 1; // bold face text (ORed w/ shifted)
+ FSF_BOLD = 1 shl 1;
+ FSB_ITALIC = 2; // italic (slanted 1:2 right)
+ FSF_ITALIC = 1 shl 2;
+ FSB_EXTENDED = 3; // extended face (wider than normal)
+ FSF_EXTENDED = 1 shl 3;
+ FSB_COLORFONT = 6; // this uses ColorTextFont structure
+ FSF_COLORFONT = 1 shl 6;
+ FSB_TAGGED = 7; // the TextAttr is really an TTextAttr
+ FSF_TAGGED = 1 shl 7;
+// ta_Flags/tta_Flags
+ FPB_ROMFONT = 0; // font is in rom
+ FPF_ROMFONT = 1 shl 0;
+ FPB_DISKFONT = 1; // font is from diskfont.library
+ FPF_DISKFONT = 1 shl 1;
+ FPB_REVPATH = 2; // designed path is reversed (e.g. left)
+ FPF_REVPATH = 1 shl 2;
+ FPB_TALLDOT = 3; // designed for hires non-interlaced
+ FPF_TALLDOT = 1 shl 3;
+ FPB_WIDEDOT = 4; // designed for lores interlaced
+ FPF_WIDEDOT = 1 shl 4;
+ FPB_PROPORTIONAL = 5; //character sizes can vary from nominal
+ FPF_PROPORTIONAL = 1 shl 5;
+ FPB_DESIGNED = 6; // size is "designed", not constructed
+ FPF_DESIGNED = 1 shl 6;
+ FPB_REMOVED = 7; // the font has been removed
+ FPF_REMOVED = 1 shl 7;
+// tta_Tags
+ TA_DeviceDPI = TAG_USER + 1; // Tag value is Point union: Hi Longint XDPI, Lo Longint YDPI
+
+ MAXFONTMATCHWEIGHT = 32767; { perfect match from WeighTAMatch }
+
+type
+ PTextFont = ^TTextFont;
+ TTextFont = record
+ tf_Message: TMessage; // reply message for font removal
+ // font name in LN \ used in this
+ tf_YSize: Word; // font height | order to best
+ tf_Style: Byte; // font style | match a font
+ tf_Flags: Byte; // preferences and flags / request.
+ tf_XSize: Word; // nominal font width
+ tf_Baseline: Word; // distance from the top of char to baseline
+ tf_BoldSmear: Word; // smear to affect a bold enhancement
+ tf_Accessors: Word; // access count
+ tf_LoChar: Byte; // the first character described here
+ tf_HiChar: Byte; // the last character described here
+ tf_CharData: APTR; // the bit character data
+ tf_Modulo: Word; // the row modulo for the strike font data
+ tf_CharLoc: APTR; // ptr to location data for the strike font 2 words: bit offset then size
+ tf_CharSpace: APTR; // ptr to words of proportional spacing data
+ tf_CharKern: APTR; // ptr to words of kerning data
+ //property tf_extension: PMsgPort read tf_Message.mn_ReplyPort write tf_Message.mn_ReplyPort;
+ end;
+
+ PTextFontExtension = ^TTextFontExtension;
+ TTextFontExtension = record // this structure is read-only
+ tfe_MatchWord: Word; // a magic cookie for the extension
+ tfe_Flags0: Byte; // (system private flags)
+ tfe_Flags1: Byte; // (system private flags)
+
+ tfe_BackPtr: PTextFont; // validation of compilation
+ tfe_OrigReplyPort: PMsgPort; // original value in tf_Extension
+ tfe_Tags: PTagItem; // Text Tags for the font
+
+ tfe_OFontPatchS, // (system private use)
+ tfe_OFontPatchK: PWord; // (system private use)
+ // this space is reserved for future expansion
+ end;
+
+ PColorFontColors = ^TColorFontColors;
+ TColorFontColors = record
+ cfc_Reserved, // *must* be zero
+ cfc_Count: Word; // number of entries in cfc_ColorTable
+ cfc_ColorTable: PWord; // 4 bit per component color map packed xRGB
+ end;
+
+ PColorTextFont = ^TColorTextFont;
+ TColorTextFont = record
+ ctf_TF: TTextFont;
+
+ ctf_Flags: Word; // extended flags
+ ctf_Depth, // number of bit planes
+ ctf_FgColor, // color that is remapped to FgPen
+ ctf_Low, // lowest color represented here }
+ ctf_High, // highest color represented here }
+ ctf_PlanePick, // PlanePick ala Images }
+ ctf_PlaneOnOff: Byte; // PlaneOnOff ala Images
+
+ ctf_ColorFontColors: PColorFontColors; // colors for font
+
+ ctf_CharData: array[0..7] of APTR; // pointers to bit planes ala tf_CharData
+ end;
+
+ PTextExtent = ^TTextExtent;
+ TTextExtent = record
+ te_Width, // same as TextLength
+ te_Height: Word; // same as tf_YSize
+ te_Extent: TRectangle; // relative to CP
+ end;
+
+const
+// TColorTextFont.ctf_Flags
+ CTB_MAPCOLOR = 0; // map ctf_FgColor to the rp_FgPen IF it's
+ CTF_MAPCOLOR = 1 shl 0; // is a valid color within ctf_Low..ctf_High
+ CT_COLORFONT = 1 shl 0; // color map contains designer's colors
+ CT_GREYFONT = 1 shl 1; // color map describes even-stepped brightnesses from low to high
+ CT_ANTIALIAS = 1 shl 2; // zero background thru fully saturated char
+ CT_COLORMASK = $000F; // mask to get to following color styles
+
+// VSprite flags
+ // user-set VSprite flags:
+ VSPRITE = $0001; // set if VSprite, clear if Bob
+ SAVEBACK = $0002; // set if background is to be saved/restored
+ OVERLAY = $0004; // set to mask image of Bob onto background
+ MUSTDRAW = $0008; // set if VSprite absolutely must be drawn
+ SUSERFLAGS = $00FF; // mask of all user-settable VSprite-flags
+ // system-set VSprite flags:
+ BACKSAVED = $0100; // this Bob's background has been saved
+ BOBUPDATE = $0200; // temporary flag, useless to outside world
+ GELGONE = $0400; // set if gel is completely clipped (offscreen)
+ VSOVERFLOW = $0800; // VSprite overflow (if MUSTDRAW set we draw!)
+// Bob flags
+ // these are the user flag bits
+ SAVEBOB = $0001; // set to not erase Bob
+ BOBISCOMP = $0002; // set to identify Bob as AnimComp
+ BUSERFLAGS = $00FF; // mask of all user-settable Bob-flags
+ // these are the system flag bits
+ BWAITING = $0100; // set while Bob is waiting on 'after'
+ BDRAWN = $0200; // set when Bob is drawn this DrawG pass
+ BOBSAWAY = $0400; // set to initiate removal of Bob
+ BOBNIX = $0800; // set when Bob is completely removed
+ SAVEPRESERVE = $1000; // for back-restore during double-buffer
+ OUTSTEP = $2000; // for double-clearing if double-buffer
+// defines for the animation procedures
+ ANFRACSIZE = 6;
+ RINGTRIGGER = $0001;
+ ANIMHALF = $0020;
+
+type
+{ UserStuff definitions
+ the user can define these to be a single variable or a sub-structure
+ if undefined by the user, the system turns these into innocuous variables
+ see the manual for a thorough definition of the UserStuff definitions }
+ TVUserStuff = SmallInt; // Sprite user stuff
+ TBUserStuff = SmallInt; // Bob user stuff
+ TAUserStuff = SmallInt; // AnimOb user stuff
+
+ PBob = ^TBob;
+ PAnimOb = ^TAnimOb;
+ PAnimComp = ^TAnimComp;
+
+{ GEL draw list constructed in the order the Bobs are actually drawn, then
+ list is copied to clear list
+ must be here in VSprite for system boundary detection
+ the VSprite positions are defined in (y,x) order to make sorting
+ sorting easier, since (y,x) as a long Longint}
+ PVSprite = ^TVSprite;
+ TVSprite = record
+ // SYSTEM VARIABLES
+ NextVSprite: PVSprite; // GEL linked list forward/backward pointers sorted by y,x value
+ PrevVSprite: PVSprite;
+ DrawPath: PVSprite; // pointer of overlay drawing
+ ClearPath: PVSprite; // pointer for overlay clearing
+ OldY, OldX: SmallInt; // previous position
+ // COMMON VARIABLES
+ Flags: SmallInt; // VSprite flags
+ // COMMON VARIABLES
+ Y, X: SmallInt; // screen position
+ Height: SmallInt;
+ Width: SmallInt; // number of words per row of image data
+ Depth: SmallInt; // number of planes of data
+ MeMask: SmallInt; // which types can collide with this VSprite
+ HitMask: SmallInt; // which types this VSprite can collide with
+ ImageData: PSmallInt; // pointer to VSprite image
+ BorderLine: PSmallInt; // logical OR of all VSprite bits borderLine is the one-dimensional logical OR of all
+ // the VSprite bits, used for fast collision detection of edge
+ CollMask: PSmallInt; // similar to above except this is a matrix
+ //pointer to this VSprite's color definitions (not used by Bobs)
+ SprColors: PSmallInt;
+ VSBob: PBob; // points home if this VSprite is part of a Bob
+ PlanePick: Shortint; { planePick flag: set bit selects a plane from image, clear bit selects
+ use of shadow mask for that plane
+ OnOff flag: if using shadow mask to fill plane, this bit (corresponding
+ to bit in planePick) describes whether to fill with 0's or 1's
+ There are two uses for these flags:
+ - if this is the VSprite of a Bob, these flags describe how the Bob
+ is to be drawn into memory
+ - if this is a simple VSprite and the user intends on setting the
+ MUSTDRAW flag of the VSprite, these flags must be set too to describe
+ which color registers the user wants for the image}
+ PlaneOnOff: ShortInt;
+ VUserExt: TVUserStuff; // user definable: see note above
+ end;
+
+// dBufPacket defines the values needed to be saved across buffer to buffer when in double-buffer mode
+ PDBufPacket = ^TDBufPacket;
+ TDBufPacket = record
+ BufY,
+ BufX: SmallInt; // save other buffers screen coordinates
+ BufPath: PVSprite; // carry the draw path over the gap
+ BufBuffer: PSmallInt; // this pointer must be filled in by the user pointer to other buffer's background save buffer
+ end;
+
+// blitter-objects
+ TBob = record
+ // SYSTEM VARIABLES
+ // COMMON VARIABLES
+ Flags: SmallInt; // general purpose flags (see definitions below)
+ // USER VARIABLES
+ SaveBuffer: PSmallInt; // pointer to the buffer for background save
+ ImageShadow: PSmallInt; // used by Bobs for "cookie-cutting" and multi-plane masking
+ Before: PBob; // draw this Bob before Bob pointed to by before , for correct overlay
+ After: PBob; // draw this Bob after Bob pointed to by after, for correct overlay
+ BobVSprite: PVSprite; // this Bob's VSprite definition
+ BobComp: PAnimComp; // pointer to this Bob's AnimComp def
+ DBuffer: PDBufPacket; // pointer to this Bob's dBuf packet
+ BUserExt: TBUserStuff; // Bob user extension
+ end;
+
+
+ TAnimComp = record
+ // SYSTEM VARIABLES
+ // COMMON VARIABLES
+ Flags: SmallInt; // AnimComp flags for system & user
+ Timer: SmallInt; // timer defines how long to keep this component active:
+ // if set non-zero, timer decrements to zero then switches to nextSeq
+ // if set to zero, AnimComp never switches
+ // USER VARIABLES
+ TimeSet: SmallInt; // initial value for timer when the AnimComp is activated by the system
+ NextComp: PAnimComp; // pointer to next and previous components of animation object
+ PrevComp: PAnimComp;
+ NextSeq: PAnimComp; // pointer to component component definition of next image in sequence
+ PrevSeq: PAnimComp;
+ AnimCRoutine: Pointer; // Pointer of special animation procedure
+ YTrans: SmallInt; // initial y translation (if this is a component) }
+ XTrans: SmallInt; // initial x translation (if this is a component) }
+ HeadOb: PAnimOb;
+ AnimBob: PBob;
+ end;
+
+ TAnimOb = record
+ // SYSTEM VARIABLES
+ NextOb,
+ PrevOb: PAnimOb;
+ Clock: Longint; // number of calls to Animate this AnimOb has endured
+ AnOldY,
+ AnOldX: SmallInt; // old y,x coordinates
+ // COMMON VARIABLES
+ AnY,
+ AnX: SmallInt; // y,x coordinates of the AnimOb
+ // USER VARIABLES
+ YVel,
+ XVel: SmallInt; // velocities of this object
+ YAccel,
+ XAccel: SmallInt; // accelerations of this object
+ RingYTrans,
+ RingXTrans: SmallInt; // ring translation values
+ AnimORoutine: Pointer; // Pointer of special animation procedure
+ HeadComp: PAnimComp; // pointer to first component
+ AUserExt: TAUserStuff; // AnimOb user extension
+ end;
+ PPAnimOb = ^PAnimOb;
+
+const
+ B2NORM = 0;
+ B2SWAP = 1;
+ B2BOBBER = 2;
+
+
+const
+ MAXSUPERSAVECLIPRECTS = 20; // Max. number of cliprects that are kept preallocated in the list
+
+type
+ // predefinitions, for record referencing:
+ PRastPort = ^tRastPort;
+ PLayer_Info = ^TLayer_Info;
+ PLayer = ^TLayer;
+
+ PClipRect = ^TClipRect;
+ TClipRect = record
+ Next: PClipRect; // roms used to find next ClipRect
+ Prev: PClipRect; // ignored by roms, used by windowlib
+ Lobs: PLayer; // ignored by roms, used by windowlib
+ BitMap: PBitMap;
+ Bounds: TRectangle; // set up by windowlib, used by roms
+ _p1,
+ _p2: Pointer; // system reserved
+ reserved: Longint; // system use
+ Flags: Longint; // only exists in layer allocation
+ end;
+
+
+// Layer Structure
+ TLayer = record
+ Front,
+ Back: PLayer; // ignored by roms
+ ClipRect: PClipRect; // read by roms to find first cliprect
+ Rp: PRastPort; // Ignored by roms, I hope
+ Bounds: TRectangle; // ignored by roms
+ Parent: PLayer; // Private!
+ Priority: Word; // system use only
+ Flags: Word; // obscured ?, Virtual BitMap?
+ SuperBitMap: PBitMap;
+ SuperClipRect: PClipRect; // super bitmap cliprects if VBitMap != 0 else damage cliprect list for refresh
+ Window: APTR; // reserved for user interface use
+ Scroll_X,
+ Scroll_Y: SmallInt;
+ cr,
+ cr2,
+ crnew: PClipRect; // used by dedice
+ SuperSaveClipRects: PClipRect; // preallocated cr's
+ _cliprects: PClipRect; // system use during refresh
+ LayerInfo: PLayer_Info; // points to head of the list
+ Lock: TSignalSemaphore;
+ BackFill: PHook;
+{$ifdef aros}
+ VisibleRegion: PRegion; // Private!
+{$else}
+ Reserved1: ULONG;
+{$endif}
+ ClipRegion: PRegion;
+ SaveClipRects: PRegion; // used to back out when in trouble
+ Width,
+ Height: SmallInt;
+{$ifdef aros}
+ Shape: PRegion; // Private!
+ ShapeRegion: PRegion; // Private!
+ VisibleShape: PRegion; // Private!
+ Nesting: Word; // Private!
+ SuperSaveClipRectCounter: Byte; // Private!
+ Visible: Byte; // Private!
+ Reserved2: array[0..1] of Byte;
+{$else}
+ Reserved2: array[0..17] of Byte;
+{$endif}
+ { this must stay here }
+ DamageList: PRegion; // list of rectangles to refreshthrough
+ end;
+
+ TLayer_Info = record
+ Top_Layer: Player;
+ check_lp: PLayer;
+ Obs: PClipRect;
+ FreeClipRects: PClipRect;
+
+ PrivateReserve1: LongInt;
+ PrivateReserve2: LongInt;
+
+ Lock: TSignalSemaphore;
+ gs_Head: TMinList;
+
+ PrivateReserve3: SmallInt;
+ PrivateReserve4: Pointer;
+
+ Flags: Word; // LIFLG_SUPPORTS_OFFSCREEN_LAYERS
+ fatten_count: ShortInt;
+ LockLayersCount: ShortInt;
+ PrivateReserve5: SmallInt;
+ BlankHook: Pointer;
+ LayerInfo_extra: Pointer;
+ end;
+
+ TChangeLayerShapeMsg = record
+ NewShape: PRegion; // same as passed to ChangeLayerShape()
+ ClipRect: PClipRect;
+ Shape: PRegion;
+ end;
+
+ TCollectPixelsLayerMsg = record
+ xSrc: LongInt;
+ ySrc: LongInt;
+ Width: LongInt;
+ Height: LongInt;
+ xDest: LongInt;
+ yDest: LongInt;
+ Bm: PBitmap;
+ Layer: PLayer;
+ minterm: ULONG;
+ end;
+
+// Msg sent through LA_ShapeHook.
+ PShapeHookMsg = ^TShapeHookMsg;
+ TShapeHookMsg = record
+ Action: LongInt;
+ Layer: PLayer;
+ ActualShape: PRegion;
+ NewBounds: TRectangle;
+ OldBounds: TRectangle;
+ end;
+ // Hook for getting LA_ShapeHook and getting this Msg
+ TShapeHookProc = function(Hook: PHook; Layer: PLayer; Msg: PShapeHookMsg): PRegion; cdecl;
+
+ PAreaInfo = ^TAreaInfo;
+ TAreaInfo = record
+ VctrTbl: PSmallInt; // ptr to start of vector table
+ VctrPtr: PSmallInt; // ptr to current vertex
+ FlagTbl: PShortInt; // ptr to start of vector flag table
+ FlagPtr: PShortInt; // ptrs to areafill flags
+ Count: SmallInt; // number of vertices in list
+ MaxCount: SmallInt; // AreaMove/Draw will not allow Count>MaxCount
+ FirstX,
+ FirstY: SmallInt; // first point for this polygon
+ end;
+
+ PTmpRas = ^TTmpRas;
+ TTmpRas = record
+ RasPtr: PShortInt;
+ Size: Longint;
+ end;
+
+ PGelsInfo = ^TGelsInfo;
+ TGelsInfo = record
+ sprRsrvd: Shortint; // flag of which sprites to reserve from vsprite system
+ Flags: Byte; // system use
+ gelHead,
+ gelTail: PVSprite; // dummy vSprites for list management
+ NextLine: PSmallInt; // pointer to array of 8 WORDS for sprite available lines
+ LastColor: ^PSmallInt; // pointer to array of 8 pointers for color-last-assigned to vSprites
+ CollHandler: PCollTable; // Pointeres of collision routines
+ LeftMost,
+ RightMost,
+ TopMost,
+ BottomMost: Smallint;
+ FirstBlissObj,
+ LastBlissObj: APTR; // system use only
+ end;
+
+ TRastPort = record
+ Layer: PLayer; // LayerPtr
+ BitMap: PBitMap; // BitMapPtr
+ AreaPtrn: PWord; // ptr to areafill pattern
+ TmpRas: PTmpRas;
+ AreaInfo: PAreaInfo;
+ GelsInfo: PGelsInfo;
+ Mask: Byte; // write mask for this raster
+ FgPen: ShortInt; // foreground pen for this raster
+ BgPen: ShortInt; // background pen
+ AOlPen: ShortInt; // areafill outline pen
+ DrawMode: ShortInt; // drawing mode for fill, lines, and text
+ AreaPtSz: ShortInt; // 2^n words for areafill pattern
+ LinPatCnt: ShortInt; // current line drawing pattern preshift
+ dummy: ShortInt;
+ Flags: Word; // miscellaneous control bits
+ LinePtrn: Word; // 16 bits for textured lines
+ cp_x,
+ cp_y: SmallInt; // current pen position
+ minterms: array[0..7] of Byte;
+ PenWidth: SmallInt;
+ PenHeight: SmallInt;
+ Font: PTextFont; // (TextFontPtr) current font Pointer
+ AlgoStyle: Byte; // the algorithmically generated style
+ TxFlags: Byte; // text specific flags
+ TxHeight: Word; // text height
+ TxWidth: Word; // text nominal width
+ TxBaseline: Word; // text baseline
+ TxSpacing: SmallInt; // text spacing (per character)
+ RP_User: APTR;
+ longreserved: array[0..1] of IPTR;
+ wordreserved: array[0..6] of Word; // used to be a node
+ reserved: array[0..7] of Byte; // for future use
+ end;
+
+const
+// these are the flag bits for RastPort flags
+ FRST_DOT = $01; // draw the first dot of this line ?
+ ONE_DOT = $02; // use one dot mode for drawing lines
+ DBUFFER = $04; // flag set when RastPorts are double-buffered
+// drawing modes
+ JAM1 = 0; // jam 1 color into raster
+ JAM2 = 1; // jam 2 colors into raster
+ COMPLEMENT = 2; // XOR bits into raster
+ INVERSVID = 4; // inverse video for drawing modes
+// only used for bobs
+ AREAOUTLINE = $08; // used by areafiller
+ NOCROSSFILL = $20; // areafills have no crossovers
+
+// Actions for TShapeHookMsg
+ SHAPEHOOKACTION_CREATELAYER = 0;
+ SHAPEHOOKACTION_MOVELAYER = 1;
+ SHAPEHOOKACTION_SIZELAYER = 2;
+ SHAPEHOOKACTION_MOVESIZELAYER = 3;
+
+// Tags for scale layer
+ LA_SRCX = $4000;
+ LA_SRCY = $4001;
+ LA_DESTX = $4002;
+ LA_DESTY = $4003;
+ LA_SRCWIDTH = $4004;
+ LA_SRCHEIGHT = $4005;
+ LA_DESTWIDTH = $4006;
+ LA_DESTHEIGHT = $4007;
+
+ ROOTPRIORITY = 0;
+ BACKDROPPRIORITY = 10;
+ UPFRONTPRIORITY = 20;
+
+// Layer constants
+ NEWLAYERINFO_CALLED = 1;
+
+ LAYERSIMPLE = 1 shl 0;
+ LAYERSMART = 1 shl 1;
+ LAYERSUPER = 1 shl 2;
+ LAYERUPDATING = 1 shl 4;
+ LAYERBACKDROP = 1 shl 6;
+ LAYERREFRESH = 1 shl 7;
+ LAYER_CLIPRECTS_LOST = 1 shl 8;
+ LAYERIREFRESH = 1 shl 9;
+ LAYERIREFRESH2 = 1 shl 10;
+ LAYER_ROOT_LAYER = 1 shl 14;
+
+ LAYERS_BACKFILL: PHook = nil;
+ LAYERS_NOBACKFILL: PHook = PHook(1);
+
+// LayerInfo Flag
+ LIFLG_SUPPORTS_OFFSCREEN_LAYERS = 1 shl 8; // Same flag as AmigaOS hack PowerWindowsNG
+
+// Tags for CreateLayerTagList
+ LA_Dummy = TAG_USER + 1234;
+ LA_Type = LA_Dummy + 1; // LAYERSIMPLE, LAYERSMART (default) -or LAYERSUPER
+ LA_Priority = LA_Dummy + 2; // -128 .. 127 or LPRI_NORMAL (default) or LPRI_BACKDROP
+ LA_Behind = LA_Dummy + 3; // LongBool. Default is FALSE
+ LA_Invisible = LA_Dummy + 4; // LongBool. Default is FALSE
+ LA_BackFill = LA_Dummy + 5; // PHook. Default is LAYERS_BACKFILL
+ LA_SuperBitMap = LA_Dummy + 6; // PBitMap. Default is nil (none)
+ LA_Shape = LA_Dummy + 7; // PRegion. Default is nil (rectangular shape)
+
+ LPRI_NORMAL = 0;
+ LPRI_BACKDROP = -50;
+
+
+const
+// tfe_Flags0 (partial definition)
+ TE0B_NOREMFONT = 0; // disallow RemFont for this font
+ TE0F_NOREMFONT = $01;
+
+Const
+ CleanUp = $40;
+ CleanMe = CleanUp;
+
+ BltClearWait = 1; { Waits for blit to finish }
+ BltClearXY = 2; { Use Row/Bytes per row method }
+
+ { Useful minterms }
+
+ StraightCopy = $C0; { Vanilla copy }
+ InvertAndCopy = $30; { Invert the source before copy }
+ InvertDest = $50; { Forget source, invert dest }
+
+const
+// These flags are passed (in combination) to CoerceMode() to determine the type of coercion required.
+ PRESERVE_COLORS = 1; // Ensure that the mode coerced to can display just as many colours as the ViewPort being coerced.
+ AVOID_FLICKER = 2; // Ensure that the mode coerced to is not interlaced.
+ IGNORE_MCOMPAT = 4; // Coercion should ignore monitor compatibility issues.
+ BIDTAG_COERCE = 1; // Private
+
+const
+{ These bit descriptors are used by the GEL collide routines.
+ These bits are set in the hitMask and meMask variables of
+ a GEL to describe whether or not these types of collisions
+ can affect the GEL. BNDRY_HIT is described further below;
+ this bit is permanently assigned as the boundary-hit flag.
+ The other bit GEL_HIT is meant only as a default to cover
+ any GEL hitting any other; the user may redefine this bit.}
+ BORDERHIT = 0;
+{ These bit descriptors are used by the GEL boundry hit routines.
+ When the user's boundry-hit routine is called (via the argument
+ set by a call to SetCollision) the first argument passed to
+ the user's routine is the Pointer of the GEL involved in the
+ boundry-hit, and the second argument has the appropriate bit(s)
+ set to describe which boundry was surpassed}
+ TOPHIT = 1;
+ BOTTOMHIT = 2;
+ LEFTHIT = 4;
+ RIGHTHIT = 8;
+
+type
+ PExtendedNode = ^TExtendedNode;
+ TExtendedNode = record
+ xln_Succ,
+ xln_Pred: PNode;
+ xln_Type: Byte; // NT_GRAPHICS
+ xln_Pri: ShortInt;
+ xln_Name: PChar;
+ xln_Subsystem: Byte; // see below
+ xln_Subtype: Byte; // SS_GRAPHICS
+ xln_Library : Longint;
+ xln_Init : Pointer;
+ end;
+
+const
+// for xln_Subtype
+ SS_GRAPHICS = $02;
+// for xln_Subsystem
+ VIEW_EXTRA_TYPE = 1;
+ VIEWPORT_EXTRA_TYPE = 2;
+ SPECIAL_MONITOR_TYPE = 3;
+ MONITOR_SPEC_TYPE = 4;
+
+type
+ PAnalogSignalInterval = ^TAnalogSignalInterval;
+ TAnalogSignalInterval = record
+ asi_Start,
+ asi_Stop: Word;
+ end;
+
+ PSpecialMonitor = ^TSpecialMonitor;
+ TSpecialMonitor = record
+ spm_Node: TExtendedNode;
+ spm_Flags: Word; // Reserved, set to 0
+ do_monitor, // Driver call vector - set up a video mode
+ reserved1, // Private do not touch
+ reserved2,
+ reserved3: Pointer;
+ hblank, // Signal timings by themselves
+ vblank,
+ hsync,
+ vsync: TAnalogSignalInterval;
+ end;
+
+ PMonitorSpec = ^TMonitorSpec;
+ TMonitorSpec = record
+ ms_Node: TExtendedNode;
+ ms_Flags: Word; // Flags, see below
+ ratioh,
+ ratiov: Longint;
+ total_rows, // Total number of scanlines per frame
+ total_colorclocks, // Total number of color clocks per line (in 1/280 ns units)
+ DeniseMaxDisplayColumn,
+ BeamCon0, // Value for beamcon0 Amiga(tm) chipset register
+ min_row: Word;
+
+ ms_Special: PSpecialMonitor; // Synchro signal timings description (optional)
+
+ ms_OpenCount: Word; // Driver open count
+ ms_transform,
+ ms_translate,
+ ms_scale: Pointer;
+ ms_xoffset,
+ ms_yoffset: Word;
+
+ ms_LegalView: TRectangle; // Allowed range for view positioning (right-bottom position included)
+
+ ms_maxoscan, // maximum legal overscan
+ ms_videoscan: Pointer; // video display overscan
+ DeniseMinDisplayColumn: Word;
+ DisplayCompatible: ULONG;
+
+ DisplayInfoDataBase: TList;
+ DisplayInfoDataBaseSemaphore: TSignalSemaphore;
+
+ ms_MrgCop, // Driver call vectors, unused by AROS
+ ms_LoadView,
+ ms_KillView: Pointer;
+ end;
+
+const
+// Flags for TMonitorSpec.ms_Flags
+ MSB_REQUEST_NTSC = 0;
+ MSB_REQUEST_PAL = 1;
+ MSB_REQUEST_SPECIAL = 2;
+ MSB_REQUEST_A2024 = 3;
+ MSB_DOUBLE_SPRITES = 4;
+ MSF_REQUEST_NTSC = 1 shl MSB_REQUEST_NTSC;
+ MSF_REQUEST_PAL = 1 shl MSB_REQUEST_PAL;
+ MSF_REQUEST_SPECIAL = 1 shl MSB_REQUEST_SPECIAL;
+ MSF_REQUEST_A2024 = 1 shl MSB_REQUEST_A2024;
+ MSF_DOUBLE_SPRITES = 1 shl MSB_DOUBLE_SPRITES;
+
+ TO_MONITOR = 0;
+ FROM_MONITOR = 1;
+
+ STANDARD_XOFFSET = 9;
+ STANDARD_YOFFSET = 0;
+
+{ obsolete, v37 compatible definitions follow }
+ REQUEST_NTSC = 1;
+ REQUEST_PAL = 2;
+ REQUEST_SPECIAL = 4;
+ REQUEST_A2024 = 8;
+
+ DEFAULT_MONITOR_NAME: PChar = 'default.monitor';
+ NTSC_MONITOR_NAME: PChar = 'ntsc.monitor';
+ PAL_MONITOR_NAME: PChar = 'pal.monitor';
+ VGA_MONITOR_NAME: PChar = 'vga.monitor';
+
+ STANDARD_MONITOR_MASK = REQUEST_NTSC or REQUEST_PAL;
+
+// Some standard/default constants for Amiga(tm) chipset
+ STANDARD_NTSC_ROWS = 262;
+ MIN_NTSC_ROW = 21;
+ STANDARD_PAL_ROWS = 312;
+ MIN_PAL_ROW = 29;
+ STANDARD_NTSC_BEAMCON = $0000;
+ STANDARD_PAL_BEAMCON = $0020;
+ SPECIAL_BEAMCON = VARVBLANK or VARHSYNC or VARVSYNC or VARBEAM or VSYNCTRUE or LOLDIS or CSBLANK;
+ STANDARD_DENISE_MIN = 93;
+ STANDARD_DENISE_MAX = 455;
+ STANDARD_COLORCLOCKS = 226;
+ STANDARD_VIEW_X = $81;
+ STANDARD_VIEW_Y = $2C;
+ STANDARD_HBSTRT = $06;
+ STANDARD_HSSTRT = $0B;
+ STANDARD_HSSTOP = $1C;
+ STANDARD_HBSTOP = $2C;
+ STANDARD_VBSTRT = $0122;
+ STANDARD_VSSTRT = $02A6;
+ STANDARD_VSSTOP = $03AA;
+ STANDARD_VBSTOP = $1066;
+
+ VGA_COLORCLOCKS = STANDARD_COLORCLOCKS / 2;
+ VGA_TOTAL_ROWS = STANDARD_NTSC_ROWS * 2;
+ VGA_DENISE_MIN = 59;
+ MIN_VGA_ROW = 29;
+ VGA_HBSTRT = $08;
+ VGA_HSSTRT = $0E;
+ VGA_HSSTOP = $1C;
+ VGA_HBSTOP = $1E;
+ VGA_VBSTRT = $0000;
+ VGA_VSSTRT = $0153;
+ VGA_VSSTOP = $0235;
+ VGA_VBSTOP = $0CCD;
+
+ BROADCAST_HBSTRT = $01;
+ BROADCAST_HSSTRT = $06;
+ BROADCAST_HSSTOP = $17;
+ BROADCAST_HBSTOP = $27;
+ BROADCAST_VBSTRT = $0000;
+ BROADCAST_VSSTRT = $02A6;
+ BROADCAST_VSSTOP = $054C;
+ BROADCAST_VBSTOP = $1C40;
+ BROADCAST_BEAMCON = LOLDIS OR CSBLANK;
+
+ RATIO_FIXEDPART = 4;
+ RATIO_UNITY = 1 shl 4;
+
+type
+ PCopList = ^TCopList;
+ PViewPort = ^TViewPort;
+ PColorMap = ^TColorMap;
+
+// Describes playfield(s) (actually bitmaps)
+ PRasInfo = ^TRasInfo;
+ TRasInfo = record // used by callers to and InitDspC()
+ Next: PRasInfo; // Pointer to a next playfield (if there's more than one)
+ BitMap: PBitMap; // Actual data to display
+ RxOffset, // Offset of the playfield relative to ViewPort
+ RyOffset: SmallInt; // scroll offsets in this BitMap (So that different playfields may be shifted against each other)
+ end;
+
+// structure of cprlist that points to list that hardware actually executes
+ PCprList = ^TCprList;
+ TCprList = record
+ Next: PCprList;
+ Start: PWord; // start of copper list
+ MaxCount: SmallInt; // number of long instructions
+ end;
+
+ PUCopList = ^TUCopList;
+ TUCopList = record
+ Next: PUCopList;
+ FirstCopList: PCopList; // head node of this copper list
+ CopList: PCopList; // node in use
+ end;
+
+ PCopInit = ^TCopInit;
+ TCopInit = record
+ vsync_hblank: array[0..1] of Word;
+ diagstrt: array[0..11] of Word;
+ fm0: array[0..1] of Word;
+ diwstart: array[0..9] of Word;
+ bplcon2: array[0..1] of Word;
+ sprfix: array[0..15] of Word;
+ sprstrtup: array[0..31] of Word;
+ wait14: array[0..1] of Word;
+ norm_hblank: array[0..1] of Word;
+ jump: array[0..1] of Word;
+ wait_forever: array[0..5] of Word;
+ sprstop: array[0..7] of Word;
+ end;
+
+ PView = ^TView;
+ TView = record
+ ViewPort: PViewPort; // ViewPortPtr
+ LOFCprList: PCprList; // used for interlaced and noninterlaced
+ SHFCprList: PCprList; // only used during interlace
+ DyOffset,
+ DxOffset: SmallInt; // for complete View positioning offsets are +- adjustments to standard #s
+ Modes: Word; // such as INTERLACE, GENLOC
+ end;
+
+// Additional data for Amiga(tm) chipset. Not used by other hardware.
+// these structures are obtained via GfxNew and disposed by GfxFree
+ PViewExtra = ^TViewExtra;
+ TViewExtra = record
+ n: TExtendedNode; // Common Header
+ View: PView; // View it relates to
+ Monitor: PMonitorSpec; // Monitor used for displaying this View
+ TopLine: Word;
+ end;
+
+ // Copper structures
+ PCopIns = ^TCopIns;
+ TCopIns = record
+ OpCode : smallint; // 0 = move, 1 = wait
+ case SmallInt of
+ 0:(
+ NxtList: PCopList;
+ );
+ 1:(
+ VWaitPos: SmallInt; // vertical wait position
+ DestAddr: SmallInt; // destination Pointer
+ );
+ 2:(
+ HWaitPos: SmallInt; // horizontal wait position
+ DestData: SmallInt; // data to send
+ );
+ end;
+
+ TCopList = record
+ Next: PCopList; // next block for this copper list
+ _CopList: PCopList; // system use
+ _ViewPort: PViewPort; // system use
+ CopIns: PCopIns; // start of this block
+ CopPtr: PCopIns; // intermediate ptr
+ CopLStart: PSmallInt; // mrgcop fills this in for Long Frame
+ CopSStart: PSmallInt; // mrgcop fills this in for Longint Frame
+ Count: Smallint; // intermediate counter
+ MaxCount: SmallInt; // max # of copins for this block
+ DyOffset: SmallInt; // offset this copper list vertical waits
+ SLRepeat: Word;
+ Flags: Word; // EXACT_LINE or HALF_LINE
+ end;
+
+// Describes a displayed bitmap (or logical screen). Copperlists are relevant only to Amiga(tm) chipset,
+// for other hardware they are NULL.
+ TViewPort = record
+ Next: PViewPort;
+ ColorMap: PColorMap; // table of colors for this viewport if this is nil, MakeVPort assumes default values
+ DspIns: PCopList; // user by MakeView(), Preliminary partial display copperlist
+ SprIns: PCopList; // used by sprite stuff, Preliminary partial sprite copperlist
+ ClrIns: PCopList; // used by sprite stuff
+ UCopIns: PUCopList; // User copper list
+ DWidth, // Width of currently displayed part in pixels
+ DHeight: SmallInt; // Height of currently displayed part in pixels
+ DxOffset, // Displacement from the (0, 0) of the physical screen to (0, 0) of the raster
+ DyOffset: SmallInt;
+ Modes: Word; // The same as in View
+ SpritePriorities: Byte; // used by makevp
+ reserved: Byte;
+ RasInfo: PRasInfo; // Playfield specification
+ end;
+
+// Holds additional information about the ViewPort it is associated with
+// this structure is obtained via GfxNew and disposed by GfxFree
+ PViewPortExtra = ^TViewPortExtra;
+ TViewPortExtra = record
+ n: TExtendedNode;
+ ViewPort: PViewPort; // ViewPort it relates to (backward link)
+ DisplayClip: TRectangle; // makevp display clipping information, Total size of displayable part
+ VecTable: APTR; // Unused in AROS
+ DriverData: array[0..1] of APTR; // Private storage for display drivers. Do not touch!
+ Flags: Word; // Flags, see below
+ Origin: array[0..1] of TPoint; // First visible point relative to the DClip. One for each possible playfield.
+ cop1ptr, // private
+ cop2ptr: ULONG; // private
+ end;
+
+ PPaletteExtra = ^TPaletteExtra;
+ TPaletteExtra = record // structure may be extended so watch out!
+ pe_Semaphore: TSignalSemaphore; // shared semaphore for arbitration
+ pe_FirstFree, // *private*
+ pe_NFree, // number of free colors
+ pe_FirstShared, // *private*
+ pe_NShared: Word; // *private*
+ pe_RefCnt: PByte; // *private*
+ pe_AllocList: PByte; // *private*
+ pe_ViewPort: PViewPort; // back pointer to viewport
+ pe_SharableColors: Word; // the number of sharable colors.
+ end;
+
+{ This structure is the primary storage for palette data.
+ Color data itself is stored in two tables: ColorTable and LowColorBits.
+ These fields are actually pointer to arrays of Words. Each Word corresponds
+ to one color.
+ Number of Words in these array is equal to Count value in this structure.
+ ColorTable stores upper nibbles of RGB values, LowColorBits stores low nibbles.
+ Example:
+ color number 4, value: $00ABCDEF
+ ColorTable[4] := $0ACE,
+ LowColorBits[4] := $0BDF
+
+ SpriteBase fields keep bank number, not a color number. On m68k Amiga colors are divided into
+ banks, 16 per each. So bank number is color number divided by 16. Base color is a number which
+ is added to all colors of the sprite in order to look up the actual palette entry.
+ AROS may run on different hardware where sprites may have base colors that do not divide by 16.
+ In order to cover this bank numbers have a form: ((c and $0F) shl 8 ) or (c shr 4), where c is actual
+ color number (i. e. remainder is stored in a high byte of Word).}
+ TColorMap = record
+ Flags: Byte; // see below (CMF_*)
+ Type_: Byte; // Colormap type (reflects version), see below (COLORMAP_*)
+ Count: Word; // Number of palette entries
+ ColorTable: PWord; // Table of high nibbles of color values (see description above)
+ // The following fields are present only if Type_ >= COLORMAP_TYPE_V36
+ cm_vpe: PViewPortExtra; // ViewPortExtra, for faster access
+
+ LowColorBits: PWord; // Table of low nibbles of color values (see above)
+ TransparencyPlane,
+ SpriteResolution, // see below
+ SpriteResDefault,
+ AuxFlags: Byte;
+
+ cm_vp: PViewPort; // Points back to a ViewPort this colormap belongs to
+
+ NormalDisplayInfo,
+ CoerceDisplayInfo : APTR;
+
+ cm_batch_items: PTagItem;
+ VPModeID: ULONG;
+ // The following fields are present only if Type_ >= COLORMAP_TYPE_V39
+ PalExtra: PPaletteExtra; // Structure controlling palette sharing
+
+ SpriteBase_Even, // Color bank for even sprites (see above)
+ SpriteBase_Odd, // The same for odd sprites
+ Bp_0_base,
+ Bp_1_base: Word;
+ end;
+
+const
+// flags for TColorMap.Flags
+ CMF_CMTRANS = 0;
+ COLORMAP_TRANSPARENCY = 1 shl 0;
+ CMF_CPTRANS = 1;
+ COLORPLANE_TRANSPARENCY = 1 shl 1;
+ CMF_BRDRBLNK = 2;
+ BORDER_BLANKING = 1 shl 2;
+ CMF_BRDNTRAN = 3;
+ BORDER_NOTRANSPARENCY = 1 shl 3;
+ VIDEOCONTROL_BATCH = 1 shl 4;
+ USER_COPPER_CLIP = 1 shl 5;
+ CMF_BRDRSPRT = 6;
+ BORDERSPRITES = 1 shl 6;
+// Types for TColorMap.Type_
+ COLORMAP_TYPE_V1_2 = 0;
+ COLORMAP_TYPE_V36 = 1;
+ COLORMAP_TYPE_V39 = 2;
+// SpriteResolution
+ SPRITERESN_ECS = $00;
+ SPRITERESN_140NS = $01; // ^140ns, except in 35ns viewport, where it is 70ns.
+ SPRITERESN_70NS = $02;
+ SPRITERESN_35NS = $03;
+ SPRITERESN_DEFAULT = $ff;
+
+// Private Flags for TCopList.Flags
+ EXACT_LINE = 1;
+ HALF_LINE = 2;
+// Copper commands
+ COPPER_MOVE = 0; // pseude opcode for move #XXXX,dir
+ COPPER_WAIT = 1; // pseudo opcode for wait y,x
+ CPRNXTBUF = 2; // continue processing with next buffer
+ CPR_NT_SYS = $2000; // copper user instruction only
+ CPR_NT_SHT = $4000; // copper instruction only for long frames
+ CPR_NT_LOF = $8000; // copper instruction only for Longint frames
+
+ GENLOCK_VIDEO = 1 shl 1;
+ LACE = 1 shl 2;
+ DOUBLESCAN = 1 shl 3;
+ SUPERHIRES = 1 shl 5;
+ PFBA = 1 shl 6;
+ EXTRA_HALFBRITE = 1 shl 7;
+ GENLOCK_AUDIO = 1 shl 8;
+ DUALPF = 1 shl 10;
+ HAM = 1 shl 11;
+ EXTENDED_MODE = 1 shl 12;
+ VP_HIDE = 1 shl 13;
+ SPRITES = 1 shl 14;
+ HIRES = 1 shl 15;
+// ViewPortExtra Flags
+ VPXB_FREE_ME = 0; // Temporary ViewPortExtra allocated during MakeVPort(). ViewPortExtra with this flag
+ VPXF_FREE_ME = 1 shl 0; // will be automatically found and disposed during FreeVPortCopLists().
+ // Private flag in fact, don't set it by hands
+ VPXB_LAST = 1;
+ VPXF_LAST = 1 shl 1;
+ VPXB_STRADDLES256 = 4;
+ VPXF_STRADDLES256 = 1 shl 4;
+ VPXB_STRADDLES512 = 5;
+ VPXF_STRADDLES512 = 1 shl 5;
+// Private
+ VPB_TENHZ = 4;
+ VPF_TENHZ = 1 shl 4;
+ VPB_A2024 = 6;
+ VPF_A2024 = 1 shl 6;
+
+ EXTEND_VSTRUCT = $1000; // unused bit in Modes field of View
+
+// AuxFlags
+ CMAB_FULLPALETTE = 0;
+ CMAF_FULLPALETTE = 1 shl CMAB_FULLPALETTE;
+ CMAB_NO_INTERMED_UPDATE = 1;
+ CMAF_NO_INTERMED_UPDATE = 1 shl CMAB_NO_INTERMED_UPDATE;
+ CMAB_NO_COLOR_LOAD = 2;
+ CMAF_NO_COLOR_LOAD = 1 shl CMAB_NO_COLOR_LOAD;
+ CMAB_DUALPF_DISABLE = 3;
+ CMAF_DUALPF_DISABLE = 1 shl CMAB_DUALPF_DISABLE;
+
+const
+// flags values for ObtainPen
+ PENB_EXCLUSIVE = 0;
+ PENB_NO_SETCOLOR = 1;
+ PENF_EXCLUSIVE = 1 shl PENB_EXCLUSIVE;
+ PENF_NO_SETCOLOR = 1 shl PENB_NO_SETCOLOR;
+// obsolete names for PENF_xxx flags:
+ PEN_EXCLUSIVE = PENF_EXCLUSIVE;
+ PEN_NO_SETCOLOR = PENF_NO_SETCOLOR;
+// precision values for ObtainBestPen:
+ PRECISION_EXACT = -1;
+ PRECISION_IMAGE = 0;
+ PRECISION_ICON = 16;
+ PRECISION_GUI = 32;
+// tags for ObtainBestPen:
+ OBP_Precision = $84000000;
+ OBP_FailIfBad = $84000001;
+
+{ MakeVPort() will return an error if there is not enough memory,
+ or the requested mode cannot be opened with the requested depth with the
+ given bitmap (for higher bandwidth alignments).}
+ MVP_OK = 0; // you want to see this one
+ MVP_NO_MEM = 1; // insufficient memory for intermediate workspace
+ MVP_NO_VPE = 2; // ViewPort does not have a ViewPortExtra, and insufficient memory to allocate a temporary one.
+ MVP_NO_DSPINS = 3; // insufficient memory for intermidiate copper instructions.
+ MVP_NO_DISPLAY = 4; // BitMap data is misaligned for this viewport's mode and depth - see AllocBitMap().
+ MVP_OFF_BOTTOM = 5; // PRIVATE - you will never see this.
+{ MrgCop() will return an error if there is not enough memory,
+ or for some reason MrgCop() did not need to make any copper lists.}
+ MCOP_OK = 0; // you want to see this one
+ MCOP_NO_MEM = 1; // insufficient memory to allocate the system copper lists.
+ MCOP_NOP = 2; // MrgCop() did not merge any copper lists (eg, no ViewPorts in the list, or all marked as hidden).
+
+type
+ PDBufInfo = ^TDBufInfo;
+ TDBufInfo = record
+ dbi_Link1: APTR;
+ dbi_Count1: ULONG;
+ dbi_SafeMessage: TMessage; // replied to when safe to write to old bitmap
+ dbi_UserData1: APTR; // first user data
+
+ dbi_Link2: APTR;
+ dbi_Count2: ULONG;
+ dbi_DispMessage: TMessage; // replied to when new bitmap has been displayed at least once
+ dbi_UserData2: APTR; // second user data
+ dbi_MatchLong: ULONG;
+ dbi_CopPtr1,
+ dbi_CopPtr2,
+ dbi_CopPtr3: APTR;
+ dbi_BeamPos1,
+ dbi_BeamPos2: Word;
+ end;
+
+const
+ INVALID_ID = not 0;
+
+{ With all the new modes that are available under V38 and V39, it is highly
+ * recommended that you use either the asl.library screenmode requester,
+ * and/or the V39 graphics.library function BestModeIDA().
+ *
+ * DO NOT interpret the any of the bits in the ModeID for its meaning. For
+ * example, do not interpret bit 3 ($4) as meaning the ModeID is interlaced.
+ * Instead, use GetDisplayInfoData() with DTAG_DISP, and examine the DIPF_...
+ * flags to determine a ModeID's characteristics. The only exception to
+ * this rule is that bit 7 ($80) will always mean the ModeID is
+ * ExtraHalfBright, and bit 11 ($800) will always mean the ModeID is HAM.
+ }
+
+// normal identifiers
+ MONITOR_ID_MASK = $FFFF1000;
+
+ DEFAULT_MONITOR_ID = $00000000;
+ NTSC_MONITOR_ID = $00011000;
+ PAL_MONITOR_ID = $00021000;
+
+{ the following 22 composite keys are for Modes on the default Monitor.
+ NTSC & PAL "flavors" of these particular keys may be made by or'ing
+ the NTSC or PAL MONITOR_ID with the desired MODE_KEY...
+
+ For example, to specifically open a PAL HAM interlaced ViewPort
+ (or intuition screen), you would use the modeid of
+ (PAL_MONITOR_ID or HAMLACE_KEY)}
+ LORES_KEY = $00000000;
+ LORESLACE_KEY = $00000004;
+ LORESSDBL_KEY = $00000008;
+ EXTRAHALFBRITE_KEY = $00000080;
+ EXTRAHALFBRITELACE_KEY = $00000084;
+ LORESEHBSDBL_KEY = $00000088;
+ LORESDPF_KEY = $00000400;
+ LORESLACEDPF_KEY = $00000404;
+ LORESDPF2_KEY = $00000440;
+ LORESLACEDPF2_KEY = $00000444;
+ HAM_KEY = $00000800;
+ HAMLACE_KEY = $00000804;
+ LORESHAMSDBL_KEY = $00000808;
+ HIRES_KEY = $00008000;
+ HIRESLACE_KEY = $00008004;
+ SUPER_KEY = $00008020;
+ SUPERLACE_KEY = $00008024;
+ HIRESEHB_KEY = $00008080;
+ HIRESEHBLACE_KEY = $00008084;
+ SUPEREHB_KEY = $000080a0;
+ SUPEREHBLACE_KEY = $000080a4;
+ HIRESDPF_KEY = $00008400;
+ HIRESLACEDPF_KEY = $00008404;
+ SUPERDPF_KEY = $00008420;
+ SUPERLACEDPF_KEY = $00008424;
+ HIRESDPF2_KEY = $00008440;
+ HIRESLACEDPF2_KEY = $00008444;
+ SUPERDPF2_KEY = $00008460;
+ SUPERLACEDPF2_KEY = $00008464;
+ HIRESHAM_KEY = $00008800;
+ HIRESHAMLACE_KEY = $00008804;
+ HIRESHAMSDBL_KEY = $00008808;
+ SUPERHAM_KEY = $00008820;
+ SUPERHAMLACE_KEY = $00008824;
+
+// VGA identifiers
+ VGA_MONITOR_ID = $00031000;
+
+ VGAEXTRALORES_KEY = $00031004;
+ VGALORES_KEY = $00039004;
+ VGAPRODUCT_KEY = $00039024;
+ VGAHAM_KEY = $00031804;
+ VGAEXTRALORESLACE_KEY = $00031005;
+ VGALORESLACE_KEY = $00039005;
+ VGAPRODUCTLACE_KEY = $00039025;
+ VGAHAMLACE_KEY = $00031805;
+ VGAEXTRALORESDPF_KEY = $00031404;
+ VGALORESDPF_KEY = $00039404;
+ VGAPRODUCTDPF_KEY = $00039424;
+ VGAEXTRALORESLACEDPF_KEY = $00031405;
+ VGALORESLACEDPF_KEY = $00039405;
+ VGAPRODUCTLACEDPF_KEY = $00039425;
+ VGAEXTRALORESDPF2_KEY = $00031444;
+ VGALORESDPF2_KEY = $00039444;
+ VGAPRODUCTDPF2_KEY = $00039464;
+ VGAEXTRALORESLACEDPF2_KEY = $00031445;
+ VGALORESLACEDPF2_KEY = $00039445;
+ VGAPRODUCTLACEDPF2_KEY = $00039465;
+ VGAEXTRAHALFBRITE_KEY = $00031084;
+ VGAEXTRAHALFBRITELACE_KEY = $00031085;
+ VGAPRODUCTHAM_KEY = $00039824;
+ VGALORESHAM_KEY = $00039804;
+ VGAEXTRALORESHAM_KEY = VGAHAM_KEY;
+ VGAPRODUCTHAMLACE_KEY = $00039825;
+ VGALORESHAMLACE_KEY = $00039805;
+ VGAEXTRALORESHAMLACE_KEY = VGAHAMLACE_KEY;
+ VGAEXTRALORESEHB_KEY = VGAEXTRAHALFBRITE_KEY;
+ VGAEXTRALORESEHBLACE_KEY = VGAEXTRAHALFBRITELACE_KEY;
+ VGALORESEHB_KEY = $00039084;
+ VGALORESEHBLACE_KEY = $00039085;
+ VGAEHB_KEY = $000390a4;
+ VGAEHBLACE_KEY = $000390a5;
+ VGAEXTRALORESDBL_KEY = $00031000;
+ VGALORESDBL_KEY = $00039000;
+ VGAPRODUCTDBL_KEY = $00039020;
+ VGAEXTRALORESHAMDBL_KEY = $00031800;
+ VGALORESHAMDBL_KEY = $00039800;
+ VGAPRODUCTHAMDBL_KEY = $00039820;
+ VGAEXTRALORESEHBDBL_KEY = $00031080;
+ VGALORESEHBDBL_KEY = $00039080;
+ VGAPRODUCTEHBDBL_KEY = $000390a0;
+// A2024 identifiers
+ A2024_MONITOR_ID = $00041000;
+ A2024TENHERTZ_KEY = $00041000;
+ A2024FIFTEENHERTZ_KEY = $00049000;
+// prototype identifiers (private)
+ PROTO_MONITOR_ID = $00051000;
+// Euro72 defines
+ EURO72_MONITOR_ID = $00061000;
+ EURO72EXTRALORES_KEY = $00061004;
+ EURO72LORES_KEY = $00069004;
+ EURO72PRODUCT_KEY = $00069024;
+ EURO72HAM_KEY = $00061804;
+ EURO72EXTRALORESLACE_KEY = $00061005;
+ EURO72LORESLACE_KEY = $00069005;
+ EURO72PRODUCTLACE_KEY = $00069025;
+ EURO72HAMLACE_KEY = $00061805;
+ EURO72EXTRALORESDPF_KEY = $00061404;
+ EURO72LORESDPF_KEY = $00069404;
+ EURO72PRODUCTDPF_KEY = $00069424;
+ EURO72EXTRALORESLACEDPF_KEY = $00061405;
+ EURO72LORESLACEDPF_KEY = $00069405;
+ EURO72PRODUCTLACEDPF_KEY = $00069425;
+ EURO72EXTRALORESDPF2_KEY = $00061444;
+ EURO72LORESDPF2_KEY = $00069444;
+ EURO72PRODUCTDPF2_KEY = $00069464;
+ EURO72EXTRALORESLACEDPF2_KEY = $00061445;
+ EURO72LORESLACEDPF2_KEY = $00069445;
+ EURO72PRODUCTLACEDPF2_KEY = $00069465;
+ EURO72EXTRAHALFBRITE_KEY = $00061084;
+ EURO72EXTRAHALFBRITELACE_KEY = $00061085;
+ EURO72PRODUCTHAM_KEY = $00069824;
+ EURO72PRODUCTHAMLACE_KEY = $00069825;
+ EURO72LORESHAM_KEY = $00069804;
+ EURO72LORESHAMLACE_KEY = $00069805;
+ EURO72EXTRALORESHAM_KEY = EURO72HAM_KEY;
+ EURO72EXTRALORESHAMLACE_KEY = EURO72HAMLACE_KEY ;
+ EURO72EXTRALORESEHB_KEY = EURO72EXTRAHALFBRITE_KEY;
+ EURO72EXTRALORESEHBLACE_KEY = EURO72EXTRAHALFBRITELACE_KEY;
+ EURO72LORESEHB_KEY = $00069084;
+ EURO72LORESEHBLACE_KEY = $00069085;
+ EURO72EHB_KEY = $000690a4;
+ EURO72EHBLACE_KEY = $000690a5;
+{ These ModeIDs are the scandoubled equivalents of the above, with the
+ exception of the DualPlayfield modes, as AA does not allow for scandoubling
+ dualplayfield.}
+ EURO72EXTRALORESDBL_KEY = $00061000;
+ EURO72LORESDBL_KEY = $00069000;
+ EURO72PRODUCTDBL_KEY = $00069020;
+ EURO72EXTRALORESHAMDBL_KEY = $00061800;
+ EURO72LORESHAMDBL_KEY = $00069800;
+ EURO72PRODUCTHAMDBL_KEY = $00069820;
+ EURO72EXTRALORESEHBDBL_KEY = $00061080;
+ EURO72LORESEHBDBL_KEY = $00069080;
+ EURO72PRODUCTEHBDBL_KEY = $000690a0;
+// Euro 36
+ EURO36_MONITOR_ID = $00071000;
+{ Euro36 modeids can be ORed with the default modeids a la NTSC and PAL.
+ For example, Euro36 SuperHires is
+ (EURO36_MONITOR_ID OR SUPER_KEY)}
+// Super 72
+ SUPER72_MONITOR_ID = $00081000;
+{ Super72 modeids can be ORed with the default modeids a la NTSC and PAL.
+ For example, Super72 SuperHiresLace (80$600) is
+ (SUPER72_MONITOR_ID OR SUPERLACE_KEY).
+ The following scandoubled Modes are the exception:}
+ SUPER72LORESDBL_KEY = $00081008;
+ SUPER72HIRESDBL_KEY = $00089008;
+ SUPER72SUPERDBL_KEY = $00089028;
+ SUPER72LORESHAMDBL_KEY = $00081808;
+ SUPER72HIRESHAMDBL_KEY = $00089808;
+ SUPER72SUPERHAMDBL_KEY = $00089828;
+ SUPER72LORESEHBDBL_KEY = $00081088;
+ SUPER72HIRESEHBDBL_KEY = $00089088;
+ SUPER72SUPEREHBDBL_KEY = $000890a8;
+// DblNTSC
+ DBLNTSC_MONITOR_ID = $00091000;
+
+ DBLNTSCLORES_KEY = $00091000;
+ DBLNTSCLORESFF_KEY = $00091004;
+ DBLNTSCLORESHAM_KEY = $00091800;
+ DBLNTSCLORESHAMFF_KEY = $00091804;
+ DBLNTSCLORESEHB_KEY = $00091080;
+ DBLNTSCLORESEHBFF_KEY = $00091084;
+ DBLNTSCLORESLACE_KEY = $00091005;
+ DBLNTSCLORESHAMLACE_KEY = $00091805;
+ DBLNTSCLORESEHBLACE_KEY = $00091085;
+ DBLNTSCLORESDPF_KEY = $00091400;
+ DBLNTSCLORESDPFFF_KEY = $00091404;
+ DBLNTSCLORESDPFLACE_KEY = $00091405;
+ DBLNTSCLORESDPF2_KEY = $00091440;
+ DBLNTSCLORESDPF2FF_KEY = $00091444;
+ DBLNTSCLORESDPF2LACE_KEY = $00091445;
+ DBLNTSCHIRES_KEY = $00099000;
+ DBLNTSCHIRESFF_KEY = $00099004;
+ DBLNTSCHIRESHAM_KEY = $00099800;
+ DBLNTSCHIRESHAMFF_KEY = $00099804;
+ DBLNTSCHIRESLACE_KEY = $00099005;
+ DBLNTSCHIRESHAMLACE_KEY = $00099805;
+ DBLNTSCHIRESEHB_KEY = $00099080;
+ DBLNTSCHIRESEHBFF_KEY = $00099084;
+ DBLNTSCHIRESEHBLACE_KEY = $00099085;
+ DBLNTSCHIRESDPF_KEY = $00099400;
+ DBLNTSCHIRESDPFFF_KEY = $00099404;
+ DBLNTSCHIRESDPFLACE_KEY = $00099405;
+ DBLNTSCHIRESDPF2_KEY = $00099440;
+ DBLNTSCHIRESDPF2FF_KEY = $00099444;
+ DBLNTSCHIRESDPF2LACE_KEY = $00099445;
+ DBLNTSCEXTRALORES_KEY = $00091200;
+ DBLNTSCEXTRALORESHAM_KEY = $00091a00;
+ DBLNTSCEXTRALORESEHB_KEY = $00091280;
+ DBLNTSCEXTRALORESDPF_KEY = $00091600;
+ DBLNTSCEXTRALORESDPF2_KEY = $00091640;
+ DBLNTSCEXTRALORESFF_KEY = $00091204;
+ DBLNTSCEXTRALORESHAMFF_KEY = $00091a04;
+ DBLNTSCEXTRALORESEHBFF_KEY = $00091284;
+ DBLNTSCEXTRALORESDPFFF_KEY = $00091604;
+ DBLNTSCEXTRALORESDPF2FF_KEY = $00091644;
+ DBLNTSCEXTRALORESLACE_KEY = $00091205;
+ DBLNTSCEXTRALORESHAMLACE_KEY = $00091a05;
+ DBLNTSCEXTRALORESEHBLACE_KEY = $00091285;
+ DBLNTSCEXTRALORESDPFLACE_KEY = $00091605;
+ DBLNTSCEXTRALORESDPF2LACE_KEY = $00091645;
+// DBLPal
+ DBLPAL_MONITOR_ID = $000a1000;
+
+ DBLPALLORES_KEY = $000a1000;
+ DBLPALLORESFF_KEY = $000a1004;
+ DBLPALLORESHAM_KEY = $000a1800;
+ DBLPALLORESHAMFF_KEY = $000a1804;
+ DBLPALLORESEHB_KEY = $000a1080;
+ DBLPALLORESEHBFF_KEY = $000a1084;
+ DBLPALLORESLACE_KEY = $000a1005;
+ DBLPALLORESHAMLACE_KEY = $000a1805;
+ DBLPALLORESEHBLACE_KEY = $000a1085;
+ DBLPALLORESDPF_KEY = $000a1400;
+ DBLPALLORESDPFFF_KEY = $000a1404;
+ DBLPALLORESDPFLACE_KEY = $000a1405;
+ DBLPALLORESDPF2_KEY = $000a1440;
+ DBLPALLORESDPF2FF_KEY = $000a1444;
+ DBLPALLORESDPF2LACE_KEY = $000a1445;
+ DBLPALHIRES_KEY = $000a9000;
+ DBLPALHIRESFF_KEY = $000a9004;
+ DBLPALHIRESHAM_KEY = $000a9800;
+ DBLPALHIRESHAMFF_KEY = $000a9804;
+ DBLPALHIRESLACE_KEY = $000a9005;
+ DBLPALHIRESHAMLACE_KEY = $000a9805;
+ DBLPALHIRESEHB_KEY = $000a9080;
+ DBLPALHIRESEHBFF_KEY = $000a9084;
+ DBLPALHIRESEHBLACE_KEY = $000a9085;
+ DBLPALHIRESDPF_KEY = $000a9400;
+ DBLPALHIRESDPFFF_KEY = $000a9404;
+ DBLPALHIRESDPFLACE_KEY = $000a9405;
+ DBLPALHIRESDPF2_KEY = $000a9440;
+ DBLPALHIRESDPF2FF_KEY = $000a9444;
+ DBLPALHIRESDPF2LACE_KEY = $000a9445;
+ DBLPALEXTRALORES_KEY = $000a1200;
+ DBLPALEXTRALORESHAM_KEY = $000a1a00;
+ DBLPALEXTRALORESEHB_KEY = $000a1280;
+ DBLPALEXTRALORESDPF_KEY = $000a1600;
+ DBLPALEXTRALORESDPF2_KEY = $000a1640;
+ DBLPALEXTRALORESFF_KEY = $000a1204;
+ DBLPALEXTRALORESHAMFF_KEY = $000a1a04;
+ DBLPALEXTRALORESEHBFF_KEY = $000a1284;
+ DBLPALEXTRALORESDPFFF_KEY = $000a1604;
+ DBLPALEXTRALORESDPF2FF_KEY = $000a1644;
+ DBLPALEXTRALORESLACE_KEY = $000a1205;
+ DBLPALEXTRALORESHAMLACE_KEY = $000a1a05;
+ DBLPALEXTRALORESEHBLACE_KEY = $000a1285;
+ DBLPALEXTRALORESDPFLACE_KEY = $000a1605;
+ DBLPALEXTRALORESDPF2LACE_KEY = $000a1645;
+
+// Tags
+ BIDTAG_DIPFMustHave = $80000001; // mask of the DIPF_ flags the ModeID must have Default - 0
+ BIDTAG_DIPFMustNotHave = $80000002; // mask of the DIPF_ flags the ModeID must not have Default - SPECIAL_FLAGS
+ BIDTAG_ViewPort = $80000003; // ViewPort for which a ModeID is sought. Default - nil
+ BIDTAG_NominalWidth = $80000004; // \ together make the aspect ratio and
+ BIDTAG_NominalHeight = $80000005; // / override the vp^.Width/Height. Default - SourceID NominalDimensionInfo,
+ // or vp^.DWidth/Height, or (640 * 200), in that preferred order.
+ BIDTAG_DesiredWidth = $80000006; // \ Nominal Width and Height of the
+ BIDTAG_DesiredHeight = $80000007; // / returned ModeID. Default - same as Nominal
+ BIDTAG_Depth = $80000008; // ModeID must support this depth. Default - vp^.RasInfo^.BitMap^.Depth or 1
+ BIDTAG_MonitorID = $80000009; // ModeID must use this monitor. Default - use best monitor available
+ BIDTAG_SourceID = $8000000a; // instead of a ViewPort. Default - VPModeID(vp) if BIDTAG_ViewPort is
+ // specified, else leave the DIPFMustHave and DIPFMustNotHave values untouched.
+ BIDTAG_RedBits = $8000000b; // \
+ BIDTAG_BlueBits = $8000000c; // > Match up from the database
+ BIDTAG_GreenBits = $8000000d; // / Default - 4
+ BIDTAG_GfxPrivate = $8000000e; // Private
+
+type
+// the "public" handle to a DisplayInfoRecord
+ DisplayInfoHandle = APTR;
+
+ PQueryHeader = ^TQueryHeader;
+ TQueryHeader = record
+ StructID, // datachunk type identifier
+ DisplayID, // copy of display record key
+ SkipID, // TAG_SKIP
+ Length: ULONG; // length of local data in double-longwords
+ end;
+
+ PDisplayInfo = ^TDisplayInfo;
+ TDisplayInfo = record
+ Header: TQueryHeader;
+ NotAvailable: Word; // If 0 DisplayInfo available, else not available -> see Constants DI_AVAIL_*
+ PropertyFlags: ULONG; // Properties of this mode (DIPF_*)
+ Resolution: TPoint; // ticks-per-pixel X/Y
+ PixelSpeed: Word; // approximation in nanoseconds
+ NumStdSprites: Word; // number of standard amiga sprites
+ PaletteRange: Word; // distinguishable shades available
+ SpriteResolution: TPoint; // std sprite ticks-per-pixel X/Y
+ pad: array[0..3] of Byte;
+ RedBits: Byte;
+ GreenBits: Byte;
+ BlueBits: Byte;
+ pad2: array[0..4] of Byte;
+ Reserved: Array[0..1] of IPTR; // terminator
+ end;
+
+const
+ // availability TDisplayInfo.NotAvailable
+ DI_AVAIL_NOCHIPS = 1 shl 0;
+ DI_AVAIL_NOMONITOR = 1 shl 1;
+ DI_AVAIL_NOTWITHGENLOCK = 1 shl 2;
+// Property Flags for TDisplayInfo.PropertyFlags
+ DIPF_IS_LACE = 1 shl 0;
+ DIPF_IS_DUALPF = 1 shl 1;
+ DIPF_IS_PF2PRI = 1 shl 2;
+ DIPF_IS_HAM = 1 shl 3;
+ DIPF_IS_ECS = 1 shl 4; // note: ECS modes (SHIRES, VGA, AND PRODUCTIVITY)
+ // do not support attached sprites.
+ DIPF_IS_PAL = 1 shl 5;
+ DIPF_IS_SPRITES = 1 shl 6;
+ DIPF_IS_GENLOCK = 1 shl 7;
+ DIPF_IS_WB = 1 shl 8;
+ DIPF_IS_DRAGGABLE = 1 shl 9;
+ DIPF_IS_PANELLED = 1 shl 10;
+ DIPF_IS_BEAMSYNC = 1 shl 11;
+ DIPF_IS_EXTRAHALFBRITE = 1 shl 12;
+ DIPF_IS_SPRITES_ATT = 1 shl 13; // supports attached sprites
+ DIPF_IS_SPRITES_CHNG_RES = 1 shl 14; // supports variable sprite resolution
+ DIPF_IS_SPRITES_BORDER = 1 shl 15; // sprite can be displayed in the border
+ DIPF_IS_AA = 1 shl 16; // AA modes - may only be available if machine has correct memory
+ // type to support required bandwidth - check availability.
+ DIPF_IS_SCANDBL = 1 shl 17; // scan doubled
+ DIPF_IS_SPRITES_CHNG_BASE = 1 shl 18; // can change the sprite base colour
+ DIPF_IS_SPRITES_CHNG_PRI = 1 shl 19; // can change the sprite priority with respect to the playfield(s).
+ DIPF_IS_DBUFFER = 1 shl 20; // can support double buffering
+ DIPF_IS_PROGBEAM = 1 shl 21; // is a programmed beam-sync mode
+ DIPF_IS_FOREIGN = 1 shl 22; // this mode is not native to the Amiga
+
+// Use these tags for passing to BestModeID()
+ SPECIAL_FLAGS = DIPF_IS_DUALPF or DIPF_IS_PF2PRI or DIPF_IS_HAM or DIPF_IS_EXTRAHALFBRITE;
+
+type
+ PDimensionInfo = ^TDimensionInfo;
+ TDimensionInfo = record
+ Header: TQueryHeader;
+ MaxDepth, // log2(max number of colors)
+ MinRasterWidth, // minimum width in pixels
+ MinRasterHeight, // minimum height in pixels
+ MaxRasterWidth, // maximum width in pixels
+ MaxRasterHeight: Word; // maximum height in pixels
+ Nominal, // "standard" dimensions
+ MaxOScan, // fixed, hardware dependant
+ VideoOScan, // fixed, hardware dependant
+ TxtOScan, // editable via preferences
+ StdOScan: TRectangle; // editable via preferences
+ Pad: array[0..13] of Byte;
+ Reserved: array[0..1] of IPTR; // terminator
+ end;
+
+ PMonitorInfo = ^TMonitorInfo;
+ TMonitorInfo = record
+ Header: TQueryHeader;
+ Mspc: PMonitorSpec; // pointer to monitor specification
+ ViewPosition, // editable via preferences
+ ViewResolution: TPoint; // standard monitor ticks-per-pixel
+ ViewPositionRange: TRectangle; // fixed, hardware dependant
+ TotalRows, // display height in scanlines
+ TotalColorClocks, // scanline width in 280 ns units
+ MinRow: Word; // absolute minimum active scanline
+ Compatibility: SmallInt; // how this coexists with others (MCOMPAT_*)
+ Pad: array[0..31] of Byte;
+ MouseTicks: TPoint;
+ DefaultViewPosition: TPoint;
+ PreferredModeID: ULONG;
+ Reserved: array[0..1] of IPTR; // terminator
+ end;
+
+const
+// monitor compatibility TMonitorInfo.Compatibility
+ MCOMPAT_NOBODY = -1; // only one viewport at a time
+ MCOMPAT_MIXED = 0; // can share display with other MCOMPAT_MIXED
+ MCOMPAT_SELF = 1; // can share only within same monitor
+
+ DISPLAYNAMELEN = 32;
+type
+ PNameInfo = ^TNameInfo;
+ TNameInfo = record
+ Header: TQueryHeader;
+ Name: array[0..DISPLAYNAMELEN - 1] of Char;
+ Reserved: array[0..1] of IPTR; // terminator
+ end;
+
+const
+ DTAG_DISP = TAG_USER;
+ DTAG_DIMS = TAG_USER + $1000;
+ DTAG_MNTR = TAG_USER + $2000;
+ DTAG_NAME = TAG_USER + $3000;
+ DTAG_VEC = TAG_USER + $4000; // internal use only
+
+type
+// The following VecInfo structure is PRIVATE, for our use only Touch these, and burn!
+ PVecInfo = ^TVecInfo;
+ TVecInfo = record
+ Header: TQueryHeader;
+ Vec: APTR;
+ Data: APTR;
+ Type_: Word; // original "Type" in C Includes
+ pad: array[0..2] of Word;
+ Reserved: array[0..1] of IPTR;
+ end;
+// AROS-specifics.
+{$ifdef aros}
+const
+// Tags for AddDisplayDriverA()
+ DDRV_BootMode = TAG_USER + $01; // (LongBool) Boot mode driver which will be
+ // unloaded when any next driver comes in, default = False
+ DDRV_MonitorID = TAG_USER + $02; // (ULONG) Monitor ID for this driver, default = next available
+ DDRV_ReserveIDs = TAG_USER + $03; // (ULONG) How many monitor IDs to reserve, default = 1
+ DDRV_KeepBootMode = TAG_USER + $04; // (LongBool) Do not shut down boot mode drivers, default = False
+ DDRV_ResultID = TAG_USER + $05; // (PLongWord) Obtain assigned monitor ID
+ DDRV_IDMask = TAG_USER + $06; // (ULONG) Use own mask for monitor ID separation
+// Return codes
+ DD_OK = 0; // No error
+ DD_NO_MEM = 1; // Out of memory
+ DD_ID_EXISTS = 2; // Specified MonitorID is already allocated
+
+type
+// This structure is subject to change! Private!
+ PMonitorHandle = ^TMonitorHandle;
+ TMonitorHandle = record
+ Next: PMonitorHandle;
+ id: ULONG;
+ mask: ULONG;
+ gfxhidd: APTR;
+ end;
+{$endif}
+
+const
+ VTAG_END_CM = $00000000;
+ VTAG_CHROMAKEY_CLR = $80000000;
+ VTAG_CHROMAKEY_SET = $80000001;
+ VTAG_BITPLANEKEY_CLR = $80000002;
+ VTAG_BITPLANEKEY_SET = $80000003;
+ VTAG_BORDERBLANK_CLR = $80000004;
+ VTAG_BORDERBLANK_SET = $80000005;
+ VTAG_BORDERNOTRANS_CLR = $80000006;
+ VTAG_BORDERNOTRANS_SET = $80000007;
+ VTAG_CHROMA_PEN_CLR = $80000008;
+ VTAG_CHROMA_PEN_SET = $80000009;
+ VTAG_CHROMA_PLANE_SET = $8000000A;
+ VTAG_ATTACH_CM_SET = $8000000B;
+ VTAG_NEXTBUF_CM = $8000000C;
+ VTAG_BATCH_CM_CLR = $8000000D;
+ VTAG_BATCH_CM_SET = $8000000E;
+ VTAG_NORMAL_DISP_GET = $8000000F;
+ VTAG_NORMAL_DISP_SET = $80000010;
+ VTAG_COERCE_DISP_GET = $80000011;
+ VTAG_COERCE_DISP_SET = $80000012;
+ VTAG_VIEWPORTEXTRA_GET = $80000013;
+ VTAG_VIEWPORTEXTRA_SET = $80000014;
+ VTAG_CHROMAKEY_GET = $80000015;
+ VTAG_BITPLANEKEY_GET = $80000016;
+ VTAG_BORDERBLANK_GET = $80000017;
+ VTAG_BORDERNOTRANS_GET = $80000018;
+ VTAG_CHROMA_PEN_GET = $80000019;
+ VTAG_CHROMA_PLANE_GET = $8000001A;
+ VTAG_ATTACH_CM_GET = $8000001B;
+ VTAG_BATCH_CM_GET = $8000001C;
+ VTAG_BATCH_ITEMS_GET = $8000001D;
+ VTAG_BATCH_ITEMS_SET = $8000001E;
+ VTAG_BATCH_ITEMS_ADD = $8000001F;
+ VTAG_VPMODEID_GET = $80000020;
+ VTAG_VPMODEID_SET = $80000021;
+ VTAG_VPMODEID_CLR = $80000022;
+ VTAG_USERCLIP_GET = $80000023;
+ VTAG_USERCLIP_SET = $80000024;
+ VTAG_USERCLIP_CLR = $80000025;
+// The following tags are V39 specific. They will be ignored (returing error -3) by earlier versions
+ VTAG_PF1_BASE_GET = $80000026;
+ VTAG_PF2_BASE_GET = $80000027;
+ VTAG_SPEVEN_BASE_GET = $80000028;
+ VTAG_SPODD_BASE_GET = $80000029;
+ VTAG_PF1_BASE_SET = $8000002a;
+ VTAG_PF2_BASE_SET = $8000002b;
+ VTAG_SPEVEN_BASE_SET = $8000002c;
+ VTAG_SPODD_BASE_SET = $8000002d;
+ VTAG_BORDERSPRITE_GET = $8000002e;
+ VTAG_BORDERSPRITE_SET = $8000002f;
+ VTAG_BORDERSPRITE_CLR = $80000030;
+ VTAG_SPRITERESN_SET = $80000031;
+ VTAG_SPRITERESN_GET = $80000032;
+ VTAG_PF1_TO_SPRITEPRI_SET = $80000033;
+ VTAG_PF1_TO_SPRITEPRI_GET = $80000034;
+ VTAG_PF2_TO_SPRITEPRI_SET = $80000035;
+ VTAG_PF2_TO_SPRITEPRI_GET = $80000036;
+ VTAG_IMMEDIATE = $80000037;
+ VTAG_FULLPALETTE_SET = $80000038;
+ VTAG_FULLPALETTE_GET = $80000039;
+ VTAG_FULLPALETTE_CLR = $8000003A;
+ VTAG_DEFSPRITERESN_SET = $8000003B;
+ VTAG_DEFSPRITERESN_GET = $8000003C;
+
+{ all the following tags follow the new, rational standard for videocontrol tags:
+ VC_xxx,state set the state of attribute 'xxx' to value 'state'
+ VC_xxx_QUERY,&var get the state of attribute 'xxx' and store it into the longword
+ pointed to by &var.
+ The following are new for V40:}
+ VC_IntermediateCLUpdate = $80000080; // default = True. When set graphics will update the intermediate copper
+ VC_IntermediateCLUpdate_Query = $80000081; // lists on color changes, etc. When false, it won't, and will be faster.
+ VC_NoColorPaletteLoad = $80000082; // default = False. When set, graphics will only load color 0
+ VC_NoColorPaletteLoad_Query = $80000083; // for this ViewPort, and so the ViewPort's colors will come from the previous ViewPort's.
+ // NB - Using this tag and VTAG_FULLPALETTE_SET together is undefined.
+ VC_DUALPF_Disable = $80000084; // default = False. When this flag is set, the dual-pf bit
+ VC_DUALPF_Disable_Query = $80000085; // in Dual-Playfield screens will be turned off. Even bitplanes
+ // will still come from the first BitMap and odd bitplanes
+ // from the second BitMap, and both R[xy]Offsets will be
+ // considered. This can be used (with appropriate palette
+ // selection) for cross-fades between differently scrolling
+ // images.
+ // When this flag is turned on, colors will be loaded for
+ // the viewport as if it were a single viewport of depth
+ // depth1+depth2
+const
+ SPRITE_ATTACHED = $80;
+
+type
+ PPSimpleSprite = ^PSimpleSprite;
+ PSimpleSprite = ^TSimpleSprite;
+ TSimpleSprite = record
+ PosCtlData: PWord;
+ Height: Word;
+ x, y: Word; // current position
+ Num: Word;
+ end;
+
+ PExtSprite = ^TExtSprite;
+ TExtSprite = record
+ es_SimpleSprite: TSimpleSprite; { conventional simple sprite structure }
+ es_WordWidth: Word; { graphics use only, subject to change }
+ es_Flags: Word; { graphics use only, subject to change }
+{$ifdef aros} // New in AROS
+ es_Bitmap: PBitmap; // Actual image data.
+{$endif}
+ end;
+
+const
+// Tags for AllocSpriteData()
+ SPRITEA_Width = $81000000;
+ SPRITEA_XReplication = $81000002;
+ SPRITEA_YReplication = $81000004;
+ SPRITEA_OutputHeight = $81000006;
+ SPRITEA_Attached = $81000008;
+ SPRITEA_OldDataFormat = $8100000a; // MUST pass in outputheight if using this tag
+// Tags for GetExtSprite()
+ GSTAG_SPRITE_NUM = $82000020;
+ GSTAG_ATTACHED = $82000022;
+ GSTAG_SOFTSPRITE = $82000024;
+// Tags valid for either GetExtSprite or ChangeExtSprite
+ GSTAG_SCANDOUBLED = $83000000; // request "NTSC-Like" height if possible.
+
+type
+// BitScaleArgs structure used by BitMapScale()
+ PBitScaleArgs = ^TBitScaleArgs;
+ TBitScaleArgs = record
+ bsa_SrcX, bsa_SrcY, // source origin
+ bsa_SrcWidth, bsa_SrcHeight, // source size
+ bsa_XSrcFactor, bsa_YSrcFactor, // scale factor denominators
+ bsa_DestX, bsa_DestY, // destination origin
+ bsa_DestWidth, bsa_DestHeight, // destination size result
+ bsa_XDestFactor, // scale factor numerators
+ bsa_YDestFactor: Word;
+ bsa_SrcBitMap, // source BitMap
+ bsa_DestBitMap: PBitMap; // destination BitMap
+ bsa_Flags: ULONG; // reserved. Must be zero!
+ bsa_XDDA, bsa_YDDA: Word; // reserved
+ bsa_Reserved1,
+ bsa_Reserved2: Longint;
+ end;
+
+const
+// tag definitions for GetRPAttr, SetRPAttr
+ RPTAG_Font = $80000000; // get/set font
+ RPTAG_APen = $80000002; // get/set apen
+ RPTAG_BPen = $80000003; // get/set bpen
+ RPTAG_DrMd = $80000004; // get/set draw mode
+ RPTAG_OutlinePen = $80000005; // get/set outline pen. corrected case.
+ RPTAG_WriteMask = $80000006; // get/set WriteMask
+ RPTAG_MaxPen = $80000007; // get/set maxpen
+ RPTAG_DrawBounds = $80000008; // get only rastport draw bounds. pass @rect
+// Extensions taken over from MorphOS
+ RPTAG_PenMode = $80000080;
+ RPTAG_FgColor = $80000081;
+ RPTAG_BgColor = $80000082;
+{$ifdef aros}
+// Extensions invented by AROS
+ RPTAG_PatternOriginX = $800000C0; // SmallInt
+ RPTAG_PatternOriginY = $800000C1; // SmallInt
+ RPTAG_ClipRectangle = $800000C2; // PRectangle Clones PRectangle.
+ RPTAG_ClipRectangleFlags = $800000C3; // LongWord
+ RPTAG_RemapColorFonts = $800000C4; // LongBool
+{$endif}
+
+// Flags for ClipRectangleFlags
+ RPCRF_RELRIGHT = $01; // ClipRectangle.MaxX is relative to right of layer/bitmap
+ RPCRF_RELBOTTOM = $02; // ClipRectangle.MaxY is relative to bottom of layer/bitmap
+ RPCRF_VALID = $04; // private
+
+type
+ PGfxBase = ^tGfxBase;
+ TGfxBase = record
+ LibNode: TLibrary;
+
+ ActiView: PView; // ViewPtr
+ CopInit: PCopInit; // ptr to copper start up list
+ Cia: PLongInt; // for 8520 resource use
+ blitter: PLongInt; // for future blitter resource use
+ LOFlist: PWord;
+ SHFlist: PWord;
+ blthd,
+ blttl: PBltNode;
+ bsblthd,
+ bsblttl: PBltNode;
+ vbsrv,
+ timsrv,
+ bltsrv: TInterrupt;
+
+ TextFonts: TList; // Fonts
+ DefaultFont: PTextFont;
+
+ Modes: Word; // copy of current first bplcon0
+ VBlank: Shortint;
+ Debug: Shortint;
+ BeamSync: SmallInt;
+ system_bplcon0: SmallInt; // it is ored into each bplcon0 for display
+ SpriteReserved: Byte;
+ bytereserved: Byte;
+ Flags: Word;
+ BlitLock: SmallInt;
+ BlitNest: SmallInt;
+
+ BlitWaitQ: TList;
+ BlitOwner: PTask;
+ TOF_WaitQ: tList;
+
+ DisplayFlags: Word; // NTSC PAL GENLOC etc. Display flags are determined at power on
+ SimpleSprites: PPSimpleSprite; // SimpleSpritePtr ptr
+
+ MaxDisplayRow: Word; // hardware stuff, do not use
+ MaxDisplayColumn: Word; // hardware stuff, do not use
+ NormalDisplayRows: Word;
+ NormalDisplayColumns: Word;
+ // the following are for standard non interlace, 1/2 wb width
+ NormalDPMX: Word; // Dots per meter on display
+ NormalDPMY: Word; // Dots per meter on display
+
+ LastChanceMemory: PSignalSemaphore;
+
+ LCMptr: PWord;
+ MicrosPerLine: Word; // 256 time usec/line
+ MinDisplayColumn: Word;
+ ChipRevBits0: Byte;
+ MemType: Byte;
+ crb_reserved: array[0..3] of Byte;
+ monitor_id: Word; // normally 0
+ hedley: array[0..7] of IPTR;
+ hedley_sprites: array[0..7] of IPTR; // sprite ptrs for intuition mouse
+ hedley_sprites1: array[0..7] of IPTR; // sprite ptrs for intuition mouse
+ hedley_count: SmallInt;
+ hedley_flags: Word;
+ hedley_tmp: SmallInt;
+
+ hash_table: ^IPTR; // Hashtable used for GfxAssociate() and GfxLookup() (private!)
+ current_tot_rows: Word;
+ current_tot_cclks: Word;
+ hedley_hint: Byte;
+ hedley_hint2: Byte;
+ nreserved: array[0..3] of ULONG;
+ a2024_sync_raster: PLongWord;
+ control_delta_pal: Word;
+ control_delta_ntsc: Word;
+
+ Current_Monitor: PMonitorSpec; // MonitorSpec used for current display
+ MonitorList: TList; // List of all MonitorSpecs in the system
+ Default_Monitor: PMonitorSpec; // MonitorSpec of "default.monitor"
+ MonitorListSemaphore: PSignalSemaphore; // Semaphore for MonitorList access
+
+ DisplayInfoDataBase: Pointer; // nil, unused by AROS
+ TopLine: Word;
+ ActiViewCprSemaphore: pSignalSemaphore; // Semaphore for active view access
+
+ UtilityBase: PUtilityBase; // for hook AND tag utilities
+ ExecBase: PExecBase; // to link with rom.lib
+
+ bwshifts: PShortInt;
+ StrtFetchMasks,
+ StopFetchMasks,
+ Overrun: PWord;
+ RealStops: PSmallInt;
+ SpriteWidth, // current width (in words) of sprites
+ SpriteFMode: Word; // current sprite fmode bits
+ SoftSprites, // bit mask of size change knowledgeable sprites
+ arraywidth: ShortInt;
+ DefaultSpriteWidth: Word; // what width intuition wants
+ SprMoveDisable: ShortInt;
+ WantChips,
+ BoardMemType,
+ Bugs: Byte;
+ gb_LayersBase: PLongWord; // layers.library base
+ ColorMask: ULONG;
+ IVector,
+ IData: APTR;
+ SpecialCounter: ULONG; // special for double buffering
+ DBList: APTR;
+ MonitorFlags: Word;
+ ScanDoubledSprites,
+ BP3Bits: Byte;
+
+ MonitorVBlank: TAnalogSignalInterval;
+ Natural_Monitor: PMonitorSpec; // Default MonitorSpec for view without explicit MonitorSpec in ViewExtra
+
+ ProgData: APTR; // nil not used in AROS
+ ExtSprites: Byte;
+ pad3: Byte;
+ GfxFlags: Word;
+ VBCounter: ULONG;
+
+ HashTableSemaphore: PSignalSemaphore; // Semaphore for hash_table access, private in fact
+
+ ChunkyToPlanarPtr: PLongWord; // HWEmul[0];
+ HWEmul: array[1..8] of PLongWord;
+ end;
+
+type
+// for SetDisplayDriverCallback
+ TDriverNotifyFunc = function (Obj: APTR; Add: LongBool; userdata: APTR): APTR; cdecl;
+
+const
+//DisplayFlags
+ // Specify some system-wide options for Amiga(tm) chipset
+ NTSC = 1 shl 0; // Default mode is NTSC
+ GENLOC = 1 shl 1; // Genlock is in use
+ PAL = 1 shl 2; // Default mode is PAL
+ TODA_SAFE = 1 shl 3;
+ REALLY_PAL = 1 shl 4;
+ LPEN_SWAP_FRAMES = 1 shl 5; // When light pen is being used on interlaced screens, swap even and odd frames
+// bits defs for ChipRevBits
+ GFXB_BIG_BLITS = 0 ;
+ GFXB_HR_AGNUS = 0 ;
+ GFXB_HR_DENISE = 1 ;
+ GFXB_AA_ALICE = 2 ;
+ GFXB_AA_LISA = 3 ;
+ GFXB_AA_MLISA = 4 ; { internal use only. }
+// Bit Values for ChipRevBits
+ GFXF_BIG_BLITS = 1 shl GFXB_BIG_BLITS;
+ GFXF_HR_AGNUS = 1 shl GFXB_HR_AGNUS;
+ GFXF_HR_DENISE = 1 shl GFXB_HR_DENISE;
+ GFXF_AA_ALICE = 1 shl GFXB_AA_ALICE;
+ GFXF_AA_LISA = 1 shl GFXB_AA_LISA;
+ GFXF_AA_MLISA = 1 shl GFXB_AA_MLISA; { internal use only }
+
+//Pass ONE of these to SetChipRev()
+ SETCHIPREV_A = GFXF_HR_AGNUS;
+ SETCHIPREV_ECS = GFXF_HR_AGNUS or GFXF_HR_DENISE;
+ SETCHIPREV_AA = GFXF_AA_ALICE or GFXF_AA_LISA or SETCHIPREV_ECS;
+ SETCHIPREV_BEST = $ffffffff;
+
+// memory type
+ BUS_16 = 0;
+ BUS_32 = 1;
+ NML_CAS = 0;
+ DBL_CAS = 2;
+
+ BANDWIDTH_1X = BUS_16 or NML_CAS;
+ BANDWIDTH_2XNML = BUS_32;
+ BANDWIDTH_2XDBL = DBL_CAS;
+ BANDWIDTH_4X = BUS_32 or DBL_CAS;
+
+ BLITMSG_FAULT = 4;
+
+{ GfxFlags (private) }
+ NEW_DATABASE = 1;
+
+ GRAPHICSNAME: PChar = 'graphics.library';
+
+var
+ GfxBase: PGfxBase;
+
+procedure AddAnimOb(AnOb: PAnimOb; AnKey: PPAnimOb; Rp: PRastPort); syscall GfxBase 26;
+procedure AddBob(Bob: PBob; Rp: PRastPort); syscall GfxBase 16;
+function AddDisplayDriverA(GfxHidd: APTR; Tags: PTagItem): LongInt; syscall GfxBase 181;
+procedure AddFont(TextFont: PTextFont); syscall GfxBase 80;
+procedure AddVSprite(VSprite: PVSprite; Rp: PRastPort); syscall GfxBase 17;
+function AllocBitMap(Sizex, Sizey, Depth, Flags: LongWord; Friend_Bitmap: PBitMap): PBitMap; syscall GfxBase 153;
+function AllocDBufInfo(Vp: PViewPort): PDBufInfo; syscall GfxBase 161;
+function AllocRaster(Width, Height: LongWord): TPlanePtr; syscall GfxBase 82;
+function AllocSpriteDataA(Bitmap: PBitMap; TagList: PTagItem): PExtSprite; syscall GfxBase 170;
+function AndRectRect(Rect1: PRectangle; Rect2: PRectangle; Intersect: PRectangle): LongBool; syscall GfxBase 193;
+procedure AndRectRegion(Reg: PRegion; Rect :PRectangle); syscall GfxBase 84;
+procedure AndRectRegionND(Reg: PRegion; Rect: PRectangle); syscall GfxBase 107;
+function AndRegionRegion(SrcRegion: PRegion; DestRegion: PRegion): LongBool; syscall GfxBase 104;
+function AndRegionRegionND(R1: PRegion; R2: PRegion): PRegion; syscall GfxBase 108;
+procedure Animate(AnKey: PPAnimOb; Rp: PRastPort); syscall GfxBase 27;
+function AreaDraw(Rp: PRastPort; x, y: SmallInt): LongWord; syscall GfxBase 43;
+function AreaEllipse(Rp: PRastPort; xCenter, yCenter, a, b: SmallInt): LongWord; syscall GfxBase 31;
+function AreaEnd(Rp: PRastPort): LongInt; syscall GfxBase 44;
+function AreaMove(Rp: PRastPort; x, y: SmallInt): LongWord; syscall GfxBase 42;
+function AreRegionsEqual(R1: PRegion; R2: PRegion): LongBool; syscall GfxBase 189;
+procedure AskFont(Rp: PRastPort; TextAttr: PTextAttr); syscall GfxBase 79;
+function AskSoftStyle(Rp: PRastPort): LongWord; syscall GfxBase 14;
+function AttachPalExtra(Cm: PColorMap; Vp: PViewPort): LongInt; syscall GfxBase 139;
+function AttemptLockLayerRom(l: PLayer): LongBool; syscall GfxBase 109;
+function BestModeIDA(Tags: PTagItem): LongWord; syscall GfxBase 175;
+procedure BitMapScale(BitScaleArgs: PBitScaleArgs); syscall GfxBase 113;
+function BltBitMap(const SrcBitMap: PBitMap; xSrc, ySrc: LongInt; DestBitMap: PBitMap; xDest, yDest, xSize, ySize: LongInt; MinTerm : LongWord; Mask: LongWord; TempA: TPlanePtr): LongInt; syscall GfxBase 5;
+procedure BltBitMapRastPort(const SrcBitMap: PBitMap; xSrc, ySrc: LongInt; DestRP: PRastPort; xDest, yDest, xSize, ySize: LongInt; MinTerm: LongWord); syscall GfxBase 101;
+procedure BltClear(MemBlock: Pointer; ByteCount: LongWord; Flags: LongWord); syscall GfxBase 50; deprecated;
+procedure BltMaskBitMapRastPort(SrcBitMap: PBitMap; xSrc, ySrc: LongInt; DestRP: PRastPort; xDest, yDest, xSize, ySize: LongInt; MinTerm: LongWord; bltMask: TPlanePtr); syscall GfxBase 106;
+procedure BltPattern(Rp: PRastPort; mask: TPlanePtr; xMin, yMin, xMax, yMax: LongInt; ByteCnt: LongWord); syscall GfxBase 52;
+procedure BltRastPortBitMap(SrcRastPort: PRastPort; xSrc, ySrc: LongInt; DestBitMap: PBitMap; xDest, yDest, xSize, ySize, MinTerm: LongWord); syscall GfxBase 196;
+procedure BltTemplate(const Source: TPlanePtr; xSrc, srcMod: LongInt; DestRP: PRastPort; xDest, yDest, xSize, ySize: LongInt); syscall GfxBase 6;
+function CalcIVG(View: PView; ViewPort: PViewPort): Word; syscall GfxBase 138; unimplemented;
+procedure CBump(CopList: PUCopList); syscall GfxBase 61;
+function ChangeExtSpriteA(Vp: PViewPort; Oldsprite: PExtSprite; NewSprite: PExtSprite; Tags: PTagItem): LongInt; syscall GfxBase 171;
+procedure ChangeSprite(Vp: PViewPort; s: PSimpleSprite; NewData: Pointer); syscall GfxBase 70; unimplemented;
+procedure ChangeVPBitMap(Vp: PViewPort; Bm: PBitMap; Db: PDBufInfo); syscall GfxBase 157;
+procedure ClearEOL(Rp: PRastPort); syscall GfxBase 7;
+function ClearRectRegion(Reg: PRegion; Rect: PRectangle): LongBool; syscall GfxBase 87;
+function ClearRectRegionND(Reg: PRegion; Rect: PRectangle): PRegion; syscall GfxBase 124;
+procedure ClearRegion(Region: PRegion); syscall GfxBase 88;
+function ClearRegionRegion(R1: PRegion; R2: PRegion): LongBool; syscall GfxBase 187;
+function ClearRegionRegionND(R1: PRegion; R2: PRegion): PRegion; syscall GfxBase 141;
+procedure ClearScreen(Rp: PRastPort); syscall GfxBase 8;
+procedure ClipBlit(SrcRP: PRastPort; xSrc, ySrc: LongInt; DestRP: PRastPort; xDest, yDest, xSize, ySize: LongInt; MinTerm: Byte); syscall GfxBase 92;
+procedure CloseFont(TextFont: PTextFont); syscall GfxBase 13;
+function CloseMonitor(Monitor_Spec: PMonitorSpec): LongInt; syscall GfxBase 120;
+procedure CMove(CopList: PUCopList; Reg: Pointer; Value: LongInt); syscall GfxBase 62;
+function CoerceMode(RealViewPort: PViewPort; MonitorID: LongWord; Flags: LongWord): LongWord; syscall GfxBase 156; unimplemented;
+function CopyRegion(Region: PRegion): PRegion; syscall GfxBase 188;
+procedure CopySBitMap(l: PLayer); syscall GfxBase 75;
+function CreateRastPort: PRastPort; syscall GfxBase 177;
+function CloneRastPort(Rp: PRastPort): PRastPort; syscall GfxBase 178;
+procedure DeinitRastPort(Rp: PRastPort); syscall GfxBase 179;
+procedure FreeRastPort(Rp: PRastPort); syscall GfxBase 180;
+procedure CWait(CopList: PUCopList; V: SmallInt; H: SmallInt); syscall GfxBase 63;
+procedure DisownBlitter; syscall GfxBase 77;
+procedure DisposeRegion(Region: PRegion); syscall GfxBase 89;
+procedure DoCollision(Rp: PRastPort); syscall GfxBase 18;
+function DoPixelFunc(Rp: PRastPort; x, y: LongInt; Render_Func: Pointer; FuncData: APTR; Do_Update: LongBool): LongInt; syscall GfxBase 185;
+function DoRenderFunc(Rp: PRastPort; Src: PPoint; Rr: PRectangle; Render_Func: Pointer; FuncData: APTR; Do_Update: LongBool): LongInt; syscall GfxBase 184;
+procedure Draw(Rp: PRastPort; x, y: LongInt); syscall GfxBase 41;
+procedure DrawEllipse(Rp: PRastPort; xCenter, yCenter, a, b: LongInt); syscall GfxBase 30;
+procedure DrawGList(Rp: PRastPort; Vp: PViewPort); syscall GfxBase 19;
+procedure EraseRect(Rp: PRastPort; xMin, yMin, xMax, yMax: LongInt); syscall GfxBase 135;
+function ExtendFont(Font: PTextFont; FontTags: PTagItem): LongWord; syscall GfxBase 136;
+function FillRectPenDrMd(Rp: PRastPort; x1, y1, x2, y2: LongInt; Pix: Pointer{HIDDT_Pixel}; drmd: Pointer{HIDDT_DrawMode}; Do_Update: LongBool): LongInt; syscall GfxBase 183;
+function FindColor(Cm: PColorMap; r, g, b, MaxPen: LongWord): LongWord; syscall GfxBase 168;
+function FindDisplayInfo(ID: LongWord): DisplayInfoHandle; syscall GfxBase 121;
+function Flood(Rp: PRastPort; Mode: LongWord; x, y: LongInt): LongBool; syscall GfxBase 55;
+procedure FontExtent(Font: PTextFont; FontExtent: PTextExtent); syscall GfxBase 127;
+procedure FreeBitMap(Bm: PBitMap); syscall GfxBase 154;
+procedure FreeColorMap(ColorMap: PColorMap); syscall GfxBase 96;
+procedure FreeCopList(CopList: PCopList); syscall GfxBase 91;
+procedure FreeCprList(CprList: PCprList); syscall GfxBase 94;
+procedure FreeDBufInfo(Dbi: PDBufInfo); syscall GfxBase 162;
+procedure FreeGBuffers(AnOb: PAnimOb; Rp: PRastPort; db: LongBool); syscall GfxBase 100;
+procedure FreeRaster(p: TPlanePtr; Width, Height: LongWord); syscall GfxBase 83;
+procedure FreeSprite(Pick: SmallInt); syscall GfxBase 69;
+procedure FreeSpriteData(ExtSp: PExtSprite); syscall GfxBase 172;
+procedure FreeVPortCopLists(Vp: PViewPort); syscall GfxBase 90;
+function GetAPen(Rp: PRastPort): LongWord; syscall GfxBase 143;
+function GetBitMapAttr(BitMap: PBitMap; Attribute: LongWord): IPTR; syscall GfxBase 160;
+function GetBPen(Rp: PRastPort): LongWord; syscall GfxBase 144;
+function GetColorMap(Entries: LongWord): PColorMap; syscall GfxBase 95;
+function GetDisplayInfoData(Handle: DisplayInfoHandle; Buf: PChar; Size: LongWord; TagID: LongWord; ID: LongWord): LongWord; syscall GfxBase 126;
+function GetDrMd(Rp: PRastPort): LongWord; syscall GfxBase 145;
+function GetExtSpriteA(Sprite: PExtSprite; Tags: PTagItem): LongInt; syscall GfxBase 155;
+function GetGBuffers(AnOb: PAnimOb; Rp: PRastPort; Db: LongBool): LongBool; syscall GfxBase 28;
+function GetOutlinePen(Rp: PRastPort): LongWord; syscall GfxBase 146;
+procedure GetRGB32(Cm: PColorMap; FirstColor: LongWord; NColors: LongWord; Table: PLongWord); syscall GfxBase 150;
+function GetRGB4(ColorMap: PColorMap; Entry: LongInt): LongWord; syscall GfxBase 97;
+procedure GetRPAttrsA(Rp: PRastPort; Tags: PTagItem); syscall GfxBase 174;
+function GetSprite(Sprite: PSimpleSprite; Pick: SmallInt): SmallInt; syscall GfxBase 68;
+function GetVPModeID(Vp: PViewPort): LongWord; syscall GfxBase 132;
+procedure GfxAssociate(Pointer_: Pointer; Node: PExtendedNode); syscall GfxBase 112;
+procedure GfxFree(Node: PExtendedNode); syscall GfxBase 111;
+function GfxLookUp(Pointer_: Pointer): PExtendedNode; syscall GfxBase 117;
+function GfxNew(Node_Type: LongWord): PExtendedNode; syscall GfxBase 110;
+procedure InitArea(AreaInfo: PAreaInfo; Buffer: Pointer; MaxVectors: SmallInt); syscall GfxBase 47;
+procedure InitBitMap(Bm: PBitMap; Depth: ShortInt; Width, Height: Word); syscall GfxBase 65;
+procedure InitGels(Head: PVSprite; Tail: PVSprite; GelsInfo: PGelsInfo); syscall GfxBase 20;
+procedure InitGMasks(AnOb: PAnimOb); syscall GfxBase 29;
+procedure InitMasks(VSprite: PVSprite); syscall GfxBase 21;
+procedure InitRastPort(Rp: PRastPort); syscall GfxBase 33;
+function InitTmpRas(TmpRas: PTmpRas; Buffer: Pointer; Size: LongWord): PTmpRas; syscall GfxBase 78;
+procedure InitView(View: PView); syscall GfxBase 60;
+procedure InitVPort(Vp: PViewPort); syscall GfxBase 34;
+function IsPointInRegion(Reg: PRegion; x, y: SmallInt): LongBool; syscall GfxBase 190;
+procedure LoadRGB32(Vp: PViewPort; const Table: PLongWord); syscall GfxBase 147;
+procedure LoadRGB4(Vp: PViewPort; Colors: PWord; Count: LongInt); syscall GfxBase 32;
+procedure LoadView(View: PView); syscall GfxBase 37;
+procedure LockLayerRom(l: PLayer); syscall GfxBase 72;
+function MakeVPort(View: PView; ViewPort: PViewPort): LongWord; syscall GfxBase 36;
+function ModeNotAvailable(ModeID: LongWord): LongWord; syscall GfxBase 133;
+procedure GfxMove(Rp: PRastPort; x, y: SmallInt); syscall GfxBase 40;
+procedure MoveSprite(Vp: PViewPort; Sprite: PSimpleSprite; x, y: SmallInt); syscall GfxBase 71;
+function MrgCop(View: PView): LongWord; syscall GfxBase 35;
+function NewRectRegion(MinX, MinY, MaxX, MaxY: SmallInt): PRegion; syscall GfxBase 194;
+function NewRegion: PRegion; syscall GfxBase 86;
+function NextDisplayInfo(Last_ID: LongWord): LongWord; syscall GfxBase 122;
+function ObtainBestPenA(Cm: PColorMap; r, g, b: LongWord; Tags: PTagItem): LongInt; syscall GfxBase 140;
+function ObtainPen(Cm: PColorMap; n, r, g, b: LongWord; Flags: LongWord): LongInt; syscall GfxBase 159;
+function OpenFont(TextAttr: PTextAttr): PTextFont; syscall GfxBase 12;
+function OpenMonitor(MonitorName: STRPTR; DisplayID: LongWord): PMonitorSpec; syscall GfxBase 119;
+function OrRectRegion(Reg: PRegion; Rect: PRectangle): LongBool; syscall GfxBase 85;
+function OrRectRegionND(Reg: PRegion; Rect: PRectangle): PRegion; syscall GfxBase 123;
+function OrRegionRegion(SrcRegion: PRegion; DestRegion: PRegion): LongBool; syscall GfxBase 102;
+function OrRegionRegionND(R1: PRegion; R2: PRegion): PRegion; syscall GfxBase 125;
+procedure OwnBlitter; syscall GfxBase 76;
+procedure PolyDraw(Rp: PRastPort; Count: LongInt; PolyTable: PSmallInt); syscall GfxBase 56;
+procedure QBlit(Blit: PBltNode); syscall GfxBase 46;
+procedure QBSBlit(Blit: PBltNode); syscall GfxBase 49;
+function ReadPixel(Rp: PRastPort; x, y: LongInt): LongInt; syscall GfxBase 53;
+function ReadPixelArray8(Rp: PRastPort; xStart, yStart, xStop, yStop: LongWord; Array_: PByte; TempRp: PRastPort): LongInt; syscall GfxBase 130;
+function ReadPixelLine8(Rp: PRastPort; xStart, yStart, Width: LongWord; Array_: PByte; TempRP: PRastPort): LongInt; syscall GfxBase 128;
+procedure RectFill(Rp: PRastPort; xMin, yMin, xMax, yMax : LongInt); syscall GfxBase 51;
+procedure ReleasePen(Cm: PColorMap; n: LongWord); syscall GfxBase 158;
+procedure RemFont(TextFont: PTextFont); syscall GfxBase 81;
+procedure RemIBob(Bob: PBob; Rp: PRastPort; Vp: PViewPort); syscall GfxBase 22;
+procedure RemVSprite(VSprite: PVSprite); syscall GfxBase 23;
+function ScalerDiv(Factor: LongWord; Numerator: LongWord; Denominator: LongWord): Word; syscall GfxBase 114;
+procedure ShowImminentReset; syscall GfxBase 197;
+procedure ScrollRaster(Rp: PRastPort; dx, dy, xMin, yMin, xMax, yMax: LongInt); syscall GfxBase 66;
+procedure ScrollRasterBF(Rp: PRastPort; dx, dy, xMin, yMin, xMax, yMax: LongInt); syscall GfxBase 167;
+function ScrollRegion(Region: PRegion; Rect: PRectangle; Dx, Dy: SmallInt): LongBool; syscall GfxBase 191;
+procedure ScrollVPort(Vp: PViewPort); syscall GfxBase 98;
+procedure SetABPenDrMd(Rp: PRastPort; APen: LongWord; BPen: LongWord; DrawMode: LongWord); syscall GfxBase 149;
+procedure SetAPen(Rp: PRastPort; Pen: LongWord); syscall GfxBase 57;
+procedure SetBPen(Rp: PRastPort; Pen: LongWord); syscall GfxBase 58;
+function SetChipRev(ChipRev: LongWord): LongWord; platform; syscall GfxBase 148;
+procedure SetCollision(Num: LongWord; Routine: TProcedure; GInfo: PGelsInfo); syscall GfxBase 24;
+procedure SetDisplayDriverCallback(CallBack: TDriverNotifyFunc; UserData: APTR); syscall GfxBase 186;
+procedure SetDrMd(Rp: PRastPort; DrawMode: LongWord); syscall GfxBase 59;
+procedure SetFont(Rp: PRastPort; TextFont: PTextFont); syscall GfxBase 11;
+procedure SetMaxPen(Rp: PRastPort; MaxPen: LongWord); syscall GfxBase 165;
+function SetOutlinePen(Rp: PRastPort; Pen: LongWord): LongWord; syscall GfxBase 163;
+procedure SetRast(Rp: PRastPort; Pen: LongWord); syscall GfxBase 39;
+function SetRegion(Src: PRegion; Dest: PRegion): LongBool; syscall GfxBase 195;
+procedure SetRGB32(Vp: PViewPort; n, r, g, b : LongWord); syscall GfxBase 142;
+procedure SetRGB32CM(Cm: PColorMap; n, r, g, b: LongWord); syscall GfxBase 166;
+procedure SetRGB4(Vp: PViewPort; n, r, g, b: LongWord); syscall GfxBase 48;
+procedure SetRGB4CM(Cm: PColorMap; n: SmallInt; r, g, b: Byte); syscall GfxBase 105;
+procedure SetRPAttrsA(Rp: PRastPort; Tags: PTagItem); syscall GfxBase 173;
+function SetSoftStyle(Rp: PRastPort; Style: LongWord; Enable: LongWord): LongWord; syscall GfxBase 15;
+function SetWriteMask(Rp: PRastPort; Mask: LongWord): LongWord; syscall GfxBase 164;
+procedure SortGList(Rp: PRastPort); syscall GfxBase 25;
+procedure StripFont(Font: PTextFont); syscall GfxBase 137;
+function SwapRegions(Region1: PRegion; Region2: PRegion; Intersect: PRectangle): LongBool; syscall GfxBase 192;
+procedure SyncSBitMap(l: PLayer); syscall GfxBase 74;
+procedure GfxText(Rp: PRastPort; const String_: STRPTR; Count: LongWord); syscall GfxBase 10;
+procedure TextExtent(Rp: PRastPort; const String_: STRPTR; Count: LongWord; TextExtent_: PTextExtent); syscall GfxBase 115;
+function TextFit(Rp: PRastPort; const String_: STRPTR; StrLen: LongWord; TextExtent_: PTextExtent; ConstrainingExtent: PTextExtent; StrDirection: LongInt; ConstrainingBitWidth: LongWord; ConstrainingBitHeight: LongWord): LongWord; syscall GfxBase 116;
+function TextLength(Rp: PRastPort; const string_: STRPTR; Count: LongWord): SmallInt; syscall GfxBase 9;
+function UCopperListInit(Ucl: PUCopList; n: SmallInt): PCopList; syscall GfxBase 99;
+procedure UnlockLayerRom(l: PLayer); syscall GfxBase 73;
+function VBeamPos: LongInt; platform; syscall GfxBase 64;
+function VideoControl(Cm: PColorMap; Tags: PTagItem): LongWord; syscall GfxBase 118; unimplemented;
+procedure WaitBlit; syscall GfxBase 38; unimplemented;
+procedure WaitBOVP(Vp: PViewPort); syscall GfxBase 67; unimplemented;
+procedure WaitTOF; syscall GfxBase 45;
+function WeighTAMatch(ReqTextAttr: PTextAttr; TargetTextAttr: PTextAttr; TargetTags: PTagItem): SmallInt; syscall GfxBase 134;
+procedure WriteChunkyPixels(Rp: PRastPort; xStart, yStart, xStop, yStop: LongWord; Array_: PByte; BytesPerRow: LongInt); syscall GfxBase 176;
+function WritePixel(Rp: PRastPort; x, y: LongInt): LongInt; syscall GfxBase 54;
+function WritePixelArray8(Rp: PRastPort; xStart, yStart, xStop, yStop: LongWord; Array_: PByte; TempRp: PRastPort): LongInt; syscall GfxBase 131;
+function WritePixelLine8(Rp: PRastPort; xStart, yStart, Width: LongWord; Array_: PByte; TempRP: PRastPort): LongInt; syscall GfxBase 129;
+function WritePixels8(Rp: PRastPort; Array_: PByte; Modulo: LongWord; xStart, yStart, xStop, yStop: LongWord; PixLUT: Pointer{PHIDDT_PixelLUT}; Do_Update: LongBool): LongInt; syscall GfxBase 182;
+function XorRectRegion(Reg: PRegion; Rect: PRectangle): LongBool; syscall GfxBase 93;
+function XorRectRegionND(Reg: PRegion; Rect: PRectangle): PRegion; syscall GfxBase 152;
+function XorRegionRegion(SrcRegion: PRegion; DestRegion: PRegion): LongBool; syscall GfxBase 103;
+function XorRegionRegionND(R1: PRegion; R2: PRegion): PRegion; syscall GfxBase 151;
+
+function BestModeID(Tags: array of const): LongWord;
+function AllocSpriteData(Bitmap: PBitMap; Tags: array of const): PExtSprite;
+function ChangeExtSprite(Vp: PViewPort; Oldsprite: PExtSprite; NewSprite: PExtSprite; Tags: array of const): LongInt;
+function ExtendFontTags(Font: PTextFont; Tags: array of const): LongWord;
+function GetExtSprite(Sprite: PExtSprite; Tags: array of const): LongInt;
+procedure GetRPAttrs(Rp: PRastPort; Tags: array of const);
+function ObtainBestPen(Cm: PColorMap; r, g, b: LongWord; Tags: array of const): LongInt;
+procedure SetRPAttrs(Rp: PRastPort; Tags: array of const);
+function VideoControlTags(Cm: PColorMap; Tags: array of const): LongWord; unimplemented;
+
+// gfxmacros
+
+// This one is used for determining optimal offset for blitting into cliprects
+function Align_Offset(x: Pointer): Pointer;
+function Is_Visible(l: PLayer): Boolean;
+procedure InitAnimate(var Animkey: PAnimOb);
+procedure RemBob(B: PBob);
+
+function RasSize(w, h: Word): Integer;
+function BitmapFlags_are_Extended(f: LongInt): Boolean;
+function GetTextFontReplyPort(Font: PTextFont): PMsgPort;
+
+procedure BNDRYOFF(w: PRastPort);
+
+procedure SetAfPt(w: PRastPort; p: Pointer; n: Byte);
+procedure SetDrPt(w: PRastPort; p: Word);
+procedure SetOPen(w: PRastPort; c: Byte);
+procedure SetWrMsk(w: PRastPort; m: Byte);
+
+function SetAOlPen(Rp: PRastPort; Pen: LongWord): LongWord;
+
+procedure DrawCircle(Rp: PRastPort; xCenter, yCenter, r: LongInt);
+function AreaCircle(Rp: PRastPort; xCenter, yCenter, r: SmallInt): LongWord;
+
+// Copper helper
+function CINIT(c: PUCopList; n: SmallInt): PCopList;
+procedure CMOVE1(c: PUCopList; a: Pointer; b: LongInt);
+procedure CWAIT1(c: PUCopList; a: SmallInt; b: SmallInt);
+procedure CEND(c: PUCopList);
+
+implementation
+
+uses
+ tagsarray;
+
+function BestModeID(Tags: array of const): LongWord;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ Result := BestModeIDA(GetTagPtr(TagList));
+end;
+
+function AllocSpriteData(Bitmap: PBitMap; Tags: array of const): PExtSprite;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ Result := AllocSpriteDataA(Bitmap, GetTagPtr(TagList));
+end;
+
+function ChangeExtSprite(Vp: PViewPort; Oldsprite: PExtSprite; NewSprite: PExtSprite; Tags: array of const): LongInt;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ Result := ChangeExtSpriteA(Vp, Oldsprite, NewSprite, GetTagPtr(TagList));
+end;
+
+function ExtendFontTags(Font: PTextFont; Tags: array of const): LongWord;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ Result := ExtendFont(Font, GetTagPtr(TagList));
+end;
+
+function GetExtSprite(Sprite: PExtSprite; Tags: array of const): LongInt;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ Result := GetExtSpriteA(Sprite, GetTagPtr(TagList));
+end;
+
+procedure GetRPAttrs(Rp: PRastPort; Tags: array of const);
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ GetRPAttrsA(Rp, GetTagPtr(TagList));
+end;
+
+function ObtainBestPen(Cm: PColorMap; r, g, b: LongWord; Tags: array of const): LongInt;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ Result := ObtainBestPenA(Cm, r, g, b, GetTagPtr(TagList));
+end;
+
+procedure SetRPAttrs(Rp: PRastPort; Tags: array of const);
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ SetRPAttrsA(Rp, GetTagPtr(TagList));
+end;
+
+function VideoControlTags(Cm: PColorMap; Tags: array of const): LongWord;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ {$WARNINGS OFF} // suppress unimplemented Warning
+ Result := VideoControl(Cm, GetTagPtr(TagList));
+ {$WARNINGS ON}
+end;
+
+function Align_Offset(x: Pointer): Pointer; inline;
+begin
+ Align_Offset := Pointer(PtrUInt(x) and $0F);
+end;
+
+function Is_Visible(l: PLayer): Boolean; inline;
+begin
+ Is_Visible := l^.Visible <> 0;
+end;
+
+procedure InitAnimate(var AnimKey: PAnimOb); inline;
+begin
+ AnimKey := nil;
+end;
+
+procedure RemBob(B: PBob); inline;
+begin
+ B^.Flags := B^.Flags or BOBSAWAY;
+end;
+
+function RasSize(w, h: Word): Integer; inline;
+begin
+ Result := h * (((w + 15) shr 3) and $FFFE);
+end;
+
+function BitmapFlags_are_Extended(f: LongInt): Boolean; inline;
+begin
+ BitmapFlags_are_Extended := (f and BMF_CHECKMASK) = BMF_CHECKVALUE;
+end;
+
+function GetTextFontReplyPort(Font: PTextFont): PMsgPort; inline;
+var
+ tfe: PTextFontExtension;
+begin
+ tfe := PTextFontExtension(ExtendFont(Font, nil));
+ if Assigned(tfe) then
+ GetTextFontReplyPort := tfe^.tfe_OrigReplyPort
+ else
+ GetTextFontReplyPort := Font^.tf_Message.mn_ReplyPort;
+end;
+
+function SetAOlPen(Rp: PRastPort; Pen: LongWord): LongWord; inline;
+begin
+ Result := SetOutlinePen(Rp, Pen);
+end;
+
+procedure BNDRYOFF (w: PRastPort); inline;
+begin
+ w^.Flags := w^.Flags and (not AREAOUTLINE);
+end;
+
+procedure SetAfPt(w: PRastPort; p: Pointer; n: Byte); inline;
+begin
+ w^.AreaPtrn := p;
+ w^.AreaPtSz := n;
+end;
+
+procedure SetDrPt(w: PRastPort; p: Word); inline;
+begin
+ w^.LinePtrn := p;
+ w^.Flags := w^.Flags or (FRST_DOT or $10);
+ w^.linpatcnt := 15;
+end;
+
+procedure SetOPen(w: PRastPort; c: Byte); inline;
+begin
+ w^.AOlPen := c;
+ w^.Flags := w^.Flags or AREAOUTLINE;
+end;
+
+{ This function is fine, but FOR OS39 the SetWriteMask() gfx function
+ should be prefered because it SHOULD operate WITH gfx boards as well.
+ At least I hope it does.... }
+procedure SetWrMsk(w: PRastPort; m: Byte); inline;
+begin
+ w^.Mask := m;
+end;
+
+procedure DrawCircle(Rp: PRastPort; xCenter, yCenter, r: LongInt); inline;
+begin
+ DrawEllipse(Rp, xCenter, yCenter, r, r);
+end;
+
+function AreaCircle(Rp: PRastPort; xCenter, yCenter, r: SmallInt): LongWord; inline;
+begin
+ Result := AreaEllipse(Rp, xCenter, yCenter, r, r);
+end;
+
+function CINIT(c: PUCopList; n: SmallInt): PCopList; inline;
+begin
+ Result := UCopperListInit(c, n);
+end;
+
+procedure CMOVE1(c: PUCopList; a: Pointer; b: LongInt);
+begin
+ CMove(c, a, b);
+ CBump(c);
+end;
+
+procedure CWait1(c: PUCopList; a: SmallInt; b: SmallInt); inline;
+begin
+ CWait(c, a, b);
+ CBump(c);
+end;
+
+procedure CEND(c: PUCopList); inline;
+begin
+ CWAIT(c, 10000, 255);
+end;
+
+initialization
+ GfxBase := PGfxBase(OpenLibrary(GRAPHICSNAME, 36));
+finalization
+ CloseLibrary(PLibrary(GfxBase));
+end.
+
+
+
+
+
+
diff --git a/packages/arosunits/src/amigados.pas b/packages/arosunits/src/amigados.pas
new file mode 100644
index 0000000000..3aabca6ff5
--- /dev/null
+++ b/packages/arosunits/src/amigados.pas
@@ -0,0 +1,2199 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ dos.library 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.
+
+ **********************************************************************}
+{
+ missing elf.h // Elfheader
+ BSTR Funktions
+
+ defines:
+ AROS_FAST_BPTR: BPTR is a pointer or a 2 shifted Pointer
+ -> atm its standard ABIv0, for v1 needs a ifdef
+}
+
+{$define AROS_FAST_BPTR}
+
+unit amigados;
+{$mode objfpc}
+interface
+
+uses
+ exec, utility, timer;
+
+{$PACKRECORDS C}
+
+const
+{ Predefined Amiga DOS global constants }
+ DOSTRUE = -1;
+ DOSFALSE = 0;
+ TICKS_PER_SECOND = 50; { Number of ticks in one second }
+
+ // Still to TEST
+ BITSPERBYTE = 8;
+ BYTESPERLONG = 4;
+ BITSPERLONG = 32;
+
+type
+ FileHandle = BPTR;
+ FileLock = BPTR;
+
+{* All BCPL data must be long Integer aligned. BCPL pointers are the long Integer
+ * address (i.e byte address divided by 4 (>>2)) *}
+
+{* BCPL strings have a length in the first byte and then the characters.
+ * For example: s[0]=3 s[1]=S s[2]=Y s[3]=S *}
+
+
+
+const
+// DOS functions will return this when they reach EOF. */
+ ENDSTREAMCH = -1;
+// Buffering types for SetVBuf().
+ BUF_LINE = 0; // Flush at the end of lines '\n'.
+ BUF_FULL = 1; // Flush only when buffer is full.
+ BUF_NONE = 2; // Do not buffer, read and write immediatly.
+
+type
+ PDateStamp = ^TDateStamp;
+ TDateStamp = record
+ ds_Days: Longint; { Number of days since Jan. 1, 1978 }
+ ds_Minute: Longint; { Number of minutes past midnight }
+ ds_Tick: Longint; { Number of ticks past minute }
+ end;
+
+const
+{ The maximum length of filenames in AmigaOS. You should not depend on
+ this value, as it may change in future versions.}
+ MAXFILENAMELENGTH = 108;
+
+{ The maximum length of comments in AmigaOS. You should not depend on
+ this value, as it may change in future versions.}
+ MAXCOMMENTLENGTH = 80;
+
+type
+{ Returned by Examine() and ExInfo(), must be on a 4 byte boundary
+ Structure used to describe a directory entry. Note that not all fields
+ are supported by all filesystems. This structure should be allocated
+ with AllocDosObject(). }
+ PFileInfoBlock = ^TFileInfoBlock;
+ TFileInfoBlock = record
+ fib_DiskKey: IPTR;
+ fib_DirEntryType: LongInt; // type of Directory. If < 0, then a plain file. If > 0 a directory
+ fib_FileName: array [0..MAXFILENAMELENGTH - 1] of Char; // Null terminated. Max 30 chars used for now
+ fib_Protection: LongInt; // bit mask of protection, rwxd are 3-0.
+ fib_EntryType: LongInt;
+ fib_Size: LongInt; // Number of bytes in file
+ fib_NumBlocks: LongInt; // Number of blocks in file
+ fib_Date: TDateStamp; // Date file last changed
+ fib_Comment: array [0..MAXCOMMENTLENGTH - 1] of Char; // Null terminated comment associated with file
+ fib_OwnerUID: Word; // UserID of fileowner.
+ fib_OwnerGID: Word; // GroupID of fileowner.
+ fib_Reserved: array [0..31] of Char; // PRIVATE
+ end;
+
+const
+{ FIB stands for TFileInfoBlock (fib_Protection)}
+
+{ FIBB are bit definitions, FIBF are field definitions
+ Regular RWED bits are 0 == allowed.
+ NOTE: GRP and OTR RWED permissions are 0 == not allowed!
+ Group and Other permissions are not directly handled by the filesystem}
+ FIBB_DELETE = 0; // prevent file from being deleted }
+ FIBB_EXECUTE = 1; // ignored by system, used by Shell }
+ FIBB_WRITE = 2; // ignored by old filesystem }
+ FIBB_READ = 3; // ignored by old filesystem }
+ FIBB_ARCHIVE = 4; // cleared whenever file is changed }
+ FIBB_PURE = 5; // program is reentrant and rexecutable}
+ FIBB_SCRIPT = 6; // program is a script (execute) file }
+// group flags
+ FIBB_GRP_DELETE = 8; // Group: prevent file from being deleted *}
+ FIBB_GRP_EXECUTE = 9; // Group: file is executable *}
+ FIBB_GRP_WRITE = 10; // Group: file is writable *}
+ FIBB_GRP_READ = 11; // Group: file is readable *}
+// other
+ FIBB_OTR_DELETE = 12; // Other: prevent file from being deleted *}
+ FIBB_OTR_EXECUTE = 13; // Other: file is executable *}
+ FIBB_OTR_WRITE = 14; // Other: file is writable *}
+ FIBB_OTR_READ = 15; // Other: file is readable *}
+// Values
+ FIBF_DELETE = (1 shl FIBB_DELETE);
+ FIBF_EXECUTE = (1 shl FIBB_EXECUTE);
+ FIBF_WRITE = (1 shl FIBB_WRITE);
+ FIBF_READ = (1 shl FIBB_READ);
+ FIBF_ARCHIVE = (1 shl FIBB_ARCHIVE);
+ FIBF_PURE = (1 shl FIBB_PURE);
+ FIBF_SCRIPT = (1 shl FIBB_SCRIPT);
+// Group Values
+ FIBF_GRP_DELETE = (1 shl FIBB_GRP_DELETE);
+ FIBF_GRP_EXECUTE = (1 shl FIBB_GRP_EXECUTE);
+ FIBF_GRP_WRITE = (1 shl FIBB_GRP_WRITE);
+ FIBF_GRP_READ = (1 shl FIBB_GRP_READ);
+// Other Values
+ FIBF_OTR_DELETE = (1 shl FIBB_OTR_DELETE);
+ FIBF_OTR_EXECUTE = (1 shl FIBB_OTR_EXECUTE);
+ FIBF_OTR_WRITE = (1 shl FIBB_OTR_WRITE);
+ FIBF_OTR_READ = (1 shl FIBB_OTR_READ);
+
+// Devices
+type
+{ returned by Info(), must be on a 4 byte boundary }
+ PInfoData = ^TInfoData;
+ TInfoData = record
+ id_NumSoftErrors: LongInt; // Number of soft errors on disk
+ id_UnitNumber: LongInt; // Which unit disk is (was) mounted on
+ id_DiskState: LongInt; // Dtate of Volume See defines below
+ id_NumBlocks: LongInt; // Number of blocks on device
+ id_NumBlocksUsed: LongInt; // Number of block in use
+ id_BytesPerBlock: LongInt; // Bytes per Block
+ id_DiskType: LongInt; // Type of Disk
+ id_VolumeNode: BPTR; // BCPL pointer to volume node
+ id_InUse: IPTR; // Flag, zero if not in use
+ end;
+
+ {$PACKRECORDS NORMAL}
+
+const
+ { ID stands for InfoData }
+{ Disk states }
+ ID_WRITE_PROTECTED = 80; // Disk is write protected
+ ID_VALIDATING = 81; // Disk is currently being validated
+ ID_VALIDATED = 82; // Disk is consistent and writeable
+{ Filesystem types as used for id_DiskType. These are multi-character
+ constants of identifier strings. They are self-descriptive.}
+ ID_NO_DISK_PRESENT = -1;
+ ID_UNREADABLE_DISK = $42414400; // 'BAD#0'
+ ID_DOS_DISK = $444F5300; // 'DOS#0'
+ ID_FFS_DISK = $444F5301; // 'DOS#1'
+ ID_INTER_DOS_DISK = $444F5302; // 'DOS#2'
+ ID_INTER_FFS_DISK = $444F5303; // 'DOS#3'
+ ID_FASTDIR_DOS_DISK = $444F5304; // 'DOS#4'
+ ID_FASTDIR_FFS_DISK = $444F5305; // 'DOS#5'
+ ID_NOT_REALLY_DOS = $4E444F53; // 'NDOS'
+ ID_KICKSTART_DISK = $4B49434B; // 'KICK'
+ ID_MSDOS_DISK = $4d534400; // 'MSD#0'
+ ID_SFS_BE_DISK = $53465300; // 'SFS#0'
+ ID_SFS_LE_DISK = $73667300; // 'sfs#0'
+{ These are the return codes used by convention by AmigaDOS commands
+ See FAILAT and IF for relvance to EXECUTE files}
+ // No Problem, success
+ RETURN_OK = 0;
+ { Program succeeded, but there was something not quite right.
+ This value may also be used to express a boolean state
+ (RETURN_WARN meaning TRUE, RETURN_OK meaning FALSE).}
+ RETURN_WARN = 5;
+ { Program succeeded partly. This may be returned, if the user aborts a
+ program or some external data were wrong.}
+ RETURN_ERROR = 10; // Something wrong
+ { Program execution failed. Normally used, if some system resources could
+ not be allocated.}
+ RETURN_FAIL = 20; // Complete or severe failure
+
+{ Secondary errors codes as used for IoErr(), SetIoErr() and in
+ Process^.pr_Result2. The term 'object' refers to files of all kinds
+ (ie plain files, directories, links, etc).}
+
+ {This is used, if something went wrong, but it is unknown what exactly
+ went wrong. This is especially useful for emulation devices, when the
+ underlying system returned an error that the emulation side does not
+ know.}
+ ERROR_UNKNOWN = 100;
+//General system errors
+ ERROR_NO_FREE_STORE = 103; // Out of memory.
+ ERROR_TASK_TABLE_FULL = 105; // Too many tasks are already running.
+//Errors concerning ReadArgs().
+ ERROR_BAD_TEMPLATE = 114; // Supplied template is broken
+ ERROR_BAD_NUMBER = 115; { A supplied argument that was expected to be numeric, was not numeric.
+ This is also returned by some functions to expresss that a supplied
+ number is out of range (ie to express application internal errors).}
+ ERROR_REQUIRED_ARG_MISSING = 116; // An argument that has to be supplied (ie signed with the '/A' flag) was not supplied.
+ ERROR_KEY_NEEDS_ARG = 117; // Keyword was specified, but not its contents.
+ ERROR_TOO_MANY_ARGS = 118; // There were more arguments than the template needs.
+ ERROR_UNMATCHED_QUOTES = 119; // An odd number of quotation marks was supplied.
+ ERROR_LINE_TOO_LONG = 120; { Either the command-line was longer than hardcoded line length limit or the
+ maximum number of multiple arguments (flag '/M') was exceeded. This can
+ also indicate that some argument is too long or a supplied buffer is too small.}
+// Errors in files.
+ ERROR_FILE_NOT_OBJECT = 121; // You tried to execute a file that is not an executable.
+ ERROR_INVALID_RESIDENT_LIBRARY = 122; // A library or device could not be opened or that library or device is broken.
+ ERROR_NO_DEFAULT_DIR = 201;
+ ERROR_OBJECT_IN_USE = 202; // The accessed object is already in use (eg locked) by another task.
+ ERROR_OBJECT_EXISTS = 203; // You tried to overwrite an object.
+ ERROR_DIR_NOT_FOUND = 204; // The given directory or the path of a given object does not exist.
+ ERROR_OBJECT_NOT_FOUND = 205; // The given object does not exist.
+// Miscellaneous errors.
+ ERROR_BAD_STREAM_NAME = 206;
+ ERROR_OBJECT_TOO_LARGE = 207; { The given object is too large for the operation to be made. Object is
+ this context are for example components of path-names.}
+ ERROR_ACTION_NOT_KNOWN = 209; { This is usually used to indicate that a filesystem does not support a
+ certain action, but may generally also be used by functions.}
+ ERROR_INVALID_COMPONENT_NAME = 210; // A path component was invalid (eg there were multiple colons in a path name
+ ERROR_INVALID_LOCK = 211;
+ ERROR_OBJECT_WRONG_TYPE = 212; { You tried to perform an action on an object, which this kind of object
+ does not support (eg makedir on a file).}
+ ERROR_DISK_NOT_VALIDATED = 213; // Writing failed, because the volume is not validated.
+ ERROR_DISK_WRITE_PROTECTED = 214; // Writing failed, because the volume is write-protected.
+ ERROR_RENAME_ACROSS_DEVICES = 215; { You tried to move/rename a file across different devices. Rename does only
+ work on the same device, as only the inode-data has to be changed to
+ perform that action.}
+ ERROR_DIRECTORY_NOT_EMPTY = 216; // You tried to delete a directory that still contains some files. Delete these files first.
+ ERROR_TOO_MANY_LEVELS = 217; // A recursive directory search could not be performed, because the stack was too small.
+ ERROR_DEVICE_NOT_MOUNTED = 218; // You tried to access a device that is currently not mounted.
+ ERROR_SEEK_ERROR = 219; // An error occured, while executing DosSeek().
+ ERROR_COMMENT_TOO_BIG = 220; // The supplied file comment was longer than the hardcoded length limit for file comments.
+ ERROR_DISK_FULL = 221; // A write-operation could not be performed, because the volume has no space left.
+ ERROR_DELETE_PROTECTED = 222; // You tried to delete a delete-protected object.
+ ERROR_WRITE_PROTECTED = 223; { You tried to write to a write-protected object. This does not mean that
+ the volume, you wanted to write to, is write-protected!}
+ ERROR_READ_PROTECTED = 224; // You tried to read a read-protected object.
+ ERROR_NOT_A_DOS_DISK = 225; // Accessed disk is unreadable.
+ ERROR_NO_DISK = 226; // You tried to perform an action on a device that has no volume mounted (eg. an empty disk drive).
+ ERROR_NO_MORE_ENTRIES = 232; { This does not indicate an error, but is returned by several functions to
+ indicate that the last entry of a list was reached.}
+ ERROR_IS_SOFT_LINK = 233; { Given action can not be performed on a given object, because it is a
+ soft-link. This is usually only used by filesystem handlers and is catched
+ by dos. Applications should not see this.}
+ ERROR_OBJECT_LINKED = 234; // Given action can not be performed on a given object, because it is a link.
+ ERROR_BAD_HUNK = 235; // There was a bad hunk in a file that was to load.
+ ERROR_NOT_IMPLEMENTED = 236; { Indicates that a function does not implement a certain functionality.
+ There are more special error conditions (ERROR_BAD_NUMBER and
+ ERROR_ACTION_NOT_KNOWN), which should be preferred, if applicable.}
+ ERROR_RECORD_NOT_LOCKED = 240; // You tried to access a record that was not locked.
+ ERROR_LOCK_COLLISION = 241; // Somebody already locked a part of the record, you wanted to lock.
+ ERROR_LOCK_TIMEOUT = 242; // LockRecord() timed out.
+ ERROR_UNLOCK_ERROR = 243; // An error occured, while unlocking a record.
+
+{ more error codes are defined in dosasl.h and filesystem.h }
+
+{ Maximum length of strings got from Fault(). Note that they should be
+ shorter than 60 characters. }
+ FAULT_MAX = 82;
+
+{ Signals that are set, if the user presses the corresponding keys on
+ the controlling terminal. They may also be sent by using Signal().
+ For more information see <exec/tasks.h>. }
+ SIGBREAKB_CTRL_C = 12; // CTRL-c, usually meaning program abortion.
+ SIGBREAKB_CTRL_D = 13; // CTRL-d
+ SIGBREAKB_CTRL_E = 14; // CTRL-e, usually meaning that the application should iconify itself.
+ SIGBREAKB_CTRL_F = 15; // CTRL-f, usually meaning that the application should uniconify itself.
+{ Bit fields that signal you that a user has issued a break
+ for example: if (SetSignal(0,0) and SIGBREAKF_CTRL_C) then cleanup_and_exit();}
+ SIGBREAKF_CTRL_C = 1 shl SIGBREAKB_CTRL_C;
+ SIGBREAKF_CTRL_D = 1 shl SIGBREAKB_CTRL_D;
+ SIGBREAKF_CTRL_E = 1 shl SIGBREAKB_CTRL_E;
+ SIGBREAKF_CTRL_F = 1 shl SIGBREAKB_CTRL_F;
+
+{ Mode parameter to Open() }
+ MODE_OLDFILE = 1005; // Open existing file read/write positioned at beginning of file.
+ MODE_NEWFILE = 1006; // Open freshly created file (delete old file) read/write
+ MODE_READWRITE = 1004; // An old file is opened. If it does not exist, a new one is created.
+
+{ Passed as type to Lock() }
+ SHARED_LOCK = -2; // Non-exclusive lock, other tasks may lock this file as well.
+ ACCESS_READ = SHARED_LOCK; // This is used for read-only operations.
+ EXCLUSIVE_LOCK = -1; // Exclusive lock, other tasks may not lock this file.
+ ACCESS_WRITE = EXCLUSIVE_LOCK; // This is used for write operations.
+
+{ Values returned by SameLock() }
+ LOCK_SAME = 0;
+ LOCK_SAME_HANDLER = 1; // actually same volume
+ LOCK_DIFFERENT = -1;
+
+{ Values for MakeLink() }
+ LINK_HARD = 0;
+ LINK_SOFT = 1;
+
+{ Relative position to Seek() }
+ OFFSET_BEGINNING = -1; // relative to Begining Of File
+ OFFSET_CURRENT = 0; // relative to Current file position
+ OFFSET_END = 1; // relative to End Of File
+
+{ Limits of the "Integer" type already defined in FPC... but ok}
+ MAXINT = $7FFFFFFF;
+ MININT = $80000000;
+
+{ types for ChangeMode() }
+ CHANGE_LOCK = 0;
+ CHANGE_FH = 1;
+
+{ values returned by ReadItem() }
+ ITEM_EQUAL = -2; // '=' Symbol
+ ITEM_ERROR = -1; // error
+ ITEM_NOTHING = 0; // *N, ;, endstreamch
+ ITEM_UNQUOTED = 1; // unquoted item
+ ITEM_QUOTED = 2; // quoted item
+
+{ types for AllocDosObject/FreeDosObject }
+ DOS_FILEHANDLE = 0; // PFileHandle
+ DOS_EXALLCONTROL = 1; // PExAllControl
+ DOS_FIB = 2; // PFileInfoBlock
+ DOS_STDPKT = 3; // PDosPacket
+ DOS_CLI = 4; // PCommandLineInterface
+ DOS_RDARGS = 5; // PRDArgs
+
+
+{ Data structures and equates used by the V1.4 DOS functions StrtoDate() and DatetoStr() }
+{--------- String/Date structures etc }
+type
+ PDateTime = ^TDateTime;
+ TDateTime = record
+ dat_Stamp: TDateStamp; // DOS DateStamp
+ dat_Format, // controls appearance of dat_StrDate
+ dat_Flags: Byte; // see BITDEF's below
+ dat_StrDay, // day of the week string
+ dat_StrDate, // date string
+ dat_StrTime: STRPTR; // time string
+ end;
+
+{ You need this much room for each of the DateTime strings: }
+const
+ LEN_DATSTRING = 16;
+
+{ date format values }
+ FORMAT_DOS = 0; // DOS internal format, dd-mmm-yy
+ FORMAT_INT = 1; // International format, yy-mm-dd
+ FORMAT_USA = 2; // US-American format, mm-dd-yy }
+ FORMAT_CDN = 3; // Canadian format, dd-mm-yy }
+ FORMAT_MAX = FORMAT_CDN;
+ FORMAT_DEF = 4; { use default format, as defined by locale; if locale not
+ available, use FORMAT_DOS instead }
+
+{ flags for dat_Flags }
+
+ DTB_SUBST = 0; // Substitute Today, Tomorrow, etc. if possible.
+ DTF_SUBST = 1 shl DTB_SUBST;
+ DTB_FUTURE = 1; // Day of the week is in future.
+ DTF_FUTURE = 1 shl DTB_FUTURE;
+
+{**********************************************************************
+************************ PATTERN MATCHING ******************************
+************************************************************************
+
+* structure expected by MatchFirst, MatchNext.
+* Allocate this structure and initialize it as follows:
+*
+* Set ap_BreakBits to the signal bits (CDEF) that you want to take a
+* break on, or NULL, if you don't want to convenience the user.
+*
+* If you want to have the FULL PATH NAME of the files you found,
+* allocate a buffer at the END of this structure, and put the size of
+* it into ap_Strlen. If you don't want the full path name, make sure
+* you set ap_Strlen to zero. In this case, the name of the file, and stats
+* are available in the ap_Info, as per usual.
+*
+* Then call MatchFirst() and then afterwards, MatchNext() with this structure.
+* You should check the return value each time (see below) and take the
+* appropriate action, ultimately calling MatchEnd() when there are
+* no more files and you are done. You can tell when you are done by
+* checking for the normal AmigaDOS return code ERROR_NO_MORE_ENTRIES.
+*
+}
+
+type
+ // PRIVATE structure, which describes an anchor for matching functions.
+ PAChain = ^TAChain;
+ TAChain = record
+ an_Child, // The next anchor
+ an_Parent: PAChain; // The last anchor
+ an_Lock: BPTR; // Lock of this anchor
+ an_Info: TFileInfoBlock; // fib Discribing this anchor
+ an_Flags: ShortInt; // se below
+ an_String: array[0..0] of Char;
+ end;
+const
+// an_Flags
+ DDB_PatternBit = 0;
+ DDB_ExaminedBit = 1;
+ DDB_Completed = 2;
+ DDB_AllBit = 3;
+ DDB_Single = 4;
+ DDF_PatternBit = 1 shl DDB_PatternBit;
+ DDF_ExaminedBit = 1 shl DDB_ExaminedBit;
+ DDF_Completed = 1 shl DDB_Completed;
+ DDF_AllBit = 1 shl DDB_AllBit;
+ DDF_Single = 1 shl DDB_Single;
+
+type
+ PAnchorPath = ^TAnchorPath;
+ TAnchorPath = record
+ case SmallInt of
+ 0 :(
+ ap_First : PAChain;
+ ap_Last : PAChain;
+ );
+ 1 :(
+ ap_Base, // pointer to first anchor
+ ap_Current : PAChain; // pointer to last anchor
+ ap_BreakBits, // Signal bits that caused the function to break.
+ ap_FoundBreak : LongInt; // Bits we broke on. Also returns ERROR_BREAK
+ ap_Flags : Shortint; // see below
+ ap_Reserved : Shortint; // Private
+ ap_Strlen : SmallInt; // Size of ap_Buf (see below). This may be zero.
+ ap_Info : TFileInfoBlock; // describes any files found by matching-functions.
+ ap_Buf : Array[0..0] of Char; // Buffer for path name, allocated by user!!
+ );
+ end;
+
+const
+ APB_DOWILD = 0; // Please check for wildcards in supplied string.
+ APB_ITSWILD = 1; // There is actually a wildcard in the supplied string. READ-ONLY
+ APB_DODIR = 2; { Set, if a directory is to be entered.
+ Applications may clear this bit to prohibit the
+ matching-functions from entering a directory. }
+ APB_DIDDIR = 3; // Set, if directory was already searched. READ-ONLY
+ APB_NOMEMERR = 4; // Set, if function was out of memory. READ-ONLY
+ APB_DODOT = 5; // '.' may refer to the current directory (unix-style).
+ APB_DirChanged = 6; // Directory changed since last call.
+ APB_FollowHLinks = 7; // Follow hardlinks, too.
+
+ APF_DOWILD = 1 shl APB_DOWILD;
+ APF_ITSWILD = 1 shl APB_ITSWILD;
+ APF_DODIR = 1 shl APB_DODIR;
+ APF_DIDDIR = 1 shl APB_DIDDIR;
+ APF_NOMEMERR = 1 shl APB_NOMEMERR;
+ APF_DODOT = 1 shl APB_DODOT;
+ APF_DirChanged = 1 shl APB_DirChanged;
+ APF_FollowHLinks = 1 shl APB_FollowHLinks;
+
+{ Predefined tokens for wildcards. The characters are replaced by these
+ tokens in the tokenized string returned by the ParsePattern() function
+ family.}
+ P_ANY = $80; // Matches everything '#?' and '*'
+ P_SINGLE = $81; // Any character '?'
+ P_ORSTART = $82; // Opening parenthesis for OR'ing '('
+ P_ORNEXT = $83; // Field delimiter for OR'ing '|'
+ P_OREND = $84; // Closing parenthesis for OR'ing ')'
+ P_NOT = $85; // Inversion '~'
+ P_NOTEND = $86; // Inversion end
+ P_NOTCLASS = $87; // Inversion class '^'
+ P_CLASS = $88; // Class '[]'
+ P_REPBEG = $89; // Beginning of repetition '['
+ P_REPEND = $8A; // End of repetition ']'
+ P_STOP = $8B; // token to force end of evaluation
+
+{ Values for an_Status, NOTE: These are the actual bit numbers }
+ COMPLEX_BIT = 1; // Parsing complex pattern
+ EXAMINE_BIT = 2; // Searching directory
+
+{ Returns from MatchFirst(), MatchNext() more see before}
+ ERROR_BUFFER_OVERFLOW = 303; // User OR internal buffer overflow
+ ERROR_BREAK = 304; // A break character was received
+ ERROR_NOT_EXECUTABLE = 305; // A file has E bit cleared
+
+{ hunk types }
+ HUNK_UNIT = 999 ;
+ HUNK_NAME = 1000;
+ HUNK_CODE = 1001;
+ HUNK_DATA = 1002;
+ HUNK_BSS = 1003;
+ HUNK_RELOC32 = 1004;
+ HUNK_RELOC16 = 1005;
+ HUNK_RELOC8 = 1006;
+ HUNK_EXT = 1007;
+ HUNK_SYMBOL = 1008;
+ HUNK_DEBUG = 1009;
+ HUNK_END = 1010;
+ HUNK_HEADER = 1011;
+ HUNK_OVERLAY = 1013;
+ HUNK_BREAK = 1014;
+ HUNK_DREL32 = 1015;
+ HUNK_DREL16 = 1016;
+ HUNK_DREL8 = 1017;
+ HUNK_LIB = 1018;
+ HUNK_INDEX = 1019;
+ HUNK_RELOC32SHORT = 1020;
+ HUNK_RELRELOC32 = 1021;
+ HUNK_ABSRELOC16 = 1022;
+
+{ hunk_ext sub-types }
+ EXT_SYMB = 0; // symbol table
+ EXT_DEF = 1; // relocatable definition
+ EXT_ABS = 2; // Absolute hunks
+ EXT_REF32 = 129; // 32bit absolute reference to symbol
+ EXT_ABSREF32 = 129;
+ EXT_COMMON = 130; // 32bit absolute reference to common block
+ EXT_ABSCOMMON = 130;
+ EXT_REF16 = 131; // 16bit relative reference to symbol
+ EXT_RELREF16 = 131;
+ EXT_REF8 = 132; // 8bit relative reference to symbol
+ EXT_RELREF8 = 132;
+ EXT_DEXT32 = 133; // 32 bit data releative reference
+ EXT_DEXT16 = 134; // 16 bit data releative reference
+ EXT_DEXT8 = 135; // 8 bit data releative reference
+ EXT_RELREF32 = 136; // 32bit relative reference to symbol
+ EXT_RELCOMMON = 137; // 32bit relative reference to common block
+ EXT_ABSREF16 = 138;
+ EXT_ABSREF8 = 139;
+
+{ Hunk flags }
+ HUNKB_ADVISORY = 29; // Hunk is ignored, if unknown to loader.
+ HUNKB_CHIP = 30;
+ HUNKB_FAST = 31;
+ HUNKF_ADVISORY = 1 shl HUNKB_ADVISORY;
+ HUNKF_CHIP = 1 shl HUNKB_CHIP;
+ HUNKF_FAST = 1 shl HUNKB_FAST;
+
+type
+ PDosInfo = ^TDosInfo;
+ TDosInfo = record
+ di_McName: BPTR; // Network name of this machine; currently nil
+ di_DevInfo: BPTR; // Device List
+ di_Devices: BPTR; // Reserved
+ di_Handlers: BPTR; // Reserved
+ di_NetHand: BPTR; // Reserved (actually resident segment list)
+ di_DevLock, // do NOT access directly!
+ di_EntryLock, // do NOT access directly!
+ di_DeleteLock: TSignalSemaphore; // do NOT access directly!
+ end;
+
+{ All DOS processes have this structure }
+{ Create and Device Proc returns pointer to the MsgPort in this structure }
+{ dev_proc = Address(SmallInt(DeviceProc()) - SizeOf(Task)) }
+
+ TExitProcedure = procedure(Arg: IPTR); cdecl;
+
+ PProcess = ^TProcess;
+ TProcess = record
+ pr_Task: TTask;
+ pr_MsgPort: TMsgPort; // This is BPTR address from DOS functions
+ pr_Pad: SmallInt; // Remaining variables on 4 byte boundaries
+ pr_SegList: BPTR; // Array of seg lists used by this process
+ pr_StackSize: LongInt; // Size of process stack in bytes
+ pr_GlobVec: APTR; // Global vector for this process (BCPL)
+ pr_TaskNum: LongInt; // CLI task number of zero if not a CLI
+ pr_StackBase: BPTR; // Ptr to high memory end of process stack
+ pr_Result2: STRPTR; // Value of secondary result from last call
+ pr_CurrentDir: BPTR; // Lock associated with current directory
+ pr_CIS: BPTR; // Current CLI Input Stream
+ pr_COS: BPTR; // Current CLI Output Stream
+ pr_ConsoleTask: APTR; // Console handler process for current window
+ pr_FileSystemTask: APTR; // File handler process for current drive
+ pr_CLI: BPTR; // pointer to ConsoleLineInterpreter
+ pr_ReturnAddr: APTR; // pointer to previous stack frame
+ pr_PktWait: APTR; // Function to be called when awaiting msg
+ pr_WindowPtr: APTR; // Window for error printing
+ pr_HomeDir: BPTR; // Home directory of executing program
+ pr_Flags: LongInt; // flags telling dos about process
+ pr_ExitCode: TExitProcedure; // code to call on exit of program OR nil
+ pr_ExitData: IPTR; // Passed as an argument to pr_ExitCode.
+ pr_Arguments: STRPTR; // Arguments passed to the process at start
+ pr_LocalVars: TMinList; // Local environment variables
+ pr_ShellPrivate: ULONG; // for the use of the current shell
+ pr_CES: BPTR; // Error stream - IF NULL, use pr_COS
+ end;
+
+{ Flags for pr_Flags. (all PRIVATE) They mainly descibe what happens if the process
+ exits, i.e. which resources the process should clean itself. The flags
+ are self-explaining.}
+const
+ PRB_FREESEGLIST = 0;
+ PRB_FREECURRDIR = 1;
+ PRB_FREECLI = 2;
+ PRB_CLOSEINPUT = 3;
+ PRB_CLOSEOUTPUT = 4;
+ PRB_FREEARGS = 5;
+ PRB_CLOSEERROR = 6;
+ PRB_SYNCHRONOUS = 7;
+ PRB_WAITINGFORCHILD = 8; // This one is subject to change!
+ PRB_NOTIFYONDEATH = 9;
+
+ PRF_FREESEGLIST = 1 shl PRB_FREESEGLIST;
+ PRF_FREECURRDIR = 1 shl PRB_FREECURRDIR;
+ PRF_FREECLI = 1 shl PRB_FREECLI;
+ PRF_CLOSEINPUT = 1 shl PRB_CLOSEINPUT;
+ PRF_CLOSEOUTPUT = 1 shl PRB_CLOSEOUTPUT;
+ PRF_FREEARGS = 1 shl PRB_FREEARGS;
+ PRF_CLOSEERROR = 1 shl PRB_CLOSEERROR;
+ PRF_SYNCHRONOUS = 1 shl PRB_SYNCHRONOUS;
+ PRF_WAITINGFORCHILD = 1 shl PRB_WAITINGFORCHILD; // This one is subject to change!
+ PRF_NOTIFYONDEATH = 1 shl PRB_NOTIFYONDEATH;
+
+{ The long SmallInt address (BPTR) of this structure is returned by
+ Open() and other routines that return a file. You need only worry
+ about this struct to do async io's via PutMsg() instead of
+ standard file system calls }
+type
+ PFileHandle = ^TFileHandle;
+ TFileHandle = record
+ fh_Flags: ULONG; { EXEC message }
+ fh_Port: PMsgPort; { Reply port for the packet }
+ fh_Type: PMsgPort; { Port to do PutMsg() to Address is negative if a plain file }
+
+ fh_Buf: BPTR;
+ fh_Pos: LongInt;
+ fh_End: LongInt;
+
+ fh_Func1: LongInt;
+ fh_Func2: LongInt;
+ fh_Func3: LongInt;
+ fh_Arg1: LongInt;
+ fh_Arg2: APTR;
+ fh_Size: ULONG; // Size of buffered io buffer
+ fh_Buf2: BPTR; // Always the same as fh_Buf
+ end;
+
+{ This is the extension to EXEC Messages used by DOS }
+
+ PDosPacket = ^TDosPacket;
+ TDosPacket = record
+ dp_Link : PMessage; // Pointer to a standard exec message.
+ dp_Port : PMsgPort; // Reply-Port of that packet. Must be filled in each send.
+ case SmallInt of
+ 0 : (
+ dp_Action : LongInt;
+ dp_Status : LongInt;
+ dp_Status2 : LongInt;
+ dp_BufAddr : LongInt;
+ );
+ 1 : (
+ dp_Type : LongInt; { See ACTION_... below and
+ * 'R' means Read, 'W' means Write to the
+ * file system }
+ dp_Res1 : LongInt; { For file system calls this is the result
+ * that would have been returned by the
+ * function, e.g. Write ('W') returns actual
+ * length written }
+ dp_Res2 : LongInt; { For file system calls this is what would
+ * have been returned by IoErr() }
+ dp_Arg1 : LongInt;
+ dp_Arg2 : LongInt;
+ dp_Arg3 : LongInt;
+ dp_Arg4 : LongInt;
+ dp_Arg5 : LongInt;
+ dp_Arg6 : LongInt;
+ dp_Arg7 : LongInt;
+ );
+ end;
+
+const
+{ Packet types dp_Type }
+ ACTION_NIL = 0;
+ ACTION_STARTUP = 0;
+ ACTION_GET_BLOCK = 2; // OBSOLETE
+ ACTION_SET_MAP = 4;
+ ACTION_DIE = 5;
+ ACTION_EVENT = 6;
+ ACTION_CURRENT_VOLUME = 7;
+ ACTION_LOCATE_OBJECT = 8;
+ ACTION_RENAME_DISK = 9;
+ ACTION_FREE_LOCK = 15;
+ ACTION_DELETE_OBJECT = 16;
+ ACTION_RENAME_OBJECT = 17;
+ ACTION_MORE_CACHE = 18;
+ ACTION_COPY_DIR = 19;
+ ACTION_WAIT_CHAR = 20;
+ ACTION_SET_PROTECT = 21;
+ ACTION_CREATE_DIR = 22;
+ ACTION_EXAMINE_OBJECT = 23;
+ ACTION_EXAMINE_NEXT = 24;
+ ACTION_DISK_INFO = 25;
+ ACTION_INFO = 26;
+ ACTION_FLUSH = 27;
+ ACTION_SET_COMMENT = 28;
+ ACTION_PARENT = 29;
+ ACTION_TIMER = 30;
+ ACTION_INHIBIT = 31;
+ ACTION_DISK_TYPE = 32;
+ ACTION_DISK_CHANGE = 33;
+ ACTION_SET_DATE = 34;
+ ACTION_SAME_LOCK = 40;
+
+ ACTION_WRITE = $57; // 'W'
+ ACTION_READ = $52; // 'R'
+
+ ACTION_SCREEN_MODE = 994;
+ ACTION_CHANGE_SIGNAL = 995;
+ ACTION_READ_RETURN = 1001;
+ ACTION_WRITE_RETURN = 1002;
+ ACTION_FINDUPDATE = 1004;
+ ACTION_FINDINPUT = 1005;
+ ACTION_FINDOUTPUT = 1006;
+ ACTION_END = 1007;
+ ACTION_SEEK = 1008;
+ ACTION_FORMAT = 1020;
+ ACTION_MAKE_LINK = 1021;
+ ACTION_SET_FILE_SIZE = 1022;
+ ACTION_WRITE_PROTECT = 1023;
+ ACTION_READ_LINK = 1024;
+ ACTION_FH_FROM_LOCK = 1026;
+ ACTION_IS_FILESYSTEM = 1027;
+ ACTION_CHANGE_MODE = 1028;
+ {}
+ ACTION_COPY_DIR_FH = 1030;
+ ACTION_PARENT_FH = 1031;
+ ACTION_EXAMINE_ALL = 1033;
+ ACTION_EXAMINE_FH = 1034;
+ ACTION_EXAMINE_ALL_END = 1035;
+ ACTION_SET_OWNER = 1036;
+
+ ACTION_LOCK_RECORD = 2008;
+ ACTION_FREE_RECORD = 2009;
+
+ ACTION_ADD_NOTIFY = 4097;
+ ACTION_REMOVE_NOTIFY = 4098;
+{ Tell a file system to serialize the current volume. This is typically
+ done by changing the creation date of the disk. This packet does not take
+ any arguments.}
+ ACTION_SERIALIZE_DISK = 4200;
+
+type
+{ A Packet does not require the Message to be before it in memory, but
+ for convenience it is useful to associate the two.
+ Also see the function init_std_pkt for initializing this structure }
+ PStandardPacket = ^TStandardPacket;
+ TStandardPacket = record
+ sp_Msg: TMessage;
+ sp_Pkt: TDosPacket;
+ end;
+
+const
+{ types for initial packets to shells from run/newcli/execute/system.
+ NOTE: AROS doesn't use startup packets. This will ONLY make a difference
+ for shell writers...}
+ RUN_EXECUTE = -1;
+ RUN_SYSTEM = -2;
+ RUN_SYSTEM_ASYNCH = -3;
+
+type
+{ ONLY to be allocated by DOS! }
+ PCliProcList = ^TCliProcList;
+ TCliProcList = record
+ cpl_Node: TMinNode;
+ cpl_First: LongInt; { number of first entry in array }
+ cpl_Array: array[0..0] of PMsgPort;
+ { [0] is max number of CLI's in this entry (n)
+ [1] is CPTR to process id of CLI cpl_First
+ [n] is CPTR to process id of CLI cpl_First+n-1}
+ end;
+
+{ structure for the Dos resident list. Do NOT allocate these, use }
+{ AddSegment(), and heed the warnings in the autodocs! }
+type
+ PSegment = ^TSegment;
+ TSegment = record
+ seg_Next: BPTR; // Pointer to next segment.
+ seg_UC: LongInt; // Usage count/type
+ seg_Seg: BPTR; // Actual Segment
+ seg_Name: array[0..3] of Char; // actually the first 4 chars of BSTR name }
+ end;
+
+const
+ CMD_SYSTEM = -1;
+ CMD_INTERNAL = -2;
+ CMD_DISABLED = -999;
+
+{ DOS Processes started from the CLI via RUN or NEWCLI have this additional
+ * set to data associated with them }
+type
+ PCommandLineInterface = ^TCommandLineInterface;
+ TCommandLineInterface = record
+ cli_Result2: LongInt; // Value of IoErr from last command
+ cli_SetName: BSTR; // Name of current directory
+ cli_CommandDir: BPTR; // Lock associated with command directory
+ cli_ReturnCode: LongInt; // Return code from last command
+ cli_CommandName: BSTR; // Name of current command
+ cli_FailLevel: LongInt; // Fail level (set by FAILAT)
+ cli_Prompt: BSTR; // Current prompt (set by PROMPT)
+ cli_StandardInput: BPTR; // Default (terminal) CLI input
+ cli_CurrentInput: BPTR; // Current CLI input
+ cli_CommandFile: BSTR; // Name of EXECUTE command file
+ cli_Interactive: LongInt; // Boolean; True if prompts required
+ cli_Background: LongInt; // Boolean; True if CLI created by RUN
+ cli_CurrentOutput: BPTR; // Current CLI output
+ cli_DefaultStack: LongInt; // Stack size to be obtained in long words
+ cli_StandardOutput: BPTR; // Default (terminal) CLI output
+ cli_Module: BPTR; // SegList of currently loaded command
+{$ifdef aros}
+ cli_StandardError: BPTR; // Standard/Default Error file. PFileLock
+{$endif}
+ end;
+
+const
+// CLI_DEFAULTSTACK_UNIT * cli_DefaultStack = stack in bytes
+ CLI_DEFAULTSTACK_UNIT = SizeOf(IPTR);
+
+type
+{$ifdef aros}
+ PDosListAROSExt = ^TDosListAROSExt;
+ TDosListAROSExt = record
+ dol_DevName: STRPTR;
+ dol_Device: PDevice;
+ dol_Unit: PUnit;
+ end;
+{$endif}
+{ This structure can take on different values depending on whether it is
+ * a device, an assigned directory, or a volume. Below is the structure
+ * reflecting volumes only. Following that is the structure representing
+ * only devices.
+ }
+
+{ structure representing a volume }
+
+ PDeviceList = ^TDeviceList;
+ TDeviceList = record
+ dl_Next: BPTR; // bptr to next device list
+ dl_Type: LongInt; // see DLT below
+ dl_Task: PMsgPort; // ptr to handler task
+ dl_Lock: BPTR; // not for volumes
+ dl_VolumeDate: TDateStamp; // creation date
+ dl_LockList: BPTR; // outstanding locks
+ dl_DiskType: LongInt; // 'DOS', etc
+ dl_unused: BPTR;
+ dl_Name: BSTR; // bptr to bcpl name
+{$ifdef aros}
+ {$ifndef AROS_DOS_PACKETS}
+ dl_Reserved: array[0..5] of IPTR;
+ dl_AROS: TDosListAROSExt;
+ {$endif}
+{$endif}
+ end;
+
+{ device structure (same as the DeviceNode structure in filehandler.h) }
+ PDevInfo = ^TDevInfo;
+ TDevInfo = record
+ dvi_Next: BPTR;
+ dvi_Type: LongInt;
+ dvi_Task: PMsgPort;
+ dvi_Lock: BPTR;
+ dvi_Handler: BSTR;
+ dvi_StackSize: LongInt;
+ dvi_Priority: LongInt;
+ dvi_Startup: BPTR;
+{$ifdef aros}
+ dvi_NoAROS4: array[0..1] of BPTR;
+{$else}
+ dvi_SegList: BPTR;
+ dvi_GlobVec: BSTR;
+{$endif}
+ dvi_Name: BSTR;
+{$ifdef aros}
+ {$ifndef AROS_DOS_PACKETS}
+ dvi_Reserved: array[0..5] of IPTR;
+ dvi_AROS: TDosListAROSExt;
+ {$endif}
+{$endif}
+ end;
+
+const
+{ Dos list scanning and locking modes as used in LockDosList()
+ Specify either LDF_READ, if you want a non-exclusive lock, or LDF_WRITE,
+ if you want an exclusive lock (i.e. if you want to modify the list).}
+ LDB_READ = 0;
+ LDB_WRITE = 1;
+// Specify which list(s) to lock.
+ LDB_DEVICES = 2;
+ LDB_VOLUMES = 3;
+ LDB_ASSIGNS = 4;
+ LDB_ENTRY = 5;
+ LDB_DELETE = 6;
+
+ LDF_READ = 1 shl LDB_READ;
+ LDF_WRITE = 1 shl LDB_WRITE;
+ LDF_DEVICES = 1 shl LDB_DEVICES;
+ LDF_VOLUMES = 1 shl LDB_VOLUMES;
+ LDF_ASSIGNS = 1 shl LDB_ASSIGNS;
+ LDF_ENTRY = 1 shl LDB_ENTRY;
+ LDF_DELETE = 1 shl LDB_DELETE;
+{ actually all but LDF_ENTRY (which is used for internal locking) }
+ LDF_ALL = (LDF_DEVICES or LDF_VOLUMES or LDF_ASSIGNS);
+
+type
+{ Used for assigns that point to multiple directories. }
+
+ PAssignList = ^TAssignList;
+ TAssignList = record
+ al_Next: PAssignList; // Pointer to next assign node.
+ al_Lock: BPTR; // (struct FileLock *) Lock of on of the directories.
+ end;
+
+{ combined structure for devices, assigned directories, volumes }
+ PDosList = ^TDosList;
+ TDosList = record
+ dol_Next: BPTR; { bptr to next device on list }
+ dol_Type: LongInt; { see DLT below }
+ dol_Task: PMsgPort; { ptr to handler task }
+ dol_Lock: BPTR;
+ case SmallInt of
+ 0 :(
+ dol_Handler : record
+ dol_Handler: BSTR; { file name to load IF seglist is null }
+ dol_StackSize, { stacksize to use when starting process }
+ dol_Priority: LongInt; { task priority when starting process }
+ dol_Startup: BPTR; { startup msg: FileSysStartupMsg for disks }
+{$ifdef aros}
+ dol_NoAROS3: array[0..1] of BPTR;
+{$else}
+ dol_SegList, { already loaded code for new task }
+ dol_GlobVec: BPTR; { BCPL global vector to use when starting }
+{$endif}
+ dol_Name: BSTR; { bptr to bcpl name }
+{$ifdef aros}
+ {$ifndef AROS_DOS_PACKETS}
+ dol_Reserved: array[0..5] of IPTR;
+ dol_AROS: TDosListAROSExt;
+ {$endif}
+{$endif}
+ end;
+ );
+ 1 :(
+ dol_Volume: record
+ dol_VolumeDate: TDateStamp; { creation date }
+ dol_LockList: BPTR; { outstanding locks }
+ dol_DiskType: LongInt; { 'DOS', etc }
+ dol_Unused: BPTR
+ end;
+ );
+ 2 :(
+ dol_assign: record
+ dol_AssignName: STRPTR; { name for non-OR-late-binding assign }
+ dol_List: PAssignList; { for multi-directory assigns (regular) }
+ end;
+ );
+ end;
+
+
+const
+
+{ definitions for dl_Type }
+ DLT_DEVICE = 0;
+ DLT_DIRECTORY = 1;
+ DLT_VOLUME = 2;
+ DLT_LATE = 3; // late-binding assign
+ DLT_NONBINDING = 4; // non-binding assign
+ DLT_PRIVATE = -1; // for internal use only
+
+{ structure return by GetDeviceProc() }
+type
+ PDevProc = ^TDevProc;
+ TDevProc = record
+ dvp_Port: PMsgPort;
+ dvp_Lock: BPTR; // PFileLock
+ dvp_Flags: LongInt; // see below (DVPF_*)
+ dvp_DevNode: PDosList; // Private
+ end;
+
+const
+{ definitions for dvp_Flags }
+ DVPB_UNLOCK = 0;
+ DVPB_ASSIGN = 1;
+ DVPF_UNLOCK = 1 shl DVPB_UNLOCK;
+ DVPF_ASSIGN = 1 shl DVPB_ASSIGN;
+
+{ Types for fib_DirEntryType. NOTE that both USERDIR and ROOT are
+ directories, and that directory/file checks should use <0 and >=0.
+ This is not necessarily exhaustive! Some handlers may use other
+ values as needed, though <0 and >=0 should remain as supported as
+ possible.}
+ ST_ROOT = 1 ; // Root directory of filesystem
+ ST_USERDIR = 2 ; // Normal directory
+ ST_SOFTLINK = 3 ; // Soft link (may be a file or directory)
+ ST_LINKDIR = 4 ; // Hard link to a directory
+ ST_FILE = -3; // Plain file
+ ST_LINKFILE = -4; // Hard link to a file
+ ST_PIPEFILE = -5; // File is a pipe
+
+type
+{ a lock structure, as returned by Lock() or DupLock() }
+ PFileLock = ^TFileLock;
+ TFileLock = record
+ fl_Link: BPTR; // bcpl pointer to next lock
+ fl_Key: IPTR; // disk block number
+ fl_Access: LongInt; // exclusive or shared
+ fl_Task: PMsgPort; // handler task's port
+ fl_Volume: BPTR; // bptr to a DeviceList
+ end;
+
+
+{ Structure (as used in ExAll()), containing information about a file. This
+ structure is only as long as it need to be. If is for example ED_SIZE was
+ specified, when calling ExAll(), this structure only consists of the fields
+ ed_Name through ed_Size. Therefore you can use the ED_ definitions below
+ as longword offsets into this structure.}
+type
+ PExAllData = ^TExAllData;
+ TExAllData = record
+ ed_Next: PExAllData;
+ ed_Name: PChar; // Name of the file
+ ed_Type, // Type of File
+ ed_Size, // Size of File
+ ed_Prot, // Protection Bits
+{ The following three fields are de facto an embedded datestamp
+ structure (see <dos/dos.h>), which describes the last modification date.}
+ ed_Days,
+ ed_Mins,
+ ed_Ticks : ULONG;
+
+ ed_Comment: PChar; // The file comment
+ ed_OwnerUID, // The owner ID
+ ed_OwnerGID : Word; // the group-owner ID
+ end;
+
+{ Type argument for ExAll(). Each number includes the information of all
+ lower numbers, too. If you specify for example ED_SIZE, you will get
+ information about name, type and the size of a file. Note that all
+ filehandlers must handle all types up to ED_OWNER. If they do not support
+ a type, they must return ERROR_WRONG_NUMBER. Currently
+ that means, if a value higher than ED_OWNER is specified, filehandlers
+ must fail with this error.}
+const
+ ED_NAME = 1; // Filename.
+ ED_TYPE = 2; // Type of file.
+ ED_SIZE = 3; // Size of file.
+ ED_PROTECTION = 4; // Protection bits.
+ ED_DATE = 5; // Last modification date.
+ ED_COMMENT = 6; // Addtional file comment.
+ ED_OWNER = 7; // Owner information.
+
+{ Structure as used for controlling ExAll(). Allocate this structure by using
+ AllocDosObject(DOS_EXALLCONTROL,...) only. All fields must be initialized
+ to 0, before using this structure. (AllocDosObject() does that for you.)
+ After calling ExAll() the first time, this structure is READ-ONLY. }
+type
+ PExAllControl = ^TExAllControl;
+ TExAllControl = record
+ eac_Entries: ULONG; // number of entries returned in buffer
+ eac_LastKey: IPTR; // Don't touch inbetween linked ExAll calls!
+ eac_MatchString: PChar; // wildcard string for pattern match OR nil
+ eac_MatchFunc: PHook; // optional private wildcard FUNCTION
+ end;
+
+{ The disk "environment" is a longword array that describes the
+ * disk geometry. It is variable sized, with the length at the beginning.
+ * Here are the constants for a standard geometry.}
+type
+ PDosEnvec = ^TDosEnvec;
+ TDosEnvec = record
+ de_TableSize: IPTR; // Size of this structure. Must be at least 11 (DE_NUMBUFFERS).
+ de_SizeBlock: IPTR; // Size in longwords of a block on the disk.
+ de_SecOrg: IPTR; // Unused. Must be 0 for now.
+ de_Surfaces: IPTR; // Number of heads/surfaces in drive.
+ de_SectorPerBlock: IPTR; // Unused. Must be 1 for now.
+ de_BlocksPerTrack: IPTR; // blocks per track. drive specific
+ de_Reserved: IPTR; // DOS reserved blocks at start of partition.
+ de_PreAlloc: IPTR; // DOS reserved blocks at end of partition
+ de_Interleave: IPTR; // usually 0
+ de_LowCyl: IPTR; // starting cylinder. typically 0
+ de_HighCyl: IPTR; // max cylinder. drive specific
+ de_NumBuffers: IPTR; // Initial # DOS of buffers.
+ de_BufMemType: IPTR; // type of mem to allocate for buffers
+ de_MaxTransfer: IPTR; // Max number of bytes to transfer at a time
+ de_Mask: IPTR; // Address Mask to block out certain memory
+ de_BootPri: LongInt; // Boot priority for autoboot
+ de_DosType: IPTR; // ASCII (HEX) string showing filesystem type
+ de_Baud: IPTR; // Baud rate for serial handler
+ de_Control: IPTR; // Control SmallInt for handler/filesystem
+ de_BootBlocks: IPTR; // Number of blocks containing boot code
+ end;
+
+const
+{ The following constants are longword offsets, which point into a filehandler
+ structure (like the one above). For more information about the meaning
+ of these constants see the structure above. }
+ DE_TABLESIZE = 0; // standard value is 11 }
+ DE_SIZEBLOCK = 1; // in longwords: standard value is 128 }
+ DE_SECORG = 2; // not used; must be 0 }
+ DE_NUMHEADS = 3; // # of heads (surfaces). drive specific }
+ DE_SECSPERBLK = 4; // not used; must be 1 }
+ DE_BLKSPERTRACK = 5; // blocks per track. drive specific }
+ DE_RESERVEDBLKS = 6; // unavailable blocks at start. usually 2 }
+ DE_PREFAC = 7; // not used; must be 0 }
+ DE_INTERLEAVE = 8; // usually 0 }
+ DE_LOWCYL = 9; // starting cylinder. typically 0 }
+ DE_UPPERCYL = 10; // max cylinder. drive specific }
+ DE_NUMBUFFERS = 11; // starting # of buffers. typically 5 }
+ DE_MEMBUFTYPE = 12; // type of mem to allocate for buffers. }
+ DE_BUFMEMTYPE = 12; // same as above, 1 is public, 3 is chip, 5 is fast }
+ DE_MAXTRANSFER = 13; // Max number bytes to transfer at a time }
+ DE_MASK = 14; // Address Mask to block out certain memory }
+ DE_BOOTPRI = 15; // Boot priority for autoboot }
+ DE_DOSTYPE = 16; // ASCII (HEX) string showing filesystem type;
+ DE_BAUD = 17; // Baud rate for serial handler }
+ DE_CONTROL = 18; // Control SmallInt for handler/filesystem }
+ DE_BOOTBLOCKS = 19; // Number of blocks containing boot code }
+
+
+{ This is the message that is passed to a file handler during startup
+ in the DeviceNode->dn_Startup field. It is not used in AROS DOS handlers
+ as they are now Device based, and the information is passed in during
+ OpenDevice(), however this needs to be stored for late opening
+ handlers.}
+type
+ PFileSysStartupMsg = ^TFileSysStartupMsg;
+ TFileSysStartupMsg = record
+ fssm_Unit: IPTR; // exec unit number for this device
+ fssm_Device: BSTR; // null terminated bstring to the device name
+ fssm_Environ: BPTR; // ptr to environment table (see above)
+ fssm_Flags: ULONG; // flags for OpenDevice()
+ end;
+
+
+{ This is an unwound version of the DosList structure.
+ This is the version for a DOS "device" DLT_DEVICE.
+ It is essentially the same structure as DevInfo.
+ For AROS this is notably different, as filehandlers are no longer
+ DOS tasks (ie Processes), some of the fields here have no purpose
+ and are ignored. The only fields retained are the dn_Next, dn_Type,
+ dn_Startup and dn_Handler fields.}
+ PDeviceNode = ^TDeviceNode;
+ TDeviceNode = record
+ dn_Next: BPTR; { singly linked list }
+ dn_Type: ULONG; { always 0 for dos "devices" }
+ dn_Task: PMsgPort; { standard dos "task" field. If this is
+ * null when the node is accesses, a task
+ * will be started up }
+ dn_Lock: BPTR; { not used for devices -- leave null }
+ dn_Handler: BSTR; { filename to loadseg (if seglist is null) }
+ dn_StackSize: ULONG; { stacksize to use when starting task }
+ dn_Priority: LongInt; { task priority when starting task }
+ dn_Startup: BPTR; { startup msg: FileSysStartupMsg for disks }
+ dn_SegList: BPTR; { code to run to start new task (if necessary).
+ * if null then dn_Handler will be loaded. }
+ dn_GlobalVec: BPTR; { BCPL global vector to use when starting
+ * a task. -1 means that dn_SegList is not
+ * for a bcpl program, so the dos won't
+ * try and construct one. 0 tell the
+ * dos that you obey BCPL linkage rules,
+ * and that it should construct a global
+ * vector for you.
+ }
+ dn_Name: BSTR; { the node name, e.g. '\3','D','F','3' }
+{$ifdef aros}
+ {$ifndef AROS_DOS_PACKETS}
+ dn_Reserved: array[0..5] of IPTR; // Private extensions Should not be used in user land code.
+ dn_AROS: TDosListAROSExt;
+ {$endif}
+{$endif}
+ end;
+
+type
+{ General notification structure as passed to StartNotify() and EndNotify().
+ After passing it to StartNotify() the first time, this structure becomes
+ READ-ONLY! }
+
+ PNotifyRequest = ^TNotifyRequest;
+ TNotifyRequest = record
+ nr_Name: STRPTR; // Name of the watched file.
+ nr_FullName: STRPTR; // Fully qualified name of the watched file. This is READ-ONLY!
+ nr_UserData: IPTR; // Fill in with your own data.
+ nr_Flags: LongWord; // Flags: (NRB_*)
+ // The following case specified the way to notify the application, if
+ nr_stuff: record // the watched file changes. IF NRF_SEND_MESSAGE is set, nr_Msg is used,
+ case SmallInt of // when NRF_SEND_SIGNAL is set, nr_Signal is used.
+ 0: ( nr_Msg: record
+ nr_Port: PMsgPort; // Port to send message to.
+ end );
+ 1 : ( nr_Signal: record
+ nr_Task: pTask; // Task to notify.
+ nr_SignalNum: Byte; // Signal number to set.
+ nr_pad: array[0..2] of Byte; // PRIVATE
+ end );
+ end;
+ nr_Reserved: array[0..3] of LongWord; // PRIVATE! Set to 0 for now.
+ nr_MsgCount: LongWord; // Number of unreplied messages.
+ nr_Handler: PMsgPort; // Filesystem task/device. Used by EndNotify()
+ end;
+
+ PNotifyMessage = ^TNotifyMessage;
+ TNotifyMessage = record
+ nm_ExecMessage: TMessage;
+ nm_Class: LongWord; // Class: NOTIFY_CLASS
+ nm_Code: Word; // Code: NOTIFY_CODE
+ nm_NReq: PNotifyRequest; // The notify structure that was passed to StartNotify(). Read-Only
+ nm_DoNotTouch, // like it says! For use by handlers
+ nm_DoNotTouch2 : LongWord; // dito
+ end;
+
+
+const
+// The two following flags specify by which means the watching task is to be notified.
+ NRB_SEND_MESSAGE = 0; // Send a message to the specified message port.
+ NRB_SEND_SIGNAL = 1; // Set a signal of the specified task.
+ NRB_WAIT_REPLY = 3; // Wait for a reply by the application before going on with watching?
+ NRB_NOTIFY_INITIAL = 4; // Notify if the file/directory exists when the notification request is posted
+
+// Flag Values for TNotifyRequest.nr_Flags
+ NRF_SEND_MESSAGE = 1 shl NRB_SEND_MESSAGE;
+ NRF_SEND_SIGNAL = 1 shl NRB_SEND_SIGNAL;
+ NRF_WAIT_REPLY = 1 shl NRB_WAIT_REPLY;
+ NRF_NOTIFY_INITIAL = 1 shl NRB_NOTIFY_INITIAL;
+
+// The following flags are for use by handlers only!
+ NR_HANDLER_FLAGS = $ffff0000;
+ NRB_MAGIC = 31;
+ NRF_MAGIC = 1 shl NRB_MAGIC;
+
+// nm_Class. Do not use, yet.
+ NOTIFY_CLASS = $40000000;
+
+//nm_Code. Do not use, yet.
+ NOTIFY_CODE = $1234;
+
+{ *********************************************************************
+ *
+ * The CSource data structure defines the input source for "ReadItem()"
+ * as well as the ReadArgs call. It is a publicly defined structure
+ * which may be used by applications which use code that follows the
+ * conventions defined for access.
+ *
+ * When passed to the dos.library functions, the value passed as
+ * struct *CSource is defined as follows:
+ * if ( CSource == 0) Use buffered IO "ReadChar()" as data source
+ * else Use CSource for input character stream
+ *
+ * The following two pseudo-code routines define how the CSource structure
+ * is used:
+ *
+ * long CS_ReadChar( struct CSource *CSource )
+ *
+ * if ( CSource == 0 ) return ReadChar();
+ * if ( CSource->CurChr >= CSource->Length ) return ENDSTREAMCHAR;
+ * return CSource->Buffer[ CSource->CurChr++ ];
+ *
+ *
+ * BOOL CS_UnReadChar( struct CSource *CSource )
+ *
+ * if ( CSource == 0 ) return UnReadChar();
+ * if ( CSource->CurChr <= 0 ) return FALSE;
+ * CSource->CurChr--;
+ * return TRUE;
+ *
+ *
+ * To initialize a struct CSource, you set CSource->CS_Buffer to
+ * a string which is used as the data source, and set CS_Length to
+ * the number of characters in the string. Normally CS_CurChr should
+ * be initialized to ZERO, or left as it was from prior use as
+ * a CSource.
+ *
+ *********************************************************************}
+
+type
+// This structure emulates an input stream by using a buffer.
+ PCSource = ^TCSource;
+ TCSource = record
+ CS_Buffer: PChar; // The buffer, which contains the stream. In most cases this may be nil,
+ // in which case the current input stream is used.
+ CS_Length,
+ CS_CurChr: LongInt;
+ end;
+
+{ *********************************************************************
+ *
+ * The RDArgs data structure is the input parameter passed to the DOS
+ * ReadArgs() function call.
+ *
+ * The RDA_Source structure is a CSource as defined above;
+ * if RDA_Source.CS_Buffer is non-null, RDA_Source is used as the input
+ * character stream to parse, else the input comes from the buffered STDIN
+ * calls ReadChar/UnReadChar.
+ *
+ * RDA_DAList is a private address which is used internally to track
+ * allocations which are freed by FreeArgs(). This MUST be initialized
+ * to NULL prior to the first call to ReadArgs().
+ *
+ * The RDA_Buffer and RDA_BufSiz fields allow the application to supply
+ * a fixed-size buffer in which to store the parsed data. This allows
+ * the application to pre-allocate a buffer rather than requiring buffer
+ * space to be allocated. If either RDA_Buffer or RDA_BufSiz is NULL,
+ * the application has not supplied a buffer.
+ *
+ * RDA_ExtHelp is a text string which will be displayed instead of the
+ * template string, if the user is prompted for input.
+ *
+ * RDA_Flags bits control how ReadArgs() works. The flag bits are
+ * defined below. Defaults are initialized to ZERO.
+ *
+ *********************************************************************}
+{ The main structure used for ReadArgs(). It contains everything needed for
+ ReadArgs() handling. Allocate this structure with AllocDosObject().}
+ PRDArgs = ^TRDArgs;
+ TRDArgs = record
+ RDA_Source: TCSource; // Select input source use this structure as source
+ // for parsing, otherwise use DosInput() as source.
+ RDA_DAList: IPTR; // PRIVATE. Must be initialized to 0
+ {The next two fields allow an application to supply a buffer to be parsed
+ to ReadArgs(). If either of these fields is 0, ReadArgs() allocates this
+ buffer itself.}
+ RDA_Buffer: PChar; // Pointer to buffer. May be nil.
+ RDA_BufSiz: LongInt; // Size of the supplied RDA_Buffer. May be 0.
+ RDA_ExtHelp: PChar; // Additional help, if user requests it, by supplying '?' as argument.
+ RDA_Flags: LongInt; // Flags for any required control (RDAF_?)
+ end;
+
+const
+ RDAB_STDIN = 0; // Use Input() instead of the supplied command line.
+ RDAB_NOALLOC = 1; // If set, do not allocate extra string space.
+ RDAB_NOPROMPT = 2; // Do not prompt for input.
+
+ RDAF_STDIN = 1 shl RDAB_STDIN;
+ RDAF_NOALLOC = 1 shl RDAB_NOALLOC;
+ RDAF_NOPROMPT = 1 shl RDAB_NOPROMPT;
+
+{ Maximum number of template keywords which can be in a template passed
+ to ReadArgs(). IMPLEMENTOR NOTE - must be a multiple of 4.}
+ MAX_TEMPLATE_ITEMS = 100;
+
+{ Maximum number of MULTIARG items (/M) returned by ReadArgs(), before
+ an ERROR_LINE_TOO_LONG. These two limitations are due to stack
+ usage. Applications should allow "a lot" of stack to use ReadArgs().
+ This may change in the future}
+ MAX_MULTIARGS = 128;
+
+const
+{ LockRecord() and LockRecords() locking modes. EXCLUSIVE modes mean that
+ nobody else is allowed to lock a specific record, which is allowed, when
+ locking with SHARED mode. When using IMMED modes, the timeout is ignored. }
+ REC_EXCLUSIVE = 0;
+ REC_EXCLUSIVE_IMMED = 1;
+ REC_SHARED = 2;
+ REC_SHARED_IMMED = 3;
+
+// Structure as passed to LockRecords() and UnLockRecords().
+type
+ PRecordLock = ^TRecordLock;
+ TRecordLock = record
+ rec_FH : BPTR; // PFileHandle The file to get the current record from.
+ rec_Offset, // The offset, the current record should start.
+ rec_Length, // The length of the current record.
+ rec_Mode : LongWord; // The mode od locking (REC_*).
+ end;
+
+{ This structure describes a local variable. The list is normally held in
+ Process^.pr_LocalVars. Note that this structure is READ-ONLY!
+ Allocate it with SetVar(). }
+type
+ PLocalVar = ^TLocalVar;
+ TLocalVar = record
+ lv_Node: TNode; // Standard node structure as defined in Exec
+ lv_Flags: Word;
+ lv_Value: STRPTR; // The contents of the variable.
+ lv_Len: LongWord; // The length of the contents.
+ end;
+
+{ The lv_Flags bits are available to the application. The unused
+ lv_Node.ln_Pri bits are reserved for system use.}
+const
+// bit definitions for lv_Node.ln_Type:
+ LV_VAR = 0; // This is a variable.
+ LV_ALIAS = 1; // This is an alias.
+{ This flag may be or'ed into lv_Node.ln_Type. It means that dos.library
+ should ignore this entry.}
+ LVB_IGNORE = 7; // ignore this entry on GetVar, etc
+ LVF_IGNORE = 1 shl LVB_IGNORE;
+
+{ definitions of flags passed to GetVar()/SetVar()/DeleteVar()
+ bit defs to be OR'ed with the type:
+ item will be treated as a single line of text unless BINARY_VAR is used }
+ GVB_GLOBAL_ONLY = 8; //The variable is not to be used locally.
+ GVB_LOCAL_ONLY = 9; // The variable is not to be used globally.
+ GVB_BINARY_VAR = 10; // The variable is a binary variable. lv_Value points to binary data.
+ GVB_DONT_NULL_TERM = 11; // lv_Value is not null-terminated. This is only allowed, if GVB_BINARY_VAR is also set.
+ GVB_SAVE_VAR = 12; // This flag tells dos to save the variable to ENVARC: too.
+ GVF_GLOBAL_ONLY = 1 shl GVB_GLOBAL_ONLY;
+ GVF_LOCAL_ONLY = 1 shl GVB_LOCAL_ONLY;
+ GVF_BINARY_VAR = 1 shl GVB_BINARY_VAR;
+ GVF_DONT_NULL_TERM = 1 shl GVB_DONT_NULL_TERM;
+ GVF_SAVE_VAR = 1 shl GVB_SAVE_VAR;
+
+const
+{ ***************************************************************************}
+{ definitions for the System() call }
+
+ SYS_Dummy = (TAG_USER + 32);
+ SYS_Input = (SYS_Dummy + 1); // specifies the input filehandle
+ SYS_Output = (SYS_Dummy + 2); // specifies the output filehandle
+ SYS_Asynch = (SYS_Dummy + 3); // run asynch, close input/output on exit(!)
+ SYS_UserShell = (SYS_Dummy + 4); // send to user shell instead of boot shell
+ SYS_CustomShell = (SYS_Dummy + 5); // send to a specific shell (data is name)
+{$ifdef aros}
+ SYS_Error = (SYS_Dummy + 10); // (BPTR/struct FileHandle *) Output filehandle.
+ SYS_ScriptInput = (SYS_Dummy + 11); // Filehandle to script to execute
+ SYS_Background = (SYS_Dummy + 12); // (BOOL) The shell is run as a "background shell
+ SYS_CliNumPtr = (SYS_Dummy + 13); // (LONG *) ti_Data to store the cli number
+
+{ This is not a Tag its a TAG Item Use this together with SYS_Input, SYS_Output and
+ SYS_Error, to tell SystemTagList to *duplicate* the respective caller's streams.}
+ SYS_DupStream = 1;
+{$endif}
+
+
+{ Tags for CreateNewProc(). All tags, where no default is stated, the default
+ is inherited from the parent process. Additionally you may use tags for
+ AllocDosObject(DOS_CLI, ...).}
+ NP_Dummy = (TAG_USER + 1000);
+ NP_Seglist = (NP_Dummy + 1); // seglist of code to run for the process
+ NP_FreeSeglist = (NP_Dummy + 2); // free seglist on exit - only valid for for NP_Seglist. Default is True.
+ NP_Entry = (NP_Dummy + 3); // entry point to run, mutually exclusive with NP_Seglist!
+ NP_Input = (NP_Dummy + 4); // filehandle - default is Open("NIL:"...)
+ NP_Output = (NP_Dummy + 5); // filehandle - default is Open("NIL:"...)
+ NP_CloseInput = (NP_Dummy + 6); // close input filehandle on exit default True
+ NP_CloseOutput = (NP_Dummy + 7); // close output filehandle on exit default True
+ NP_Error = (NP_Dummy + 8); // filehandle - default is Open("NIL:"...)
+ NP_CloseError = (NP_Dummy + 9); // close error filehandle on exit default True
+ NP_CurrentDir = (NP_Dummy + 10);// lock - default is parent's current dir
+ NP_StackSize = (NP_Dummy + 11);// stacksize for process - default 4000
+ NP_Name = (NP_Dummy + 12);// name for process - default "New Process"
+ NP_Priority = (NP_Dummy + 13);// priority - default same as parent
+ NP_ConsoleTask = (NP_Dummy + 14);// consoletask - default same as parent
+ NP_WindowPtr = (NP_Dummy + 15);// window ptr - default is same as parent
+ NP_HomeDir = (NP_Dummy + 16);// home directory - default curr home dir
+ NP_CopyVars = (NP_Dummy + 17);// boolean to copy local vars-default True
+ NP_Cli = (NP_Dummy + 18);// create cli structure - default FALSE
+ NP_Path = (NP_Dummy + 19);// path - default is copy of parents path only valid if a cli process!
+ NP_CommandName = (NP_Dummy + 20);// commandname - valid only for CLI
+ NP_Arguments = (NP_Dummy + 21);// If this tag is used, NP_Input must not be NULL.
+//The following two tags do not work, yet.
+ NP_NotifyOnDeath = (NP_Dummy + 22); // (BOOL) Notify parent, when process exits? (Default: FALSE)
+ NP_Synchronous = (NP_Dummy + 23); // (BOOL) Wait until called process returns. (Default: FALSE)
+
+ NP_ExitCode = (NP_Dummy + 24);// (APTR) Code that is to be called, when process exits. (Default: NULL)
+ NP_ExitData = (NP_Dummy + 25);// (APTR) Optional data for NP_ExitCode. (Default: NULL)
+{$ifdef aros}
+ NP_UserData = (NP_Dummy + 26); //(IPTR) User dependant data. Do with it, what you want to. (Default: NULL)
+{$endif}
+
+{ Tags for AllocDosObject }
+ ADO_Dummy = (TAG_USER + 2000);
+ ADO_FH_Mode = (ADO_Dummy + 1); // Sets up FH to the specified mode.
+ ADO_DirLen = (ADO_Dummy + 2); // size in bytes for current dir buffer
+ ADO_CommNameLen = (ADO_Dummy + 3); // size in bytes for command name buffer
+ ADO_CommFileLen = (ADO_Dummy + 4); // size in bytes for command file buffer
+ ADO_PromptLen = (ADO_Dummy + 5); // size in bytes for the prompt buffer
+
+type
+ PRootNode = ^TRootNode;
+ TRootNode = record
+ rn_TaskArray: BPTR; // Pointer to the SegList for CLIs.
+ rn_ConsoleSegment: BPTR; // SegList for the CLI
+ rn_Time: TDateStamp; // Current time
+ rn_RestartSeg: APTR; // SegList for the disk validator process
+ rn_Info: BPTR; // Pointer ot the Info structure
+ rn_FileHandlerSegment: BPTR; // segment for a file handler
+ rn_CliList: TMinList; // List of all CLI processe (CliProcList)
+ rn_BootProc: PMsgPort; // private ptr to msgport of boot fs
+ rn_ShellSegment: BPTR; // seglist for Shell (for NewShell)
+ rn_Flags: LongInt; // dos flags
+ rn_RootLock: TSignalSemaphore; // RootNode arbitrator
+ end;
+
+{ Structure that is linked into the rootnode's rn_CliList. Completely
+ private, of course! ... and it's not compatible to AmigaOS.}
+ PCLIInfo = ^TCLIInfo;
+ TCLIInfo = record
+ ci_Node: TNode;
+ ci_Process: PProcess;
+ end;
+
+{ A structure for holding error messages - stored as array with error == 0
+ for the last entry.}
+ PErrorString = ^TErrorString;
+ TErrorString = record
+ estr_Nums: PLongInt;
+ estr_Strings: STRPTR;
+ end;
+
+const
+{ error report types for ErrorReport() }
+ REPORT_STREAM = 0; // a stream
+ REPORT_TASK = 1; // a process - unused
+ REPORT_LOCK = 2; // a lock
+ REPORT_VOLUME = 3; // a volume node
+ REPORT_INSERT = 4; // please insert volume
+
+{ Special error codes for ErrorReport() }
+ ABORT_DISK_ERROR = 296; // Read/write error
+ ABORT_BUSY = 288; // You MUST replace...
+
+
+type
+// This is how the base of dos.library looks like.
+ PDosLibrary = ^TDosLibrary;
+ TDosLibrary = record
+ dl_lib: TLibrary;
+ dl_Root: PRootNode; // Pointer to RootNode, described below }
+{$ifdef AROS_FLAVOUR_BINCOMPAT}
+ dl_GV: APTR; // Pointer to BCPL global vector }
+ dl_A2: LongInt; // Private register dump of DOS }
+ dl_A5: LongInt;
+ dl_A6: LongInt;
+{$endif}
+ dl_Errors: PErrorString; // pointer to array of error msgs
+ dl_TimeReq: PTimeRequest; // private pointer to timer request
+ dl_UtilityBase : PLibrary; // private ptr to utility library
+ dl_IntuitionBase : PLibrary;
+{ These were AROS-specific private fields. At the moment they are mostly not used
+ and are present only for binary compatibility with programs that used dl_Flags
+ (Directory Opus for example). Do not try to use them in any way!}
+{$ifdef aros}
+ dl_TimerBase: PDevice;
+ dl_TimerIO: TTimeRequest;
+ dl_DevInfo: PDosList;
+ dl_SysBase: PExecBase;
+ dl_SegList: BPTR;
+ dl_NulHandler: PDevice;
+ dl_NulLock: PUnit;
+ // LDDemon (library loader) private data
+ dl_LDObjectsListSigSem: TSignalSemaphore;
+ dl_LDObjectsList: TList;
+ dl_LDHandler: TInterrupt;
+ dl_LDDemonPort: PMsgPort;
+ dl_LDDemonTask: PProcess;
+ dl_LDReturn: ULONG;
+ //* AROS-specific and private. Can go away in future.
+ dl_SYSLock: BPTR;
+ // The flags are ORed with RootNode^.rn_Flags. See below for definitions.
+ dl_Flags: ULONG;
+{$endif}
+ end;
+
+const
+ RNB_WILDSTAR = 24;
+ RNF_WILDSTAR = 1 shl RNB_WILDSTAR;
+ RNB_PRIVATE1 = 1; // private for dos
+ RNF_PRIVATE1 = 1 shl RNB_PRIVATE1;
+
+{ ***************************************************************************}
+{ tags for NewLoadSeg }
+{ no tags are defined yet for NewLoadSeg }
+
+{$ifdef aros}
+
+type
+// FSA_Open, Returns a new filehandle. The file may be newly created (depending on io_FileMode)
+ PIFS_OPEN = ^TIFS_OPEN;
+ TIFS_OPEN = record
+ io_FileName: STRPTR; // File to open.
+ io_FileMode: LongWord; // Filemode (FMF_*)
+ end;
+// Reads from a filehandle into a buffer.
+ PIFS_READ_WRITE = ^TIFS_READ_WRITE;
+ TIFS_READ_WRITE = record
+ io_Buffer: PChar; // The buffer for the data to read/write.
+ io_Length: LongInt; // The length of the buffer. This is filled by the filesystem handler
+ end; // with the number of bytes actually read/written.
+// This action does exactly the same as the function Seek().
+ PIFS_SEEK = ^TIFS_SEEK;
+ TIFS_SEEK = record
+ io_Offset: QWord; // Offset from position, specified as mode. This is filled by the
+ // filehandler with the old position in the file.
+ io_SeekMode: LongInt; // Seek mode (OFFSET_*)
+ end;
+{ Waits for a character to arrive at the filehandle. This is not used for
+ plain files, but for queues only. Optionally a maximum time to wait may be
+ specified.}
+ PIFS_WAIT_CHAR = ^TIFS_WAIT_CHAR;
+ TIFS_WAIT_CHAR = record
+ io_Timeout: LongInt; // Maximum time (in microseconds) to wait for a character.
+ io_Success: LongBool; // This is set to False by the filehandler if no character arrived in
+ end; // time. Otherwise it is set to True.
+{ Applies a new mode to a file. If you supply io_Mask with a value of 0,
+ no changes are made and you can just read the resulting io_FileMode.}
+ PIFS_FILE_MODE = ^TIFS_FILE_MODE;
+ TIFS_FILE_MODE = record
+ io_FileMode: LongWord; // The new mode to apply to the filehandle. See below for definitions.
+ // The filehandler fills this with the old mode bits.
+ io_Mask: LongWord; // This mask defines which flags are to be changed.
+ end;
+{ This action can be used to query if a filehandle is interactive, i.e. if it
+ is a terminal or not.}
+ PIFS_IS_INTERACTIVE = ^TIFS_IS_INTERACTIVE;
+ TIFS_IS_INTERACTIVE = record
+ io_IsInteractive: LongBool; // This boolean is filled by the filehandler. It is set to TRUE if the
+ // filehandle is interactive, otherwise it is set to FALSE.
+ end;
+// Compares two locks for equality.
+ PIFS_SAME_LOCK = ^TIFS_SAME_LOCK;
+ TIFS_SAME_LOCK = record
+ io_Lock: array[0..1] of APTR; // The two locks to compare.
+ io_Same: LongInt; // This is set to one of LOCK_DIFFERENT or LOCK_SAME
+ end;
+// Examines a filehandle, giving various information about it.
+ PIFS_EXAMINE = ^TIFS_EXAMINE;
+ TIFS_EXAMINE = record
+ io_ead: PExAllData; // ExAllData structure buffer to be filled by the filehandler.
+ io_Size: LongInt; // Size of the buffer.
+ io_Mode: LongInt; // With which kind of information shall the buffer be filled with?
+ end; // see ED_* definitions for more information.
+ PIFS_EXAMINE_NEXT = ^TIFS_EXAMINE_NEXT;
+ TIFS_EXAMINE_NEXT = record
+ io_fib: PFileInfoBlock; // FileInfoBlock structure buffer to be used and filled by the filehandler.
+ end;
+{ Works exactly like FSA_EXAMINE with the exeption that multiple files may be
+ examined, i.e. the filehandle must be a directory.}
+ PIFS_EXAMINE_ALL = ^TIFS_EXAMINE_ALL;
+ TIFS_EXAMINE_ALL = record
+ io_ead: PExAllData;
+ io_eac: PExallControl;
+ io_Size: LongInt;
+ io_Mode: LongInt;
+ end;
+{ Works exactly like FSA_OPEN, but you can additionally specify protection
+ bits to be applied to new files.}
+ PIFS_OPEN_FILE = ^TIFS_OPEN_FILE;
+ TIFS_OPEN_FILE = record
+ io_Filename: STRPTR; // File to open.
+ io_FileMode: LongWord; // see below.
+ io_Protection: LongWord; // The protection bits
+ end;
+// Creates a new directory. The filehandle of that new directory is returned.
+ PIFS_CREATE_DIR = ^TIFS_CREATE_DIR;
+ TIFS_CREATE_DIR = record
+ io_FileName: STRPTR; // Name of directory to create.
+ io_Protection: LongWord; // The protection bits.
+ end;
+// Creates a hard link (i.e. gives one file/directory a second name).
+ PIFS_CREATE_HARDLINK = ^TIFS_CREATE_HARDLINK;
+ TIFS_CREATE_HARDLINK = record
+ io_Filename: STRPTR; // The filename of the link to create.
+ io_OldFile: APTR; // Filehandle of the file to link to.
+ end;
+// Creates a soft link (i.e. a file is created that references another by its name).
+ PIFS_CREATE_SOFTLINK = ^TIFS_CREATE_SOFTLINK;
+ TIFS_CREATE_SOFTLINK = record
+ io_Filename: STRPTR; // The filename of the link to create.
+ io_Reference: STRPTR; // The name of the file to link to.
+ end;
+// Renames a file. To the old and the new name, the current directory is applied to.
+ PIFS_RENAME = ^TIFS_RENAME;
+ TIFS_RENAME = record
+ io_Filename: STRPTR; // The old filename.
+ io_NewName: STRPTR; // The new filename.
+ end;
+// Resolves the full path name of the file a softlink filehandle points to.
+ PIFS_READ_SOFTLINK = ^TIFS_READ_SOFTLINK;
+ TIFS_READ_SOFTLINK = record
+ io_Filename: STRPTR; // file name which returned ERROR_IS_SOFT_LINK
+ io_Buffer: STRPTR; { The buffer to fill with the pathname. If this buffer is too small, the
+ filesystem handler is supposed to return ERROR_LINE_TOO_LONG.}
+ io_Size: LongWord; // The size of the buffer pointed to by io_Buffer.
+ end;
+// Deletes an object on the volume.
+ PIFS_DELETE_OBJECT = ^TIFS_DELETE_OBJECT;
+ TIFS_DELETE_OBJECT = record
+ io_Filename: STRPTR; // The name of the file to delete.
+ end;
+// Sets a filecomment for a file.
+ PIFS_SET_COMMENT = ^TIFS_SET_COMMENT;
+ TIFS_SET_COMMENT = record
+ io_Filename: STRPTR; // The name of the file to be commented.
+ io_Comment: STRPTR; // The new filecomment. May be nil, in which case the current filecomment is deleted.
+ end;
+// Sets the protection bits of a file.
+ PIFS_SET_PROTECT = ^TIFS_SET_PROTECT;
+ TIFS_SET_PROTECT = record
+ io_Filename: STRPTR; // The file to change.
+ io_Protection: LongWord; // The new protection bits.
+ end;
+// Sets the ownership of a file.
+ PIFS_SET_OWNER = ^TIFS_SET_OWNER;
+ TIFS_SET_OWNER = record
+ io_Filename: STRPTR; // The file to change.
+ io_UID: Word; // The new owner.
+ io_GID: Word; // The new group owner.
+ end;
+{ Sets the last modification date/time of the filename given as first
+ argument. The date/time is given as standard DateStamp structure}
+ PIFS_SET_DATE = ^TIFS_SET_DATE;
+ TIFS_SET_DATE = record
+ io_Filename: STRPTR; // The file to change
+ io_Date: TDateStamp; // The new date
+ end;
+// Check if a filesystem is in fact a FILEsystem, i.e. can contain different files.
+ PIFS_IS_FILESYSTEM = ^TIFS_IS_FILESYSTEM;
+ TIFS_IS_FILESYSTEM = record
+ io_IsFilesystem: LongBool; // This is set to True by the filesystem handler if it is a filesystem
+ end; // and set to False if it is not.
+{ Changes the number of buffers for the filesystem. The current number of
+ buffers is returned. The size of the buffers is filesystem-dependent.}
+ PIFS_MORE_CACHE = ^TIFS_MORE_CACHE;
+ TIFS_MORE_CACHE = record
+ io_NumBuffers: LongInt; // Number of buffers to add. May be negative to reduce number of buffers.
+ end; // This is to be set to the current number of buffers on success.
+// Formats a volume, i.e. erases all data on it.
+ PIFS_FORMAT = ^TIFS_FORMAT;
+ TIFS_FORMAT = record
+ io_VolumeName: STRPTR; // New name for the volume.
+ io_DosType: LongWord; // New type for the volume. Filesystem specific.
+ end;
+{ Resets/reads the mount-mode of the volume passed in as io_Unit. The first
+ and second arguments work exactly like FSA_FILE_MODE, but the third
+ argument can contain a password, if MMF_LOCKED is set.}
+ PIFS_MOUNT_MODE = ^TIFS_MOUNT_MODE;
+ TIFS_MOUNT_MODE = record
+ io_MountMode: LongWord; // The new mode to apply to the volume. See below for definitions.
+ // The filehandler fills this with the old mode bits.
+ io_Mask: LongWord; // This mask defines which flags are to be changed.
+ io_Password: STRPTR; // A password, which is needed if MMF_LOCKED is set.
+ end;
+ PIFS_INHIBIT = ^TIFS_INHIBIT;
+ TIFS_INHIBIT = record
+ io_Inhibit: LongBool;
+ end;
+ PIFS_NOTIFY = ^TIFS_NOTIFY;
+ TIFS_NOTIFY = record
+ io_FileName: STRPTR; // Needed for synchronous operation
+ io_NotificationRequest: PNotifyRequest;
+ end;
+ PIFS_INFO = ^TIFS_INFO;
+ TIFS_INFO = record
+ io_Info: PInfoData;
+ end;
+ PIFS_CHANGE_SIGNAL = ^TIFS_CHANGE_SIGNAL;
+ TIFS_CHANGE_SIGNAL = record
+ io_Task: PTask;
+ end;
+ PIFS_RECORD = ^TIFS_RECORD;
+ TIFS_RECORD = record
+ io_Offset: QWord;
+ io_Size: LongInt;
+ io_RecordMode: LongWord;
+ io_Timeout: LongWord;
+ end;
+ PIFS_PARENT_DIR = ^TIFS_PARENT_DIR;
+ TIFS_PARENT_DIR = record
+ io_DirName: PChar; // This will contain the return value of the parent directory, or
+ end; // nil if we are at the root directory already
+// Allows us to change a console between raw and cooked mode.
+ PIFS_CONSOLE_MODE = ^TIFS_CONSOLE_MODE;
+ TIFS_CONSOLE_MODE = record
+ io_ConsoleMode: LongInt; // (FCM_*)
+ end;
+ PIFS_RELABEL = ^TIFS_RELABEL;
+ TIFS_RELABEL = record
+ io_NewName: STRPTR;
+ io_Result: LongBool;
+ end;
+{ FSA_PIPE: create a pair of handles connected to each other
+ This opens a "file" (which will usually be a pipe device) and returns two
+ handles such that writing data to the writer will result in that data
+ appearing on the reader. Both handles must be closed for the underlying
+ file to be closed. If a NULL/empty path is supplied, an unnamed pipe will
+ be created, which will be destroyed once both handles are closed.
+ The read handle is returned in io_Unit.}
+ PIFS_PIPE = ^TIFS_PIPE;
+ TIFS_PIPE = record
+ io_FileName: STRPTR;
+ io_Writer: PUnit;
+ end;
+const
+ FSA_OPEN = 1; // Returns a new filehandle. The file may be newly created (depending on io_FileMode) TIFS_OPEN
+ FAS_CLOSE = 2; // Closes an opened filehandle. Takes no extra arguments.
+ FSA_READ = 3; // Reads from a filehandle into a buffer. TIFS_READ_WRITE
+ FSA_WRITE = 4; // Writes the contents of a buffer into a filehandle. Uses TIFS_READ_WRITE.
+ FSA_SEEK = 5; // This action does exactly the same as the function Seek(). TIFS_SEEK
+ FSA_SET_FILE_SIZE = 6; // Sets the size of filehandle. Uses TIFS_SEEK (see above) as argument array.
+ FSA_WAIT_CHAR = 7; // Waits for a character to arrive at the filehandle. (TIFS_WAIT_CHAR)
+ FSA_FILE_MODE = 8; // Applies a new mode to a file.
+ FSA_IS_INTERACTIVE = 9; // Query if a filehandle is interactive
+ FSA_SAME_LOCK = 10; // Compares two locks for equality.
+ FSA_EXAMINE = 11; // Examines a filehandle, giving various information about it.
+ FSA_EXAMINE_NEXT = 12; // Examine next file
+ FSA_EXAMINE_ALL = 13; // Works exactly like FSA_EXAMINE on directories
+ FSA_EXAMINE_ALL_END = 14; { This has to be called if FSA_EXAMINE_ALL is stopped before all examined
+ files were returned. It takes no arguments except the filehandle in io_Unit.}
+ FSA_OPEN_FILE = 15; // Works exactly like FSA_OPEN but with special protection bits
+ FSA_CREATE_DIR = 16; // Creates a new directory. The filehandle of that new directory is returned.
+ FSA_CREATE_HARDLINK = 17; // Creates a hard link (i.e. gives one file/directory a second name).
+ FSA_CREATE_SOFTLINK = 18; // Creates a soft link (i.e. a file is created that references another by its name).
+ FSA_RENAME = 19; // Renames a file. To the old and the new name, the current directory is applied to.
+ FSA_READ_SOFTLINK = 20; // Resolves the full path name of the file a softlink filehandle points to.
+ FSA_DELETE_OBJECT = 21; // Deletes an object on the volume.
+ FSA_SET_COMMENT = 22; // Sets a filecomment for a file.
+ FSA_SET_PROTECT = 23; // Sets the ownership of a file.
+ FSA_SET_OWNER = 24; // Sets the last modification date/time
+ FSA_SET_DATE = 25; // Set file date
+ FSA_IS_FILESYSTEM = 26; // Check if a filesystem is in fact a FILEsystem, i.e. can contain different files.
+ FSA_MORE_CACHE = 27; // Changes the number of buffers for the filesystem.
+ FSA_FORMAT = 28; // Formats a volume, i.e. erases all data on it.
+ FSA_MOUNT_MODE = 29; // Resets/reads the mount-mode
+ //FSA_SERIALIZE_DISK = 30; // currently not supported
+ // FSA_FLUSH = 31; // currently not supported
+ FSA_INHIBIT = 32;
+ //FSA_WRITE_PROTECT = 33; // currently not supported
+ //FSA_DISK_CHANGE = 34; // currently not supported
+ FSA_ADD_NOTIFY = 35;
+ FSA_REMOVE_NOTIFY = 36;
+ FSA_DISK_INFO = 37;
+ FSA_CHANGE_SIGNAL = 38;
+ FSA_LOCK_RECORD = 39;
+ FSA_UNLOCK_RECORD = 40;
+ FSA_PARENT_DIR = 41;
+ FSA_PARENT_DIR_POST = 42;
+ FSA_CONSOLE_MODE = 43; // Allows us to change a console between raw and cooked mode.
+ FSA_RELABEL = 44;
+ FSA_PIPE = 45; // create a pair of handles connected to each other
+// io_ConsoleMode
+ FCM_COOKED = 0;
+ FCM_RAW = 1 shl 0;
+ FCM_NOECHO = 1 shl 1;
+{ io_FileMode for FSA_OPEN, FSA_OPEN_FILE and FSA_FILE_MODE. These are flags
+ and may be OR'ed. Note that not all filesystems support all flags.}
+ FMF_LOCK = 1 shl 0; // Lock exclusively.
+ FMF_EXECUTE = 1 shl 1; // Open for executing.
+// At least one of the following two flags must be specified. Otherwise expect strange things to happen.
+ FMF_WRITE = 1 shl 2; // Open for writing.
+ FMF_READ = 1 shl 3; // Open for reading.
+ FMF_CREATE = 1 shl 4; // Create file if it doesn't exist.
+ FMF_CLEAR = 1 shl 5; // Truncate file on open.
+ FMF_RAW = 1 shl 6; // Switch cooked to raw and vice versa.
+ FMF_NONBLOCK = 1 shl 7; // Don't block Open() in case it would and return an error in case Write()/Read() would block
+ FMF_APPEND = 1 shl 8; // Every write will happen always at the end of the file
+ FMF_AMIGADOS = (1 shl 9) or (1 shl 31); // Identifies the old AmigaDOS modes:
+ // - bit 9 is the first bit set in the MODE_#? modes
+ // - bit 31 is the first bit set in ACCESS_#? modes
+ FMF_MODE_OLDFILE = FMF_AMIGADOS or FMF_WRITE or FMF_READ;
+ FMF_MODE_READWRITE = FMF_MODE_OLDFILE or FMF_CREATE;
+ FMF_MODE_NEWFILE = FMF_MODE_READWRITE or FMF_LOCK or FMF_CLEAR;
+// io_MountMode for FSA_MOUNT_MODE. These are flags and may be OR'ed.
+ MMF_READ = 1 shl 0; // Mounted for reading.
+ MMF_WRITE = 1 shl 1; // Mounted for writing.
+ MMF_READ_CACHE = 1 shl 2; // Read cache enabled.
+ MMF_WRITE_CACHE = 1 shl 3; // Write cache enabled.
+ MMF_OFFLINE = 1 shl 4; // Filesystem currently does not use the device.
+ MMF_LOCKED = 1 shl 5; // Mount mode is password protected.
+{ This structure is an extended TIORequest. It is used for
+ requesting actions from AROS filesystem handlers.
+ Note that this structure may grow in the future. Do not depend on its size!
+ You may use sizeof(TIOFileSys) nevertheless if you are reserving
+ memory for a TIOFileSys as the size of it will never shrink.}
+type
+ PIOFileSys = ^TIOFileSys;
+ TIOFileSys = record
+ IOFS: TIORequest; // Standard I/O request.
+ io_DosError: LongInt; // Dos error code.
+ io_PacketEmulation: PDosPacket; // Private
+ io_DirPos: IPTR; // Handler-private key to current directory position
+ //* This union contains all the data needed for the various actions. */
+ io_Union: record
+ case Smallint of
+ 0: (io_OpenDevice : record
+ io_DeviceName: STRPTR; // Name of the device to open. */
+ io_Unit: IPTR; // Number of unit to open. */
+ io_Environ: ^IPTR; // Pointer to environment array.
+ io_DosName: STRPTR; // The name with which the
+ // filesystem is being mounted
+ // (the mount point, one might
+ // say)
+ io_DeviceNode: PDeviceNode; // The DOS entry for this
+ // filesystem. Packet-based
+ // filesystems expect to receive
+ // this along with the
+ // startup message
+ end;
+ );
+ 1: (io_NamedFile: record
+ io_Filename: STRPTR;
+ end;
+ );
+ 2: (
+ io_OPEN: TIFS_OPEN; // FSA_OPEN
+ io_READ_WRITE: TIFS_READ_WRITE; // FSA_READ, FSA_WRITE
+ io_SEEK: TIFS_SEEK; // FSA_SEEK
+ io_WAIT_CHAR: TIFS_WAIT_CHAR; // FSA_WAIT_CHAR
+ io_FILE_MODE: TIFS_FILE_MODE; // FSA_FILE_MODE */
+ io_IS_INTERACTIVE: TIFS_IS_INTERACTIVE; // FSA_IS_INTERACTIVE */
+ io_SAME_LOCK: TIFS_SAME_LOCK; // FSA_SAME_LOCK */
+ io_EXAMINE: TIFS_EXAMINE; // FSA_EXAMINE */
+ io_EXAMINE_ALL: TIFS_EXAMINE_ALL; // FSA_EXAMINE_ALL */
+ io_EXAMINE_NEXT: TIFS_EXAMINE_NEXT; // FSA_EXAMINE_NEXT */
+ io_OPEN_FILE: TIFS_OPEN_FILE; // FSA_OPEN_FILE */
+ io_CREATE_DIR: TIFS_CREATE_DIR; // FSA_CREATE_DIR */
+ io_CREATE_HARDLINK: TIFS_CREATE_HARDLINK; // FSA_CREATE_HARDLINK */
+ io_CREATE_SOFTLINK: TIFS_CREATE_SOFTLINK; // FSA_CREATE_SOFTLINK */
+ io_RENAME: TIFS_RENAME; // FSA_RENAME */
+ io_READ_SOFTLINK: TIFS_READ_SOFTLINK; // FSA_READ_SOFTLINK */
+ io_DELETE_OBJECT: TIFS_DELETE_OBJECT; // FSA_DELETE_OBJECT */
+ io_SET_COMMENT: TIFS_SET_COMMENT; // FSA_SET_COMMENT */
+ io_SET_PROTECT: TIFS_SET_PROTECT; // FSA_SET_PROTECT */
+ io_SET_OWNER: TIFS_SET_OWNER; // FSA_SET_OWNER */
+ io_SET_DATE: TIFS_SET_DATE; // FSA_SET_DATE */
+ io_IS_FILESYSTEM: TIFS_IS_FILESYSTEM; // FSA_IS_FILESYSTEM */
+ io_MORE_CACHE: TIFS_MORE_CACHE; // FSA_MORE_CACHE */
+ io_FORMAT: TIFS_FORMAT; // FSA_FORMAT */
+ io_MOUNT_MODE: TIFS_MOUNT_MODE; // FSA_MOUNT_MODE */
+ io_INHIBIT: TIFS_INHIBIT; // FSA_INHIBIT */
+ io_PARENT_DIR: TIFS_PARENT_DIR; // FSA_PARENT_DIR */
+ io_CONSOLE_MODE: TIFS_CONSOLE_MODE; // FSA_CONSOLE_MODE */
+ io_RELABEL: TIFS_RELABEL; // FSA_RELABEL */
+ io_NOTIFY: TIFS_NOTIFY; // FSA_ADD_NOTIFY
+ io_INFO: TIFS_INFO; // FSA_INFO
+ io_RECORD: TIFS_RECORD; // FSA_LOCK_RECORD
+ io_CHANGE_SIGNAL: TIFS_CHANGE_SIGNAL; // FSA_CHANGE_SIGNAL
+ io_PIPE: TIFS_PIPE; // FSA_PIPE
+ );
+ end;
+end;
+
+const
+ ERROR_BROKEN_PIPE = 400; // An attempt to write on a pipe without any reader has been made
+ ERROR_WOULD_BLOCK = 401; // A Read() or a Write() on a file opened with the FMF_NONBLOCK flag would block
+ ERROR_INTERRUPTED = 402; // The I/O file operation has been interrupted for some reason
+{$endif}
+
+
+
+procedure AbortPkt(Port: PMsgPort; Pkt: PDosPacket); syscall AOS_DOSBase 44;
+function AddBuffers(const DeviceName: STRPTR; NumbBuffers: LongInt): LongBool; syscall AOS_DOSBase 122;
+function AddDosEntry(DList: PDosList): LongInt; syscall AOS_DOSBase 113;
+function AddPart(DirName: STRPTR; const FileName: STRPTR; Size: LongWord): LongBool; syscall AOS_DOSBase 147;
+function AddSegment(const Name: STRPTR; Seg: BPTR; Type_: LongInt): LongBool; syscall AOS_DOSBase 129;
+function AllocDosObject(Type_: LongWord; const Tags: PTagItem): APTR; syscall AOS_DOSBase 38;
+ //function AllocDosObjectTagList(Type_ : LongWord;const Tags : PTagItem) : Pointer;
+function AssignAdd(const Name: STRPTR; Lock: BPTR): LongBool; syscall AOS_DOSBase 105;
+function AssignLate(const Name: STRPTR; const Path: STRPTR): LongBool; syscall AOS_DOSBase 103;
+function AssignLock(const Name: STRPTR; Lock: BPTR): LongInt; syscall AOS_DOSBase 102;
+function AssignPath(const Name: STRPTR; const Path: STRPTR): LongBool; syscall AOS_DOSBase 104;
+function AttemptLockDosList(Flags: LongWord): PDosList; syscall AOS_DOSBase 111;
+function ChangeMode(Type_: LongWord; Object_: BPTR; NewMode: LongWord): LongBool; syscall AOS_DOSBase 75;
+function CheckSignal(Mask: LongInt): LongInt; syscall AOS_DOSBase 132;
+function Cli: PCommandLineInterface; syscall AOS_DOSBase 82;
+function CliInitNewcli(Dp: PDosPacket): IPTR; syscall AOS_DOSBase 155;
+function CliInitRun(Dp: PDosPacket): IPTR; syscall AOS_DOSBase 156;
+function CompareDates(const Date1: PDateStamp; const Date2: PDateStamp): LongInt; syscall AOS_DOSBase 123;
+function CreateDir(const Name: STRPTR): BPTR; syscall AOS_DOSBase 20;
+function CreateNewProc(const Tags: PTagItem): PProcess; syscall AOS_DOSBase 83;
+ //function CreateNewProcTagList(const Tags : PTagItem) : pProcess;
+function CreateProc(const Name: STRPTR; Pri: LongInt; SegList: BPTR; StackSize: LongInt): PMsgPort; syscall AOS_DOSBase 23;
+function CurrentDir(Lock: BPTR): BPTR; syscall AOS_DOSBase 21;
+function DateStamp(Date: PDateStamp): PDateStamp; syscall AOS_DOSBase 32;
+function DateToStr(Datetime: PDateTime): LongBool; syscall AOS_DOSBase 124;
+function DeleteFile(const Name: STRPTR): LongBool; syscall AOS_DOSBase 12;
+function DeleteVar(const Name: STRPTR; Flags: LongWord): LongInt; syscall AOS_DOSBase 152;
+function DeviceProc(const Name: STRPTR): PMsgPort; syscall AOS_DOSBase 29;
+function DisplayError(FormstStr: STRPTR; Flags: LongWord; Args: APTR): LongInt; syscall AOS_DOSBase 81;
+function DoPkt(Port: PMsgPort; Action: LongInt; Arg1, Arg2, Arg3, Arg4, Arg5: LongInt): LongInt; syscall AOS_DOSBase 40;
+function DOSClose(File_: BPTR): LongBool; syscall AOS_DOSBase 6;
+procedure DOSDelay(TimeOut: LongWord); syscall AOS_DOSBase 33;
+procedure DOSExit(ReturnCode: LongInt); syscall AOS_DOSBase 24;
+function DosError(): BPTR; syscall AOS_DOSBase 142;
+function DOSFlush(File_: BPTR): LongInt; syscall AOS_DOSBase 60;
+function DosGetLocalizedString(StringNum: LongInt): STRPTR; syscall AOS_DOSBase 154;
+function DosGetString(StringNum: LongInt): STRPTR; syscall AOS_DOSBase 163;
+function DOSInput: BPTR; syscall AOS_DOSBase 9;
+function DOSOpen(const Name: STRPTR; AccessMode: LongInt): BPTR; syscall AOS_DOSBase 5;
+function DOSOutput : BPTR; syscall AOS_DOSBase 10;
+function DOSRead(File_: BPTR; Buffer: APTR; Length: LongInt): LongInt; syscall AOS_DOSBase 7;
+function DOSRename(const OldName: STRPTR; const NewName: STRPTR): LongInt; syscall AOS_DOSBase 13;
+function DOSSeek(File_: BPTR; Position: LongInt; Mode: LongInt): LongInt; syscall AOS_DOSBase 11;
+function DOSWrite(File_: BPTR; Buffer: APTR; Length: LongInt): LongInt; syscall AOS_DOSBase 8;
+function DupLock(Lock: BPTR): BPTR; syscall AOS_DOSBase 16;
+function DupLockFromFH(Lock: BPTR): BPTR; syscall AOS_DOSBase 62;
+procedure EndNotify(Notify: PNotifyRequest); syscall AOS_DOSBase 149;
+function ErrorReport(Code: LongInt; Type_: LongInt; Arg1: IPTR; Device: PMsgPort): LongBool; syscall AOS_DOSBase 80;
+function ExAll(Lock: BPTR; Buffer: PExAllData; Size: LongInt; Data: LongInt; Control: PExAllControl): LongBool; syscall AOS_DOSBase 72;
+procedure ExAllEnd(Lock: BPTR; Buffer: PExAllData; Size: LongInt; Data: LongInt; Control: PExAllControl); syscall AOS_DOSBase 165;
+function Examine(Lock: BPTR; FileInfoBlock: PFileInfoBlock): LongInt; syscall AOS_DOSBase 17;
+function ExamineFH(Fh: BPTR; Fib: PFileInfoBlock): LongBool; syscall AOS_DOSBase 65;
+function Execute(const String_: STRPTR; Input: BPTR; Output: BPTR): LongInt; syscall AOS_DOSBase 37;
+function ExNext(Lock: BPTR; FileInfoBlock: PFileInfoBlock): LongInt; syscall AOS_DOSBase 18;
+function Fault(Code: LongInt; Header: STRPTR; Buffer: STRPTR; Len: LongInt): LongBool; syscall AOS_DOSBase 78;
+function FGetC(File_: BPTR): LongInt; syscall AOS_DOSBase 51;
+function FGets(Fh: BPTR; Buf: STRPTR; BufLen: LongWord): STRPTR; syscall AOS_DOSBase 56;
+function FilePart(const Path: STRPTR): STRPTR; syscall AOS_DOSBase 145;
+function FindArg(const Template: STRPTR; const KeyWord: STRPTR): LongInt; syscall AOS_DOSBase 134;
+function FindCliProc(Num: LongWord): PProcess; syscall AOS_DOSBase 91;
+function FindDosEntry(const DList: PDosList; const Name: STRPTR; Flags: LongWord): PDosList; syscall AOS_DOSBase 114;
+function FindSegment(const Name: STRPTR; const Seg: PSegment; System: LongBool): PSegment; syscall AOS_DOSBase 130;
+function FindVar(const Name: STRPTR; Type_: LongWord): PLocalVar; syscall AOS_DOSBase 153;
+function DosFormat(const DeviceName: STRPTR; const VolumeName: STRPTR; DosType: LongWord): LongBool; syscall AOS_DOSBase 119;
+function FPutC(File_: BPTR; Character: LongInt): LongInt; syscall AOS_DOSBase 52;
+function FPuts(File_: BPTR; const String_: STRPTR): LongInt; syscall AOS_DOSBase 57;
+function FRead(Fh: BPTR; Block: APTR; Blocklen: LongWord; Number: LongWord): LongInt; syscall AOS_DOSBase 54;
+procedure FreeArgs(Args: PRDArgs); syscall AOS_DOSBase 143;
+procedure FreeDeviceProc(Dp: PDevProc); syscall AOS_DOSBase 108;
+procedure FreeDosEntry(DList: PDosList); syscall AOS_DOSBase 117;
+procedure FreeDosObject(Type_: LongWord; Ptr: APTR); syscall AOS_DOSBase 39;
+function FWrite(Fh: BPTR; Block: APTR; Blocklen: LongWord; NumBlocks: LongWord): LongInt; syscall AOS_DOSBase 55;
+function GetArgStr: STRPTR; syscall AOS_DOSBase 89;
+function GetConsoleTask: PMsgPort; syscall AOS_DOSBase 85;
+function GetCurrentDirName(Buf: STRPTR; Len: LongInt): LongBool; syscall AOS_DOSBase 94;
+function GetDeviceProc(const Name: STRPTR; Dp: PDevProc): PDevProc; syscall AOS_DOSBase 107;
+function GetFileSysTask: PMsgPort; syscall AOS_DOSBase 87;
+function GetProgramDir: BPTR; syscall AOS_DOSBase 100;
+function GetProgramName(Buf: STRPTR; Len: LongInt): LongBool; syscall AOS_DOSBase 96;
+function GetPrompt(Buf: STRPTR; Len: LongInt): LongBool; syscall AOS_DOSBase 98;
+function GetVar(const Name: STRPTR; Buffer: STRPTR; Size: LongInt; Flags: LongInt): LongInt; syscall AOS_DOSBase 151;
+function Info(Lock: BPTR; ParameterBlock: PInfoData): LongInt; syscall AOS_DOSBase 19;
+function Inhibit(const Name: STRPTR; OnOff: LongInt): LongInt; syscall AOS_DOSBase 121;
+function InternalLoadSeg(Fh: BPTR; Table: BPTR; const FuncArray: PLongInt; var Stack: LongInt): BPTR; syscall AOS_DOSBase 126;
+function InternalUnLoadSeg(SegList: BPTR; FreeFunc: TProcedure): LongBool; syscall AOS_DOSBase 127;
+function IoErr: LongInt; syscall AOS_DOSBase 22;
+function IsFileSystem(const Name: STRPTR): LongBool; syscall AOS_DOSBase 118;
+function IsInteractive(File_: BPTR): LongInt; syscall AOS_DOSBase 36;
+function LoadSeg(const Name: STRPTR): BPTR; syscall AOS_DOSBase 25;
+function Lock(const Name: STRPTR; AccessMode: LongInt): BPTR; syscall AOS_DOSBase 14;
+function LockDosList(Flags: LongWord): PDosList; syscall AOS_DOSBase 109;
+function LockRecord(Fh: BPTR; Offset: LongWord; Length: LongWord; Mode: LongWord; Timeout: LongWord): LongBool; syscall AOS_DOSBase 45;
+function LockRecords(RecArray: PRecordLock; TimeOut: LongWord): LongBool; syscall AOS_DOSBase 46;
+function MakeDosEntry(const Name: STRPTR; Type_: LongInt): PDosList; syscall AOS_DOSBase 116;
+function MakeLink(const Name: STRPTR; Dest: APTR; Soft: LongInt): LongInt; syscall AOS_DOSBase 74;
+procedure MatchEnd(AP: PAnchorPath); syscall AOS_DOSBase 139;
+function MatchFirst(const Pat: STRPTR; AP: PAnchorPath): LongInt; syscall AOS_DOSBase 137;
+function MatchNext(AP: PAnchorPath): LongInt; syscall AOS_DOSBase 138;
+function MatchPattern(const Pat: STRPTR; Str: STRPTR): LongBool; syscall AOS_DOSBase 141;
+function MatchPatternNoCase(const Pat: STRPTR; Str: STRPTR): LongBool; syscall AOS_DOSBase 162;
+function MaxCli: LongWord; syscall AOS_DOSBase 92;
+function NameFromFH(Fh: BPTR; Buffer: STRPTR; Length: LongInt): LongBool; syscall AOS_DOSBase 68;
+function NameFromLock(Lock: BPTR; Buffer: STRPTR; Length: LongInt): LongBool; syscall AOS_DOSBase 67;
+function NewLoadSeg(const File_: STRPTR; const Tags: PTagItem): BPTR; syscall AOS_DOSBase 128;
+ //function NewLoadSegTagList(const file_ : PChar;const Tags : PTagItem) : LongInt;
+function NextDosEntry(const DList: PDosList; Flags: LongWord): PDosList; syscall AOS_DOSBase 115;
+function OpenFromLock(Lock: BPTR): BPTR; syscall AOS_DOSBase 62;
+function ParentDir(Lock: BPTR): BPTR; syscall AOS_DOSBase 35;
+function ParentOfFH(Fh: BPTR): BPTR; syscall AOS_DOSBase 64;
+function ParsePattern(const Source: STRPTR; Dest: STRPTR; DestLength: LongInt): LongInt; syscall AOS_DOSBase 140;
+function ParsePatternNoCase(const Source: STRPTR; Dest: STRPTR; DestLen: LongInt): LongInt; syscall AOS_DOSBase 161;
+function PathPart(const Path: STRPTR): STRPTR; syscall AOS_DOSBase 146;
+function Pipe(const Name: STRPTR; var Reader: BPTR; var Writer: BPTR): LongInt; syscall AOS_DOSBase 160;
+function PrintFault(Code: LongInt; const Header: STRPTR): LongBool; syscall AOS_DOSBase 79;
+function PutStr(const String_: STRPTR): LongInt; syscall AOS_DOSBase 158;
+function ReadArgs(const Template: STRPTR; var Array_: IPTR; RdArgs: PRDArgs): PRDArgs; syscall AOS_DOSBase 133;
+function ReadItem(const Buffer: STRPTR; MaxChars: LongInt; CSource: PCSource): LongInt; syscall AOS_DOSBase 135;
+function ReadLink(Port: PMsgPort; Lock: LongInt; const Path: STRPTR; Buffer: STRPTR; Size: LongWord): LongInt; syscall AOS_DOSBase 73;
+function Relabel(const Drive: STRPTR; const NewName: STRPTR): LongInt; syscall AOS_DOSBase 120;
+function RemAssignList(const Name: STRPTR; Lock: BPTR): LongInt; syscall AOS_DOSBase 106;
+function RemDosEntry(DList: PDosList): LongInt; syscall AOS_DOSBase 112;
+function RemSegment(Seg: PSegment): LongInt; syscall AOS_DOSBase 131;
+procedure ReplyPkt(Dp: PDosPacket; Res1: LongInt; Res2: LongInt); syscall AOS_DOSBase 43;
+function RunCommand(SegList: BPTR; StackSize: LongWord; const ArgPtr: STRPTR; ArgSize: LongWord): LongInt; syscall AOS_DOSBase 84;
+function RunHandler(DevNode: PDeviceNode; Path: PChar): PMsgPort; syscall AOS_DOSBase 27;
+function SameDevice(Lock1: BPTR; Lock2: BPTR): LongBool; syscall AOS_DOSBase 164;
+function SameLock(Lock1: BPTR; Lock2: BPTR): LongInt; syscall AOS_DOSBase 70;
+function ScanVars(Hook: PHook; Flags: LongWord; UserData: APTR): LongInt; syscall AOS_DOSBase 167;
+function SelectError(Fh: BPTR): BPTR; syscall AOS_DOSBase 144;
+function SelectInput(Fh: BPTR): BPTR; syscall AOS_DOSBase 49;
+function SelectOutput(Fh: BPTR): BPTR; syscall AOS_DOSBase 50;
+procedure SendPkt(Dp: PDosPacket; Port: PMsgPort; ReplyPort: PMsgPort); syscall AOS_DOSBase 41;
+function SetArgStr(const String_: STRPTR): STRPTR; syscall AOS_DOSBase 90;
+function SetComment(const Name: STRPTR; const Comment: STRPTR): LongInt; syscall AOS_DOSBase 30;
+function SetConsoleTask(const Handler: PMsgPort): PMsgPort; syscall AOS_DOSBase 86;
+function SetCurrentDirName(const Name: STRPTR): LongBool; syscall AOS_DOSBase 93;
+function SetFileDate(const Name: STRPTR; Date: PDateStamp): LongBool; syscall AOS_DOSBase 66;
+function SetFileSize(File_: BPTR; Offset: LongInt; Mode: LongInt): LongInt; syscall AOS_DOSBase 76;
+function SetFileSysTask(const Task: PMsgPort): PMsgPort; syscall AOS_DOSBase 88;
+function SetIoErr(Result_: LongInt): LongInt; syscall AOS_DOSBase 77;
+function SetMode(Fh: BPTR; Mode: LongInt): LongBool; syscall AOS_DOSBase 72;
+function SetOwner(const Name: STRPTR; Owner_Info: LongWord): LongBool; syscall AOS_DOSBase 166;
+function SetProgramDir(Lock: BPTR): BPTR; syscall AOS_DOSBase 99;
+function SetProgramName(const Name: STRPTR): LongBool; syscall AOS_DOSBase 95;
+function SetPrompt(const Name: STRPTR): LongBool; syscall AOS_DOSBase 97;
+function SetProtection(const Name: STRPTR; Protect: LongWord): LongInt; syscall AOS_DOSBase 31;
+function SetVar(const Name: STRPTR; Buffer: PChar; Size: LongInt; Flags: LongInt): LongBool; syscall AOS_DOSBase 150;
+function SetVBuf(File_: BPTR; Buff: STRPTR; Type_: LongInt; Size: LongInt): LongInt; syscall AOS_DOSBase 61;
+function SplitName(const Name: STRPTR; Seperator: LongWord; Buf: STRPTR; OldPos: LongInt; Size: LongInt): LongInt; syscall AOS_DOSBase 69;
+function StartNotify(Notify: PNotifyRequest): LongBool; syscall AOS_DOSBase 148;
+function StrToDate(DateTime: PDateTime): LongBool; syscall AOS_DOSBase 125;
+function StrToLong(const String_: STRPTR; var Value: LongInt): LongInt; syscall AOS_DOSBase 136;
+function SystemTagList(const Command: STRPTR; const Tags: PTagItem): LongInt; syscall AOS_DOSBase 101;
+ //function DOSSystem(const command : PChar;const Tags : PTagItem) : LongInt; //* Real: SystemTagList ???
+function UnGetC(File_: BPTR; Character: LongInt): LongInt; syscall AOS_DOSBase 53;
+procedure UnLoadSeg(Seglist: BPTR); syscall AOS_DOSBase 26;
+function UnLock(Lock: BPTR): LongBool; syscall AOS_DOSBase 15;
+procedure UnLockDosList(Flags: LongWord); syscall AOS_DOSBase 110;
+function UnLockRecord(Fh: BPTR; Offset: LongWord; Length: LongWord): LongBool; syscall AOS_DOSBase 47;
+function UnLockRecords(RecArray: PRecordLock): LongBool; syscall AOS_DOSBase 48;
+function VFPrintf(Fh: BPTR; const format: STRPTR; const ArgArray: PLongInt): LongInt; syscall AOS_DOSBase 59;
+function VFWritef(Fh: BPTR; const Fmt: STRPTR; const ArgArray: PLongInt): LongInt; syscall AOS_DOSBase 58;
+function VPrintf(const Format: STRPTR; var ArgArray: IPTR): LongInt; syscall AOS_DOSBase 159;
+function WaitForChar(File_: BPTR; TimeOut: LongInt): LongInt; syscall AOS_DOSBase 34;
+function WaitPkt: PDosPacket; syscall AOS_DOSBase 42;
+function WriteChars(const Buf: STRPTR; BufLen: LongWord): LongInt; syscall AOS_DOSBase 157;
+
+function ReadChar(): LongInt;
+function WriteChar(c: LongInt): LongInt;
+function UnReadChar(c: LongInt): LongInt;
+
+// Special functions for var args
+function AllocDosObjectTags(const Type_: LongWord; const Tags: array of const): APTR;
+function CreateNewProcTags(const Tags: array of const): PProcess;
+function NewLoadSegTags(const File_: STRPTR; const Tags: array of const): BPTR;
+function SystemTags(const Command: STRPTR; const Tags: array of const): LongInt;
+
+const
+ BNULL = nil;
+
+function MKBADDR(a: APTR): BPTR;
+function BADDR(a: BPTR): APTR;
+
+implementation
+
+uses
+ tagsarray;
+
+
+function AllocDosObjectTags(const Type_: LongWord; const Tags: array of const): APTR;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ AllocDosObjectTags := AllocDosObject(Type_, GetTagPtr(TagList));
+end;
+
+function CreateNewProcTags(const Tags: array of const): PProcess;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ CreateNewProcTags := CreateNewProc(GetTagPtr(TagList));
+end;
+
+function NewLoadSegTags(const File_: STRPTR; const Tags: array of const): BPTR;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ NewLoadSegTags := NewLoadSeg(File_, GetTagPtr(TagList));
+end;
+
+function SystemTags(const Command: STRPTR; const Tags: array of const): LongInt;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ SystemTags := SystemTagList(Command, GetTagPtr(TagList));
+end;
+
+function MKBADDR(a: APTR): BPTR; inline;
+begin
+ {$ifdef AROS_FAST_BPTR}
+ MKBADDR := a;
+ {$else}
+ MKBADDR := APTR((IPTR(a)) shr 2);
+ {$endif}
+end;
+
+function BADDR(a: BPTR): APTR; inline;
+begin
+ {$ifdef AROS_FAST_BPTR}
+ BADDR := a;
+ {$else}
+ BADDR := BPTR((IPTR(a)) shl 2);
+ {$endif}
+end;
+
+function ReadChar(): LongInt;
+begin
+ ReadChar := FGetC(DosInput());
+end;
+
+function WriteChar(c: LongInt): LongInt;
+begin
+ WriteChar := FPutC(DosOutput(), c);
+end;
+
+function UnReadChar(c: LongInt): LongInt;
+begin
+ UnReadChar := UnGetC(DosInput(),c);
+end;
+
+end. (* UNIT DOS *)
+
+
diff --git a/packages/arosunits/src/asl.pas b/packages/arosunits/src/asl.pas
new file mode 100644
index 0000000000..61b8587b8e
--- /dev/null
+++ b/packages/arosunits/src/asl.pas
@@ -0,0 +1,555 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ asl.library 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.
+
+ **********************************************************************}
+
+unit asl;
+
+{$mode objfpc}
+
+interface
+
+uses
+ exec, utility, workbench, agraphics, tagsarray;
+
+{************************************************************************}
+
+CONST
+ ASLNAME: PChar = 'asl.library';
+ ASL_TB = TAG_USER+$80000;
+
+{************************************************************************}
+
+{ Types of requesters known to ASL, used as arguments to AllocAslRequest() }
+ ASL_FileRequest = 0;
+ ASL_FontRequest = 1;
+ ASL_ScreenModeRequest = 2;
+
+
+{****************************************************************************
+ *
+ * ASL File Requester data structures and constants
+ *
+ * This structure must only be allocated by asl.library amd is READ-ONLY!
+ * Control of the various fields is provided via tags when the requester
+ * is created with AllocAslRequest() and when it is displayed via
+ * AslRequest()
+ }
+
+type
+ PFileRequester = ^TFileRequester;
+ TFileRequester = record
+ rf_Reserved0 : array[0..3] of Byte;
+ rf_File : STRPTR; { Filename pointer }
+ rf_Dir : STRPTR; { Directory name pointer }
+ rf_Reserved1 : array[0..9] of Byte;
+ rf_LeftEdge : SmallInt;
+ rf_TopEdge : SmallInt; { Preferred window pos }
+ rf_Width : SmallInt;
+ rf_Height : SmallInt; { Preferred window size }
+ rf_Reserved2 : array[0..1] of Byte;
+ rf_NumArgs : LongInt; { A-la WB Args, FOR multiselects }
+ rf_ArgList : PWBArgList;
+ rf_UserData : Pointer; { Applihandle (you may write!!) }
+ rf_Reserved3 : array[0..7] of Byte;
+ rf_Pat : STRPTR; { Pattern match pointer }
+ END; { note - more reserved fields follow }
+
+
+{ File requester tag values, used by AllocAslRequest() and AslRequest() }
+
+const
+{ Window control }
+ ASLFR_Window = ASL_TB+2 ; { Parent window }
+ ASLFR_Screen = ASL_TB+40; { Screen to open on if no window }
+ ASLFR_PubScreenName = ASL_TB+41; { Name of public screen }
+ ASLFR_PrivateIDCMP = ASL_TB+42; { Allocate private IDCMP? }
+ ASLFR_IntuiMsgFunc = ASL_TB+70; { function to handle IntuiMessages }
+ ASLFR_SleepWindow = ASL_TB+43; { Block input in ASLFR_Window? }
+ ASLFR_UserData = ASL_TB+52; { What to put in fr_UserData }
+ ASLFR_PopToFront = ASL_TB+131; { Make the requester window visible }
+ ASLFR_Activate = ASL_TB+132; { Activate the requester window when }
+
+{ Text display }
+ ASLFR_TextAttr = ASL_TB+51; { Text font to use for gadget text }
+ ASLFR_Locale = ASL_TB+50; { Locale ASL should use for text }
+ ASLFR_TitleText = ASL_TB+1 ; { Title of requester }
+ ASLFR_PositiveText = ASL_TB+18; { Positive gadget text }
+ ASLFR_NegativeText = ASL_TB+19; { Negative gadget text }
+
+{ Initial settings }
+ ASLFR_InitialLeftEdge= ASL_TB+3 ; { Initial requester coordinates }
+ ASLFR_InitialTopEdge = ASL_TB+4 ;
+ ASLFR_InitialWidth = ASL_TB+5 ; { Initial requester dimensions }
+ ASLFR_InitialHeight = ASL_TB+6 ;
+ ASLFR_InitialFile = ASL_TB+8 ; { Initial contents of File gadget }
+ ASLFR_InitialDrawer = ASL_TB+9 ; { Initial contents of Drawer gadg. }
+ ASLFR_InitialPattern = ASL_TB+10; { Initial contents of Pattern gadg.}
+ ASLFR_InitialShowVolumes = ASL_TB+130; { Initially, show the volume list (V44) }
+
+{ Options }
+ ASLFR_Flags1 = ASL_TB+20; { Option flags }
+ ASLFR_Flags2 = ASL_TB+22; { Additional option flags }
+ ASLFR_DoSaveMode = ASL_TB+44; { Being used for saving? }
+ ASLFR_DoMultiSelect = ASL_TB+45; { Do multi-select? }
+ ASLFR_DoPatterns = ASL_TB+46; { Display a Pattern gadget? }
+
+{ Filtering }
+ ASLFR_DrawersOnly = ASL_TB+47; { Don't display files? }
+ ASLFR_FilterFunc = ASL_TB+49; { function to filter files }
+ ASLFR_RejectIcons = ASL_TB+60; { Display .info files? }
+ ASLFR_RejectPattern = ASL_TB+61; { Don't display files matching pat }
+ ASLFR_AcceptPattern = ASL_TB+62; { Accept only files matching pat }
+ ASLFR_FilterDrawers = ASL_TB+63; { Also filter drawers with patterns}
+ ASLFR_HookFunc = ASL_TB+7 ; { Combined callback function }
+
+{ Sorting }
+ ASLFR_SetSortBy = ASL_TB+124; { Sort criteria (name, date, size) }
+ ASLFR_GetSortBy = ASL_TB+125;
+ ASLFR_SetSortDrawers = ASL_TB+126; { Placement of drawers in the list }
+ ASLFR_GetSortDrawers = ASL_TB+127;
+ ASLFR_SetSortOrder = ASL_TB+128; { Order (ascending or descending) }
+ ASLFR_GetSortOrder = ASL_TB+129;
+
+
+{ Flag bits for the ASLFR_Flags1 tag }
+ FRB_FILTERFUNC = 7;
+ FRB_INTUIFUNC = 6;
+ FRB_DOSAVEMODE = 5;
+ FRB_PRIVATEIDCMP = 4;
+ FRB_DOMULTISELECT = 3;
+ FRB_DOPATTERNS = 0;
+
+ FRF_FILTERFUNC = 128;
+ FRF_INTUIFUNC = 64;
+ FRF_DOSAVEMODE = 32;
+ FRF_PRIVATEIDCMP = 16;
+ FRF_DOMULTISELECT = 8;
+ FRF_DOPATTERNS = 1;
+
+{ Flag bits for the ASLFR_Flags2 tag }
+ FRB_DRAWERSONLY = 0;
+ FRB_FILTERDRAWERS = 1;
+ FRB_REJECTICONS = 2;
+
+ FRF_DRAWERSONLY = 1;
+ FRF_FILTERDRAWERS = 2;
+ FRF_REJECTICONS = 4;
+
+{ Sort criteria for the ASLFR_SetSortBy/ASLFR_GetSortBy tags }
+ ASLFRSORTBY_Name = 0;
+ ASLFRSORTBY_Date = 1;
+ ASLFRSORTBY_Size = 2;
+
+{ Drawer placement for the ASLFR_SetSortDrawers/ASLFR_GetSortDrawers tags }
+ ASLFRSORTDRAWERS_First = 0;
+ ASLFRSORTDRAWERS_Mix = 1;
+ ASLFRSORTDRAWERS_Last = 2;
+
+{ Sort order for the ASLFR_SetSortOrder/ASLFR_GetSortOrder tags }
+ ASLFRSORTORDER_Ascend = 0;
+ ASLFRSORTORDER_Descend = 1;
+
+{****************************************************************************
+ *
+ * ASL Font Requester data structures and constants
+ *
+ * This structure must only be allocated by asl.library amd is READ-ONLY!
+ * Control of the various fields is provided via tags when the requester
+ * is created with AllocAslRequest() and when it is displayed via
+ * AslRequest()
+ }
+
+Type
+ PFontRequester = ^TFontRequester;
+ TFontRequester = record
+ fo_Reserved0 : array[0..7] of Byte;
+ fo_Attr : TTextAttr; { Returned TextAttr }
+ fo_FrontPen : Byte; { Returned front pen }
+ fo_BackPen : Byte; { Returned back pen }
+ fo_DrawMode : Byte; { Returned drawing mode }
+ fo_Reserved1 : Byte;
+ fo_UserData : Pointer; { You can store your own data here }
+ fo_LeftEdge : smallint; { Coordinates Of requester on Exit }
+ fo_TopEdge : smallint;
+ fo_Width : smallint;
+ fo_Height : smallint;
+ fo_TAttr : tTTextAttr; { Returned TTextAttr }
+ end;
+
+
+{ Font requester tag values, used by AllocAslRequest() AND AslRequest() }
+
+const
+{ Window control }
+ ASLFO_Window = ASL_TB+2 ; { Parent window }
+ ASLFO_Screen = ASL_TB+40; { Screen to open on if no window }
+ ASLFO_PubScreenName = ASL_TB+41; { Name of public screen }
+ ASLFO_PrivateIDCMP = ASL_TB+42; { Allocate private IDCMP? }
+ ASLFO_IntuiMsgFunc = ASL_TB+70; { function to handle IntuiMessages }
+ ASLFO_SleepWindow = ASL_TB+43; { Block input in ASLFO_Window? }
+ ASLFO_UserData = ASL_TB+52; { What to put in fo_UserData }
+ ASLFO_PopToFront = ASL_TB+131; { Make the requester window visible
+ * when it opens (V44)
+ }
+ ASLFO_Activate = ASL_TB+132; { Activate the requester window when
+ * it opens (V45).
+ }
+{ Text display }
+ ASLFO_TextAttr = ASL_TB+51; { Text font to use for gadget text }
+ ASLFO_Locale = ASL_TB+50; { Locale ASL should use for text }
+ ASLFO_TitleText = ASL_TB+1 ; { Title of requester }
+ ASLFO_PositiveText = ASL_TB+18; { Positive gadget text }
+ ASLFO_NegativeText = ASL_TB+19; { Negative gadget text }
+
+{ Initial settings }
+ ASLFO_InitialLeftEdge= ASL_TB+3 ; { Initial requester coordinates }
+ ASLFO_InitialTopEdge = ASL_TB+4 ;
+ ASLFO_InitialWidth = ASL_TB+5 ; { Initial requester dimensions }
+ ASLFO_InitialHeight = ASL_TB+6 ;
+ ASLFO_InitialName = ASL_TB+10; { Initial contents of Name gadget }
+ ASLFO_InitialSize = ASL_TB+11; { Initial contents of Size gadget }
+ ASLFO_InitialStyle = ASL_TB+12; { Initial font style }
+ ASLFO_InitialFlags = ASL_TB+13; { Initial font flags for TextAttr }
+ ASLFO_InitialFrontPen= ASL_TB+14; { Initial front pen }
+ ASLFO_InitialBackPen = ASL_TB+15; { Initial back pen }
+ ASLFO_InitialDrawMode= ASL_TB+59; { Initial draw mode }
+
+{ Options }
+ ASLFO_Flags = ASL_TB+20; { Option flags }
+ ASLFO_DoFrontPen = ASL_TB+44; { Display Front color selector? }
+ ASLFO_DoBackPen = ASL_TB+45; { Display Back color selector? }
+ ASLFO_DoStyle = ASL_TB+46; { Display Style checkboxes? }
+ ASLFO_DoDrawMode = ASL_TB+47; { Display DrawMode cycle gadget? }
+ ASLFO_SampleText = ASL_TB+133; { Text to display in font sample area (V45) }
+
+{ Filtering }
+ ASLFO_FixedWidthOnly = ASL_TB+48; { Only allow fixed-width fonts? }
+ ASLFO_MinHeight = ASL_TB+16; { Minimum font height to display }
+ ASLFO_MaxHeight = ASL_TB+17; { Maximum font height to display }
+ ASLFO_FilterFunc = ASL_TB+49; { function to filter fonts }
+ ASLFO_HookFunc = ASL_TB+7 ; { Combined callback function }
+ ASLFO_MaxFrontPen = ASL_TB+66; { Max # of colors in front palette }
+ ASLFO_MaxBackPen = ASL_TB+67; { Max # of colors in back palette }
+
+{ Custom additions }
+ ASLFO_ModeList = ASL_TB+21; { Substitute list for drawmodes }
+ ASLFO_FrontPens = ASL_TB+64; { Color table for front pen palette}
+ ASLFO_BackPens = ASL_TB+65; { Color table for back pen palette }
+
+{ Flag bits for ASLFO_Flags tag }
+ FOB_DOFRONTPEN = 0;
+ FOB_DOBACKPEN = 1;
+ FOB_DOSTYLE = 2;
+ FOB_DODRAWMODE = 3;
+ FOB_FIXEDWIDTHONLY= 4;
+ FOB_PRIVATEIDCMP = 5;
+ FOB_INTUIFUNC = 6;
+ FOB_FILTERFUNC = 7;
+
+ FOF_DOFRONTPEN = 1;
+ FOF_DOBACKPEN = 2;
+ FOF_DOSTYLE = 4;
+ FOF_DODRAWMODE = 8;
+ FOF_FIXEDWIDTHONLY = 16;
+ FOF_PRIVATEIDCMP = 32;
+ FOF_INTUIFUNC = 64;
+ FOF_FILTERFUNC = 128;
+
+{****************************************************************************
+ *
+ * ASL Screen Mode Requester data structures and constants
+ *
+ * This structure must only be allocated by asl.library and is READ-ONLY!
+ * Control of the various fields is provided via tags when the requester
+ * is created with AllocAslRequest() and when it is displayed via
+ * AslRequest()
+ }
+
+type
+ PScreenModeRequester = ^TScreenModeRequester;
+ TScreenModeRequester = record
+ sm_DisplayID : LongWord; { Display mode ID }
+ sm_DisplayWidth : LongWord; { Width Of display IN pixels }
+ sm_DisplayHeight : LongWord; { Height Of display IN pixels }
+ sm_DisplayDepth : Word; { Number OF bit-planes OF display }
+ sm_OverscanType : Word; { TYPE OF overscan OF display }
+ sm_AutoScroll : Boolean; { Display should auto-scroll? }
+
+ sm_BitMapWidth : LongWord; { Used TO create your own BitMap }
+ sm_BitMapHeight : LongWord;
+
+ sm_LeftEdge : smallint; { Coordinates OF requester on Exit }
+ sm_TopEdge : smallint;
+ sm_Width : smallint;
+ sm_Height : smallint;
+
+ sm_InfoOpened : Boolean; { Info window opened on exit? }
+ sm_InfoLeftEdge : smallint; { Last coordinates OF Info window }
+ sm_InfoTopEdge : smallint;
+ sm_InfoWidth : smallint;
+ sm_InfoHeight : smallint;
+
+ sm_UserData : Pointer; { You can store your own data here }
+ end;
+
+
+{ An Exec list of custom modes can be added to the list of available modes.
+ * The DimensionInfo structure must be completely initialized, including the
+ * Header. See <graphics/displayinfo.h>. Custom mode ID's must be in the range
+ * $FFFF0000..$FFFFFFFF. Regular properties which apply to your custom modes
+ * can be added in the dn_PropertyFlags field. Custom properties are not
+ * allowed.
+ }
+ PDisplayMode = ^TDisplayMode;
+ TDisplayMode = record
+ dm_Node : TNode; { see ln_Name }
+ dm_DimensionInfo : tDimensionInfo; { mode description }
+ dm_PropertyFlags : LongWord; { applicable properties }
+ end;
+
+
+{ ScreenMode requester tag values, used by AllocAslRequest() and AslRequest() }
+const
+{ Window control }
+ ASLSM_Window = ASL_TB+2 ; { Parent window }
+ ASLSM_Screen = ASL_TB+40; { Screen to open on if no window }
+ ASLSM_PubScreenName = ASL_TB+41; { Name of public screen }
+ ASLSM_PrivateIDCMP = ASL_TB+42; { Allocate private IDCMP? }
+ ASLSM_IntuiMsgFunc = ASL_TB+70; { function to handle IntuiMessages }
+ ASLSM_SleepWindow = ASL_TB+43; { Block input in ASLSM_Window? }
+ ASLSM_UserData = ASL_TB+52; { What to put in sm_UserData }
+ ASLSM_PopToFront = ASL_TB+131; { Make the requester window visible
+ * when it opens (V44)
+ }
+ ASLSM_Activate = ASL_TB+132; { Activate the requester window when
+ * it opens (V45).
+ }
+
+{ Text display }
+ ASLSM_TextAttr = ASL_TB+51; { Text font to use for gadget text }
+ ASLSM_Locale = ASL_TB+50; { Locale ASL should use for text }
+ ASLSM_TitleText = ASL_TB+1 ; { Title of requester }
+ ASLSM_PositiveText = ASL_TB+18; { Positive gadget text }
+ ASLSM_NegativeText = ASL_TB+19; { Negative gadget text }
+
+{ Initial settings }
+ ASLSM_InitialLeftEdge = ASL_TB+3 ; { Initial requester coordinates }
+ ASLSM_InitialTopEdge = ASL_TB+4 ;
+ ASLSM_InitialWidth = ASL_TB+5 ; { Initial requester dimensions }
+ ASLSM_InitialHeight = ASL_TB+6 ;
+ ASLSM_InitialDisplayID = ASL_TB+100; { Initial display mode id }
+ ASLSM_InitialDisplayWidth = ASL_TB+101; { Initial display width }
+ ASLSM_InitialDisplayHeight = ASL_TB+102; { Initial display height }
+ ASLSM_InitialDisplayDepth = ASL_TB+103; { Initial display depth }
+ ASLSM_InitialOverscanType = ASL_TB+104; { Initial type of overscan }
+ ASLSM_InitialAutoScroll = ASL_TB+105; { Initial autoscroll setting }
+ ASLSM_InitialInfoOpened = ASL_TB+106; { Info wndw initially opened? }
+ ASLSM_InitialInfoLeftEdge = ASL_TB+107; { Initial Info window coords. }
+ ASLSM_InitialInfoTopEdge = ASL_TB+108;
+
+{ Options }
+ ASLSM_DoWidth = ASL_TB+109; { Display Width gadget? }
+ ASLSM_DoHeight = ASL_TB+110; { Display Height gadget? }
+ ASLSM_DoDepth = ASL_TB+111; { Display Depth gadget? }
+ ASLSM_DoOverscanType = ASL_TB+112; { Display Overscan Type gadget? }
+ ASLSM_DoAutoScroll = ASL_TB+113; { Display AutoScroll gadget? }
+
+{ Filtering }
+ ASLSM_PropertyFlags = ASL_TB+114; { Must have these Property flags }
+ ASLSM_PropertyMask = ASL_TB+115; { Only these should be looked at }
+ ASLSM_MinWidth = ASL_TB+116; { Minimum display width to allow }
+ ASLSM_MaxWidth = ASL_TB+117; { Maximum display width to allow }
+ ASLSM_MinHeight = ASL_TB+118; { Minimum display height to allow }
+ ASLSM_MaxHeight = ASL_TB+119; { Maximum display height to allow }
+ ASLSM_MinDepth = ASL_TB+120; { Minimum display depth }
+ ASLSM_MaxDepth = ASL_TB+121; { Maximum display depth }
+ ASLSM_FilterFunc = ASL_TB+122; { function to filter mode id's }
+
+{ Custom additions }
+ ASLSM_CustomSMList = ASL_TB+123; { Exec list of struct DisplayMode }
+
+{***************************************************************************}
+
+ ASL_LAST_TAG = ASL_TB+133;
+
+{***************************************************************************}
+
+{ This defines the rendezvous data for setting and querying asl.library's
+ * defaults for the window size and the file requester sort order. The name
+ * of the semaphore is given below; it exists only with asl.library V45 and
+ * IPrefs V45 and beyond.
+ }
+ ASL_SEMAPHORE_NAME : Pchar = 'asl.library';
+
+type
+ PAslSemaphore = ^TAslSemaphore;
+ TAslSemaphore = record
+ as_Semaphore : TSignalSemaphore;
+ as_Version : Word; { Must be >= 45 }
+ as_Size : LongWord; { Size of this data structure. }
+ as_SortBy : Byte; { File requester defaults; name, date or size }
+ as_SortDrawers : Byte; { File requester defaults; first, mix or last }
+ as_SortOrder : Byte; { File requester defaults; ascending or descending }
+ as_SizePosition : Byte; { See below }
+ as_RelativeLeft : Smallint;{ Window position offset }
+ as_RelativeTop : Smallint;
+ as_RelativeWidth : Byte; { Window size factor; this is
+ * a percentage of the parent
+ * window/screen width.
+ }
+ as_RelativeHeight : Byte;
+ end;
+
+const
+{ Default position of the ASL window. }
+ ASLPOS_DefaultPosition = 0; { Position is calculated according to the builtin rules. }
+ ASLPOS_CenterWindow = 1; { Centred within the bounds of the parent window. }
+ ASLPOS_CenterScreen = 2; { Centred within the bounds of the parent screen. }
+ ASLPOS_WindowPosition = 3; { Relative to the top left corner of the parent window,
+ * using the offset values provided in the
+ * as_RelativeLeft/as_RelativeTop members.
+ }
+ ASLPOS_ScreenPosition = 4; { Relative to the top left corner of the parent screen,
+ * using the offset values provided in the
+ * as_RelativeLeft/as_RelativeTop members.
+ }
+ ASLPOS_CenterMouse = 5; { Directly below the mouse pointer. }
+ ASLPOS_MASK = $0F;
+
+{ Default size of the ASL window. }
+ ASLSIZE_DefaultSize = (0 shl 4); { Size is calculated according to the builtin rules. }
+ ASLSIZE_RelativeSize = (1 shl 4); { Size is relative to the size of the parent
+ * window or screen, using the values provided in
+ * the as_RelativeWidth/as_RelativeHeight members.
+ * The as_RelativeWidth/as_RelativeHeight values are
+ * taken as percentage, i.e. a value of "50" stands for
+ * 50% of the width/height of the parent window/screen.
+ }
+ ASLSIZE_MASK = $30;
+
+{ Other options. }
+ ASLOPTION_ASLOverrides = (1 shl 6); { ASL determines placement and size of requester
+ * windows; application's choice is ignored.
+ }
+
+
+{****************************************************************************
+ *
+ * Obsolete ASL definitions, here for source code compatibility only.
+ * Please do NOT use in new code.
+ *
+ * define ASL_V38_NAMES_ONLY to remove these older names
+ }
+{$define ASL_V38_NAMES_ONLY}
+{$ifndef ASL_V38_NAMES_ONLY}
+Const
+ ASL_Dummy = (TAG_USER + $80000);
+ ASL_Hail = ASL_Dummy+1 ;
+ ASL_Window = ASL_Dummy+2 ;
+ ASL_LeftEdge = ASL_Dummy+3 ;
+ ASL_TopEdge = ASL_Dummy+4 ;
+ ASL_Width = ASL_Dummy+5 ;
+ ASL_Height = ASL_Dummy+6 ;
+ ASL_HookFunc = ASL_Dummy+7 ;
+ ASL_File = ASL_Dummy+8 ;
+ ASL_Dir = ASL_Dummy+9 ;
+ ASL_FontName = ASL_Dummy+10;
+ ASL_FontHeight = ASL_Dummy+11;
+ ASL_FontStyles = ASL_Dummy+12;
+ ASL_FontFlags = ASL_Dummy+13;
+ ASL_FrontPen = ASL_Dummy+14;
+ ASL_BackPen = ASL_Dummy+15;
+ ASL_MinHeight = ASL_Dummy+16;
+ ASL_MaxHeight = ASL_Dummy+17;
+ ASL_OKText = ASL_Dummy+18;
+ ASL_CancelText = ASL_Dummy+19;
+ ASL_FuncFlags = ASL_Dummy+20;
+ ASL_ModeList = ASL_Dummy+21;
+ ASL_ExtFlags1 = ASL_Dummy+22;
+ ASL_Pattern = ASL_FontName;
+{ remember what I said up there? Do not use these anymore! }
+ FILB_DOWILDFUNC = 7;
+ FILB_DOMSGFUNC = 6;
+ FILB_SAVE = 5;
+ FILB_NEWIDCMP = 4;
+ FILB_MULTISELECT = 3;
+ FILB_PATGAD = 0;
+ FILF_DOWILDFUNC = 128;
+ FILF_DOMSGFUNC = 64;
+ FILF_SAVE = 32;
+ FILF_NEWIDCMP = 16;
+ FILF_MULTISELECT = 8;
+ FILF_PATGAD = 1;
+ FIL1B_NOFILES = 0;
+ FIL1B_MATCHDIRS = 1;
+ FIL1F_NOFILES = 1;
+ FIL1F_MATCHDIRS = 2;
+ FONB_FRONTCOLOR = 0;
+ FONB_BACKCOLOR = 1;
+ FONB_STYLES = 2;
+ FONB_DRAWMODE = 3;
+ FONB_FIXEDWIDTH = 4;
+ FONB_NEWIDCMP = 5;
+ FONB_DOMSGFUNC = 6;
+ FONB_DOWILDFUNC = 7;
+ FONF_FRONTCOLOR = 1;
+ FONF_BACKCOLOR = 2;
+ FONF_STYLES = 4;
+ FONF_DRAWMODE = 8;
+ FONF_FIXEDWIDTH = 16;
+ FONF_NEWIDCMP = 32;
+ FONF_DOMSGFUNC = 64;
+ FONF_DOWILDFUNC = 128;
+{$endif ASL_V38_NAMES_ONLY}
+
+var
+ AslBase: PLibrary;
+
+
+function AllocAslRequestA(ReqType: LongWord; TagList: PTagItem): Pointer; syscall AslBase 8;
+function AllocFileRequest: PFileRequester; syscall AslBase 5;
+function AslRequestA(Requester: Pointer; TagList: PTagItem): LongBool; syscall AslBase 10;
+procedure FreeAslRequest(Requester: Pointer); syscall AslBase 9;
+procedure FreeFileRequest(FileReq: PFileRequester); syscall AslBase 6;
+function RequestFile(FileReq: PFileRequester): LongBool; syscall AslBase 7;
+
+procedure AbortAslRequest(Requester: Pointer); syscall AslBase 13;
+procedure ActivateAslRequest(Requester: Pointer); syscall AslBase 14;
+
+
+function AllocAslRequest(ReqType: LongWord; const Tags: array of const): Pointer;
+function AslRequest(Requester: Pointer; const Tags: array of const): LongBool;
+
+
+implementation
+
+
+function AllocAslRequest(ReqType: LongWord; const Tags: array of const): Pointer;
+begin
+ AllocAslRequest := AllocAslRequestA(reqType , readintags(tags));
+end;
+
+function AslRequest(Requester: Pointer; const Tags: array of const): LongBool;
+begin
+ AslRequest := AslRequestA(Requester , readintags(tags));
+end;
+
+initialization
+ AslBase := OpenLibrary(ASLNAME, 36);
+finalization
+ CloseLibrary(AslBase);
+
+end.
+
+
diff --git a/packages/arosunits/src/clipboard.pas b/packages/arosunits/src/clipboard.pas
new file mode 100644
index 0000000000..00b85ae816
--- /dev/null
+++ b/packages/arosunits/src/clipboard.pas
@@ -0,0 +1,179 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ clipboard 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.
+
+ **********************************************************************}
+
+unit clipboard;
+
+interface
+
+{$mode objfpc}{$H+}
+
+uses exec;
+
+const
+ CBD_POST = CMD_NONSTD + 0;
+ CBD_CURRENTREADID = CMD_NONSTD + 1;
+ CBD_CURRENTWRITEID = CMD_NONSTD + 2;
+ CBD_CHANGEHOOK = CMD_NONSTD + 3;
+
+ CBERR_OBSOLETEID = 1;
+
+type
+
+ PClipboardUnitPartial = ^TClipboardUnitPartial;
+ TClipboardUnitPartial = record
+ cu_Node : TNode; { list of units }
+ cu_UnitNum : LongWord; { unit number for this unit }
+ { the remaining unit data is private to the device }
+ end;
+
+
+ PIOClipReq = ^TIOClipReq;
+ TIOClipReq = record
+ io_Message : TMessage;
+ io_Device : PDevice; { device node pointer }
+ io_Unit : PClipboardUnitPartial; { unit (driver private) }
+ io_Command : Word; { device command }
+ io_Flags : Byte; { including QUICK and SATISFY }
+ io_Error : ShortInt; { error or warning num }
+ io_Actual : LongWord; { number of bytes transferred }
+ io_Length : LongWord; { number of bytes requested }
+ io_Data : STRPTR; { either clip stream or post port }
+ io_Offset : LongWord; { offset in clip stream }
+ io_ClipID : LongInt; { ordinal clip identifier }
+ end;
+
+const
+ PRIMARY_CLIP = 0; { primary clip unit }
+
+type
+
+ PSatisfyMsg = ^TSatisfyMsg;
+ TSatisfyMsg = record
+ sm_Msg : TMessage; { the length will be 6 }
+ sm_Unit : Word; { which clip unit this is }
+ sm_ClipID : LongInt; { the clip identifier of the post }
+ end;
+
+ PClipHookMsg = ^TClipHookMsg;
+ TClipHookMsg = record
+ chm_Type : LongWord; { zero for this structure format }
+ chm_ChangeCmd, { command that caused this hook invocation: }
+ { either CMD_UPDATE OR CBD_POST }
+ chm_ClipID : LongInt; { the clip identifier of the new data }
+ END;
+
+function GetTextFromClip(ClipUnit: Byte): string;
+function PutTextToClip(ClipUnit: Byte; Text: string): Boolean;
+
+implementation
+
+
+uses
+ iffparse;
+
+const
+ ID_FTXT = 1179932756;
+ ID_CHRS = 1128813139;
+
+function GetTextFromClip(ClipUnit: Byte): string;
+var
+ Iff: PIffHandle;
+ Error: LongInt;
+ Cn: PContextNode;
+ Buf: PChar;
+ Len: Integer;
+ Cu: LongInt;
+begin
+ Result := '';
+ Cu := ClipUnit;
+ Iff := AllocIff;
+ if Assigned(Iff) then
+ begin
+ Iff^.iff_Stream := LongWord(OpenClipboard(Cu));
+ if Iff^.iff_Stream<>0 then
+ begin
+ InitIffAsClip(iff);
+ if OpenIff(Iff, IFFF_READ) = 0 then
+ begin
+ if StopChunk(iff, ID_FTXT, ID_CHRS) = 0 then
+ begin
+ while True do
+ begin
+ Error := ParseIff(iff, IFFPARSE_SCAN);
+ if (Error <> 0) and (Error <> IFFERR_EOC) then
+ Break;
+ Cn := CurrentChunk(Iff);
+ if not Assigned(Cn) then
+ begin
+ Continue;
+ end;
+ Len := Cn^.cn_Size;
+ if (Cn^.cn_Type = ID_FTXT) and (Cn^.cn_ID = ID_CHRS) and (Len > 0) then
+ begin
+ GetMem(Buf, Len + 1);
+ FillChar(Buf^, Len + 1, #0);
+ try
+ ReadChunkBytes(Iff, Buf, Len);
+ Result := Result + string(Buf);
+ finally
+ FreeMem(Buf);
+ end;
+ end;
+ end;
+ end;
+ CloseIff(Iff);
+ end;
+ CloseClipboard(PClipBoardHandle(iff^.iff_Stream));
+ end;
+ FreeIFF(Iff);
+ end;
+end;
+
+function PutTextToClip(ClipUnit: Byte; Text: string): Boolean;
+var
+ Iff: PIffHandle;
+ TText: string;
+ Len: Integer;
+begin
+ Result := False;
+ Iff := AllocIff;
+ if Assigned(Iff) then
+ begin
+ Iff^.iff_Stream := LongWord(OpenClipboard(ClipUnit));
+ if Iff^.iff_Stream <> 0 then
+ begin
+ InitIffAsClip(iff);
+ if OpenIff(Iff, IFFF_WRITE) = 0 then
+ begin
+ if PushChunk(iff, ID_FTXT, ID_FORM, IFFSIZE_UNKNOWN) = 0 then
+ begin
+ if PushChunk(iff, 0, ID_CHRS, IFFSIZE_UNKNOWN) = 0 then
+ begin
+ Len := Length(Text);
+ TText := Text + #0;
+ Result := WriteChunkBytes(iff, @(TText[1]), Len) = len;
+ PopChunk(iff);
+ end;
+ PopChunk(iff);
+ end;
+ CloseIff(iff);
+ end;
+ CloseClipboard(PClipBoardHandle(iff^.iff_Stream));
+ end;
+ FreeIFF(Iff);
+ end;
+end;
+
+end.
diff --git a/packages/arosunits/src/cybergraphics.pas b/packages/arosunits/src/cybergraphics.pas
new file mode 100644
index 0000000000..d4cd6be35b
--- /dev/null
+++ b/packages/arosunits/src/cybergraphics.pas
@@ -0,0 +1,320 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ dos.library 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.
+
+ **********************************************************************}
+
+unit cybergraphics;
+{$mode objfpc}
+interface
+
+uses
+ Exec, agraphics, utility;
+
+const
+ CYBERGFXNAME = 'cybergraphics.library';
+ CYBERGFX_INCLUDE_VERSION = 41;
+
+
+ // ProcessPixelArray Operations (v50)
+
+ POP_BRIGHTEN = 0;
+ POP_DARKEN = 1;
+ POP_SETALPHA = 2;
+ POP_TINT = 3;
+ POP_BLUR = 4;
+ POP_COLOR2GREY = 5;
+ POP_NEGATIVE = 6;
+ POP_NEGFADE = 7;
+ POP_TINTFADE = 8;
+ POP_GRADIENT = 9;
+ POP_SHIFTRGB =10;
+
+ GRADTYPE_HORIZONTAL = 0;
+ GRADTYPE_VERTICAL = 1;
+ GRADTYPE_RECTANGLE = 2;
+ GRADTYPE_LINEAR_ANGLE = 3;
+ GRADTYPE_RADIAL = 4;
+
+ RGBSHIFT_BGR: LongWord = 1;
+ RGBSHIFT_BRG: LongWord = 2;
+ RGBSHIFT_GBR: LongWord = 3;
+ RGBSHIFT_GRB: LongWord = 4;
+ RGBSHIFT_RBG: LongWord = 5;
+
+ PPAOPTAG_FADEFULLSCALE = $85231020;
+ PPAOPTAG_FADEOFFSET = $85231021;
+
+ PPAOPTAG_GRADIENTTYPE = $85231022;
+ PPAOPTAG_GRADCOLOR1 = $85231023;
+ PPAOPTAG_GRADCOLOR2 = $85231024;
+ PPAOPTAG_GRADFULLSCALE = PPAOPTAG_FADEFULLSCALE;
+ PPAOPTAG_GRADOFFSET = PPAOPTAG_FADEOFFSET;
+ PPAOPTAG_GRADSYMCENTER = $85231026;
+
+ PPAOPTAG_RGBMASK = $85231025;
+
+ // Definition of CyberModeNode (Returned in AllocModeList)
+
+type
+ PCyberModeNode = ^TCyberModeNode;
+ TCyberModeNode = record
+ Node: TNode;
+ ModeText: array[0..DISPLAYNAMELEN - 1] of Char; // name for this mode
+ DisplayID: ULONG; // display id associated with the node
+ Width: UWORD; // visible width
+ Height: UWORD; // visible height
+ Depth: UWORD; // display depth
+ DisplayTagList: PTagItem; // taglist with extended ModeID information
+ end;
+
+
+const
+// Parameters for GetCyberMapAttr()
+ CYBRMATTR_XMOD = $80000001; // function returns BytesPerRow if its called with this parameter
+ CYBRMATTR_BPPIX = $80000002; // BytesPerPixel shall be returned
+ CYBRMATTR_DISPADR = $80000003; // do not use this ! private tag
+ CYBRMATTR_PIXFMT = $80000004; // the pixel format is returned
+ CYBRMATTR_WIDTH = $80000005; // returns width in pixels
+ CYBRMATTR_HEIGHT = $80000006; // returns height in lines
+ CYBRMATTR_DEPTH = $80000007; // returns bits per pixel
+ CYBRMATTR_ISCYBERGFX = $80000008; // returns -1 if supplied bitmap is a cybergfx one
+ CYBRMATTR_ISLINEARMEM = $80000009; // returns -1 if supplied bitmap is linear accessable
+ CYBRMATTR_PIXFMT_ALPHA = $8000000A;
+// Parameters for GetCyberIDAttr()
+ CYBRIDATTR_PIXFMT = $80000001; // the pixel format is returned
+ CYBRIDATTR_WIDTH = $80000002; // returns visible width in pixels
+ CYBRIDATTR_HEIGHT = $80000003; // returns visible height in lines
+ CYBRIDATTR_DEPTH = $80000004; // returns bits per pixel
+ CYBRIDATTR_BPPIX = $80000005; // BytesPerPixel shall be returned
+// Tags for CyberModeRequest()
+ CYBRMREQ_TB = TAG_USER + $40000;
+ // FilterTags
+ CYBRMREQ_MinDepth = CYBRMREQ_TB + 0; // Minimum depth for displayed screenmode
+ CYBRMREQ_MaxDepth = CYBRMREQ_TB + 1; // Maximum depth " " "
+ CYBRMREQ_MinWidth = CYBRMREQ_TB + 2; // Minumum width " " "
+ CYBRMREQ_MaxWidth = CYBRMREQ_TB + 3; // Maximum width " " "
+ CYBRMREQ_MinHeight = CYBRMREQ_TB + 4; // Minumum height " " "
+ CYBRMREQ_MaxHeight = CYBRMREQ_TB + 5; // Minumum height " " "
+ CYBRMREQ_CModelArray = CYBRMREQ_TB + 6;
+ CYBRMREQ_WinTitle = CYBRMREQ_TB + 20;
+ CYBRMREQ_OKText = CYBRMREQ_TB + 21;
+ CYBRMREQ_CancelText = CYBRMREQ_TB + 22;
+ CYBRMREQ_Screen = CYBRMREQ_TB + 30; // Screen you wish the Requester to open on
+// Tags for BestCyberModeID()
+ CYBRBIDTG_TB = TAG_USER + $50000;
+ // FilterTags
+ CYBRBIDTG_Depth = CYBRBIDTG_TB + 0;
+ CYBRBIDTG_NominalWidth = CYBRBIDTG_TB + 1;
+ CYBRBIDTG_NominalHeight = CYBRBIDTG_TB + 2;
+ CYBRBIDTG_MonitorID = CYBRBIDTG_TB + 3;
+ CYBRBIDTG_BoardName = CYBRBIDTG_TB + 5;
+// definition of divers pixel formats
+ PIXFMT_LUT8 = 0;
+ PIXFMT_RGB15 = 1;
+ PIXFMT_BGR15 = 2;
+ PIXFMT_RGB15PC = 3;
+ PIXFMT_BGR15PC = 4;
+ PIXFMT_RGB16 = 5;
+ PIXFMT_BGR16 = 6;
+ PIXFMT_RGB16PC = 7;
+ PIXFMT_BGR16PC = 8;
+ PIXFMT_RGB24 = 9;
+ PIXFMT_BGR24 = 10;
+ PIXFMT_ARGB32 = 11;
+ PIXFMT_BGRA32 = 12;
+ PIXFMT_RGBA32 = 13;
+// SrcRectangle formats defines for xxxPixelArray calls()
+ RECTFMT_RGB = 0;
+ RECTFMT_RGBA = 1;
+ RECTFMT_ARGB = 2;
+ RECTFMT_LUT8 = 3;
+ RECTFMT_GREY8 = 4;
+ RECTFMT_RAW = 5;
+ // AROS extensions
+{$ifdef AROS}
+ PIXFMT_ABGR32 = 100;
+ PIXFMT_0RGB32 = 101;
+ PIXFMT_BGR032 = 102;
+ PIXFMT_RGB032 = 103;
+ PIXFMT_0BGR32 = 104;
+
+ RECTFMT_RGB15 = 100;
+ RECTFMT_BGR15 = 101;
+ RECTFMT_RGB15PC = 102;
+ RECTFMT_BGR15PC = 103;
+ RECTFMT_RGB16 = 104;
+ RECTFMT_BGR16 = 105;
+ RECTFMT_RGB16PC = 106;
+ RECTFMT_BGR16PC = 107;
+ RECTFMT_RGB24 = RECTFMT_RGB;
+ RECTFMT_BGR24 = 109;
+ RECTFMT_ARGB32 = RECTFMT_ARGB;
+ RECTFMT_BGRA32 = 111;
+ RECTFMT_RGBA32 = RECTFMT_RGBA;
+ RECTFMT_ABGR32 = 113;
+ RECTFMT_0RGB32 = 114;
+ RECTFMT_BGR032 = 115;
+ RECTFMT_RGB032 = 116;
+ RECTFMT_0BGR32 = 117;
+{$endif}
+
+// Parameters for CVideoCtrlTagList()
+ SETVC_DPMSLevel = $88002001;
+ DPMS_ON = 0; // Full operation
+ DPMS_STANDBY = 1; // Optional state of minimal power reduction
+ DPMS_SUSPEND = 2; // Significant reduction of power consumption
+ DPMS_OFF = 3; // Lowest level of power consumption
+// Tags for LockBitMapTagList()
+ LBMI_WIDTH = $84001001;
+ LBMI_HEIGHT = $84001002;
+ LBMI_DEPTH = $84001003;
+ LBMI_PIXFMT = $84001004;
+ LBMI_BYTESPERPIX = $84001005;
+ LBMI_BYTESPERROW = $84001006;
+ LBMI_BASEADDRESS = $84001007;
+// Tags for UnLockBitMapTagList()
+ UBMI_UPDATERECTS = $85001001;
+ UBMI_REALLYUNLOCK = $85001002;
+
+type
+// Message passed to the DoCDrawMethodTagList() hook function
+ PCDrawMsg = ^TCDrawMsg;
+ TCDrawMsg = record
+ cdm_MemPtr: APTR;
+ cdm_offx: ULONG;
+ cdm_offy: ULONG;
+ cdm_xsize: ULONG;
+ cdm_ysize: ULONG;
+ cdm_BytesPerRow: UWORD;
+ cdm_BytesPerPix: UWORD;
+ cdm_ColorModel: UWORD;
+ end;
+
+// Colour Table source formats for WriteLUTPixelArray() ULONG [] table
+const
+ CTABFMT_XRGB8 = 0;
+// graphics.library/AllocBitMap() extended flags
+ BMB_SPECIALFMT = 7;
+ BMF_SPECIALFMT = 1 shl BMB_SPECIALFMT;
+
+var
+ CyberGfxBase: PLibrary;
+
+function IsCyberModeID(modeID: LongWord): LongBool; syscall CyberGfxBase 9;
+function BestCModeIDTagList(tags: PTagItem): LongWord; syscall CyberGfxBase 10;
+function AllocCModeListTagList(tags: PTagItem): PList; syscall CyberGfxBase 12;
+procedure FreeCModeList(modeList: PList); syscall CyberGfxBase 13;
+function ScalePixelArray(srcRect: APTR; SrcW: Word; SrcH: Word; SrcMod: Word; RastPort: PRastPort; DestX: Word; DestY: Word; DestW: Word; DestH: Word; SrcFormat: Byte): LongInt; syscall CyberGfxBase 15;
+function GetCyberMapAttr(bitMap: PBitMap; attribute_: LongWord): LongWord; syscall CyberGfxBase 16;
+function GetCyberIDAttr(attribute_: LongWord; DisplayModeID: LongWord): LongWord; syscall CyberGfxBase 17;
+function ReadRGBPixel(rp: PRastPort; x: Word; y: Word): LongWord; syscall CyberGfxBase 18;
+function WriteRGBPixel(rp: PRastPort; x: Word; y: Word; pixel: LongWord): LongInt; syscall CyberGfxBase 19;
+function ReadPixelArray(dst: APTR; destx: Word; desty: Word; dstmod: Word; rp: PRastPort; srcx: Word; srcy: Word; width: Word; height: Word; dstformat: Byte): LongWord; syscall CyberGfxBase 20;
+function WritePixelArray(src: APTR; srcx: Word; srcy: Word; srcmod: Word; rp: PRastPort; destx: Word; desty: Word; width: Word; height: Word; srcformat: Byte): LongWord; syscall CyberGfxBase 21;
+function MovePixelArray(SrcX: Word; SrcY: Word; RastPort: PRastPort; DstX: Word; DstY: Word; SizeX: Word; SizeY: Word): LongWord; syscall CyberGfxBase 22;
+function InvertPixelArray(rp: PRastPort; destx: Word; desty: Word; width: Word; height: Word): LongWord; syscall CyberGfxBase 24;
+function FillPixelArray(rp: PRastPort; destx: Word; desty: Word; width: Word; height: Word; pixel: LongWord): LongWord; syscall CyberGfxBase 25;
+procedure DoCDrawMethodTagList(hook: PHook; rp: PRastPort; tags: PTagItem); syscall CyberGfxBase 26;
+procedure CVideoCtrlTagList(vp: PViewPort; tags: PTagItem); syscall CyberGfxBase 27;
+function LockBitMapTagList(bitmap: APTR; tags: PTagItem): APTR; syscall CyberGfxBase 28;
+procedure UnLockBitMap(Handle: APTR); syscall CyberGfxBase 29;
+procedure UnLockBitMapTagList(Handle: APTR; Tags: PTagItem); syscall CyberGfxBase 30;
+function ExtractColor(RastPort: PRastPort; SingleMap: PBitMap; Colour: LongWord; sX: LongWord; sY: LongWord; Width: LongWord; Height: LongWord): LongWord; syscall CyberGfxBase 31;
+function WriteLUTPixelArray(srcRect: APTR; SrcX: Word; SrcY: Word; SrcMod: Word; rp: PRastPort; CTable: APTR; DestX: Word; DestY: Word; SizeX: Word; SizeY: Word; CTabFormat: Byte): LongInt; syscall CyberGfxBase 33;
+function WritePixelArrayAlpha(src: APTR; srcx: Word; srcy: Word; srcmod: Word; rp: PRastPort; destx: Word; desty: Word; width: Word; height: Word; globalalpha: LongWord): LongWord; syscall CyberGfxBase 36;
+procedure BltTemplateAlpha(src: APTR; srcx: LongInt; srcmod: LongInt; rp: PRastPort; destx: LongInt; desty: LongInt; width: LongInt; height: LongInt); syscall CyberGfxBase 37;
+procedure ProcessPixelArray(rp: PRastPort; destX: LongWord; destY: LongWord; sizeX: LongWord; sizeY: LongWord; operation: LongWord; value: LongInt; taglist: PTagItem); syscall CyberGfxBase 38;
+
+// Functions and procedures with array of const go here
+function AllocCModeListTags(const ModeListTags: array of const): PList;
+function BestCModeIDTags(const BestModeIDTags: array of const): LongWord;
+procedure CVideoCtrlTags(ViewPort: PViewPort; const TagList: array of const);
+procedure DoCDrawMethodTags(Hook: PHook; a1arg: PRastPort; const TagList: array of const);
+function LockBitMapTags(BitMap: APTR; const TagList: array of const): APTR;
+procedure UnLockBitMapTags(Handle: APTR; const TagList: array of const);
+
+function SHIFT_PIXFMT(fmt: LongInt): LongInt;
+function DOWNSHIFT_PIXFMT(fmt: LongInt): LongInt;
+
+implementation
+
+uses
+ tagsarray;
+
+// Functions and procedures with array of const go here
+function AllocCModeListTags(const ModeListTags: array of const): PList;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, ModeListTags);
+ AllocCModeListTags := AllocCModeListTagList(GetTagPtr(TagList));
+end;
+
+function BestCModeIDTags(const BestModeIDTags: array of const): LongWord;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, BestModeIDTags);
+ BestCModeIDTags := BestCModeIDTagList(GetTagPtr(TagList));
+end;
+
+procedure CVideoCtrlTags(ViewPort: PViewPort; const TagList: array of const);
+var
+ TagsList: TTagsList;
+begin
+ AddTags(TagsList, TagList);
+ CVideoCtrlTagList(ViewPort, GetTagPtr(TagsList));
+end;
+
+procedure DoCDrawMethodTags(Hook: PHook; a1arg: PRastPort; const TagList: array of const);
+var
+ TagsList: TTagsList;
+begin
+ AddTags(TagsList, TagList);
+ DoCDrawMethodTagList(Hook, a1arg, GetTagPtr(TagsList));
+end;
+
+function LockBitMapTags(BitMap: APTR; const TagList: array of const): APTR;
+var
+ TagsList: TTagsList;
+begin
+ AddTags(TagsList, TagList);
+ LockBitMapTags := LockBitMapTagList(BitMap, GetTagPtr(TagsList));
+end;
+
+procedure UnLockBitMapTags(Handle: APTR; const TagList: array of const);
+var
+ TagsList: TTagsList;
+begin
+ AddTags(TagsList, TagList);
+ UnLockBitMapTagList(Handle, GetTagPtr(TagsList));
+end;
+
+function SHIFT_PIXFMT(fmt: LongInt): LongInt;
+begin
+ SHIFT_PIXFMT:=(ULONG(fmt)) shl 24;
+end;
+
+function DOWNSHIFT_PIXFMT(fmt: LongInt): LongInt;
+begin
+ DOWNSHIFT_PIXFMT:=(ULONG(fmt)) shr 24;
+end;
+
+initialization
+ CyberGfxBase := OpenLibrary(CYBERGFXNAME, 0);
+finalization
+ CloseLibrary(CyberGfxBase);
+end.
+
+
+
diff --git a/packages/arosunits/src/diskfont.pas b/packages/arosunits/src/diskfont.pas
new file mode 100644
index 0000000000..82cf201814
--- /dev/null
+++ b/packages/arosunits/src/diskfont.pas
@@ -0,0 +1,139 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ diskfont.library 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.
+
+ **********************************************************************}
+
+unit diskfont;
+
+{$mode objfpc}
+
+INTERFACE
+
+uses exec, agraphics,utility;
+
+const
+
+ MAXFONTPATH = 256;
+
+type
+
+ pFontContents = ^tFontContents;
+ tFontContents = record
+ fc_FileName : Array [0..MAXFONTPATH-1] of Char;
+ fc_YSize : Word;
+ fc_Style : Byte;
+ fc_Flags : Byte;
+ end;
+
+
+ pTFontContents = ^tTFontContents;
+ tTFontContents = record
+ tfc_FileName : Array[0..MAXFONTPATH-3] of Char;
+ tfc_TagCount : Word;
+
+ tfc_YSize : Word;
+ tfc_Style,
+ tfc_Flags : Byte;
+ END;
+
+
+const
+
+ FCH_ID = $0f00;
+ TFCH_ID = $0f02;
+ OFCH_ID = $0f03;
+
+
+
+type
+
+ pFontContentsHeader = ^tFontContentsHeader;
+ tFontContentsHeader = record
+ fch_FileID : Word;
+ fch_NumEntries : Word;
+ end;
+
+const
+
+ DFH_ID = $0f80;
+ MAXFONTNAME = 32;
+
+type
+
+ pDiskFontHeader = ^tDiskFontHeader;
+ tDiskFontHeader = record
+ dfh_DF : tNode;
+ dfh_FileID : Word;
+ dfh_Revision : Word;
+ dfh_Segment : Longint;
+ dfh_Name : Array [0..MAXFONTNAME-1] of Char;
+ dfh_TF : tTextFont;
+ end;
+
+const
+
+ AFB_MEMORY = 0;
+ AFF_MEMORY = 1;
+ AFB_DISK = 1;
+ AFF_DISK = 2;
+ AFB_SCALED = 2;
+ AFF_SCALED = $0004;
+ AFB_BITMAP = 3;
+ AFF_BITMAP = $0008;
+ AFB_TAGGED = 16;
+ AFF_TAGGED = $10000;
+
+
+type
+
+ pAvailFonts = ^tAvailFonts;
+ tAvailFonts = record
+ af_Type : Word;
+ af_Attr : tTextAttr;
+ end;
+
+ pTAvailFonts = ^tTAvailFonts;
+ tTAvailFonts = record
+ taf_Type : Word;
+ taf_Attr : tTTextAttr;
+ end;
+
+ pAvailFontsHeader = ^tAvailFontsHeader;
+ tAvailFontsHeader = record
+ afh_NumEntries : Word;
+ end;
+
+const
+ DISKFONTNAME : PChar = 'diskfont.library';
+
+var
+ DiskfontBase: PLibrary;
+
+function AvailFonts(Buffer: PChar; BufBytes: LongInt; Flags: LongInt): LongInt; syscall DiskfontBase 6;
+procedure DisposeFontContents(FontContentsHeader: PFontContentsHeader); syscall DiskfontBase 8;
+function NewFontContents(FontsLock: BPTR; FontName: PChar): PFontContentsHeader; syscall DiskfontBase 7;
+function NewScaledDiskFont(SourceFont: PTextFont; DestTextAttr: PTextAttr): PDiskFontHeader; syscall DiskfontBase 9;
+function OpenDiskFont(TextAttr: PTextAttr): PTextFont; syscall DiskfontBase 5;
+//function GetDiskFontCtrl(tagid: LongInt): LongInt;
+//procedure SetDiskFontCtrlA(taglist: PTagItem);
+
+implementation
+
+initialization
+ DiskfontBase := OpenLibrary(DISKFONTNAME, 36);
+finalization
+ CloseLibrary(DiskfontBase);
+end.
+
+
+
diff --git a/packages/arosunits/src/exec.pas b/packages/arosunits/src/exec.pas
new file mode 100644
index 0000000000..0bfe3a8a80
--- /dev/null
+++ b/packages/arosunits/src/exec.pas
@@ -0,0 +1,1533 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ exec.library 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.
+
+ **********************************************************************}
+
+{
+
+missing:
+ MemHeaderExt (difficult struct)
+ ETask Substructure in TTask
+
+defines:
+ AROS_NEED_LONG_ALIGN = ????
+ AROS_FLAVOUR_BINCOMPAT = Bincompat mode
+ AROS_MORPHOS_COMPATIBLE = ????
+}
+
+
+unit Exec;
+
+interface
+
+type
+ APTR = Pointer;
+ CONST_APTR = Pointer;
+ LONG = LongInt;
+ ULONG = LongWord;
+ QUAD = Int64;
+ UQUAD = QWord;
+ IPTR = NativeUInt;
+ PIPTR = ^IPTR;
+ STRPTR = PChar;
+ CONST_STRPTR = PChar;
+ BPTR = Pointer;
+ BSTR = Pointer;
+ BOOL = SmallInt;
+ UWORD = Word;
+ WORDBITS = Word;
+ LONGBITS = LongWord;
+ PLONGBITS = ^LONGBITS;
+ UBYTE = Byte;
+ PULONG = PLongWord;
+ PAPTR = ^APTR;
+ PLONG = PLongInt;
+ PaSmallInt = PSmallInt;
+
+
+// TagItem moved from Utilities to exec because needed for records
+
+{ This data type may propagate through the system for more general use.
+ In the meantime, it is used as a general mechanism of extensible data
+ arrays for parameter specification and property inquiry (coming soon
+ to a display controller near you).
+ In practice, an array (or chain of arrays) of TagItems is used.}
+type
+ Tag = LongWord;
+ PTag = ^Tag;
+
+ PTagItem = ^TTagItem;
+ TTagItem = record
+ ti_Tag: Tag;
+ ti_Data: IPTR;
+ end;
+ PPTagItem = ^PTagItem;
+
+const
+ TAG_USER = 1 shl 31; // differentiates user tags from system tags
+// END of part from utility move
+
+const
+// There is a problem with Boolean vaules in taglists, just use this for now instead
+ LTrue : LongInt = 1;
+ LFalse: LongInt = 0;
+
+type
+// List Node Structure. Each member in a list starts with a Node
+ PNode = ^TNode;
+
+{$ifdef AROS_FLAVOUR_BINCOMPAT}
+ TNode = record
+ ln_Succ, // Pointer to next (successor)
+ ln_Pred : PNode; // Pointer to previous (predecessor)
+ ln_Type : Byte;
+ ln_Pri : ShortInt; // Priority, for sorting
+ ln_Name : STRPTR; // ID string, null terminated
+ end; // Note: smallint aligned
+{$else}
+ TNode = Record
+ ln_Succ, // Pointer to next (successor)
+ ln_Pred : PNode; // Pointer to previous (predecessor)
+ ln_Name : STRPTR; // ID string, null terminated
+ ln_Type : Byte;
+ ln_Pri : ShortInt; // Priority, for sorting
+ End; // Note: smallint aligned
+{$endif}
+
+// minimal node -- no type checking possible
+
+ PMinNode = ^TMinNode;
+ TMinNode = Record
+ mln_Succ,
+ mln_Pred : PMinNode;
+ End;
+
+{
+ Note: Newly initialized IORequests, and software interrupt structures
+ used with Cause(), should have type NT_UNKNOWN. The OS will assign a type
+ when they are first used.
+ }
+
+// ----- Node Types for LN_TYPE -----
+
+Const
+
+ NT_UNKNOWN = 0; // Unknown Node
+ NT_TASK = 1; // Exec task
+ NT_INTERRUPT = 2; // Interrupt
+ NT_DEVICE = 3; // Device
+ NT_MSGPORT = 4; // Message Port
+ NT_MESSAGE = 5; // Indicates message currently pending
+ NT_FREEMSG = 6;
+ NT_REPLYMSG = 7; // Message has been replied
+ NT_RESOURCE = 8;
+ NT_LIBRARY = 9;
+ NT_MEMORY = 10;
+ NT_SOFTINT = 11; // Internal flag used by SoftInits
+ NT_FONT = 12;
+ NT_PROCESS = 13; // AmigaDOS Process
+ NT_SEMAPHORE = 14;
+ NT_SIGNALSEM = 15; // signal semaphores
+ NT_BOOTNODE = 16;
+ NT_KICKMEM = 17;
+ NT_GRAPHICS = 18;
+ NT_DEATHMESSAGE = 19;
+ NT_HIDD = 20; // AROS Specific
+
+ NT_USER = 254; // User node types work down from here
+ NT_EXTENDED = 255;
+
+{ This file defines Exec system lists, which are used to link
+ various things. Exec provides several routines to handle list
+ processing (defined at the bottom of this file), so you can
+ use these routines to save yourself the trouble of writing a list
+ package.}
+type
+// Normal, full featured list
+ PList = ^TList;
+ TList = record
+ lh_Head: PNode;
+ lh_Tail: PNode;
+ lh_TailPred: PNode;
+ lh_Type: Byte;
+ l_pad: Byte;
+ end;
+
+// minimum list -- no type checking possible
+ PMinList = ^TMinList;
+ TMinList = record
+ mlh_Head: PMinNode;
+ mlh_Tail: PMinNode;
+ mlh_TailPred: PMinNode;
+ end;
+
+{********************************************************************
+*
+* Format of the alert error number:
+*
+* +-+-------------+----------------+--------------------------------+
+* |D| SubSysId | General Error | SubSystem Specific Error |
+* +-+-------------+----------------+--------------------------------+
+* 1 7 bits 8 bits 16 bits
+*
+* D: DeadEnd alert
+* SubSysId: indicates ROM subsystem number.
+* General Error: roughly indicates what the error was
+* Specific Error: indicates more detail
+*********************************************************************}
+
+{ ********************************************************************
+*
+* General Alerts
+*
+* For example: timer.device cannot open math.library would be $05038015
+*
+* Alert(AN_TimerDev|AG_OpenLib|AO_MathLib);
+*
+********************************************************************}
+
+const
+// General Types
+ AT_DeadEnd = $80000000; // Alert that crashes
+ AT_Recovery = $00000000; // Alert that returns
+
+// General purpose alert codes }
+ AG_NoMemory = $00010000;
+ AG_MakeLib = $00020000;
+ AG_OpenLib = $00030000;
+ AG_OpenDev = $00040000;
+ AG_OpenRes = $00050000;
+ AG_IOError = $00060000;
+ AG_NoSignal = $00070000;
+ AG_BadParm = $00080000;
+ AG_CloseLib = $00090000; // usually too many closes
+ AG_CloseDev = $000A0000; // or a mismatched close
+ AG_ProcCreate = $000B0000; // Process creation failed
+
+{*********************************************************************
+*
+* Hardware/CPU specific alerts: They may show without the 8 at the
+* front of the number. These are CPU/68000 specific. See 68$0
+* programmer's manuals for more details.
+*
+*********************************************************************}
+ ACPU_BusErr = $80000002; // Hardware bus fault/access error
+ ACPU_AddressErr = $80000003; // Illegal address access (ie: odd)
+ ACPU_InstErr = $80000004; // Illegal instruction
+ ACPU_DivZero = $80000005; // Divide by zero
+ ACPU_CHK = $80000006; // Check instruction error
+ ACPU_TRAPV = $80000007; // TrapV instruction error
+ ACPU_PrivErr = $80000008; // Privilege violation error
+ ACPU_Trace = $80000009; // Trace error
+ ACPU_LineA = $8000000A; // Line 1010 Emulator error
+ ACPU_LineF = $8000000B; // Line 1111 Emulator error
+ ACPU_Format = $8000000E; // Stack frame format error
+ ACPU_Spurious = $80000018; // Spurious interrupt error
+ ACPU_AutoVec1 = $80000019; // AutoVector Level 1 interrupt error
+ ACPU_AutoVec2 = $8000001A; // AutoVector Level 2 interrupt error
+ ACPU_AutoVec3 = $8000001B; // AutoVector Level 3 interrupt error
+ ACPU_AutoVec4 = $8000001C; // AutoVector Level 4 interrupt error
+ ACPU_AutoVec5 = $8000001D; // AutoVector Level 5 interrupt error
+ ACPU_AutoVec6 = $8000001E; // AutoVector Level 6 interrupt error
+ ACPU_AutoVec7 = $8000001F; // AutoVector Level 7 interrupt error
+
+// alert libraries
+ AO_ExecLib = $00008001;
+ AO_GraphicsLib = $00008002;
+ AO_LayersLib = $00008003;
+ AO_Intuition = $00008004;
+ AO_MathLib = $00008005;
+ AO_DOSLib = $00008007;
+ AO_RAMLib = $00008008;
+ AO_IconLib = $00008009;
+ AO_ExpansionLib = $0000800A;
+ AO_DiskfontLib = $0000800B;
+ AO_UtilityLib = $0000800C;
+ AO_KeyMapLib = $0000800D;
+// alert devices
+ AO_AudioDev = $00008010;
+ AO_ConsoleDev = $00008011;
+ AO_GamePortDev = $00008012;
+ AO_KeyboardDev = $00008013;
+ AO_TrackDiskDev = $00008014;
+ AO_TimerDev = $00008015;
+// alert resources
+ AO_CIARsrc = $00008020;
+ AO_DiskRsrc = $00008021;
+ AO_MiscRsrc = $00008022;
+// alert other
+ AO_BootStrap = $00008030;
+ AO_Workbench = $00008031;
+ AO_DiskCopy = $00008032;
+ AO_GadTools = $00008033;
+ AO_Unknown = $00008035;
+// AROS Additions, start at $40
+ AO_ArosLib = $00008040;
+ AO_OOPLib = $00008041;
+ AO_HiddLib = $00008042;
+
+{********************************************************************
+*
+* Specific Alerts:
+*
+********************************************************************}
+// exec.library
+ AN_ExecLib = $01000000;
+ AN_ExcptVect = $01000001; // 68000 exception vector checksum (obs.)
+ AN_BaseChkSum = $01000002; // Execbase checksum (obs.)
+ AN_LibChkSum = $01000003; // Library checksum failure
+ AN_MemCorrupt = $81000005; // Corrupt memory list detected in FreeMem
+ AN_IntrMem = $81000006; // No memory for interrupt servers
+ AN_InitAPtr = $01000007; // InitStruct() of an APTR source (obs.)
+ AN_SemCorrupt = $01000008; // A semaphore is in an illegal state at ReleaseSempahore()
+ AN_FreeTwice = $01000009; // Freeing memory already freed
+ AN_BogusExcpt = $8100000A; // illegal 68k exception taken (obs.)
+ AN_IOUsedTwice = $0100000B; // Attempt to reuse active IORequest
+ AN_MemoryInsane = $0100000C; // Sanity check on memory list failed during AvailMem(MEMF_LARGEST)
+ AN_IOAfterClose = $0100000D; // IO attempted on closed IORequest
+ AN_StackProbe = $0100000E; // Stack appears to extend out of range
+ AN_BadFreeAddr = $0100000F; // Memory header not located. [ Usually an invalid address passed to FreeMem() ]
+ AN_BadSemaphore = $01000010; // An attempt was made to use the old message semaphores.
+
+// dos.library
+ AN_DOSLib = $07000000;
+ AN_StartMem = $07010001; // no memory at startup
+ AN_EndTask = $07000002; // EndTask didn't
+ AN_QPktFail = $07000003; // Qpkt failure
+ AN_AsyncPkt = $07000004; // Unexpected packet received
+ AN_FreeVec = $07000005; // Freevec failed
+ AN_DiskBlkSeq = $07000006; // Disk block sequence error
+ AN_BitMap = $07000007; // Bitmap corrupt
+ AN_KeyFree = $07000008; // Key already free
+ AN_BadChkSum = $07000009; // Invalid checksum
+ AN_DiskError = $0700000A; // Disk Error
+ AN_KeyRange = $0700000B; // Key out of range
+ AN_BadOverlay = $0700000C; // Bad overlay
+ AN_BadInitFunc = $0700000D; // Invalid init packet for cli/shell
+ AN_FileReclosed = $0700000E; // A filehandle was closed more than once
+
+// graphics.library
+ AN_GraphicsLib = $02000000;
+ AN_GfxNoMem = $82010000; // graphics out of memory
+ AN_GfxNoMemMspc = $82010001; // MonitorSpec alloc, no memory
+ AN_LongFrame = $82010006; // long frame, no memory
+ AN_ShortFrame = $82010007; // short frame, no memory
+ AN_TextTmpRas = $02010009; // text, no memory for TmpRas
+ AN_BltBitMap = $8201000A; // BltBitMap, no memory
+ AN_RegionMemory = $8201000B; // regions, memory not available
+ AN_MakeVPort = $82010030; // MakeVPort, no memory
+ AN_GfxNewError = $0200000C;
+ AN_GfxFreeError = $0200000D;
+ AN_GfxNoLCM = $82011234; // emergency memory not available
+ AN_ObsoleteFont = $02000401; // unsupported font description used
+
+// intuition.library
+ AN_Intuition = $04000000;
+ AN_GadgetType = $84000001; // unknown gadget type
+ AN_BadGadget = $04000001; // Recovery form of AN_GadgetType
+ AN_CreatePort = $84010002; // create port, no memory
+ AN_ItemAlloc = $04010003; // item plane alloc, no memory
+ AN_SubAlloc = $04010004; // sub alloc, no memory
+ AN_PlaneAlloc = $84010005; // plane alloc, no memory
+ AN_ItemBoxTop = $84000006; // item box top < RelZero
+ AN_OpenScreen = $84010007; // open screen, no memory
+ AN_OpenScrnRast = $84010008; // open screen, raster alloc, no memory
+ AN_SysScrnType = $84000009; // open sys screen, unknown type
+ AN_AddSWGadget = $8401000A; // add SW gadgets, no memory
+ AN_OpenWindow = $8401000B; // open window, no memory
+ AN_BadState = $8400000C; // Bad State Return entering Intuition
+ AN_BadMessage = $8400000D; // Bad Message received by IDCMP
+ AN_WeirdEcho = $8400000E; // Weird echo causing incomprehension
+ AN_NoConsole = $8400000F; // couldn't open the Console Device
+ AN_NoISem = $04000010; // Intuition skipped obtaining a sem
+ AN_ISemOrder = $04000011; // Intuition obtained a sem in bad order
+
+// System utility library
+ AN_UtilityLib = $34000000;
+
+// layers.library
+ AN_LayersLib = $03000000;
+ AN_LayersNoMem = $83010000; // layers out of memory
+
+// math.library
+ AN_MathLib = $05000000;
+
+// expansion.library
+ AN_ExpansionLib = $0A000000;
+ AN_BadExpansionFree = $0A000001; // freeed free region
+
+// ramlib.library
+ AN_RAMLib = $08000000;
+ AN_BadSegList = $08000001; // no overlays in library seglists
+
+// diskfont.library
+ AN_DiskfontLib = $0B000000;
+
+// icon.library
+ AN_IconLib = $09000000;
+
+// Gadtools.library toolkit for Intuition
+ AN_GadTools = $33000000;
+
+// audio.device
+ AN_AudioDev = $10000000;
+
+// console.device
+ AN_ConsoleDev = $11000000;
+ AN_NoWindow = $11000001; // Console can't open initial window
+
+// gameport.device
+ AN_GamePortDev = $12000000;
+
+// keyboard.device
+ AN_KeyboardDev = $13000000;
+
+// ------ trackdisk.device
+ AN_TrackDiskDev = $14000000;
+ AN_TDCalibSeek = $14000001; // calibrate: seek error
+ AN_TDDelay = $14000002; // delay: error on timer wait
+
+// timer.device
+ AN_TimerDev = $15000000;
+ AN_TMBadReq = $15000001; // bad request
+ AN_TMBadSupply = $15000002; // power supply -- no 50/60Hz ticks
+
+// cia.resource
+ AN_CIARsrc = $20000000;
+
+// disk.resource
+ AN_DiskRsrc = $21000000;
+ AN_DRHasDisk = $21000001; // get unit: already has disk
+ AN_DRIntNoAct = $21000002; // interrupt: no active unit
+
+// misc.resource
+ AN_MiscRsrc = $22000000;
+
+// bootstrap
+ AN_BootStrap = $30000000;
+ AN_BootError = $30000001; // boot code returned an error
+
+// Workbench
+ AN_Workbench = $31000000;
+ AN_NoFonts = $B1000001;
+ AN_WBBadStartupMsg1 = $31000001;
+ AN_WBBadStartupMsg2 = $31000002;
+ AN_WBBadIOMsg = $31000003;
+ AN_WBReLayoutToolMenu = $B1010009;
+
+// DiskCopy
+ AN_DiskCopy = $32000000;
+
+// For use by any application that needs it
+ AN_Unknown = $35000000;
+
+// AROS Additions
+ AN_Aros = $40000000;
+ AN_OOP = $41000000;
+
+// Hidd Subsystem
+ AN_Hidd = $42000000;
+ AN_HiddNoRoot = $C2000001;
+
+const
+ IOERR_OPENFAIL = -1; // device/unit failed to open
+ IOERR_ABORTED = -2; // request terminated early [after AbortIO()]
+ IOERR_NOCMD = -3; // command not supported by device
+ IOERR_BADLENGTH = -4; // not a valid length (usually IO_LENGTH)
+ IOERR_BADADDRESS = -5; // invalid address (misaligned or bad range)
+ IOERR_UNITBUSY = -6; // device opens ok, but requested unit is busy
+ IOERR_SELFTEST = -7; // hardware failed self-test
+
+type
+ PResident = ^TResident;
+ TResident = record
+ rt_MatchWord: Word; // smallint to match on (ILLEGAL)
+ rt_MatchTag: PResident; // pointer to the above
+ rt_EndSkip: APTR; // address to continue scan
+ rt_Flags: Byte; // various tag flags
+ rt_Version: Byte; // release version number
+ rt_Type: Byte; // type of module (NT_mumble)
+ rt_Pri: ShortInt; // initialization priority
+ rt_Name: CONST_STRPTR; // pointer to node name
+ rt_IdString: CONST_STRPTR;// pointer to ident string
+ rt_Init: APTR; // pointer to init code
+ rt_Revision: Word; // Extension taken over from MorphOS. Only valid if RTF_EXTENDED is set
+ rt_Tags: PTagItem; // PTagItem
+ end;
+
+const
+ RTC_MATCHWORD = $4AFC;
+
+ RTF_COLDSTART = $01;
+ RTF_SINGLETASK = $02;
+ RTF_AFTERDOS = $04;
+ RTF_AUTOINIT = $80;
+
+ RTF_EXTENDED = $40; // MorphOS extension: extended structure fields are valid
+
+// Compatibility:
+
+ RTW_NEVER = $00;
+ RTW_COLDSTART = $01;
+
+ RTT_STARTUP = TAG_USER + $04AF1234;
+
+type
+//****** MemChunk ****************************************************
+ PMemChunk = ^TMemChunk;
+ TMemChunk = record
+ mc_Next: PMemChunk; // pointer to next chunk
+ mc_Bytes: IPTR; // chunk byte size
+ end;
+
+//****** MemHeader ***************************************************
+ PMemHeader = ^TMemHeader;
+ TMemHeader = record
+ mh_Node: TNode;
+ mh_Attributes: Word; // characteristics of this region
+ mh_First: PMemChunk; // first free region
+ mh_Lower, // lower memory bound
+ mh_Upper: APTR; // upper memory bound+1
+ mh_Free: ULONG; // total number of free bytes
+ end;
+
+//****** MemEntry ****************************************************
+ PMemEntry = ^TMemEntry;
+ TMemEntry = record
+ me_Un: record
+ case LongInt of
+ 0: (meu_Reqs: ULONG);
+ 1: (meu_Addr: APTR);
+ end;
+ me_Length: ULONG;
+ end;
+
+//****** MemList *****************************************************
+// Note: sizeof(TMemList) includes the size of the first MemEntry
+ PMemList = ^TMemList;
+ TMemList = record
+ ml_Node: TNode;
+ ml_NumEntries: Word; // number of entries in this struct
+ ml_ME: array [0..0] of TMemEntry; // the first entry
+ End;
+
+// Memory Requirement Types
+// See the AllocMem() documentation for details
+const
+ MEMF_ANY = $0; // Any type of memory will do
+ MEMF_PUBLIC = 1 shl 0;
+ MEMF_CHIP = 1 shl 1;
+ MEMF_FAST = 1 shl 2;
+ MEMF_EXECUTABLE = 1 shl 4; // AmigaOS 4 Compatible
+ MEMF_LOCAL = 1 shl 8;
+ MEMF_24BITDMA = 1 shl 9; // DMAable memory within 24 bits of address
+ MEMF_KICK = 1 shl 10; // Memory that can be used for KickTags
+ MEMF_31BIT = 1 shl 12; // Low address space (<2GB). Effective only on 64 bit machines.
+ MEMF_CLEAR = 1 shl 16; // Explicitly clear memory after allocation
+ MEMF_LARGEST = 1 shl 17;
+ MEMF_REVERSE = 1 shl 18;
+ MEMF_TOTAL = 1 shl 19; // AvailMem: return total size of memory
+ MEMF_HWALIGNED = 1 shl 20; // For AllocMem() - align address and size to physical page boundary
+ MEMF_SEM_PROTECTED = 1 shl 20; // For CreatePool() - add semaphore protection to the pool
+ MEMF_NO_EXPUNGE = 1 shl 31; // AllocMem: Do not cause expunge on failure
+
+ MEM_BLOCKSIZE = 8;
+ MEM_BLOCKMASK = MEM_BLOCKSIZE-1;
+
+{$ifdef CPU64}
+ MEMF_PHYSICAL_MASK = MEMF_PUBLIC or MEMF_CHIP or MEMF_FAST or MEMF_LOCAL or MEMF_24BITDMA or MEMF_KICK or MEMF_31BIT;
+{$else}
+ MEMF_PHYSICAL_MASK = MEMF_PUBLIC or MEMF_CHIP or MEMF_FAST or MEMF_LOCAL or MEMF_24BITDMA or MEMF_KICK;
+{$endif}
+
+type
+//***** MemHandlerData *********************************************
+// Note: This structure is *READ ONLY* and only EXEC can create it!
+ PMemHandlerData = ^TMemHandlerData;
+ TMemHandlerData = record
+ memh_RequestSize, // Requested allocation size
+ memh_RequestFlags, // Requested allocation flags
+ memh_Flags: ULONG; // Flags (see below)
+ end;
+
+const
+ MEMHF_RECYCLE = 1; // 0 = First time, 1 = recycle
+//***** Low Memory handler return values **************************
+ MEM_ALL_DONE = -1; // We did all we could do
+ MEM_DID_NOTHING = 0; // Nothing we could do...
+ MEM_TRY_AGAIN = 1; // We did some, try the allocation again
+
+type
+ PInterrupt = ^TInterrupt;
+ TInterrupt = record
+ is_Node: TNode;
+ is_Data: APTR; // Server data segment
+ is_Code: Pointer; // Server code entry
+ end;
+
+// PRIVATE
+ PIntVector = ^TIntVector;
+ TIntVector = record // For EXEC use ONLY!
+ iv_Data: APTR;
+ iv_Code: Pointer;
+ iv_Node: PNode;
+ end;
+
+// PRIVATE
+ PSoftIntList = ^TSoftIntList;
+ TSoftIntList = record // For EXEC use ONLY!
+ sh_List: TList;
+ sh_Pad : Word;
+ end;
+
+const
+ SIH_PRIMASK = $F0;
+// this is a fake INT definition, used only for AddIntServer and the like
+ INTB_NMI = 15;
+ INTF_NMI = 1 shl 15;
+{ Offset of kernel interrupt vectors.
+ Usage:
+ AddIntServer(INTB_KERNEL + irq, irq_handler);
+ RemIntServer(INTB_KERNEL + irq, irq_handler); }
+ INTB_KERNEL = 16;
+
+{ This file defines ports and messages, which are used for inter-
+ task communications using the routines defined toward the
+ bottom of this file.}
+type
+//****** MsgPort *****************************************************
+ PMsgPort = ^TMsgPort;
+ TMsgPort = record
+ mp_Node: TNode;
+ mp_Flags: Byte;
+ mp_SigBit: Byte; { signal bit number }
+ mp_SigTask: Pointer; { task to be signalled (TaskPtr) }
+ mp_MsgList: TList; { message linked list }
+ end;
+
+//****** Message *****************************************************
+ PMessage = ^TMessage;
+ TMessage = record
+ mn_Node: TNode;
+ mn_ReplyPort: PMsgPort; // message reply port
+ mn_Length: Word; // message len in bytes (include the size of the Message structure in the length)
+ end;
+
+//****** MagicMessage ***********************************************
+ PMagicMessage = ^TMagicMessage;
+ TMagicMessage = record
+ mn_Node: TNode;
+ mn_ReplyPort: PMsgPort; // message reply port
+ mn_Length: Word; // total message length, in bytes (include the size of the Message structure in the length)
+ mn_Magic: ULONG; // can be used to figure out the message sender
+ mn_Version: ULONG; // version can be used to extend a message in later versions
+ end;
+
+{ definition for entry Magic in Messages
+ Magic is introduced to prevent Multiple Ports, for example if you´r using
+ ScreenNotifications and DecorNotifications you must have two Ports as long
+ as you cannot figure out which Messsage ist posted. With Magic this is no
+ problem.}
+const
+ MAGIC_DECORATOR = $8000001;
+ MAGIC_SCREENNOTIFY = $8000002;
+
+{ Every Amiga Task has one of these Task structures associated with it.
+ To find yours, use FindTask(Nil). AmigaDOS processes tack a few more
+ values on to the end of this structure, which is the difference between
+ Tasks and Processes.}
+type
+ PTask = ^TTask;
+ TTask = record
+ tc_Node: TNode;
+ tc_Flags: Byte;
+ tc_State: Byte;
+ tc_IDNestCnt: Shortint; // intr disabled nesting
+ tc_TDNestCnt: Shortint; // task disabled nesting
+ tc_SigAlloc: ULONG; // sigs allocated
+ tc_SigWait: ULONG; // sigs we are waiting for
+ tc_SigRecvd: ULONG; // sigs we have received
+ tc_SigExcept: ULONG; // sigs we will take excepts for
+ tc_TrapAlloc: Word; // traps allocated
+ tc_TrapAble: Word; // traps enabled
+ tc_ExceptData: APTR; // points to except data
+ tc_ExceptCode: APTR; // points to except code
+ tc_TrapData: APTR; // points to trap data
+ tc_TrapCode: APTR; // points to trap code
+ tc_SPReg: APTR; // stack pointer
+ tc_SPLower: APTR; // stack lower bound
+ tc_SPUpper: APTR; // stack upper bound + 2
+ tc_Switch: Pointer; // task losing CPU
+ tc_Launch: Pointer; // task getting CPU
+ tc_MemEntry: TList; // allocated memory
+ tc_UserData: APTR; // per task data
+ end;
+
+// Stack swap structure as passed to StackSwap()
+ PStackSwapStruct = ^TStackSwapStruct;
+ TStackSwapStruct = record
+ stk_Lower: APTR; // Lowest byte of stack
+ stk_Upper: APTR; // Upper end of stack (size + Lowest)
+ stk_Pointer: APTR; // Stack pointer at switch point
+ end;
+
+ PStackSwapArgs = ^TStackSwapArgs;
+ TStackSwapArgs = record
+ Args: array[0..7] of IPTR;
+ end;
+
+const
+//----- Flag Bits ------------------------------------------
+ TB_PROCTIME = 0;
+ TB_ETASK = 3;
+ TB_STACKCHK = 4;
+ TB_EXCEPT = 5;
+ TB_SWITCH = 6;
+ TB_LAUNCH = 7;
+
+ TF_PROCTIME = 1;
+ TF_ETASK = 8;
+ TF_STACKCHK = 16;
+ TF_EXCEPT = 32;
+ TF_SWITCH = 64;
+ TF_LAUNCH = 128;
+
+//----- Task States (tc_State) ---------------------------------
+ TS_INVALID = 0;
+ TS_ADDED = 1;
+ TS_RUN = 2;
+ TS_READY = 3;
+ TS_WAIT = 4;
+ TS_EXCEPT = 5;
+ TS_REMOVED = 6;
+
+//----- Predefined Signals -------------------------------------
+ SIGB_ABORT = 0;
+ SIGB_CHILD = 1;
+ SIGB_BLIT = 4; // Note: same as SIGB_SINGLE
+ SIGB_SINGLE = 4; // Note: same as SIGB_BLIT
+ SIGB_INTUITION = 5;
+ SIGB_NET = 7;
+ SIGB_DOS = 8;
+
+ SIGF_ABORT = 1;
+ SIGF_CHILD = 2;
+ SIGF_BLIT = 16;
+ SIGF_SINGLE = 16;
+ SIGF_INTUITION = 32;
+ SIGF_NET = 128;
+ SIGF_DOS = 256;
+
+type
+{$ifdef AROS_MORPHOS_COMPATIBLE}
+ TETask = record
+ Message: TMessage;
+ Parent: PTask; // Pointer to task
+ UniqueID: ULONG;
+ Children: TMinList; // List of children
+ TrapAlloc: Word;
+ TrapAble: Word;
+ Result1: ULONG; // First result
+ Result2: APTR; // Result data pointer (AllocVec)
+ MsgPort: TMsgPort;
+ MemPool: Pointer;
+ Reserved: array[0..1] of Pointer;
+ RegFrame: Pointer;
+ // Internal fields follow
+ end;
+{$else}
+// Extended Task structure
+ TETask = record
+ et_Message: TMessage;
+ et_Parent: APTR; // Pointer to parent task
+ et_UniqueID: ULONG;
+ et_Children: TMinList; // List of children
+ et_TrapAlloc: Word;
+ et_TrapAble: Word;
+ et_Result1: ULONG; // First result
+ et_Result2: APTR; // Result data pointer (AllocVec)
+ et_TaskMsgPort: TMsgPort;
+ et_Compatibility: array[0..3] of APTR; // Reserve this space for compiled software to access iet_startup and iet_acpd
+ et_MemPool: Pointer; // Task's private memory pool
+{$ifdef aros}
+ et_Reserved: array[0..0] of IPTR; // MorphOS Private
+ et_TaskStorage: Pointer; // Task Storage Slots
+{$else}
+ et_Reserved: array[0..1] of IPTR; // MorphOS Private
+{$endif}
+ et_RegFrame: Pointer;
+ // Internal fields follow
+ end;
+{$endif}
+
+const
+// Return codes from new child functions
+ CHILD_NOTNEW = 1; // function not called from a new style task
+ CHILD_NOTFOUND = 2; // Child not found
+ CHILD_EXITED = 3; // Child has exited
+ CHILD_ACTIVE = 4; // Child is currently active and running
+
+ TASKTAG_Dummy = TAG_USER + $100000;
+ TASKTAG_ERROR = TASKTAG_Dummy + 0;
+ TASKTAG_CODETYPE = TASKTAG_Dummy + 1;
+ TASKTAG_PC = TASKTAG_Dummy + 2;
+ TASKTAG_FINALPC = TASKTAG_Dummy + 3;
+ TASKTAG_STACKSIZE = TASKTAG_Dummy + 4;
+ TASKTAG_NAME = TASKTAG_Dummy + 6;
+ TASKTAG_USERDATA = TASKTAG_Dummy + 7;
+ TASKTAG_PRI = TASKTAG_Dummy + 8;
+ TASKTAG_POOLPUDDLE = TASKTAG_Dummy + 9;
+ TASKTAG_POOLTHRESH = TASKTAG_Dummy + 10;
+ TASKTAG_ARG1 = TASKTAG_Dummy + 16;
+ TASKTAG_ARG2 = TASKTAG_Dummy + 17;
+ TASKTAG_ARG3 = TASKTAG_Dummy + 18;
+ TASKTAG_ARG4 = TASKTAG_Dummy + 19;
+ TASKTAG_ARG5 = TASKTAG_Dummy + 20;
+ TASKTAG_ARG6 = TASKTAG_Dummy + 21;
+ TASKTAG_ARG7 = TASKTAG_Dummy + 22;
+ TASKTAG_ARG8 = TASKTAG_Dummy + 23;
+ TASKTAG_STARTUPMSG = TASKTAG_Dummy + 24;
+ TASKTAG_TASKMSGPORT = TASKTAG_Dummy + 25;
+ TASKTAG_FLAGS = TASKTAG_Dummy + 26;
+ TASKTAG_TCBEXTRASIZE = TASKTAG_Dummy + 28;
+
+ TASKERROR_OK = 0;
+ TASKERROR_NOMEMORY = 1;
+// Actions for ShutdownA()
+ SD_ACTION_POWEROFF = 0;
+ SD_ACTION_COLDREBOOT = 1;
+
+// mp_Flags: Port arrival actions (PutMsg)
+const
+ PF_ACTION = 7; // Mask
+ PA_SIGNAL = 0; // Signal task in mp_SigTask
+ PA_SOFTINT = 1; // Signal SoftInt in mp_SoftInt/mp_SigTask
+ PA_IGNORE = 2; // Ignore arrival
+ PA_CALL = 3; // Call function in mp_SigTask. This was never
+ // documented on AmigaOS and was never defined
+ // but would work for mp_Flags = 3
+ PA_FASTCALL = 4; // AROS extension. Like PA_SOFTINT, calls an
+ // Interrupt in mp_SoftInt, but passes the
+ // message as the third argument without doesn't
+ // add it to the message list and so doesn't
+ // require any locking, task switching or
+ // Disable()/Enable() pairs */
+// Semaphore
+type
+// This is the structure used to request a signal semaphore
+ PSemaphoreRequest = ^TSemaphoreRequest;
+ TSemaphoreRequest = record
+ sr_Link: TMinNode;
+ sr_Waiter: PTask;
+ end;
+
+// The actual semaphore itself
+ PSignalSemaphore = ^TSignalSemaphore;
+ TSignalSemaphore = record
+ ss_Link: TNode;
+ ss_NestCount: SmallInt;
+ ss_WaitQueue: TMinList;
+ ss_MultipleLink: TSemaphoreRequest;
+ ss_Owner: PTask;
+ ss_QueueCount: SmallInt;
+ end;
+
+// Semaphore procure message for Procure/Vacate
+ PSemaphoreMessage = ^TSemaphoreMessage;
+ TSemaphoreMessage = record
+ ssm_Message: TMessage;
+ ssm_Semaphore: PSignalSemaphore;
+ end;
+
+{ not in aros?
+ PSemaphore = ^TSemaphore;
+ TSemaphore = record
+ sm_MsgPort: TMsgPort;
+ sm_Bids: SmallInt;
+ end;
+}
+const
+ SM_SHARED = 1;
+ SM_EXCLUSIVE = 0;
+
+//------ Special Constants ---------------------------------------
+ LIB_RESERVED = 4; // Exec reserves the first 4 vectors
+ LIB_VECTSIZE = 6; // Each library entry takes 6 bytes
+ LIB_BASE = (-LIB_VECTSIZE);
+ LIB_USERDEF = (LIB_BASE-(LIB_RESERVED*LIB_VECTSIZE));
+ LIB_NONSTD = (LIB_USERDEF);
+//------ Standard functions --------------------------------------
+ LIB_OPEN = LIB_BASE * 1;
+ LIB_CLOSE = LIB_BASE * 2;
+ LIB_EXPUNGE = LIB_BASE * 3;
+ LIB_EXTFUNC = LIB_BASE * 4; // for future expansion
+type
+//------ Library Base Structure ----------------------------------
+// Also used for Devices and some Resources
+ PLibrary = ^TLibrary;
+ TLibrary = record
+ lib_Node: TNode;
+ lib_Flags,
+ lib_pad: Byte;
+ lib_NegSize, // number of bytes before library
+ lib_PosSize, // number of bytes after library
+ lib_Version, // major
+ lib_Revision: Word; // minor
+{$ifdef AROS_NEED_LONG_ALIGN}
+ lib_pad1: Word;
+{$endif}
+ lib_IdString: STRPTR; // ASCII identification
+ lib_Sum: ULONG; // the checksum itself
+ lib_OpenCnt: Word; // number of current opens
+{$ifdef AROS_NEED_LONG_ALIGN}
+ lib_pad2: Word;
+{$endif}
+
+ end; // Warning: size is not a longword multiple!
+
+const
+// lib_Flags bit definitions (all others are system reserved)
+ LIBF_SUMMING = 1 shl 0; // we are currently checksumming
+ LIBF_CHANGED = 1 shl 1; // we have just changed the lib
+ LIBF_SUMUSED = 1 shl 2; // set if we should bother to sum
+ LIBF_DELEXP = 1 shl 3; // delayed expunge
+
+// ID numbers for Exec/TaggedOpenLibrary
+ TAGGEDOPEN_GRAPHICS = 1;
+ TAGGEDOPEN_LAYERS = 2;
+ TAGGEDOPEN_INTUITION = 3;
+ TAGGEDOPEN_DOS = 4;
+ TAGGEDOPEN_ICON = 5;
+ TAGGEDOPEN_EXPANSION = 6;
+ TAGGEDOPEN_UTILITY = 7;
+ TAGGEDOPEN_KEYMAP = 8;
+ TAGGEDOPEN_GADTOOLS = 9;
+ TAGGEDOPEN_WORKBENCH = 10;
+
+{ This file defines the constants and types required to use
+ Amiga device IO routines, which are also defined here.}
+type
+//***** Device ****************************************************
+ PDevice = ^TDevice;
+ TDevice = record
+ dd_Library: TLibrary;
+ end;
+
+//***** Unit ******************************************************
+ PUnit = ^TUnit;
+ TUnit = record
+ unit_MsgPort: TMsgPort; // queue for unprocessed messages instance of msgport is recommended
+ unit_flags,
+ unit_pad : Byte;
+ unit_OpenCnt: Word; // number of active opens
+ end;
+
+const
+ UNITF_ACTIVE = 1 shl 0;
+ UNITF_INTASK = 1 shl 1;
+
+type
+ PIORequest = ^TIORequest;
+ TIORequest = record
+ io_Message: TMessage;
+ io_Device: PDevice; // device node pointer
+ io_Unit: PUnit; // unit (driver private)
+ io_Command: Word; // device command
+ io_Flags: Byte;
+ io_Error: ShortInt; // error or warning num
+ end;
+
+ PIOStdReq = ^TIOStdReq;
+ TIOStdReq = record
+ io_Message: TMessage;
+ io_Device: PDevice; // device node pointe
+ io_Unit: PUnit; // unit (driver private)
+ io_Command: Word; // device command
+ io_Flags: Byte;
+ io_Error: ShortInt; // error or warning num
+ io_Actual: ULONG; // actual number of bytes transferred
+ io_Length: ULONG; // requested number bytes transferred
+ io_Data: APTR; // points to data area
+ io_Offset: ULONG; // offset for block structured devices
+ end;
+
+// library vector offsets for device reserved vectors
+const
+ DEV_BEGINIO = -30;
+ DEV_ABORTIO = -36;
+{ io_Flags defined bits }
+ IOB_QUICK = 0;
+ IOF_QUICK = 1;
+
+ CMD_INVALID = 0;
+ CMD_RESET = 1;
+ CMD_READ = 2;
+ CMD_WRITE = 3;
+ CMD_UPDATE = 4;
+ CMD_CLEAR = 5;
+ CMD_STOP = 6;
+ CMD_START = 7;
+ CMD_FLUSH = 8;
+ CMD_NONSTD = 9;
+
+{ Definition of the Exec library base structure (pointed to by location 4).
+** Most fields are not to be viewed or modified by user programs. Use
+** extreme caution.
+ }
+
+type
+ PArosSupportBase = ^TArosSupportBase;
+ TArosSupportBase = record
+ StdOut: Pointer;
+ kPrintfPtr: Pointer;
+ rkPrintfPtr: Pointer;
+ vkPrintfPtr: Pointer;
+ DebugConfig: Pointer;
+ end;
+
+ PExecBase = ^TExecBase;
+ TExecBase = record
+// Standard Library Structure
+ LibNode: TLibrary; // Standard library node
+{ ******* Static System Variables ******* }
+ SoftVer: Word; // kickstart release number (obs.)
+ LowMemChkSum: SmallInt; // checksum of 68000 trap vectors
+ ChkBase: ULONG; // system base pointer complement
+ ColdCapture, // coldstart soft capture vector
+ CoolCapture, // coolstart soft capture vector
+ WarmCapture, // warmstart soft capture vector
+ SysStkUpper, // system stack base (upper bound)
+ SysStkLower: APTR; // top of system stack (lower bound)
+ MaxLocMem: IPTR; // top of chip memory
+ DebugEntry, // global debugger entry point
+ DebugData, // global debugger data segment
+ AlertData, // alert data segment
+ MaxExtMem: APTR; // top of extended mem, or null if none
+ ChkSum: Word; // for all of the above (minus 2)
+//***** Interrupt Related *****************************************
+ IntVects: array[0..15] of TIntVector;
+//***** Dynamic System Variables **********************************
+ ThisTask: PTask; // pointer to current task (readable)
+ IdleCount, // idle counter
+ DispCount: ULONG; // dispatch coutner
+ Quantum, // time slice quantum
+ Elapsed, // current quantum ticks
+ SysFlags: Word; // misc internal system flags
+ IDNestCnt, // interrupt disable nesting count
+ TDNestCnt: Shortint; // task disable nesting count
+ AttnFlags, // special attention flags (readable)
+ AttnResched : Word; // rescheduling attention
+ ResModules, // resident module array pointer
+ TaskTrapCode,
+ TaskExceptCode,
+ TaskExitCode: APTR;
+ TaskSigAlloc: ULONG;
+ TaskTrapAlloc: Word;
+//***** System Lists (private!) *******************************
+ MemList,
+ ResourceList,
+ DeviceList,
+ IntrList,
+ LibList,
+ PortList,
+ TaskReady,
+ TaskWait: TList;
+ SoftInts: array[0..4] of TSoftIntList;
+//***** Other Globals ******************************************
+ LastAlert: array[0..3] of LONG;
+ { these next two variables are provided to allow
+ ** system developers to have a rough idea of the
+ ** period of two externally controlled signals --
+ ** the time between vertical blank interrupts and the
+ ** external line rate (which is counted by CIA A's
+ ** "time of day" clock). In general these values
+ ** will be 50 or 60, and may or may not track each
+ ** other. These values replace the obsolete AFB_PAL
+ ** and AFB_50HZ flags.}
+ VBlankFrequency, // (readable)
+ PowerSupplyFrequency: Byte; // (readable)
+ SemaphoreList: TList;
+ { these next two are to be able to kickstart into user ram.
+ ** KickMemPtr holds a singly linked list of MemLists which
+ ** will be removed from the memory list via AllocAbs. If
+ ** all the AllocAbs's succeeded, then the KickTagPtr will
+ ** be added to the rom tag list.}
+ KickMemPtr, // ptr to queue of mem lists
+ KickTagPtr, // ptr to rom tag queue
+ KickCheckSum: APTR; // checksum for mem and tags
+//***** Miscellaneous Stuff *************************************
+ ex_Pad0: Word;
+ ex_LaunchPoint: IPTR;
+ ex_RamLibPrivate: APTR;
+ { The next ULONG contains the system "E" clock frequency,
+ ** expressed in Hertz. The E clock is used as a timebase for
+ ** the Amiga's 8520 I/O chips. (E is connected to "02").
+ ** Typical values are 715909 for NTSC, or 709379 for PAL.}
+ ex_EClockFrequency, // (readable)
+ ex_CacheControl, // Private to CacheControl calls
+ ex_TaskID: ULONG; // Next available task ID
+ ex_Reserved1: array[0..4] of ULONG;
+ ex_MMULock: Pointer; // private
+ ex_Reserved2: array[0..1] of ULONG;
+ ex_DebugFlags: ULONG;
+ { The following list and data element are used
+ exec's low memory handler...}
+ ex_MemHandlers : tMinList; // The handler list
+ ex_MemHandler : Pointer; // Private! handler pointer
+//***** Additional AROS fields **********************************
+ DebugArosBase : PArosSupportBase;
+ end;
+
+{ ***** Bit defines for AttnFlags (see above) ***************************** }
+{ Processors and Co-processors: }
+const
+ AFB_68010 = 0; { also set for 68020 }
+ AFB_68020 = 1; { also set for 68030 }
+ AFB_68030 = 2; { also set for 68040 }
+ AFB_68040 = 3;
+ AFB_68881 = 4; { also set for 68882 }
+ AFB_68882 = 5;
+ AFB_FPU40 = 6; { Set if 68040 FPU }
+ AFB_68060 = 7;
+ AFB_ADDR32 = 14; // AROS extension, CPU has 32-bit addressing
+ AFB_PRIVATE = 15; // see below
+
+ AFF_68010 = 1 shl 0;
+ AFF_68020 = 1 shl 1;
+ AFF_68030 = 1 shl 2;
+ AFF_68040 = 1 shl 3;
+ AFF_68881 = 1 shl 4;
+ AFF_68882 = 1 shl 5;
+ AFF_FPU40 = 1 shl 6;
+ AFF_68060 = 1 shl 7;
+ AFF_ADDR32 = 1 shl 14;
+ AFF_PRIVATE = 1 shl 15;
+{*
+* AFB_PRIVATE is actually FPU presence flag with architecture-specific meaning:
+* m68k - Set if any FPU type detected. AmigaOS-compatible, however considered private.
+* ARM - Set if VFP is present. Considered public.
+* Others - not used.
+*}
+ AFB_FPU = AFB_PRIVATE;
+ AFF_FPU = AFF_PRIVATE ;
+
+//* SysFlags. Private and AROS-specific. */
+ SFF_SoftInt = 1 shl 5; // There is a software interrupt pending
+ SFF_QuantumOver = 1 shl 13; // Task's time slice is over
+
+// AttnResched. AmigaOS(tm)-compatible, but private.
+ ARF_AttnSwitch = 1 shl 7; // Delayed task switch pending
+
+{ ***** Selected flag definitions for Cache manipulation calls ********* }
+
+ CACRF_EnableI = 1 shl 0; // Enable instruction cache
+ CACRF_FreezeI = 1 shl 1; // Freeze instruction cache
+ CACRF_ClearI = 1 shl 3; // Clear instruction cache
+ CACRF_IBE = 1 shl 4; // Instruction burst enable
+ CACRF_EnableD = 1 shl 8; // 68030 Enable data cache
+ CACRF_FreezeD = 1 shl 9; // 68030 Freeze data cache
+ CACRF_ClearD = 1 shl 11; // 68030 Clear data cache
+ CACRF_DBE = 1 shl 12; // 68030 Data burst enable
+ CACRF_WriteAllocate = 1 shl 13; // 68030 Write-Allocate mode (must always be set!)
+ CACRF_InvalidateD = 1 shl 15;
+ CACRF_EnableE = 1 shl 30;
+ CACRF_CopyBack = 1 shl 31;
+
+ DMA_Continue = 1 shl 1; // Continuation flag for CachePreDMA
+ DMA_NoModify = 1 shl 2; // Set if DMA does not update memory
+ DMA_ReadFromRAM = 1 shl 3; // Set if DMA goes *FROM* RAM to device
+
+{*
+ * Runtime debug output flags, MorphOS-compatible.
+ * Most of them are reserved for now.
+ *}
+ EXECDEBUGF_INITRESIDENT = $00000001; // Single resident initialization
+ EXECDEBUGF_INITCODE = $00000002; // Kickstart initialization
+ EXECDEBUGF_FINDRESIDENT = $00000004; // Resident search
+ EXECDEBUGF_CREATELIBRARY = $00000010; // Library creation
+ EXECDEBUGF_SETfunction = $00000020; // Library function patching
+ EXECDEBUGF_NEWSETfunction = $00000040;
+ EXECDEBUGF_CHIPRAM = $00000080;
+ EXECDEBUGF_ADDTASK = $00000100; // Task creation
+ EXECDEBUGF_REMTASK = $00000200; // Task removal
+ EXECDEBUGF_GETTASKATTR = $00000400;
+ EXECDEBUGF_SETTASKATTR = $00000800;
+ EXECDEBUGF_EXCEPTHANDLER = $00001000;
+ EXECDEBUGF_ADDDOSNODE = $00002000;
+ EXECDEBUGF_PCI = $00004000;
+ EXECDEBUGF_RAMLIB = $00008000;
+ EXECDEBUGF_NOLOGSERVER = $00010000;
+ EXECDEBUGF_NOLOGWINDOW = $00020000;
+ EXECDEBUGF_LOGFILE = $00040000;
+ EXECDEBUGF_LOGKPRINTF = $00080000;
+ EXECDEBUGF_PERMMEMTRACK = $00100000;
+ EXECDEBUGF_MEMTRACK = $00200000;
+ EXECDEBUGF_CYBERGUARDDEADLY = $00400000;
+ EXECDEBUGF_LOGEXTENDED = $00800000;
+ EXECDEBUGF_LOADSEG = $01000000;
+ EXECDEBUGF_UNLOADSEG = $02000000;
+ EXECDEBUGF_PPCSTART = $04000000;
+ EXECDEBUGF_CGXDEBUG = $08000000;
+ EXECDEBUGF_INVZEROPAGE = $10000000;
+ EXECDEBUGF_INIT = $40000000; // Generic system startup
+ EXECDEBUGF_LOG = $80000000;
+
+// The base node in an AVL tree. Embed this within your object a-la exec ListNode
+type
+ PPAVLNode = ^PAVLNode;
+ PAVLNode = ^TAVLNode;
+ TAVLNode = record
+ avl_link: array[0..1] of PAVLNode;
+ avl_parent: PAVLNode;
+ avl_balance: LONG;
+ end;
+ AVLKey = Pointer;
+
+ PAVLNODECOMP = ^AVLNODECOMP;
+ AVLNODECOMP = APTR;
+ PAVLKEYCOMP = ^AVLKEYCOMP;
+ AVLKEYCOMP = APTR;
+
+
+const
+// Magic constants for RawDoFmt() anv VNewRawDoFmt() to be given as PutChProc
+ RAWFMTFUNC_STRING = 0; // Output to string given in PutChData
+ RAWFMTFUNC_SERIAL = 1; // Output to debug log (usually serial port)
+ RAWFMTFUNC_COUNT = 2; // Just count characters, PutChData is a pointer to the counter (ULONG *)
+
+// function headers
+function AbortIO(IORequest: PIORequest): LongInt; syscall AOS_ExecBase 80;
+procedure AddDevice(Device: PDevice); syscall AOS_ExecBase 72;
+procedure AddHead(List: PList; Node: PNode); syscall AOS_ExecBase 40;
+procedure AddIntServer(IntNumber: ULONG; Interrupt_: PInterrupt); syscall AOS_ExecBase 28;
+procedure AddLibrary(Library_: PLibrary); syscall AOS_ExecBase 66;
+procedure AddMemHandler(MemHandler: PInterrupt); syscall AOS_ExecBase 129;
+procedure AddMemList(Size: ULONG; Attributes: ULONG; Pri: LongInt; Base: APTR; const Name: STRPTR); syscall AOS_ExecBase 103;
+procedure AddPort(Port: PMsgPort); syscall AOS_ExecBase 59;
+function AddResetCallback(ResetCallback: PInterrupt): LongBool; syscall AOS_ExecBase 167;
+procedure AddResource(Resource: APTR); syscall AOS_ExecBase 81;
+procedure AddSemaphore(SigSem: PSignalSemaphore); syscall AOS_ExecBase 100;
+procedure AddTail(List: PList; Node: PNode); syscall AOS_ExecBase 41;
+function AddTask(Task: PTask; const InitialPC: APTR; const FinalPC: APTR): PTask; syscall AOS_ExecBase 47; deprecated;
+procedure Alert(AlertNum: ULONG); syscall AOS_ExecBase 18;
+function AllocAbs(ByteSize: ULONG; Location: APTR): APTR; syscall AOS_ExecBase 34;
+function Allocate(FreeList: PMemHeader; ByteSize: ULONG): PMemHeader; syscall AOS_ExecBase 31;
+function AllocEntry(Entry: PMemList): PMemList; syscall AOS_ExecBase 37;
+function AllocMem(ByteSize: ULONG; Requirements: ULONG): APTR; syscall AOS_ExecBase 33;
+function AllocPooled(PoolHeader: APTR; MemSize: ULONG): APTR; syscall AOS_ExecBase 118;
+function AllocSignal(SignalNum: LongInt): ShortInt; syscall AOS_ExecBase 55;
+function AllocTrap(TrapNum: LongInt): LongInt; syscall AOS_ExecBase 57;
+function AllocVec(ByteSize: ULONG; Requirements: ULONG): APTR; syscall AOS_ExecBase 114;
+function AllocVecPooled(Pool: APTR; Size: ULONG): APTR; syscall AOS_ExecBase 149;
+function AttemptSemaphore(SigSem: PSignalSemaphore): ULONG; syscall AOS_ExecBase 96;
+function AttemptSemaphoreShared(SigSem: PSignalSemaphore): ULONG; syscall AOS_ExecBase 120;
+function AvailMem(Requirements: ULONG): ULONG; syscall AOS_ExecBase 36;
+function AVL_AddNode(Root: PPAVLNode; Node: PAVLNode; Func: PAVLNODECOMP): PAVLNode; syscall AOS_ExecBase 139;
+function AVL_FindFirstNode(Root: PAVLNode): PAVLNode; syscall AOS_ExecBase 147;
+function AVL_FindLastNode(Root: PAVLNode): PAVLNode; syscall AOS_ExecBase 148;
+function AVL_FindNode(Root: PPAVLNode; Key: AVLKey; Func: PAVLNODECOMP): PAVLNode; syscall AOS_ExecBase 142;
+function AVL_FindPrevNodeByAddress(Node: PAVLNode): PAVLNode; syscall AOS_ExecBase 143;
+function AVL_FindPrevNodeByKey(Node: PAVLNode; Key: AVLKey): PAVLNode; syscall AOS_ExecBase 144;
+function AVL_FindNextNodeByAddress(Node: PAVLNode): PAVLNode; syscall AOS_ExecBase 145;
+function AVL_FindNextNodeByKey(Node: PAVLNode; Key: AVLKey): PAVLNode; syscall AOS_ExecBase 146;
+function AVL_RemNodeByAddress(Root: PPAVLNode; Node: PAVLNode): PAVLNode; syscall AOS_ExecBase 140;
+function AVL_RemNodeByKey(Root: PPAVLNode; Key: AVLKey; Func: PAVLNODECOMP): PAVLNode; syscall AOS_ExecBase 141;
+procedure CacheClearE(Address: APTR; Length: ULONG; Caches: ULONG); syscall AOS_ExecBase 107;
+procedure CacheClearU;syscall AOS_ExecBase 106;
+function CacheControl(CacheBits: ULONG; CacheMask: ULONG): ULONG; syscall AOS_ExecBase 108;
+procedure CachePostDMA(const Address: APTR; var Length: ULONG; Flags: ULONG); syscall AOS_ExecBase 128;
+function CachePreDMA(const Address: APTR; var Length: ULONG; Flags: ULONG): APTR; syscall AOS_ExecBase 127;
+procedure Cause(Interrupt_: PInterrupt); syscall AOS_ExecBase 30;
+function CheckIO(IORequest: PIORequest): PIORequest; syscall AOS_ExecBase 78;
+procedure ChildFree(Tid: ULONG); syscall AOS_ExecBase 123;
+function ChildOrphan(Tid: ULONG): ULONG; syscall AOS_ExecBase 124;
+function ChildStatus(Tid: ULONG): ULONG; syscall AOS_ExecBase 125;
+function ChildWait(Tid: ULONG): IPTR; syscall AOS_ExecBase 126;
+procedure CloseDevice(IORequest: PIORequest); syscall AOS_ExecBase 75;
+procedure CloseLibrary(Library_: PLibrary); syscall AOS_ExecBase 69;
+procedure ColdReboot; syscall AOS_ExecBase 121;
+procedure CopyMem(const Source: APTR; Dest: APTR; Size: ULONG); syscall AOS_ExecBase 104;
+procedure CopyMemQuick(const Source: APTR; Dest: APTR; Size: ULONG); syscall AOS_ExecBase 105;
+function CreateIORequest(const IOReplyPort: PMsgPort; Size: ULONG): APTR; syscall AOS_ExecBase 109;
+function CreateMsgPort: PMsgPort; syscall AOS_ExecBase 111;
+function CreatePool(Requirements: ULONG; PuddleSize: ULONG; ThreshSize: ULONG): APTR; syscall AOS_ExecBase 116;
+procedure Deallocate(FreeList: PMemHeader; MemoryBlock: APTR; ByteSize: ULONG); syscall AOS_ExecBase 32;
+procedure Debug(Flags: ULONG); syscall AOS_ExecBase 19;
+procedure DeleteIORequest(IORequest: APTR); syscall AOS_ExecBase 110;
+procedure DeleteMsgPort(Port: PMsgPort); syscall AOS_ExecBase 112;
+procedure DeletePool(PoolHeader: APTR); syscall AOS_ExecBase 117;
+procedure Disable; syscall AOS_ExecBase 20;
+procedure Dispatch; syscall AOS_ExecBase 10;
+function DoIO(IORequest: PIORequest): LongInt; syscall AOS_ExecBase 76;
+procedure Enable; syscall AOS_ExecBase 21;
+procedure Enqueue(List: PList; Node: PNode); syscall AOS_ExecBase 45;
+procedure ExecFreeMem(MemoryBlock: APTR; ByteSize: ULONG); syscall AOS_ExecBase 35;
+procedure ExecInsert(List: PList; Node: PNode; Pred: PNode); syscall AOS_ExecBase 39;
+procedure ExecException; syscall AOS_ExecBase 11;
+function FindName(List: PList; const Name: PChar): PNode; syscall AOS_ExecBase 46;
+function FindPort(const Name: STRPTR): PMsgPort; syscall AOS_ExecBase 65;
+function FindResident(const Name: PChar): PResident; syscall AOS_ExecBase 16;
+function FindSemaphore(const SigSem: STRPTR): PSignalSemaphore; syscall AOS_ExecBase 99;
+function FindTask(const Name: STRPTR): PTask; syscall AOS_ExecBase 49;
+procedure Forbid; syscall AOS_ExecBase 22;
+procedure FreeEntry(Entry: PMemList); syscall AOS_ExecBase 38;
+procedure FreePooled(PoolHeader: APTR; Memory: APTR; MemSize: ULONG); syscall AOS_ExecBase 119;
+procedure FreeSignal(SignalNum: LongInt); syscall AOS_ExecBase 56;
+procedure FreeTrap(TrapNum: LongInt); syscall AOS_ExecBase 58;
+procedure FreeVec(MemoryBlock: APTR); syscall AOS_ExecBase 115;
+procedure FreeVecPooled(Pool: APTR; Memory: APTR); syscall AOS_ExecBase 150;
+function GetCC: Word; syscall AOS_ExecBase 88;
+function GetMsg(Port: PMsgPort): PMessage; syscall AOS_ExecBase 62;
+procedure InitCode(StartClass: ULONG; Version: ULONG); syscall AOS_ExecBase 12;
+function InitResident(const Resident_: PResident; SegList: ULONG): PResident; syscall AOS_ExecBase 17;
+procedure InitSemaphore(SigSem: PSignalSemaphore); syscall AOS_ExecBase 93;
+procedure InitStruct(const InitTable: APTR; Memory: APTR; Size: ULONG); syscall AOS_ExecBase 13;
+procedure MakeFunctions(const Target: APTR; const FunctionArray: CONST_APTR; const FuncDispBase: CONST_APTR); syscall AOS_ExecBase 15;
+function MakeLibrary(const FuncInit: APTR; const StructInit: APTR; LibInit: TProcedure; DataSize: ULONG; SegList: ULONG): PLibrary; syscall AOS_ExecBase 14;
+function NewAddTask(Task: PTask; InitialPC: APTR; FinalPC: APTR; TagList: PTagItem): APTR; syscall AOS_ExecBase 152;
+function NewAddTaskA(TagList: PTagItem): APTR; syscall AOS_ExecBase 153;
+function NewAllocEntry(Entry: PMemList; var Return_Entry: PMemList; var Return_Flags: ULONG): LongBool; syscall AOS_ExecBase 151;
+function NewStackSwap(NewStack: PStackSwapStruct; Function_: APTR; Args: PStackSwapArgs): IPTR; syscall AOS_ExecBase 134;
+function ObtainQuickVector(InterruptCode: APTR): ULONG; syscall AOS_ExecBase 131;
+procedure ObtainSemaphore(SigSem: PSignalSemaphore); syscall AOS_ExecBase 94;
+procedure ObtainSemaphoreList(SigSem: PList); syscall AOS_ExecBase 97;
+procedure ObtainSemaphoreShared(SigSem: PSignalSemaphore); syscall AOS_ExecBase 113;
+function OldOpenLibrary(const LibName: STRPTR): PLibrary; syscall AOS_ExecBase 68; deprecated;
+function OpenDevice(const DevName: STRPTR; UnitNumber: ULONG; IORequest: PIORequest; Flags: ULONG): LongInt; syscall AOS_ExecBase 74;
+function OpenLibrary(const LibName: STRPTR; Version: ULONG): PLibrary; syscall AOS_ExecBase 92;
+function OpenResource(const ResName: STRPTR): APTR; syscall AOS_ExecBase 83;
+procedure Permit; syscall AOS_ExecBase 23;
+function PrepareContext(Task: PTask; EntryPoint: APTR; FallBack: APTR; TagList: PTagItem): LongBool; syscall AOS_ExecBase 6;
+function Procure(SigSem: PSignalSemaphore; BidMsg: PSemaphoreMessage): ULONG; syscall AOS_ExecBase 90;
+procedure PutMsg(Port: PMsgPort; Message: PMessage); syscall AOS_ExecBase 61;
+function RawDoFmt(const FormatString: STRPTR; const DataStream: APTR; PutChProc: TProcedure; PutChData: APTR): APTR; syscall AOS_ExecBase 87;
+procedure RawIOInit; syscall AOS_ExecBase 84;
+function RawMayGetChar: LongInt; syscall AOS_ExecBase 85;
+procedure RawMayPutChar(Cha: Byte); syscall AOS_ExecBase 86;
+function ReadGayle: ULONG; syscall AOS_ExecBase 136;
+procedure ReleaseSemaphore(SigSem: PSignalSemaphore); syscall AOS_ExecBase 95;
+procedure ReleaseSemaphoreList(SigSem: PList); syscall AOS_ExecBase 98;
+procedure RemDevice(Device: PDevice); syscall AOS_ExecBase 73;
+function RemHead(List: PList): PNode; syscall AOS_ExecBase 43;
+procedure RemIntServer(IntNumber: ULONG; Interrupt_: PInterrupt); syscall AOS_ExecBase 29;
+procedure RemLibrary(Library_: PLibrary); syscall AOS_ExecBase 67;
+procedure RemMemHandler(MemHandler: PInterrupt); syscall AOS_ExecBase 130;
+procedure Remove(Node: PNode); syscall AOS_ExecBase 42;
+procedure RemPort(Port: PMsgPort); syscall AOS_ExecBase 60;
+procedure RemResetCallback(ResetCallback: PInterrupt); syscall AOS_ExecBase 168;
+procedure RemResource(Resource: APTR); syscall AOS_ExecBase 82;
+procedure RemSemaphore(SigSem: PSignalSemaphore); syscall AOS_ExecBase 101;
+function RemTail(List: PList): PNode; syscall AOS_ExecBase 44;
+procedure RemTask(Task: PTask); syscall AOS_ExecBase 48;
+procedure ReplyMsg(Message: PMessage); syscall AOS_ExecBase 63;
+procedure Reschedule(Task: PTask); syscall AOS_ExecBase 8;
+procedure SendIO(IORequest: PIORequest); syscall AOS_ExecBase 77;
+function SetExcept(NewSignals: ULONG; SignalSet: ULONG): ULONG; syscall AOS_ExecBase 52;
+function SetFunction(Library_: PLibrary; FuncOffset: LongInt; NewFunction: TProcedure): APTR; syscall AOS_ExecBase 70;
+function SetIntVector(IntNumber: LongInt; const Interrupt_: PInterrupt): PInterrupt; syscall AOS_ExecBase 27;
+function SetSignal(NewSignals: ULONG; SignalSet: ULONG): ULONG; syscall AOS_ExecBase 51;
+function SetSR(NewSR: ULONG; Mask: ULONG): ULONG; syscall AOS_ExecBase 24;
+function SetTaskPri(Task: PTask; Priority: LongInt): ShortInt; syscall AOS_ExecBase 50;
+function ShutdownA(Action: ULONG): ULONG; syscall AOS_ExecBase 173;
+procedure Signal(Task: PTask; SignalSet: ULONG); syscall AOS_ExecBase 54;
+procedure StackSwap(NewStack: PStackSwapStruct); syscall AOS_ExecBase 122; deprecated;
+procedure SumKickData; syscall AOS_ExecBase 102;
+procedure SumLibrary(Library_: PLibrary); syscall AOS_ExecBase 71;
+function SuperState: APTR; syscall AOS_ExecBase 25;
+function Supervisor(UserFunction: TProcedure): ULONG; syscall AOS_ExecBase 5;
+procedure Switch; syscall AOS_ExecBase 9;
+function TaggedOpenLibrary(Tag: LongInt): APTR; syscall AOS_ExecBase 135;
+function TypeOfMem(const Address: APTR): ULONG; syscall AOS_ExecBase 89;
+procedure UserState(SysStack: APTR); syscall AOS_ExecBase 26;
+procedure Vacate(SigSem: PSignalSemaphore; BidMsg: PSemaphoreMessage); syscall AOS_ExecBase 91;
+function VNewRawDoFmt(const FormatString: STRPTR; PutChProc: TProcedure; PutChData: APTR; VaListStream: PChar): STRPTR; syscall AOS_ExecBase 137;
+function Wait(SignalSet: ULONG): ULONG; syscall AOS_ExecBase 53;
+function WaitIO(IORequest: PIORequest): LongInt; syscall AOS_ExecBase 79;
+function WaitPort(Port: PMsgPort): PMessage; syscall AOS_ExecBase 64;
+
+function BitMask(no :ShortInt): LongInt;
+// C Macros
+procedure SetNodeName(Node: PNode; Name: PChar);
+function GetNodeName(Node: PNode): PChar;
+
+procedure NewList(List: PList);
+function GetHead(List: PList): PNode; inline;
+function GetTail(List: PList): PNode; inline;
+function GetSucc(Node: PNode): PNode; inline;
+function GetPred(Node: PNode): PNode; inline;
+function ListLength(List: PList): Integer;
+
+function IsListEmpty(List: PList): Boolean;
+
+function IsMinListEmpty(List: PMinList): Boolean;
+function IsMsgPortEmpty( mp: pMsgPort): Boolean;
+
+type
+ TNodeProcedure = procedure(Node:PNode); // Procedure for ForEachNode;
+
+procedure ForEachNode(List:PList; NodeProc: TNodeProcedure);
+procedure ForEachNodeSafe(List:PList; NodeProc: TNodeProcedure);
+
+
+implementation
+
+// C Macros
+procedure SetNodeName(Node: PNode; Name: PChar); inline;
+begin
+ if Assigned(Node) then
+ Node^.ln_Name := Name;
+end;
+
+function GetNodeName(Node: PNode): PChar; inline;
+begin
+ if Assigned(Node) then
+ GetNodeName := Node^.ln_Name;
+end;
+
+procedure NewList(List: PList); inline;
+begin
+ if Assigned(List) then
+ begin
+ List^.lh_TailPred := PNode(List);
+ List^.lh_Tail := nil;
+ List^.lh_Head := @List^.lh_Tail;
+ end;
+end;
+
+function GetHead(List: PList): PNode; inline;
+begin
+ GetHead := nil;
+ if Assigned(List) then
+ begin
+ if Assigned(List^.lh_Head^.ln_Succ) then
+ GetHead := List^.lh_Head;
+ end;
+end;
+
+function GetTail(List: PList): PNode; inline;
+begin
+ GetTail := nil;
+ if Assigned(List) then
+ begin
+ if Assigned(List^.lh_TailPred^.ln_Pred) then
+ GetTail := List^.lh_TailPred;
+ end;
+end;
+
+function GetSucc(Node: PNode): PNode; inline;
+begin
+ GetSucc := nil;
+ if Assigned(Node) then
+ if Assigned(Node^.ln_Succ) then
+ if Assigned(Node^.ln_Succ^.ln_Succ) then
+ GetSucc := Node^.ln_Succ;
+end;
+
+function GetPred(Node: PNode): PNode; inline;
+begin
+ GetPred := nil;
+ if Assigned(Node) then
+ if Assigned(Node^.ln_Pred) then
+ if Assigned(Node^.ln_Pred^.ln_Pred) then
+ GetPred := Node^.ln_Pred;
+end;
+
+procedure ForEachNode(List:PList; NodeProc: TNodeProcedure);
+var
+ i: Integer;
+ Node: PNode;
+begin
+ if not Assigned(List) or not Assigned(NodeProc) then
+ Exit;
+ Node := GetHead(List);
+ for i := 0 to ListLength(List) do
+ begin
+ if not Assigned(Node) then
+ Exit;
+ NodeProc(Node);
+ Node := GetSucc(Node);
+ end;
+end;
+
+procedure ForEachNodeSafe(List:PList; NodeProc: TNodeProcedure);
+var
+ i: Integer;
+ Node: PNode;
+ NextNode: PNode;
+begin
+ if not Assigned(List) or not Assigned(NodeProc) then
+ Exit;
+ Node := GetHead(List);
+ if not Assigned(Node) then
+ Exit;
+ while Assigned(Node) do
+ begin
+ if not Assigned(Node) then
+ Exit;
+ NextNode := GetSucc(Node);
+ NodeProc(Node);
+ Node := NextNode;
+ end;
+end;
+
+function ListLength(List: PList): Integer;
+var
+ Current: PNode;
+ Next: PNode;
+begin
+ Current := List^.lh_Head;
+ Next := Current^.ln_Succ;
+ ListLength := 0;
+ if Assigned(Current) and Assigned(Next) then
+ while Next = Current^.ln_Succ do
+ begin
+ Current := Next;
+ Next := Current^.ln_Succ;
+ Inc(ListLength);
+ if (not Assigned(Current)) or (not Assigned(Next)) then
+ Exit;
+ end;
+end;
+
+function IsListEmpty(List: PList): Boolean; inline;
+begin
+ IsListEmpty := True;
+ if Assigned(List) then
+ IsListEmpty := List^.lh_TailPred = PNode(List);
+end;
+
+function IsMinListEmpty(List: PMinList): Boolean;
+begin
+ IsMinListEmpty := True;
+ if Assigned(List) then
+ IsMinListEmpty := List^.mlh_TailPred = PMinNode(List);
+end;
+
+function IsMsgPortEmpty(Mp: PMsgPort): Boolean;
+begin
+ IsMsgPortEmpty := True;
+ if Assigned(mp) then
+ IsMsgPortEmpty := mp^.mp_MsgList.lh_TailPred = PNode(@(mp^.mp_MsgList));
+end;
+
+function BitMask(no :ShortInt): LongInt;
+begin
+ BitMask := 1 shl no;
+end;
+
+end. (* UNIT EXEC *)
+
+
+
+
+
diff --git a/packages/arosunits/src/gadtools.pas b/packages/arosunits/src/gadtools.pas
new file mode 100644
index 0000000000..2ca926b9fd
--- /dev/null
+++ b/packages/arosunits/src/gadtools.pas
@@ -0,0 +1,482 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ gadtools.library 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.
+
+ **********************************************************************}
+
+unit gadtools;
+
+interface
+
+uses
+ exec, intuition, agraphics, utility;
+
+{------------------------------------------------------------------------}
+
+{ The kinds (almost classes) of gadgets in the toolkit. Use these
+ identifiers when calling CreateGadgetA() }
+
+CONST
+ GENERIC_KIND = 0;
+ BUTTON_KIND = 1;
+ CHECKBOX_KIND = 2;
+ INTEGER_KIND = 3;
+ LISTVIEW_KIND = 4;
+ MX_KIND = 5;
+ NUMBER_KIND = 6;
+ CYCLE_KIND = 7;
+ PALETTE_KIND = 8;
+ SCROLLER_KIND = 9;
+{ Kind number 10 is reserved }
+ SLIDER_KIND = 11;
+ STRING_KIND = 12;
+ TEXT_KIND = 13;
+
+ NUM_KINDS = 14;
+
+ GADTOOLSNAME : PChar = 'gadtools.library';
+
+
+{------------------------------------------------------------------------}
+
+{ 'Or' the appropriate set together for your Window IDCMPFlags: }
+
+ ARROWIDCMP = (IDCMP_GADGETUP + IDCMP_GADGETDOWN +
+ IDCMP_INTUITICKS + IDCMP_MOUSEBUTTONS);
+
+ BUTTONIDCMP = (IDCMP_GADGETUP);
+ CHECKBOXIDCMP = (IDCMP_GADGETUP);
+ INTEGERIDCMP = (IDCMP_GADGETUP);
+ LISTVIEWIDCMP = (IDCMP_GADGETUP + IDCMP_GADGETDOWN +
+ IDCMP_MOUSEMOVE + ARROWIDCMP);
+
+ MXIDCMP = (IDCMP_GADGETDOWN);
+ NUMBERIDCMP = 0;
+ CYCLEIDCMP = (IDCMP_GADGETUP);
+ PALETTEIDCMP = (IDCMP_GADGETUP);
+
+{ Use ARROWIDCMP+SCROLLERIDCMP if your scrollers have arrows: }
+ SCROLLERIDCMP = (IDCMP_GADGETUP + IDCMP_GADGETDOWN + IDCMP_MOUSEMOVE);
+ SLIDERIDCMP = (IDCMP_GADGETUP + IDCMP_GADGETDOWN + IDCMP_MOUSEMOVE);
+ STRINGIDCMP = (IDCMP_GADGETUP);
+
+ TEXTIDCMP = 0;
+
+
+{------------------------------------------------------------------------}
+
+{ Generic NewGadget used by several of the gadget classes: }
+
+Type
+ PNewGadget = ^tNewGadget;
+ tNewGadget = record
+ ng_LeftEdge, ng_TopEdge : SmallInt; { gadget position }
+ ng_Width, ng_Height : SmallInt; { gadget size }
+ ng_GadgetText : STRPTR; { gadget label }
+ ng_TextAttr : PTextAttr; { desired font for gadget label }
+ ng_GadgetID : Word; { gadget ID }
+ ng_Flags : LongWord; { see below }
+ ng_VisualInfo : Pointer; { Set to retval of GetVisualInfo() }
+ ng_UserData : Pointer; { gadget UserData }
+ END;
+
+
+{ ng_Flags control certain aspects of the gadget. The first five control
+ the placement of the descriptive text. All larger groups supply a
+ default: }
+
+CONST
+ PLACETEXT_LEFT = $0001; { Right-align text on left side }
+ PLACETEXT_RIGHT = $0002; { Left-align text on right side }
+ PLACETEXT_ABOVE = $0004; { Center text above }
+ PLACETEXT_BELOW = $0008; { Center text below }
+ PLACETEXT_IN = $0010; { Center text on }
+
+ NG_HIGHLABEL = $0020; { Highlight the label }
+
+{------------------------------------------------------------------------}
+
+{ Fill out an array of these and pass that to CreateMenus(): }
+
+Type
+ pNewMenu = ^tNewMenu;
+ tNewMenu = record
+ nm_Type : Byte; { See below }
+ nm_Label : STRPTR; { Menu's label }
+ nm_CommKey : STRPTR; { MenuItem Command Key Equiv }
+ nm_Flags : Word; { Menu OR MenuItem flags (see note) }
+ nm_MutualExclude : Longint; { MenuItem MutualExclude word }
+ nm_UserData : Pointer; { For your own use, see note }
+ END;
+
+const
+{ Needed only by inside IM_ definitions below }
+ MENU_IMAGE = 128;
+
+{ nm_Type determines what each NewMenu structure corresponds to.
+ * for the NM_TITLE, NM_ITEM, and NM_SUB values, nm_Label should
+ * be a text string to use for that menu title, item, or sub-item.
+ * For IM_ITEM or IM_SUB, set nm_Label to point at the Image structure
+ * you wish to use for this item or sub-item.
+ * NOTE: At present, you may only use conventional images.
+ * Custom images created from Intuition image-classes do not work.
+ }
+ NM_TITLE = 1; { Menu header }
+ NM_ITEM = 2; { Textual menu item }
+ NM_SUB = 3; { Textual menu sub-item }
+
+ IM_ITEM = (NM_ITEM OR MENU_IMAGE); { Graphical menu item }
+ IM_SUB = (NM_SUB OR MENU_IMAGE); { Graphical menu sub-item }
+
+{ The NewMenu array should be terminated with a NewMenu whose
+ * nm_Type equals NM_END.
+ }
+ NM_END = 0; { End of NewMenu array }
+
+{ Starting with V39, GadTools will skip any NewMenu entries whose
+ * nm_Type field has the NM_IGNORE bit set.
+ }
+ NM_IGNORE = 64;
+
+
+{ nm_Label should be a text string for textual items, a pointer
+ * to an Image structure for graphical menu items, or the special
+ * constant NM_BARLABEL, to get a separator bar.
+ }
+ NM_BARLABEL = -1;
+
+{ The nm_Flags field is used to fill out either the Menu->Flags or
+ * MenuItem->Flags field. Note that the sense of the MENUENABLED or
+ * ITEMENABLED bit is inverted between this use and Intuition's use,
+ * in other words, NewMenus are enabled by default. The following
+ * labels are provided to disable them:
+ }
+ NM_MENUDISABLED = MENUENABLED;
+ NM_ITEMDISABLED = ITEMENABLED;
+
+{ New for V39: NM_COMMANDSTRING. For a textual MenuItem or SubItem,
+ * point nm_CommKey at an arbitrary string, and set the NM_COMMANDSTRING
+ * flag.
+ }
+ NM_COMMANDSTRING = COMMSEQ;
+
+{ The following are pre-cleared (COMMSEQ, ITEMTEXT, and HIGHxxx are set
+ * later as appropriate):
+ * Under V39, the COMMSEQ flag bit is not cleared, since it now has
+ * meaning.
+ }
+ NM_FLAGMASK = not (COMMSEQ or ITEMTEXT or HIGHFLAGS);
+ NM_FLAGMASK_V39 = not (ITEMTEXT or HIGHFLAGS);
+
+{ You may choose among CHECKIT, MENUTOGGLE, and CHECKED.
+ * Toggle-select menuitems are of type CHECKIT|MENUTOGGLE, along
+ * with CHECKED if currently selected. Mutually exclusive ones
+ * are of type CHECKIT, and possibly CHECKED too. The nm_MutualExclude
+ * is a bit-wise representation of the items excluded by this one,
+ * so in the simplest case (choose 1 among n), these flags would be
+ * ~1, ~2, ~4, ~8, ~16, etc. See the Intuition Menus chapter.
+ }
+
+{ A UserData pointer can be associated with each Menu and MenuItem structure.
+ * The CreateMenus() call allocates space for a UserData after each
+ * Menu or MenuItem (header, item or sub-item). You should use the
+ * GTMENU_USERDATA() or GTMENUITEM_USERDATA() macro to extract it.
+ }
+
+const
+{ These return codes can be obtained through the GTMN_SecondaryError tag }
+ GTMENU_TRIMMED = $00000001; { Too many menus, items, or subitems,
+ * menu has been trimmed down
+ }
+ GTMENU_INVALID = $00000002; { Invalid NewMenu array }
+ GTMENU_NOMEM = $00000003; { Out of memory }
+
+{------------------------------------------------------------------------}
+
+{ Starting with V39, checkboxes and mx gadgets can be scaled to your
+ * specified gadget width/height. Use the new GTCB_Scaled or GTMX_Scaled
+ * tags, respectively. Under V37, and by default in V39, the imagery
+ * is of the following fixed size:
+ }
+
+{ MX gadget default dimensions: }
+ MX_WIDTH = 17;
+ MX_HEIGHT = 9;
+
+{ Checkbox default dimensions: }
+ CHECKBOX_WIDTH = 26;
+ CHECKBOX_HEIGHT = 11;
+
+{------------------------------------------------------------------------}
+
+
+{------------------------------------------------------------------------}
+
+{ Tags for GadTools functions: }
+CONST
+ GT_TagBase = TAG_USER + $80000;
+
+ GTVI_NewWindow = GT_TagBase+1; { Unused }
+ GTVI_NWTags = GT_TagBase+2; { Unused }
+
+ GT_Private0 = GT_TagBase+3; { (private) }
+
+ GTCB_Checked = GT_TagBase+4; { State of checkbox }
+
+ GTLV_Top = GT_TagBase+5; { Top visible one in listview }
+ GTLV_Labels = GT_TagBase+6; { List to display in listview }
+ GTLV_ReadOnly = GT_TagBase+7; { TRUE IF listview is to be
+ read-only }
+ GTLV_ScrollWidth = GT_TagBase+8; { Width of scrollbar }
+
+ GTMX_Labels = GT_TagBase+9; { NULL-terminated array of labels }
+ GTMX_Active = GT_TagBase+10; { Active one in mx gadget }
+
+ GTTX_Text = GT_TagBase+11; { Text to display }
+ GTTX_CopyText = GT_TagBase+12; { Copy text label instead of
+ referencing it }
+
+ GTNM_Number = GT_TagBase+13; { Number to display }
+
+ GTCY_Labels = GT_TagBase+14; { NULL-terminated array of labels }
+ GTCY_Active = GT_TagBase+15; { The active one in the cycle gad }
+
+ GTPA_Depth = GT_TagBase+16; { Number of bitplanes in palette }
+ GTPA_Color = GT_TagBase+17; { Palette color }
+ GTPA_ColorOffset = GT_TagBase+18; { First color to use in palette }
+ GTPA_IndicatorWidth = GT_TagBase+19; { Width of current-color indicator }
+ GTPA_IndicatorHeight = GT_TagBase+20; { Height of current-color indicator }
+
+ GTSC_Top = GT_TagBase+21; { Top visible in scroller }
+ GTSC_Total = GT_TagBase+22; { Total in scroller area }
+ GTSC_Visible = GT_TagBase+23; { Number visible in scroller }
+ GTSC_Overlap = GT_TagBase+24; { Unused }
+
+{ GT_TagBase+25 through GT_TagBase+37 are reserved }
+
+ GTSL_Min = GT_TagBase+38; { Slider min value }
+ GTSL_Max = GT_TagBase+39; { Slider max value }
+ GTSL_Level = GT_TagBase+40; { Slider level }
+ GTSL_MaxLevelLen = GT_TagBase+41; { Max length of printed level }
+ GTSL_LevelFormat = GT_TagBase+42; { Format string for level }
+ GTSL_LevelPlace = GT_TagBase+43; { Where level should be placed }
+ GTSL_DispFunc = GT_TagBase+44; { Callback for number calculation
+ before display }
+
+ GTST_String = GT_TagBase+45; { String gadget's displayed string }
+ GTST_MaxChars = GT_TagBase+46; { Max length of string }
+
+ GTIN_Number = GT_TagBase+47; { Number in integer gadget }
+ GTIN_MaxChars = GT_TagBase+48; { Max number of digits }
+
+ GTMN_TextAttr = GT_TagBase+49; { MenuItem font TextAttr }
+ GTMN_FrontPen = GT_TagBase+50; { MenuItem text pen color }
+
+ GTBB_Recessed = GT_TagBase+51; { Make BevelBox recessed }
+
+ GT_VisualInfo = GT_TagBase+52; { result of VisualInfo call }
+
+ GTLV_ShowSelected = GT_TagBase+53; { show selected entry beneath
+ listview, set tag data = NULL for display-only, or pointer
+ to a string gadget you've created }
+ GTLV_Selected = GT_TagBase+54; { Set ordinal number of selected
+ entry in the list }
+ GT_Reserved0 = GT_TagBase+55; { Reserved }
+ GT_Reserved1 = GT_TagBase+56; { Reserved for future use }
+
+ GTTX_Border = GT_TagBase+57; { Put a border around
+ Text-display gadgets }
+ GTNM_Border = GT_TagBase+58; { Put a border around
+ Number-display gadgets }
+
+ GTSC_Arrows = GT_TagBase+59; { Specify size of arrows for
+ scroller }
+
+ GTMN_Menu = GT_TagBase+60; { Pointer to Menu for use by
+ LayoutMenuItems() }
+ GTMX_Spacing = GT_TagBase+61; { Added to font height to
+ figure spacing between mx choices. Use this instead
+ of LAYOUTA_SPACING for mx gadgets. }
+
+{ New to V37 GadTools. Ignored by GadTools V36 }
+ GTMN_FullMenu = GT_TagBase+62; { Asks CreateMenus() to
+ validate that this is a complete menu structure }
+ GTMN_SecondaryError = GT_TagBase+63; { ti_Data is a pointer
+ to a LongWord to receive error reports from CreateMenus() }
+ GT_Underscore = GT_TagBase+64; { ti_Data points to the symbol
+ that preceeds the character you'd like to underline in a
+ gadget label }
+
+{ New to V39 GadTools. Ignored by GadTools V36 and V37 }
+ GTMN_Checkmark = GT_TagBase+65; { ti_Data is checkmark img to use }
+ GTMN_AmigaKey = GT_TagBase+66; { ti_Data is Amiga-key img to use }
+ GTMN_NewLookMenus = GT_TagBase+67; { ti_Data is boolean }
+
+{ New to V39 GadTools. Ignored by GadTools V36 and V37.
+ * Set to TRUE if you want the checkbox or mx image scaled to
+ * the gadget width/height you specify. Defaults to FALSE,
+ * for compatibility.
+ }
+ GTCB_Scaled = GT_TagBase+68; { ti_Data is boolean }
+ GTMX_Scaled = GT_TagBase+69; { ti_Data is boolean }
+
+ GTPA_NumColors = GT_TagBase+70; { Number of colors in palette }
+
+ GTMX_TitlePlace = GT_TagBase+71; { Where to put the title }
+
+ GTTX_FrontPen = GT_TagBase+72; { Text color in TEXT_KIND gad }
+ GTTX_BackPen = GT_TagBase+73; { Bgrnd color in TEXT_KIND gad }
+ GTTX_Justification = GT_TagBase+74; { See GTJ_#? constants }
+
+ GTNM_FrontPen = GT_TagBase+72; { Text color in NUMBER_KIND gad }
+ GTNM_BackPen = GT_TagBase+73; { Bgrnd color in NUMBER_KIND gad }
+ GTNM_Justification = GT_TagBase+74; { See GTJ_#? constants }
+ GTNM_Format = GT_TagBase+75; { Formatting string for number }
+ GTNM_MaxNumberLen = GT_TagBase+76; { Maximum length of number }
+
+ GTBB_FrameType = GT_TagBase+77; { defines what kind of boxes
+ * DrawBevelBox() renders. See
+ * the BBFT_#? constants for
+ * possible values
+ }
+
+ GTLV_MakeVisible = GT_TagBase+78; { Make this item visible }
+ GTLV_ItemHeight = GT_TagBase+79; { Height of an individual item }
+
+ GTSL_MaxPixelLen = GT_TagBase+80; { Max pixel size of level display }
+ GTSL_Justification = GT_TagBase+81; { how should the level be displayed }
+
+ GTPA_ColorTable = GT_TagBase+82; { colors to use in palette }
+
+ GTLV_CallBack = GT_TagBase+83; { general-purpose listview call back }
+ GTLV_MaxPen = GT_TagBase+84; { maximum pen number used by call back }
+
+ GTTX_Clipped = GT_TagBase+85; { make a TEXT_KIND clip text }
+ GTNM_Clipped = GT_TagBase+85; { make a NUMBER_KIND clip text }
+
+
+{------------------------------------------------------------------------}
+
+{ Justification types for GTTX_Justification and GTNM_Justification tags }
+ GTJ_LEFT = 0;
+ GTJ_RIGHT = 1;
+ GTJ_CENTER = 2;
+
+{------------------------------------------------------------------------}
+
+{ Bevel box frame types for GTBB_FrameType tag }
+ BBFT_BUTTON = 1; { Standard button gadget box }
+ BBFT_RIDGE = 2; { Standard string gadget box }
+ BBFT_ICONDROPBOX = 3; { Standard icon drop box }
+
+{------------------------------------------------------------------------}
+
+{ Typical suggested spacing between "elements": }
+ INTERWIDTH = 8;
+ INTERHEIGHT = 4;
+
+{------------------------------------------------------------------------}
+
+
+{ "NWay" is an old synonym for cycle gadgets }
+ NWAY_KIND = CYCLE_KIND;
+ NWAYIDCMP = CYCLEIDCMP;
+ GTNW_Labels = GTCY_Labels;
+ GTNW_Active = GTCY_Active;
+
+{------------------------------------------------------------------------}
+
+{ These two definitions are obsolete, but are here for backwards
+ * compatibility. You never need to worry about these:
+ }
+ GADTOOLBIT = ($8000);
+{ Use this mask to isolate the user part: }
+ GADTOOLMASK = not (GADTOOLBIT);
+
+{------------------------------------------------------------------------}
+
+{ These definitions are for the GTLV_CallBack tag }
+
+{ The different types of messages that a listview callback hook can see }
+ LV_DRAW = $202; { draw yourself, with state }
+
+{ Possible return values from a callback hook }
+ LVCB_OK = 0; { callback understands this message type }
+ LVCB_UNKNOWN = 1; { callback does not understand this message }
+
+{ states for LVDrawMsg.lvdm_State }
+ LVR_NORMAL = 0; { the usual }
+ LVR_SELECTED = 1; { for selected gadgets }
+ LVR_NORMALDISABLED = 2; { for disabled gadgets }
+ LVR_SELECTEDDISABLED = 8; { disabled and selected }
+
+Type
+{ structure of LV_DRAW messages, object is a (struct Node *) }
+ pLVDrawMsg = ^tLVDrawMsg;
+ tLVDrawMsg = record
+ lvdm_MethodID : LongWord; { LV_DRAW }
+ lvdm_RastPort : PRastPort; { where to render to }
+ lvdm_DrawInfo : PDrawInfo; { useful to have around }
+ lvdm_Bounds : TRectangle; { limits of where to render }
+ lvdm_State : LongWord; { how to render }
+ end;
+
+
+var
+ GadToolsBase: PLibrary;
+
+function CreateContext(GListPtr: PGadget): PGadget; syscall GadToolsBase 19;
+function CreateGadgetA(Kind: LongWord; Gad: PGadget; const ng: PNewGadget; const TagList: PTagItem): PGadget; syscall GadToolsBase 5;
+function CreateMenusA(const NewMenu: PNewMenu; const TagList: PTagItem): PMenu; syscall GadToolsBase 8;
+procedure DrawBevelBoxA(RPort: PRastPort; Left: LongInt; Top: LongInt; Width: LongInt; Height: LongInt; const TagList: PTagItem); syscall GadToolsBase 20;
+procedure FreeGadgets(Gad: PGadget); syscall GadToolsBase 6;
+procedure FreeMenus(Menu: PMenu); syscall GadToolsBase 9;
+procedure FreeVisualInfo(vi: Pointer); syscall GadToolsBase 22;
+function GetVisualInfoA(Screen: PScreen; const TagList: PTagItem): Pointer; syscall GadToolsBase 21;
+procedure GT_BeginRefresh(Win: PWindow); syscall GadToolsBase 15;
+procedure GT_EndRefresh(Win: PWindow; Complete: LongInt); syscall GadToolsBase 16;
+function GT_FilterIMsg(const IMsg: PIntuiMessage): PIntuiMessage; syscall GadToolsBase 17;
+
+FUNCTION GT_GetIMsg(IPort: PMsgPort): PIntuiMessage; syscall GadToolsBase 12;
+FUNCTION GT_PostFilterIMsg(IMsg: PIntuiMessage): PIntuiMessage; syscall GadToolsBase 18;
+procedure GT_RefreshWindow(Win: PWindow; Req: PRequester); syscall GadToolsBase 14;
+procedure GT_ReplyIMsg(IMsg: PIntuiMessage); syscall GadToolsBase 13;
+function GT_GetGadgetAttrsA(Gad: PGadget; Win: PWindow; Req: PRequester; const TagList: PTagItem): LongInt; syscall GadToolsBase 29;
+procedure GT_SetGadgetAttrsA(Gad: PGadget; Win: PWindow; Req: PRequester; const TagList: PTagItem); syscall GadToolsBase 7;
+function LayoutMenuItemsA(FirstItem: PMenuItem; vi: Pointer; const TagList: PTagItem): LongBool; syscall GadToolsBase 10;
+function LayoutMenusA(FirstMenu: PMenu; vi: Pointer; const TagList: PTagItem): LongBool; syscall GadToolsBase 11;
+
+function GTMENUITEM_USERDATA(MenuItem: PMenuItem): Pointer;
+function GTMENU_USERDATA(Menu: PMenu): Pointer;
+
+
+implementation
+
+function GTMENUITEM_USERDATA(menuitem : pMenuItem): pointer;
+begin
+ GTMENUITEM_USERDATA := Pointer((PMenuItem(MenuItem) + 1));
+end;
+
+function GTMENU_USERDATA(Menu: PMenu): Pointer;
+begin
+ GTMENU_USERDATA := Pointer((PMenu(Menu) + 1));
+end;
+
+initialization
+ GadToolsBase := OpenLibrary('gadtools.library', 36);
+finalization
+ CloseLibrary(GadToolsBase);
+end.
+
+
+
+
diff --git a/packages/arosunits/src/hardware.pas b/packages/arosunits/src/hardware.pas
new file mode 100644
index 0000000000..b078280fae
--- /dev/null
+++ b/packages/arosunits/src/hardware.pas
@@ -0,0 +1,588 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ hardware definitions
+
+ 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.
+
+ **********************************************************************}
+
+{
+ registers and bits in the Complex Interface Adapter (CIA) chip
+}
+
+unit hardware;
+
+interface
+
+uses
+ Exec;
+
+{
+ * ciaa is on an ODD Pointer (e.g. the low Byte) -- $bfe001
+ * ciab is on an EVEN Pointer (e.g. the high Byte) -- $bfd000
+ *
+ * do this to get the definitions:
+ * extern struct CIA ciaa, ciab;
+}
+
+Type
+
+ pCIA = ^tCIA;
+ tCIA = record
+ ciapra : Byte;
+ pad0 : Array [0..254] of Byte;
+ ciaprb : Byte;
+ pad1 : Array [0..254] of Byte;
+ ciaddra : Byte;
+ pad2 : Array [0..254] of Byte;
+ ciaddrb : Byte;
+ pad3 : Array [0..254] of Byte;
+ ciatalo : Byte;
+ pad4 : Array [0..254] of Byte;
+ ciatahi : Byte;
+ pad5 : Array [0..254] of Byte;
+ ciatblo : Byte;
+ pad6 : Array [0..254] of Byte;
+ ciatbhi : Byte;
+ pad7 : Array [0..254] of Byte;
+ ciatodlow : Byte;
+ pad8 : Array [0..254] of Byte;
+ ciatodmid : Byte;
+ pad9 : Array [0..254] of Byte;
+ ciatodhi : Byte;
+ pad10 : Array [0..254] of Byte;
+ unusedreg : Byte;
+ pad11 : Array [0..254] of Byte;
+ ciasdr : Byte;
+ pad12 : Array [0..254] of Byte;
+ ciaicr : Byte;
+ pad13 : Array [0..254] of Byte;
+ ciacra : Byte;
+ pad14 : Array [0..254] of Byte;
+ ciacrb : Byte;
+ end;
+
+
+Const
+
+{ interrupt control register bit numbers }
+
+ CIAICRB_TA = 0;
+ CIAICRB_TB = 1;
+ CIAICRB_ALRM = 2;
+ CIAICRB_SP = 3;
+ CIAICRB_FLG = 4;
+ CIAICRB_IR = 7;
+ CIAICRB_SETCLR = 7;
+
+{ control register A bit numbers }
+
+ CIACRAB_START = 0;
+ CIACRAB_PBON = 1;
+ CIACRAB_OUTMODE = 2;
+ CIACRAB_RUNMODE = 3;
+ CIACRAB_LOAD = 4;
+ CIACRAB_INMODE = 5;
+ CIACRAB_SPMODE = 6;
+ CIACRAB_TODIN = 7;
+
+{ control register B bit numbers }
+
+ CIACRBB_START = 0;
+ CIACRBB_PBON = 1;
+ CIACRBB_OUTMODE = 2;
+ CIACRBB_RUNMODE = 3;
+ CIACRBB_LOAD = 4;
+ CIACRBB_INMODE0 = 5;
+ CIACRBB_INMODE1 = 6;
+ CIACRBB_ALARM = 7;
+
+{ interrupt control register masks }
+
+ CIAICRF_TA = $01;
+ CIAICRF_TB = $02;
+ CIAICRF_ALRM = $04;
+ CIAICRF_SP = $08;
+ CIAICRF_FLG = $10;
+ CIAICRF_IR = $80;
+ CIAICRF_SETCLR = $80;
+
+{ control register A register masks }
+
+ CIACRAF_START = $01;
+ CIACRAF_PBON = $02;
+ CIACRAF_OUTMODE = $04;
+ CIACRAF_RUNMODE = $08;
+ CIACRAF_LOAD = $10;
+ CIACRAF_INMODE = $20;
+ CIACRAF_SPMODE = $40;
+ CIACRAF_TODIN = $80;
+
+{ control register B register masks }
+
+ CIACRBF_START = $01;
+ CIACRBF_PBON = $02;
+ CIACRBF_OUTMODE = $04;
+ CIACRBF_RUNMODE = $08;
+ CIACRBF_LOAD = $10;
+ CIACRBF_INMODE0 = $20;
+ CIACRBF_INMODE1 = $40;
+ CIACRBF_ALARM = $80;
+
+{ control register B INMODE masks }
+
+ CIACRBF_IN_PHI2 = 0;
+ CIACRBF_IN_CNT = CIACRBF_INMODE0;
+ CIACRBF_IN_TA = CIACRBF_INMODE1;
+ CIACRBF_IN_CNT_TA = CIACRBF_INMODE0 + CIACRBF_INMODE1;
+
+{
+ * Port definitions -- what each bit in a cia peripheral register is tied to
+ }
+
+{ ciaa port A (0xbfe001) }
+
+ CIAB_GAMEPORT1 = 7; { gameport 1, pin 6 (fire button*) }
+ CIAB_GAMEPORT0 = 6; { gameport 0, pin 6 (fire button*) }
+ CIAB_DSKRDY = 5; { disk ready* }
+ CIAB_DSKTRACK0 = 4; { disk on track 00* }
+ CIAB_DSKPROT = 3; { disk write protect* }
+ CIAB_DSKCHANGE = 2; { disk change* }
+ CIAB_LED = 1; { led light control (0==>bright) }
+ CIAB_OVERLAY = 0; { memory overlay bit }
+
+{ ciaa port B (0xbfe101) -- parallel port }
+
+{ ciab port A (0xbfd000) -- serial and printer control }
+
+ CIAB_COMDTR = 7; { serial Data Terminal Ready* }
+ CIAB_COMRTS = 6; { serial Request to Send* }
+ CIAB_COMCD = 5; { serial Carrier Detect* }
+ CIAB_COMCTS = 4; { serial Clear to Send* }
+ CIAB_COMDSR = 3; { serial Data Set Ready* }
+ CIAB_PRTRSEL = 2; { printer SELECT }
+ CIAB_PRTRPOUT = 1; { printer paper out }
+ CIAB_PRTRBUSY = 0; { printer busy }
+
+{ ciab port B (0xbfd100) -- disk control }
+
+ CIAB_DSKMOTOR = 7; { disk motorr* }
+ CIAB_DSKSEL3 = 6; { disk select unit 3* }
+ CIAB_DSKSEL2 = 5; { disk select unit 2* }
+ CIAB_DSKSEL1 = 4; { disk select unit 1* }
+ CIAB_DSKSEL0 = 3; { disk select unit 0* }
+ CIAB_DSKSIDE = 2; { disk side select* }
+ CIAB_DSKDIREC = 1; { disk direction of seek* }
+ CIAB_DSKSTEP = 0; { disk step heads* }
+
+{ ciaa port A (0xbfe001) }
+
+ CIAF_GAMEPORT1 = 128;
+ CIAF_GAMEPORT0 = 64;
+ CIAF_DSKRDY = 32;
+ CIAF_DSKTRACK0 = 16;
+ CIAF_DSKPROT = 8;
+ CIAF_DSKCHANGE = 4;
+ CIAF_LED = 2;
+ CIAF_OVERLAY = 1;
+
+{ ciaa port B (0xbfe101) -- parallel port }
+
+{ ciab port A (0xbfd000) -- serial and printer control }
+
+ CIAF_COMDTR = 128;
+ CIAF_COMRTS = 64;
+ CIAF_COMCD = 32;
+ CIAF_COMCTS = 16;
+ CIAF_COMDSR = 8;
+ CIAF_PRTRSEL = 4;
+ CIAF_PRTRPOUT = 2;
+ CIAF_PRTRBUSY = 1;
+
+{ ciab port B (0xbfd100) -- disk control }
+
+ CIAF_DSKMOTOR = 128;
+ CIAF_DSKSEL3 = 64;
+ CIAF_DSKSEL2 = 32;
+ CIAF_DSKSEL1 = 16;
+ CIAF_DSKSEL0 = 8;
+ CIAF_DSKSIDE = 4;
+ CIAF_DSKDIREC = 2;
+ CIAF_DSKSTEP = 1;
+
+
+Type
+
+ pAudChannel = ^tAudChannel;
+ tAudChannel = record
+ ac_ptr : Pointer; { ptr to start of waveform data }
+ ac_len : Word; { length of waveform in words }
+ ac_per : Word; { sample period }
+ ac_vol : Word; { volume }
+ ac_dat : Word; { sample pair }
+ ac_pad : Array [0..1] of Word; { unused }
+ end;
+
+ pSpriteDef = ^tSpriteDef;
+ tSpriteDef = record
+ pos : Word;
+ ctl : Word;
+ dataa : Word;
+ datab : Word;
+ end;
+
+ pCustom = ^tCustom;
+ tCustom = record
+ bltddat : Word;
+ dmaconr : Word;
+ vposr : Word;
+ vhposr : Word;
+ dskdatr : Word;
+ joy0dat : Word;
+ joy1dat : Word;
+ clxdat : Word;
+ adkconr : Word;
+ pot0dat : Word;
+ pot1dat : Word;
+ potinp : Word;
+ serdatr : Word;
+ dskbytr : Word;
+ intenar : Word;
+ intreqr : Word;
+ dskpt : Pointer;
+ dsklen : Word;
+ dskdat : Word;
+ refptr : Word;
+ vposw : Word;
+ vhposw : Word;
+ copcon : Word;
+ serdat : Word;
+ serper : Word;
+ potgo : Word;
+ joytest : Word;
+ strequ : Word;
+ strvbl : Word;
+ strhor : Word;
+ strlong : Word;
+ bltcon0 : Word;
+ bltcon1 : Word;
+ bltafwm : Word;
+ bltalwm : Word;
+ bltcpt : Pointer;
+ bltbpt : Pointer;
+ bltapt : Pointer;
+ bltdpt : Pointer;
+ bltsize : Word;
+ pad2d : Byte;
+ bltcon0l : Byte;
+ bltsizv : Word;
+ bltsizh : Word;
+ bltcmod : Word;
+ bltbmod : Word;
+ bltamod : Word;
+ bltdmod : Word;
+ pad34 : Array [0..3] of Word;
+ bltcdat : Word;
+ bltbdat : Word;
+ bltadat : Word;
+ pad3b : Array [0..2] of Word;
+ deniseid : Word;
+ dsksync : Word;
+ cop1lc : Longint;
+ cop2lc : Longint;
+ copjmp1 : Word;
+ copjmp2 : Word;
+ copins : Word;
+ diwstrt : Word;
+ diwstop : Word;
+ ddfstrt : Word;
+ ddfstop : Word;
+ dmacon : Word;
+ clxcon : Word;
+ intena : Word;
+ intreq : Word;
+ adkcon : Word;
+ aud : Array [0..3] of tAudChannel;
+ bplpt : Array [0..7] of Pointer;
+ bplcon0 : Word;
+ bplcon1 : Word;
+ bplcon2 : Word;
+ bplcon3 : Word;
+ bpl1mod : Word;
+ bpl2mod : Word;
+ bplcon4 : Word;
+ clxcon2 : Word;
+ bpldat : Array [0..7] of Word;
+ sprpt : Array [0..7] of Pointer;
+ spr : Array [0..7] of tSpriteDef;
+ color : Array [0..31] of Word;
+ htotal : Word;
+ hsstop : Word;
+ hbstrt : Word;
+ hbstop : Word;
+ vtotal : Word;
+ vsstop : Word;
+ vbstrt : Word;
+ vbstop : Word;
+ sprhstrt : Word;
+ sprhstop : Word;
+ bplhstrt : Word;
+ bplhstop : Word;
+ hhposw : Word;
+ hhposr : Word;
+ beamcon0 : Word;
+ hsstrt : Word;
+ vsstrt : Word;
+ hcenter : Word;
+ diwhigh : Word;
+ padf3 : Array [0..10] of Word;
+ fmode : Word;
+ end;
+
+CONST
+{ defines for beamcon register }
+ VARVBLANK = $1000; { Variable vertical blank enable }
+ LOLDIS = $0800; { long line disable }
+ CSCBLANKEN = $0400; { redirect composite sync }
+ VARVSYNC = $0200; { Variable vertical sync enable }
+ VARHSYNC = $0100; { Variable horizontal sync enable }
+ VARBEAM = $0080; { variable beam counter enable }
+ DISPLAYDUAL = $0040; { use UHRES pointer AND standard pointers }
+ DISPLAYPAL = $0020; { set decodes to generate PAL display }
+ VARCSYNC = $0010; { Variable composite sync enable }
+ CSBLANK = $0008; { Composite blank out to CSY* pin }
+ CSYNCTRUE = $0004; { composite sync TRUE signal }
+ VSYNCTRUE = $0002; { vertical sync TRUE }
+ HSYNCTRUE = $0001; { horizontal sync TRUE }
+
+{ new defines for bplcon0 }
+ USE_BPLCON3 = 1;
+
+{ new defines for bplcon2 }
+ BPLCON2_ZDCTEN = 1024; { colormapped genlock bit }
+ BPLCON2_ZDBPEN = 2048; { use bitplane as genlock bits }
+ BPLCON2_ZDBPSEL0 = 4096; { three bits to select one }
+ BPLCON2_ZDBPSEL1 = 8192; { of 8 bitplanes in }
+ BPLCON2_ZDBPSEL2 = 16384; { ZDBPEN genlock mode }
+
+{ defines for bplcon3 register }
+ BPLCON3_EXTBLNKEN = 1; { external blank enable }
+ BPLCON3_EXTBLKZD = 2; { external blank ored into trnsprncy }
+ BPLCON3_ZDCLKEN = 4; { zd pin outputs a 14mhz clock}
+ BPLCON3_BRDNTRAN = 16; { border is opaque }
+ BPLCON3_BRDNBLNK = 32; { border is opaque }
+
+
+Const
+
+ ADKB_SETCLR = 15; { standard set/clear bit }
+ ADKB_PRECOMP1 = 14; { two bits of precompensation }
+ ADKB_PRECOMP0 = 13;
+ ADKB_MFMPREC = 12; { use mfm style precompensation }
+ ADKB_UARTBRK = 11; { force uart output to zero }
+ ADKB_WORDSYNC = 10; { enable DSKSYNC register matching }
+ ADKB_MSBSYNC = 9; { (Apple GCR Only) sync on MSB for reading }
+ ADKB_FAST = 8; { 1 -> 2 us/bit (mfm), 2 -> 4 us/bit (gcr) }
+ ADKB_USE3PN = 7; { use aud chan 3 to modulate period of ?? }
+ ADKB_USE2P3 = 6; { use aud chan 2 to modulate period of 3 }
+ ADKB_USE1P2 = 5; { use aud chan 1 to modulate period of 2 }
+ ADKB_USE0P1 = 4; { use aud chan 0 to modulate period of 1 }
+ ADKB_USE3VN = 3; { use aud chan 3 to modulate volume of ?? }
+ ADKB_USE2V3 = 2; { use aud chan 2 to modulate volume of 3 }
+ ADKB_USE1V2 = 1; { use aud chan 1 to modulate volume of 2 }
+ ADKB_USE0V1 = 0; { use aud chan 0 to modulate volume of 1 }
+
+ ADKF_SETCLR = $8000;
+ ADKF_PRECOMP1 = $4000;
+ ADKF_PRECOMP0 = $2000;
+ ADKF_MFMPREC = $1000;
+ ADKF_UARTBRK = $0800;
+ ADKF_WORDSYNC = $0400;
+ ADKF_MSBSYNC = $0200;
+ ADKF_FAST = $0100;
+ ADKF_USE3PN = $0080;
+ ADKF_USE2P3 = $0040;
+ ADKF_USE1P2 = $0020;
+ ADKF_USE0P1 = $0010;
+ ADKF_USE3VN = $0008;
+ ADKF_USE2V3 = $0004;
+ ADKF_USE1V2 = $0002;
+ ADKF_USE0V1 = $0001;
+
+ ADKF_PRE000NS = 0; { 000 ns of precomp }
+ ADKF_PRE140NS = ADKF_PRECOMP0; { 140 ns of precomp }
+ ADKF_PRE280NS = ADKF_PRECOMP1; { 280 ns of precomp }
+ ADKF_PRE560NS = ADKF_PRECOMP0 + ADKF_PRECOMP1; { 560 ns of precomp }
+
+
+Const
+
+ HSIZEBITS = 6;
+ VSIZEBITS = 16 - HSIZEBITS;
+ HSIZEMASK = $3F; { 2^6 - 1 }
+ VSIZEMASK = $3FF; { 2^10 - 1 }
+
+ MAXBYTESPERROW = 128;
+
+{ definitions for blitter control register 0 }
+
+ ABC = $80;
+ ABNC = $40;
+ ANBC = $20;
+ ANBNC = $10;
+ NABC = $08;
+ NABNC = $04;
+ NANBC = $02;
+ NANBNC = $01;
+
+{ some commonly used operations }
+
+ A_OR_B = ABC + ANBC + NABC + ABNC + ANBNC + NABNC;
+ A_OR_C = ABC + NABC + ABNC + ANBC + NANBC + ANBNC;
+ A_XOR_C = NABC + ABNC + NANBC + ANBNC;
+ A_TO_D = ABC + ANBC + ABNC + ANBNC;
+
+ BC0B_DEST = 8;
+ BC0B_SRCC = 9;
+ BC0B_SRCB = 10;
+ BC0B_SRCA = 11;
+ BC0F_DEST = $100;
+ BC0F_SRCC = $200;
+ BC0F_SRCB = $400;
+ BC0F_SRCA = $800;
+
+ BC1F_DESC = 2; { blitter descend direction }
+
+ DEST = $100;
+ SRCC = $200;
+ SRCB = $400;
+ SRCA = $800;
+
+ ASHIFTSHIFT = 12; { bits to right align ashift value }
+ BSHIFTSHIFT = 12; { bits to right align bshift value }
+
+{ definations for blitter control register 1 }
+
+ LINEMODE = $01;
+ FILL_OR = $08;
+ FILL_XOR = $10;
+ FILL_CARRYIN = $04;
+ ONEDOT = $02; { one dot per horizontal line }
+ OVFLAG = $20;
+ SIGNFLAG = $40;
+ BLITREVERSE = $02;
+
+ SUD = $10;
+ SUL = $08;
+ AUL = $04;
+
+ OCTANT8 = 24;
+ OCTANT7 = 4;
+ OCTANT6 = 12;
+ OCTANT5 = 28;
+ OCTANT4 = 20;
+ OCTANT3 = 8;
+ OCTANT2 = 0;
+ OCTANT1 = 16;
+
+type
+ PBltNode = ^TBltNode;
+ TBltNode = record
+ n: Pbltnode;
+ function_: Pointer;
+ Stat: Byte;
+ BltSize: SmallInt;
+ BeamSync: smallint;
+ CleanUp: Pointer;
+ end;
+
+Const
+
+{ write definitions for dmaconw }
+
+ DMAF_SETCLR = $8000;
+ DMAF_AUDIO = $000F; { 4 bit mask }
+ DMAF_AUD0 = $0001;
+ DMAF_AUD1 = $0002;
+ DMAF_AUD2 = $0004;
+ DMAF_AUD3 = $0008;
+ DMAF_DISK = $0010;
+ DMAF_SPRITE = $0020;
+ DMAF_BLITTER = $0040;
+ DMAF_COPPER = $0080;
+ DMAF_RASTER = $0100;
+ DMAF_MASTER = $0200;
+ DMAF_BLITHOG = $0400;
+ DMAF_ALL = $01FF; { all dma channels }
+
+{ read definitions for dmaconr }
+{ bits 0-8 correspnd to dmaconw definitions }
+
+ DMAF_BLTDONE = $4000;
+ DMAF_BLTNZERO = $2000;
+
+ DMAB_SETCLR = 15;
+ DMAB_AUD0 = 0;
+ DMAB_AUD1 = 1;
+ DMAB_AUD2 = 2;
+ DMAB_AUD3 = 3;
+ DMAB_DISK = 4;
+ DMAB_SPRITE = 5;
+ DMAB_BLITTER = 6;
+ DMAB_COPPER = 7;
+ DMAB_RASTER = 8;
+ DMAB_MASTER = 9;
+ DMAB_BLITHOG = 10;
+ DMAB_BLTDONE = 14;
+ DMAB_BLTNZERO = 13;
+
+
+Const
+
+ INTB_SETCLR = 15; { Set/Clear control bit. Determines if bits }
+ { written with a 1 get set or cleared. Bits }
+ { written with a zero are allways unchanged }
+ INTB_INTEN = 14; { Master interrupt (enable only ) }
+ INTB_EXTER = 13; { External interrupt }
+ INTB_DSKSYNC = 12; { Disk re-SYNChronized }
+ INTB_RBF = 11; { serial port Receive Buffer Full }
+ INTB_AUD3 = 10; { Audio channel 3 block finished }
+ INTB_AUD2 = 9; { Audio channel 2 block finished }
+ INTB_AUD1 = 8; { Audio channel 1 block finished }
+ INTB_AUD0 = 7; { Audio channel 0 block finished }
+ INTB_BLIT = 6; { Blitter finished }
+ INTB_VERTB = 5; { start of Vertical Blank }
+ INTB_COPER = 4; { Coprocessor }
+ INTB_PORTS = 3; { I/O Ports and timers }
+ INTB_SOFTINT = 2; { software interrupt request }
+ INTB_DSKBLK = 1; { Disk Block done }
+ INTB_TBE = 0; { serial port Transmit Buffer Empty }
+
+
+ INTF_SETCLR = $8000;
+ INTF_INTEN = $4000;
+ INTF_EXTER = $2000;
+ INTF_DSKSYNC = $1000;
+ INTF_RBF = $0800;
+ INTF_AUD3 = $0400;
+ INTF_AUD2 = $0200;
+ INTF_AUD1 = $0100;
+ INTF_AUD0 = $0080;
+ INTF_BLIT = $0040;
+ INTF_VERTB = $0020;
+ INTF_COPER = $0010;
+ INTF_PORTS = $0008;
+ INTF_SOFTINT = $0004;
+ INTF_DSKBLK = $0002;
+ INTF_TBE = $0001;
+
+IMPLEMENTATION
+
+end.
diff --git a/packages/arosunits/src/icon.pas b/packages/arosunits/src/icon.pas
new file mode 100644
index 0000000000..1a4a21e7f8
--- /dev/null
+++ b/packages/arosunits/src/icon.pas
@@ -0,0 +1,301 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ icon.library 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.
+
+ **********************************************************************}
+
+unit icon;
+
+{$mode delphi}
+
+interface
+
+uses
+ exec, workbench,utility,amigados, agraphics, intuition;
+//,datatypes;
+
+const
+ ICONNAME : PChar = 'icon.library';
+
+ ICONA_Dummy = TAG_USER + $9000; // Start of icon.library tags
+ ICONA_ErrorCode = ICONA_Dummy + 1; // Errorcode (PLongInt)
+ ICONA_ErrorTagItem = ICONA_Dummy + 75; //Points to the tag item that caused the error (^PTagItem).
+{Global options for IconControlA()}
+ { Screen to use for remapping Workbench icons to (PScreen) }
+ ICONCTRLA_SetGlobalScreen = ICONA_Dummy + 2;
+ ICONCTRLA_GetGlobalScreen = ICONA_Dummy + 3;
+ { Icon color remapping precision; defaults to PRECISION_ICON (LongInt) }
+ ICONCTRLA_SetGlobalPrecision = ICONA_Dummy + 4;
+ ICONCTRLA_GetGlobalPrecision = ICONA_Dummy + 5;
+ { Icon frame size dimensions (PRectange) }
+ ICONCTRLA_SetGlobalEmbossRect = ICONA_Dummy + 6;
+ ICONCTRLA_GetGlobalEmbossRect = ICONA_Dummy + 7;
+ { Render image without frame (BOOL) }
+ ICONCTRLA_SetGlobalFrameless = ICONA_Dummy + 8;
+ ICONCTRLA_GetGlobalFrameless = ICONA_Dummy + 9;
+ { Enable NewIcons support (BOOL) }
+ ICONCTRLA_SetGlobalNewIconsSupport = ICONA_Dummy + 10;
+ ICONCTRLA_GetGlobalNewIconsSupport = ICONA_Dummy + 11;
+ { Enable color icon support (BOOL) }
+ ICONCTRLA_SetGlobalColorIconSupport = ICONA_Dummy + 77;
+ ICONCTRLA_GetGlobalColorIconSupport = ICONA_Dummy + 78;
+ { Set/Get the hook to be called when identifying a file (PHook) }
+ ICONCTRLA_SetGlobalIdentifyHook = ICONA_Dummy + 12;
+ ICONCTRLA_GetGlobalIdentifyHook = ICONA_Dummy + 13;
+ { Set/get the maximum length of a file/drawer name supported
+ by icon.library (LONG). }
+ ICONCTRLA_SetGlobalMaxNameLength = ICONA_Dummy + 67;
+ ICONCTRLA_GetGlobalMaxNameLength = ICONA_Dummy + 68;
+
+{ Per icon local options for IconControlA() }
+ { Get the icon rendering masks (PLANEPTR) }
+ ICONCTRLA_GetImageMask1 = ICONA_Dummy + 14;
+ ICONCTRLA_GetImageMask2 = ICONA_Dummy + 15;
+ { Transparent image color; set to -1 if opaque }
+ ICONCTRLA_SetTransparentColor1 = ICONA_Dummy + 16;
+ ICONCTRLA_GetTransparentColor1 = ICONA_Dummy + 17;
+ ICONCTRLA_SetTransparentColor2 = ICONA_Dummy + 18;
+ ICONCTRLA_GetTransparentColor2 = ICONA_Dummy + 19;
+ { Image color palette (PColorRegister) }
+ ICONCTRLA_SetPalette1 = ICONA_Dummy + 20;
+ ICONCTRLA_GetPalette1 = ICONA_Dummy + 21;
+ ICONCTRLA_SetPalette2 = ICONA_Dummy + 22;
+ ICONCTRLA_GetPalette2 = ICONA_Dummy + 23;
+ { Size of image color palette (LongInt) }
+ ICONCTRLA_SetPaletteSize1 = ICONA_Dummy + 24;
+ ICONCTRLA_GetPaletteSize1 = ICONA_Dummy + 25;
+ ICONCTRLA_SetPaletteSize2 = ICONA_Dummy + 26;
+ ICONCTRLA_GetPaletteSize2 = ICONA_Dummy + 27;
+ { Image data; one by per pixel (PBYTE) }
+ ICONCTRLA_SetImageData1 = ICONA_Dummy + 28;
+ ICONCTRLA_GetImageData1 = ICONA_Dummy + 29;
+ ICONCTRLA_SetImageData2 = ICONA_Dummy + 30;
+ ICONCTRLA_GetImageData2 = ICONA_Dummy + 31;
+ { Render image without frame (BOOL) }
+ ICONCTRLA_SetFrameless = ICONA_Dummy + 32;
+ ICONCTRLA_GetFrameless = ICONA_Dummy + 33;
+ { Enable NewIcons support (BOOL) }
+ ICONCTRLA_SetNewIconsSupport = ICONA_Dummy + 34;
+ ICONCTRLA_GetNewIconsSupport = ICONA_Dummy + 35;
+ { Icon aspect ratio (PBYTE) }
+ ICONCTRLA_SetAspectRatio = ICONA_Dummy + 36;
+ ICONCTRLA_GetAspectRatio = ICONA_Dummy + 37;
+ { Icon dimensions; valid only for palette mapped icon images (LongInt) }
+ ICONCTRLA_SetWidth = ICONA_Dummy + 38;
+ ICONCTRLA_GetWidth = ICONA_Dummy + 39;
+ ICONCTRLA_SetHeight = ICONA_Dummy + 40;
+ ICONCTRLA_GetHeight = ICONA_Dummy + 41;
+ { Check whether the icon is palette mapped (PLongInt). }
+ ICONCTRLA_IsPaletteMapped = ICONA_Dummy + 42;
+ { Get the screen the icon is attached to (^PScreen). }
+ ICONCTRLA_GetScreen = ICONA_Dummy + 43;
+ { Check whether the icon has a real select image (PLongInt). }
+ ICONCTRLA_HasRealImage2 = ICONA_Dummy + 44;
+ { Check whether the icon is of the NewIcon type (PLongInt). }
+ ICONCTRLA_IsNewIcon = ICONA_Dummy + 79;
+ { Check whether this icon was allocated by icon.library
+ or if consists solely of a statically allocated
+ struct DiskObject. (PLongInt).}
+ ICONCTRLA_IsNativeIcon = ICONA_Dummy + 80;
+
+{ Icon Aspect Handling}
+
+ { Icon aspect ratio is not known. }
+ ICON_ASPECT_RATIO_UNKNOWN = 0;
+
+{ Tags for use with GetIconTagList() }
+
+ { Default icon type to retrieve (LongInt) }
+ ICONGETA_GetDefaultType = ICONA_Dummy+45;
+ { Retrieve default icon for the given name (PChar) }
+ ICONGETA_GetDefaultName = ICONA_Dummy + 46;
+ { Return a default icon if the requested icon
+ file cannot be found (BOOL).}
+ ICONGETA_FailIfUnavailable = ICONA_Dummy + 47;
+ { If possible, retrieve a palette mapped icon (BOOL). }
+ ICONGETA_GetPaletteMappedIcon = ICONA_Dummy + 48;
+ { Set if the icon returned is a default icon (PLongBool). }
+ ICONGETA_IsDefaultIcon = ICONA_Dummy + 49;
+ { Remap the icon to the default screen, if possible (BOOL). }
+ ICONGETA_RemapIcon = ICONA_Dummy + 50;
+ { Generate icon image masks (BOOL). }
+ ICONGETA_GenerateImageMasks = ICONA_Dummy + 51;
+ { Label text to be assigned to the icon (PChar). }
+ ICONGETA_Label = ICONA_Dummy + 52;
+ { Screen to remap the icon to (PScreen). }
+ ICONGETA_Screen = ICONA_Dummy + 69;
+
+{ Tags for use with PutIconTagList() }
+
+ { Notify Workbench of the icon being written (BOOL) }
+ ICONPUTA_NotifyWorkbench = ICONA_Dummy + 53;
+ { Store icon as the default for this type (LongInt) }
+ ICONPUTA_PutDefaultType = ICONA_Dummy + 54;
+ { Store icon as a default for the given name (PChar) }
+ ICONPUTA_PutDefaultName = ICONA_Dummy + 55;
+ { When storing a palette mapped icon, don't save the
+ the original planar icon image with the file. Replace
+ it with a tiny replacement image.}
+ ICONPUTA_DropPlanarIconImage = ICONA_Dummy + 56;
+ { Don't write the chunky icon image data to disk. }
+ ICONPUTA_DropChunkyIconImage = ICONA_Dummy + 57;
+ { Don't write the NewIcons tool types to disk. }
+ ICONPUTA_DropNewIconToolTypes = ICONA_Dummy + 58;
+ { If this tag is enabled, the writer will examine the
+ icon image data to find out whether it can compress
+ it more efficiently. This may take extra time and
+ is not generally recommended.}
+ ICONPUTA_OptimizeImageSpace = ICONA_Dummy + 59;
+ { Don't write the entire icon file back to disk,
+ only change the do^.do_CurrentX/do^.do_CurrentY
+ members.}
+ ICONPUTA_OnlyUpdatePosition = ICONA_Dummy + 72;
+ { Before writing a palette mapped icon back to disk,
+ icon.library will make sure that the original
+ planar image data is stored in the file. If you
+ don't want that to happen, set this option to
+ FALSE. This will allow you to change the planar icon
+ image data written back to disk.}
+ ICONPUTA_PreserveOldIconImages = ICONA_Dummy + 84;
+
+{ For use with the file identification hook. }
+type
+ PIconIdentifyMsg = ^TIconIdentifyMsg;
+ TIconIdentifyMsg = record
+ { Libraries that are already opened for your use. }
+ iim_SysBase : PLibrary;
+ iim_DOSBase : PLibrary;
+ iim_UtilityBase : PLibrary;
+ iim_IconBase : PLibrary;
+ { File context information. }
+ iim_FileLock : BPTR; // Lock on the object to return an icon for.
+ iim_ParentLock : BPTR; // Lock on the object's parent directory, if available.
+ iim_FIB : PFileInfoBlock;// Already initialized for you.
+ iim_FileHandle : BPTR; // If non-NULL, pointer to the file to examine,
+ // positioned right at the first byte, ready
+ // for you to use.
+ iim_Tags : PTagItem; // Tags passed to GetIconTagList().
+ end;
+
+{ Tags for use with DupDiskObjectA() }
+const
+ ICONDUPA_DuplicateDrawerData = ICONA_Dummy + 60; // Duplicate do_DrawerData
+ ICONDUPA_DuplicateImages = ICONA_Dummy + 61; // Duplicate the Image structures.
+ ICONDUPA_DuplicateImageData = ICONA_Dummy + 62; // Duplicate the image data (Image->ImageData) itself.
+ ICONDUPA_DuplicateDefaultTool = ICONA_Dummy + 63; // Duplicate the default tool.
+ ICONDUPA_DuplicateToolTypes = ICONA_Dummy + 64; // Duplicate the tool types list.
+ ICONDUPA_DuplicateToolWindow = ICONA_Dummy + 65; // Duplicate the tool window.
+ ICONDUPA_ActivateImageData = ICONA_Dummy + 82;{ If the icon to be duplicated is in fact a palette mapped
+ icon which has never been set up to be displayed on the
+ screen, turn the duplicate into that palette mapped icon.}
+
+{ Tags for use with DrawIconStateA() and GetIconRectangleA(). }
+ ICONDRAWA_DrawInfo = ICONA_Dummy + 66; // Drawing information to use (PDrawInfo).
+ ICONDRAWA_Frameless = ICONA_Dummy + 70; // Draw the icon without the surrounding frame (BOOL).
+ ICONDRAWA_EraseBackground = ICONA_Dummy + 71; // Erase the background before drawing a frameless icon (BOOL).
+ ICONDRAWA_Borderless = ICONA_Dummy + 83; // Draw the icon without the surrounding border and frame (BOOL).
+
+{ Reserved tags; don't use! }
+ ICONA_Reserved1 = ICONA_Dummy + 73;
+ ICONA_Reserved2 = ICONA_Dummy + 74;
+ ICONA_Reserved3 = ICONA_Dummy + 76;
+ ICONA_Reserved4 = ICONA_Dummy + 81;
+ ICONA_Reserved5 = ICONA_Dummy + 85;
+ ICONA_Reserved6 = ICONA_Dummy + 86;
+ ICONA_Reserved7 = ICONA_Dummy + 87;
+ ICONA_Reserved8 = ICONA_Dummy + 88;
+{ The last Tag}
+ ICONA_LAST_TAG = ICONA_Dummy + 88;
+
+
+var
+ IconBase: PLibrary;
+
+function AddFreeList(FreeList: PFreeList; const Mem: APTR; Size: ULONG): BOOL; syscall IconBase 12;
+function BumpRevision(NewName: PChar; const OldName: PChar): PChar; syscall IconBase 18;
+function DeleteDiskObject(const Name: PChar): BOOL; syscall IconBase 23;
+function FindToolType(const ToolTypeArray: PPChar; const TypeName: STRPTR): STRPTR; syscall IconBase 16;
+procedure FreeDiskObject(DiskObj: PDiskObject); syscall IconBase 15;
+procedure FreeFreeList(FreeList: PFreeList); syscall IconBase 9;
+function GetDefDiskObject(Typ: LongInt): PDiskObject; syscall IconBase 20;
+function GetDiskObject(const Name: STRPTR): PDiskObject; syscall IconBase 13;
+function GetDiskObjectNew(const Name : PChar): PDiskObject; syscall IconBase 22;
+function MatchToolValue(const TypeString: PChar; const Value: PChar): BOOL; syscall IconBase 17;
+function PutDefDiskObject(const Icon: PDiskObject): BOOL; syscall IconBase 21;
+function PutDiskObject(const Name: STRPTR; const Icon: PDiskObject): BOOL; syscall IconBase 14;
+
+{ version 44 }
+function DupDiskObjectA(const Icon: PDiskObject; const Tags: PTagItem): PDiskObject; syscall IconBase 25;
+function IconControlA(Icon: PDiskObject; const Tags: PTagItem): ULONG; syscall IconBase 26;
+procedure DrawIconStateA(Rp: PRastPort; const Icon: PDiskObject; const Label_: STRPTR;
+ LeftEdge: LongInt; TopEdge: LongInt; State: ULONG; const Tags: PTagItem); syscall IconBase 27;
+function GetIconRectangleA(Rp: PRastPort; const Icon: PDiskObject; const Label_: PChar;
+ Rect: PRectangle; const Tags: PTagItem): BOOL; syscall IconBase 28;
+function NewDiskObject(Type_: ULONG): PDiskObject; syscall IconBase 29;
+function GetIconTagList(const Name: STRPTR; const Tags: PTagItem): PDiskObject; syscall IconBase 30;
+function PutIconTagList(const Name: STRPTR; const Icon: PDiskObject; const Tags: PTagItem): BOOL; syscall IconBase 31;
+function LayoutIconA(Icon: PDiskObject; Screen: PScreen; Tags: PTagItem): BOOL; syscall IconBase 32;
+procedure ChangeToSelectedIconColor(Cr: Pointer); syscall IconBase 33; //TODO: pColorRegister // 33
+
+{macros}
+function PACK_ICON_ASPECT_RATIO(Num, Den: LongInt): LongInt;
+procedure UNPACK_ICON_ASPECT_RATIO(Aspect: LongInt; out Num, Den: LongInt);
+
+type
+ TToolTypeArray= array of string;
+
+function GetToolTypes(Filename: string): TToolTypeArray;
+
+
+implementation
+
+function GetToolTypes(Filename: string): TToolTypeArray;
+var
+ DObj: PDiskObject;
+ Tooltype: PPChar;
+ Idx: Integer;
+begin
+ SetLength(Result, 0);
+ DObj := GetDiskObject(PChar(FileName));
+ if not Assigned(Dobj) then
+ Exit;
+ Tooltype := DObj^.do_Tooltypes;
+ while Assigned(ToolType^) do
+ begin
+ Idx := Length(Result);
+ SetLength(Result, Idx + 1);
+ Result[Idx] := ToolType^;
+ Inc(ToolType);
+ end;
+ FreeDiskObject(DObj);
+end;
+
+function PACK_ICON_ASPECT_RATIO(Num, Den: LongInt): LongInt;
+begin
+ PACK_ICON_ASPECT_RATIO := (Num shl 4) or Den;
+end;
+
+procedure UNPACK_ICON_ASPECT_RATIO(Aspect: LongInt; out Num, Den: LongInt);
+begin
+ Num := (Aspect shr 4) and $F;
+ Den := Aspect and $15;
+end;
+
+initialization
+ IconBase := OpenLibrary(ICONNAME, 40);
+finalization
+ CloseLibrary(IconBase);
+end.
+
+
+
+
diff --git a/packages/arosunits/src/iffparse.pas b/packages/arosunits/src/iffparse.pas
new file mode 100644
index 0000000000..942f13cb8d
--- /dev/null
+++ b/packages/arosunits/src/iffparse.pas
@@ -0,0 +1,278 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ iffparse.library 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.
+
+ **********************************************************************}
+
+unit iffparse;
+
+interface
+
+{$mode objfpc}
+
+uses exec, clipboard, utility;
+
+
+const
+ IFFPARSENAME : PChar = 'iffparse.library';
+
+{
+ * Struct associated with an active IFF stream.
+ * "iff_Stream" is a value used by the client's read/write/seek functions -
+ * it will not be accessed by the library itself and can have any value
+ * (could even be a pointer or a BPTR).
+ }
+Type
+ PIFFHandle = ^TIFFHandle;
+ TIFFHandle = record
+ iff_Stream,
+ iff_Flags : LongWord;
+ iff_Depth : LongInt; { Depth of context stack. }
+ { There are private fields hiding here. }
+ end;
+
+{
+ * Bit masks for "iff_Flags" field.
+ }
+const
+ IFFF_READ = 0; { read mode - default }
+ IFFF_WRITE = 1; { write mode }
+ IFFF_RWBITS = (IFFF_READ + IFFF_WRITE); { read/write bits }
+ IFFF_FSEEK = 2; { forward seek only }
+ IFFF_RSEEK = 4; { random seek }
+ IFFF_RESERVED = $FFFF0000; { Don't touch these bits. }
+
+{
+ * When the library calls your stream handler, you'll be passed a Pointer
+ * to this structure as the "message packet".
+ }
+type
+ PIFFStreamCmd = ^TIFFStreamCmd;
+ TIFFStreamCmd = record
+ sc_Command : LongInt; { Operation to be performed (IFFCMD_) }
+ sc_Buf : Pointer; { Pointer to data buffer }
+ sc_NBytes : LongInt; { Number of bytes to be affected }
+ end;
+{
+ * A node associated with a context on the iff_Stack. Each node
+ * represents a chunk, the stack representing the current nesting
+ * of chunks in the open IFF file. Each context node has associated
+ * local context items in the (private) LocalItems list. The ID, type,
+ * size and scan values describe the chunk associated with this node.
+ }
+ PContextNode = ^TContextNode;
+ TContextNode = record
+ cn_Node : TMinNode;
+ cn_ID,
+ cn_Type,
+ cn_Size, { Size of this chunk }
+ cn_Scan : LongInt; { # of bytes read/written so far }
+ { There are private fields hiding here. }
+ end;
+
+{
+ * Local context items live in the ContextNode's. Each class is identified
+ * by its lci_Ident code and has a (private) purge vector for when the
+ * parent context node is popped.
+ }
+ PLocalContextItem = ^TLocalContextItem;
+ TLocalContextItem = record
+ lci_Node : TMinNode;
+ lci_ID,
+ lci_Type,
+ lci_Ident : LongWord;
+ { There are private fields hiding here. }
+ end;
+
+{
+ * StoredProperty: a local context item containing the data stored
+ * from a previously encountered property chunk.
+ }
+ PStoredProperty = ^TStoredProperty;
+ TStoredProperty = record
+ sp_Size : LongInt;
+ sp_Data : Pointer;
+ end;
+
+{
+ * Collection Item: the actual node in the collection list at which
+ * client will look. The next pointers cross context boundaries so
+ * that the complete list is accessable.
+ }
+ PCollectionItem = ^TCollectionItem;
+ TCollectionItem = record
+ ci_Next : PCollectionItem;
+ ci_Size : LongInt;
+ ci_Data : Pointer;
+ end;
+
+{
+ * Structure returned by OpenClipboard(). You may do CMD_POSTs and such
+ * using this structure. However, once you call OpenIFF(), you may not
+ * do any more of your own I/O to the clipboard until you call CloseIFF().
+ }
+ PClipboardHandle = ^TClipBoardHandle;
+ TClipboardHandle = record
+ cbh_Req : TIOClipReq;
+ cbh_CBport,
+ cbh_SatisfyPort : TMsgPort;
+ end;
+
+{
+ * IFF return codes. Most functions return either zero for success or
+ * one of these codes. The exceptions are the read/write functions which
+ * return positive values for number of bytes or records read or written,
+ * or a negative error code. Some of these codes are not errors per sae,
+ * but valid conditions such as EOF or EOC (end of Chunk).
+ }
+const
+ IFFERR_EOF = -1 ; { Reached logical end of file }
+ IFFERR_EOC = -2 ; { About to leave context }
+ IFFERR_NOSCOPE = -3 ; { No valid scope for property }
+ IFFERR_NOMEM = -4 ; { Internal memory alloc failed}
+ IFFERR_READ = -5 ; { Stream read error }
+ IFFERR_WRITE = -6 ; { Stream write error }
+ IFFERR_SEEK = -7 ; { Stream seek error }
+ IFFERR_MANGLED = -8 ; { Data in file is corrupt }
+ IFFERR_SYNTAX = -9 ; { IFF syntax error }
+ IFFERR_NOTIFF = -10; { Not an IFF file }
+ IFFERR_NOHOOK = -11; { No call-back hook provided }
+ IFF_RETURN2CLIENT = -12; { Client handler normal return}
+
+{
+ MAKE_ID(a,b,c,d) \
+ ((LongWord) (a)<<24 | (LongWord) (b)<<16 | (LongWord) (c)<<8 | (LongWord) (d))
+ }
+{
+ * Universal IFF identifiers.
+ }
+ ID_FORM = 1179603533;
+ ID_LIST = 1279873876;
+ ID_CAT = 1128354848;
+ ID_PROP = 1347571536;
+ ID_NULL = 538976288;
+
+{
+ * Ident codes for universally recognized local context items.
+ }
+ IFFLCI_PROP = 1886547824;
+ IFFLCI_COLLECTION = 1668246636;
+ IFFLCI_ENTRYHANDLER = 1701734500;
+ IFFLCI_EXITHANDLER = 1702389860;
+
+
+{
+ * Control modes for ParseIFF() function.
+ }
+ IFFPARSE_SCAN = 0;
+ IFFPARSE_STEP = 1;
+ IFFPARSE_RAWSTEP = 2;
+
+{
+ * Control modes for StoreLocalItem().
+ }
+ IFFSLI_ROOT = 1; { Store in default context }
+ IFFSLI_TOP = 2; { Store in current context }
+ IFFSLI_PROP = 3; { Store in topmost FORM OR LIST }
+
+{
+ * "Flag" for writing functions. If you pass this value in as a size
+ * to PushChunk() when writing a file, the parser will figure out the
+ * size of the chunk for you. (Chunk sizes >= 2**31 are forbidden by the
+ * IFF specification, so this works.)
+ }
+ IFFSIZE_UNKNOWN = -1;
+
+{
+ * Possible call-back command values. (Using 0 as the value for IFFCMD_INIT
+ * was, in retrospect, probably a bad idea.)
+ }
+ IFFCMD_INIT = 0; { Prepare the stream for a session }
+ IFFCMD_CLEANUP = 1; { Terminate stream session }
+ IFFCMD_READ = 2; { Read bytes from stream }
+ IFFCMD_WRITE = 3; { Write bytes to stream }
+ IFFCMD_SEEK = 4; { Seek on stream }
+ IFFCMD_ENTRY = 5; { You just entered a new context }
+ IFFCMD_EXIT = 6; { You're about to leave a context }
+ IFFCMD_PURGELCI= 7; { Purge a LocalContextItem }
+
+{ Backward compatibility. Don't use these in new code. }
+ IFFSCC_INIT = IFFCMD_INIT;
+ IFFSCC_CLEANUP = IFFCMD_CLEANUP;
+ IFFSCC_READ = IFFCMD_READ;
+ IFFSCC_WRITE = IFFCMD_WRITE;
+ IFFSCC_SEEK = IFFCMD_SEEK;
+
+var IFFParseBase: PLibrary;
+
+function AllocIFF: PIFFHandle; syscall IFFParseBase 5;
+function AllocLocalItem(Typ: LongInt; Id: LongInt; Ident: LongInt; DataSize: LongInt): PLocalContextItem; syscall IFFParseBase 31;
+procedure CloseClipboard(ClipHandle: PClipboardHandle); syscall IFFParseBase 42;
+procedure CloseIFF(Iff: PIFFHandle); syscall IFFParseBase 8;
+function CollectionChunk(Iff: PIFFHandle; Typ: LongInt; Id: LongInt): LongInt; syscall IFFParseBase 23;
+function CollectionChunks(Iff : PIFFHandle;const PropArray: PLongInt; NumPairs: LongInt): LongInt; syscall IFFParseBase 24;
+function CurrentChunk(const Iff: PIFFHandle): PContextNode; syscall IFFParseBase 29;
+function EntryHandler(Iff: PIFFHandle; Typ: LongInt; Id: LongInt; Position: LongInt; Handler: PHook; Obj: Pointer): LongInt; syscall IFFParseBase 17;
+function ExitHandler(Iff: PIFFHandle; Typ: LongInt; Id: LongInt; Position: LongInt; Handler: PHook; Obj: Pointer): LongInt; syscall IFFParseBase 18;
+function FindCollection(const Iff: PIFFHandle; Typ: LongInt; Id: LongInt): PCollectionItem; syscall IFFParseBase 27;
+function FindLocalItem(const Iff: PIFFHandle; Typ: LongInt; Id: LongInt; Ident: LongInt): PLocalContextItem; syscall IFFParseBase 35;
+function FindProp(const Iff: PIFFHandle; Typ: LongInt; Id: LongInt): PStoredProperty; syscall IFFParseBase 26;
+function FindPropContext(const Iff: PIFFHandle): PContextNode; syscall IFFParseBase 28;
+procedure FreeIFF(Iff: PIFFHandle); syscall IFFParseBase 9;
+procedure FreeLocalItem(LocalItem: PLocalContextItem); syscall IFFParseBase 34;
+function GoodID(Id: LongInt): LongInt; syscall IFFParseBase 43;
+function GoodType(Typ: LongInt): LongInt; syscall IFFParseBase 44;
+function IDtoStr(Id: LongInt; Buf: PChar): PChar; syscall IFFParseBase 45;
+procedure InitIFF(Iff: PIFFHandle; Flags: LongInt;const StreamHook: PHook); syscall IFFParseBase 38;
+procedure InitIFFasClip(Iff: PIFFHandle); syscall IFFParseBase 40;
+procedure InitIFFasDOS(Iff: PIFFHandle); syscall IFFParseBase 39;
+function LocalItemData(const LocalItem: PLocalContextItem): Pointer; syscall IFFParseBase 32;
+function OpenClipboard(unitNumber: LongInt): PClipboardHandle; syscall IFFParseBase 41;
+function OpenIFF(Iff: PIFFHandle; rwMode: LongInt): LongInt; syscall IFFParseBase 6;
+function ParentChunk(const contextNode: PContextNode): PContextNode; syscall IFFParseBase 30;
+function ParseIFF(Iff: PIFFHandle; control: LongInt): LongInt; syscall IFFParseBase 7;
+function PopChunk(Iff: PIFFHandle): LongInt; syscall IFFParseBase 15;
+function PropChunk(Iff: PIFFHandle; Typ: LongInt; Id: LongInt): LongInt; syscall IFFParseBase 19;
+function PropChunks(Iff: PIFFHandle;const PropArray: PLongInt; NumPairs: LongInt): LongInt; syscall IFFParseBase 20;
+function PushChunk(Iff: PIFFHandle; Typ: LongInt; Id: LongInt; size: LongInt): LongInt; syscall IFFParseBase 14;
+function ReadChunkBytes(Iff: PIFFHandle; Buf: Pointer; numBytes: LongInt): LongInt; syscall IFFParseBase 10;
+function ReadChunkRecords(Iff: PIFFHandle; Buf: Pointer; bytesPerRecord: LongInt; numRecords: LongInt): LongInt; syscall IFFParseBase 12;
+procedure SetLocalItemPurge(LocalItem: PLocalContextItem;const purgeHook: PHook); syscall IFFParseBase 33;
+function StopChunk(Iff: PIFFHandle; Typ: LongInt; Id: LongInt): LongInt; syscall IFFParseBase 21;
+function StopChunks(Iff: PIFFHandle;const PropArray: PLongInt; NumPairs: LongInt): LongInt; syscall IFFParseBase 22;
+function StopOnExit(Iff: PIFFHandle; Typ: LongInt; Id: LongInt): LongInt; syscall IFFParseBase 25;
+procedure StoreItemInContext(Iff: PIFFHandle; LocalItem: PLocalContextItem; contextNode: PContextNode); syscall IFFParseBase 37;
+function StoreLocalItem(Iff: PIFFHandle; LocalItem: PLocalContextItem; Position: LongInt): LongInt; syscall IFFParseBase 36;
+function WriteChunkBytes(Iff: PIFFHandle;const Buf: Pointer; NumBytes: LongInt): LongInt; syscall IFFParseBase 11;
+function WriteChunkRecords(Iff: PIFFHandle;const Buf: Pointer; BytesPerRecord: LongInt; NumRecords: LongInt): LongInt; syscall IFFParseBase 13;
+
+function Make_ID(str: String): LongInt;
+
+implementation
+
+function Make_ID(str: String): LongInt;
+begin
+ Make_ID:= (LongInt(Ord(Str[1])) shl 24) or
+ (LongInt(Ord(Str[2])) shl 16 ) or
+ (LongInt(Ord(Str[3])) shl 8 ) or (LongInt(Ord(Str[4])));
+end;
+
+initialization
+ IFFParseBase := OpenLibrary(IFFPARSENAME, 0);
+finalization
+ CloseLibrary(IFFParseBase);
+end. (* UNIT IFFPARSE *)
+
+
+
+
+
diff --git a/packages/arosunits/src/inputevent.pas b/packages/arosunits/src/inputevent.pas
new file mode 100644
index 0000000000..c3d0102473
--- /dev/null
+++ b/packages/arosunits/src/inputevent.pas
@@ -0,0 +1,284 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ input event structures
+
+ 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 inputevent;
+
+INTERFACE
+
+uses exec, utility, timer;
+
+const
+
+{------ constants -------------------------------------------------}
+
+{ --- InputEvent.ie_Class --- }
+{ A NOP input event }
+ IECLASS_NULL = $00;
+{ A raw keycode from the keyboard device }
+ IECLASS_RAWKEY = $01;
+{ The raw mouse report from the game port device }
+ IECLASS_RAWMOUSE = $02;
+{ A private console event }
+ IECLASS_EVENT = $03;
+{ A Pointer Position report }
+ IECLASS_POINTERPOS = $04;
+{ A timer event }
+ IECLASS_TIMER = $06;
+{ select button pressed down over a Gadget (address in ie_EventAddress) }
+ IECLASS_GADGETDOWN = $07;
+{ select button released over the same Gadget (address in ie_EventAddress) }
+ IECLASS_GADGETUP = $08;
+{ some Requester activity has taken place. See Codes REQCLEAR and REQSET }
+ IECLASS_REQUESTER = $09;
+{ this is a Menu Number transmission (Menu number is in ie_Code) }
+ IECLASS_MENULIST = $0A;
+{ User has selected the active Window's Close Gadget }
+ IECLASS_CLOSEWINDOW = $0B;
+{ this Window has a new size }
+ IECLASS_SIZEWINDOW = $0C;
+{ the Window pointed to by ie_EventAddress needs to be refreshed }
+ IECLASS_REFRESHWINDOW = $0D;
+{ new preferences are available }
+ IECLASS_NEWPREFS = $0E;
+{ the disk has been removed }
+ IECLASS_DISKREMOVED = $0F;
+{ the disk has been inserted }
+ IECLASS_DISKINSERTED = $10;
+{ the window is about to be been made active }
+ IECLASS_ACTIVEWINDOW = $11;
+{ the window is about to be made inactive }
+ IECLASS_INACTIVEWINDOW = $12;
+{ extended-function pointer position report (V36) }
+ IECLASS_NEWPOINTERPOS = $13;
+{ Help key report during Menu session (V36) }
+ IECLASS_MENUHELP = $14;
+{ the Window has been modified with move, size, zoom, or change (V36) }
+ IECLASS_CHANGEWINDOW = $15;
+
+
+
+{ the last class }
+
+ IECLASS_MAX = $15;
+
+{ --- InputEvent.ie_SubClass --- }
+{ IECLASS_NEWPOINTERPOS }
+{ like IECLASS_POINTERPOS }
+ IESUBCLASS_COMPATIBLE = $00;
+{ ie_EventAddress points to struct IEPointerPixel }
+ IESUBCLASS_PIXEL = $01;
+{ ie_EventAddress points to struct IEPointerTablet }
+ IESUBCLASS_TABLET = $02;
+
+{ pointed to by ie_EventAddress for IECLASS_NEWPOINTERPOS,
+ * and IESUBCLASS_PIXEL.
+ *
+ * You specify a screen and pixel coordinates in that screen
+ * at which you'd like the mouse to be positioned.
+ * Intuition will try to oblige, but there will be restrictions
+ * to positioning the pointer over offscreen pixels.
+ *
+ * IEQUALIFIER_RELATIVEMOUSE is supported for IESUBCLASS_PIXEL.
+ }
+Type
+
+ pIEPointerPixel = ^tIEPointerPixel;
+ tIEPointerPixel = record
+ iepp_Screen : Pointer; { pointer to an open screen }
+ iepp_Position : record
+ x,y : smallint;
+ end;
+ END;
+
+{ pointed to by ie_EventAddress for IECLASS_NEWPOINTERPOS,
+ * and IESUBCLASS_TABLET.
+ *
+ * You specify a range of values and a value within the range
+ * independently for each of X and Y (the minimum value of
+ * the ranges is always normalized to 0).
+ *
+ * Intuition will position the mouse proportionally within its
+ * natural mouse position rectangle limits.
+ *
+ * IEQUALIFIER_RELATIVEMOUSE is not supported for IESUBCLASS_TABLET.
+ }
+
+ pIEPointerTablet = ^tIEPointerTablet;
+ tIEPointerTablet = record
+ iept_Range : record { 0 is min, these are max }
+ x,y : Word;
+ end;
+ iept_Value : record { between 0 AND iept_Range }
+ x,y : Word;
+ end;
+ iept_Pressure : Word; { -128 to 127 (unused, set to 0) }
+ END;
+
+{ The ie_EventAddress of an IECLASS_NEWPOINTERPOS event of subclass
+ * IESUBCLASS_NEWTABLET points at an IENewTablet structure.
+ *
+ *
+ * IEQUALIFIER_RELATIVEMOUSE is not supported for IESUBCLASS_NEWTABLET.
+ }
+
+ pIENewTablet = ^tIENewTablet;
+ tIENewTablet = record
+ { Pointer to a hook you wish to be called back through, in
+ * order to handle scaling. You will be provided with the
+ * width and height you are expected to scale your tablet
+ * to, perhaps based on some user preferences.
+ * If NULL, the tablet's specified range will be mapped directly
+ * to that width and height for you, and you will not be
+ * called back.
+ }
+ ient_CallBack : pHook;
+
+ { Post-scaling coordinates and fractional coordinates.
+ * DO NOT FILL THESE IN AT THE TIME THE EVENT IS WRITTEN!
+ * Your driver will be called back and provided information
+ * about the width and height of the area to scale the
+ * tablet into. It should scale the tablet coordinates
+ * (perhaps based on some preferences controlling aspect
+ * ratio, etc.) and place the scaled result into these
+ * fields. The ient_ScaledX and ient_ScaledY fields are
+ * in screen-pixel resolution, but the origin ( [0,0]-point )
+ * is not defined. The ient_ScaledXFraction and
+ * ient_ScaledYFraction fields represent sub-pixel position
+ * information, and should be scaled to fill a UWORD fraction.
+ }
+ ient_ScaledX, ient_ScaledY,
+ ient_ScaledXFraction, ient_ScaledYFraction : WORD;
+
+ { Current tablet coordinates along each axis: }
+ ient_TabletX, ient_TabletY : ULONG;
+
+ { Tablet range along each axis. For example, if ient_TabletX
+ * can take values 0-999, ient_RangeX should be 1000.
+ }
+ ient_RangeX, ient_RangeY : ULONG;
+
+ { Pointer to tag-list of additional tablet attributes.
+ * See <intuition/intuition.h> for the tag values.
+ }
+ ient_TagList : pTagItem;
+ end;
+
+
+CONST
+{ --- InputEvent.ie_Code --- }
+{ IECLASS_RAWKEY }
+ IECODE_UP_PREFIX = $80;
+ IECODE_KEY_CODE_FIRST = $00;
+ IECODE_KEY_CODE_LAST = $77;
+ IECODE_COMM_CODE_FIRST = $78;
+ IECODE_COMM_CODE_LAST = $7F;
+
+{ IECLASS_ANSI }
+ IECODE_C0_FIRST = $00;
+ IECODE_C0_LAST = $1F;
+ IECODE_ASCII_FIRST = $20;
+ IECODE_ASCII_LAST = $7E;
+ IECODE_ASCII_DEL = $7F;
+ IECODE_C1_FIRST = $80;
+ IECODE_C1_LAST = $9F;
+ IECODE_LATIN1_FIRST = $A0;
+ IECODE_LATIN1_LAST = $FF;
+
+{ IECLASS_RAWMOUSE }
+ IECODE_LBUTTON = $68; { also uses IECODE_UP_PREFIX }
+ IECODE_RBUTTON = $69;
+ IECODE_MBUTTON = $6A;
+ IECODE_NOBUTTON = $FF;
+
+{ IECLASS_EVENT }
+ IECODE_NEWACTIVE = $01; { active input window changed }
+ IECODE_NEWSIZE = $02; { resize of window }
+ IECODE_REFRESH = $03; { refresh of window }
+
+{ IECLASS_REQUESTER Codes }
+{ REQSET is broadcast when the first Requester (not subsequent ones) opens
+ * in the Window
+ }
+ IECODE_REQSET = $01;
+{ REQCLEAR is broadcast when the last Requester clears out of the Window }
+ IECODE_REQCLEAR = $00;
+
+
+{ --- InputEvent.ie_Qualifier --- }
+ IEQUALIFIER_LSHIFT = $0001;
+ IEQUALIFIER_RSHIFT = $0002;
+ IEQUALIFIER_CAPSLOCK = $0004;
+ IEQUALIFIER_CONTROL = $0008;
+ IEQUALIFIER_LALT = $0010;
+ IEQUALIFIER_RALT = $0020;
+ IEQUALIFIER_LCOMMAND = $0040;
+ IEQUALIFIER_RCOMMAND = $0080;
+ IEQUALIFIER_NUMERICPAD = $0100;
+ IEQUALIFIER_REPEAT = $0200;
+ IEQUALIFIER_INTERRUPT = $0400;
+ IEQUALIFIER_MULTIBROADCAST = $0800;
+ IEQUALIFIER_MIDBUTTON = $1000;
+ IEQUALIFIER_RBUTTON = $2000;
+ IEQUALIFIER_LEFTBUTTON = $4000;
+ IEQUALIFIER_RELATIVEMOUSE = $8000;
+
+ IEQUALIFIERB_LSHIFT = 0;
+ IEQUALIFIERB_RSHIFT = 1;
+ IEQUALIFIERB_CAPSLOCK = 2;
+ IEQUALIFIERB_CONTROL = 3;
+ IEQUALIFIERB_LALT = 4;
+ IEQUALIFIERB_RALT = 5;
+ IEQUALIFIERB_LCOMMAND = 6;
+ IEQUALIFIERB_RCOMMAND = 7;
+ IEQUALIFIERB_NUMERICPAD = 8;
+ IEQUALIFIERB_REPEAT = 9;
+ IEQUALIFIERB_INTERRUPT = 10;
+ IEQUALIFIERB_MULTIBROADCAST = 11;
+ IEQUALIFIERB_MIDBUTTON = 12;
+ IEQUALIFIERB_RBUTTON = 13;
+ IEQUALIFIERB_LEFTBUTTON = 14;
+ IEQUALIFIERB_RELATIVEMOUSE = 15;
+
+
+{------ InputEvent ------------------------------------------------}
+
+ type
+ pInputEvent = ^tInputEvent;
+ tInputEvent = record
+ ie_NextEvent : pInputEvent;
+ ie_Class : BYTE;
+ ie_SubClass : BYTE;
+ ie_Code : WORD;
+ ie_Qualifier : WORD;
+ ie_position : record
+ case longint of
+ 0 : ( ie_xy : record
+ ie_x : smallint;
+ ie_y : smallint;
+ end );
+ 1 : ( ie_addr : APTR );
+ 2 : ( ie_dead : record
+ ie_prev1DownCode : BYTE;
+ ie_prev1DownQual : BYTE;
+ ie_prev2DownCode : BYTE;
+ ie_prev2DownQual : BYTE;
+ end );
+ end;
+ ie_TimeStamp : tTimeVal;
+ end;
+
+IMPLEMENTATION
+
+end.
diff --git a/packages/arosunits/src/intuition.pas b/packages/arosunits/src/intuition.pas
new file mode 100644
index 0000000000..739df4f9f8
--- /dev/null
+++ b/packages/arosunits/src/intuition.pas
@@ -0,0 +1,3695 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ intuition.library 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.
+
+ **********************************************************************}
+unit Intuition;
+
+{$mode objfpc}
+
+{$define INTUI_V36_NAMES_ONLY}
+
+interface
+
+uses
+ Exec, Utility, AGraphics, InputEvent, Timer, Layers, Keymap;
+
+
+type
+{ IntuiText is a series of strings that start with a screen location
+ (always relative to the upper-left corner of something) and then the
+ text of the string. The text is null-terminated.}
+ PIntuiText = ^TIntuiText;
+ TIntuiText = record
+ FrontPen,
+ BackPen: Byte; // the pen numbers for the rendering
+ DrawMode: Byte; // the mode for rendering the text
+ LeftEdge: SmallInt; // relative start location for the text
+ TopEdge: SmallInt; // relative start location for the text
+ ITextFont: PTextAttr; // if nil, you accept the default
+ IText: PChar; // pointer to null-terminated text
+ NextText: PIntuiText; // continuation to TxWrite another text
+ end;
+
+ PStringExtend = ^TStringExtend;
+ TStringExtend = record
+ // display specifications
+ Font: PTextFont; // must be an open Font (not TextAttr)
+ Pens: array[0..1] of Byte; // color of text/background
+ ActivePens: array[0..1] of Byte; // colors when gadget is active
+ // edit specifications
+ InitialModes: LongWord; // initial mode flags, below
+ EditHook: PHook; // IF non-nil, must supply WorkBuffer
+ WorkBuffer: STRPTR; // must be as large as StringInfo.Buffer
+ Reserved: array[0..3] of LongWord; // set to 0
+ end;
+
+{ Data type Border, used for drawing a series of lines which is intended for use as a border drawing, but which may, in fact, be used to render any
+ arbitrary vector shape. The routine DrawBorder sets up the RastPort with the appropriate variables, then does a Move to the first coordinate, then does Draws
+ to the subsequent coordinates. After all the Draws are done, if NextBorder is non-zero we call DrawBorder recursively}
+type
+ PBorder = ^TBorder;
+ TBorder = record
+ LeftEdge,
+ TopEdge: SmallInt; // initial offsets from the origin
+ FrontPen,
+ BackPen: Byte; // pens numbers for rendering
+ DrawMode: Byte; // mode for rendering
+ Count: ShortInt; // number of XY pairs
+ XY: PSmallInt; // vector coordinate pairs rel to LeftTop
+ NextBorder: PBorder; // pointer to any other Border too
+ end;
+
+type
+ PMenuItem = ^TMenuItem;
+ TMenuItem = record
+ NextItem: PMenuItem; // pointer to next in chained list
+ LeftEdge,
+ TopEdge: SmallInt; // position of the select box
+ Width,
+ Height: SmallInt; // dimensions of the select box
+ Flags: Word; // see the defines below
+ MutualExclude: LongInt; // set bits mean this item excludes that
+ ItemFill: APTR; // points to Image, IntuiText, or nil
+ SelectFill: APTR; // points to Image, IntuiText, or nil when this item is pointed to by the cursor and the items highlight mode HIGHIMAGE is selected, this alternate image will be displayed
+ Command: Char; // only if appliprog sets the COMMSEQ flag
+ SubItem: PMenuItem; // if non-nil, DrawMenu shows "->"
+ NextSelect: Word; // The NextSelect field represents the menu number of next selected item (when user has drag-selected several items)
+ end;
+const
+ // Flags set by the Application
+ CHECKIT = 1 shl 0; // whether to check this item if selected
+ ITEMTEXT = 1 shl 1; // set if textual, clear if graphical item
+ COMMSEQ = 1 shl 2; // set if there's an command sequence
+ MENUTOGGLE = 1 shl 3; // set to toggle the check of a menu item
+ ITEMENABLED = 1 shl 4; // set if this item is enabled
+ // these are the SPECIAL HIGHLIGHT FLAG state meanings
+ HIGHIMAGE = $0000; // use the user's "select image"
+ HIGHCOMP = 1 shl 6; // highlight by complementing the selectbox
+ HIGHBOX = 1 shl 7; // highlight by "boxing" the selectbox
+ HIGHFLAGS = $00C0; // see definitions below for these bits
+ HIGHNONE = $00C0; // don't highlight
+ // Flags set by both Application and intuition
+ Checked = 1 shl 8; // if CHECKIT, then set this when selected
+ // Flags set by Intuition (Read Only)
+ ISDRAWN = 1 shl 12; // this item's subs are currently drawn
+ HIGHITEM = 1 shl 13; // this item is currently highlighted
+ MENUTOGGLED = 1 shl 14; // this item was already toggled
+
+ NOMENU = $001F;
+ NOITEM = $003F;
+ NOSUB = $001F;
+ MENUNULL = $FFFF;
+
+{ these defines are for the COMMSEQ and CHECKIT menu stuff. If CHECKIT,
+ I'll use a generic Width (for all resolutions) for the CheckMark.
+ If COMMSEQ, likewise I'll use this generic stuff}
+ CHECKWIDTH = 19;
+ LOWCHECKWIDTH = 13;
+ COMMWIDTH = 27;
+ LOWCOMMWIDTH = 16;
+
+type
+ PMenu = ^TMenu;
+ TMenu = record
+ NextMenu: PMenu; // same level
+ LeftEdge,
+ TopEdge: SmallInt; // position of the select box
+ Width,
+ Height: SmallInt; // dimensions of the select box
+ Flags: Word; // see flag definitions below (MENUENABLED, MIDRAWN)
+ MenuName: PChar; // text for this Menu Header
+ FirstItem: PMenuItem; // pointer to first in chain
+ JazzX, // these mysteriously-named variables are for internal use only
+ JazzY,
+ BeatX,
+ BeatY: SmallInt;
+ end;
+
+const
+ // FLAGS SET BY BOTH THE APPLIPROG AND INTUITION
+ MENUENABLED = 1 shl 0; // whether or not this menu is enabled
+ // FLAGS SET BY INTUITION }
+ MIDRAWN = 1 shl 8; // this menu's items are currently drawn
+
+type
+ PGadget = ^TGadget;
+ TGadget = record
+ NextGadget: PGadget; // next gadget in the list
+
+ LeftEdge,
+ TopEdge: SmallInt; // "hit box" of gadget
+ Width,
+ Height: SmallInt; // "hit box" of gadget
+
+ Flags: Word; // see below for list of defines GFLG_*
+ Activation: Word; // see below for list of defines GACT_*
+ GadgetType: Word; // see below for defines GTYP_*
+
+ GadgetRender: APTR; // appliprog can specify that the Gadget be rendered as either as Border
+ // or an Image. This variable points to which (or equals nil if there's nothing to be rendered about this Gadget)
+ SelectRender: APTR; // appliprog can specify "highlighted" imagery rather than algorithmic this can point to either Border or Image data
+ GadgetText: PIntuiText; // text for this gadget
+
+ MutualExclude: IPTR; // obsolete
+
+ SpecialInfo: APTR; // pointer to a structure of special data required by Proportional, String and LongInt Gadgets
+ GadgetID: Word; // user-definable ID field
+ UserData: APTR; // ptr to general purpose User data (ignored by In)
+ end;
+
+ PExtGadget = ^TExtGadget;
+ TExtGadget = record
+ // The first fields match struct Gadget exactly
+ NextGadget: PExtGadget; // Matches struct Gadget
+ LeftEdge, TopEdge, // Matches struct Gadget
+ Width, Height: SmallInt; // Matches struct Gadget
+ Flags, // Matches struct Gadget
+ Activation, // Matches struct Gadget
+ GadgetType: Word; // Matches struct Gadget
+ GadgetRender, // Matches struct Gadget
+ SelectRender: APTR; // Matches struct Gadget
+ GadgetText: PIntuiText; // Matches struct Gadget
+ MutualExclude: IPTR; // Matches struct Gadget
+ SpecialInfo: APTR; // Matches struct Gadget
+ GadgetID: Word; // Matches struct Gadget
+ UserData: APTR; // Matches struct Gadget
+
+ // These fields only exist if GFLG_EXTENDED is set
+ MoreFlags: LongWord; // see GMORE_* flags below
+ BoundsLeftEdge, // Bounding extent for gadget, valid
+ BoundsTopEdge, // only if GMORE_BOUNDS is set. The
+ BoundsWidth, // GFLG_RELxxx flags affect these
+ BoundsHeight: SmallInt; // coordinates as well.
+ end;
+const
+// Gadget.Flags values
+ // combinations in these bits describe the highlight technique to be used
+
+ GFLG_GADGHCOMP = $0000; // Complement the select box
+ GFLG_GADGHBOX = 1 shl 0; // Draw a box around the image
+ GFLG_GADGHIMAGE = 1 shl 1; // Blast in this alternate image
+ GFLG_GADGHNONE = $0003; // don't highlight
+ GFLG_GADGHIGHBITS = $0003;
+ GFLG_GADGIMAGE = 1 shl 2; // set IF GadgetRender AND SelectRender point to an Image structure, clear if they point to Border structures
+ { combinations in these next two bits specify to which corner the gadget's Left & Top coordinates are relative. If relative to Top/Left,
+ these are "normal" coordinates (everything is relative to something in this universe).
+ Gadget positions and dimensions are relative to the window or requester which contains the gadget}
+ GFLG_RELBOTTOM = 1 shl 3; // vert. pos. is relative to bottom edge
+ GFLG_RELRIGHT = 1 shl 4; // horiz. pos. is relative to right edge
+ GFLG_RELWIDTH = 1 shl 5; // width is relative to req/window
+ GFLG_RELHEIGHT = 1 shl 6; // height is relative to req/window
+ GFLG_SELECTED = 1 shl 7; // you may initialize AND look at this
+ GFLG_DISABLED = 1 shl 8; // the GFLG_DISABLED flag is initialized by you and later set by Intuition according to your calls to On/OffGadget(). It specifies whether or not this Gadget is currently disabled from being selected
+ GFLG_TABCYCLE = 1 shl 9; // (string OR custom) gadget participates in cycling activation with Tab or Shift-Tab
+ GFLG_STRINGEXTEND = 1 shl 10; // this String Gadget has StringExtend
+ GFLG_IMAGEDISABLE = 1 shl 11; // Gadget's image knows how to do disabled rendering
+ GFLG_LABELITEXT = $0000; // GadgetText points to IntuiText
+ GFLG_LABELSTRING = 1 shl 12; // GadgetText points to (PChar)
+ GFLG_LABELIMAGE = 1 shl 13; // GadgetText points to Image (object)
+ GFLG_LABELMASK = $3000;
+ GFLG_RELSPECIAL = 1 shl 14; // custom gadget has special relativity. Gadget box values are absolutes, but can be changed via the GM_LAYOUT method.
+ GFLG_EXTENDED = 1 shl 15; // Gadget is extended
+
+{GFLG_RELSPECIAL allows custom gadget implementors to
+ make gadgets whose position and size depend in an arbitrary way
+ on their window's dimensions. The GM_LAYOUT method will be invoked
+ for such a gadget (or any other GREL_xxx gadget) at suitable times,
+ such as when the window opens or the window's size changes.
+
+ GFLG_STRINGEXTEND. We discovered that V34 doesn't properly
+ ignore the value we had chosen for the Gadget->Activation flag
+ GACT_STRINGEXTEND. NEVER SET THAT FLAG WHEN RUNNING UNDER V34.
+ The Gadget->Flags bit GFLG_STRINGEXTEND is provided as a synonym which is
+ safe under V34, and equivalent to GACT_STRINGEXTEND under V37.
+ (Note that the two flags are not numerically equal)
+
+ GFLG_IMAGEDISABLE. This flag is automatically set if
+ the custom image of this gadget knows how to do disabled rendering
+ (more specifically, if its IA_SupportsDisable attribute is TRUE).
+ Intuition uses this to defer the ghosting to the image-class,
+ instead of doing it itself (the old compatible way).
+ Do not set this flag yourself - Intuition will do it for you.
+
+ GFLG_EXTENDED. If set, this bit means that the Gadget is actually
+ a struct ExtGadget, with new fields and flags. All V39 boopsi
+ gadgets are ExtGadgets. Never ever attempt to read the extended
+ fields of a gadget if this flag is not set.
+
+ GACT_FOLLOWMOUSE flag, when set, specifies that you want to receive
+ reports on mouse movements while this gadget is active.
+ You probably want to set the GACT_IMMEDIATE flag when using
+ GACT_FOLLOWMOUSE, since that's the only reasonable way you have of
+ learning why Intuition is suddenly sending you a stream of mouse
+ movement events. If you don't set GACT_RELVERIFY, you'll get at
+ least one Mouse Position event.
+ }
+
+// Gadget.Activation flag values
+ GACT_RELVERIFY = 1 shl 0; // Set if you want to verify that the pointer was still over the gadget when the select button was released. Will cause an IDCMP_GADGETUP message to be sent if so.
+ GACT_IMMEDIATE = 1 shl 1; // when set, informs the caller that the gadget was activated when it was activated. This flag works in conjunction with the GACT_RELVERIFY flag
+ GACT_ENDGADGET = 1 shl 2; // when set, tells the system that this gadget, when selected, causes the Requester to be ended. Requesters that are ended are erased and unlinked from the system.
+ GACT_FOLLOWMOUSE = 1 shl 3;
+ // if any of the BORDER flags are set in a Gadget that's included in the Gadget list when a Window is opened, the corresponding Border will be adjusted to make room for the Gadget
+ GACT_RIGHTBORDER = 1 shl 4;
+ GACT_LEFTBORDER = 1 shl 5;
+ GACT_TOPBORDER = 1 shl 6;
+ GACT_BOTTOMBORDER = 1 shl 7;
+ GACT_TOGGLESELECT = 1 shl 8; // this bit for toggle-select mode
+ // should properly be in StringInfo, but aren't
+ GACT_STRINGLEFT = $0000; // NOTE WELL: that this has value zero
+ GACT_STRINGCENTER = 1 shl 9;
+ GACT_STRINGRIGHT = 1 shl 10;
+ GACT_LONGINT = 1 shl 11; // this String Gadget is for Long Ints
+ GACT_ALTKEYMAP = 1 shl 12; // this String has an alternate keymap
+ GACT_STRINGEXTEND = 1 shl 13; // this String Gadget has StringExtend NOTE: NEVER SET GACT_STRINGEXTEND IF YOU ARE RUNNING ON LESS THAN V36! SEE GFLG_STRINGEXTEND (ABOVE) INSTEAD
+ GACT_BOOLEXTEND = 1 shl 13; // this Boolean Gadget has a BoolInfo
+ GACT_ACTIVEGADGET = 1 shl 14; // this gadget is "active". This flag is maintained by Intuition, and you cannot count on its value persisting
+ // while you do something on your program's task. It can only be trusted by people implementing custom gadgets
+ GACT_BORDERSNIFF = 1 shl 15; // neither set nor rely on this bit
+
+// GADGET TYPES
+ {These are the Gadget type definitions for the variable GadgetType
+ gadget number type MUST start from one. NO TYPES OF ZERO ALLOWED.
+ first comes the mask for Gadget flags reserved for Gadget typing}
+ GTYP_GADGETTYPE = $FC00; // all Gadget Global type flags (padded)
+ GTYP_SYSTYPEMASK = $00F0;
+ // system gadgets
+ GTYP_SIZING = $0010;
+ GTYP_WDRAGGING = $0020;
+ GTYP_SDRAGGING = $0030;
+ GTYP_WDEPTH = $0040;
+ GTYP_SDEPTH = $0050;
+ GTYP_WZOOM = $0060;
+ GTYP_SUNUSED = $0070;
+ GTYP_CLOSE = $0080;
+ // application gadgets
+ GTYP_REQGADGET = 1 shl 12; // 1 = this is a Requester Gadget
+ GTYP_GZZGADGET = 1 shl 13; // 1 = for WFLG_GIMMEZEROZERO borders
+ GTYP_SCRGADGET = 1 shl 14; // 1 = ScreenGadget, 0 = WindowGadget
+ GTYP_SYSGADGET = 1 shl 15; // 1 = Allocated by the system, 0 = by app.
+ GTYP_BOOLGADGET = $0001;
+ GTYP_GADGET0002 = $0002;
+ GTYP_PROPGADGET = $0003;
+ GTYP_STRGADGET = $0004;
+ GTYP_CUSTOMGADGET = $0005;
+ GTYP_GTYPEMASK = $0007; //mask you can apply to tell what class of gadget this is. The possible classes follow.
+
+{ Gadgets which have the GFLG_EXTENDED flag set are
+ * actually ExtGadgets, which have more flags. The GMORE_xxx
+ * identifiers describe those flags. For GMORE_SCROLLRASTER, see
+ * important information in the ScrollWindowRaster() autodoc.
+ * NB: GMORE_SCROLLRASTER must be set before the gadget is
+ * added to a window.
+ }
+ GMORE_BOUNDS = 1 shl 0; // ExtGadget has valid Bounds
+ GMORE_GADGETHELP = 1 shl 1; // This gadget responds to gadget help
+ GMORE_SCROLLRASTER = 1 shl 2; // This (custom) gadget uses ScrollRaster
+ GMORE_BOOPSIGADGET = 1 shl 3; // some internal boopsi classes changes the gadget type during execution (ie propgclass), so GTYP_CUSTOMGADGET doesn´t work (dariusb)
+
+type
+ // Bool Gadget This is the special data needed by an Extended Boolean Gadget Typically this structure will be pointed to by the Gadget field SpecialInfo
+ PBoolInfo = ^TBoolInfo;
+ TBoolInfo = record
+ Flags: Word; // defined below (BOOLMASK)
+ Mask: PWord; // bit mask for highlighting and selecting mask must follow the same rules as an Image
+ // plane. It's width and height are determined by the width and height of the gadget's select box. (i.e. Gadget.Width and .Height).
+ Reserved: LongWord; // set to 0
+ end;
+const
+// set BoolInfo.Flags to this flag bit. in the future, additional bits might mean more stuff hanging off of BoolInfo.Reserved.
+ BOOLMASK = 1 shl 0; // extension is for masked gadget
+type
+ // Proportional Gadget this is the special data required by the proportional Gadget typically, this data will be pointed to by the Gadget variable SpecialInfo
+ PPropInfo = ^TPropInfo;
+ TPropInfo = record
+ Flags: Word; // general purpose flag bits (see defines below)
+
+ { You initialize the Pot variables before the Gadget is added to
+ the system. Then you can look here for the current settings
+ any time, even while User is playing with this Gadget. To
+ adjust these after the Gadget is added to the System, use
+ ModifyProp(); The Pots are the actual proportional settings,
+ where a value of zero means zero and a value of MAXPOT means
+ that the Gadget is set to its maximum setting.}
+ HorizPot: Word; // 16-bit FixedPoint horizontal quantity percentage
+ VertPot: Word; // 16-bit FixedPoint vertical quantity percentage
+ { the 16-bit FixedPoint Body variables describe what percentage of
+ the entire body of stuff referred to by this Gadget is actually
+ shown at one time. This is used with the AUTOKNOB routines,
+ to adjust the size of the AUTOKNOB according to how much of
+ the data can be seen. This is also used to decide how far
+ to advance the Pots when User hits the Container of the Gadget.
+ For instance, if you were controlling the display of a 5-line
+ Window of text with this Gadget, and there was a total of 15
+ lines that could be displayed, you would set the VertBody value to
+ (MAXBODY / (TotalLines / DisplayLines)) = MAXBODY / 3.
+ Therefore, the AUTOKNOB would fill 1/3 of the container, and
+ if User hits the Cotainer outside of the knob, the pot would
+ advance 1/3 (plus or minus) If there's no body to show, or
+ the total amount of displayable info is less than the display area,
+ set the Body variables to the MAX. To adjust these after the
+ Gadget is added to the System, use ModifyProp();}
+ HorizBody: Word; // horizontal Body
+ VertBody: Word; // vertical Body
+ // these are the variables that Intuition sets and maintains
+ CWidth: Word; // Container width (with any relativity absoluted)
+ CHeight: Word; // Container height (with any relativity absoluted)
+ HPotRes,
+ VPotRes: Word; // pot increments
+ LeftBorder: Word; // Container borders
+ TopBorder: Word; // Container borders
+ end;
+
+const
+// Flags BITS
+ AUTOKNOB = 1 shl 0; // this flag sez: gimme that old auto-knob NOTE: if you do not use an AUTOKNOB for a proportional gadget,
+ // you are currently limited to using a single Image of your own design: Intuition won't handle a linked list
+ // of images as a proportional gadget knob.
+ FREEHORIZ = 1 shl 1; // IF set, the knob can move horizontally
+ FREEVERT = 1 shl 2; // IF set, the knob can move vertically
+ PROPBORDERLESS = 1 shl 3; // IF set, no border will be rendered
+ KNOBHIT = 1 shl 8; // set when this Knob is hit
+ PROPNEWLOOK = 1 shl 4; // set this IF you want to get the new look
+
+ KNOBHMIN = 6; // minimum horizontal size of the Knob
+ KNOBVMIN = 4; // minimum vertical size of the Knob
+ MAXBODY = $FFFF; // maximum body value
+ MAXPOT = $FFFF; // maximum pot value
+
+type
+ // StringInfo this is the special data required by the string Gadget typically, this data will be pointed to by the Gadget variable SpecialInfo
+ PStringInfo = ^TStringInfo;
+ TStringInfo = record
+ // you initialize these variables, and then Intuition maintains them
+ Buffer: PChar; // the buffer containing the start and final string
+ UndoBuffer: PChar; // optional buffer for undoing current entry
+ BufferPos: SmallInt; // character position in Buffer
+ MaxChars: SmallInt; // max number of chars in Buffer (including #0)
+ DispPos: SmallInt; // Buffer position of first displayed character
+ // Intuition initializes and maintains these variables for you
+ UndoPos: SmallInt; // character position in the undo buffer
+ NumChars: SmallInt; // number of characters currently in Buffer
+ DispCount: SmallInt; // number of whole characters visible in Container
+ CLeft,
+ CTop: SmallInt; // topleft offset of the container
+ { you can initialize this variable before the gadget is submitted to
+ Intuition, and then examine it later to discover what LongInt
+ the user has entered (if the user never plays with the gadget,
+ the value will be unchanged from your initial setting)}
+ Extension: PStringExtend;
+ _LongInt: LongInt;
+ { If you want this Gadget to use your own Console keymapping, you
+ set the ALTKEYMAP bit in the Activation flags of the Gadget, and then
+ set this variable to point to your keymap. If you don't set the
+ ALTKEYMAP, you'll get the standard ASCII keymapping.}
+ AltKeyMap: PKeymap;
+ end;
+
+type
+ PImage = ^TImage;
+ PWindow = ^TWindow;
+ PScreen = ^TScreen;
+// Requesters The following struct is used for standard intuition requesters (not to be mixed up with asl or easy requesters). See intuition.library/Request() for more information.
+ PRequester = ^TRequester;
+ TRequester = record
+ // the ClipRect and BitMap and used for rendering the requester
+ OlderRequest: PRequester;
+ LeftEdge,
+ TopEdge: SmallInt; // dimensions of the entire box
+ Width,
+ Height: SmallInt; // dimensions of the entire box
+ RelLeft,
+ RelTop: SmallInt; // for Pointer relativity offsets
+
+ ReqGadget: PGadget; // First gadget of the requester
+ ReqBorder: PBorder; // First border of the requester
+ ReqText: PIntuiText; // First intuitext of the requester
+
+ Flags: Word; // see definitions below
+ BackFill: Byte; // pen number for back-plane fill before draws
+
+ ReqLayer: PLayer; // Layer in place of clip rect
+
+ ReqPad1: array [0..31] of Byte; // Private
+
+ { If the BitMap plane pointers are non-zero, this tells the system
+ that the image comes pre-drawn (if the appliprog wants to define
+ it's own box, in any shape or size it wants!); this is OK by
+ Intuition as long as there's a good correspondence between
+ the image and the specified Gadgets}
+ ImageBMap: PBitMap; // you may use this to fill the requester with your own image
+ RWindow: PWindow; // window, which the requester belongs to
+ ReqImage: PImage; // corresponds to USEREQIMAGE (see below)
+ ReqPad2: array[0..31] of ShortInt; // PRIVATE
+ end;
+
+{ The Timage.PlanePick and PlaneOnOff variables work much the same way as the equivalent GELS Bob variables. It's a space-saving
+ mechanism for image data. Rather than defining the image data for every plane of the RastPort, you need define data only
+ for the planes that are not entirely zero or one. As you define your Imagery, you will often find that most of the planes
+ ARE just as color selectors. For instance, if you're designing a two-color Gadget to use colors two and three, and the Gadget
+ will reside in a five-plane display, bit plane zero of your imagery would be all ones, bit plane one would have data that
+ describes the imagery, and bit planes two through four would be all zeroes. Using these flags allows you to avoid wasting all
+ that memory in this way: first, you specify which planes you want your data to appear in using the PlanePick variable. For
+ each bit set in the variable, the next "plane" of your image data is blitted to the display. For each bit clear in this
+ variable, the corresponding bit in PlaneOnOff is examined. If that bit is clear, a "plane" of zeroes will be used.
+ If the bit is set, ones will go out instead. So, for our example:
+ Gadget.PlanePick = $02;
+ Gadget.PlaneOnOff = $01;
+ Note that this also allows for generic Gadgets, like the System Gadgets, which will work in any number of bit planes.
+ Note also that if you want an Image that is only a filled rectangle, you can get this by setting PlanePick to zero
+ (pick no planes of data) and set PlaneOnOff to describe the pen color of the rectangle.}
+
+// This is a brief image structure for very simple transfers of image data to a RastPort
+ TImage = record
+ LeftEdge: SmallInt; // starting offset relative to some origin
+ TopEdge: SmallInt; // starting offsets relative to some origin
+ Width: SmallInt; // pixel size (though data is Word-aligned)
+ Height: SmallInt;
+ Depth: SmallInt; // pixel sizes
+ ImageData: PWord; // pointer to the actual Word-aligned bits
+ PlanePick,
+ PlaneOnOff: Byte;
+ NextImage: PImage; // if not nil, Intuition presumes that it points to another Image structure with another Image to be rendered
+ end;
+
+{ If your window sets WA_TabletMessages to TRUE, then it will receive extended IntuiMessages (struct ExtIntuiMessage) whose eim_TabletData
+ field points at a TabletData structure. This structure contains additional information about the input event.}
+ PTabletData = ^TTabletData;
+ TTabletData = record
+ td_XFraction, // Sub-pixel position of tablet, in screen coordinates, scaled to fill a Word fraction:
+ td_YFraction: Word;
+ td_TabletX,
+ td_TabletY: LongWord; // Current tablet coordinates along each axis
+ td_RangeX,
+ td_RangeY: LongWord; // Tablet range along each axis. For example, if td_TabletX can take values 0-999, td_RangeX should be 1000.
+ td_TagList: PTagItem; // Pointer to tag-list of additional tablet attributes. TABLETA_*
+ end;
+
+{ If a tablet driver supplies a hook for ient_CallBack, it will be invoked in the standard hook manner. A0 will point to the Hook
+ itself, A2 will point to the InputEvent that was sent, and A1 will point to a TabletHookData structure. The InputEvent's
+ ie_EventAddress field points at the IENewTablet structure that the driver supplied.
+ Based on the thd_Screen, thd_Width, and thd_Height fields, the driver should scale the ient_TabletX and ient_TabletY fields and store the
+ result in ient_ScaledX, ient_ScaledY, ient_ScaledXFraction, and ient_ScaledYFraction.
+ The tablet hook must currently return NULL. This is the only acceptable return-value.}
+ PTabletHookData = ^TTabletHookData;
+ TTabletHookData = record
+ thd_Screen: PScreen; // Pointer to the active screen: Note: if there are no open screens, thd_Screen will be nil.
+ thd_Width, // thd_Width and thd_Height will then describe an NTSC 64$400 screen. Please scale accordingly.
+ thd_Height: LongWord; // The width and height (measured in pixels of the active screen)that your are to scale to:
+ thd_ScreenChanged: LongInt; // Non-zero if the screen or something about the screen changed since the last time you were invoked:
+ end;
+
+ PIntuiMessage = ^TIntuiMessage;
+ TIntuiMessage = record
+ ExecMessage: TMessage;
+ IClass: LongWord; // the Class bits correspond directly with the IDCMP Flags, except for the special bit LONELYMESSAGE (defined below)
+ Code: Word; // the Code field is for special values like MENU number
+ Qualifier: Word; // the Qualifier field is a copy of the current InputEvent's Qualifier
+ IAddress: APTR; // IAddress contains particular addresses for Intuition functions, like the pointer to the Gadget or the Screen
+
+ MouseX, // when getting mouse movement reports, any event you get will have the the mouse coordinates in these variables.
+ MouseY: SmallInt; // the coordinates are relative to the upper-left corner of your Window (GIMMEZEROZERO notwithstanding)
+ Seconds, // the time values are copies of the current system clock time.
+ Micros: LongWord; // Micros are in units of microseconds, Seconds in seconds.
+
+ IDCMPWindow: PWindow; // the IDCMPWindow variable will always have the Pointer of the Window of this IDCMP
+ SpecialLink: PIntuiMessage; // system-use variable
+ end;
+
+{ All IntuiMessages are now slightly extended. The ExtIntuiMessage
+ structure has an additional field for tablet data, which is usually
+ nil. If a tablet driver which is sending IESUBCLASS_NEWTABLET
+ events is installed in the system, windows with the WA_TabletMessages
+ property set will find that eim_TabletData points to the TabletData
+ structure. Applications must first check that this field is non-NULL;
+ it will be nil for certain kinds of message, including mouse activity
+ generated from other than the tablet (i.e. the keyboard equivalents
+ or the mouse itself).
+ NOTE: This structure is subject to grow in the future. Making
+ assumptions about its size is A BAD IDEA.}
+
+ PExtIntuiMessage = ^TExtIntuiMessage;
+ TExtIntuiMessage = record
+ eim_IntuiMessage: TIntuiMessage;
+ eim_TabletData: PTabletData;
+ end;
+
+ // A data structure common in Intuition processing
+ PIBox = ^TIBox;
+ TIBox = record
+ Left,
+ Top,
+ Width,
+ Height: SmallInt;
+ end;
+
+// Window
+ TWindow = record
+ NextWindow: PWindow; // for the linked list in a screen
+
+ LeftEdge,
+ TopEdge: SmallInt; // screen dimensions of window
+ Width,
+ Height: SmallInt; // screen dimensions of window
+{$ifdef AROS_FLAVOUR_BINCOMPAT}
+ MouseY,
+ MouseX: SmallInt; // relative to upper-left of window
+{$else}
+ MouseX,
+ MouseY: SmallInt; // relative to upper-left of window
+{$endif}
+ MinWidth,
+ MinHeight: SmallInt; // minimum sizes
+ MaxWidth,
+ MaxHeight: Word; // maximum sizes
+
+ Flags: LongWord; // see below for defines
+ MenuStrip: PMenu; // the strip of Menu headers
+ Title: PChar; // the title text for this window
+ FirstRequest: PRequester; // all active Requesters
+ DMRequest: PRequester; // double-click Requester
+ ReqCount: SmallInt; // count of reqs blocking Window
+ WScreen: PScreen; // this Window's Screen
+ RPort: PRastPort; { this Window's very own RastPort }
+ { the border variables describe the window border. If you specify
+ GIMMEZEROZERO when you open the window, then the upper-left of the
+ ClipRect for this window will be upper-left of the BitMap (with correct
+ offsets when in SuperBitMap mode; you MUST select GIMMEZEROZERO when
+ using SuperBitMap). If you don't specify ZeroZero, then you save
+ memory (no allocation of RastPort, Layer, ClipRect and associated
+ Bitmaps), but you also must offset all your writes by BorderTop,
+ BorderLeft and do your own mini-clipping to prevent writing over the
+ system gadgets}
+ BorderLeft,
+ BorderTop,
+ BorderRight,
+ BorderBottom: ShortInt;
+ BorderRPort: PRastPort;
+ { You supply a linked-list of Gadgets for your Window.
+ This list DOES NOT include system gadgets. You get the standard
+ window system gadgets by setting flag-bits in the variable Flags (see
+ the bit definitions below)}
+ FirstGadget: PGadget;
+ Parent,
+ Descendant: PWindow; // these are for opening/closing the windows
+
+ // sprite data iformation for your own Pointer set these AFTER you Open the Window by calling SetPointer()
+ _Pointer: PWord; // sprite data
+ PtrHeight: ShortInt; // sprite height (not including sprite padding)
+ PtrWidth: ShortInt; // sprite width (must be less than or equal to 16)
+ XOffset,
+ YOffset: ShortInt; // sprite offsets
+
+ // the IDCMP Flags and User's and Intuition's Message Ports
+ IDCMPFlags: LongWord; // User-selected flags
+ UserPort,
+ WindowPort: PMsgPort;
+ MessageKey: PIntuiMessage;
+
+ DetailPen,
+ BlockPen: Byte; // for bar/border/gadget rendering
+ CheckMark: PImage; // the CheckMark is a pointer to the imagery that will be used when rendering MenuItems of this Window that want to be checkmarked if this is equal to NULL, you'll get the default imagery
+ ScreenTitle: PChar; // if non-nil, Screen title when Window is active
+
+ { These variables have the mouse coordinates relative to the
+ inner-Window of GIMMEZEROZERO Windows. This is compared with the
+ MouseX and MouseY variables, which contain the mouse coordinates
+ relative to the upper-left corner of the Window, GIMMEZEROZERO
+ notwithstanding}
+ GZZMouseX: SmallInt;
+ GZZMouseY: SmallInt;
+ GZZWidth: SmallInt; // these variables contain the width and height of the inner-Window of GIMMEZEROZERO Windows
+ GZZHeight: SmallInt;
+
+ ExtData: PByte;
+ UserData: PSmallInt; // general-purpose pointer to User data extension
+
+ WLayer: PLayer;
+ IFont: PTextFont;
+
+ MoreFlags: LongWord;
+
+ RelLeftEdge: SmallInt; // relative coordinates of the window to its parent window. If it is
+ RelTopEdge: SmallInt; // a window on the screen then these are the same as LeftEdge and TopEdge.
+
+ FirstChild: PWindow; // pointer to first child
+ PrevChild: PWindow; // if window is a child of a window
+ NextChild: PWindow; // then they are concatenated here.
+ Parent2: PWindow; // parent of this window
+ // Data beyond this point are Intuition Private. DO NOT USE
+ end;
+
+ TScreen = record
+ NextScreen: PScreen; // linked list of screens
+ FirstWindow: PWindow; // linked list Screen's Windows
+
+ LeftEdge,
+ TopEdge: SmallInt; // parameters of the screen
+ Width,
+ Height: SmallInt; // parameters of the screen
+
+{$ifdef AROS_FLAVOUR_BINCOMPAT}
+ MouseY,
+ MouseX: SmallInt; // position relative to upper-left
+{$else}
+ MouseX,
+ MouseY: SmallInt; // position relative to upper-left
+{$endif}
+
+ Flags: Word; // see definitions below
+ Title: PChar; // null-terminated Title text
+ DefaultTitle: PChar; // for Windows without ScreenTitle
+
+ // Bar sizes for this Screen and all Window's in this Screen
+ BarHeight,
+ BarVBorder,
+ BarHBorder,
+ MenuVBorder,
+ MenuHBorder: ShortInt;
+ WBorTop,
+ WBorLeft,
+ WBorRight,
+ WBorBottom: ShortInt;
+
+ Font: PTextAttr; // this screen's default font
+
+ // the display data structures for this Screen (note the prefix S)
+ ViewPort: TViewPort; // describing the Screen's display
+ RastPort: TRastPort; // describing Screen rendering
+ BitMap: TBitMap; // extra copy of RastPort BitMap obsolete
+ LayerInfo: TLayer_Info; // each screen gets a LayerInfo
+
+ // You supply a linked-list of Gadgets for your Screen. This list DOES NOT include system Gadgets. You get the standard system Screen Gadgets by default
+ FirstGadget: PGadget;
+
+ DetailPen,
+ BlockPen: Byte; // for bar/border/gadget rendering
+
+ // the following variable(s) are maintained by Intuition to support the DisplayBeep() color flashing technique
+ SaveColor0: Word;
+ BarLayer: PLayer; // This layer is for the Screen and Menu bars
+ ExtData: Pointer;
+ UserData: Pointer;
+ { general-purpose pointer to User data extension
+ **** Data below this point are SYSTEM PRIVATE ****}
+ end;
+
+const
+// IDCMP Classes
+ // Please refer to the Autodoc for OpenWindow() and to the Rom Kernel Manual for full details on the IDCMP classes.
+ IDCMP_SIZEVERIFY = 1 shl 0;
+ IDCMP_NEWSIZE = 1 shl 1;
+ IDCMP_REFRESHWINDOW = 1 shl 2;
+ IDCMP_MOUSEBUTTONS = 1 shl 3;
+ IDCMP_MOUSEMOVE = 1 shl 4;
+ IDCMP_GADGETDOWN = 1 shl 5;
+ IDCMP_GADGETUP = 1 shl 6;
+ IDCMP_REQSET = 1 shl 7;
+ IDCMP_MENUPICK = 1 shl 8;
+ IDCMP_CLOSEWINDOW = 1 shl 9;
+ IDCMP_RAWKEY = 1 shl 10;
+ IDCMP_REQVERIFY = 1 shl 11;
+ IDCMP_REQCLEAR = 1 shl 12;
+ IDCMP_MENUVERIFY = 1 shl 13;
+ IDCMP_NEWPREFS = 1 shl 14;
+ IDCMP_DISKINSERTED = 1 shl 15;
+ IDCMP_DISKREMOVED = 1 shl 16;
+ IDCMP_WBENCHMESSAGE = 1 shl 17; // System use only
+ IDCMP_ACTIVEWINDOW = 1 shl 18;
+ IDCMP_INACTIVEWINDOW = 1 shl 19;
+ IDCMP_DELTAMOVE = 1 shl 20;
+ IDCMP_VANILLAKEY = 1 shl 21;
+ IDCMP_INTUITICKS = 1 shl 22;
+ IDCMP_IDCMPUPDATE = 1 shl 23; // for notifications from "boopsi" gadgets
+ IDCMP_MENUHELP = 1 shl 24; // for getting help key report during menu session
+ IDCMP_CHANGEWINDOW = 1 shl 25; // for notification of any move/size/zoom/change window
+ IDCMP_GADGETHELP = 1 shl 26;
+ IDCMP_LONELYMESSAGE = 1 shl 31; { the IDCMP Flags do not use this special bit, which is cleared when
+ Intuition sends its special message to the Task, and set when Intuition
+ gets its Message back from the Task. Therefore, I can check here to
+ find out fast whether or not this Message is available for me to send }
+
+// IDCMP Codes
+ // This group of codes is for the IDCMP_CHANGEWINDOW message
+ CWCODE_MOVESIZE = 0; // Window was moved and/or sized
+ CWCODE_DEPTH = 1; // Window was depth-arranged
+ // This group of codes is for the IDCMP_MENUVERIFY function
+ MENUHOT = 1; // IntuiWants verification OR MENUCANCEL
+ MENUCANCEL = 2; // HOT Reply of this cancels Menu operation
+ MENUWAITING = 3; // Intuition simply wants a ReplyMsg() ASAP
+ // These are internal tokens to represent state of verification attempts shown here as a clue.
+ OKOK = 1; // guy didn't care
+ OKABORT = 4; // window rendered question moot
+ OKCANCEL = 2; // window sent cancel reply
+ // This group of codes is for the IDCMP_WBENCHMESSAGE messages
+ WBENCHOPEN = 1;
+ WBENCHCLOSE = 2;
+
+type
+ PNewWindow = ^TNewWindow;
+ TNewWindow = record
+ LeftEdge,
+ TopEdge: SmallInt; // screen dimensions of window
+ Width,
+ Height: SmallInt; // screen dimensions of window
+
+ DetailPen,
+ BlockPen: Byte; // for bar/border/gadget rendering
+
+ IDCMPFlags: LongWord; // User-selected IDCMP flags
+ Flags: LongWord; // see Window struct for defines
+
+ FirstGadget: PGadget; { You supply a linked-list of Gadgets for your Window.
+ This list DOES NOT include system Gadgets. You get the standard
+ system Window Gadgets by setting flag-bits in the variable Flags (see
+ the bit definitions under the Window structure definition)}
+ CheckMark: PImage; { the CheckMark is a pointer to the imagery that will be used when
+ rendering MenuItems of this Window that want to be checkmarked
+ if this is equal to NULL, you'll get the default imagery}
+ Title: PChar; // the title text for this window
+ Screen: PScreen; { the Screen pointer is used only if you've defined a CUSTOMSCREEN and
+ want this Window to open in it. If so, you pass the Pointer of the
+ Custom Screen structure in this variable. Otherwise, this variable
+ is ignored and doesn't have to be initialized.}
+ BitMap: PBitMap; { SUPER_BITMAP Window? If so, put the Pointer of your BitMap structure
+ in this variable. If not, this variable is ignored and doesn't have
+ to be initialized}
+ { the values describe the minimum and maximum sizes of your Windows.
+ these matter only if you've chosen the WINDOWSIZING Gadget option,
+ which means that you want to let the User to change the size of
+ this Window. You describe the minimum and maximum sizes that the
+ Window can grow by setting these variables. You can initialize
+ any one these to zero, which will mean that you want to duplicate
+ the setting for that dimension (if MinWidth == 0, MinWidth will be
+ set to the opening Width of the Window).
+ You can change these settings later using SetWindowLimits().
+ If you haven't asked for a SIZING Gadget, you don't have to
+ initialize any of these variables.}
+ MinWidth,
+ MinHeight: SmallInt; // minimums
+ MaxWidth,
+ MaxHeight: Word; // maximums
+
+ WType: Word; { the type variable describes the Screen in which you want this Window to
+ open. The type value can either be CUSTOMSCREEN or one of the
+ system standard Screen Types such as WBENCHSCREEN. See the
+ type definitions under the Screen structure}
+ end;
+
+
+{ The following structure is the future NewWindow. Compatibility
+ issues require that the size of NewWindow not change.
+ Data in the common part (NewWindow) indicates the the extension
+ fields are being used.
+ NOTE WELL: This structure may be subject to future extension.
+ Writing code depending on its size is not allowed.
+ }
+ PExtNewWindow = ^TExtNewWindow;
+ TExtNewWindow = record
+ LeftEdge,
+ TopEdge: SmallInt;
+ Width,
+ Height: SmallInt;
+
+ DetailPen,
+ BlockPen: Byte;
+
+ IDCMPFlags: LongWord;
+ Flags: LongWord;
+
+ FirstGadget: PGadget;
+ CheckMark: PImage;
+ Title: PChar;
+ WScreen: PScreen;
+ WBitMap: PBitMap;
+
+ MinWidth,
+ MinHeight: SmallInt;
+ MaxWidth,
+ MaxHeight: Word;
+
+ { the type variable describes the Screen in which you want this Window to
+ open. The type value can either be CUSTOMSCREEN or one of the
+ system standard Screen Types such as WBENCHSCREEN. See the
+ type definitions under the Screen structure.
+ A new possible value for this field is PUBLICSCREEN, which
+ defines the window as a 'visitor' window. See below for
+ additional information provided.}
+ WType: Word;
+
+ { if the NewWindow Flag value WFLG_NW_EXTENDED is set, then
+ this field is assumed to point to an array ( or chain of arrays)
+ of TagItem structures. See also ExtNewScreen for another
+ use of TagItems to pass optional data.
+ see below for tag values and the corresponding data.}
+ Extension: PTagItem;
+ end;
+
+const
+ TAG_DONE = 0; { terminates array of TagItems. ti_Data unused }
+ TAG_END = TAG_DONE;
+
+{ The TagItem ID's (ti_Tag values) for OpenWindowTagList() follow.
+ They are values in a TagItem array passed as extension/replacement
+ values for the data in NewWindow. OpenWindowTagList() can actually
+ work well with a nil NewWindow pointer. }
+ WA_Dummy = TAG_USER + 99; { $80000063 }
+ // these tags simply override NewWindow parameters
+ WA_Left = WA_Dummy + 1;
+ WA_Top = WA_Dummy + 2;
+ WA_Width = WA_Dummy + 3;
+ WA_Height = WA_Dummy + 4;
+ WA_DetailPen = WA_Dummy + 5;
+ WA_BlockPen = WA_Dummy + 6;
+ WA_IDCMP = WA_Dummy + 7;
+ WA_Flags = WA_Dummy + 8; // "bulk" initialization of NewWindow.Flags
+ WA_Gadgets = WA_Dummy + 9;
+ WA_Checkmark = WA_Dummy + 10;
+ WA_Title = WA_Dummy + 11; // means you don't have to call SetWindowTitles after you open your window
+ WA_ScreenTitle = WA_Dummy + 12;
+ WA_CustomScreen = WA_Dummy + 13;
+ WA_SuperBitMap = WA_Dummy + 14;
+ // also implies WFLG_SUPER_BITMAP property
+ WA_MinWidth = WA_Dummy + 15;
+ WA_MinHeight = WA_Dummy + 16;
+ WA_MaxWidth = WA_Dummy + 17;
+ WA_MaxHeight = WA_Dummy + 18;
+ WA_InnerWidth = WA_Dummy + 19;
+ WA_InnerHeight = WA_Dummy + 20; { You can specify the dimensions of the interior region of your window, independent of what the border widths will be. You probably want
+ to also specify WA_AutoAdjust to allow Intuition to move your window or even shrink it so that it is completely on screen.}
+ WA_PubScreenName = WA_Dummy + 21; // declares that you want the window to open as a visitor on the public screen whose name is pointed to by (PChar) ti_Data}
+ WA_PubScreen = WA_Dummy + 22; { open as a visitor window on the public screen whose Pointer is in (PScreen) ti_Data. To ensure that this screen remains open, you
+ should either be the screen's owner, have a window open on the screen, or use LockPubScreen().}
+ WA_PubScreenFallBack = WA_Dummy + 23; { A Boolean, specifies whether a visitor window should "fall back" to the default public screen
+ (or Workbench) if the named public screen isn't available}
+ WA_WindowName = WA_Dummy + 24;
+ WA_Colors = WA_Dummy + 25 unimplemented;
+ { a ColorSpec array for colors to be set when this window is active. This is not implemented, and may not be, since the default
+ values to restore would be hard to track. We'd like to at least support per-window colors for the mouse pointer sprite.}
+ WA_Zoom = WA_Dummy + 26; { ti_Data points to an array of four Word's, the initial Left/Top/Width/Height values of the "alternate" zoom position/dimensions.
+ It also specifies that you want a Zoom gadget for your window, whether or not you have a sizing gadget.}
+ WA_MouseQueue = WA_Dummy + 27; // ti_Data contains initial value for the mouse message backlog limit for this window
+ WA_BackFill = WA_Dummy + 28; // provides a "backfill hook" for your window's layer.
+ WA_RptQueue = WA_Dummy + 29; // initial value of repeat key backlog limit
+ WA_SizeGadget = WA_Dummy + 30; // These Boolean tag items are alternatives to the NewWindow.Flags boolean flags with similar names.
+ WA_DragBar = WA_Dummy + 31;
+ WA_DepthGadget = WA_Dummy + 32;
+ WA_CloseGadget = WA_Dummy + 33;
+ WA_Backdrop = WA_Dummy + 34;
+ WA_ReportMouse = WA_Dummy + 35;
+ WA_NoCareRefresh = WA_Dummy + 36;
+ WA_Borderless = WA_Dummy + 37;
+ WA_Activate = WA_Dummy + 38;
+ WA_RMBTrap = WA_Dummy + 39;
+ WA_WBenchWindow = WA_Dummy + 40; // PRIVATE!!
+ WA_SimpleRefresh = WA_Dummy + 41; // only specify if True
+ WA_SmartRefresh = WA_Dummy + 42; // only specify if True
+ WA_SizeBRight = WA_Dummy + 43;
+ WA_SizeBBottom = WA_Dummy + 44;
+ WA_AutoAdjust = WA_Dummy + 45; // shift or squeeze the window's position and dimensions to fit it on screen.
+ WA_GimmeZeroZero = WA_Dummy + 46; // equiv. to NewWindow.Flags WFLG_GIMMEZEROZERO
+ WA_MenuHelp = WA_Dummy + 47; // Enables IDCMP_MENUHELP: Pressing HELP during menus will return IDCMP_MENUHELP message.
+ WA_NewLookMenus = WA_Dummy + 48; // Set to True if you want NewLook menus
+ WA_AmigaKey = WA_Dummy + 49; // Pointer to image for Amiga-key equiv in menus
+ WA_NotifyDepth = WA_Dummy + 50; // Requests IDCMP_CHANGEWINDOW message when window is depth arranged (imsg^.Code = CWCODE_DEPTH)
+ // WA_Dummy + 51 is obsolete
+ WA_Pointer = WA_Dummy + 52; { Allows you to specify a custom pointer for your window. ti_Data points to a pointer object you obtained via
+ "pointerclass". NULL signifies the default pointer. This tag may be passed to OpenWindowTags() or SetWindowPointer().}
+ WA_BusyPointer = WA_Dummy + 53; { ti_Data is boolean. Set to True to request the standard busy pointer. This tag may be passed to OpenWindowTags() or SetWindowPointer().}
+ WA_PointerDelay = WA_Dummy + 54; { ti_Data is boolean. Set to True to request that the changing of the pointer be slightly delayed. The change
+ will be called off if you call NewSetPointer() before the delay expires. This allows you to post a busy-pointer even if you think
+ the busy-time may be very Word, without fear of a flashing pointer. This tag may be passed to OpenWindowTags() or SetWindowPointer().}
+ WA_TabletMessages = WA_Dummy + 55; { ti_Data is a boolean. Set to True to request that tablet information be included in IntuiMessages sent to your window.
+ Requires that something (i.e. a tablet driver) feed IESUBCLASS_NEWTABLET InputEvents into the system. For a pointer to the TabletData,
+ examine the ExtIntuiMessage^.eim_TabletData field. It is UNSAFE to check this field when running on pre-V39 systems. It's always
+ safe to check this field under V39 and up, though it may be nil.}
+ WA_HelpGroup = WA_Dummy + 56; { When the active window has gadget help enabled, other windows of the same HelpGroup number will also get GadgetHelp. This allows GadgetHelp
+ to work for multi-windowed applications. Use GetGroupID() to get an ID number. Pass this number as ti_Data to all your windows. See also the HelpControl() function.}
+ WA_HelpGroupWindow = WA_Dummy + 57; { When the active window has gadget help enabled, other windows of the same HelpGroup will also get GadgetHelp. This allows GadgetHelp to work
+ for multi-windowed applications. As an alternative to WA_HelpGroup, you can pass a pointer to any other window of the same group to join its help
+ group. Defaults to NULL, which has no effect. See also the HelpControl() function.}
+ WA_ToolBox = WA_Dummy + 58; // (LongBool) Make this window a Toolbox window
+
+ // AROS specific tags
+ WA_Priority = WA_Dummy + 100;
+ WA_Parent = WA_Dummy + 101; // (PWindow) Make the window a child of the parent Window
+ WA_InFrontOf = WA_Dummy + 102;
+ WA_Behind = WA_Dummy + 103;
+ WA_Visible = WA_Dummy + 104; // (LongBool) Make window visible. default True
+ WA_Shape = WA_Dummy + 105; // (PRegion)
+ WA_ShapeHook = WA_Dummy + 106; // (PHook)
+
+// --- Flags requested at OpenWindow() time by the application
+ WFLG_SIZEGADGET = 1 shl 0; // include sizing system-gadget
+ WFLG_DRAGBAR = 1 shl 1; // include dragging system-gadget
+ WFLG_DEPTHGADGET = 1 shl 2; // include depth arrangement gadget
+ WFLG_CLOSEGADGET = 1 shl 3; // include close-box system-gadget
+ WFLG_SIZEBRIGHT = 1 shl 4; // size gadget uses right border
+ WFLG_SIZEBBOTTOM = 1 shl 5; // size gadget uses bottom border
+ // refresh modes combinations of the WFLG_REFRESHBITS select the refresh type
+ WFLG_SMART_REFRESH = 0;
+ WFLG_SIMPLE_REFRESH = 1 shl 6;
+ WFLG_SUPER_BITMAP = 1 shl 7;
+ WFLG_OTHER_REFRESH = (1 shl 6) or (1 shl 7);
+ WFLG_REFRESHBITS = WFLG_OTHER_REFRESH;
+
+ WFLG_BACKDROP = 1 shl 8; // this is a backdrop window
+ WFLG_REPORTMOUSE = 1 shl 9; // to hear about every mouse move
+ WFLG_GIMMEZEROZERO = 1 shl 10; // a GimmeZeroZero window
+ WFLG_BORDERLESS = 1 shl 11; // to get a Window sans border
+ WFLG_ACTIVATE = 1 shl 12; // when Window opens, it's Active
+ // Private
+ WFLG_WINDOWACTIVE = 1 shl 13; // this window is the active one
+ WFLG_INREQUEST = 1 shl 14; // this window is in request mode
+ WFLG_MENUSTATE = 1 shl 15; // Window is active with Menus on
+ // Other User Flags
+ WFLG_RMBTRAP = 1 shl 16; // Catch RMB events for your own
+ WFLG_NOCAREREFRESH = 1 shl 17; // not to be bothered with REFRESH
+ WFLG_NW_EXTENDED = 1 shl 18; // extension data provided see struct ExtNewWindow
+
+ WFLG_NEWLOOKMENUS = 1 shl 21; // window has NewLook menus
+
+ // These flags are set only by Intuition. YOU MAY NOT SET THEM YOURSELF!
+ WFLG_WINDOWREFRESH = 1 shl 24; // Window is currently refreshing
+ WFLG_WBENCHWINDOW = 1 shl 25; // WorkBench tool ONLY Window
+ WFLG_WINDOWTICKED = 1 shl 26; // only one timer tick at a time
+ WFLG_VISITOR = 1 shl 27; // visitor window
+ WFLG_ZOOMED = 1 shl 28; // identifies "zoom state"
+ WFLG_HASZOOM = 1 shl 29; // windowhas a zoom gadget
+ WFLG_TOOLBOX = 1 shl 30;
+ // Other Window Values
+ DEFAULTMOUSEQUEUE = 5; // no more mouse messages
+ // see struct IntuiMessage for the IDCMP Flag definitions
+
+ // HelpControl() flags: HC_GADGETHELP - Set this flag to enable Gadget-Help for one or more windows.
+ HC_GADGETHELP = 1;
+
+const
+// Flags for TRequester.Flags
+ // set by Application
+ POINTREL = 1 shl 0; // if POINTREL set, TopLeft is relative to pointer to the coordinates of either the pointer or the window
+ PREDRAWN = 1 shl 1; // If set, ImageBMap points to a custom bitmap
+ NOISYREQ = 1 shl 2; // Requester doesn't filter input
+ SIMPLEREQ = 1 shl 4; // If set, a SIMPLEREFRESH layer is used
+ USEREQIMAGE = 1 shl 5; // render linked list ReqImage after BackFill but before gadgets and text
+ NOREQBACKFILL = 1 shl 6; // don't bother filling requester with Requester.BackFill pen
+ // Read only Flags set by Intuition
+ REQOFFWINDOW = 1 shl 12; // part of one of the Gadgets was offwindow
+ REQACTIVE = 1 shl 13; // this requester is active
+ SYSREQUEST = 1 shl 14; // this requester caused by system
+ DEFERREFRESH = 1 shl 15; // this Requester stops a Refresh broadcast
+
+
+{ Intuition supports the IESUBCLASS_NEWTABLET subclass of the IECLASS_NEWPOINTERPOS event. The ie_EventAddress of such an event points to a TabletData structure (see below).
+ The TabletData structure contains certain elements including a taglist.The taglist can be used for special tablet parameters. A tablet driver
+ should include only those tag-items the tablet supports. An application can listen for any tag-items that interest it. Note: an application
+ must set the WA_TabletMessages attribute to TRUE to receive this extended information in its IntuiMessages.
+ The definitions given here MUST be followed. Pay careful attention
+ to normalization and the interpretation of signs.
+ Note: a stylus that supports tilt should use the TABLETA_AngleX
+ and TABLETA_AngleY attributes. Tilting the stylus so the tip
+ points towards increasing or decreasing X is actually a rotation
+ around the Y-axis. Thus, if the stylus tip points towards
+ positive X, then that tilt is represented as a negative
+ TABLETA_AngleY. Likewise, if the stylus tip points towards
+ positive Y, that tilt is represented by positive TABLETA_AngleX.}
+const
+ TABLETA_Dummy = TAG_USER + $3A000;
+ TABLETA_TabletZ = TABLETA_Dummy + $01; // the current value of the tablet in the Z direction. This unsigned value should typically be in the natural units of the
+ // tablet. You should also provide TABLETA_RangeZ.
+ TABLETA_RangeZ = TABLETA_Dummy + $02; // the maximum value of the tablet in the Z direction. Normally specified along with TABLETA_TabletZ, this allows the
+ // application to scale the actual Z value across its range.
+ TABLETA_AngleX = TABLETA_Dummy + $03; // the angle of rotation or tilt about the X-axis. This number should be normalized to fill a signed long LongInt. Positive
+ // values imply a clockwise rotation about the X-axis when viewing from +X towards the origin.
+ TABLETA_AngleY = TABLETA_Dummy + $04; // the angle of rotation or tilt about the Y-axis. This number should be normalized to fill a signed long LongInt. Positive
+ // values imply a clockwise rotation about the Y-axis when viewing from +Y towards the origin.
+ TABLETA_AngleZ = TABLETA_Dummy + $05; // the angle of rotation or tilt about the Z axis. This number should be normalized to fill a signed long LongInt. Positive
+ // values imply a clockwise rotation about the Z-axis when viewing from +Z towards the origin.
+ TABLETA_Pressure = TABLETA_Dummy + $06; { the pressure reading of the stylus. The pressure should be normalized to fill a signed long LongInt. Typical devices
+ won't generate negative pressure, but the possibility is not precluded. The pressure threshold which is considered to cause a button-click is
+ expected to be set in a Preferences program supplied by the tablet vendor. The tablet driver would send IECODE_LBUTTON-type events as
+ the pressure crossed that threshold.}
+ TABLETA_ButtonBits = TABLETA_Dummy + $07; // ti_Data is a long LongInt whose bits are to be interpreted at the state of the first 32 buttons of the tablet.
+ TABLETA_InProximity = TABLETA_Dummy + $08; { ti_Data is a boolean. For tablets that support proximity, they should send the (TABLETA_InProximity,FALSE) tag item
+ when the stylus is out of proximity. One possible use we can forsee is a mouse-blanking commodity which keys off this to blank the
+ mouse. When this tag is absent, the stylus is assumed to be in proximity.}
+ TABLETA_ResolutionX = TABLETA_Dummy + $09; // ti_Data is an unsigned long LongInt which is the x-axis resolution in dots per inch.
+ TABLETA_ResolutionY = TABLETA_Dummy + $0A; // ti_Data is an unsigned long LongInt which is the y-axis resolution in dots per inch.
+
+type
+ // this structure is used for remembering what memory has been allocated to date by a given routine,
+ // so that a premature abort or systematic exit can deallocate memory cleanly, easily, and completely
+ PRemember = ^TRemember;
+ TRemember = record
+ NextRemember: PRemember;
+ RememberSize: LongWord;
+ Memory: PByte;
+ end;
+
+// How to tell Intuition about RGB values for a color table entry. }
+ PColorSpec = ^TColorSpec;
+ TColorSpec = record
+ ColorIndex: SmallInt; // -1 terminates an array of ColorSpec
+ Red: Word; // only the _bottom_ 4 bits recognized
+ Green: Word; // only the _bottom_ 4 bits recognized
+ Blue: Word; // only the _bottom_ 4 bits recognized
+ end;
+
+// Easy Requester Specification see also autodocs for EasyRequest and BuildEasyRequest NOTE: This structure may grow in size in the future
+ PEasyStruct = ^TEasyStruct;
+ TEasyStruct = record
+ es_StructSize: LongWord; // should be sizeof (TEasyStruct) Note that this size may change, if you update the includes! Do not use absolute values as the size of pointers may vary on different platforms!
+ es_Flags: LongWord; // should be 0 for now
+ es_Title: PChar; // title of requester window
+ es_TextFormat: PChar; // 'printf' style formatting string
+ es_GadgetFormat: PChar; // Text of the gadgets, separated by |'s
+ end;
+
+const
+// These are the AlertNumber defines. if you are calling DisplayAlert() the AlertNumber you supply must have the ALERT_TYPE bits set to one of these patterns
+ ALERT_TYPE = $80000000;
+ RECOVERY_ALERT = $00000000; // the system can recover from this
+ DEADEND_ALERT = $80000000; // no recovery possible, this is it
+
+{ When you're defining IntuiText for the Positive and Negative Gadgets created by a call to AutoRequest(), these defines will get you
+ reasonable-looking text. The only field without a define is the IText field; you decide what text goes with the Gadget}
+ AUTOFRONTPEN = 0;
+ AUTOBACKPEN = 1;
+ AUTODRAWMODE = JAM2;
+ AUTOLEFTEDGE = 6;
+ AUTOTOPEDGE = 3;
+ AUTOITEXTFONT = nil;
+ AUTONEXTTEXT = nil;
+
+// RAWMOUSE Codes and Qualifiers (Console OR <IDCMP)
+ SELECTDOWN = IECODE_LBUTTON;
+ SELECTUP = IECODE_LBUTTON or IECODE_UP_PREFIX;
+ MENUDOWN = IECODE_RBUTTON;
+ MENUUP = IECODE_RBUTTON or IECODE_UP_PREFIX;
+ MIDDLEDOWN = IECODE_MBUTTON;
+ MIDDLEUP = IECODE_MBUTTON or IECODE_UP_PREFIX;
+ ALTLEFT = IEQUALIFIER_LALT;
+ ALTRIGHT = IEQUALIFIER_RALT;
+ AMIGALEFT = IEQUALIFIER_LCOMMAND;
+ AMIGARIGHT = IEQUALIFIER_RCOMMAND;
+ AMIGAKEYS = AMIGALEFT or AMIGARIGHT;
+
+ CURSORUP = $4C;
+ CURSORDOWN = $4D;
+ CURSORRIGHT = $4E;
+ CURSORLEFT = $4F;
+
+ KEYCODE_Q = $10;
+ KEYCODE_Z = $31;
+ KEYCODE_X = $32;
+ KEYCODE_V = $34;
+ KEYCODE_B = $35;
+ KEYCODE_N = $36;
+ KEYCODE_M = $37;
+ KEYCODE_LESS = $38;
+ KEYCODE_GREATER = $39;
+
+const
+// these are the display modes for which we have corresponding parameter settings in the config arrays
+ HIRESPICK = $0000;
+ LOWRESPICK = $0001;
+ DMODECOUNT = $0002; // how many modes there are
+ // these are the system Gadget defines
+ HIRESGADGET = 0;
+ LOWRESGADGET = 1;
+ RESCOUNT = 2;
+
+ UPFRONTGADGET = 0;
+ DOWNBACKGADGET = 1;
+ SIZEGADGET = 2;
+ CLOSEGADGET = 3;
+ DRAGGADGET = 4;
+ SUPFRONTGADGET = 5;
+ SDOWNBACKGADGET = 6;
+ SDRAGGADGET = 7;
+ GADGETCOUNT = 8;
+
+ EVENTMAX = 10; // size of event array
+
+type
+ // This is a packet of information for graphics rendering. It originates with a Screen, and is gotten using GetScreenDrawInfo( screen );
+ PDrawInfo = ^TDrawInfo;
+ TDrawInfo = record
+ dri_Version: Word; // will be DRI_VERSION
+ dri_NumPens: Word; // guaranteed to be >= numDrIPens
+ dri_Pens: PWord; // pointer to pen array
+ dri_Font: PTextFont; // screen default font
+ dri_Depth: Word; // (initial) depth of screen bitmap
+
+ dri_Resolution: record
+ x: Word; // from DisplayInfo database for initial display mode
+ y: Word;
+ end;
+
+ dri_Flags: LongWord; // defined below (DIRF_*)
+
+ dri_CheckMark: PImage; // pointer to scaled checkmark image Will be nil if DRI_VERSION < 2
+ dri_AmigaKey: PImage; // pointer to scaled Amiga-key image Will be NULL if DRI_VERSION < 2
+
+ dri_Reserved: array[0..4] of LongWord; // avoid recompilation ;^)
+ end;
+
+const
+
+ // If you find dri_Version >= DRI_VERSION, you know this structure has at least the fields defined in this version of the include file
+ DRI_VERSION = 2;
+ // dri_Flags
+ DRIF_NEWLOOK = 1 shl 0; // specified SA_Pens, full treatment
+ DRIF_DIRECTCOLOR = 1 shl 1;
+ // rendering pen number indexes into DrawInfo.dri_Pens[]
+ DETAILPEN = 0; // compatible Intuition rendering pens
+ BLOCKPEN = 1; // compatible Intuition rendering pens
+ TEXTPEN = 2; // text on background
+ SHINEPEN = 3; // bright edge on 3D objects
+ SHADOWPEN = 4; // dark edge on 3D objects
+ FILLPEN = 5; // active-window/selected-gadget fill
+ FILLTEXTPEN = 6; // text over FILLPEN
+ BACKGROUNDPEN = 7; // always color 0
+ HIGHLIGHTTEXTPEN = 8; // special color text, on background
+ // Only present if DRI_VERSION >= 2
+ BARDETAILPEN = 9; // text/detail in screen-bar/menus
+ BARBLOCKPEN = 10; // screen-bar/menus fill
+ BARTRIMPEN = 11; // trim under screen-bar
+ NUMDRIPENS = 12;
+
+//It is sometimes useful to specify that a pen value is to be the complement of color zero to three. The "magic" numbers serve that purpose:
+ PEN_C3 = $FEFC; // Complement of color 3
+ PEN_C2 = $FEFD; // Complement of color 2
+ PEN_C1 = $FEFE; // Complement of color 1
+ PEN_C0 = $FEFF; // Complement of color 0
+
+// values for ChangeDecoration ID param
+ DECORATION_SET = $8001;
+ DECORATION_DEFAULT = $8000;
+
+// OpenScreen error codes, which are returned in the (optional) LongIng pointed to by ti_Data for the SA_ErrorCode tag item
+ OSERR_NOMONITOR = 1; // named monitor spec not available
+ OSERR_NOCHIPS = 2; // you need newer custom chips
+ OSERR_NOMEM = 3; // couldn't get normal memory
+ OSERR_NOCHIPMEM = 4; // couldn't get chipmem
+ OSERR_PUBNOTUNIQUE = 5; // public screen name already used
+ OSERR_UNKNOWNMODE = 6; // don't recognize mode asked for
+ OSERR_TOODEEP = 7;
+ OSERR_ATTACHFAIL = 8;
+ OSERR_NOTAVAILABLE = 9;
+
+// The SCREENTYPE bits are reserved for describing various Screen types available under Intuition.
+ // The screen flags have the suffix "_f" added to avoid conflicts with routine names.
+ // Screen^.Flags and (Ext)NewScreen^.Type
+ WBENCHSCREEN_f = 1 shl 0; // Ta Da! The Workbench
+ PUBLICSCREEN_f = 1 shl 1;
+ CUSTOMSCREEN_f = $000F; // for that special look
+ SCREENTYPE_f = $000F; // all the screens types available
+ // Screen^.Flags
+ SHOWTITLE_f = 1 shl 4; // this gets set by a call to ShowTitle()
+ BEEPING_f = 1 shl 5; // set when Screen is beeping
+ CUSTOMBITMAP_f = 1 shl 6; // if you are supplying your own BitMap
+ SCREENBEHIND_f = 1 shl 7; // if you want your screen to open behind already open screens
+ SCREENQUIET_f = 1 shl 8; // if you do not want Intuition to render into your screen (gadgets, title)
+ SCREENHIRES = 1 shl 9; // do no use lowres gadgets (private)
+ PENSHARED = 1 shl 10; // Screen opener set (SA_SharePens,True)
+ NS_EXTENDED = 1 shl 12; // ExtNewScreen.Extension is valid
+ AUTOSCROLL = 1 shl 14; // screen is to autoscoll
+
+ STDSCREENHEIGHT = -1; // supply in NewScreen.Height
+ STDSCREENWIDTH = -1; // supply in NewScreen.Width
+
+const
+ // Screen attribute tag ID's. These are used in the ti_Tag field of TagItem arrays passed to OpenScreenTagList() (or in the ExtNewScreen.Extension field).
+ SA_Dummy = TAG_USER + 32;
+ // these items specify items equivalent to fields in NewScreen
+ SA_Left = SA_Dummy + 1;
+ SA_Top = SA_Dummy + 2;
+ SA_Width = SA_Dummy + 3;
+ SA_Height = SA_Dummy + 4; // traditional screen positions and dimensions
+ SA_Depth = SA_Dummy + 5; // screen bitmap depth
+ SA_DetailPen = SA_Dummy + 6; //serves as default for windows, too
+ SA_BlockPen = SA_Dummy + 7;
+ SA_Title = SA_Dummy + 8; // default screen title
+ SA_Colors = SA_Dummy + 9; // ti_Data is an array of struct ColorSpec, terminated by ColorIndex = -1. Specifies initial screen palette colors.
+ SA_ErrorCode = SA_Dummy + 10; // ti_Data points to LONG error code (values below)
+ SA_Font = SA_Dummy + 11; // equiv. to NewScreen.Font
+ SA_SysFont = SA_Dummy + 12; // Selects one of the preferences system fonts: 0 - old DefaultFont, fixed-width 1 - WB Screen preferred font
+ SA_Type = SA_Dummy + 13; // equiv. to NewScreen.type
+ SA_BitMap = SA_Dummy + 14; // ti_Data is pointer to custom BitMap. This implies type of CUSTOMBITMAP
+ SA_PubName = SA_Dummy + 15; // presence of this tag means that the screen is to be a public screen. Please specify BEFORE the two tags below
+ SA_PubSig = SA_Dummy + 16;
+ SA_PubTask = SA_Dummy + 17; // Task ID and signal for being notified that the last window has closed on a public screen.
+ SA_DisplayID = SA_Dummy + 18; // ti_Data is new extended display ID
+ SA_DClip = SA_Dummy + 19; // ti_Data points to a rectangle which defines screen display clip region
+ SA_Overscan = SA_Dummy + 20; { was S_STDDCLIP. Set to one of the OSCAN_* specifiers below to get a system standard
+ overscan region for your display clip, screen dimensions (unless otherwise specified),
+ and automatically centered position (partial support only so far).
+ If you use this, you shouldn't specify SA_DClip. SA_Overscan is for "standard"
+ overscan dimensions, SA_DClip is for your custom numeric specifications.}
+ SA_ShowTitle = SA_Dummy + 22; // boolean equivalent to flag SHOWTITLE
+ SA_Behind = SA_Dummy + 23; // boolean equivalent to flag SCREENBEHIND
+ SA_Quiet = SA_Dummy + 24; // boolean equivalent to flag SCREENQUIET
+ SA_AutoScroll = SA_Dummy + 25; // boolean equivalent to flag AUTOSCROLL
+ SA_Pens = SA_Dummy + 26; // pointer to ~0 terminated UWORD array, as found in struct DrawInfo
+ SA_FullPalette = SA_Dummy + 27; // boolean: initialize color table to entire preferences palette, rather than compatible pens 0-3, 17-19, with remaining palette as returned by GetColorMap()
+ SA_ColorMapEntries = SA_Dummy + 28; {Allows you to override the number of entries in the ColorMap for your screen. Intuition
+ normally allocates (1 shl depth) or 32, whichever is more, but you may require even more if you
+ use certain graphics.library features (eg. palette-banking).}
+ SA_Parent = SA_Dummy + 29; // Pointer to a "parent" screen to attach this one to. Attached screens slide and depth-arrange together.
+ SA_Draggable = SA_Dummy + 30; // Boolean tag allowing non-draggable screens. Do not use without good reason! (Defaults to True).
+ SA_Exclusive = SA_Dummy + 31; { Boolean tag allowing screens that won't share the display. Use sparingly! Starting with 3.01,
+ attached screens may be SA_Exclusive. Setting SA_Exclusive for each screen will produce an
+ exclusive family. (Defaults to FALSE).}
+ SA_SharePens = SA_Dummy + 32; { For those pens in the screen's DrawInfo^.dri_Pens, Intuition obtains them in shared mode (see
+ graphics.library/ObtainPen()). For compatibility, Intuition obtains the other pens of a public
+ screen as PEN_EXCLUSIVE. Screens that wish to manage the pens themselves should generally set
+ this tag to True. This instructs Intuition to leave the other pens unallocated.}
+ SA_BackFill = SA_Dummy + 33; // provides a "backfill hook" for your screen's Layer_Info. See layers.library/InstallLayerInfoHook()
+ SA_Interleaved = SA_Dummy + 34; // Boolean tag requesting that the bitmap allocated for you be interleaved. (Defaults to False).
+ SA_Colors32 = SA_Dummy + 35; { Tag to set the screen's initial palette colors at 32 bits-per-gun. ti_Data is a pointer
+ to a table to be passed to the graphics.library/LoadRGB32() function. This format supports both runs of color
+ registers and sparse registers. See the autodoc for that function for full details. Any color set here has
+ precedence over the same register set by SA_Colors.}
+ SA_VideoControl = SA_Dummy + 36; // Pointer to a taglist that Intuition will pass to graphics.library/VideoControl(), upon opening the screen.
+ SA_FrontChild = SA_Dummy + 37; // Pointer to an already open screen that is to be the child of the screen being opened. The child screen will be moved to the front of its family.
+ SA_BackChild = SA_Dummy + 38; // Pointer to an already open screen that is to be the child of the screen being opened. The child screen will be moved to the back of its family.
+ SA_LikeWorkbench = SA_Dummy + 39; // 1 = request a screen which is just like the Workbench. This gives you the same screen mode, depth, size, colors, etc., as the Workbench screen.
+ SA_Reserved = SA_Dummy + 40; // Reserved for private Intuition use
+
+ SA_MinimizeISG = SA_Dummy + 41; { For compatibility, Intuition always ensures that the inter-screen gap is at least three non-interlaced lines. If your application
+ would look best with the smallest possible inter-screen gap, set ti_Data to True. If you use the new graphics VideoControl()
+ VC_NoColorPaletteLoad tag for your screen's ViewPort, you should also set this tag.}
+ SA_ID = SA_Dummy + 42;
+// this is an obsolete tag included only for compatibility with V35 interim release for the A2024 and Viking monitors
+ NSTAG_EXT_VPMODE = TAG_USER + 1;
+
+ // SA_Overscan
+ OSCAN_TEXT = 1; // entirely visible
+ OSCAN_STANDARD = 2; // just past edges
+ OSCAN_MAX = 3; // as much as possible
+ OSCAN_VIDEO = 4; // even more than is possible
+
+type
+ PNewScreen = ^TNewScreen;
+ TNewScreen = record
+ LeftEdge,
+ TopEdge,
+ Width,
+ Height,
+ Depth: SmallInt; // screen dimensions
+
+ DetailPen,
+ BlockPen: Byte; // for bar/border/gadget rendering
+
+ ViewModes: Word; // the Modes for the ViewPort (and View)
+ SType: Word; // the Screen type (see defines above) (Type in C-Include)
+
+ Font: PTextAttr; // this Screen's default text attributes
+ DefaultTitle: PChar; // the default title for this Screen
+ Gadgets: PGadget; // your own Gadgets for this Screen
+
+ { if you are opening a CUSTOMSCREEN and already have a BitMap
+ that you want used for your Screen, you set the flags CUSTOMBITMAP in
+ the type field and you set this variable to point to your BitMap
+ structure. The structure will be copied into your Screen structure,
+ after which you may discard your own BitMap if you want}
+ CustomBitMap: PBitMap;
+ end;
+
+ PExtNewScreen = ^TExtNewScreen;
+ TExtNewScreen = record
+ LeftEdge,
+ TopEdge,
+ Width,
+ Height,
+ Depth: SmallInt;
+ DetailPen,
+ BlockPen: Byte;
+ ViewModes: Word;
+ ens_Type: Word; { type in C-Includes }
+ Font: PTextAttr;
+ DefaultTitle: PChar;
+ Gadgets: PGadget;
+ CustomBitMap: PBitMap;
+ Extension: PTagItem; // ExtNewScreen specific extension SA_*
+ end;
+
+// Public Shared Screen Node
+{ This is the representative of a public shared screen.
+ This is an internal data structure, but some functions may
+ present a copy of it to the calling application. In that case,
+ be aware that the screen pointer of the structure can NOT be
+ used safely, since there is no guarantee that the referenced
+ screen will remain open and a valid data structure.
+ Never change one of these.}
+ PPubScreenNode = ^TPubScreenNode;
+ TPubScreenNode = record
+ psn_Node: TNode; // ln_Name is screen name
+ psn_Screen: PScreen;
+ psn_Flags: Word; // below (PSNF_*)
+ psn_Size: SmallInt; // includes name buffer
+ psn_VisitorCount: SmallInt; // how many visitor windows
+ psn_SigTask: PTask; // who to signal when visitors gone
+ psn_SigBit: Byte; // which signal
+ end;
+
+const
+ // psn_Flags
+ PSNF_PRIVATE = 1 shl 0;
+ // Maximum length of public screen names. The buffers containing these strings must have a length of MAXPUBSCREENNAME+1.
+ MAXPUBSCREENNAME = 139; // names no longer, please
+ // pub screen modes
+ SHANGHAI = 1 shl 0; // put workbench windows on pub screen
+ POPPUBSCREEN = 1 shl 1; // pop pub screen to front when visitor opens
+
+{Intuition has new screen depth-arrangement and movement
+ functions called ScreenDepth() and ScreenPosition() respectively.
+ These functions permit the old behavior of ScreenToFront(),
+ ScreenToBack(), and MoveScreen(). ScreenDepth() also allows
+ independent depth control of attached screens. ScreenPosition()
+ optionally allows positioning screens even though they were opened
+ (SA_Draggable, False).
+ For ScreenDepth(), specify one of SDEPTH_TOFRONT or SDEPTH_TOBACK,
+ and optionally also SDEPTH_INFAMILY.
+ NOTE: ONLY THE OWNER OF THE SCREEN should ever specify
+ SDEPTH_INFAMILY. Commodities, "input helper" programs,
+ or any other program that did not open a screen should never
+ use that flag. (Note that this is a style-behavior
+ requirement; there is no technical requirement that the
+ task calling this function need be the task which opened
+ the screen).}
+ SDEPTH_TOFRONT = 0; // Bring screen to front
+ SDEPTH_TOBACK = 1; // Send screen to back
+ SDEPTH_INFAMILY = 2; // Move an attached screen with respect to other screens of its family
+
+
+{ For ScreenPosition(), specify one of SPOS_RELATIVE, SPOS_ABSOLUTE, or SPOS_MAKEVISIBLE to describe the kind of screen positioning you
+ wish to perform. You may additionally set SPOS_FORCEDRAG along with any of the above. Set this if you wish to reposition an (SA_Draggable,False)
+ screen that you opened.
+ NOTE: ONLY THE OWNER OF THE SCREEN should ever specify SPOS_FORCEDRAG. Commodities, "input helper" programs, or any other program that did not
+ open a screen should never use that flag.
+ }
+
+ SPOS_RELATIVE = 0; // The x1 and y1 parameters to ScreenPosition() describe the offset in coordinates you wish to move the screen by. Coordinates are relative
+ SPOS_ABSOLUTE = 1 shl 0; // The x1 and y1 parameters to ScreenPosition() describe the absolute coordinates you wish to move the screen to. Coordinates are expressed as absolutes, not relatives.
+ SPOS_MAKEVISIBLE = 1 shl 1; // Coordinates describe a box on the screen you wish to be made visible by autoscrolling
+ // (x1,y1)-(x2,y2) describes a rectangle on the screen which you would like autoscrolled into view.
+ SPOS_FORCEDRAG = 1 shl 2; // Move non-draggable screen, You may additionally set SPOS_FORCEDRAG along with any of the above.
+ // Set this if you wish to reposition an (SA_Draggable, False) screen that you opened.
+
+{ Intuition supports double-buffering in screens, with friendly interaction with menus and certain gadgets.
+ For each buffer, you need to get one of these structures from the AllocScreenBuffer() call. Never allocate your own ScreenBuffer structures!
+ The sb_DBufInfo field is for your use. See the graphics.library AllocDBufInfo() autodoc for details.}
+type
+ PScreenBuffer = ^TScreenBuffer;
+ TScreenBuffer = record
+ sb_BitMap: PBitMap; // BitMap of this buffer
+ sb_DBufInfo: PDBufInfo; // DBufInfo for this buffer
+ end;
+
+const
+// These are the flags that may be passed to AllocScreenBuffer().
+ SB_SCREEN_BITMAP = 1;
+ SB_COPY_BITMAP = 2;
+
+const
+
+ // these are the definitions for the printer configurations
+ FILENAME_SIZE = 30; // Filename size
+ DEVNAME_SIZE = 16;
+ POINTERSIZE = (1 + 16 + 1) * 2; // Size of Pointer data buffer
+
+{ These defines are for the default font size. These actually describe the
+ height of the defaults fonts. The default font type is the topaz
+ font, which is a fixed width font that can be used in either
+ eighty-column or sixty-column mode. The Preferences structure reflects
+ which is currently selected by the value found in the variable FontSize,
+ which may have either of the values defined below. These values actually
+ are used to select the height of the default font. By changing the
+ height, the resolution of the font changes as well.}
+ TOPAZ_EIGHTY = 8;
+ TOPAZ_SIXTY = 9;
+type
+ PPreferences = ^TPreferences;
+ TPreferences = record
+ FontHeight: ShortInt; // height for system default font
+ PrinterPort: Byte; // printer port connection constant describing what's hooked up to the port
+ BaudRate: Word; // baud rate for the serial port
+
+ // various timing rates
+ KeyRptSpeed: Ttimeval; // repeat speed for keyboard
+ KeyRptDelay: Ttimeval; // Delay before keys repeat
+ DoubleClick: Ttimeval; // Interval allowed between clicks
+
+ // Intuition Mouse-Pointer data
+ PointerMatrix: array[0..POINTERSIZE - 1] of Word; // Definition of pointer sprite
+ XOffset: ShortInt; // X-Offset for active 'bit'
+ YOffset: ShortInt; // Y-Offset for active 'bit'
+ color17: Word; //
+ color18: Word; // Colours for sprite pointer
+ color19: Word; //
+ PointerTicks: Word; // Sensitivity of the pointer
+
+ // Workbench Screen colors
+ color0: Word; //
+ color1: Word; // Standard default colours
+ color2: Word; // Used in the Workbench
+ color3: Word; //
+
+ // positioning data for the Intuition View
+ ViewXOffset: ShortInt; // Offset for top lefthand corner
+ ViewYOffset: ShortInt; // X and Y dimensions
+ ViewInitX,
+ ViewInitY: SmallInt; // View initial offset values
+
+ EnableCLI: LongBool; // CLI availability switch
+
+ // printer configurations
+ PrinterType: Word; // printer type
+ PrinterFilename: array[0..FILENAME_SIZE - 1] of char; // file for printer
+
+ // print format and quality configurations
+ PrintPitch: Word; // print pitch
+ PrintQuality: Word; // print quality
+ PrintSpacing: Word; // number of lines per inch
+ PrintLeftMargin: Word; // left margin in characters
+ PrintRightMargin: Word; // right margin in characters
+ PrintImage: Word; // positive or negative
+ PrintAspect: Word; // horizontal or vertical
+ PrintShade: Word; // b&w, half-tone, or color
+ PrintThreshold: SmallInt; // darkness ctrl for b/w dumps
+
+ // print paper descriptors
+ PaperSize: Word; // paper size
+ PaperLength: Word; // paper length in number of lines
+ PaperType: Word; // continuous or single sheet
+
+ // Serial device settings: These are six nibble-fields in three bytes (these look a little strange so the defaults will map out to zero)
+ SerRWBits: Byte; // upper nibble = (8-number of read bits), lower nibble = (8-number of write bits)
+ SerStopBuf: Byte; // upper nibble = (number of stop bits - 1), lower nibble = (table value for BufSize)
+ SerParShk: Byte; // upper nibble = (value for Parity setting), lower nibble = (value for Handshake mode)
+ LaceWB: Byte; // if workbench is to be interlaced
+
+ // temp file for printer
+ Pad: array[0..11] of Byte;
+ PrtDevName: array [0..DEVNAME_SIZE - 1] of char; // Device used by printer.device (leave out the ".device")
+
+ DefaultPrtUnit: Byte; // Default unit opened by printer.device
+ DefaultSerUnit: Byte; // Default serial unit
+
+ RowSizeChange: ShortInt; // Affect NormalDisplayRows/Columns
+ ColumnSizeChange: ShortInt;
+
+ PrintFlags: Word; // user preference flags
+ PrintMaxWidth: Word; // max width of printed picture in 10ths/inch
+ PrintMaxHeight: Word; // max height of printed picture in 10ths/inch
+ PrintDensity: Byte; // print density
+ PrintXOffset: Byte; // offset of printed picture in 10ths/inch
+
+ wb_Width: Word; // override default workbench width
+ wb_Height: Word; // override default workbench height
+ wb_Depth: Byte; // override default workbench depth
+
+ ext_size: Byte; // extension information -- do not touch!
+ // extension size in blocks of 64 bytes DO NOT TOUCH
+ end;
+
+const
+ // Workbench Interlace (use one bit)
+ LACEWB = 1 shl 0;
+ LW_RESERVED = 1; // internal use only
+ SCREEN_DRAG = 1 shl 14;
+ MOUSE_ACCEL = 1 shl 15;
+ // PrinterPort
+ PARALLEL_PRINTER = $00;
+ SERIAL_PRINTER = $01;
+ // BaudRate
+ BAUD_110 = $00;
+ BAUD_300 = $01;
+ BAUD_1200 = $02;
+ BAUD_2400 = $03;
+ BAUD_4800 = $04;
+ BAUD_9600 = $05;
+ BAUD_19200 = $06;
+ BAUD_MIDI = $07;
+ // PaperType
+ FANFOLD_PT = $00;
+ Single_PT = $80;
+ // PrintPitch
+ PICA = $000;
+ ELITE = $400;
+ FINE = $800;
+ // PrintQuality
+ DRAFT = $000;
+ LETTER = $100;
+ // PrintSpacing
+ SIX_LPI = $000;
+ EIGHT_LPI = $200;
+ // Print Image
+ IMAGE_POSITIVE = $00;
+ IMAGE_NEGATIVE = $01;
+ // PrintAspect
+ ASPECT_HORIZ = $00;
+ ASPECT_VERT = $01;
+ // PrintShade
+ SHADE_BW = $00;
+ SHADE_GREYSCALE = $01;
+ SHADE_COLOR = $02;
+ // PaperSize
+ US_LETTER = $00;
+ US_LEGAL = $10;
+ N_TRACTOR = $20;
+ W_TRACTOR = $30;
+ CUSTOM_PAPER = $40;
+ // European sizes
+ EURO_A0 = $50; // European size A0: 841 x 1189
+ EURO_A1 = $60; // European size A1: 594 x 841
+ EURO_A2 = $70; // European size A2: 420 x 594
+ EURO_A3 = $80; // European size A3: 297 x 420
+ EURO_A4 = $90; // European size A4: 210 x 297
+ EURO_A5 = $A0; // European size A5: 148 x 210
+ EURO_A6 = $B0; // European size A6: 105 x 148
+ EURO_A7 = $C0; // European size A7: 74 x 105
+ EURO_A8 = $D0; // European size A8: 52 x 74
+ // PrinterType
+ CUSTOM_NAME = $00;
+ ALPHA_P_101 = $01;
+ BROTHER_15XL = $02;
+ CBM_MPS1000 = $03;
+ DIAB_630 = $04;
+ DIAB_ADV_D25 = $05;
+ DIAB_C_150 = $06;
+ EPSON = $07;
+ EPSON_JX_80 = $08;
+ OKIMATE_20 = $09;
+ QUME_LP_20 = $0A;
+ HP_LASERJET = $0B;
+ HP_LASERJET_PLUS = $0C;
+ // Serial Input Buffer Sizes
+ SBUF_512 = $00;
+ SBUF_1024 = $01;
+ SBUF_2048 = $02;
+ SBUF_4096 = $03;
+ SBUF_8000 = $04;
+ SBUF_16000 = $05;
+ // Serial Bit Masks
+ SREAD_BITS = $F0; // for SerRWBits
+ SWRITE_BITS = $0F;
+
+ SSTOP_BITS = $F0; // for SerStopBuf
+ SBUFSIZE_BITS = $0F;
+
+ SPARITY_BITS = $F0; // for SerParShk
+ SHSHAKE_BITS = $0F;
+ // Serial Parity (upper nibble, after being shifted by macro SPARNUM())
+ SPARITY_NONE = 0;
+ SPARITY_EVEN = 1;
+ SPARITY_ODD = 2;
+ SPARITY_MARK = 3;
+ SPARITY_SPACE = 4;
+ // Serial Handshake Mode (lower nibble, after masking using macro SHANKNUM())
+ SHSHAKE_XON = 0;
+ SHSHAKE_RTS = 1;
+ SHSHAKE_NONE = 2;
+ // new defines for PrintFlags
+ CORRECT_RED = $0001; // color correct red shades
+ CORRECT_GREEN = $0002; // color correct green shades
+ CORRECT_BLUE = $0004; // color correct blue shades
+
+ CENTER_IMAGE = $0008; // center image on paper
+
+ IGNORE_DIMENSIONS = $0000; // ignore max width/height settings
+ BOUNDED_DIMENSIONS = $0010; // use max width/height as boundaries
+ ABSOLUTE_DIMENSIONS = $0020; // use max width/height as absolutes
+ PIXEL_DIMENSIONS = $0040; // use max width/height as prt pixels
+ MULTIPLY_DIMENSIONS = $0080; // use max width/height as multipliers
+
+ INTEGER_SCALING = $0100; // force integer scaling
+
+ ORDERED_DITHERING = $0000; // ordered dithering
+ HALFTONE_DITHERING = $0200; // halftone dithering
+ FLOYD_DITHERING = $0400; // Floyd-Steinberg dithering
+
+ ANTI_ALIAS = $0800; // anti-alias image
+ GREY_SCALE2 = $1000; // for use with hi-res monitor
+
+ // masks used for checking bits
+ CORRECT_RGB_MASK = CORRECT_RED or CORRECT_GREEN or CORRECT_BLUE;
+ DIMENSIONS_MASK = BOUNDED_DIMENSIONS or ABSOLUTE_DIMENSIONS or PIXEL_DIMENSIONS or MULTIPLY_DIMENSIONS;
+ DITHERING_MASK = HALFTONE_DITHERING or FLOYD_DITHERING;
+
+{ Be sure to protect yourself against someone modifying these data as you look at them. This is done by calling:
+ lock = LockIBase(0), which returns an Integer. When done call UnlockIBase(lock) where lock is what LockIBase() returned.}
+type
+ // IntuitionBase should never be directly modified by programs
+ PIntuitionBase = ^TIntuitionBase;
+ TIntuitionBase = record
+ LibNode: TLibrary;
+
+ ViewLord: TView;
+
+ ActiveWindow: PWindow;
+ ActiveScreen: PScreen;
+ FirstScreen: PScreen; { for linked list of all screens, the FirstScreen variable points to the frontmost Screen.
+ Screens are then maintained in a front to back order using Screen.NextScreen }
+ Flags: LongWord; // see definitions below
+{$ifdef AROS_FLAVOUR_BINCOMPAT}
+ MouseX,
+ MouseY: SmallInt; // mouse position relative to View
+{$else}
+ MouseY,
+ MouseX: SmallInt; // mouse position relative to View
+{$endif}
+
+ Seconds: LongWord; // timestamp of most current input event
+ Micros: LongWord; // timestamp of most current input event
+
+ // I told you this was private. The data beyond this point has changed, is changing, and will continue to change.
+ end;
+
+{ Package of information passed to custom and 'boopsi'
+ gadget 'hook' functions. This structure is READ ONLY.}
+type
+ PGadgetInfo = ^TGadgetInfo;
+
+ TGadgetInfo = record
+ gi_Screen: PScreen; // ScreenPtr
+ gi_Window: PWindow; // nil for screen gadgets
+ gi_Requester: PRequester; // nil IF not GTYP_REQGADGET
+ gi_RastPort: PRastPort; // rendering information: don't use these without cloning/locking. Official way is to call ObtainRPort()
+ gi_Layer: PLayer; // LayerPtr
+ { copy of dimensions of screen/window/g00/req(/group)
+ that gadget resides in. Left/Top of this box is
+ offset from window mouse coordinates to gadget coordinates
+ screen gadgets: 0,0 (from screen coords)
+ window gadgets (no g00): 0,0
+ GTYP_GZZGADGETs (borderlayer): 0,0
+ GZZ innerlayer gadget: borderleft, bordertop
+ Requester gadgets: reqleft, reqtop}
+ gi_Domain: TIBox;
+ gi_Pens: record
+ DetailPen: Byte;
+ BlockPen: Byte;
+ end;
+ gi_DrInfo: PDrawInfo; // the Detail and Block pens in gi_DrInfo^.dri_Pens[] are for the screen. Use the above for window-sensitive colors.
+ gi_Reserved: array[0..5] of LongWord; // reserved space: this structure is extensible anyway, but using these saves some recompilation
+ end;
+
+{ system private data structure for now
+ prop gadget extra info}
+ PPGX = ^TPGX;
+ TPGX = record
+ pgx_Container: TIBox;
+ pgx_NewKnob: TIBox;
+ end;
+
+{** User visible handles on objects, classes, messages **}
+type
+ Object_ = LongWord;
+ PObject_ = ^Object_;
+ PPObject_ = ^PObject_;
+ ClassID = STRPTR;
+
+{ you can use this type to point to a 'generic' message,
+ in the object-oriented programming parlance. Based on
+ the value of 'MethodID', you dispatch to processing
+ for the various message types. The meaningful parameter
+ packet structure definitions are defined below.}
+ PMsg = ^TMsg;
+ TMsg = record
+ MethodID: LongWord;
+ end;
+
+{ Class id strings for Intuition classes.
+ There's no real reason to use the uppercase constants
+ over the lowercase strings, but this makes a good place
+ to list the names of the built-in classes.}
+const
+ ROOTCLASS: ClassID = 'rootclass'; // classusr.h
+ IMAGECLASS: ClassID = 'imageclass'; // imageclass.h
+ FRAMEICLASS: ClassID = 'frameiclass';
+ SYSICLASS: ClassID = 'sysiclass';
+ FILLRECTCLASS: ClassID = 'fillrectclass';
+ GADGETCLASS: ClassID = 'gadgetclass'; // gadgetclass.h
+ PROPGCLASS: ClassID = 'propgclass';
+ STRGCLASS: ClassID = 'strgclass';
+ BUTTONGCLASS: ClassID = 'buttongclass';
+ FRBUTTONCLASS: ClassID = 'frbuttonclass';
+ GROUPGCLASS: ClassID = 'groupgclass';
+ ICCLASS: ClassID = 'icclass'; // icclass.h
+ MODELCLASS: ClassID = 'modelclass';
+ ITEXTICLASS: ClassID = 'itexticlass';
+ POINTERCLASS: ClassID = 'pointerclass'; // pointerclass.h
+
+// public classes existing only in AROS but not AmigaOS
+ MENUBARLABELCLASS: PChar = 'menubarlabelclass';
+ WINDECORCLASS: PChar = 'windecorclass';
+ SCRDECORCLASS: PChar = 'scrdecorclass';
+ MENUDECORCLASS: PChar = 'menudecorclass';
+
+{ Dispatched method ID's
+ NOTE: Applications should use Intuition entry points, not direct
+ DoMethod() calls, for NewObject, DisposeObject, SetAttrs,
+ SetGadgetAttrs, and GetAttr}
+ OM_Dummy = $100;
+ OM_NEW = OM_Dummy + 1; // 'object' parameter is 'true class'
+ OM_DISPOSE = OM_Dummy + 2; // delete self (no parameters)
+ OM_SET = OM_Dummy + 3; // set attributes (in tag list)
+ OM_GET = OM_Dummy + 4; // return single attribute value
+ OM_ADDTAIL = OM_Dummy + 5; // add self to a List (let root do it)
+ OM_REMOVE = OM_Dummy + 6; // remove self from list
+ OM_NOTIFY = OM_Dummy + 7; // send to self: notify dependents
+ OM_UPDATE = OM_Dummy + 8; // notification message from somebody
+ OM_ADDMEMBER = OM_Dummy + 9; // used by various classes with lists
+ OM_REMMEMBER = OM_Dummy + 10; // used by various classes with lists
+
+// Parameter 'Messages' passed to methods
+type
+ // OM_NEW and OM_SET
+ PopSet = ^TopSet;
+ TopSet = record
+ MethodID: LongWord;
+ ops_AttrList: PTagItem; // new attributes
+ ops_GInfo: PGadgetInfo; // always there for gadgets, when SetGadgetAttrs() is used, but will be nil for OM_NEW
+ end;
+
+ // OM_GET
+ PopGet = ^TopGet;
+ TopGet = record
+ MethodID,
+ opg_AttrID: LongWord;
+ opg_Storage: Pointer; // may be other types, but 'int' types are all LongWord
+ end;
+
+ // OM_ADDTAIL
+
+ PopAddTail = ^TopAddTail;
+ TopAddTail = record
+ MethodID: LongWord;
+ opat_List: PList;
+ end;
+
+ // OM_ADDMEMBER, OM_REMMEMBER
+ PopMember = ^TopMember;
+ TopMember = record
+ MethodID: LongWord;
+ opam_Object: PObject_;
+ end;
+ TopAddMember = TopMember;
+ PopAddMember = ^TopAddMember;
+
+ // OM_NOTIFY, and OM_UPDATE
+ PopUpdate = ^TopUpdate;
+ TopUpdate = record
+ MethodID: LongWord;
+ opu_AttrList: PTagItem; // new attributes
+ opu_GInfo: PGadgetInfo; // non-nil when SetGadgetAttrs OR notification resulting from gadget input occurs.
+ opu_Flags: LongWord; // defined below (OPUF_*)
+ end;
+
+{ this flag means that the update message is being issued from
+ something like an active gadget, a la GACT_FOLLOWMOUSE. When
+ the gadget goes inactive, it will issue a final update
+ message with this bit cleared. Examples of use are for
+ GACT_FOLLOWMOUSE equivalents for propgadclass, and repeat strobes
+ for buttons.}
+const
+ OPUF_INTERIM = 1; // opu_Flags
+
+{ This structure is READ-ONLY, and allocated only by Intuition }
+type
+ PIClass = ^TIClass;
+ TIClass = record // also used as Class
+ cl_Dispatcher: THook;
+ cl_Reserved: LongWord; // must be 0
+ cl_Super: PIClass; // Super - Class
+ cl_ID: ClassID;
+ cl_InstOffset: Word; // where within an object is the instance data for this class?
+ cl_InstSize: Word;
+
+ cl_UserData: IPTR; // per-class data of your choice, application specific
+ cl_SubclassCount: LongWord; // # of direct suclasses
+ cl_ObjectCount: LongWord; // # of objects, made from this class must be 0, if the class is to be deleted
+ cl_Flags: LongWord; // Flags (CLF_INLIST)
+ cl_ObjectSize: LongWord; // cl_InstOffset + cl_InstSize + SizeOf(_Object)
+ cl_MemoryPool: APTR;
+ end;
+
+const
+ CLF_INLIST = 1 shl 0; // class is in public class list (cl_Flags)
+
+{ We have this, the instance data of the root class, PRECEDING
+ the 'object'. This is so that Gadget objects are Gadget pointers,
+ and so on. If this structure grows, it will always have o_Class
+ at the end, so the macro OCLASS(o) will always have the same
+ offset back from the pointer returned from NewObject().}
+type
+ P_Object = ^T_Object;
+ T_Object = record
+ o_Node: TMinNode;
+ o_Class: PIClass;
+ end;
+
+{ BOOPSI class libraries should use this structure as the base for their
+ library data. This allows developers to obtain the class pointer for
+ performing object-less inquiries. }
+ PClassLibrary = ^TClassLibrary;
+ TClassLibrary = record
+ cl_Lib: TLibrary; // Embedded library
+ cl_Pad: Word; // Align the structure
+ cl_Class: PIClass; // Class pointer
+ end;
+
+{ GadgetClass Attributes
+ Most subclasses of GadgetClass implement a subset of these attributes. Note
+ also that even if an attribute is signed as settable, some subclasses may
+ ignore this or even behave strange, if such an attribute is set, after they
+ were added to a window. Read the class documentation of the subclasses to
+ learn about such caveats.
+
+ Many of these attributes correspond directly to a field of the Gadget
+ structure or to one flag for this structure. }
+const
+ GA_Dummy = (TAG_USER + $30000);
+// Gadget placing (in pixels). Of course, all GA_Rel attributes are mutually
+// exclusive with their non relative equivalents.
+ GA_Left = (GA_Dummy + $0001); // [ISG] (LONG) Left edge of gadget.
+ GA_RelRight = (GA_Dummy + $0002); // [ISG] (LONG) Left edge of gadget, depending on right window border: Left=Win^.Width-this-1
+ GA_Top = (GA_Dummy + $0003); // [ISG] (LONG) Top edge of gadget.
+ GA_RelBottom = (GA_Dummy + $0004); // [ISG] (LONG) Top edge of gadget, depending on bottom window border: Top=Win^.Height-this-1
+ GA_Width = (GA_Dummy + $0005); // [ISG] (LONG) Width of gadget.
+ GA_RelWidth = (GA_Dummy + $0006); // [ISG] (LONG) Width of gadget, depending on window width: Width=Win^.Width-this
+ GA_Height = (GA_Dummy + $0007); // [ISG] (LONG) Height of gadget.
+ GA_RelHeight = (GA_Dummy + $0008); // [ISG] (LONG) Height of gadget, depending on window height: Height=Win^.Height-this
+
+// Gadget rendering
+ GA_Text = (GA_Dummy + $0009); // [IS.] (PChar) Label text. This is mutually exclusive with GA_IntuiText and GA_LabelImage.
+ // The next two attributes are mutually exclusive.
+ GA_Image = (GA_Dummy + $000A); // (PImage) Gadget imagry is an image
+ GA_Border = (GA_Dummy + $000B); // (PBorder) Gadget imagry is a border
+ GA_SelectRender = (GA_Dummy + $000C); { [IS.] (PImage) Gadgets' image in selected state. Note that if
+ this is nil and GA_Image is in fact an image object, GA_Image may be
+ tried to be drawn with IDS_SELECTED. So you do not need to fill this in,
+ if you wish to have a special selected image and GA_Image is an image
+ object that supports the selected state.}
+ GA_Highlight = (GA_Dummy + $000D); // [IS.] (LongWord) Takes GFLG_GADGH* flags as argument. Used to specify the highlighting technique.
+ GA_Disabled = (GA_Dummy + $000E); // [ISG] (LongBool) If this is set to true, the gadget is not selectable. Often this is visually represented by using a special disabled pattern.
+
+// Additional information.
+ GA_GZZGadget = (GA_Dummy + $000F); // [IS.] (LongBool) The Gadget is a GimmeZeroZero gadget. Default = False
+ GA_ID = (GA_Dummy + $0010); // (LongInt) Gadget ID assigned by the application (prevent double numbers)
+ GA_UserData = (GA_Dummy + $0011); // [ISG] (IPTR) Fill with whatever you want to. This field is ignored by the system.
+ GA_SpecialInfo = (GA_Dummy + $0012); { [IS.] (APTR) Pointer to additional information, needed by some gadgets
+ (like string or integer gadgets). This field should generally only be set
+ by subclasses of GadgetClass. Applications should keep their hands off it.}
+
+// Gadget activation.
+ GA_Selected = (GA_Dummy + $0013); // [ISG] (LongBool) Indicate whether the gadget is selected or not. Default = False
+ GA_EndGadget = (GA_Dummy + $0014); // [IS.] (LongBool) Only used for requester gadgets. This tells intuition that the requester is to be closed, when the gadget is released. Default = False
+ GA_Immediate = (GA_Dummy + $0015); // [IS.] (LongBool) If set the gadget responds immediatly, when the gadget is selected. Default = False
+ GA_RelVerify = (GA_Dummy + $0016); // [IS.] (LongBool) If set the gadget responds, when it is released from selected state. Default = False
+ GA_FollowMouse = (GA_Dummy + $0017); // [IS.] (LongBool) If this is set, the gadget receives information about the movement of the mouse as long as it is activated. Default = False
+ GA_RightBorder = (GA_Dummy + $0018); // [IS.] (LongBool) Indicate whether the gadget is in the right border or not. Default = False.
+ GA_LeftBorder = (GA_Dummy + $0019); // [IS.] (LongBool) Indicate whether the gadget is in the left border or not. Default = False.
+ GA_TopBorder = (GA_Dummy + $001A); // [IS.] (LongBool) Indicate whether the gadget is in the top border or not. Default = False.
+ GA_BottomBorder = (GA_Dummy + $001B); // [IS.] (LongBool) Indicate whether the gadget is in the bottom border or not. Default = False.
+ GA_ToggleSelect = (GA_Dummy + $001C); // [IS.] (LongBool) Indicate whether the gadget is toggle-selected or not. Default = False.
+ // The following two attributes are PRIVATE!
+ GA_SysGadget = (GA_Dummy + $001D); // [IS.] (LongBool) Set, if gadget is a system-gadget e.g. a standard window border gadget. Default = False.
+ GA_SysGType = (GA_Dummy + $001E); // [IS.] (LongWord) Reserved for system use to indicate the gadget type.
+
+// Gadget linking.
+ GA_Previous = (GA_Dummy + $001F); { [I..] (PGadget) Pointer to previous gadget. This is used to link
+ the current gadget into a gadget list, before this list is used. It can
+ not be used to add a gadget to a list of an open window or requester!}
+ GA_Next = (GA_Dummy + $0020); // [I..] (PGadget) Next gadget in the linked list. Currently not implemented.
+ GA_DrawInfo = (GA_Dummy + $0021); { [I..] (PDrawInfo) Some gadgets need a DrawInfo structure
+ to be able to perform correct rendering. Read the documentation of the
+ subclasses to learn, which need this attribute. To be on the safe side,
+ you can always supply it.}
+ // You should use at most ONE of GA_Text, GA_IntuiText, and GA_LabelImage
+ GA_IntuiText = (GA_Dummy + $0022); // [IS.] (PIntuiText) Label is an IntuiText.
+ GA_LabelImage = (GA_Dummy + $0023); // [IS.] (PObject_) Label is an image object.
+ GA_TabCycle = (GA_Dummy + $0024); // [IS.] (LongBool) If set to true that gadget participates in TAB handling, i.e. if tab is pressed, the next gadget is activated.
+ GA_GadgetHelp = (GA_Dummy + $0025); // [..G] (LongBool) If this is set by the gadget, the sends GADGETHELP messages.
+ GA_Bounds = (GA_Dummy + $0026); // [IS.] (PIBox) Bounds to be copied into the ExtGadget structure.
+ GA_RelSpecial = (GA_Dummy + $0027); { [IS.] (Long) This attribute should only be set by subclasses of
+ GadgetClass. Applications should keep their hands away!
+ If set this means, that GM_LAYOUT is called, when the window it is in is
+ opened or its size changes. This allows gadgets to make their own size
+ dependent on the size of the window. }
+ GA_TextAttr = GA_Dummy + 40; // [IS.] (PTextAttr) Indicate the font to use for the gadget.
+ GA_ReadOnly = GA_Dummy + 41; // (LongBool) Indicate that the gadget is read-only (non-selectable). Default = False
+ GA_Underscore = GA_Dummy + 42; // (Char) Underscore/escape character for keyboard shortcuts. Defaults = '_'
+ GA_ActivateKey = GA_Dummy + 43; // (PChar) Set/Get the gadgets shortcut/activation key(s) Default = nil
+ GA_BackFill = GA_Dummy + 44; // (PHook) Backfill pattern hook. Defaults to nil.
+ GA_GadgetHelpText = GA_Dummy + 45; // (PChar) RESERVERD/PRIVATE DO NOT USE. Default = nil
+ GA_UserInput = GA_Dummy + 46; // (LongBool) Notification tag indicates this notification is from the activite gadget receiving user input - an attempt to make IDCMPUPDATE more efficient.
+// Aros Specifics
+ GA_LabelPlace = GA_Dummy + 100; { [I..] (LongInt) Choose the placing of the label. GadgetClass does not support
+ this directly. Its subclasses have to take care of that. For possible values see GV_* .}
+
+// Placetext values for GA_LabelPlace.
+ GV_LabelPlace_In = 1;
+ GV_LabelPlace_Left = 2;
+ GV_LabelPlace_Right = 3;
+ GV_LabelPlace_Above = 4;
+ GV_LabelPlace_Below = 5;
+
+//*** PropGClass
+ // This class defines a standard proportional gadget.
+ PGA_Dummy = TAG_USER + $31000;
+ PGA_Freedom = PGA_Dummy + 1; // [IS.] (LongWord) Define in which the direction gadget should stretch. Possible values are FREEVERT and FREEHORIZ
+ PGA_Borderless = PGA_Dummy + 2; // [IS.] (LongBool) If set, no border will be rendered.
+ // The following four attributes should not be used with PGA_Total, PGA_Visible and PGA_Top.
+ PGA_HorizPot = PGA_Dummy + 3; // [ISG] (Word)
+ PGA_HorizBody = PGA_Dummy + 4; // [ISG] (Word)
+ PGA_VertPot = PGA_Dummy + 5; // [ISG] (Word)
+ PGA_VertBody = PGA_Dummy + 6; // [ISG] (Word)
+ // The following three attributes should not be used with the PGA_*Pot and PGA_*Body attributes.
+ PGA_Total = PGA_Dummy + 7; // [IS.] (Word) The total number of positions in the gadget.
+ PGA_Visible = PGA_Dummy + 8; // [IS.] (Word) The number of visible positions in the gadget.
+ PGA_Top = PGA_Dummy + 9; // [ISG] (Word) The first visible position.
+ PGA_NewLook = PGA_Dummy + 10; // [IS.] (LongBool) If set, this indicated that the new look should be used for rendering.
+ PGA_DisplayHook = PGA_Dummy + 11; // [I.G] (PHook) Use this Hook to render the Gadget visuals
+ PGA_NotifyBehaviour = PGA_Dummy + 30; { [I..] (Word) If set to PG_BEHAVIOUR_NICE OM_NOTIFY messages are sent
+ also during OM_SET/OM_UPDATE, not just when user drags the knob, which is the default behaviour (PG_BEHAVIOUR_COMPATIBLE)}
+ PGA_RenderBehaviour = PGA_Dummy + 31; { [I..] (Word) If set to PG_BEHAVIOUR_NICE the gadget is re-rendered
+ during OM_SET/OM_UPDATE even when being a subclass of propgclass.
+ The default behaviour (PG_BEHAVIOUR_COMPATIBLE) is that subclasses
+ of propgclass don't render in OM_SET/OM_UPDATE }
+ // Flags for PGA_*Behaviour
+ PG_BEHAVIOUR_COMPATIBLE = 0;
+ PG_BEHAVIOUR_NICE = 1;
+
+// StrGClass StringGClass is just a normal "string" gadget.
+ STRINGA_Dummy = TAG_USER + $32000;
+ STRINGA_MaxChars = STRINGA_Dummy + 1; // [I..] (SmallInt) Maximum number of characters the string gadget accepts. Default SG_DEFAULTMAXCHARS.
+ STRINGA_Buffer = STRINGA_Dummy + 2; // [I..] (STRPTR) Buffer for storing the current string of the gadget.
+ STRINGA_UndoBuffer = STRINGA_Dummy + 3; // [I..] (STRPTR) Buffer for storing the old (undo) string of the gadget.
+ STRINGA_WorkBuffer = STRINGA_Dummy + 4; // [I..] (STRPTR) Buffer for the class to work with.
+ STRINGA_BufferPos = STRINGA_Dummy + 5; // [IS.] (SmallInt) Current position of cursor (relative to the beginning of the buffer).
+ STRINGA_DispPos = STRINGA_Dummy + 6; // [IS.] (SmallInt) FIXME
+ STRINGA_AltKeyMap = STRINGA_Dummy + 7; // [IS.] (PKeyMap) KeyMap to use
+ STRINGA_Font = STRINGA_Dummy + 8; // [IS.] (PTextFont) Font to use for displaying the string
+ STRINGA_Pens = STRINGA_Dummy + 9; // [IS.] (LongInt) The lower 16 bits specify the background-pen, the upper 16 bits the foreground-pen. The gadget is rendered, using these pens, if the gadget is inactive
+ STRINGA_ActivePens = STRINGA_Dummy + 10; // [IS.] (LongInt) Like STRINGA_Pens. These pens are used, if the gadget is active.
+ STRINGA_EditHook = STRINGA_Dummy + 11; // [I..] (PHook) FIXME
+ STRINGA_EditModes = STRINGA_Dummy + 12; // [IS.] (LongWord) FIXME
+ STRINGA_ReplaceMode = STRINGA_Dummy + 13; // [IS.] (BOOL) If this is TRUE, the current character is overwritten, if the use presses a key. Otherwise, the new character is inserted.
+ STRINGA_FixedFieldMode = STRINGA_Dummy + 14; // [IS.] (LongBool) FIXME
+ STRINGA_NoFilterMode = STRINGA_Dummy + 15; // [IS.] (LongBool) FIXME
+ STRINGA_Justification = STRINGA_Dummy + 16; // [IS.] (UWORD) Where should the text be justified? Use one of GACT_STRINGCENTER, GACT_STRINGLEFT and GACT_STRINGRIGHT
+ STRINGA_LongVal = STRINGA_Dummy + 17; // [ISG] (LONG) If this is set, the string gadget will only accept numeric values. Argument is the number, the string gadget is to be set to. When getting this attribute, this number is returned.
+ STRINGA_TextVal = STRINGA_Dummy + 18; // [ISG] (STRPTR) If this is set, the string gadget will accept strings. Argument is a string that is to be copied into the string gadget and its buffer.
+ STRINGA_ExitHelp = STRINGA_Dummy + 19; // [IS.] (BOOL) If this is set, pressing the "Help" key, while the gadget is active, will unselect the gadget.
+
+ SG_DEFAULTMAXCHARS = 128; // Default, if STRINGA_MaxChars is not set.
+
+ // Gadget Layout related attributes
+ LAYOUTA_Dummy = TAG_USER + $38000;
+ LAYOUTA_LayoutObj = LAYOUTA_Dummy + 1;
+ LAYOUTA_Spacing = LAYOUTA_Dummy + 2;
+ LAYOUTA_Orientation = LAYOUTA_Dummy + 3; // Orientation LORIENT_*
+ LAYOUTA_ChildMaxWidth = LAYOUTA_Dummy + 4; // (BOOL) Child objects are of equal width. Should default to True for gadgets with a horizontal orientation.
+ LAYOUTA_ChildMaxHeight = LAYOUTA_Dummy + 5; // (BOOL) Child objects are of equal height. Should default to True for gadgets with a vertical orientation.
+ // orientation values for LAYOUTA_Orientation
+ LORIENT_NONE = 0;
+ LORIENT_HORIZ = 1;
+ LORIENT_VERT = 2;
+
+// Gadget Method ID's
+ GM_Dummy = -1; // not used for anything
+ GM_HITTEST = 0; // return GMR_GADGETHIT IF you are clicked on (whether or not you are disabled).
+ GM_RENDER = 1; // draw yourself, in the appropriate state
+ GM_GOACTIVE = 2; // you are now going to be fed input
+ GM_HANDLEINPUT = 3; // handle that input
+ GM_GOINACTIVE = 4; // whether or not by choice, you are done
+ GM_HELPTEST = 5; // Will you send gadget help if the mouse is at the specified coordinates? See below for possible GMR_ values. }
+ GM_LAYOUT = 6; // re-evaluate your size based on the GadgetInfo Domain. Do NOT re-render yourself yet, you will be called when it is time...
+ GM_DOMAIN = 7; // This method is invoked to learn about the sizing requirements of your class, before an object is created.
+
+// Parameter "Messages" passed to gadget class methods
+type
+ // GM_HITTEST
+ { This method is used to test, if a mouse-click hit the gadget. You return
+ GMR_GADGETHIT (see below), if you were hit and 0 otherwise. Note that you
+ have to test, if you were hit, no matter if you are disabled or not.}
+ PgpHitTest = ^TgpHitTest;
+ TgpHitTest = record
+ MethodID: LongWord; // GM_HITEST or GM_HELPTEST
+ gpht_GInfo: PGadgetInfo;
+ gpht_Mouse: record // These values are relative to the gadget select box for GM_HITTEST. For
+ x: SmallInt; // GM_HELPTEST they are relative to the bounding box (which is often
+ y: SmallInt; // equal to the select box).
+ end;
+ end;
+const
+ GMR_GADGETHIT = $00000004; // GM_HITTEST hit
+ GMR_NOHELPHIT = $00000000; // GM_HELPTEST didn't hit
+ GMR_HELPHIT = $FFFFFFFF; // GM_HELPTEST hit, The gadget was hit. The lower word of the Code field of the IntuiMessage will be set to -1.
+ GMR_HELPCODE = $00010000; // GM_HELPTEST hit, return low Word as code. The gadget was hit. Pass the lower word, returned by this method to the application by using the Code field of the IntuiMessage.
+
+type
+ // GM_RENDER This method is invoked to draw the gadget into a rastport.
+ PgpRender = ^TgpRender;
+ TgpRender = record
+ MethodID: LongWord; // GM_RENDER
+ gpr_GInfo: PGadgetInfo; // gadget context
+ gpr_RPort: PRastPort; // all ready for use
+ gpr_Redraw: LongInt; // might be a "highlight pass" (GREDRAW_*)
+ end;
+const
+ // gpr_Redraw. Not all of these values make sense for all gadgets.
+ GREDRAW_UPDATE = 2; // incremental update. Some data (e.g. the level of a slider) was updated. Just redraw the necessary parts.
+ GREDRAW_REDRAW = 1; // redraw the whole gadget
+ GREDRAW_TOGGLE = 0; // toggle highlight, IF applicable
+
+type
+ // GM_GOACTIVE, GM_HANDLEINPUT
+ {GM_GOACTIVE tells the gadget that it has become active and will receive
+ input from now on from the method GM_HANDLEINPUT. This is stopped by using
+ GM_GOINACTIVE (see below).
+ GM_GOACTIVE and GM_HANDLEINPUT both use the same structure and return the
+ same values, as defined below.}
+ PgpInput = ^TgpInput;
+ TgpInput = record
+ MethodID: LongWord; // GM_GOACTIVE or GM_HANDLEINPUT
+ gpi_GInfo: PGadgetInfo; // gadget context
+ gpi_IEvent: PInputEvent; // Pointer to the InputEvent that caused the method to be invoked.
+ gpi_Termination: Pointer; { Pointer to a variable that is to be set by the gadget class, if
+ GMR_VERIFY is returned. The lower 16 bits of this value are returned
+ in the Code field of the IntuiMessage passed back to the application}
+ gpi_Mouse: record // This struct defines the current mouse position, relative to the gadgets' bounding box.
+ x: SmallInt;
+ y: SmallInt;
+ end;
+ gpi_TabletData: PTabletData; { Pointer to TabletData structure or nil,
+ if this input event did not originate from a tablet that is capable of
+ sending IESUBCLASS_NEWTABLET events.}
+ end;
+const
+ // GM_HANDLEINPUT and GM_GOACTIVE return code flags. These are actually flags and may be or'ed.
+ GMR_MEACTIVE = 0; // Gadget is still alive.
+ GMR_NOREUSE = 1 shl 1; // Gadget has become inactive, but the input event may not be used again.
+ GMR_REUSE = 1 shl 2; // Gadget has become inactive, and the input event may be reused by intuition.
+ GMR_VERIFY = 1 shl 3; // Gadget was selected. Generate IDCMP_GADGETUP message. gpi_Termination must be set.
+ { If one of the following two flags is returned, the gadget has become
+ inactive, but the next or previous gadget, which has the GFLG_TABCYCLE flag
+ set is to be activated.}
+ GMR_NEXTACTIVE = 1 shl 4; // Activate next gadget.
+ GMR_PREVACTIVE = 1 shl 5; // Activate previous gadget.
+
+type
+ // GM_GOINACTIVE see GM_GOACTIVE for explanation
+ PgpGoInactive = ^TgpGoInactive;
+ TgpGoInactive = record
+ MethodID: LongWord; // GM_GOINACTIVE
+ gpgi_GInfo: PGadgetInfo;
+ gpgi_Abort: LongWord; { Boolean field to indicate, who wanted the gadget to go inactive. If
+ this is 1 this method was sent, because intution wants the gadget to
+ go inactive, if it is 0, it was the gadget itself that wanted it.}
+ end;
+
+type
+ // GM_LAYOUT
+ { This method is called by intuition, if on of the GFLG_REL flags or one of
+ the GA_Rel attributes is set and the window size changes or you are added to
+ a window. In this method you should re-evaluate the size of yourself. You
+ are not allowed to do any rendering operation during this method!}
+ PgpLayout = ^TgpLayout;
+ TgpLayout = record
+ MethodID: LongWord; // GM_LAYOUT
+ gpl_GInfo: PGadgetInfo;
+ gpl_Initial: LongWord; {Boolean that indicated, if this method was invoked, when you are added
+ to a window (True) or if it is called, because the window was resized
+ (False).}
+ end;
+
+ // GM_DOMAIN
+ { This method is invoked to learn about the sizing requirements of your class,
+ before an object is created. This is AROS specific.}
+ PgpDomain = ^TgpDomain;
+ TgpDomain = record
+ MethodID: LongWord; // GM_DOMAIN
+ gpd_GInfo: PGadgetInfo;
+ gpd_RPort: PRastPort; // RastPort to calculate dimensions for.
+ gpd_Which: LONG; // what to calculate (GDOMAIN_*)
+ gpd_Domain: TIBox; // Resulting domain
+ gpd_Attrs: PTagItem; // Additional attributes. None defines yet
+ end;
+const
+ // gpd_Which
+ GDOMAIN_MINIMUM = 0; // Calculate minimum size.
+ GDOMAIN_NOMINAL = 1; // Calculate nominal size.
+ GDOMAIN_MAXIMUM = 2; // Calculate maximum size.
+
+const
+ ICM_Dummy = $0401; // used for nothing
+ // no parameters for ICM_SETLOOP, ICM_CLEARLOOP, ICM_CHECKLOOP
+ ICM_SETLOOP = ICM_Dummy + 1; // set/increment loop counter
+ ICM_CLEARLOOP = ICM_Dummy + 2; // clear/decrement loop counter
+ ICM_CHECKLOOP = ICM_Dummy + 3; // set/increment loop
+ // interconnection attributes used by icclass, modelclass, and gadgetclass
+ ICA_Dummy = TAG_USER + $40000;
+ ICA_TARGET = ICA_Dummy + 1; // interconnection target
+ ICA_MAP = ICA_Dummy + 2; // interconnection map tagitem list
+ ICSPECIAL_CODE = ICA_Dummy + 3; // a "pseudo-attribute", see below.
+
+{ Normally, the value for ICA_TARGET is some object pointer,
+ but if you specify the special value ICTARGET_IDCMP, notification
+ will be send as an IDCMP_IDCMPUPDATE message to the appropriate window's
+ IDCMP port. See the definition of IDCMP_IDCMPUPDATE.
+ When you specify ICTARGET_IDCMP for ICA_TARGET, the map you
+ specify will be applied to derive the attribute list that is
+ sent with the IDCMP_IDCMPUPDATE message. If you specify a map list
+ which results in the attribute tag id ICSPECIAL_CODE, the
+ lower sixteen bits of the corresponding ti_Data value will
+ be copied into the Code field of the IDCMP_IDCMPUPDATE IntuiMessage.}
+ ICTARGET_IDCMP = not 0;
+
+const
+ // if image.Depth is this, it's a new Image class object
+ CUSTOMIMAGEDEPTH = -1;
+
+ // Attributes for IMAGECLASS
+ IA_Dummy = TAG_USER + $20000;
+ IA_Left = IA_Dummy + $01;
+ IA_Top = IA_Dummy + $02;
+ IA_Width = IA_Dummy + $03;
+ IA_Height = IA_Dummy + $04;
+ IA_FGPen = IA_Dummy + $05; // IA_FGPen also means "PlanePick"
+ IA_BGPen = IA_Dummy + $06; // IA_BGPen also means "PlaneOnOff"
+ IA_Data = IA_Dummy + $07; // bitplanes, for classic image, other image classes may use it for other things
+ IA_LineWidth = IA_Dummy + $08;
+ IA_Pens = IA_Dummy + $0E; // pointer to UWord pens[], ala DrawInfo.Pens, MUST be terminated by (not 0). Some classes can choose to have this, or SYSIA_DrawInfo, or both.
+ IA_Resolution = IA_Dummy + $0F; // packed uwords for x/y resolution into a LongWord ala DrawInfo.Resolution
+ // see class documentation to learn which classes recognize these
+ IA_APattern = IA_Dummy + $10;
+ IA_APatSize = IA_Dummy + $11;
+ IA_Mode = IA_Dummy + $12;
+ IA_Font = IA_Dummy + $13;
+ IA_Outline = IA_Dummy + $14;
+ IA_Recessed = IA_Dummy + $15;
+ IA_DoubleEmboss = IA_Dummy + $16;
+ IA_EdgesOnly = IA_Dummy + $17; // to specify that the interior of a frame should not be cleared
+ // SYSICLASS attributes
+ SYSIA_Size = IA_Dummy + $0B; // see below SYSISIZE_*
+ SYSIA_Depth = IA_Dummy + $0C;
+ SYSIA_Which = IA_Dummy + $0D; // see below
+ SYSIA_UserBuffer = IA_Dummy + $20; // Only for system Images
+ SYSIA_DrawInfo = IA_Dummy + $18; // Must be specified
+ SYSIA_ReferenceFont = IA_Dummy + $19; // Font to use as reference for scaling certain sysiclass images
+ IA_SupportsDisable = IA_Dummy + $1a; // Tell intuition to use IDS_*DISABLED instead of own code
+ IA_FrameType = IA_Dummy + $1b; // Starting with V39, FrameIClass recognizes several standard types of frame. Use one of the FRAME_* specifiers below. Default = FRAME_DEFAULT.
+ // Private AROS sysiclass tags and defines
+ SYSIA_WithBorder = IA_FGPen; // default: True
+ SYSIA_Style = IA_BGPen; // default: SYSISTYLE_NORMAL
+
+ SYSISTYLE_NORMAL = 0;
+ SYSISTYLE_GADTOOLS = 1; // to get arrow images in gadtools look
+
+ // data values for SYSIA_Size
+ SYSISIZE_MEDRES = 0;
+ SYSISIZE_LOWRES = 1;
+ SYSISIZE_HIRES = 2;
+
+// SYSIA_Which tag data values: Specifies which system gadget you want an image for. Some numbers correspond to internal Intuition
+ DEPTHIMAGE = $00; // Window depth gadget image
+ ZOOMIMAGE = $01; // Window zoom gadget image
+ SIZEIMAGE = $02; // Window sizing gadget image
+ CLOSEIMAGE = $03; // Window close gadget image
+ SDEPTHIMAGE = $05; // Screen depth gadget image
+ LEFTIMAGE = $0A; // Left-arrow gadget image
+ UPIMAGE = $0B; // Up-arrow gadget image
+ RIGHTIMAGE = $0C; // Right-arrow gadget image
+ DOWNIMAGE = $0D; // Down-arrow gadget image
+ CHECKIMAGE = $0E; // GadTools checkbox image
+ MXIMAGE = $0F; // GadTools mutual exclude "button" image
+ MENUCHECK = $10; // Menu checkmark image
+ AMIGAKEY = $11; // Menu Amiga-key image
+
+ // Data values for IA_FrameType (recognized by FrameIClass)
+ FRAME_DEFAULT = 0; // The standard V37-type frame, which has thin edges.
+ FRAME_BUTTON = 1; // Standard button gadget frames, having thicker sides and nicely edged corners.
+ FRAME_RIDGE = 2; // A ridge such as used by standard string gadgets. You can recess the ridge to get a groove image.
+ FRAME_ICONDROPBOX = 3; // A broad ridge which is the standard imagery for areas in AppWindows where icons may be dropped.
+
+ // image message id's
+ IM_DRAW = $202; // draw yourself, with "state"
+ IM_HITTEST = $203; // return True if click hits image
+ IM_ERASE = $204; // erase yourself
+ IM_MOVE = $205; // draw new and erase old, smoothly
+ IM_DRAWFRAME = $206; // draw with specified dimensions
+ IM_FRAMEBOX = $207; // get recommended frame around some box
+ IM_HITFRAME = $208; // hittest with dimensions
+ IM_ERASEFRAME = $209; // hittest with dimensions
+
+ // image draw states or styles, for IM_DRAW
+ IDS_NORMAL = 0;
+ IDS_SELECTED = 1; // for selected gadgets
+ IDS_DISABLED = 2; // for disabled gadgets
+ IDS_BUSY = 3; // for future functionality
+ IDS_INDETERMINATE = 4; // for future functionality
+ IDS_INACTIVENORMAL = 5; // normal, in inactive window border
+ IDS_INACTIVESELECTED = 6; // selected, in inactive border
+ IDS_INACTIVEDISABLED = 7; // disabled, in inactive border
+ IDS_SELECTEDDISABLED = 8; // disabled and selected
+
+type
+ // IM_FRAMEBOX
+ PimpFrameBox = ^TimpFrameBox;
+ TimpFrameBox = record
+ MethodID: LongWord;
+ imp_ContentsBox: PIBox; // input: relative box of contents
+ imp_FrameBox: PIBox; // output: rel. box of encl frame
+ imp_DrInfo: PDrawInfo; // may be nil
+ imp_FrameFlags: LongWord;
+ end;
+
+const
+ FRAMEF_SPECIFY = 1 shl 0; // Make do with the dimensions of FrameBox provided.
+
+type
+ PimpPos = ^TimpPos;
+ TimpPos = record
+ X: SmallInt;
+ Y: SmallInt;
+ end;
+
+ PimpSize = ^TimpSize;
+ TimpSize = record
+ Width: SmallInt;
+ Height: SmallInt;
+ end;
+
+ // IM_DRAW, IM_DRAWFRAME
+ PimpDraw = ^TimpDraw;
+ TimpDraw = record
+ MethodID: LongWord;
+ imp_RPort: PRastPort;
+ imp_Offset: TimpPos;
+ imp_State: LongWord;
+ imp_DrInfo: PDrawInfo; // May be nil
+ imp_Dimensions: TimpSize; // Only valid for IM_DRAWFRAME
+ end;
+
+ // IM_ERASE, IM_ERASEFRAME NOTE: This is a subset of TimpDraw
+ PimpErase = ^TimpErase;
+ TimpErase = record
+ MethodID: LongWord;
+ imp_RPort: PRastPort;
+ imp_Offset: TimpPos;
+ imp_Dimensions: TimpSize; // // Only valid for IM_DRAWFRAME
+ end;
+
+ // IM_HITTEST, IM_HITFRAME
+ PimpHitTest = ^TimpHitTest;
+ TimpHitTest = record
+ MethodID: LongWord;
+ imp_Point: TimpPos;
+ imp_Dimensions: TimpSize; // only valid for IM_HITFRAME
+ end;
+
+// 'boopsi' pointer class interface
+const
+ // The following tags are recognized at NewObject() time by pointerclass
+ POINTERA_Dummy = TAG_USER + $39000;
+ POINTERA_BitMap = POINTERA_Dummy + $01; // (PBitmap) Pointer to bitmap to get pointer imagery from. Bitplane data need not be in chip RAM.
+ POINTERA_XOffset = POINTERA_Dummy + $02; // (LongInt) - X-offset of the pointer hotspot.
+ POINTERA_YOffset = POINTERA_Dummy + $03; // (LongInt) - Y-offset of the pointer hotspot.
+ POINTERA_WordWidth = POINTERA_Dummy + $04; // (LongWord) - designed width of the pointer in words
+ POINTERA_XResolution = POINTERA_Dummy + $05; // (LongWord) - one of the POINTERXRESN_ flags below
+ POINTERA_YResolution = POINTERA_Dummy + $06; // (LongWord) - one of the POINTERYRESN_ flags below
+
+ // These are the choices for the POINTERA_XResolution attribute which
+ // will determine what resolution pixels are used for this pointer.
+ POINTERXRESN_DEFAULT = 0; // (ECS-compatible pointer width) = 70 ns if SUPERHIRES-type mode, 140 ns if not
+ POINTERXRESN_140NS = 1; // (pointer always in 140 ns pixels) = 140 ns always
+ POINTERXRESN_70NS = 2; // (pointer always in 70 ns pixels) = 70 ns always
+ POINTERXRESN_35NS = 3; // (pointer always in 35 ns pixels) = 35 ns always
+ POINTERXRESN_SCREENRES = 4; // Same as pixel speed of screen
+ POINTERXRESN_LORES = 5; // (pointer always in lores-like pixels) = 140 ns in 15kHz modes, 70 ns in 31kHz modes
+ POINTERXRESN_HIRES = 6; // (pointer always in hires-like pixels) = 70 ns in 15kHz modes, 35 ns in 31kHz modes
+
+{ These are the choices for the POINTERA_YResolution attribute which
+ will determine what vertical resolution is used for this pointer.
+
+ POINTERYRESN_DEFAULT
+ = In 15 kHz modes, the pointer resolution will be the same
+ as a non-interlaced screen. In 31 kHz modes, the pointer
+ will be doubled vertically. This means there will be about
+ 200-256 pointer lines per screen.
+
+ POINTERYRESN_HIGH
+ POINTERYRESN_HIGHASPECT
+ = Where the hardware/software supports it, the pointer resolution
+ will be high. This means there will be about 400-480 pointer
+ lines per screen. POINTERYRESN_HIGHASPECT also means that
+ when the pointer comes out double-height due to hardware/software
+ restrictions, its width would be doubled as well, if possible
+ (to preserve aspect).
+
+ POINTERYRESN_SCREENRES
+ POINTERYRESN_SCREENRESASPECT
+ = Will attempt to match the vertical resolution of the pointer
+ to the screen's vertical resolution. POINTERYRESN_SCREENASPECT also
+ means that when the pointer comes out double-height due to
+ hardware/software restrictions, its width would be doubled as well,
+ if possible (to preserve aspect).}
+
+ POINTERYRESN_DEFAULT = 0;
+ POINTERYRESN_HIGH = 2;
+ POINTERYRESN_HIGHASPECT = 3;
+ POINTERYRESN_SCREENRES = 4;
+ POINTERYRESN_SCREENRESASPECT = 5;
+type
+ PSGWork = ^TSGWork;
+ TSGWork = record
+ // set up when gadget is first activated }
+ Gadget: PGadget; // the contestant itself
+ StringInfo: PStringInfo; // easy access to sinfo
+ WorkBuffer: STRPTR; // intuition's planned result
+ PrevBuffer: STRPTR; // what was there before
+ Modes: LongWord; // current mode
+ // modified for each input event
+ IEvent: PInputEvent; // actual event: do not change
+ Code: Word; // character code, IF one Byte
+ BufferPos: SmallInt; // cursor position
+ NumChars: SmallInt;
+ Actions: LongWord; // what Intuition will do
+ LongInt_: LongInt; // temp storage for LongInt
+ GadgetInfo: PGadgetInfo;
+ EditOp: Word; // from constants below
+ end;
+
+{ TSGWork.EditOp - These values indicate what basic type of operation the global editing hook has performed on the string before your gadget's custom
+ editing hook gets called. You do not have to be concerned with the value your custom hook leaves in the EditOp field, only if you write a global editing hook.
+ For most of these general edit operations, you'll want to compare the BufferPos and NumChars of the StringInfo (before global editing) and SGWork (after global editing).}
+const
+ EO_NOOP = $0001; // did nothing
+ EO_DELBACKWARD = $0002; // deleted some chars (maybe 0).
+ EO_DELFORWARD = $0003; // deleted some characters under and in front of the cursor
+ EO_MOVECURSOR = $0004; // moved the cursor
+ EO_ENTER = $0005; // "enter" or "return" key, terminate
+ EO_RESET = $0006; // current Intuition-style undo
+ EO_REPLACECHAR = $0007; // replaced one character and (maybe) advanced cursor
+ EO_INSERTCHAR = $0008; // inserted one char into string or added one at end
+ EO_BADFORMAT = $0009; // didn't like the text data, e.g., Bad LONGINT
+ EO_BIGCHANGE = $000A; // unused by Intuition complete or major change to the text, e.g. new string
+ EO_UNDO = $000B; // unused by Intuition some other style of undo
+ EO_CLEAR = $000C; // clear the string
+ EO_SPECIAL = $000D; // unused by Intuition some operation that doesn't fit into the categories here
+
+ // Mode Flags definitions (ONLY first group allowed as InitialModes)
+ SGM_REPLACE = 1 shl 0; // replace mode please initialize StringInfo with in-range value of BufferPos if you are using SGM_REPLACE mode.
+ SGM_FIXEDFIELD = 1 shl 1; // fixed length buffer always set SGM_REPLACE, too
+ SGM_NOFILTER = 1 shl 2; // don't filter control chars
+ SGM_EXITHELP = 1 shl 7; // exit with code = $5F IF HELP hit
+ // These Mode Flags are for internal use only
+ SGM_NOCHANGE = 1 shl 3; // no edit changes yet
+ SGM_NOWORKB = 1 shl 4; // Buffer = PrevBuffer
+ SGM_CONTROL = 1 shl 5; // control char escape mode
+ SGM_LONGINT = 1 shl 6; // an intuition LongInt gadget
+ // String Gadget Action Flags (put in SGWork.Actions by EditHook)
+ SGA_USE = $1; // use contents of SGWork
+ SGA_END = $2; // terminate gadget, code in Code field
+ SGA_BEEP = $4; // flash the screen for the user
+ SGA_REUSE = $8; // reuse input event
+ SGA_REDISPLAY = $10; // gadget visuals changed
+ SGA_NEXTACTIVE = $20; // Make next possible gadget active.
+ SGA_PREVACTIVE = $40; // Make previous possible gadget active.
+ // function id for only existing custom string gadget edit hook
+ SGH_KEY = 1; // process editing keystroke
+ SGH_CLICK = 2; // process mouse click cursor position
+
+{ Here's a brief summary of how the custom string gadget edit hook works:
+ You provide a hook in StringInfo.Extension.EditHook. The hook is called in the standard way with the 'object' a pointer to SGWork,
+ and the 'message' a pointer to a command block, starting either with (LongWord) SGH_KEY, SGH_CLICK, or something new.
+ You return 0 if you don't understand the command (SGH_KEY is required and assumed). Return non-zero if you implement the command.
+ SGH_KEY:
+ There are no parameters following the command LongWord. Intuition will put its idea of proper values in the SGWork
+ before calling you, and if you leave SGA_USE set in the SGWork.Actions field, Intuition will use the values
+ found in SGWork fields WorkBuffer, NumChars, BufferPos, and LongInt, copying the WorkBuffer back to the StringInfo
+ Buffer.
+
+ NOTE WELL: You may NOT change other SGWork fields.
+ If you clear SGA_USE, the string gadget will be unchanged.
+
+ If you set SGA_END, Intuition will terminate the activation of the string gadget. If you also set SGA_REUSE, Intuition
+ will reuse the input event after it deactivates your gadget. In this case, Intuition will put the value found in SGWork.Code
+ into the IntuiMessage.Code field of the IDCMP_GADGETUP message it sends to the application.
+
+ If you set SGA_BEEP, Intuition will call DisplayBeep(); use this if the user has typed in error, or buffer is full.
+
+ Set SGA_REDISPLAY if the changes to the gadget warrant a gadget redisplay. Note: cursor movement requires a redisplay.
+ Starting in V37, you may set SGA_PREVACTIVE or SGA_NEXTACTIVE when you set SGA_END. This tells Intuition that you want
+ the next or previous gadget with GFLG_TABCYCLE to be activated.
+
+ SGH_CLICK:
+ This hook command is called when Intuition wants to position the cursor in response to a mouse click in the string gadget.
+ Again, here are no parameters following the command LongWord. This time, Intuition has already calculated the mouse position
+ character cell and put it in SGWork.BufferPos. The previous BufferPos value remains in the SGWork.StringInfo.BufferPos.
+
+ Intuition will again use the SGWork fields listed above for SGH_KEY. One restriction is that you are NOT allowed to set
+ SGA_END or SGA_REUSE for this command. Intuition will not stand for a gadget which goes inactive when you click in it.
+
+ You should always leave the SGA_REDISPLAY flag set, since Intuition uses this processing when activating a string gadget.}
+type
+{ NewDecorator structure used by ChangeDecoration the three Objects (nd_Window, nd_Screen and nd_Menu must be installed and point to decorator objects
+ the port is used for different issues and will be filled up with DecoratorMessages}
+ PNewDecorator = ^TNewDecorator;
+ TNewDecorator = record
+ nd_Node: TNode;
+ nd_Port: PMsgPort;
+ nd_cnt: Word;
+ nd_Pattern: STRPTR;
+ nd_IntPattern: STRPTR; // Private, transformated Pattern be dos/ParsePattern()
+ nd_Window: PObject_;
+ nd_Screen: PObject_;
+ nd_Menu: PObject_;
+ end;
+
+ PDecoratorMessage = ^TDecoratorMessage;
+ TDecoratorMessage = record
+ dm_Message: TMagicMessage;
+ dm_Class: LongWord;
+ dm_Code: LongWord;
+ dm_Flags: LongWord;
+ dm_Object: IPTR;
+ end;
+
+ PScreenNotifyMessage = ^TScreenNotifyMessage;
+ TScreenNotifyMessage = record
+ snm_Message: PMagicMessage;
+ snm_Class: LongWord; // Notification Class ID same as SNA_Notify
+ snm_Code: LongWord; // Code only supported for ScreenDepth() and will put the Flags in
+ snm_Object: IPTR; // Pointer to the Object that caused this message
+ snm_UserData: IPTR; // will be filled with SNA_UserData
+ end;
+
+const
+ DECORATOR_VERSION = 0;
+ SCREENNOTIFY_VERSION = 0;
+{ there is only one Message in the initial decoration system it will be sent to the decorator port to signal that it´ll not be used any longer
+ and may be destroyed, in that case the dm_Object contains the NewDecorator struct Intuition does not touch anything, the decorator have to
+ destroy all objects as well as the NewDecorator struct.}
+ DM_CLASS_DESTROYDECORATOR = $8001;
+ // Tags for Screen notify message
+ SNA_PubName = TAG_USER + $01; // public screen name of nil for all screens
+ SNA_Notify = TAG_USER + $02; // Flags to look for see below
+ SNA_UserData = TAG_USER + $03; // this tag will be passed to the screennotify message
+ SNA_SigTask = TAG_USER + $04; // if port = nil, a sigbit will be set for this task
+ SNA_SigBit = TAG_USER + $05; // signal bit to set if port = nil
+ SNA_MsgPort = TAG_USER + $06; // if <> nil post mesage to this port
+ SNA_Priority = TAG_USER + $07;
+ SNA_Hook = TAG_USER + $08;
+
+ // SNA_Notify (all unassigned bits are reserved for system use)
+ SNOTIFY_AFTER_OPENSCREEN = 1 shl 0; // screen has been opened
+ SNOTIFY_BEFORE_CLOSESCREEN = 1 shl 1; // going to close screen
+ SNOTIFY_AFTER_OPENWB = 1 shl 2; // Workbench is open
+ SNOTIFY_BEFORE_CLOSEWB = 1 shl 3; // Workbench is going to be closed
+ SNOTIFY_AFTER_OPENWINDOW = 1 shl 4; // new window
+ SNOTIFY_BEFORE_CLOSEWINDOW = 1 shl 5; // window is going to be closed
+ SNOTIFY_PUBSCREENSTATE = 1 shl 6; // PubScreenState()
+ SNOTIFY_LOCKPUBSCREEN = 1 shl 7; // LockPubScreen()
+ SNOTIFY_SCREENDEPTH = 1 shl 8; // ScreenDepth()
+ SNOTIFY_AFTER_CLOSESCREEN = 1 shl 9; // notify after CloseScreen()
+ SNOTIFY_AFTER_CLOSEWINDOW = 1 shl 10; // dto. CloseWindow()
+ SNOTIFY_BEFORE_OPENSCREEN = 1 shl 11; // notify before OpenScreen()
+ SNOTIFY_BEFORE_OPENWINDOW = 1 shl 12; // dto. OpenWindow()
+ SNOTIFY_BEFORE_OPENWB = 1 shl 13; // like OPENSCREEN
+ SNOTIFY_AFTER_CLOSEWB = 1 shl 14; // like CLOSESCREEN
+ SNOTIFY_WAIT_REPLY = 1 shl 15; // wait for reply before taking action
+ SNOTIFY_UNLOCKPUBSCREEN = 1 shl 16; // UnlockPubScreen()
+ SNOTIFY_BEFORE_UPDATEINTUITION = 1 shl 17; // Intuition is going to be updated
+ SNOTIFY_AFTER_UPDATEINTUITION = 1 shl 18; // Intuition is updated
+
+ // Attributes for MENUDECORCLASS
+ MDA_Dummy = TAG_USER + $22000;
+ MDA_DrawInfo = MDA_Dummy + 1; // [I.G]
+ MDA_Screen = MDA_Dummy + 2; // [I.G]
+ MDA_TrueColorOnly = MDA_Dummy + 3; // [..G]
+ MDA_UserBuffer = MDA_Dummy + 4; // [I.G]
+ // Methods for MENUDECORCLASS
+ MDM_Dummy = MDA_Dummy + 500;
+ MDM_GETDEFSIZE_SYSIMAGE = MDM_Dummy + 1;
+ MDM_DRAW_SYSIMAGE = MDM_Dummy + 2;
+ MDM_GETMENUSPACES = MDM_Dummy + 3;
+ MDM_DRAWBACKGROUND = MDM_Dummy + 4;
+ MDM_INITMENU = MDM_Dummy + 5;
+ MDM_EXITMENU = MDM_Dummy + 6;
+
+type
+ PmdpGetDefSizeSysImage = ^TmdpGetDefSizeSysImage;
+ TmdpGetDefSizeSysImage = record
+ MethodID: LongWord;
+ mdp_TrueColor: ShortInt;
+ mdp_Dri: PDrawInfo;
+ mdp_ReferenceFont: PTextFont; // In:
+ mdp_Which: LongWord; // In: One of CLOSEIMAGE, SIZEIMAGE, ...
+ mdp_SysiSize: LongWord; // In: lowres/medres/highres
+ mdp_Width: PLongWord; // Out
+ mdp_Height: PLongWord; // Out
+ mdp_Flags: LongWord;
+ end;
+
+ PmdpDrawSysImage = ^TmdpDrawSysImage;
+ TmdpDrawSysImage = record
+ MethodID: LongWord;
+ mdp_TrueColor: ShortInt;
+ mdp_Dri: PDrawInfo;
+ mdp_RPort: PRastPort;
+ mdp_X: LongInt;
+ mdp_Y: LongInt;
+ mdp_Width: LongInt;
+ mdp_Height: LongInt;
+ mdp_Which: LongWord;
+ mdp_State: LongWord;
+ mdp_Flags: LongWord;
+ mdp_UserBuffer: IPTR;
+ end;
+
+ PmdpGetMenuSpaces = ^TmdpGetMenuSpaces;
+ TmdpGetMenuSpaces = record
+ MethodID: LongInt;
+ mdp_TrueColor: ShortInt;
+ mdp_InnerLeft: LongInt; // Out
+ mdp_InnerTop: LongInt; // Out
+ mdp_InnerRight: LongInt;
+ mdp_InnerBottom: LongInt;
+ mdp_ItemInnerLeft: LongInt;
+ mdp_ItemInnerTop: LongInt;
+ mdp_ItemInnerRight: LongInt;
+ mdp_ItemInnerBottom: LongInt;
+ mdp_MinWidth: LongInt;
+ mdp_MinHeight: LongInt;
+ end;
+
+ PmdpDrawBackground = ^TmdpDrawBackground;
+ TmdpDrawBackground = record
+ MethodID: Longword;
+ mdp_TrueColor: ShortInt;
+ mdp_RPort: PRastPort;
+ mdp_X: LongInt;
+ mdp_Y: LongInt;
+ mdp_Width: LongInt;
+ mdp_Height: LongInt;
+ mdp_ItemLeft: LongInt;
+ mdp_ItemTop: LongInt;
+ mdp_ItemWidth: LongInt;
+ mdp_ItemHeight: LongInt;
+ mdp_Flags: Word;
+ mdp_UserBuffer: IPTR;
+ mdp_MenuDecorFlags: LongWord;
+ end;
+
+ PmdpInitMenu = ^TmdpInitMenu;
+ TmdpInitMenu = record
+ MethodID: LongInt;
+ mdp_TrueColor: SmallInt;
+ mdp_RPort: PRastPort;
+ mdp_Screen: PScreen;
+ mdp_Left: LongWord;
+ mdp_Top: LongWord;
+ mdp_Width: LongWord;
+ mdp_Height: LongInt;
+ mdp_UserBuffer: IPTR;
+ mdp_ScreenUserBuffer: IPTR;
+ mdp_MenuDecorFlags: LongWord;
+ end;
+
+ PmdpExitMenu = ^TmdpExitMenu;
+ TmdpExitMenu = record
+ MethodID: LongInt;
+ mdp_TrueColor: ShortInt;
+ mdp_UserBuffer: IPTR;
+ end;
+
+const
+ MDP_STATE_NORMAL = 0;
+ MDP_STATE_SELECTED = 1;
+ MDP_STATE_DISABLED = 2;
+
+ MDP_MDF_MENU = 1 shl 0;
+ MDP_MDF_ITEM = 1 shl 1;
+ MDP_MDF_SUBITEM = 1 shl 2;
+ MDP_MDF_MENUS_UNDERMOUSE = 1 shl 7;
+
+ // Length of array returned by MA_PixelFormats
+ MONITOR_MAXPIXELFORMATS = 14;
+
+ // Attributes
+ MA_Dummy = TAG_USER;
+ MA_MonitorName = MA_Dummy + 1; // [..G] STRPTR Monitor name
+ MA_Manufacturer = MA_Dummy + 2; // [..G] STRPTR Hardware manufacturer string
+ MA_ManufacturerID = MA_Dummy + 3; // [..G] LongWord
+ MA_ProductID = MA_Dummy + 4; // [..G] LongWord
+ MA_MemorySize = MA_Dummy + 5; // [..G] LongWord Video card memory size
+ MA_PixelFormats = MA_Dummy + 6; // [..G] PLongWord Pixelformat support flags
+ MA_TopLeftMonitor = MA_Dummy + 7; // [.SG] PObject_ Monitor placed in a position relative to the current one
+ MA_TopMiddleMonitor = MA_Dummy + 8; // [.SG] PObject_
+ MA_TopRightMonitor = MA_Dummy + 9; // [.SG] PObject_
+ MA_MiddleLeftMonitor = MA_Dummy + 10; // [.SG] PObject_
+ MA_MiddleRightMonitor = MA_Dummy + 11; // [.SG] PObject_
+ MA_BottomLeftMonitor = MA_Dummy + 12; // [.SG] PObject_
+ MA_BottomMiddleMonitor = MA_Dummy + 13; // [.SG] PObject_
+ MA_BottomRightMonitor = MA_Dummy + 14; // [.SG] PObject_
+ MA_GammaControl = MA_Dummy + 15; // [..G] LongBool Whether gamma control is supported
+ MA_PointerType = MA_Dummy + 16; // [..G] LongWord Supported pointer types
+ MA_DriverName = MA_Dummy + 17; // [..G] STRPTR Driver name
+ MA_MemoryClock = MA_Dummy + 18; // [..G] LongWord Video memory clock in Hz, 0 if unknown
+
+ //* Pointer type flags */
+ PointerType_3Plus1 = $0001; // color 0 transparent, 1-3 visible
+ PointerType_2Plus1 = $0002; // color 0 transparent, 2-3 visible, 1 undefined/clear/inverse
+ PointerType_ARGB = $0004; // Direct color alpha-blended bitmap pointer
+
+ // Methods
+ MM_GetRootBitMap = $401; // Reserved
+ MM_Query3DSupport = $402; // Ask for 3D acceleration support for given pixelformat
+ MM_GetDefaultGammaTables = $403; // Get default gamma correction table
+ MM_GetDefaultPixelFormat = $404; // Ask for preferred pixelformat for given depth (-1 = unsupported depth)
+ MM_GetPointerBounds = $405; // Ask for maximum supported mouse pointer size
+ MM_RunBlanker = $406; // Start screensaver for this monitor
+ MM_EnterPowerSaveMode = $407; // Start power saving mode
+ MM_ExitBlanker = $408; // Stop screensaver or power saving mode
+
+ // AROS-specific attributes
+ MA_AROS = TAG_USER + $00010000;
+ MA_Windowed = MA_AROS + 1; // [G..] BOOL A display is a window on hosted OS
+ // AROS-specific methods
+ MM_SetDefaultGammaTables = $1401; // Set default gamma correction table
+
+type
+ PmsGetRootBitMap = ^TmsGetRootBitMap;
+ TmsGetRootBitMap = record
+ MethodID: LongWord;
+ PixelFormat: LongWord;
+ Store: ^PBitMap;
+ end;
+
+ PmsQuery3DSupport = ^TmsQuery3DSupport;
+ TmsQuery3DSupport = record
+ MethodID: LongWord;
+ PixelFormat: LongWord;
+ Store: PLongWord;
+ end;
+const
+ MSQUERY3D_UNKNOWN = 0; // Unsupported pixelformat or other error
+ MSQUERY3D_NODRIVER = 1; // No 3D support available
+ MSQUERY3D_SWDRIVER = 2; // Software 3D support available
+ MSQUERY3D_HWDRIVER = 3; // Hardware accelerated 3D available
+type
+ PmsGetDefaultGammaTables = ^TmsGetDefaultGammaTables;
+ TmsGetDefaultGammaTables = record
+ MethodID: LongWord;
+ Red: PByte; // Optional pointers to 256-byte arrays to fill in
+ Green: PByte;
+ Blue: PByte;
+ end;
+
+ PmsGetDefaultPixelFormat = ^TmsGetDefaultPixelFormat;
+ TmsGetDefaultPixelFormat = record
+ MethodID: LongWord;
+ Depth: LongWord;
+ Store: PLongWord;
+ end;
+
+ PmsGetPointerBounds = ^TmsGetPointerBounds;
+ TmsGetPointerBounds = record
+ MethodID: LongWord;
+ PointerType: LongWord;
+ Width: PLongWord;
+ Height: PLongWord;
+ end;
+
+ PmsSetDefaultGammaTables = PmsGetDefaultGammaTables;
+ TmsSetDefaultGammaTables = TmsGetDefaultGammaTables;
+const
+ // Attributes for SCRDECORCLASS
+ SDA_Dummy = TAG_USER + $22100;
+ SDA_DrawInfo = SDA_Dummy + 1; // [I.G]
+ SDA_Screen = SDA_Dummy + 2; // [I.G]
+ SDA_TrueColorOnly = SDA_Dummy + 3; // [..G]
+ SDA_UserBuffer = SDA_Dummy + 4; // [I.G]
+ // Methods for SCRDECORCLASS */
+ SDM_Dummy = SDA_Dummy + 500;
+ SDM_SETUP = SDM_Dummy + 1;
+ SDM_CLEANUP = SDM_Dummy + 2;
+ SDM_GETDEFSIZE_SYSIMAGE = SDM_Dummy + 3;
+ SDM_DRAW_SYSIMAGE = SDM_Dummy + 4;
+ SDM_DRAW_SCREENBAR = SDM_Dummy + 5;
+ SDM_LAYOUT_SCREENGADGETS = SDM_Dummy + 6;
+ SDM_INITSCREEN = SDM_Dummy + 7;
+ SDM_EXITSCREEN = SDM_Dummy + 8;
+type
+ PsdpGetDefSizeSysImage = ^TsdpGetDefSizeSysImage;
+ TsdpGetDefSizeSysImage = record
+ MethodID: LongWord;
+ sdp_TrueColor: ShortInt;
+ sdp_Dri: PDrawInfo;
+ sdp_ReferenceFont: PTextFont; // In:
+ sdp_Which: LongWord; // In: SDEPTHIMAGE
+ sdp_SysiSize: LongWord; // In: lowres/medres/highres
+ sdp_Width: PLongWord; // Out
+ sdp_Height: PLongWord; // Out
+ sdp_Flags: LongWord;
+ sdp_UserBuffer: LongWord;
+ end;
+
+ PsdpDrawSysImage = ^TsdpDrawSysImage;
+ TsdpDrawSysImage = record
+ MethodID: LongInt;
+ sdp_TrueColor: ShortInt;
+ sdp_Dri: PDrawInfo;
+ sdp_RPort: PRastPort;
+ sdp_X: LongInt;
+ sdp_Y: LongInt;
+ sdp_Width: LongInt;
+ sdp_Height: LongInt;
+ sdp_Which: LongWord;
+ sdp_State: LongWord;
+ sdp_Flags: LongWord;
+ sdp_UserBuffer: IPTR;
+ end;
+
+ PsdpDrawScreenBar = ^TsdpDrawScreenBar;
+ TsdpDrawScreenBar = record
+ MethodID: LongWord;
+ sdp_TrueColor: ShortInt;
+ sdp_Dri: PDrawInfo;
+ sdp_Layer: PLayer;
+ sdp_RPort: PRastPort;
+ sdp_Screen: PScreen;
+ sdp_Flags: LongWord;
+ sdp_UserBuffer: IPTR;
+ end;
+
+ PsdpLayoutScreenGadgets = ^TsdpLayoutScreenGadgets;
+ TsdpLayoutScreenGadgets = record
+ MethodID: LongWord;
+ sdp_TrueColor: ShortInt;
+ sdp_Dri: PDrawInfo;
+ sdp_Layer: PLayer;
+ sdp_Gadgets: PGadget;
+ sdp_Flags: LongWord;
+ sdp_UserBuffer: IPTR;
+ end;
+
+ PsdpInitScreen = ^TsdpInitScreen;
+ TsdpInitScreen = record
+ MethodID: LongWord;
+ sdp_TrueColor: ShortInt;
+ sdp_Dri: PDrawInfo;
+ sdp_Screen: PScreen;
+ sdp_FontHeight: LongWord;
+ sdp_TitleHack: LongInt;
+ sdp_BarHeight: LongWord;
+ sdp_BarVBorder: LongWord;
+ sdp_BarHBorder: LongWord;
+ sdp_MenuVBorder: LongWord;
+ spd_MenuHBorder: LongWord;
+ sdp_WBorTop: ShortInt;
+ sdp_WBorLeft: ShortInt;
+ sdp_WBorRight: ShortInt;
+ sdp_WBorBottom: ShortInt;
+ sdp_UserBuffer: IPTR;
+ end;
+
+ PsdpExitScreen = ^TsdpExitScreen;
+ TsdpExitScreen = record
+ MethodID: LongWord;
+ sdp_TrueColor: ShortInt;
+ sdp_UserBuffer: IPTR;
+ end;
+const
+// ScrDecor LayoutScreenGadgets Flags
+ SDF_LSG_INITIAL = 1; // First time = During OpenScreen
+ SDF_LSG_SYSTEMGADGET = 2; // Is a system gadget (sdepth)
+ SDF_LSG_INGADLIST = 4; // Gadget is already in screen gadget list
+ SDF_LSG_MULTIPLE = 8; // There may be multiple gadgets (linked together through NextGadget. Follow it)
+
+// Attributes for WINDECORCLASS
+ WDA_Dummy = TAG_USER + $22000;
+ WDA_DrawInfo = WDA_Dummy + 1; // [I.G]
+ WDA_Screen = WDA_Dummy + 2; // [I.G]
+ WDA_TrueColorOnly = WDA_Dummy + 3; // [..G]
+ WDA_UserBuffer = WDA_Dummy + 4; // [I.G]
+
+// Methods for WINDECORCLASS
+ WDM_Dummy = WDA_Dummy + 500;
+ WDM_SETUP = WDM_Dummy + 1;
+ WDM_CLEANUP = WDM_Dummy + 2;
+ WDM_GETDEFSIZE_SYSIMAGE = WDM_Dummy + 3;
+ WDM_DRAW_SYSIMAGE = WDM_Dummy + 4;
+ WDM_DRAW_WINBORDER = WDM_Dummy + 5;
+ WDM_LAYOUT_BORDERGADGETS = WDM_Dummy + 6;
+ WDM_DRAW_BORDERPROPBACK = WDM_Dummy + 7;
+ WDM_DRAW_BORDERPROPKNOB = WDM_Dummy + 8;
+ WDM_INITWINDOW = WDM_Dummy + 9;
+ WDM_EXITWINDOW = WDM_Dummy + 10;
+ WDM_WINDOWSHAPE = WDM_Dummy + 11;
+
+type
+ PwdpGetDefSizeSysImage = ^TwdpGetDefSizeSysImage;
+ TwdpGetDefSizeSysImage = record
+ MethodID: LongWord;
+ wdp_TrueColor: ShortInt;
+ wdp_Dri: PDrawInfo;
+ wdp_ReferenceFont: PTextFont; // In:
+ wdp_Which: LongWord; // In: One of CLOSEIMAGE, SIZEIMAGE, ...
+ wdp_SysiSize: LongWord; // In: lowres/medres/highres
+ wdp_Width: PLongWord; // Out
+ wdp_Height: PLongWord; // Out
+ wdp_Flags: LongWord;
+ wdp_UserBuffer: IPTR;
+ end;
+
+ PwdpDrawSysImage = ^TwdpDrawSysImage;
+ TwdpDrawSysImage = record
+ MethodID: LongWord;
+ wdp_TrueColor: ShortInt;
+ wdp_Dri: PDrawInfo;
+ wdp_RPort: PRastPort;
+ wdp_X: LongInt;
+ wdp_Y: LongInt;
+ wdp_Width: LongInt;
+ wdp_Height: LongInt;
+ wdp_Which: LongWord;
+ wdp_State: LongWord;
+ wdp_Flags: LongWord;
+ wdp_UserBuffer: IPTR;
+ end;
+
+ PwdpDrawWinBorder = ^TwdpDrawWinBorder;
+ TwdpDrawWinBorder = record
+ MethodID: LongWord;
+ wdp_TrueColor: ShortInt;
+ wdp_Dri: PDrawInfo;
+ wdp_Window: PWindow;
+ wdp_RPort: PRastPort;
+ wdp_Flags: LongWord;
+ wdp_UserBuffer: IPTR;
+ end;
+
+ PwdpLayoutBorderGadgets = ^TwdpLayoutBorderGadgets;
+ TwdpLayoutBorderGadgets = record
+ MethodID: LongWord;
+ wdp_TrueColor: ShortInt;
+ wdp_Dri: PDrawInfo;
+ wdp_Window: PWindow;
+ wdp_Gadgets: PGadget;
+ wdp_Flags: LongWord;
+ wdp_ExtraButtons: LongWord;
+ wdp_UserBuffer: IPTR;
+ end;
+
+ PwdpDrawBorderPropBack = ^TwdpDrawBorderPropBack;
+ TwdpDrawBorderPropBack = record
+ MethodID: LongWord;
+ wdp_TrueColor: ShortInt;
+ wdp_Dri: PDrawInfo;
+ wdp_Window: PWindow;
+ wdp_RPort: PRastPort;
+ wdp_Gadget: PGadget;
+ wdp_RenderRect: PRectangle;
+ wdp_PropRect: PRectangle;
+ wdp_KnobRect: Prectangle;
+ wdp_Flags: LongWord;
+ wdp_UserBuffer: IPTR;
+ end;
+
+ PwdpDrawBorderPropKnob = ^TwdpDrawBorderPropKnob;
+ TwdpDrawBorderPropKnob = record
+ MethodID: LongWord;
+ wdp_TrueColor: ShortInt;
+ wdp_Dri: PDrawInfo;
+ wdp_Window: PWindow;
+ wdp_RPort: PRastPort;
+ wdp_Gadget: PGadget;
+ wdp_RenderRect: PRectangle;
+ wdp_PropRect: PRectangle;
+ wdp_Flags: LongWord;
+ wdp_UserBuffer: IPTR;
+ end;
+
+ PwdpInitWindow = ^TwdpInitWindow;
+ TwdpInitWindow = record
+ MethodID: LongWord;
+ wdp_TrueColor: ShortInt;
+ wdp_UserBuffer: IPTR;
+ wdp_Screen: PScreen;
+ wdp_ScreenUserBuffer: IPTR;
+ end;
+
+ PwdpExitWindow = ^TwdpExitWindow;
+ TwdpExitWindow = record
+ MethodID: LongWord;
+ wdp_TrueColor: ShortInt;
+ wdp_UserBuffer: IPTR;
+ end;
+
+ PwdpWindowShape = ^TwdpWindowShape;
+ TwdpWindowShape = record
+ MethodID: LongWord;
+ wdp_TrueColor: ShortInt;
+ wdp_Window: PWindow;
+ wdp_Width: LongInt;
+ wdp_Height: LongInt;
+ wdp_UserBuffer: IPTR;
+ end;
+const
+// WinDecor DrawWindowBorder Flags
+ WDF_DWB_TOP_ONLY = 1; // Draw top border only
+// WinDecor DrawWinTitle Title Align
+ WD_DWTA_LEFT = 0;
+ WD_DWTA_RIGHT = 1;
+ WD_DWTA_CENTER = 2;
+// WinDecor LayourBorderGadgets Flags
+ WDF_LBG_INITIAL = 1; // First time == During OpenWindow
+ WDF_LBG_SYSTEMGADGET = 2; // Is a system gadget (close/depth/zoom)
+ WDF_LBG_INGADLIST = 4; // Gadget is already in window gadget list
+ WDF_LBG_MULTIPLE = 8; // There may be multiple gadgets (linked together through NextGadget. Follow it)
+// WinDecor DrawBorderPropKnob Flags
+ WDF_DBPK_HIT = 1; // Knob is hit / in use by user
+
+
+// extensions:
+const
+
+// Sysiclass SYSIA_Which
+ ICONIFYIMAGE = $12;
+ LOCKIMAGE = $13;
+ MUIIMAGE = $14;
+ POPUPIMAGE = $15;
+ SNAPSHOTIMAGE = $16;
+ JUMPIMAGE = $17;
+ MENUTOGGLEIMAGE = $19;
+ SUBMENUIMAGE = $1A;
+
+// Window attributes
+ WA_ExtraTitlebarGadgets = WA_Dummy + 151;
+ WA_ExtraGadgetsStartID = WA_Dummy + 152;
+ WA_ExtraGadget_Iconify = WA_Dummy + 153;
+ WA_ExtraGadget_Lock = WA_Dummy + 154;
+ WA_ExtraGadget_MUI = WA_Dummy + 155;
+ WA_ExtraGadget_PopUp = WA_Dummy + 156;
+ WA_ExtraGadget_Snapshot = WA_Dummy + 157;
+ WA_ExtraGadget_Jump = WA_Dummy + 158;
+
+// WA_ExtraTitlebarGadgets
+ // Flags
+ ETG_ICONIFY = $01;
+ ETG_LOCK = $02;
+ ETG_MUI = $04;
+ ETG_POPUP = $08;
+ ETG_SNAPSHOT = $10;
+ ETG_JUMP = $20;
+
+ // Gadget ID offsets
+ ETD_Iconify = 0;
+ ETD_Lock = 1;
+ ETD_MUI = 2;
+ ETD_PopUp = 3;
+ ETD_Snapshot = 4;
+ ETD_Jump = 5;
+
+ // Gadget IDs
+ ETI_Dummy = $FFD0;
+ ETI_Iconify = ETI_Dummy + ETD_Iconify;
+ ETI_Lock = ETI_Dummy + ETD_Lock;
+ ETI_MUI = ETI_Dummy + ETD_MUI;
+ ETI_PopUp = ETI_Dummy + ETD_PopUp;
+ ETI_Snapshot = ETI_Dummy + ETD_Snapshot;
+ ETI_Jump = ETI_Dummy + ETD_Jump;
+
+// Defines for WindowAction()
+ // Commands
+ WAC_BASE = $0001;
+ WAC_HIDEWINDOW = WAC_BASE + 0 unimplemented;
+ WAC_SHOWWINDOW = WAC_BASE + 1 unimplemented;
+ WAC_SENDIDCMPCLOSE = WAC_BASE + 2;
+ WAC_MOVEWINDOW = WAC_BASE + 3 unimplemented;
+ WAC_SIZEWINDOW = WAC_BASE + 4 unimplemented;
+ WAC_CHANGEWINDOWBOX = WAC_BASE + 5 unimplemented;
+ WAC_WINDOWTOFRONT = WAC_BASE + 6 unimplemented;
+ WAC_WINDOWTOBACK = WAC_BASE + 7 unimplemented;
+ WAC_ZIPWINDOW = WAC_BASE + 8 unimplemented;
+ WAC_MOVEWINDOWINFRONTOF = WAC_BASE + 9 unimplemented;
+ WAC_ACTIVATEWINDOW = WAC_BASE + 10 unimplemented;
+
+ // Tags
+ WAT_BASE = TAG_USER;
+ // WAC_MOVEWINDOW
+ WAT_MOVEWINDOWX = WAT_BASE + 1;
+ WAT_MOVEWINDOWY = WAT_BASE + 2;
+ // WAC_SIZEWINDOW
+ WAT_SIZEWINDOWX = WAT_BASE + 3;
+ WAT_SIZEWINDOWY = WAT_BASE + 4;
+ // WAC_CHANGEWINDOWBOX
+ WAT_WINDOWBOXLEFT = WAT_BASE + 5;
+ WAT_WINDOWBOXTOP = WAT_BASE + 6;
+ WAT_WINDOWBOXWIDTH = WAT_BASE + 7;
+ WAT_WINDOWBOXHEIGHT = WAT_BASE + 8;
+ // WAC_MOVEWINDOWINFRONTOF
+ WAT_MOVEWBEHINDWINDOW = WAT_BASE + 9;
+
+{$ifndef INTUI_V36_NAMES_ONLY}
+
+//* Gadget Type names: */
+
+ GTYPEMASK = GTYP_GTYPEMASK;
+ CUSTOMGADGET = GTYP_CUSTOMGADGET;
+ STRGADGET = GTYP_STRGADGET;
+ PROPGADGET = GTYP_PROPGADGET;
+ GADGET0002 = GTYP_GADGET0002;
+ BOOLGADGET = GTYP_BOOLGADGET;
+ IntuiCLOSE = GTYP_CLOSE;
+ //SDOWNBACK = GTYP_SDOWNBACK; // not in the official AROS includes
+ //WDOWNBACK = GTYP_WDOWNBACK;
+ //SUPFRONT = GTYP_SUPFRONT;
+ //WUPFRONT = GTYP_WUPFRONT;
+ SDRAGGING = GTYP_SDRAGGING;
+ WDRAGGING = GTYP_WDRAGGING;
+ SIZING = GTYP_SIZING;
+ REQGADGET = GTYP_REQGADGET;
+ GZZGADGET = GTYP_GZZGADGET;
+ SCRGADGET = GTYP_SCRGADGET;
+ SYSGADGET = GTYP_SYSGADGET;
+ GADGETTYPE = GTYP_GADGETTYPE;
+// Gadget Flags names:
+ LABELIMAGE = GFLG_LABELIMAGE;
+ LABELSTRING = GFLG_LABELSTRING;
+ LABELITEXT = GFLG_LABELITEXT;
+ LABELMASK = GFLG_LABELMASK;
+ GADGDISABLED = GFLG_DISABLED;
+ SELECTED = GFLG_SELECTED;
+ GRELHEIGHT = GFLG_RELHEIGHT;
+ GRELWIDTH = GFLG_RELWIDTH;
+ GRELRIGHT = GFLG_RELRIGHT;
+ GRELBOTTOM = GFLG_RELBOTTOM;
+ GADGIMAGE = GFLG_GADGIMAGE;
+ GADGHNONE = GFLG_GADGHNONE;
+ GADGHIMAGE = GFLG_GADGHIMAGE;
+ GADGHBOX = GFLG_GADGHBOX;
+ GADGHCOMP = GFLG_GADGHCOMP;
+ GADGHIGHBITS = GFLG_GADGHIGHBITS;
+// Gadget Activation flag names:
+ ACTIVEGADGET = GACT_ACTIVEGADGET;
+ STRINGEXTEND = GACT_STRINGEXTEND;
+ ALTKEYMAP = GACT_ALTKEYMAP;
+ IntuiLONGINT = GACT_LONGINT;
+ STRINGRIGHT = GACT_STRINGRIGHT;
+ STRINGCENTER = GACT_STRINGCENTER;
+ STRINGLEFT = GACT_STRINGLEFT;
+ BOOLEXTEND = GACT_BOOLEXTEND;
+ TOGGLESELECT = GACT_TOGGLESELECT;
+ BORDERSNIFF = GACT_BORDERSNIFF;
+ BOTTOMBORDER = GACT_BOTTOMBORDER;
+ TOPBORDER = GACT_TOPBORDER;
+ LEFTBORDER = GACT_LEFTBORDER;
+ RIGHTBORDER = GACT_RIGHTBORDER;
+ FOLLOWMOUSE = GACT_FOLLOWMOUSE;
+ ENDGADGET = GACT_ENDGADGET;
+ GADGIMMEDIATE = GACT_IMMEDIATE;
+ RELVERIFY = GACT_RELVERIFY;
+// Window Flags names:
+ HASZOOM = WFLG_HASZOOM;
+ ZOOMED = WFLG_ZOOMED;
+ VISITOR = WFLG_VISITOR;
+ NW_EXTENDED = WFLG_NW_EXTENDED;
+ WINDOWTICKED = WFLG_WINDOWTICKED;
+ WBENCHWINDOW = WFLG_WBENCHWINDOW;
+ WINDOWREFRESH = WFLG_WINDOWREFRESH;
+ NOCAREREFRESH = WFLG_NOCAREREFRESH;
+ RMBTRAP = WFLG_RMBTRAP;
+ MENUSTATE = WFLG_MENUSTATE;
+ INREQUEST = WFLG_INREQUEST;
+ WINDOWACTIVE = WFLG_WINDOWACTIVE;
+ ACTIVATE = WFLG_ACTIVATE;
+ BORDERLESS = WFLG_BORDERLESS;
+ GIMMEZEROZERO = WFLG_GIMMEZEROZERO;
+ IntuiREPORTMOUSE = WFLG_REPORTMOUSE;
+ BACKDROP = WFLG_BACKDROP;
+ OTHER_REFRESH = WFLG_OTHER_REFRESH;
+ SUPER_BITMAP = WFLG_SUPER_BITMAP;
+ SIMPLE_REFRESH= WFLG_SIMPLE_REFRESH;
+ SMART_REFRESH = WFLG_SMART_REFRESH;
+ REFRESHBITS = WFLG_REFRESHBITS;
+ SIZEBBOTTOM = WFLG_SIZEBBOTTOM;
+ SIZEBRIGHT = WFLG_SIZEBRIGHT;
+ WINDOWCLOSE = WFLG_CLOSEGADGET;
+ WINDOWDEPTH = WFLG_DEPTHGADGET;
+ WINDOWDRAG = WFLG_DRAGBAR;
+ WINDOWSIZING = WFLG_SIZEGADGET;
+// IDCMP class names:
+ LONELYMESSAGE = IDCMP_LONELYMESSAGE;
+ CHANGEWINDOW = IDCMP_CHANGEWINDOW;
+ MENUHELP = IDCMP_MENUHELP;
+ IDCMPUPDATE = IDCMP_IDCMPUPDATE;
+ INTUITICKS = IDCMP_INTUITICKS;
+ VANILLAKEY = IDCMP_VANILLAKEY;
+ DELTAMOVE = IDCMP_DELTAMOVE;
+ INACTIVEWINDOW = IDCMP_INACTIVEWINDOW;
+ ACTIVEWINDOW = IDCMP_ACTIVEWINDOW;
+ WBENCHMESSAGE = IDCMP_WBENCHMESSAGE;
+ DISKREMOVED = IDCMP_DISKREMOVED;
+ DISKINSERTED = IDCMP_DISKINSERTED;
+ NEWPREFS = IDCMP_NEWPREFS;
+ MENUVERIFY = IDCMP_MENUVERIFY;
+ REQCLEAR = IDCMP_REQCLEAR;
+ REQVERIFY = IDCMP_REQVERIFY;
+ RAWKEY = IDCMP_RAWKEY;
+ IntuiCLOSEWINDOW = IDCMP_CLOSEWINDOW;
+ MENUPICK = IDCMP_MENUPICK;
+ REQSET = IDCMP_REQSET;
+ GADGETUP = IDCMP_GADGETUP;
+ GADGETDOWN = IDCMP_GADGETDOWN;
+ MOUSEMOVE = IDCMP_MOUSEMOVE;
+ MOUSEBUTTONS = IDCMP_MOUSEBUTTONS;
+ REFRESHWINDOW = IDCMP_REFRESHWINDOW;
+ NEWSIZE = IDCMP_NEWSIZE;
+ SIZEVERIFY = IDCMP_SIZEVERIFY;
+{$endif} // not INTUI_V36_NAMES_ONLY
+
+// Tags for GetMonitorList
+const
+ GMLA_Dummy = TAG_USER + $4000;
+ GMLA_DisplayID = GMLA_Dummy + 1;
+
+var
+ IntuitionBase: PIntuitionBase;
+
+
+function ActivateGadget(Gadget: PGadget; Window: PWindow; Requester: PRequester): LongBool; syscall IntuitionBase 77;
+procedure ActivateWindow(Window: PWindow); syscall IntuitionBase 75;
+procedure AddClass(ClassPtr: PIClass); syscall IntuitionBase 114;
+function AddGadget(Window: PWindow; Gadget: PGadget; Position: LongWord): Word; syscall IntuitionBase 7;
+function AddGList(Window: PWindow; Gadget: PGadget; Position: LongWord; NumGad: LongInt; Requester: PRequester): Word; syscall IntuitionBase 73;
+function AllocIntuiMessage(Window: PWindow): PIntuiMessage; syscall IntuitionBase 148;
+function AllocRemember(var RememberKey: PRemember; Size: LongWord; Flags: LongWord): APTR; syscall IntuitionBase 66;
+function AllocScreenBuffer(Screen: PScreen; Bitmap: PBitMap; Flags: LongWord): PScreenBuffer; syscall IntuitionBase 128;
+procedure AlohaWorkbench(MsgPort: PMsgPort); syscall IntuitionBase 67;
+function AutoRequest(Window: PWindow; Body: PIntuiText; PosText: PIntuiText; NegText: PIntuiText; PFlag: LongWord; NFlag: LongWord; Width: LongWord; Height: LongWord): LongBool; syscall IntuitionBase 58;
+procedure BeginRefresh(Window: PWindow); syscall IntuitionBase 59;
+function BuildEasyRequestArgs(Window: PWindow; EasyStruct: PEasyStruct; IDCMP: LongWord; Args: APTR): PWindow; syscall IntuitionBase 99;
+function BuildSysRequest(Window: PWindow; Body: PIntuiText; PosText: PIntuiText; NegText: PIntuiText; Flags: LongWord; Width: LongWord; Height: LongWord): PWindow; syscall IntuitionBase 60;
+function ChangeScreenBuffer(Screen: PScreen; ScreenBuffer: PScreenBuffer): LongWord; syscall IntuitionBase 130;
+procedure ChangeWindowBox(Window: PWindow; Left: LongInt; Top: LongInt; Width: LongInt; Height: LongInt); syscall IntuitionBase 81;
+function ClearDMRequest(Window: PWindow): LongBool; syscall IntuitionBase 8;
+procedure ClearMenuStrip(Window: PWindow); syscall IntuitionBase 9;
+procedure ClearPointer(Window: PWindow); syscall IntuitionBase 10;
+function CloseScreen(Screen: PScreen): LongBool; syscall IntuitionBase 11;
+procedure CloseWindow(Window: PWindow); syscall IntuitionBase 12;
+function CloseWorkBench: LongInt; syscall IntuitionBase 13;
+procedure ChangeDecoration(ID: LongWord; Decor: PNewDecorator); syscall IntuitionBase 153;
+function ChangeWindowShape(Window: PWindow; NewShape: PRegion; CallBack: PHook): PRegion; syscall IntuitionBase 143; unimplemented;
+procedure CurrentTime(var Seconds: LongWord; var Micros: LongWord); syscall IntuitionBase 14;
+function DisplayAlert(AlertNumber: LongWord; String_: PChar; Height: Word): LongBool; syscall IntuitionBase 15; deprecated;
+procedure DisplayBeep(Screen: PScreen); syscall IntuitionBase 16;
+procedure DisposeObject(Object_: APTR); syscall IntuitionBase 107;
+function DoGadgetMethodA(Gad: PGadget; Win: PWindow; Req: PRequester; Msg: TMsg): IPTR; syscall IntuitionBase 135;
+function DoNotify(Cl: PIClass; O: PObject_; Ic: Pointer; Msg: TopUpdate): Pointer; syscall IntuitionBase 145;
+function DoubleClick(SSeconds: LongWord; SMicros: LongWord; CSeconds: LongWord; CMicros: LongWord): LongBool; syscall IntuitionBase 17;
+procedure DrawBorder(Rp: PRastPort; Border: PBorder; LeftOffset: LongInt; TopOffset: LongInt); syscall IntuitionBase 18;
+procedure DrawImage(Rp: PRastPort; Image: PImage; LeftOffset: LongInt; TopOffset: LongInt); syscall IntuitionBase 19;
+procedure DrawImageState(Rp: PRastPort; Image: PImage; LeftOffset: LongInt; TopOffset: LongInt; state: LongWord; DrawInfo: PDrawInfo); syscall IntuitionBase 103;
+function EasyRequestArgs(Window: PWindow; EasyStruct: PEasyStruct; IDCMP_Ptr: PLongWord; Args: APTR): LongInt; syscall IntuitionBase 98;
+procedure EndRefresh(Window: PWindow; Complete: LongBool); syscall IntuitionBase 61;
+procedure EndRequest(Requester: PRequester; Window: PWindow); syscall IntuitionBase 20;
+function EndScreenNotify(Notify: IPTR): LongBool; syscall IntuitionBase 162;
+procedure EraseImage(Rp: PRastPort; Image: PImage; LeftOffset: LongInt; TopOffset: LongInt); syscall IntuitionBase 105;
+function FindClass(ClassID: ClassID): PIClass; syscall IntuitionBase 112;
+function FreeClass(IClass: PIClass): LongBool; syscall IntuitionBase 119;
+procedure FreeICData(ICData: Pointer); syscall IntuitionBase 146;
+procedure FreeIntuiMessage(IMsg: PIntuiMessage); syscall IntuitionBase 149;
+procedure FreeMonitorList(Obj: PPObject_); syscall IntuitionBase 164;
+procedure FreeRemember(var RememberKey: PRemember; ReallyForget: LongInt); syscall IntuitionBase 68;
+procedure FreeScreenBuffer(Screen: PScreen; ScreenBuffer: PScreenBuffer); syscall IntuitionBase 129;
+procedure FreeScreenDrawInfo(Screen: PScreen; DrawInfo: PDrawInfo); syscall IntuitionBase 116;
+procedure FreeSysRequest(Window: PWindow); syscall IntuitionBase 62;
+procedure GadgetMouse(Gadget: PGadget; GInfo: PGadgetInfo; var MousePoint: SmallInt); syscall IntuitionBase 95;
+function GetAttr(AttrID: LongWord; Object_: PObject_; StoragePtr: PIPTR): LongWord; syscall IntuitionBase 109;
+function GetDefaultPubScreen(NameBuffer: PChar): PScreen; syscall IntuitionBase 97;
+function GetDefPrefs(Preferences: PPreferences; Size: SmallInt): PPreferences; syscall IntuitionBase 21;
+function GetMonitorList(Tags: PTagItem): PPObject_; syscall IntuitionBase 163;
+function GetPrefs(Preferences: PPreferences; Size: SmallInt): PPreferences; syscall IntuitionBase 22;
+function GetScreenData(Buffer: APTR; Size: LongWord; Type_: LongWord; Screen: PScreen): LongInt; syscall IntuitionBase 71;
+function GetScreenDrawInfo(Screen: PScreen): PDrawInfo; syscall IntuitionBase 115;
+procedure HelpControl(Window: PWindow; Flags: LongWord); syscall IntuitionBase 138;
+procedure HideWindow(Window: PWindow); syscall IntuitionBase 141;
+procedure InitRequester(Requester: PRequester); syscall IntuitionBase 23; deprecated;
+function IntuiTextLength(iText: PIntuiText): LongInt; syscall IntuitionBase 55;
+function ItemAddress(MenuStrip: PMenu; MenuNumber: Word): PMenuItem; syscall IntuitionBase 24;
+function IsWindowVisible(Window: PWindow): LongWord; syscall IntuitionBase 139;
+procedure LendMenus(FromWindow: PWindow; ToWindow: PWindow); syscall IntuitionBase 134;
+function LockIBase(LockNumber: LongWord): LongWord; syscall IntuitionBase 69;
+function LockPubScreen(const Name: STRPTR): PScreen; syscall IntuitionBase 85;
+function LockPubScreenList: PList; syscall IntuitionBase 87;
+function MakeClass(ClassID: ClassID; SuperClassID: ClassID; SuperClassPtr: PIClass; InstanceSize: LongWord; Flags: LongWord): PIClass; syscall IntuitionBase 113;
+function MakeScreen(Screen: PScreen): LongInt; syscall IntuitionBase 63;
+function ModifyIDCMP(Window: PWindow; Flags: LongWord): LongBool; syscall IntuitionBase 25;
+procedure ModifyProp(Gadget: PGadget; Window: PWindow; Requester: PRequester; Flags: LongWord; HorizPot: LongWord; VertPot: LongWord; HorizBody: LongWord; VertBody: LongWord); syscall IntuitionBase 26;
+procedure MoveScreen(Screen: PScreen; Dx: LongInt; Dy: LongInt); syscall IntuitionBase 27;
+procedure MoveWindow(Window: PWindow; Dx: LongInt; Dy: LongInt); syscall IntuitionBase 28;
+procedure MoveWindowInFrontOf(Window: PWindow; BehindWindow: PWindow); syscall IntuitionBase 80;
+procedure NewModifyProp(Gadget: PGadget; Window: PWindow; Requester: PRequester; Flags: LongWord; HorizPot: LongWord; VertPot: LongWord; HorizBody: LongWord; VertBody: LongWord; NumGad: LongInt); syscall IntuitionBase 78;
+function NewObjectA(ClassPtr: PIClass; ClassID: PChar; TagList: PTagItem): APTR; syscall IntuitionBase 106;
+function NextObject(ObjectPtrPtr: APTR): APTR; syscall IntuitionBase 111;
+function NextPubScreen(Screen: PScreen; Namebuf: PChar): PChar; syscall IntuitionBase 89;
+function ObtainGIRPort(GInfo: PGadgetInfo): PRastPort; syscall IntuitionBase 93;
+procedure OffGadget(Gadget: PGadget; Window: PWindow; Requester: PRequester); syscall IntuitionBase 29;
+procedure OffMenu(Window: PWindow; MenuNumber: Word); syscall IntuitionBase 30;
+procedure OnGadget(Gadget: PGadget; Window: PWindow; Requester: PRequester); syscall IntuitionBase 31;
+procedure OnMenu(Window: PWindow; MenuNumber: Word); syscall IntuitionBase 32;
+function OpenScreen(NewScreen: PNewScreen): PScreen; syscall IntuitionBase 33;
+function OpenScreenTagList(NewScreen: PNewScreen; TagList: PTagItem): PScreen; syscall IntuitionBase 102;
+function OpenWindow(NewWindow: PNewWindow): PWindow; syscall IntuitionBase 34;
+function OpenWindowTagList(NewWindow: PNewWindow; TagList: PTagItem): PWindow; syscall IntuitionBase 101;
+function OpenWorkBench: IPTR; syscall IntuitionBase 35;
+function PointInImage(Point: LongWord; Image: PImage): LongBool; syscall IntuitionBase 104;
+procedure PrintIText(Rp: PRastPort; IText: PIntuiText; Left: LongInt; Top: LongInt); syscall IntuitionBase 36;
+function PubScreenStatus(Screen: PScreen; StatusFlags: Word): Word; syscall IntuitionBase 92;
+function QueryOverscan(DisplayID: LongWord; Rect: PRectangle; OScanType: SmallInt): LongInt; syscall IntuitionBase 79;
+procedure RefreshGadgets(Gadgets: PGadget; Window: PWindow; Requester: PRequester); syscall IntuitionBase 37;
+procedure RefreshGList(Gadgets: PGadget; Window: PWindow; Requester: PRequester; NumGad: LongInt); syscall IntuitionBase 72;
+procedure RefreshWindowFrame(Window: PWindow); syscall IntuitionBase 76;
+procedure ReleaseGIRPort(Rp: PRastPort); syscall IntuitionBase 94;
+function RemakeDisplay: LongInt; syscall IntuitionBase 64;
+procedure RemoveClass(ClassPtr: PIClass); syscall IntuitionBase 118;
+function RemoveGadget(Window: PWindow; Gadget: PGadget): Word; syscall IntuitionBase 38;
+function RemoveGList(RemPtr: PWindow; Gadget: PGadget; NumGad: LongInt): Word; syscall IntuitionBase 74;
+procedure ReportMouse(Flag: LongInt; Window: PWindow); syscall IntuitionBase 39;
+function Request(Requester: PRequester; Window: PWindow): LongBool; syscall IntuitionBase 40;
+function ResetMenuStrip(Window: PWindow; Menu: PMenu): LongBool; syscall IntuitionBase 117;
+function RethinkDisplay: LongInt; syscall IntuitionBase 65;
+procedure ScreenDepth(Screen: PScreen; Flags: LongWord; Reserved: APTR); syscall IntuitionBase 131;
+procedure ScreenPosition(Screen: PScreen; Flags: LongWord; X1: LongInt; Y1: LongInt; X2: LongInt; Y2: LongInt); syscall IntuitionBase 132;
+procedure ScreenToBack(Screen: PScreen); syscall IntuitionBase 41;
+procedure ScreenToFront(Screen: PScreen); syscall IntuitionBase 42;
+procedure ScrollWindowRaster(Win: PWindow; Dx: SmallInt; Dy: SmallInt; XMin: SmallInt; YMin: SmallInt; XMax: SmallInt; YMax: SmallInt); syscall IntuitionBase 133;
+procedure ScrollWindowRasterNoFill(Window: PWindow; Dx, Dy, XMin, YMin, XMax, YMax: Word); syscall IntuitionBase 159;
+procedure SendIntuiMessage(Window: PWindow; IMsg: PIntuiMessage); syscall IntuitionBase 151;
+function SetAttrsA(Object_: APTR; TagList: PTagItem): IPTR; syscall IntuitionBase 108;
+procedure SetDefaultPubScreen(Name: PChar); syscall IntuitionBase 90;
+procedure SetDefaultScreenFont(TextFont: PTextFont); syscall IntuitionBase 144;
+function SetDMRequest(Window: PWindow; Requester: PRequester): LongBool; syscall IntuitionBase 43;
+function SetEditHook(Hook: PHook): PHook; syscall IntuitionBase 82;
+function SetGadgetAttrsA(Gadget: PGadget; Window: PWindow; Requester: PRequester; TagList: PTagItem): IPTR; syscall IntuitionBase 110;
+function SetIPrefs(Data: Pointer; Length: LongWord; Typ: LongWord): LongWord; syscall IntuitionBase 96;
+function SetMenuStrip(Window: PWindow; Menu: PMenu): LongBool; syscall IntuitionBase 44;
+function SetMouseQueue(Window: PWindow; QueueLength: LongWord): LongInt; syscall IntuitionBase 83;
+procedure SetPointer(Window: PWindow; Pointer_: PWord; Height: LongInt; Width: LongInt; XOffset: LongInt; YOffset: LongInt); syscall IntuitionBase 45;
+function SetPointerBounds(Screen: PScreen; Rect: TRectangle; Reserved: LongWord; Tags: PTagItem): LongWord; syscall IntuitionBase 160;
+function SetPrefs(PrefBuffer: PPreferences; Size: LongInt; Inform: LongBool): PPreferences; syscall IntuitionBase 54;
+function SetPubScreenModes(Modes: Word): Word; syscall IntuitionBase 91;
+procedure SetWindowPointerA(Win: PWindow; Taglist: PTagItem); syscall IntuitionBase 136;
+procedure SetWindowTitles(Window: PWindow; const WindowTitle: PChar; const ScreenTitle: PChar); syscall IntuitionBase 46;
+procedure ShowTitle(Screen: PScreen; ShowIt: LongBool); syscall IntuitionBase 47;
+procedure ShowWindow(Window: PWindow); syscall IntuitionBase 140;
+procedure SizeWindow(Window: PWindow; Dx: LongInt; Dy: LongInt); syscall IntuitionBase 48;
+function StartScreenNotifyTagList(Tags: PTagItem): IPTR; syscall IntuitionBase 161;
+function SysReqHandler(Window: PWindow; IDCMPFlagsPtr: PLongWord; WaitInput: LongBool): LongInt; syscall IntuitionBase 100;
+function TimedDisplayAlert(AlertNumber: LongWord; String_: PChar; Height: Word; Time: LongWord): LongBool; syscall IntuitionBase 137;
+procedure UnlockIBase(LockNumber: LongWord); syscall IntuitionBase 70;
+procedure UnlockPubScreen(Name: PChar; Screen: PScreen); syscall IntuitionBase 86;
+procedure UnlockPubScreenList; syscall IntuitionBase 88;
+function ViewAddress: PView; syscall IntuitionBase 49;
+function ViewPortAddress(Window: PWindow): PViewPort; syscall IntuitionBase 50;
+function WBenchToBack: LongBool; syscall IntuitionBase 56;
+function WBenchToFront: LongBool; syscall IntuitionBase 57;
+procedure WindowAction(Window: PWindow; Action: LongWord; Tags: PTagItem); syscall IntuitionBase 157;
+function WindowLimits(Window: PWindow; WidthMin: SmallInt; HeightMin: SmallInt; WidthMax: Word; HeightMax: Word): LongBool; syscall IntuitionBase 53;
+procedure WindowToBack(Window: PWindow); syscall IntuitionBase 51;
+procedure WindowToFront(Window: PWindow); syscall IntuitionBase 52;
+procedure ZipWindow(Window: PWindow); syscall IntuitionBase 84;
+
+// VarArgs Versions
+function SetAttrs(Obj: APTR; const Tags: array of const): LongWord;
+function NewObject(ClassPtr: PIClass; ClassID: PChar; const Tags: array of const): APTR;
+function BuildEasyRequest(Window: PWindow; EasyStruct: PEasyStruct; IDCMP: LongWord; const Args: array of const): PWindow;
+function DoGadgetMethod(Gad: PGadget; Win: PWindow; Req: PRequester; const Args: array of const): IPTR;
+function EasyRequest(Window: PWindow; EasyStruct: PEasyStruct; IDCMP_Ptr: PLongWord; const Args: array of const): LongInt;
+function OpenScreenTags(NewScreen: PNewScreen; const Tags: array of const): PScreen;
+function OpenWindowTags(NewWindow: PNewWindow; const Tags: array of const): PWindow;
+function SetGadgetAttrs(Gadget: PGadget; Window: PWindow; Requester: PRequester; const Tags: array of const): IPTR;
+procedure SetWindowPointer(Win: PWindow; const Tags: array of const);
+
+// Function wrapper
+function SetSuperAttrsA(cl: PIClass; Obj: PObject_; TagList: PTagItem): IPTR;
+function SetSuperAttrs(cl: PIClass; Obj: PObject_; Tags: array of const): IPTR;
+function DoMethodA(Obj: PObject_; Message: APTR): IPTR;
+function DoMethod(Obj: PObject_; MethodID: LongWord; Args: array of const): IPTR;
+function CoerceMethodA(cl: PIClass; Obj: PObject_; Message: APTR): IPTR;
+function CoerceMethod(cl: PIClass; Obj: PObject_; MethodID: LongWord; const Args: array of const): IPTR;
+function DoSuperMethodA(cl: PIClass; Obj: PObject_; Message: APTR): IPTR;
+function DoSuperMethod(cl: PIClass; Obj: PObject_; Args: array of const): IPTR;
+
+function Has_Children(Win: PWindow): Boolean;
+function Is_Children(Win: PWindow): Boolean;
+
+{ Intuition macros }
+
+function INST_DATA(Cl: PIClass; O: P_Object): Pointer;
+function SIZEOF_INSTANCE(Cl: PIClass): LongInt;
+function BASEOBJECT(O: P_Object): Pointer;
+function _OBJ(O: Pointer): P_Object;
+function __OBJECT(O: Pointer): P_Object;
+function OCLASS(O: Pointer): PIClass;
+function SHIFTITEM(N: SmallInt): Word;
+function SHIFTMENU(N: SmallInt): Word;
+function SHIFTSUB(N: SmallInt): Word;
+function FULLMENUNUM(Menu, Item, Sub: SmallInt): Word;
+function IM_BGPEN(Im: PImage): Byte;
+function IM_BOX(Im: PImage): PIBox;
+function IM_FGPEN(Im: PImage): Byte;
+function GADGET_BOX(G: PGadget): PIBox;
+function CUSTOM_HOOK(Gadget: PGadget): PHook;
+function ITEMNUM(N: Word): Word;
+function MENUNUM(N: Word): Word;
+function SUBNUM(N: Word): Word;
+function IAM_Resolution(x, y: Word): LongWord; // Pack two Words into one LongWord
+function SRBNUM(x: Word): Word;
+function SWBNUM(x: Word): Word;
+function SSBNUM(x: Word): Word;
+function SPARNUM(x: Word): Word;
+function SHAKNUM(x: Word): Word;
+
+implementation
+
+uses
+ tagsarray, longarray;
+
+function SetAttrs(Obj: APTR; const Tags: array of const): LongWord;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ Result := SetAttrsA(Obj, GetTagPtr(TagList));
+end;
+
+function NewObject(ClassPtr: PIClass; ClassID: PChar; const Tags: array of const): APTR;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ Result := NewObjectA(ClassPtr, ClassID, GetTagPtr(TagList));
+end;
+
+function BuildEasyRequest(Window: PWindow; EasyStruct: PEasyStruct; IDCMP: LongWord; const Args: array of const): PWindow;
+var
+ ArgList: TArgList;
+begin
+ AddArguments(ArgList, Args);
+ Result := BuildEasyRequestArgs(Window, EasyStruct, IDCMP, GetArgPtr(ArgList));
+end;
+
+function DoGadgetMethod(Gad: PGadget; Win: PWindow; Req: PRequester; const Args: array of const): IPTR;
+var
+ ArgList: TArgList;
+begin
+ AddArguments(ArgList, Args);
+ Result := DoGadgetMethodA(Gad, Win, Req, TMsg(ArgList));
+end;
+
+function EasyRequest(Window: PWindow; EasyStruct: PEasyStruct; IDCMP_Ptr: PLongWord; const Args: array of const): LongInt;
+var
+ ArgList: TArgList;
+begin
+ AddArguments(ArgList, Args);
+ Result := EasyRequestArgs(Window, EasyStruct, IDCMP_Ptr, @(ArgList[0]));
+end;
+
+function OpenScreenTags(NewScreen: PNewScreen; const Tags: array of const): PScreen;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ Result := OpenScreenTagList(NewScreen, GetTagPtr(TagList));
+end;
+
+function OpenWindowTags(NewWindow: PNewWindow; const Tags: array of const): PWindow;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ Result := OpenWindowTagList(NewWindow, GetTagPtr(TagList));
+end;
+
+function SetGadgetAttrs(Gadget: PGadget; Window: PWindow; Requester: PRequester; const Tags: array of const): IPTR;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ Result := SetGadgetAttrsA(Gadget, Window, Requester, GetTagPtr(TagList));
+end;
+
+procedure SetWindowPointer(Win: PWindow; const Tags: array of const);
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ SetWindowPointerA(Win, GetTagPtr(TagList));
+end;
+
+// Functions wrapper
+
+function DoMethodA(Obj: PObject_; Message: APTR): IPTR;
+begin
+ Result := 0;
+ if Obj = nil then
+ Exit;
+ Result := CALLHOOKPKT_(PHook(OCLASS(Obj)), Obj, Message);
+end;
+
+function DoMethod(Obj: PObject_; MethodID: LongWord; Args: array of const): IPTR;
+var
+ ArgList: TArgList;
+begin
+ Result := 0;
+ if obj = nil then
+ Exit;
+ AddArguments(ArgList, [MethodID]);
+ AddArguments(ArgList, Args);
+ Result := CALLHOOKPKT_(PHook(OCLASS(Obj)), Obj, @(ArgList[0]));
+end;
+
+function DoSuperMethodA(cl: PIClass; Obj: PObject_; Message: APTR): IPTR;
+begin
+ Result := 0;
+ if (cl = nil) or (obj = nil) then
+ Exit;
+ Result := CALLHOOKPKT_(PHook(cl^.cl_Super), Obj, Message);
+end;
+
+function DoSuperMethod(cl: PIClass; Obj: PObject_; Args: array of const): IPTR;
+var
+ ArgList: TArgList;
+begin
+ Result := 0;
+ if (cl = nil) or (obj = nil) then
+ Exit;
+ AddArguments(ArgList, Args);
+ Result := CALLHOOKPKT_(PHook(cl^.cl_Super), Obj, @(ArgList[0]));
+end;
+
+function CoerceMethodA(cl: PIClass; Obj: PObject_; Message: APTR): IPTR;
+begin
+ Result := 0;
+ if (cl = nil) or (obj = nil) then
+ Exit;
+ Result := CALLHOOKPKT_(PHook(cl), Obj, Message);
+end;
+
+function CoerceMethod(cl: PIClass; Obj: PObject_; MethodID: LongWord; const Args: array of const): IPTR;
+var
+ ArgList: TArgList;
+begin
+ AddArguments(ArgList,[MethodID]);
+ AddArguments(ArgList, Args);
+ Result := CoerceMethodA(cl, Obj, @(ArgList[0]));
+end;
+
+
+function SetSuperAttrs(cl: PIClass; Obj: PObject_; Tags: array of const): IPTR;
+var
+ TagList: TTagsList;
+ ops: TopSet;
+begin
+ AddTags(TagList, Tags);
+ ops.MethodID := OM_SET;
+ ops.ops_AttrList := GetTagPtr(TagList);
+ ops.ops_GInfo := nil;
+ Result := DoSuperMethodA(cl, obj, @ops);
+end;
+
+function SetSuperAttrsA(cl: PIClass; Obj: PObject_; TagList: PTagItem): IPTR;
+var
+ ops: TopSet;
+begin
+ ops.MethodID := OM_SET;
+ ops.ops_AttrList := TagList;
+ ops.ops_GInfo := nil;
+ Result := DoSuperMethodA(cl, obj, @ops);
+end;
+
+
+function INST_DATA(Cl: PIClass; O: P_Object): Pointer;
+begin
+ INST_DATA := Pointer(PtrUInt(O) + Cl^.cl_InstOffset);
+end;
+
+function SIZEOF_INSTANCE(Cl: PIClass): LongInt;
+begin
+ SIZEOF_INSTANCE := Cl^.cl_InstOffset + Cl^.cl_InstSize + SizeOf(T_Object);
+end;
+
+function BASEOBJECT(O: P_Object): Pointer;
+begin
+ BASEOBJECT := Pointer(PtrUInt(O) + SizeOf(T_Object));
+end;
+
+function _OBJ(O: Pointer): P_Object;
+begin
+ _OBJ := P_Object(O);
+end;
+
+function __OBJECT(O: Pointer): P_Object;
+begin
+ __OBJECT := P_Object(PtrUInt(O) - SizeOf(T_Object))
+end;
+
+function OCLASS(O: Pointer): PIClass;
+var
+ Obj: P_Object;
+begin
+ Obj := P_Object(PtrUInt(O) - SizeOf(T_Object));
+ OCLASS := Obj^.o_Class;
+end;
+
+function SHIFTITEM(N: SmallInt): Word;
+begin
+ SHIFTITEM := (N and $3f) shl 5
+end;
+
+function SHIFTMENU(N: SmallInt): Word;
+begin
+ SHIFTMENU := N and $1f
+end;
+
+function SHIFTSUB(N: SmallInt): Word;
+begin
+ SHIFTSUB := (N and $1f) shl 11
+end;
+
+function FULLMENUNUM(Menu, Item, Sub: SmallInt): Word;
+begin
+ FULLMENUNUM := ((Sub and $1f) shl 11) or ((Item and $3f) shl 5) or (Menu and $1f);
+end;
+
+{ The next functons _BGPEN AND _FGPEN aren't a full replacement of the
+ C macros because the C preprocessor makes it possible to set the
+ A/BPen values of the Image class objects as well. This can't work
+ in pascal, of course!
+}
+
+function IM_BGPEN(Im: PImage): Byte;
+begin
+ IM_BGPEN := Im^.PlaneOnOff;
+end;
+
+function IM_BOX(Im: PImage): PIBox;
+begin
+ IM_BOX := PIBox(@Im^.LeftEdge);
+END;
+
+function IM_FGPEN (Im: PImage): Byte;
+begin
+ IM_FGPEN := Im^.PlanePick;
+end;
+
+function GADGET_BOX(G: PGadget): PIBox;
+begin
+ GADGET_BOX := PIBox(@G^.LeftEdge);
+end;
+
+function CUSTOM_HOOK (Gadget: PGadget): PHook;
+begin
+ CUSTOM_HOOK := PHook(Gadget^.MutualExclude);
+end;
+
+function ITEMNUM(N: Word): Word;
+begin
+ ITEMNUM := (N shr 5) and $3F
+end;
+
+function MENUNUM(N: Word): Word;
+begin
+ MENUNUM := N and $1f
+end;
+
+function SUBNUM(N: Word): Word;
+begin
+ SUBNUM := (N shr 11) and $1f
+end;
+
+function IAM_Resolution(x, y: Word): LongWord;
+begin
+ Result := (x shl 16) or y;
+end;
+
+function SRBNUM(x: Word): Word;
+begin
+ SRBNUM := $08 - (x shr 4);
+end;
+
+function SWBNUM(x: Word): Word;
+begin
+ SWBNUM := $08 - (x and $0f);
+end;
+
+function SSBNUM(x: Word): Word;
+begin
+ SSBNUM := $01 + (x shr 4);
+end;
+
+function SPARNUM(x: Word): Word;
+begin
+ SPARNUM := x shr 4;
+end;
+
+function SHAKNUM(x: Word): Word;
+begin
+ SHAKNUM := x and $0f;
+end;
+
+function Has_Children(Win: PWindow): Boolean;
+begin
+ Result := Assigned(Win^.FirstChild);
+end;
+
+function Is_Children(Win: PWindow): Boolean;
+begin
+ Result := Assigned(Win^.Parent2);
+end;
+
+initialization
+ IntuitionBase := PIntuitionBase(OpenLibrary('intuition.library', 36));
+
+finalization
+ CloseLibrary(PLibrary(IntuitionBase));
+
+end.
diff --git a/packages/arosunits/src/keymap.pas b/packages/arosunits/src/keymap.pas
new file mode 100644
index 0000000000..38256c6d26
--- /dev/null
+++ b/packages/arosunits/src/keymap.pas
@@ -0,0 +1,111 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ Keymap.resource definitions and console.device key map definitions
+
+ 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 Keymap;
+
+INTERFACE
+
+{$mode objfpc}
+
+uses exec, inputevent;
+
+Type
+
+ PKeyMap = ^TKeyMap;
+ TKeyMap = record
+ km_LoKeyMapTypes : Pointer;
+ km_LoKeyMap : Pointer;
+ km_LoCapsable : Pointer;
+ km_LoRepeatable : Pointer;
+ km_HiKeyMapTypes : Pointer;
+ km_HiKeyMap : Pointer;
+ km_HiCapsable : Pointer;
+ km_HiRepeatable : Pointer;
+ end;
+
+
+ pKeymapNode = ^TKeyMapNode;
+ TKeyMapNode = record
+ kn_Node : TNode; { including name of Keymap }
+ kn_KeyMap : TKeyMap;
+ end;
+
+{ the structure of Keymap.resource }
+
+ pKeyMapResource = ^TKeyMapResource;
+ TKeyMapResource = record
+ kr_Node : TNode;
+ kr_List : tList; { a list of KeyMapNodes }
+ end;
+
+
+Const
+
+{ Key Map Types }
+
+ KC_NOQUAL = 0;
+ KC_VANILLA = 7; { note that SHIFT+ALT+CTRL is VANILLA }
+ KCB_SHIFT = 0;
+ KCF_SHIFT = $01;
+ KCB_ALT = 1;
+ KCF_ALT = $02;
+ KCB_CONTROL = 2;
+ KCF_CONTROL = $04;
+ KCB_DOWNUP = 3;
+ KCF_DOWNUP = $08;
+
+ KCB_DEAD = 5; { may be dead or modified by dead key: }
+ KCF_DEAD = $20; { use dead prefix bytes }
+
+ KCB_STRING = 6;
+ KCF_STRING = $40;
+
+ KCB_NOP = 7;
+ KCF_NOP = $80;
+
+
+{ Dead Prefix Bytes }
+
+ DPB_MOD = 0;
+ DPF_MOD = $01;
+ DPB_DEAD = 3;
+ DPF_DEAD = $08;
+
+ DP_2DINDEXMASK = $0f; { mask for index for 1st of two dead keys }
+ DP_2DFACSHIFT = 4; { shift for factor for 1st of two dead keys }
+
+var KeyMapBase : pLibrary;
+
+const
+ KEYMAPNAME : PChar = 'keymap.library';
+
+function AskKeyMapDefault : PKeyMap; syscall KeyMapBase 6;
+function MapANSI(TheString : PChar; Count : LongInt; Buffer : PChar; Length : LongInt; KeyMap : PKeyMap) : LongInt; syscall KeyMapBase 8;
+function MapRawKey(Event : PInputEvent; Buffer : PChar; Length : LongInt; KeyMap : PKeyMap) : SmallInt; syscall KeyMapBase 7;
+procedure SetKeyMapDefault(KeyMap : PKeyMap); syscall KeyMapBase 5;
+
+implementation
+
+initialization
+ KeyMapBase := OpenLibrary(KEYMAPNAME, 0);
+
+finalization
+ CloseLibrary(KeyMapBase);
+
+end. (* UNIT KEYMAP *)
+
+
+
diff --git a/packages/arosunits/src/layers.pas b/packages/arosunits/src/layers.pas
new file mode 100644
index 0000000000..585d520fed
--- /dev/null
+++ b/packages/arosunits/src/layers.pas
@@ -0,0 +1,115 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ layers.library 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.
+
+ **********************************************************************}
+
+unit layers;
+
+interface
+uses
+ exec, agraphics, utility;
+
+const
+
+ LAYERSIMPLE = 1;
+ LAYERSMART = 2;
+ LAYERSUPER = 4;
+ LAYERUPDATING = $10;
+ LAYERBACKDROP = $40;
+ LAYERREFRESH = $80;
+ LAYER_CLIPRECTS_LOST = $100; { during BeginUpdate }
+ { or during layerop }
+ { this happens if out of memory }
+ LMN_REGION = -1;
+
+type
+ PLayer_Info = ^TLayer_Info;
+ TLayer_Info = record
+ top_layer : PLayer;
+ check_lp : PLayer; { !! Private !! }
+ obs : PClipRect;
+ FreeClipRects : PClipRect; { !! Private !! }
+ PrivateReserve1, { !! Private !! }
+ PrivateReserve2 : LongInt; { !! Private !! }
+ Lock : TSignalSemaphore; { !! Private !! }
+ gs_Head : TMinList; { !! Private !! }
+ PrivateReserve3 : SmallInt; { !! Private !! }
+ PrivateReserve4 : Pointer; { !! Private !! }
+ Flags : WORD;
+ fatten_count : Shortint; { !! Private !! }
+ LockLayersCount : Shortint; { !! Private !! }
+ PrivateReserve5 : SmallInt; { !! Private !! }
+ BlankHook, { !! Private !! }
+ LayerInfo_extra : Pointer; { !! Private !! }
+ end;
+
+const
+ NEWLAYERINFO_CALLED = 1;
+
+{
+ * LAYERS_NOBACKFILL is the value needed to get no backfill hook
+ * LAYERS_BACKFILL is the value needed to get the default backfill hook
+ }
+ LAYERS_NOBACKFILL = 1;
+ LAYERS_BACKFILL = 0;
+
+ LAYERSNAME : PChar = 'layers.library';
+
+var
+ LayersBase : PLibrary;
+
+function BeginUpdate(Layer: PLayer): LongInt; syscall LayersBase 13;
+function BehindLayer(dummy: LongInt; Layer: PLayer): LongInt; syscall LayersBase 9;
+function CreateBehindHookLayer(LayerInfo: PLayer_Info; Bitmap1: PBitMap; x0: LongInt; y0: LongInt; x1: LongInt; y1: LongInt; Flags: LongInt; Hook: PHook; SuperBitmap2: PBitMap): PLayer; syscall LayersBase 32;
+function CreateBehindLayer(LayerInfo: PLayer_Info; Bitmap1: PBitMap; x0: LongInt; y0: LongInt; x1: LongInt; y1: LongInt; Flags: LongInt; SuperBitmap2: PBitMap): PLayer; syscall LayersBase 7;
+function CreateUpfrontHookLayer(LayerInfo: PLayer_Info; Bitmap1: PBitMap; x0: LongInt; y0: LongInt; x1: LongInt; y1: LongInt; Flags: LongInt; Hook: PHook; SuperBitmap2: PBitMap): PLayer; syscall LayersBase 31;
+function CreateUpfrontLayer(LayerInfo: PLayer_Info; Bitmap1: PBitMap; x0: LongInt; y0: LongInt; x1: LongInt; y1: LongInt; Flags: LongInt; SuperBitmap2: PBitMap): PLayer; syscall LayersBase 6;
+function DeleteLayer(dummy: LongInt; Layer: PLayer): LongInt; syscall LayersBase 15;
+procedure DisposeLayerInfo(LayerInfo: PLayer_Info); syscall LayersBase 25;
+procedure DoHookClipRects(Hook: PHook; RPort: PRastPort;const Rect: PRectangle); syscall LayersBase 36;
+procedure EndUpdate(Layer: PLayer; Flag: LongWord); syscall LayersBase 14;
+function FattenLayerInfo(LayerInfo: PLayer_Info): LongInt; syscall LayersBase 26;
+procedure InitLayers(LayerInfo: PLayer_Info); syscall LayersBase 5;
+function InstallClipRegion(Layer: PLayer; const Region: PRegion): PRegion; syscall LayersBase 29;
+function InstallLayerHook(Layer: PLayer; Hook: PHook): PHook; syscall LayersBase 33;
+function InstallLayerInfoHook(LayerInfo: PLayer_Info; const Hook: PHook): PHook; syscall LayersBase 34;
+procedure LockLayer(dummy: LongInt; Layer: PLayer); syscall LayersBase 16;
+procedure LockLayerInfo(LayerInfo: PLayer_Info); syscall LayersBase 20;
+procedure LockLayers(LayerInfo: PLayer_Info); syscall LayersBase 18;
+function MoveLayer(dummy: LongInt; Layer: PLayer; dx: LongInt; dy: LongInt): LongInt; syscall LayersBase 10;
+function MoveLayerInFrontOf(layer_to_move: PLayer; other_layer: PLayer): LongInt; syscall LayersBase 28;
+function MoveSizeLayer(Layer: PLayer; dx: LongInt; dy: LongInt; dw: LongInt; dh: LongInt): LongInt; syscall LayersBase 30;
+function NewLayerInfo: PLayer_Info; syscall LayersBase 24;
+procedure ScrollLayer(dummy: LongInt; Layer: PLayer; dx: LongInt; dy: LongInt); syscall LayersBase 12;
+function SizeLayer(dummy: LongInt; Layer: PLayer; dx: LongInt; dy: LongInt): LongInt; syscall LayersBase 11;
+procedure SortLayerCR(Layer: PLayer; dx: LongInt; dy: LongInt); syscall LayersBase 35;
+procedure SwapBitsRastPortClipRect(rp: PRastPort; cr: PClipRect); syscall LayersBase 21;
+procedure ThinLayerInfo(LayerInfo: PLayer_Info); syscall LayersBase 27;
+procedure UnlockLayer(Layer: PLayer); syscall LayersBase 17;
+procedure UnlockLayerInfo(LayerInfo: PLayer_Info); syscall LayersBase 23;
+procedure UnlockLayers(LayerInfo: PLayer_Info); syscall LayersBase 19;
+function UpfrontLayer(dummy: LongInt; Layer: PLayer): LongInt; syscall LayersBase 8;
+function WhichLayer(LayerInfo: PLayer_Info; x: LongInt; y: LongInt): PLayer; syscall LayersBase 22;
+
+implementation
+
+initialization
+ LayersBase := OpenLibrary(LAYERSNAME, 36);
+
+finalization
+ CloseLibrary(LayersBase);
+
+eND. (* UNIT LAYERS *)
+
+
+
diff --git a/packages/arosunits/src/longarray.pas b/packages/arosunits/src/longarray.pas
new file mode 100644
index 0000000000..f070507dee
--- /dev/null
+++ b/packages/arosunits/src/longarray.pas
@@ -0,0 +1,111 @@
+{
+ This file is part of the Free Pascal run time library.
+
+ A file in Amiga system run time library.
+ Copyright (c) 1998-2002 by Nils Sjoholm
+ member of the Amiga RTL development team.
+
+ 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.
+
+ **********************************************************************}
+
+{
+ History:
+
+ A simple unit that helps to build array of longint.
+ Uses array of const so don't forget to use
+ $mode objfpc.
+
+ 05 Nov 2002.
+
+ nils.sjoholm@mailbox.swipnet.se
+}
+
+unit longarray;
+{$mode objfpc}{$H+}
+
+interface
+uses
+ Exec;
+
+type
+ PArgList = ^TArgList;
+ TArgList = array of IPTR;
+
+function readinlongs(const Args: array of const): Pointer;
+procedure AddArguments(var ArgList: TArgList; const Args: array of const);
+function GetArgPtr(var ArgList: TArgList): Pointer;
+
+implementation
+
+type
+ TMyArgs = array of IPTR;
+ PMyArgs = ^TMyArgs;
+
+var
+ ArgArray : PMyArgs;
+
+procedure AddArguments(var ArgList: TArgList; const Args: array of const);
+var
+ i: Integer;
+ Offset: Integer;
+begin
+ Offset := Length(ArgList);
+ SetLength(ArgList, Length(ArgList) + Length(Args));
+ for i := 0 to High(Args) do
+ begin
+ case Args[i].vtype of
+ vtinteger: ArgList[Offset + i] := IPTR(Args[i].vinteger);
+ vtpchar: ArgList[Offset + i] := IPTR(Args[i].vpchar);
+ vtchar: ArgList[Offset + i] := IPTR(Args[i].vchar);
+ vtpointer: ArgList[Offset + i] := IPTR(Args[i].vpointer);
+ vtstring: ArgList[Offset + i] := IPTR(PChar(string(Args[i].vstring^)));
+ vtboolean: ArgList[Offset + i] := IPTR(Byte(Args[i].vboolean));
+ end;
+ end;
+end;
+
+function GetArgPtr(var ArgList: TArgList): Pointer;
+var
+ Idx: Integer;
+begin
+ Idx := Length(ArgList);
+ SetLength(ArgList, Idx + 1);
+ ArgList[Idx] := 0;
+ Result := @(ArgList[0]);
+end;
+
+
+function ReadInLongs(const Args: array of const): Pointer;
+var
+ i: Integer;
+begin
+ for i := 0 to High(Args) do begin
+ case args[i].vtype of
+ vtinteger: ArgArray^[i] := IPTR(Args[i].vinteger);
+ vtpchar: ArgArray^[i] := IPTR(Args[i].vpchar);
+ vtchar: ArgArray^[i] := IPTR(Args[i].vchar);
+ vtpointer: ArgArray^[i] := IPTR(Args[i].vpointer);
+ vtstring: ArgArray^[i] := IPTR(PChar(string(Args[i].vstring^)));
+ vtboolean: ArgArray^[i] := IPTR(byte(Args[i].vboolean));
+ end;
+ end;
+ readinlongs := @(argarray^[0]);
+end;
+
+
+
+
+initialization
+ New(argarray);
+ SetLength(argarray^, 200);
+finalization
+ SetLength(argarray^, 0);
+ Dispose(argarray);
+end.
+
diff --git a/packages/arosunits/src/mui.pas b/packages/arosunits/src/mui.pas
new file mode 100644
index 0000000000..a67a0c7104
--- /dev/null
+++ b/packages/arosunits/src/mui.pas
@@ -0,0 +1,3896 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ ZUNE/MUI 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.
+
+ **********************************************************************}
+{$mode objfpc}
+{$packrecords C}
+unit mui;
+
+interface
+
+ {
+
+ MUI - MagicUserInterface
+ (c) 1993-1997 Stefan Stuntz
+
+ Main Header File
+
+
+ Class Tree
+
+
+ rootclass (BOOPSI's base class)
+ +--Notify (implements notification mechanism)
+ ! +--Family (handles multiple children)
+ ! ! +--Menustrip (describes a complete menu strip)
+ ! ! +--Menu (describes a single menu)
+ ! ! \--Menuitem (describes a single menu item)
+ ! +--Application (main class for all applications)
+ ! +--Window (main class for all windows)
+ ! ! \--Aboutmui (About window of MUI preferences)
+ ! +--Area (base class for all GUI elements)
+ ! +--Rectangle (spacing object)
+ ! +--Balance (balancing separator bar)
+ ! +--Image (image display)
+ ! +--Bitmap (draws bitmaps)
+ ! ! \--Bodychunk (makes bitmap from ILBM body chunk)
+ ! +--Text (text display)
+ ! +--Gadget (base class for intuition gadgets)
+ ! ! +--String (string gadget)
+ ! ! +--Boopsi (interface to BOOPSI gadgets)
+ ! ! \--Prop (proportional gadget)
+ ! +--Gauge (fule gauge)
+ ! +--Scale (percentage scale)
+ ! +--Colorfield (field with changeable color)
+ ! +--List (line-oriented list)
+ ! ! +--Floattext (special list with floating text)
+ ! ! +--Volumelist (special list with volumes)
+ ! ! +--Scrmodelist (special list with screen modes)
+ ! ! \--Dirlist (special list with files)
+ ! +--Numeric (base class for slider gadgets)
+ ! ! +--Knob (turning knob)
+ ! ! +--Levelmeter (level display)
+ ! ! +--Numericbutton (space saving popup slider)
+ ! ! \--Slider (traditional slider)
+ ! +--Framedisplay (private)
+ ! ! \--Popframe (private)
+ ! +--Imagedisplay (private)
+ ! ! \--Popimage (private)
+ ! +--Pendisplay (displays a pen specification)
+ ! ! \--Poppen (popup button to adjust a pen spec)
+ ! +--Group (groups other GUI elements)
+ ! +--Mccprefs (private)
+ ! +--Register (handles page groups with titles)
+ ! ! \--Penadjust (group to adjust a pen)
+ ! +--Settingsgroup (private)
+ ! +--Settings (private)
+ ! +--Frameadjust (private)
+ ! +--Imageadjust (private)
+ ! +--Virtgroup (handles virtual groups)
+ ! +--Scrollgroup (virtual groups with scrollbars)
+ ! +--Scrollbar (traditional scrollbar)
+ ! +--Listview (listview)
+ ! +--Radio (radio button)
+ ! +--Cycle (cycle gadget)
+ ! +--Coloradjust (several gadgets to adjust a color)
+ ! +--Palette (complete palette gadget)
+ ! +--Popstring (base class for popup objects)
+ ! +--Popobject (popup aynthing in a separate window)
+ ! ! +--Poplist (popup a simple listview)
+ ! ! \--Popscreen (popup a list of public screens)
+ ! \--Popasl (popup an asl requester)
+ +--Semaphore (semaphore equipped objects)
+ +--Applist (private)
+ +--Dataspace (handles general purpose data spaces)
+ \--Configdata (private)
+
+
+ General Header File Information
+
+
+ All macro and structure definitions follow these rules:
+
+ Name Meaning
+
+ MUIC_<class> Name of a class
+ MUIM_<class>_<method> Method
+ MUIP_<class>_<method> Methods parameter structure
+ MUIV_<class>_<method>_<x> Special method value
+ MUIA_<class>_<attrib> Attribute
+ MUIV_<class>_<attrib>_<x> Special attribute value
+ MUIE_<error> Error return code from MUI_Error()
+ MUII_<name> Standard MUI image
+ MUIX_<code> Control codes for text strings
+ MUIO_<name> Object type for MUI_MakeObject()
+
+ MUIA_... attribute definitions are followed by a comment
+ consisting of the three possible letters I, S and G.
+ I: it's possible to specify this attribute at object creation time.
+ S: it's possible to change this attribute with SetAttrs().
+ G: it's possible to get this attribute with GetAttr().
+
+ Items marked with "Custom Class" are for use in custom classes only!
+ }
+
+uses
+ exec, intuition,utility,agraphics{,iffparse};
+
+
+ const
+ MUIMASTER_NAME: PChar = 'muimaster.library';
+ MUIMASTER_VMIN = 11;
+ MUIMASTER_VLATEST = 19;
+ {
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ Warning, some of the macros in this header file work only with
+ muimaster.library V11 and above. If you recompile your programs,
+ be sure to open muimaster.library with MUIMASTER_VMIN as version number.
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ }
+
+ {
+ Config items for MUIM_GetConfigItem
+ }
+ MUICFG_PublicScreen = 36;
+ {
+ Black box specification structures for images, pens, frames
+ }
+
+ type
+ Plongword = ^LongWord;
+
+ TMUI_PenSpec = record
+ Buf: array[0..31] of Char;
+ End;
+ PMUI_PenSpec = ^TMUI_PenSpec;
+
+ {
+ Public Screen Stuff
+ }
+ {
+ NOTE: This stuff is only included to allow compilation of the supplied
+ public screen manager for educational purposes. Everything
+ here is subject to change without notice and I guarantee to
+ do that just for fun!
+ More info can be found in the screen manager source file.
+ }
+
+ const
+ PSD_INITIAL_NAME : PChar = '(unnamed)';
+ PSD_INITIAL_TITLE : PChar = 'MUI Public Screen';
+
+
+
+ const
+ PSD_NAME_FRONTMOST : PChar = '«Frontmost»';
+ PSD_FILENAME_SAVE : PChar = 'envarc:mui/PublicScreens.iff';
+ PSD_FILENAME_USE : PChar = 'env:mui/PublicScreens.iff';
+ PSD_MAXLEN_NAME = 32;
+ PSD_MAXLEN_TITLE = 128;
+ PSD_MAXLEN_FONT = 48;
+ PSD_MAXLEN_BACKGROUND = 256;
+ PSD_NUMCOLS = 8;
+ PSD_MAXSYSPENS = 20;
+ PSD_NUMSYSPENS = 12;
+ PSD_MAXMUIPENS = 10;
+ PSD_NUMMUIPENS = 8;
+
+ type
+ tMUI_RGBcolor = record
+ red : LongWord;
+ green : LongWord;
+ blue : LongWord;
+ end;
+
+ pMUI_RGBColor = ^tMUI_RGBColor;
+
+ tMUI_PubScreenDesc = record
+ Version : LONG;
+ Name : array[0..(PSD_MAXLEN_NAME)-1] of char;
+ Title : array[0..(PSD_MAXLEN_TITLE)-1] of char;
+ Font : array[0..(PSD_MAXLEN_FONT)-1] of char;
+ Background : array[0..(PSD_MAXLEN_BACKGROUND)-1] of char;
+ DisplayID : LongWord;
+ DisplayWidth : WORD;
+ DisplayHeight : WORD;
+ DisplayDepth : BYTE;
+ OverscanType : BYTE;
+ AutoScroll : BYTE;
+ NoDrag : BYTE;
+ Exclusive : BYTE;
+ Interleaved : BYTE;
+ SysDefault : BYTE;
+ Behind : BYTE;
+ AutoClose : BYTE;
+ CloseGadget : BYTE;
+ DummyWasForeign : BYTE;
+ SystemPens : array[0..(PSD_MAXSYSPENS)-1] of BYTE;
+ Reserved : array[0..((1 + (7 * 4)) - PSD_MAXSYSPENS)-1] of BYTE;
+ Palette : array[0..(PSD_NUMCOLS)-1] of tMUI_RGBcolor;
+ rsvd : array[0..(PSD_MAXSYSPENS - PSD_NUMCOLS)-1] of tMUI_RGBcolor;
+ rsvd2 : array[0..(PSD_MAXMUIPENS)-1] of tMUI_PenSpec;
+ Changed : LONG;
+ UserData : APTR;
+ end;
+ pMUI_PubScreenDesc = ^tMUI_PubScreenDesc;
+
+ tMUIS_InfoClient = record
+ node : tMinNode;
+ task : PTask;
+ sigbit : LongWord;
+ end;
+ pMUIS_InfoClient = ^tMUIS_InfoClient;
+
+ {
+ Object Types for MUI_MakeObject()
+ }
+ { STRPTR label, LongWord flags }
+
+ const
+
+ MUIO_Label = 1;
+ { STRPTR label }
+ MUIO_Button = 2;
+ { STRPTR label }
+ MUIO_Checkmark = 3;
+ { STRPTR label, STRPTR entries }
+ MUIO_Cycle = 4;
+ { STRPTR label, STRPTR entries }
+ MUIO_Radio = 5;
+ { STRPTR label, LONG min, LONG max }
+ MUIO_Slider = 6;
+ { STRPTR label, LONG maxlen }
+ MUIO_String = 7;
+ { STRPTR imagespec }
+ MUIO_PopButton = 8;
+ { LONG space }
+ MUIO_HSpace = 9;
+ { LONG space }
+ MUIO_VSpace = 10;
+ { LONG space }
+ MUIO_HBar = 11;
+ { LONG space }
+ MUIO_VBar = 12;
+ { struct NewMenu nm, LongWord flags }
+ MUIO_MenustripNM = 13;
+ { STRPTR label, STRPTR shortcut, LongWord flags, LongWord data }
+ MUIO_Menuitem = 14;
+ { STRPTR label }
+ MUIO_BarTitle = 15;
+ { STRPTR label, LONG min, LONG max, STRPTR format }
+ MUIO_NumericButton = 16;
+ MUIO_Menuitem_CopyStrings = 1 shl 30;
+ MUIO_Label_SingleFrame = 1 shl 8;
+ MUIO_Label_DoubleFrame = 1 shl 9;
+ MUIO_Label_LeftAligned = 1 shl 10;
+ MUIO_Label_Centered = 1 shl 11;
+ MUIO_Label_FreeVert = 1 shl 12;
+ { check for "localized" menu items such as "O\0Open" }
+ MUIO_MenustripNM_CommandKeyCheck = 1 shl 0;
+ {
+ ARexx Interface
+ }
+
+ type
+ tMUI_Command = record
+ mc_Name : Pchar;
+ mc_Template : Pchar;
+ mc_Parameters : LONG;
+ mc_Hook : PHook;
+ mc_Reserved : array[0..4] of LONG;
+ end;
+ pMUI_Command = ^tMUI_Command;
+
+
+
+ const
+ { MC_TEMPLATE_ID : PCHar = not(0); }
+ MC_TEMPLATE_ID = -1;
+ MUI_RXERR_BADDEFINITION = -(1);
+ MUI_RXERR_OUTOFMEMORY = -(2);
+ MUI_RXERR_UNKNOWNCOMMAND = -(3);
+ MUI_RXERR_BADSYNTAX = -(4);
+ {
+ Return values for MUI_Error()
+ }
+ MUIE_OK = 0;
+ MUIE_OutOfMemory = 1;
+ MUIE_OutOfGfxMemory = 2;
+ MUIE_InvalidWindowObject = 3;
+ MUIE_MissingLibrary = 4;
+ MUIE_NoARexx = 5;
+ MUIE_SingleTask = 6;
+ {
+ Standard MUI Images & Backgrounds
+ }
+ { These images are configured }
+ MUII_WindowBack = 0;
+ { with the preferences program. }
+ MUII_RequesterBack = 1;
+ MUII_ButtonBack = 2;
+ MUII_ListBack = 3;
+ MUII_TextBack = 4;
+ MUII_PropBack = 5;
+ MUII_PopupBack = 6;
+ MUII_SelectedBack = 7;
+ MUII_ListCursor = 8;
+ MUII_ListSelect = 9;
+ MUII_ListSelCur = 10;
+ MUII_ArrowUp = 11;
+ MUII_ArrowDown = 12;
+ MUII_ArrowLeft = 13;
+ MUII_ArrowRight = 14;
+ MUII_CheckMark = 15;
+ MUII_RadioButton = 16;
+ MUII_Cycle = 17;
+ MUII_PopUp = 18;
+ MUII_PopFile = 19;
+ MUII_PopDrawer = 20;
+ MUII_PropKnob = 21;
+ MUII_Drawer = 22;
+ MUII_HardDisk = 23;
+ MUII_Disk = 24;
+ MUII_Chip = 25;
+ MUII_Volume = 26;
+ MUII_RegisterBack = 27;
+ MUII_Network = 28;
+ MUII_Assign = 29;
+ MUII_TapePlay = 30;
+ MUII_TapePlayBack = 31;
+ MUII_TapePause = 32;
+ MUII_TapeStop = 33;
+ MUII_TapeRecord = 34;
+ MUII_GroupBack = 35;
+ MUII_SliderBack = 36;
+ MUII_SliderKnob = 37;
+ MUII_TapeUp = 38;
+ MUII_TapeDown = 39;
+ MUII_PageBack = 40;
+ MUII_ReadListBack = 41;
+ MUII_Count = 42;
+ { These are direct color }
+ MUII_BACKGROUND = 128;
+ { combinations and are not }
+ MUII_SHADOW = 129;
+ { affected by users prefs. }
+ MUII_SHINE = 130;
+ MUII_FILL = 131;
+ { Generally, you should }
+ MUII_SHADOWBACK = 132;
+ { avoid using them. Better }
+ MUII_SHADOWFILL = 133;
+ { use one of the customized }
+ MUII_SHADOWSHINE = 134;
+ { images above. }
+ MUII_FILLBACK = 135;
+ MUII_FILLSHINE = 136;
+ MUII_SHINEBACK = 137;
+ MUII_FILLBACK2 = 138;
+ MUII_HSHINEBACK = 139;
+ MUII_HSHADOWBACK = 140;
+ MUII_HSHINESHINE = 141;
+ MUII_HSHADOWSHADOW = 142;
+ MUII_MARKSHINE = 143;
+ MUII_MARKHALFSHINE = 144;
+ MUII_MARKBACKGROUND = 145;
+ MUII_LASTPAT = 145;
+ {
+ Special values for some methods
+ }
+ MUIV_TriggerValue = $49893131;
+ MUIV_NotTriggerValue = $49893133;
+ MUIV_EveryTime = $49893131;
+ MUIV_Notify_Self = 1;
+ MUIV_Notify_Window = 2;
+ MUIV_Notify_Application = 3;
+ MUIV_Notify_Parent = 4;
+
+
+ const
+ MUIV_Application_ReturnID_Quit = -(1);
+ MUIV_List_Insert_Top = 0;
+ MUIV_List_Insert_Active = -(1);
+ MUIV_List_Insert_Sorted = -(2);
+ MUIV_List_Insert_Bottom = -(3);
+ MUIV_List_Remove_First = 0;
+ MUIV_List_Remove_Active = -(1);
+ MUIV_List_Remove_Last = -(2);
+ MUIV_List_Remove_Selected = -(3);
+ MUIV_List_Select_Off = 0;
+ MUIV_List_Select_On = 1;
+ MUIV_List_Select_Toggle = 2;
+ MUIV_List_Select_Ask = 3;
+ MUIV_List_GetEntry_Active = -(1);
+ MUIV_List_Select_Active = -(1);
+ MUIV_List_Select_All = -(2);
+ MUIV_List_Redraw_Active = -(1);
+ MUIV_List_Redraw_All = -(2);
+ MUIV_List_Move_Top = 0;
+ MUIV_List_Move_Active = -(1);
+ MUIV_List_Move_Bottom = -(2);
+ { only valid for second parameter }
+ MUIV_List_Move_Next = -(3);
+ { only valid for second parameter }
+ MUIV_List_Move_Previous = -(4);
+ MUIV_List_Exchange_Top = 0;
+ MUIV_List_Exchange_Active = -(1);
+ MUIV_List_Exchange_Bottom = -(2);
+ { only valid for second parameter }
+ MUIV_List_Exchange_Next = -(3);
+ { only valid for second parameter }
+ MUIV_List_Exchange_Previous = -(4);
+ MUIV_List_Jump_Top = 0;
+ MUIV_List_Jump_Active = -(1);
+ MUIV_List_Jump_Bottom = -(2);
+ MUIV_List_Jump_Up = -(4);
+ MUIV_List_Jump_Down = -(3);
+ MUIV_List_NextSelected_Start = -(1);
+ MUIV_List_NextSelected_End = -(1);
+ MUIV_DragQuery_Refuse = 0;
+ MUIV_DragQuery_Accept = 1;
+ MUIV_DragReport_Abort = 0;
+ MUIV_DragReport_Continue = 1;
+ MUIV_DragReport_Lock = 2;
+ MUIV_DragReport_Refresh = 3;
+ {
+ Control codes for text strings
+ }
+ { right justified }
+ MUIX_R : PChar = '\033r';
+ { centered }
+ MUIX_C : PChar = '\033c';
+ { left justified }
+ MUIX_L : PChar = '\033l';
+ { normal }
+ MUIX_N : PChar = '\033n';
+ { bold }
+ MUIX_B : PChar = '\033b';
+ { italic }
+ MUIX_I : PChar = '\033i';
+ { underlined }
+ MUIX_U : PChar = '\033u';
+ { text pen }
+ MUIX_PT : PChar = '\0332';
+ { highlight text pen }
+ MUIX_PH : PChar = '\0338';
+ {
+ Parameter structures for some classes
+ }
+
+ type
+ tMUI_Palette_Entry = record
+ mpe_ID : LONG;
+ mpe_Red : LongWord;
+ mpe_Green : LongWord;
+ mpe_Blue : LongWord;
+ mpe_Group : LONG;
+ end;
+ pMUI_Palette_Entry = ^tMUI_Palette_Entry;
+
+ const
+ MUIV_Palette_Entry_End = (-1);
+ { }
+ { Application Input Handler }
+ { }
+ { see below }
+
+ type
+ tMUI_InputHandlerNode = record
+ ihn_Node : tMinNode;
+ ihn_Object : PObject_;
+ ihn_stuff : record
+ case LongInt of
+ 0 : ( ihn_sigs : LongWord );
+ 1 : ( ihn_timer : record
+ ihn_millis : WORD;
+ ihn_current : WORD;
+ end );
+ end;
+ ihn_Flags : LongWord;
+ ihn_Method : LongWord;
+ end;
+ pMUI_InputHandlerNode = ^tMUI_InputHandlerNode;
+
+ const
+ { ihn_Signals = ihn_stuff.ihn_sigs;
+ ihn_Millis = ihn_stuff.(ihn_timer.ihn_millis);
+ ihn_Current = ihn_stuff.(ihn_timer.ihn_current); }
+ { Flags for ihn_Flags }
+ { set ihn_Ticks to number of 1/100 sec ticks you want to be triggered }
+ MUIIHNF_TIMER = 1 shl 0;
+ { }
+ { Window Event Handler }
+ { }
+ { don't touch! }
+ { event handlers are inserted according to their priority. }
+ { certain flags, see below for definitions. }
+ { object which should receive MUIM_HandleEvent. }
+ { if !=NULL, MUIM_HandleEvent is invoked on exactly this class with CoerceMethod(). }
+ { one or more IDCMP flags this handler should react on. }
+
+ type
+
+{$ifdef AROS_FLAVOUR_BINCOMPAT}
+ tMUI_EventHandlerNode = record
+ ehn_Node : tMinNode;
+ ehn_Reserved : BYTE;
+ ehn_Priority : BYTE;
+ ehn_Flags : WORD;
+ ehn_Object : PObject_;
+ ehn_Class : PIClass;
+ ehn_Events : LongWord;
+ end;
+{$else}
+ tMUI_EventHandlerNode = record
+ ehn_Node : TNode;
+ ehn_Flags : WORD;
+ ehn_Object : PObject_;
+ ehn_Class : PIClass;
+ ehn_Events : LongWord;
+ ehn_Priority : BYTE;
+ end;
+{$endif}
+ pMUI_EventHandlerNode = ^tMUI_EventHandlerNode;
+ { flags for ehn_Flags }
+
+ const
+ MUI_EHF_ALWAYSKEYS = 1 shl 0;
+ { other values reserved for future use }
+ { return values for MUIM_HandleEvent (bit-masked, all other bits must be 0) }
+ { stop MUI from calling other handlers }
+ MUI_EventHandlerRC_Eat = 1 shl 0;
+ { }
+ { List Position Test }
+ { }
+ { number of entry, -1 if mouse not over valid entry }
+ { numer of column, -1 if no valid column }
+ { see below }
+ { x offset of mouse click relative to column start }
+ { y offset of mouse click from center of line
+ (negative values mean click was above center,
+ positive values mean click was below center) }
+
+ type
+ tMUI_List_TestPos_Result = record
+ entry : LONG;
+ column : WORD;
+ flags : WORD;
+ xoffset : WORD;
+ yoffset : WORD;
+ end;
+ pMUI_List_TestPos_Result = ^tMUI_List_TestPos_Result;
+
+ const
+ MUI_LPR_ABOVE = 1 shl 0;
+ MUI_LPR_BELOW = 1 shl 1;
+ MUI_LPR_LEFT = 1 shl 2;
+ MUI_LPR_RIGHT = 1 shl 3;
+
+ {
+
+ For Boopsi Image Implementors Only:
+
+ If MUI is using a boopsi image object, it will send a special method
+ immediately after object creation. This method has a parameter structure
+ where the boopsi can fill in its minimum and maximum size and learn if
+ its used in a horizontal or vertical context.
+
+ The boopsi image must use the method id (MUIM_BoopsiQuery) as return
+ value. That's how MUI sees that the method is implemented.
+
+ Note: MUI does not depend on this method. If the boopsi image doesn't
+ implement it, minimum size will be 0 and maximum size unlimited.
+
+ }
+ { this is send to the boopsi and }
+
+ const
+ MUIM_BoopsiQuery = $80427157;
+ { must be used as return value }
+ { parameter structure }
+ { always MUIM_BoopsiQuery }
+ { obsolete, use mbq_RenderInfo }
+ { read only, see below }
+ { write only, fill in min width }
+ { write only, fill in min height }
+ { write only, fill in max width }
+ { write only, fill in max height }
+ { write only, fill in def width }
+ { write only, fill in def height }
+ { read only, display context }
+ { may grow in future ... }
+
+ type
+ tMUI_RenderInfo = record
+ mri_WindowObject : PObject_;
+ mri_Screen : PScreen;
+ mri_DrawInfo : PDrawInfo;
+ mri_Pens : ^WORD;
+ mri_Window : PWindow;
+ mri_RastPort : PRastPort;
+ mri_Flags : LongWord;
+ end;
+ PMUI_RenderInfo = ^tMUI_RenderInfo;
+
+ type
+ tMUI_BoopsiQuery = record
+ mbq_MethodID : LongWord;
+ mbq_Screen : PScreen;
+ mbq_Flags : LongWord;
+ mbq_MinWidth : LONG;
+ mbq_MinHeight : LONG;
+ mbq_MaxWidth : LONG;
+ mbq_MaxHeight : LONG;
+ mbq_DefWidth : LONG;
+ mbq_DefHeight : LONG;
+ mbq_RenderInfo : PMUI_RenderInfo;
+ end;
+ pMUI_BoopsiQuery = ^tMUI_BoopsiQuery;
+ { old structure name }
+
+
+ MUIP_BoopsiQuery = tMUI_BoopsiQuery;
+
+ const
+ { object used in a horizontal }
+ MBQF_HORIZ = 1 shl 0;
+ { context (else vertical) }
+ { use this for unlimited MaxWidth/Height }
+ MBQ_MUI_MAXMAX = 10000;
+ { }
+ { Begin of automatic header file creation }
+ { }
+ { }
+ { Notify }
+ { }
+
+
+ const
+ MUIC_Notify : PChar = 'Notify.mui';
+
+ { Methods }
+ { V4 }
+
+ const
+ MUIM_CallHook = $8042b96b;
+ { V12 }
+ MUIM_Export = $80420f1c;
+ { V8 }
+ MUIM_FindUData = $8042c196;
+ { V11 }
+ MUIM_GetConfigItem = $80423edb;
+ { V8 }
+ MUIM_GetUData = $8042ed0c;
+ { V12 }
+ MUIM_Import = $8042d012;
+ { V4 }
+ MUIM_KillNotify = $8042d240;
+ { V16 }
+ MUIM_KillNotifyObj = $8042b145;
+ { V7 }
+ MUIM_MultiSet = $8042d356;
+ { V9 }
+ MUIM_NoNotifySet = $8042216f;
+ { V4 }
+ MUIM_Notify = $8042c9cb;
+ { V4 }
+ MUIM_Set = $8042549a;
+ { V4 }
+ MUIM_SetAsString = $80422590;
+ { V8 }
+ MUIM_SetUData = $8042c920;
+ { V11 }
+ MUIM_SetUDataOnce = $8042ca19;
+ { V6 }
+ MUIM_WriteLong = $80428d86;
+ { V6 }
+ MUIM_WriteString = $80424bf4;
+ { ... }
+
+ type
+ tMUIP_CallHook = record
+ MethodID : LongWord;
+ Hook : PHook;
+ param1 : LongWord;
+ end;
+ pMUIP_CallHook = ^tMUIP_CallHook;
+
+ tMUIP_Export = record
+ MethodID : LongWord;
+ dataspace : PObject_;
+ end;
+ pMUIP_Export = ^tMUIP_Export;
+
+ tMUIP_FindUData = record
+ MethodID : LongWord;
+ udata : LongWord;
+ end;
+ pMUIP_FindUData = ^tMUIP_FindUData;
+
+ tMUIP_GetConfigItem = record
+ MethodID : LongWord;
+ id : LongWord;
+ storage : PLongWord;
+ end;
+ pMUIP_GetConfigItem = ^tMUIP_GetConfigItem;
+
+ tMUIP_GetUData = record
+ MethodID : LongWord;
+ udata : LongWord;
+ attr : LongWord;
+ storage : PLongWord;
+ end;
+ pMUIP_GetUData = ^tMUIP_GetUData;
+
+ tMUIP_Import = record
+ MethodID : LongWord;
+ dataspace : PObject_;
+ end;
+ pMUIP_Import = ^tMUIP_Import;
+
+ tMUIP_KillNotify = record
+ MethodID : LongWord;
+ TrigAttr : LongWord;
+ end;
+ pMUIP_KillNotify = ^tMUIP_KillNotify;
+
+ tMUIP_KillNotifyObj = record
+ MethodID : LongWord;
+ TrigAttr : LongWord;
+ dest : PObject_;
+ end;
+ pMUIP_KillNotifyObj = ^tMUIP_KillNotifyObj;
+
+ { ... }
+ tMUIP_MultiSet = record
+ MethodID : LongWord;
+ attr : LongWord;
+ val : LongWord;
+ obj : APTR;
+ end;
+ pMUIP_MultiSet = ^tMUIP_MultiSet;
+
+ { ... }
+ tMUIP_NoNotifySet = record
+ MethodID : LongWord;
+ attr : LongWord;
+ format : Pchar;
+ val : LongWord;
+ end;
+ pMUIP_NoNotifySet = ^tMUIP_NoNotifySet;
+
+ { ... }
+ tMUIP_Notify = record
+ MethodID : LongWord;
+ TrigAttr : LongWord;
+ TrigVal : LongWord;
+ DestObj : APTR;
+ FollowParams : LongWord;
+ end;
+ pMUIP_Notify = ^tMUIP_Notify;
+
+ tMUIP_Set = record
+ MethodID : LongWord;
+ attr : LongWord;
+ val : LongWord;
+ end;
+ pMUIP_Set = ^tMUIP_Set;
+
+ { ... }
+ tMUIP_SetAsString = record
+ MethodID : LongWord;
+ attr : LongWord;
+ format : Pchar;
+ val : LongWord;
+ end;
+ pMUIP_SetAsString = ^tMUIP_SetAsString;
+
+ tMUIP_SetUData = record
+ MethodID : LongWord;
+ udata : LongWord;
+ attr : LongWord;
+ val : LongWord;
+ end;
+ pMUIP_SetUData = ^tMUIP_SetUData;
+
+ tMUIP_SetUDataOnce = record
+ MethodID : LongWord;
+ udata : LongWord;
+ attr : LongWord;
+ val : LongWord;
+ end;
+ pMUIP_SetUDataOnce = ^tMUIP_SetUDataOnce;
+
+ tMUIP_WriteLong = record
+ MethodID : LongWord;
+ val : LongWord;
+ memory : PLongWord;
+ end;
+ pMUIP_WriteLong = ^tMUIP_WriteLong;
+
+ tMUIP_WriteString = record
+ MethodID : LongWord;
+ str : Pchar;
+ memory : Pchar;
+ end;
+ pMUIP_WriteString = ^tMUIP_WriteString;
+
+ { Attributes }
+ { V4 ..g Object }
+
+ const
+ MUIA_ApplicationObject = $8042d3ee;
+ { V5 ..g struct AppMessage }
+ MUIA_AppMessage = $80421955;
+ { V4 isg LONG }
+ MUIA_HelpLine = $8042a825;
+ { V4 isg STRPTR }
+ MUIA_HelpNode = $80420b85;
+ { V7 .s. BOOL }
+ MUIA_NoNotify = $804237f9;
+ { V11 isg LongWord }
+ MUIA_ObjectID = $8042d76e;
+ { V11 ..g Object }
+ MUIA_Parent = $8042e35f;
+ { V4 ..g LONG }
+ MUIA_Revision = $80427eaa;
+ { V4 isg LongWord }
+ MUIA_UserData = $80420313;
+ { V4 ..g LONG }
+ MUIA_Version = $80422301;
+ { }
+ { Family }
+ { }
+
+
+ const
+ MUIC_Family : PChar = 'Family.mui';
+
+ { Methods }
+ { V8 }
+
+ const
+ MUIM_Family_AddHead = $8042e200;
+ { V8 }
+ MUIM_Family_AddTail = $8042d752;
+ { V8 }
+ MUIM_Family_Insert = $80424d34;
+ { V8 }
+ MUIM_Family_Remove = $8042f8a9;
+ { V8 }
+ MUIM_Family_Sort = $80421c49;
+ { V8 }
+ MUIM_Family_Transfer = $8042c14a;
+
+ type
+ tMUIP_Family_AddHead = record
+ MethodID : LongWord;
+ obj : PObject_;
+ end;
+ pMUIP_Family_AddHead = ^tMUIP_Family_AddHead;
+
+ tMUIP_Family_AddTail = record
+ MethodID : LongWord;
+ obj : PObject_;
+ end;
+ pMUIP_Family_AddTail = ^tMUIP_Family_AddTail;
+
+ tMUIP_Family_Insert = record
+ MethodID : LongWord;
+ obj : PObject_;
+ pred : PObject_;
+ end;
+ pMUIP_Family_Insert = ^tMUIP_Family_Insert;
+
+ tMUIP_Family_Remove = record
+ MethodID : LongWord;
+ obj : PObject_;
+ end;
+ pMUIP_Family_Remove = ^tMUIP_Family_Remove;
+
+ tMUIP_Family_Sort = record
+ MethodID : LongWord;
+ obj : array[0..0] of PObject_;
+ end;
+ pMUIP_Family_Sort = ^tMUIP_Family_Sort;
+
+ tMUIP_Family_Transfer = record
+ MethodID : LongWord;
+ family : PObject_;
+ end;
+ pMUIP_Family_Transfer = ^tMUIP_Family_Transfer;
+
+ { Attributes }
+ { V8 i.. Object }
+
+ const
+ MUIA_Family_Child = $8042c696;
+ { V8 ..g struct MinList }
+ MUIA_Family_List = $80424b9e;
+ { }
+ { Menustrip }
+ { }
+
+
+ const
+ MUIC_Menustrip : PChar = 'Menustrip.mui';
+
+ { Methods }
+ { Attributes }
+ { V8 isg BOOL }
+
+ const
+ MUIA_Menustrip_Enabled = $8042815b;
+ { }
+ { Menu }
+ { }
+
+
+ const
+ MUIC_Menu : PChar = 'Menu.mui';
+
+ { Methods }
+ { Attributes }
+ { V8 isg BOOL }
+
+ const
+ MUIA_Menu_Enabled = $8042ed48;
+ { V8 isg STRPTR }
+ MUIA_Menu_Title = $8042a0e3;
+ { }
+ { Menuitem }
+ { }
+
+
+ const
+ MUIC_Menuitem : PChar = 'Menuitem.mui';
+
+ { Methods }
+ { Attributes }
+ { V8 isg BOOL }
+
+ const
+ MUIA_Menuitem_Checked = $8042562a;
+ { V8 isg BOOL }
+ MUIA_Menuitem_Checkit = $80425ace;
+ { V16 isg BOOL }
+ MUIA_Menuitem_CommandString = $8042b9cc;
+ { V8 isg BOOL }
+ MUIA_Menuitem_Enabled = $8042ae0f;
+ { V8 isg LONG }
+ MUIA_Menuitem_Exclude = $80420bc6;
+ { V8 isg STRPTR }
+ MUIA_Menuitem_Shortcut = $80422030;
+ { V8 isg STRPTR }
+ MUIA_Menuitem_Title = $804218be;
+ { V8 isg BOOL }
+ MUIA_Menuitem_Toggle = $80424d5c;
+ { V8 ..g struct MenuItem }
+ MUIA_Menuitem_Trigger = $80426f32;
+ MUIV_Menuitem_Shortcut_Check = -(1);
+ { }
+ { Application }
+ { }
+
+
+ const
+ MUIC_Application : PChar = 'Application.mui';
+
+ { Methods }
+ { V14 }
+
+ const
+ MUIM_Application_AboutMUI = $8042d21d;
+ { V11 }
+ MUIM_Application_AddInputHandler = $8042f099;
+ { V11 }
+ MUIM_Application_CheckRefresh = $80424d68;
+
+ { MUI_OBSOLETE }
+ { V4 }
+
+ const
+ MUIM_Application_InputBuffered = $80427e59;
+ { V4 }
+ MUIM_Application_Load = $8042f90d;
+ { V11 }
+ MUIM_Application_NewInput = $80423ba6;
+ { V11 }
+ MUIM_Application_OpenConfigWindow = $804299ba;
+ { V4 }
+ MUIM_Application_PushMethod = $80429ef8;
+ { V11 }
+ MUIM_Application_RemInputHandler = $8042e7af;
+ { V4 }
+ MUIM_Application_ReturnID = $804276ef;
+ { V4 }
+ MUIM_Application_Save = $804227ef;
+ { V11 }
+ MUIM_Application_SetConfigItem = $80424a80;
+
+ { V4 }
+
+ const
+ MUIM_Application_ShowHelp = $80426479;
+
+ type
+ tMUIP_Application_AboutMUI = record
+ MethodID : LongWord;
+ refwindow : PObject_;
+ end;
+ pMUIP_Application_AboutMUI = ^tMUIP_Application_AboutMUI;
+
+ tMUIP_Application_AddInputHandler = record
+ MethodID : LongWord;
+ ihnode : PMUI_InputHandlerNode;
+ end;
+ pMUIP_Application_AddInputHandler = ^tMUIP_Application_AddInputHandler;
+
+ tMUIP_Application_CheckRefresh = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Application_CheckRefresh = ^tMUIP_Application_CheckRefresh;
+
+ tMUIP_Application_GetMenuCheck = record
+ MethodID : LongWord;
+ MenuID : LongWord;
+ end;
+ pMUIP_Application_GetMenuCheck = ^tMUIP_Application_GetMenuCheck;
+
+ tMUIP_Application_GetMenuState = record
+ MethodID : LongWord;
+ MenuID : LongWord;
+ end;
+ pMUIP_Application_GetMenuState = ^tMUIP_Application_GetMenuState;
+
+ tMUIP_Application_Input = record
+ MethodID : LongWord;
+ signal : PLONGBITS;
+ end;
+ pMUIP_Application_Input = ^tMUIP_Application_Input;
+
+ tMUIP_Application_InputBuffered = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Application_InputBuffered = ^tMUIP_Application_InputBuffered;
+
+ tMUIP_Application_Load = record
+ MethodID : LongWord;
+ name : STRPTR;
+ end;
+
+ tMUIP_Application_NewInput = record
+ MethodID : LongWord;
+ signal : PLONGBITS;
+ end;
+ pMUIP_Application_NewInput = ^tMUIP_Application_NewInput;
+
+ tMUIP_Application_OpenConfigWindow = record
+ MethodID : LongWord;
+ flags : LongWord;
+ end;
+ pMUIP_Application_OpenConfigWindow = ^tMUIP_Application_OpenConfigWindow;
+
+ { ... }
+ tMUIP_Application_PushMethod = record
+ MethodID : LongWord;
+ dest : PObject_;
+ count : LONG;
+ end;
+ pMUIP_Application_PushMethod = ^tMUIP_Application_PushMethod;
+
+ tMUIP_Application_RemInputHandler = record
+ MethodID : LongWord;
+ ihnode : PMUI_InputHandlerNode;
+ end;
+ pMUIP_Application_RemInputHandler = ^tMUIP_Application_RemInputHandler;
+
+ tMUIP_Application_ReturnID = record
+ MethodID : LongWord;
+ retid : LongWord;
+ end;
+ pMUIP_Application_ReturnID = ^tMUIP_Application_ReturnID;
+
+ tMUIP_Application_Save = record
+ MethodID : LongWord;
+ name : STRPTR;
+ end;
+
+ tMUIP_Application_SetConfigItem = record
+ MethodID : LongWord;
+ item : LongWord;
+ data : APTR;
+ end;
+ pMUIP_Application_SetConfigItem = ^tMUIP_Application_SetConfigItem;
+
+ tMUIP_Application_SetMenuCheck = record
+ MethodID : LongWord;
+ MenuID : LongWord;
+ stat : LONG;
+ end;
+ pMUIP_Application_SetMenuCheck = ^tMUIP_Application_SetMenuCheck;
+
+ tMUIP_Application_SetMenuState = record
+ MethodID : LongWord;
+ MenuID : LongWord;
+ stat : LONG;
+ end;
+ pMUIP_Application_SetMenuState = ^tMUIP_Application_SetMenuState;
+
+ tMUIP_Application_ShowHelp = record
+ MethodID : LongWord;
+ window : PObject_;
+ name : Pchar;
+ node : Pchar;
+ line : LONG;
+ end;
+ pMUIP_Application_ShowHelp = ^tMUIP_Application_ShowHelp;
+
+ { Attributes }
+ { V4 isg BOOL }
+
+ const
+ MUIA_Application_Active = $804260ab;
+ { V4 i.g STRPTR }
+ MUIA_Application_Author = $80424842;
+ { V4 i.g STRPTR }
+ MUIA_Application_Base = $8042e07a;
+ { V4 ..g Broker }
+ MUIA_Application_Broker = $8042dbce;
+ { V4 isg struct Hook }
+ MUIA_Application_BrokerHook = $80428f4b;
+ { V6 ..g struct MsgPort }
+ MUIA_Application_BrokerPort = $8042e0ad;
+ { V6 i.g LONG }
+ MUIA_Application_BrokerPri = $8042c8d0;
+ { V4 isg struct MUI_Command }
+ MUIA_Application_Commands = $80428648;
+ { V4 i.g STRPTR }
+ MUIA_Application_Copyright = $8042ef4d;
+ { V4 i.g STRPTR }
+ MUIA_Application_Description = $80421fc6;
+ { V4 isg struct DiskObject }
+ MUIA_Application_DiskObject = $804235cb;
+ { V4 ..g BOOL }
+ MUIA_Application_DoubleStart = $80423bc6;
+ { V5 is. Object }
+ MUIA_Application_DropObject = $80421266;
+ { V8 ..g BOOL }
+ MUIA_Application_ForceQuit = $804257df;
+ { V8 isg STRPTR }
+ MUIA_Application_HelpFile = $804293f4;
+ { V4 .sg BOOL }
+ MUIA_Application_Iconified = $8042a07f;
+
+
+ const
+ MUIA_Application_MenuAction = $80428961;
+ { V4 ..g LongWord }
+ MUIA_Application_MenuHelp = $8042540b;
+ { V8 i.. Object }
+ MUIA_Application_Menustrip = $804252d9;
+ { V7 isg struct Hook }
+ MUIA_Application_RexxHook = $80427c42;
+ { V4 ..g struct RxMsg }
+ MUIA_Application_RexxMsg = $8042fd88;
+ { V4 .s. STRPTR }
+ MUIA_Application_RexxString = $8042d711;
+ { V4 i.. BOOL }
+ MUIA_Application_SingleTask = $8042a2c8;
+ { V4 .s. BOOL }
+ MUIA_Application_Sleep = $80425711;
+ { V4 i.g STRPTR }
+ MUIA_Application_Title = $804281b8;
+ { V10 i.. BOOL }
+ MUIA_Application_UseCommodities = $80425ee5;
+ { V10 i.. BOOL }
+ MUIA_Application_UseRexx = $80422387;
+ { V4 i.g STRPTR }
+ MUIA_Application_Version = $8042b33f;
+ { V4 i.. Object }
+ MUIA_Application_Window = $8042bfe0;
+ { V13 ..g struct List }
+ MUIA_Application_WindowList = $80429abe;
+ MUIV_Application_Package_NetConnect = $a3ff7b49;
+ { }
+ { Window }
+ { }
+
+ const
+ MUIC_Window : PChar = 'Window.mui';
+
+ { V16 }
+
+ const
+ MUIM_Window_AddEventHandler = $804203b7;
+
+ { V16 }
+
+ const
+ MUIM_Window_RemEventHandler = $8042679e;
+ { V4 }
+ MUIM_Window_ScreenToBack = $8042913d;
+ { V4 }
+ MUIM_Window_ScreenToFront = $804227a4;
+
+ { V11 }
+
+ const
+ MUIM_Window_Snapshot = $8042945e;
+ { V4 }
+ MUIM_Window_ToBack = $8042152e;
+ { V4 }
+ MUIM_Window_ToFront = $8042554f;
+
+ type
+ tMUIP_Window_AddEventHandler = record
+ MethodID : LongWord;
+ ehnode : PMUI_EventHandlerNode;
+ end;
+ pMUIP_Window_AddEventHandler = ^tMUIP_Window_AddEventHandler;
+
+ tMUIP_Window_GetMenuCheck = record
+ MethodID : LongWord;
+ MenuID : LongWord;
+ end;
+ pMUIP_Window_GetMenuCheck = ^tMUIP_Window_GetMenuCheck;
+
+ tMUIP_Window_GetMenuState = record
+ MethodID : LongWord;
+ MenuID : LongWord;
+ end;
+ pMUIP_Window_GetMenuState = ^tMUIP_Window_GetMenuState;
+
+ tMUIP_Window_RemEventHandler = record
+ MethodID : LongWord;
+ ehnode : PMUI_EventHandlerNode;
+ end;
+ pMUIP_Window_RemEventHandler = ^tMUIP_Window_RemEventHandler;
+
+ tMUIP_Window_ScreenToBack = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Window_ScreenToBack = ^tMUIP_Window_ScreenToBack;
+
+ tMUIP_Window_ScreenToFront = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Window_ScreenToFront = ^tMUIP_Window_ScreenToFront;
+
+ tMUIP_Window_SetCycleChain = record
+ MethodID : LongWord;
+ obj : array[0..0] of PObject_;
+ end;
+ pMUIP_Window_SetCycleChain = ^tMUIP_Window_SetCycleChain;
+
+ tMUIP_Window_SetMenuCheck = record
+ MethodID : LongWord;
+ MenuID : LongWord;
+ stat : LONG;
+ end;
+ pMUIP_Window_SetMenuCheck = ^tMUIP_Window_SetMenuCheck;
+
+ tMUIP_Window_SetMenuState = record
+ MethodID : LongWord;
+ MenuID : LongWord;
+ stat : LONG;
+ end;
+ pMUIP_Window_SetMenuState = ^tMUIP_Window_SetMenuState;
+
+ tMUIP_Window_Snapshot = record
+ MethodID : LongWord;
+ flags : LONG;
+ end;
+ pMUIP_Window_Snapshot = ^tMUIP_Window_Snapshot;
+
+ tMUIP_Window_ToBack = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Window_ToBack = ^tMUIP_Window_ToBack;
+
+ tMUIP_Window_ToFront = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Window_ToFront = ^tMUIP_Window_ToFront;
+
+ { Attributes }
+ { V4 isg BOOL }
+
+ const
+ MUIA_Window_Activate = $80428d2f;
+ { V4 .sg Object }
+ MUIA_Window_ActiveObject = $80427925;
+ { V4 i.g LONG }
+ MUIA_Window_AltHeight = $8042cce3;
+ { V4 i.g LONG }
+ MUIA_Window_AltLeftEdge = $80422d65;
+ { V4 i.g LONG }
+ MUIA_Window_AltTopEdge = $8042e99b;
+ { V4 i.g LONG }
+ MUIA_Window_AltWidth = $804260f4;
+ { V5 i.. BOOL }
+ MUIA_Window_AppWindow = $804280cf;
+ { V4 i.. BOOL }
+ MUIA_Window_Backdrop = $8042c0bb;
+ { V4 i.. BOOL }
+ MUIA_Window_Borderless = $80429b79;
+ { V4 i.. BOOL }
+ MUIA_Window_CloseGadget = $8042a110;
+ { V4 ..g BOOL }
+ MUIA_Window_CloseRequest = $8042e86e;
+ { V4 isg Object }
+ MUIA_Window_DefaultObject = $804294d7;
+ { V4 i.. BOOL }
+ MUIA_Window_DepthGadget = $80421923;
+ { V4 i.. BOOL }
+ MUIA_Window_DragBar = $8042045d;
+ { V8 isg BOOL }
+ MUIA_Window_FancyDrawing = $8042bd0e;
+ { V4 i.g LONG }
+ MUIA_Window_Height = $80425846;
+ { V4 isg LongWord }
+ MUIA_Window_ID = $804201bd;
+ { V4 ..g struct InputEvent }
+ MUIA_Window_InputEvent = $804247d8;
+ { V4 isg BOOL }
+ MUIA_Window_IsSubWindow = $8042b5aa;
+ { V4 i.g LONG }
+ MUIA_Window_LeftEdge = $80426c65;
+ { MUI_OBSOLETE }
+ { V8 isg LongWord }
+
+ const
+ MUIA_Window_MenuAction = $80427521;
+ { V8 i.g Object }
+ MUIA_Window_Menustrip = $8042855e;
+ { V10 ..g Object }
+ MUIA_Window_MouseObject = $8042bf9b;
+ { V10 i.. BOOL }
+ MUIA_Window_NeedsMouseObject = $8042372a;
+ { V4 is. BOOL }
+ MUIA_Window_NoMenus = $80429df5;
+ { V4 .sg BOOL }
+ MUIA_Window_Open = $80428aa0;
+ { V6 isg STRPTR }
+ MUIA_Window_PublicScreen = $804278e4;
+ { V4 is. Object }
+ MUIA_Window_RefWindow = $804201f4;
+ { V4 isg Object }
+ MUIA_Window_RootObject = $8042cba5;
+ { V4 isg struct Screen }
+ MUIA_Window_Screen = $8042df4f;
+ { V5 isg STRPTR }
+ MUIA_Window_ScreenTitle = $804234b0;
+ { V4 i.. BOOL }
+ MUIA_Window_SizeGadget = $8042e33d;
+ { V4 i.. BOOL }
+ MUIA_Window_SizeRight = $80424780;
+ { V4 .sg BOOL }
+ MUIA_Window_Sleep = $8042e7db;
+ { V4 isg STRPTR }
+ MUIA_Window_Title = $8042ad3d;
+ { V4 i.g LONG }
+ MUIA_Window_TopEdge = $80427c66;
+ { V13 isg BOOL }
+ MUIA_Window_UseBottomBorderScroller = $80424e79;
+ { V13 isg BOOL }
+ MUIA_Window_UseLeftBorderScroller = $8042433e;
+ { V13 isg BOOL }
+ MUIA_Window_UseRightBorderScroller = $8042c05e;
+ { V4 i.g LONG }
+ MUIA_Window_Width = $8042dcae;
+ { V4 ..g struct Window }
+ MUIA_Window_Window = $80426a42;
+ MUIV_Window_ActiveObject_None = 0;
+ MUIV_Window_ActiveObject_Next = -(1);
+ MUIV_Window_ActiveObject_Prev = -(2);
+
+
+ const
+ MUIV_Window_AltHeight_Scaled = -(1000);
+ MUIV_Window_AltLeftEdge_Centered = -(1);
+ MUIV_Window_AltLeftEdge_Moused = -(2);
+ MUIV_Window_AltLeftEdge_NoChange = -(1000);
+ MUIV_Window_AltTopEdge_Centered = -(1);
+ MUIV_Window_AltTopEdge_Moused = -(2);
+
+
+ const
+ MUIV_Window_AltTopEdge_NoChange = -(1000);
+
+
+ const
+ MUIV_Window_AltWidth_Scaled = -(1000);
+
+
+
+ const
+ MUIV_Window_Height_Scaled = -(1000);
+ MUIV_Window_Height_Default = -(1001);
+ MUIV_Window_LeftEdge_Centered = -(1);
+ MUIV_Window_LeftEdge_Moused = -(2);
+
+
+ const
+ MUIV_Window_TopEdge_Centered = -(1);
+ MUIV_Window_TopEdge_Moused = -(2);
+
+
+ const
+ MUIV_Window_Width_Scaled = -(1000);
+ MUIV_Window_Width_Default = -(1001);
+ { }
+ { Aboutmui }
+ { }
+
+
+ const
+ MUIC_Aboutmui : PChar = 'Aboutmui.mui';
+
+ { Methods }
+ { Attributes }
+ { V11 i.. Object }
+
+ const
+ MUIA_Aboutmui_Application = $80422523;
+ { }
+ { Area }
+ { }
+
+
+ const
+ MUIC_Area : PChar = 'Area.mui';
+
+ { Methods }
+ { Custom Class }
+ { V4 }
+
+ const
+ MUIM_AskMinMax = $80423874;
+ { Custom Class }
+ { V4 }
+ MUIM_Cleanup = $8042d985;
+ { V11 }
+ MUIM_ContextMenuBuild = $80429d2e;
+ { V11 }
+ MUIM_ContextMenuChoice = $80420f0e;
+ { V18 }
+ MUIM_CreateBubble = $80421c41;
+ { V11 }
+ MUIM_CreateShortHelp = $80428e93;
+ { V18 }
+ MUIM_DeleteBubble = $804211af;
+ { V11 }
+ MUIM_DeleteShortHelp = $8042d35a;
+ { V11 }
+ MUIM_DragBegin = $8042c03a;
+ { V11 }
+ MUIM_DragDrop = $8042c555;
+ { V11 }
+ MUIM_DragFinish = $804251f0;
+ { V11 }
+ MUIM_DragQuery = $80420261;
+ { V11 }
+ MUIM_DragReport = $8042edad;
+ { Custom Class }
+ { V4 }
+ MUIM_Draw = $80426f3f;
+ { V11 }
+ MUIM_DrawBackground = $804238ca;
+ { Custom Class }
+ { V16 }
+ MUIM_HandleEvent = $80426d66;
+ { Custom Class }
+ { V4 }
+ MUIM_HandleInput = $80422a1a;
+ { Custom Class }
+ { V4 }
+ MUIM_Hide = $8042f20f;
+ { Custom Class }
+ { V4 }
+ MUIM_Setup = $80428354;
+ { Custom Class }
+ { V4 }
+ MUIM_Show = $8042cc84;
+
+ type
+
+ { MUI_MinMax structure holds information about minimum, maximum
+ and default dimensions of an object. }
+ tMUI_MinMax = record
+ MinWidth : WORD;
+ MinHeight : WORD;
+ MaxWidth : WORD;
+ MaxHeight : WORD;
+ DefWidth : WORD;
+ DefHeight : WORD;
+ end;
+ pMUI_MinMax = ^tMUI_MinMax;
+
+ tMUIP_AskMinMax = record
+ MethodID : LongWord;
+ MinMaxInfo : PMUI_MinMax;
+ end;
+ pMUIP_AskMinMax = ^tMUIP_AskMinMax;
+
+ { Custom Class }
+ tMUIP_Cleanup = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Cleanup = ^tMUIP_Cleanup;
+
+ { Custom Class }
+ tMUIP_ContextMenuBuild = record
+ MethodID : LongWord;
+ mx : LONG;
+ my : LONG;
+ end;
+ pMUIP_ContextMenuBuild = ^tMUIP_ContextMenuBuild;
+
+ tMUIP_ContextMenuChoice = record
+ MethodID : LongWord;
+ item : PObject_;
+ end;
+ pMUIP_ContextMenuChoice = ^tMUIP_ContextMenuChoice;
+
+ tMUIP_CreateBubble = record
+ MethodID : LongWord;
+ x : LONG;
+ y : LONG;
+ txt : Pchar;
+ flags : LongWord;
+ end;
+ pMUIP_CreateBubble = ^tMUIP_CreateBubble;
+
+ tMUIP_CreateShortHelp = record
+ MethodID : LongWord;
+ mx : LONG;
+ my : LONG;
+ end;
+ pMUIP_CreateShortHelp = ^tMUIP_CreateShortHelp;
+
+ tMUIP_DeleteBubble = record
+ MethodID : LongWord;
+ bubble : APTR;
+ end;
+ pMUIP_DeleteBubble = ^tMUIP_DeleteBubble;
+
+ tMUIP_DeleteShortHelp = record
+ MethodID : LongWord;
+ help : STRPTR;
+ end;
+ pMUIP_DeleteShortHelp = ^tMUIP_DeleteShortHelp;
+
+ tMUIP_DragBegin = record
+ MethodID : LongWord;
+ obj : PObject_;
+ end;
+ pMUIP_DragBegin = ^tMUIP_DragBegin;
+
+ tMUIP_DragDrop = record
+ MethodID : LongWord;
+ obj : PObject_;
+ x : LONG;
+ y : LONG;
+ end;
+ pMUIP_DragDrop = ^tMUIP_DragDrop;
+
+ tMUIP_DragFinish = record
+ MethodID : LongWord;
+ obj : PObject_;
+ end;
+ pMUIP_DragFinish = ^tMUIP_DragFinish;
+
+ tMUIP_DragQuery = record
+ MethodID : LongWord;
+ obj : PObject_;
+ end;
+ pMUIP_DragQuery = ^tMUIP_DragQuery;
+
+ tMUIP_DragReport = record
+ MethodID : LongWord;
+ obj : PObject_;
+ x : LONG;
+ y : LONG;
+ update : LONG;
+ end;
+ pMUIP_DragReport = ^tMUIP_DragReport;
+
+ tMUIP_Draw = record
+ MethodID : LongWord;
+ flags : LongWord;
+ end;
+ pMUIP_Draw = ^tMUIP_Draw;
+
+ { Custom Class }
+ tMUIP_DrawBackground = record
+ MethodID : LongWord;
+ left : LONG;
+ top : LONG;
+ width : LONG;
+ height : LONG;
+ xoffset : LONG;
+ yoffset : LONG;
+ flags : LONG;
+ end;
+ pMUIP_DrawBackground = ^tMUIP_DrawBackground;
+
+ tMUIP_HandleEvent = record
+ MethodID : LongWord;
+ imsg : PIntuiMessage;
+ muikey : LONG;
+ end;
+ pMUIP_HandleEvent = ^tMUIP_HandleEvent;
+
+ { Custom Class }
+ tMUIP_HandleInput = record
+ MethodID : LongWord;
+ imsg : PIntuiMessage;
+ muikey : LONG;
+ end;
+ pMUIP_HandleInput = ^tMUIP_HandleInput;
+
+ { Custom Class }
+ tMUIP_Hide = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Hide = ^tMUIP_Hide;
+
+ { Custom Class }
+ tMUIP_Setup = record
+ MethodID : LongWord;
+ RenderInfo : PMUI_RenderInfo;
+ end;
+ pMUIP_Setup = ^tMUIP_Setup;
+
+ { Custom Class }
+ tMUIP_Show = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Show = ^tMUIP_Show;
+
+ { Custom Class }
+ { Attributes }
+ { V4 is. LONG }
+
+ const
+ MUIA_Background = $8042545b;
+ { V4 ..g LONG }
+ MUIA_BottomEdge = $8042e552;
+ { V11 isg Object }
+ MUIA_ContextMenu = $8042b704;
+ { V11 ..g Object }
+ MUIA_ContextMenuTrigger = $8042a2c1;
+ { V4 isg char }
+ MUIA_ControlChar = $8042120b;
+ { V11 isg LONG }
+ MUIA_CycleChain = $80421ce7;
+ { V4 isg BOOL }
+ MUIA_Disabled = $80423661;
+ { V11 isg BOOL }
+ MUIA_Draggable = $80420b6e;
+ { V11 isg BOOL }
+ MUIA_Dropable = $8042fbce;
+
+ { V4 is. BOOL }
+
+ const
+ MUIA_FillArea = $804294a3;
+ { V4 i.. LONG }
+ MUIA_FixHeight = $8042a92b;
+ { V4 i.. STRPTR }
+ MUIA_FixHeightTxt = $804276f2;
+ { V4 i.. LONG }
+ MUIA_FixWidth = $8042a3f1;
+ { V4 i.. STRPTR }
+ MUIA_FixWidthTxt = $8042d044;
+ { V4 i.g struct TextFont }
+ MUIA_Font = $8042be50;
+ { V4 i.. LONG }
+ MUIA_Frame = $8042ac64;
+ { V4 i.. BOOL }
+ MUIA_FramePhantomHoriz = $8042ed76;
+ { V4 i.. STRPTR }
+ MUIA_FrameTitle = $8042d1c7;
+ { V4 ..g LONG }
+ MUIA_Height = $80423237;
+ { V11 isg LONG }
+ MUIA_HorizDisappear = $80429615;
+ { V4 isg WORD }
+ MUIA_HorizWeight = $80426db9;
+ { V4 i.g LONG }
+ MUIA_InnerBottom = $8042f2c0;
+ { V4 i.g LONG }
+ MUIA_InnerLeft = $804228f8;
+ { V4 i.g LONG }
+ MUIA_InnerRight = $804297ff;
+ { V4 i.g LONG }
+ MUIA_InnerTop = $80421eb6;
+ { V4 i.. LONG }
+ MUIA_InputMode = $8042fb04;
+ { V4 ..g LONG }
+ MUIA_LeftEdge = $8042bec6;
+ { V11 i.. LONG }
+ MUIA_MaxHeight = $804293e4;
+ { V11 i.. LONG }
+ MUIA_MaxWidth = $8042f112;
+ { V4 ..g BOOL }
+ MUIA_Pressed = $80423535;
+ { V4 ..g LONG }
+ MUIA_RightEdge = $8042ba82;
+ { V4 isg BOOL }
+ MUIA_Selected = $8042654b;
+ { V11 isg STRPTR }
+ MUIA_ShortHelp = $80428fe3;
+ { V4 isg BOOL }
+ MUIA_ShowMe = $80429ba8;
+ { V4 i.. BOOL }
+ MUIA_ShowSelState = $8042caac;
+ { V4 ..g LONG }
+ MUIA_Timer = $80426435;
+ { V4 ..g LONG }
+ MUIA_TopEdge = $8042509b;
+ { V11 isg LONG }
+ MUIA_VertDisappear = $8042d12f;
+ { V4 isg WORD }
+ MUIA_VertWeight = $804298d0;
+ { V4 i.. WORD }
+ MUIA_Weight = $80421d1f;
+ { V4 ..g LONG }
+ MUIA_Width = $8042b59c;
+ { V4 ..g struct Window }
+ MUIA_Window = $80421591;
+ { V4 ..g Object }
+ MUIA_WindowObject = $8042669e;
+ MUIV_Font_Inherit = 0;
+ MUIV_Font_Normal = -(1);
+ MUIV_Font_List = -(2);
+ MUIV_Font_Tiny = -(3);
+ MUIV_Font_Fixed = -(4);
+ MUIV_Font_Title = -(5);
+ MUIV_Font_Big = -(6);
+ MUIV_Font_Button = -(7);
+ MUIV_Frame_None = 0;
+ MUIV_Frame_Button = 1;
+ MUIV_Frame_ImageButton = 2;
+ MUIV_Frame_Text = 3;
+ MUIV_Frame_String = 4;
+ MUIV_Frame_ReadList = 5;
+ MUIV_Frame_InputList = 6;
+ MUIV_Frame_Prop = 7;
+ MUIV_Frame_Gauge = 8;
+ MUIV_Frame_Group = 9;
+ MUIV_Frame_PopUp = 10;
+ MUIV_Frame_Virtual = 11;
+ MUIV_Frame_Slider = 12;
+ MUIV_Frame_Count = 13;
+ MUIV_InputMode_None = 0;
+ MUIV_InputMode_RelVerify = 1;
+ MUIV_InputMode_Immediate = 2;
+ MUIV_InputMode_Toggle = 3;
+ { }
+ { Rectangle }
+ { }
+
+
+ const
+ MUIC_Rectangle : PChar = 'Rectangle.mui';
+
+ { Attributes }
+ { V11 i.g STRPTR }
+
+ const
+ MUIA_Rectangle_BarTitle = $80426689;
+ { V7 i.g BOOL }
+ MUIA_Rectangle_HBar = $8042c943;
+ { V7 i.g BOOL }
+ MUIA_Rectangle_VBar = $80422204;
+ { }
+ { Balance }
+ { }
+
+
+ const
+ MUIC_Balance : PChar = 'Balance.mui';
+
+ { }
+ { Image }
+ { }
+
+
+ const
+ MUIC_Image : PChar = 'Image.mui';
+
+ { Attributes }
+ { V4 i.. BOOL }
+
+ const
+ MUIA_Image_FontMatch = $8042815d;
+ { V4 i.. BOOL }
+ MUIA_Image_FontMatchHeight = $80429f26;
+ { V4 i.. BOOL }
+ MUIA_Image_FontMatchWidth = $804239bf;
+ { V4 i.. BOOL }
+ MUIA_Image_FreeHoriz = $8042da84;
+ { V4 i.. BOOL }
+ MUIA_Image_FreeVert = $8042ea28;
+ { V4 i.. struct Image }
+ MUIA_Image_OldImage = $80424f3d;
+ { V4 i.. char }
+ MUIA_Image_Spec = $804233d5;
+ { V4 is. LONG }
+ MUIA_Image_State = $8042a3ad;
+ { }
+ { Bitmap }
+ { }
+
+
+ const
+ MUIC_Bitmap : PChar = 'Bitmap.mui';
+
+ { Attributes }
+ { V8 isg struct BitMap }
+
+ const
+ MUIA_Bitmap_Bitmap = $804279bd;
+ { V8 isg LONG }
+ MUIA_Bitmap_Height = $80421560;
+ { V8 isg UBYTE }
+ MUIA_Bitmap_MappingTable = $8042e23d;
+ { V11 isg LONG }
+ MUIA_Bitmap_Precision = $80420c74;
+ { V11 ..g struct BitMap }
+ MUIA_Bitmap_RemappedBitmap = $80423a47;
+ { V8 isg LongWord }
+ MUIA_Bitmap_SourceColors = $80425360;
+ { V8 isg LONG }
+ MUIA_Bitmap_Transparent = $80422805;
+ { V11 i.. BOOL }
+ MUIA_Bitmap_UseFriend = $804239d8;
+ { V8 isg LONG }
+ MUIA_Bitmap_Width = $8042eb3a;
+ { }
+ { Bodychunk }
+ { }
+
+
+ const
+ MUIC_Bodychunk : PChar = 'Bodychunk.mui';
+
+ { Attributes }
+ { V8 isg UBYTE }
+
+ const
+ MUIA_Bodychunk_Body = $8042ca67;
+ { V8 isg UBYTE }
+ MUIA_Bodychunk_Compression = $8042de5f;
+ { V8 isg LONG }
+ MUIA_Bodychunk_Depth = $8042c392;
+ { V8 isg UBYTE }
+ MUIA_Bodychunk_Masking = $80423b0e;
+ { }
+ { Text }
+ { }
+
+ const
+ MUIC_Text : PChar = 'Text.mui';
+
+ { Attributes }
+ { V4 isg STRPTR }
+
+ const
+ MUIA_Text_Contents = $8042f8dc;
+ { V4 i.. char }
+ MUIA_Text_HiChar = $804218ff;
+ { V4 isg STRPTR }
+ MUIA_Text_PreParse = $8042566d;
+ { V4 i.. BOOL }
+ MUIA_Text_SetMax = $80424d0a;
+ { V4 i.. BOOL }
+ MUIA_Text_SetMin = $80424e10;
+ { V11 i.. BOOL }
+ MUIA_Text_SetVMax = $80420d8b;
+ { }
+ { Gadget }
+ { }
+
+ const
+ MUIC_Gadget : PChar = 'Gadget.mui';
+
+ { Attributes }
+ { V11 ..g struct Gadget }
+
+ const
+ MUIA_Gadget_Gadget = $8042ec1a;
+ { }
+ { String }
+ { }
+
+
+ const
+ MUIC_String : PChar = 'String.mui';
+
+ { Methods }
+ { Attributes }
+ { V4 isg STRPTR }
+
+ const
+ MUIA_String_Accept = $8042e3e1;
+ { V4 ..g STRPTR }
+ MUIA_String_Acknowledge = $8042026c;
+ { V11 isg BOOL }
+ MUIA_String_AdvanceOnCR = $804226de;
+ { V4 isg Object }
+ MUIA_String_AttachedList = $80420fd2;
+ { V4 .sg LONG }
+ MUIA_String_BufferPos = $80428b6c;
+ { V4 isg STRPTR }
+ MUIA_String_Contents = $80428ffd;
+ { V4 .sg LONG }
+ MUIA_String_DisplayPos = $8042ccbf;
+ { V7 isg struct Hook }
+ MUIA_String_EditHook = $80424c33;
+ { V4 i.g LONG }
+ MUIA_String_Format = $80427484;
+ { V4 isg LongWord }
+ MUIA_String_Integer = $80426e8a;
+ { V11 isg BOOL }
+ MUIA_String_LonelyEditHook = $80421569;
+ { V4 i.g LONG }
+ MUIA_String_MaxLen = $80424984;
+ { V4 isg STRPTR }
+ MUIA_String_Reject = $8042179c;
+ { V4 i.g BOOL }
+ MUIA_String_Secret = $80428769;
+ MUIV_String_Format_Left = 0;
+ MUIV_String_Format_Center = 1;
+ MUIV_String_Format_Right = 2;
+ { }
+ { Boopsi }
+ { }
+
+
+ const
+ MUIC_Boopsi : PChar = 'Boopsi.mui';
+
+ { Attributes }
+ { V4 isg struct IClass }
+
+ const
+ MUIA_Boopsi_Class = $80426999;
+ { V4 isg char }
+ MUIA_Boopsi_ClassID = $8042bfa3;
+ { V4 isg LongWord }
+ MUIA_Boopsi_MaxHeight = $8042757f;
+ { V4 isg LongWord }
+ MUIA_Boopsi_MaxWidth = $8042bcb1;
+ { V4 isg LongWord }
+ MUIA_Boopsi_MinHeight = $80422c93;
+ { V4 isg LongWord }
+ MUIA_Boopsi_MinWidth = $80428fb2;
+ { V4 ..g Object }
+ MUIA_Boopsi_Object = $80420178;
+ { V4 i.. LongWord }
+ MUIA_Boopsi_Remember = $8042f4bd;
+ { V9 i.. BOOL }
+ MUIA_Boopsi_Smart = $8042b8d7;
+ { V4 isg LongWord }
+ MUIA_Boopsi_TagDrawInfo = $8042bae7;
+ { V4 isg LongWord }
+ MUIA_Boopsi_TagScreen = $8042bc71;
+ { V4 isg LongWord }
+ MUIA_Boopsi_TagWindow = $8042e11d;
+ { }
+ { Prop }
+ { }
+
+
+ const
+ MUIC_Prop : PChar = 'Prop.mui';
+
+ { Methods }
+ { V16 }
+
+ const
+ MUIM_Prop_Decrease = $80420dd1;
+ { V16 }
+ MUIM_Prop_Increase = $8042cac0;
+
+ type
+ tMUIP_Prop_Decrease = record
+ MethodID : LongWord;
+ amount : LONG;
+ end;
+ pMUIP_Prop_Decrease = ^tMUIP_Prop_Decrease;
+
+ tMUIP_Prop_Increase = record
+ MethodID : LongWord;
+ amount : LONG;
+ end;
+ pMUIP_Prop_Increase = ^tMUIP_Prop_Increase;
+
+ { Attributes }
+ { V4 isg LONG }
+
+ const
+ MUIA_Prop_Entries = $8042fbdb;
+ { V4 isg LONG }
+ MUIA_Prop_First = $8042d4b2;
+ { V4 i.g BOOL }
+ MUIA_Prop_Horiz = $8042f4f3;
+ { V4 isg BOOL }
+ MUIA_Prop_Slider = $80429c3a;
+ { V13 i.. LONG }
+ MUIA_Prop_UseWinBorder = $8042deee;
+ { V4 isg LONG }
+ MUIA_Prop_Visible = $8042fea6;
+ MUIV_Prop_UseWinBorder_None = 0;
+ MUIV_Prop_UseWinBorder_Left = 1;
+ MUIV_Prop_UseWinBorder_Right = 2;
+ MUIV_Prop_UseWinBorder_Bottom = 3;
+ { }
+ { Gauge }
+ { }
+
+
+ const
+ MUIC_Gauge : PChar = 'Gauge.mui';
+
+ { Attributes }
+ { V4 isg LONG }
+
+ const
+ MUIA_Gauge_Current = $8042f0dd;
+ { V4 isg BOOL }
+ MUIA_Gauge_Divide = $8042d8df;
+ { V4 i.. BOOL }
+ MUIA_Gauge_Horiz = $804232dd;
+ { V7 isg STRPTR }
+ MUIA_Gauge_InfoText = $8042bf15;
+ { V4 isg LONG }
+ MUIA_Gauge_Max = $8042bcdb;
+ { }
+ { Scale }
+ { }
+
+
+ const
+ MUIC_Scale : PChar = 'Scale.mui';
+
+ { Attributes }
+ { V4 isg BOOL }
+
+ const
+ MUIA_Scale_Horiz = $8042919a;
+ { }
+ { Colorfield }
+ { }
+
+
+ const
+ MUIC_Colorfield : PChar = 'Colorfield.mui';
+
+ { Attributes }
+ { V4 isg LongWord }
+
+ const
+ MUIA_Colorfield_Blue = $8042d3b0;
+ { V4 isg LongWord }
+ MUIA_Colorfield_Green = $80424466;
+ { V4 ..g LongWord }
+ MUIA_Colorfield_Pen = $8042713a;
+ { V4 isg LongWord }
+ MUIA_Colorfield_Red = $804279f6;
+ { V4 isg LongWord }
+ MUIA_Colorfield_RGB = $8042677a;
+ { }
+ { List }
+ { }
+
+
+ const
+ MUIC_List : PChar = 'List.mui';
+
+ { Methods }
+ { V4 }
+
+ const
+ MUIM_List_Clear = $8042ad89;
+ { V11 }
+ MUIM_List_CreateImage = $80429804;
+ { V11 }
+ MUIM_List_DeleteImage = $80420f58;
+ { V4 }
+ MUIM_List_Exchange = $8042468c;
+ { V4 }
+ MUIM_List_GetEntry = $804280ec;
+ { V4 }
+ MUIM_List_Insert = $80426c87;
+ { V7 }
+ MUIM_List_InsertSingle = $804254d5;
+ { V4 }
+ MUIM_List_Jump = $8042baab;
+ { V9 }
+ MUIM_List_Move = $804253c2;
+ { V6 }
+ MUIM_List_NextSelected = $80425f17;
+ { V4 }
+ MUIM_List_Redraw = $80427993;
+ { V4 }
+ MUIM_List_Remove = $8042647e;
+ { V4 }
+ MUIM_List_Select = $804252d8;
+ { V4 }
+ MUIM_List_Sort = $80422275;
+ { V11 }
+ MUIM_List_TestPos = $80425f48;
+
+ type
+ tMUIP_List_Clear = record
+ MethodID : LongWord;
+ end;
+ pMUIP_List_Clear = ^tMUIP_List_Clear;
+
+ tMUIP_List_CreateImage = record
+ MethodID : LongWord;
+ obj : PObject_;
+ flags : LongWord;
+ end;
+ pMUIP_List_CreateImage = ^tMUIP_List_CreateImage;
+
+ tMUIP_List_DeleteImage = record
+ MethodID : LongWord;
+ listimg : APTR;
+ end;
+ pMUIP_List_DeleteImage = ^tMUIP_List_DeleteImage;
+
+ tMUIP_List_Exchange = record
+ MethodID : LongWord;
+ pos1 : LONG;
+ pos2 : LONG;
+ end;
+ pMUIP_List_Exchange = ^tMUIP_List_Exchange;
+
+ tMUIP_List_GetEntry = record
+ MethodID : LongWord;
+ pos : LONG;
+ entry : PAPTR;
+ end;
+ pMUIP_List_GetEntry = ^tMUIP_List_GetEntry;
+
+ tMUIP_List_Insert = record
+ MethodID : LongWord;
+ entries : PAPTR;
+ count : LONG;
+ pos : LONG;
+ end;
+ pMUIP_List_Insert = ^tMUIP_List_Insert;
+
+ tMUIP_List_InsertSingle = record
+ MethodID : LongWord;
+ entry : APTR;
+ pos : LONG;
+ end;
+ pMUIP_List_InsertSingle = ^tMUIP_List_InsertSingle;
+
+ tMUIP_List_Jump = record
+ MethodID : LongWord;
+ pos : LONG;
+ end;
+ pMUIP_List_Jump = ^tMUIP_List_Jump;
+
+ tMUIP_List_Move = record
+ MethodID : LongWord;
+ from : LONG;
+ too : LONG;
+ end;
+ pMUIP_List_Move = ^tMUIP_List_Move;
+
+ tMUIP_List_NextSelected = record
+ MethodID : LongWord;
+ pos : PLONG;
+ end;
+ pMUIP_List_NextSelected = ^tMUIP_List_NextSelected;
+
+ tMUIP_List_Redraw = record
+ MethodID : LongWord;
+ pos : LONG;
+ end;
+ pMUIP_List_Redraw = ^tMUIP_List_Redraw;
+
+ tMUIP_List_Remove = record
+ MethodID : LongWord;
+ pos : LONG;
+ end;
+ pMUIP_List_Remove = ^tMUIP_List_Remove;
+
+ tMUIP_List_Select = record
+ MethodID : LongWord;
+ pos : LONG;
+ seltype : LONG;
+ state : PLONG;
+ end;
+ pMUIP_List_Select = ^tMUIP_List_Select;
+
+ tMUIP_List_Sort = record
+ MethodID : LongWord;
+ end;
+ pMUIP_List_Sort = ^tMUIP_List_Sort;
+
+ tMUIP_List_TestPos = record
+ MethodID : LongWord;
+ x : LONG;
+ y : LONG;
+ res : PMUI_List_TestPos_Result;
+ end;
+ pMUIP_List_TestPos = ^tMUIP_List_TestPos;
+
+ { Attributes }
+ { V4 isg LONG }
+
+ const
+ MUIA_List_Active = $8042391c;
+ { V4 i.. BOOL }
+ MUIA_List_AdjustHeight = $8042850d;
+ { V4 i.. BOOL }
+ MUIA_List_AdjustWidth = $8042354a;
+ { V11 isg BOOL }
+ MUIA_List_AutoVisible = $8042a445;
+ { V4 is. struct Hook }
+ MUIA_List_CompareHook = $80425c14;
+ { V4 is. struct Hook }
+ MUIA_List_ConstructHook = $8042894f;
+ { V4 is. struct Hook }
+ MUIA_List_DestructHook = $804297ce;
+ { V4 is. struct Hook }
+ MUIA_List_DisplayHook = $8042b4d5;
+ { V11 isg BOOL }
+ MUIA_List_DragSortable = $80426099;
+ { V11 ..g LONG }
+ MUIA_List_DropMark = $8042aba6;
+ { V4 ..g LONG }
+ MUIA_List_Entries = $80421654;
+ { V4 ..g LONG }
+ MUIA_List_First = $804238d4;
+ { V4 isg STRPTR }
+ MUIA_List_Format = $80423c0a;
+ { V9 ..g LONG }
+ MUIA_List_InsertPosition = $8042d0cd;
+ { V4 i.. LONG }
+ MUIA_List_MinLineHeight = $8042d1c3;
+ { V4 is. struct Hook }
+ MUIA_List_MultiTestHook = $8042c2c6;
+ { V13 i.. APTR }
+ MUIA_List_Pool = $80423431;
+ { V13 i.. LongWord }
+ MUIA_List_PoolPuddleSize = $8042a4eb;
+ { V13 i.. LongWord }
+ MUIA_List_PoolThreshSize = $8042c48c;
+ { V4 .s. BOOL }
+ MUIA_List_Quiet = $8042d8c7;
+ { V11 isg BOOL }
+ MUIA_List_ShowDropMarks = $8042c6f3;
+ { V4 i.. APTR }
+ MUIA_List_SourceArray = $8042c0a0;
+ { V6 isg char }
+ MUIA_List_Title = $80423e66;
+ { V4 ..g LONG }
+ MUIA_List_Visible = $8042191f;
+ MUIV_List_Active_Off = -(1);
+ MUIV_List_Active_Top = -(2);
+ MUIV_List_Active_Bottom = -(3);
+ MUIV_List_Active_Up = -(4);
+ MUIV_List_Active_Down = -(5);
+ MUIV_List_Active_PageUp = -(6);
+ MUIV_List_Active_PageDown = -(7);
+ MUIV_List_ConstructHook_String = -(1);
+ MUIV_List_CopyHook_String = -(1);
+ MUIV_List_CursorType_None = 0;
+ MUIV_List_CursorType_Bar = 1;
+ MUIV_List_CursorType_Rect = 2;
+ MUIV_List_DestructHook_String = -(1);
+ { }
+ { Floattext }
+ { }
+
+
+ const
+ MUIC_Floattext : PChar = 'Floattext.mui';
+
+ { Attributes }
+ { V4 isg BOOL }
+
+ const
+ MUIA_Floattext_Justify = $8042dc03;
+ { V4 is. STRPTR }
+ MUIA_Floattext_SkiPChars = $80425c7d;
+ { V4 is. LONG }
+ MUIA_Floattext_TabSize = $80427d17;
+ { V4 isg STRPTR }
+ MUIA_Floattext_Text = $8042d16a;
+ { }
+ { Volumelist }
+ { }
+
+
+ const
+ MUIC_Volumelist : PChar = 'Volumelist.mui';
+
+ { }
+ { Scrmodelist }
+ { }
+
+ const
+ MUIC_Scrmodelist : PChar = 'Scrmodelist.mui';
+
+ { Attributes }
+ { }
+ { Dirlist }
+ { }
+
+
+ const
+ MUIC_Dirlist : PChar = 'Dirlist.mui';
+
+ { Methods }
+ { V4 }
+
+ const
+ MUIM_Dirlist_ReRead = $80422d71;
+
+ type
+ MUIP_Dirlist_ReRead = record
+ MethodID : LongWord;
+ end;
+
+ { Attributes }
+ { V4 is. STRPTR }
+
+ const
+ MUIA_Dirlist_AcceptPattern = $8042760a;
+ { V4 isg STRPTR }
+ MUIA_Dirlist_Directory = $8042ea41;
+ { V4 is. BOOL }
+ MUIA_Dirlist_DrawersOnly = $8042b379;
+ { V4 is. BOOL }
+ MUIA_Dirlist_FilesOnly = $8042896a;
+ { V4 is. BOOL }
+ MUIA_Dirlist_FilterDrawers = $80424ad2;
+ { V4 is. struct Hook }
+ MUIA_Dirlist_FilterHook = $8042ae19;
+ { V6 is. BOOL }
+ MUIA_Dirlist_MultiSelDirs = $80428653;
+ { V4 ..g LONG }
+ MUIA_Dirlist_NumBytes = $80429e26;
+ { V4 ..g LONG }
+ MUIA_Dirlist_NumDrawers = $80429cb8;
+ { V4 ..g LONG }
+ MUIA_Dirlist_NumFiles = $8042a6f0;
+ { V4 ..g STRPTR }
+ MUIA_Dirlist_Path = $80426176;
+ { V4 is. BOOL }
+ MUIA_Dirlist_RejectIcons = $80424808;
+ { V4 is. STRPTR }
+ MUIA_Dirlist_RejectPattern = $804259c7;
+ { V4 is. LONG }
+ MUIA_Dirlist_SortDirs = $8042bbb9;
+ { V4 is. BOOL }
+ MUIA_Dirlist_SortHighLow = $80421896;
+ { V4 is. LONG }
+ MUIA_Dirlist_SortType = $804228bc;
+ { V4 ..g LONG }
+ MUIA_Dirlist_Status = $804240de;
+ MUIV_Dirlist_SortDirs_First = 0;
+ MUIV_Dirlist_SortDirs_Last = 1;
+ MUIV_Dirlist_SortDirs_Mix = 2;
+ MUIV_Dirlist_SortType_Name = 0;
+ MUIV_Dirlist_SortType_Date = 1;
+ MUIV_Dirlist_SortType_Size = 2;
+ MUIV_Dirlist_Status_Invalid = 0;
+ MUIV_Dirlist_Status_Reading = 1;
+ MUIV_Dirlist_Status_Valid = 2;
+ { }
+ { Numeric }
+ { }
+
+ const
+ MUIC_Numeric : PChar = 'Numeric.mui';
+
+ { Methods }
+ { V11 }
+
+ const
+ MUIM_Numeric_Decrease = $804243a7;
+ { V11 }
+ MUIM_Numeric_Increase = $80426ecd;
+ { V11 }
+ MUIM_Numeric_ScaleToValue = $8042032c;
+ { V11 }
+ MUIM_Numeric_SetDefault = $8042ab0a;
+ { V11 }
+ MUIM_Numeric_Stringify = $80424891;
+ { V11 }
+ MUIM_Numeric_ValueToScale = $80423e4f;
+
+ type
+ tMUIP_Numeric_Decrease = record
+ MethodID : LongWord;
+ amount : LONG;
+ end;
+ pMUIP_Numeric_Decrease = ^tMUIP_Numeric_Decrease;
+
+ tMUIP_Numeric_Increase = record
+ MethodID : LongWord;
+ amount : LONG;
+ end;
+ pMUIP_Numeric_Increase = ^tMUIP_Numeric_Increase;
+
+ tMUIP_Numeric_ScaleToValue = record
+ MethodID : LongWord;
+ scalemin : LONG;
+ scalemax : LONG;
+ scale : LONG;
+ end;
+ pMUIP_Numeric_ScaleToValue = ^tMUIP_Numeric_ScaleToValue;
+
+ tMUIP_Numeric_SetDefault = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Numeric_SetDefault = ^tMUIP_Numeric_SetDefault;
+
+ tMUIP_Numeric_Stringify = record
+ MethodID : LongWord;
+ value : LONG;
+ end;
+ pMUIP_Numeric_Stringify = ^tMUIP_Numeric_Stringify;
+
+ tMUIP_Numeric_ValueToScale = record
+ MethodID : LongWord;
+ scalemin : LONG;
+ scalemax : LONG;
+ end;
+ pMUIP_Numeric_ValueToScale = ^tMUIP_Numeric_ValueToScale;
+
+ { Attributes }
+ { V11 isg BOOL }
+
+ const
+ MUIA_Numeric_CheckAllSizes = $80421594;
+ { V11 isg LONG }
+ MUIA_Numeric_Default = $804263e8;
+ { V11 isg STRPTR }
+ MUIA_Numeric_Format = $804263e9;
+ { V11 isg LONG }
+ MUIA_Numeric_Max = $8042d78a;
+ { V11 isg LONG }
+ MUIA_Numeric_Min = $8042e404;
+ { V11 isg BOOL }
+ MUIA_Numeric_Reverse = $8042f2a0;
+ { V11 isg BOOL }
+ MUIA_Numeric_RevLeftRight = $804294a7;
+ { V11 isg BOOL }
+ MUIA_Numeric_RevUpDown = $804252dd;
+ { V11 isg LONG }
+ MUIA_Numeric_Value = $8042ae3a;
+ { }
+ { Knob }
+ { }
+
+
+ const
+ MUIC_Knob : PChar = 'Knob.mui';
+
+ { }
+ { Levelmeter }
+ { }
+
+
+ const
+ MUIC_Levelmeter : PChar = 'Levelmeter.mui';
+
+ { Attributes }
+ { V11 isg STRPTR }
+
+ const
+ MUIA_Levelmeter_Label = $80420dd5;
+ { }
+ { Numericbutton }
+ { }
+
+
+ const
+ MUIC_Numericbutton : PChar = 'Numericbutton.mui';
+
+ { }
+ { Slider }
+ { }
+
+
+ const
+ MUIC_Slider : PChar = 'Slider.mui';
+
+ { Attributes }
+ { V11 isg BOOL }
+
+ const
+ MUIA_Slider_Horiz = $8042fad1;
+
+ { V6 i.. BOOL }
+
+ const
+ MUIA_Slider_Quiet = $80420b26;
+
+ { }
+ { Framedisplay }
+ { }
+
+
+ const
+ MUIC_Framedisplay : PChar = 'Framedisplay.mui';
+
+ { Attributes }
+ { }
+ { Popframe }
+ { }
+
+
+ const
+ MUIC_Popframe : PChar = 'Popframe.mui';
+
+ { }
+ { Imagedisplay }
+ { }
+
+ const
+ MUIC_Imagedisplay : PChar = 'Imagedisplay.mui';
+
+ { Attributes }
+ { }
+ { Popimage }
+ { }
+
+
+ const
+ MUIC_Popimage : PChar = 'Popimage.mui';
+
+ { }
+ { Pendisplay }
+ { }
+
+
+ const
+ MUIC_Pendisplay : PChar = 'Pendisplay.mui';
+
+ { Methods }
+ { V13 }
+
+ const
+ MUIM_Pendisplay_SetColormap = $80426c80;
+ { V13 }
+ MUIM_Pendisplay_SetMUIPen = $8042039d;
+ { V13 }
+ MUIM_Pendisplay_SetRGB = $8042c131;
+
+ type
+ MUIP_Pendisplay_SetColormap = record
+ MethodID : LongWord;
+ colormap : LONG;
+ end;
+
+ MUIP_Pendisplay_SetMUIPen = record
+ MethodID : LongWord;
+ muipen : LONG;
+ end;
+
+ MUIP_Pendisplay_SetRGB = record
+ MethodID : LongWord;
+ red : LongWord;
+ green : LongWord;
+ blue : LongWord;
+ end;
+
+ { Attributes }
+ { V13 ..g Object }
+
+ const
+ MUIA_Pendisplay_Pen = $8042a748;
+ { V13 isg Object }
+ MUIA_Pendisplay_Reference = $8042dc24;
+ { V11 isg struct MUI_RGBcolor }
+ MUIA_Pendisplay_RGBcolor = $8042a1a9;
+ { V11 isg struct MUI_PenSpec }
+ MUIA_Pendisplay_Spec = $8042a204;
+ { }
+ { Poppen }
+ { }
+
+
+ const
+ MUIC_Poppen : PChar = 'Poppen.mui';
+
+ { }
+ { Group }
+ { }
+
+
+ const
+ MUIC_Group : PChar = 'Group.mui';
+
+ { Methods }
+ { V11 }
+
+ const
+ MUIM_Group_ExitChange = $8042d1cc;
+ { V11 }
+ MUIM_Group_InitChange = $80420887;
+ { V4 }
+ MUIM_Group_Sort = $80427417;
+
+ type
+ tMUIP_Group_ExitChange = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Group_ExitChange = ^tMUIP_Group_ExitChange;
+
+ tMUIP_Group_InitChange = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Group_InitChange = ^tMUIP_Group_InitChange;
+
+ tMUIP_Group_Sort = record
+ MethodID : LongWord;
+ obj : array[0..0] of PObject_;
+ end;
+ pMUIP_Group_Sort = ^tMUIP_Group_Sort;
+
+ { Attributes }
+ { V5 isg LONG }
+
+ const
+ MUIA_Group_ActivePage = $80424199;
+ { V4 i.. Object }
+ MUIA_Group_Child = $804226e6;
+ { V4 ..g struct List }
+ MUIA_Group_ChildList = $80424748;
+ { V4 is. LONG }
+ MUIA_Group_Columns = $8042f416;
+ { V4 i.. BOOL }
+ MUIA_Group_Horiz = $8042536b;
+ { V4 isg LONG }
+ MUIA_Group_HorizSpacing = $8042c651;
+ { V11 i.. struct Hook }
+ MUIA_Group_LayoutHook = $8042c3b2;
+ { V5 i.. BOOL }
+ MUIA_Group_PageMode = $80421a5f;
+ { V4 is. LONG }
+ MUIA_Group_Rows = $8042b68f;
+ { V4 i.. BOOL }
+ MUIA_Group_SameHeight = $8042037e;
+ { V4 i.. BOOL }
+ MUIA_Group_SameSize = $80420860;
+ { V4 i.. BOOL }
+ MUIA_Group_SameWidth = $8042b3ec;
+ { V4 is. LONG }
+ MUIA_Group_Spacing = $8042866d;
+ { V4 isg LONG }
+ MUIA_Group_VertSpacing = $8042e1bf;
+ MUIV_Group_ActivePage_First = 0;
+ MUIV_Group_ActivePage_Last = -(1);
+ MUIV_Group_ActivePage_Prev = -(2);
+ MUIV_Group_ActivePage_Next = -(3);
+ MUIV_Group_ActivePage_Advance = -(4);
+ { }
+ { Mccprefs }
+ { }
+
+
+ const
+ MUIC_Mccprefs : PChar = 'Mccprefs.mui';
+
+ { }
+ { Register }
+ { }
+
+ const
+ MUIC_Register : PChar = 'Register.mui';
+
+ { Attributes }
+ { V7 i.g BOOL }
+
+ const
+ MUIA_Register_Frame = $8042349b;
+ { V7 i.g STRPTR }
+ MUIA_Register_Titles = $804297ec;
+ { }
+ { Penadjust }
+ { }
+
+
+ const
+ MUIC_Penadjust : PChar= 'Penadjust.mui';
+
+ { Methods }
+ { Attributes }
+ { V11 i.. BOOL }
+
+ const
+ MUIA_Penadjust_PSIMode = $80421cbb;
+ { }
+ { Settingsgroup }
+ { }
+
+
+ const
+ MUIC_Settingsgroup : PChar = 'Settingsgroup.mui';
+
+ { Methods }
+ { V11 }
+
+ const
+ MUIM_Settingsgroup_ConfigToGadgets = $80427043;
+ { V11 }
+ MUIM_Settingsgroup_GadgetsToConfig = $80425242;
+
+ type
+ tMUIP_Settingsgroup_ConfigToGadgets = record
+ MethodID : LongWord;
+ configdata : PObject_;
+ end;
+ pMUIP_Settingsgroup_ConfigToGadgets = ^tMUIP_Settingsgroup_ConfigToGadgets;
+
+ tMUIP_Settingsgroup_GadgetsToConfig = record
+ MethodID : LongWord;
+ configdata : PObject_;
+ end;
+ pMUIP_Settingsgroup_GadgetsToConfig = ^tMUIP_Settingsgroup_GadgetsToConfig;
+
+ { Attributes }
+ { }
+ { Settings }
+ { }
+
+ const
+ MUIC_Settings : PChar = 'Settings.mui';
+
+ { Methods }
+ { Attributes }
+ { }
+ { Frameadjust }
+ { }
+
+
+ const
+ MUIC_Frameadjust : PChar = 'Frameadjust.mui';
+
+ { Methods }
+ { Attributes }
+ { }
+ { Imageadjust }
+ { }
+
+
+ const
+ MUIC_Imageadjust : PChar = 'Imageadjust.mui';
+
+ { Methods }
+ { Attributes }
+
+ const
+ MUIV_Imageadjust_Type_All = 0;
+ MUIV_Imageadjust_Type_Image = 1;
+ MUIV_Imageadjust_Type_Background = 2;
+ MUIV_Imageadjust_Type_Pen = 3;
+ { }
+ { Virtgroup }
+ { }
+
+
+ const
+ MUIC_Virtgroup : PChar = 'Virtgroup.mui';
+
+ { Methods }
+ { Attributes }
+ { V6 ..g LONG }
+
+ const
+ MUIA_Virtgroup_Height = $80423038;
+ { V11 i.. BOOL }
+ MUIA_Virtgroup_Input = $80427f7e;
+ { V6 isg LONG }
+ MUIA_Virtgroup_Left = $80429371;
+ { V6 isg LONG }
+ MUIA_Virtgroup_Top = $80425200;
+ { V6 ..g LONG }
+ MUIA_Virtgroup_Width = $80427c49;
+ { }
+ { Scrollgroup }
+ { }
+
+
+ const
+ MUIC_Scrollgroup : PChar = 'Scrollgroup.mui';
+
+ { Methods }
+ { Attributes }
+ { V4 i.g Object }
+
+ const
+ MUIA_Scrollgroup_Contents = $80421261;
+ { V9 i.. BOOL }
+ MUIA_Scrollgroup_FreeHoriz = $804292f3;
+ { V9 i.. BOOL }
+ MUIA_Scrollgroup_FreeVert = $804224f2;
+ { V16 ..g Object }
+ MUIA_Scrollgroup_HorizBar = $8042b63d;
+ { V13 i.. BOOL }
+ MUIA_Scrollgroup_UseWinBorder = $804284c1;
+ { V16 ..g Object }
+ MUIA_Scrollgroup_VertBar = $8042cdc0;
+ { }
+ { Scrollbar }
+ { }
+
+
+ const
+ MUIC_Scrollbar : PChar = 'Scrollbar.mui';
+
+ { Attributes }
+ { V11 i.. LONG }
+
+ const
+ MUIA_Scrollbar_Type = $8042fb6b;
+ MUIV_Scrollbar_Type_Default = 0;
+ MUIV_Scrollbar_Type_Bottom = 1;
+ MUIV_Scrollbar_Type_Top = 2;
+ MUIV_Scrollbar_Type_Sym = 3;
+ { }
+ { Listview }
+ { }
+
+
+ const
+ MUIC_Listview : PChar = 'Listview.mui';
+
+ { Attributes }
+ { V7 ..g LONG }
+
+ const
+ MUIA_Listview_ClickColumn = $8042d1b3;
+ { V7 isg LONG }
+ MUIA_Listview_DefClickColumn = $8042b296;
+ { V4 i.g BOOL }
+ MUIA_Listview_DoubleClick = $80424635;
+ { V11 isg LONG }
+ MUIA_Listview_DragType = $80425cd3;
+ { V4 i.. BOOL }
+ MUIA_Listview_Input = $8042682d;
+ { V4 i.g Object }
+ MUIA_Listview_List = $8042bcce;
+ { V7 i.. LONG }
+ MUIA_Listview_MultiSelect = $80427e08;
+ { V10 i.. BOOL }
+ MUIA_Listview_ScrollerPos = $8042b1b4;
+ { V4 ..g BOOL }
+ MUIA_Listview_SelectChange = $8042178f;
+ MUIV_Listview_DragType_None = 0;
+ MUIV_Listview_DragType_Immediate = 1;
+ MUIV_Listview_MultiSelect_None = 0;
+ MUIV_Listview_MultiSelect_Default = 1;
+ MUIV_Listview_MultiSelect_Shifted = 2;
+ MUIV_Listview_MultiSelect_Always = 3;
+ MUIV_Listview_ScrollerPos_Default = 0;
+ MUIV_Listview_ScrollerPos_Left = 1;
+ MUIV_Listview_ScrollerPos_Right = 2;
+ MUIV_Listview_ScrollerPos_None = 3;
+ { }
+ { Radio }
+ { }
+
+
+ const
+ MUIC_Radio : PChar = 'Radio.mui';
+
+ { Attributes }
+ { V4 isg LONG }
+
+ const
+ MUIA_Radio_Active = $80429b41;
+ { V4 i.. STRPTR }
+ MUIA_Radio_Entries = $8042b6a1;
+ { }
+ { Cycle }
+ { }
+
+
+ const
+ MUIC_Cycle : PChar = 'Cycle.mui';
+
+ { Attributes }
+ { V4 isg LONG }
+
+ const
+ MUIA_Cycle_Active = $80421788;
+ { V4 i.. STRPTR }
+ MUIA_Cycle_Entries = $80420629;
+ MUIV_Cycle_Active_Next = -(1);
+ MUIV_Cycle_Active_Prev = -(2);
+ { }
+ { Coloradjust }
+ { }
+
+
+ const
+ MUIC_Coloradjust : PChar = 'Coloradjust.mui';
+
+ { Methods }
+ { Attributes }
+ { V4 isg LongWord }
+
+ const
+ MUIA_Coloradjust_Blue = $8042b8a3;
+ { V4 isg LongWord }
+ MUIA_Coloradjust_Green = $804285ab;
+ { V4 isg LongWord }
+ MUIA_Coloradjust_ModeID = $8042ec59;
+ { V4 isg LongWord }
+ MUIA_Coloradjust_Red = $80420eaa;
+ { V4 isg LongWord }
+ MUIA_Coloradjust_RGB = $8042f899;
+ { }
+ { Palette }
+ { }
+
+
+ const
+ MUIC_Palette : PChar = 'Palette.mui';
+
+ { Attributes }
+ { V6 i.g struct MUI_Palette_Entry }
+
+ const
+ MUIA_Palette_Entries = $8042a3d8;
+ { V6 isg BOOL }
+ MUIA_Palette_Groupable = $80423e67;
+ { V6 isg char }
+ MUIA_Palette_Names = $8042c3a2;
+ { }
+ { Popstring }
+ { }
+
+
+ const
+ MUIC_Popstring : PChar = 'Popstring.mui';
+
+ { Methods }
+ { V7 }
+
+ const
+ MUIM_Popstring_Close = $8042dc52;
+ { V7 }
+ MUIM_Popstring_Open = $804258ba;
+
+ type
+ tMUIP_Popstring_Close = record
+ MethodID : LongWord;
+ result : LONG;
+ end;
+ pMUIP_Popstring_Close = ^tMUIP_Popstring_Close;
+
+ tMUIP_Popstring_Open = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Popstring_Open = ^tMUIP_Popstring_Open;
+
+ { Attributes }
+ { V7 i.g Object }
+
+ const
+ MUIA_Popstring_Button = $8042d0b9;
+ { V7 isg struct Hook }
+ MUIA_Popstring_CloseHook = $804256bf;
+ { V7 isg struct Hook }
+ MUIA_Popstring_OpenHook = $80429d00;
+ { V7 i.g Object }
+ MUIA_Popstring_String = $804239ea;
+ { V7 isg BOOL }
+ MUIA_Popstring_Toggle = $80422b7a;
+ { }
+ { Popobject }
+ { }
+
+
+ const
+ MUIC_Popobject : PChar = 'Popobject.mui';
+
+ { Attributes }
+ { V7 isg BOOL }
+
+ const
+ MUIA_Popobject_Follow = $80424cb5;
+ { V7 isg BOOL }
+ MUIA_Popobject_Light = $8042a5a3;
+ { V7 i.g Object }
+ MUIA_Popobject_Object = $804293e3;
+ { V7 isg struct Hook }
+ MUIA_Popobject_ObjStrHook = $8042db44;
+ { V7 isg struct Hook }
+ MUIA_Popobject_StrObjHook = $8042fbe1;
+ { V7 isg BOOL }
+ MUIA_Popobject_Volatile = $804252ec;
+ { V9 isg struct Hook }
+ MUIA_Popobject_WindowHook = $8042f194;
+ { }
+ { Poplist }
+ { }
+
+
+ const
+ MUIC_Poplist : PChar = 'Poplist.mui';
+
+ { Attributes }
+ { V8 i.. char }
+
+ const
+ MUIA_Poplist_Array = $8042084c;
+ { }
+ { Popscreen }
+ { }
+
+
+ const
+ MUIC_Popscreen : PChar = 'Popscreen.mui';
+
+ { Attributes }
+ { }
+ { Popasl }
+ { }
+
+ const
+ MUIC_Popasl : PChar = 'Popasl.mui';
+
+ { Attributes }
+ { V7 ..g BOOL }
+
+ const
+ MUIA_Popasl_Active = $80421b37;
+ { V7 isg struct Hook }
+ MUIA_Popasl_StartHook = $8042b703;
+ { V7 isg struct Hook }
+ MUIA_Popasl_StopHook = $8042d8d2;
+ { V7 i.g LongWord }
+ MUIA_Popasl_Type = $8042df3d;
+ { }
+ { Semaphore }
+ { }
+
+
+ const
+ MUIC_Semaphore : PChar = 'Semaphore.mui';
+
+ { Methods }
+ { V11 }
+
+ const
+ MUIM_Semaphore_Attempt = $80426ce2;
+ { V11 }
+ MUIM_Semaphore_AttemptShared = $80422551;
+ { V11 }
+ MUIM_Semaphore_Obtain = $804276f0;
+ { V11 }
+ MUIM_Semaphore_ObtainShared = $8042ea02;
+ { V11 }
+ MUIM_Semaphore_Release = $80421f2d;
+
+ type
+ tMUIP_Semaphore_Attempt = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Semaphore_Attempt = ^tMUIP_Semaphore_Attempt;
+
+ tMUIP_Semaphore_AttemptShared = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Semaphore_AttemptShared = ^tMUIP_Semaphore_AttemptShared;
+
+ tMUIP_Semaphore_Obtain = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Semaphore_Obtain = ^tMUIP_Semaphore_Obtain;
+
+ tMUIP_Semaphore_ObtainShared = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Semaphore_ObtainShared = ^tMUIP_Semaphore_ObtainShared;
+
+ tMUIP_Semaphore_Release = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Semaphore_Release = ^tMUIP_Semaphore_Release;
+
+ { }
+ { Applist }
+ { }
+
+ const
+ MUIC_Applist : PChar = 'Applist.mui';
+ { Methods }
+ { }
+ { Cclist }
+ { }
+
+
+ const
+ MUIC_Cclist : PChar = 'Cclist.mui';
+
+ { Methods }
+ { }
+ { Dataspace }
+ { }
+
+
+ const
+ MUIC_Dataspace : PChar = 'Dataspace.mui';
+
+ { Methods }
+ { V11 }
+
+ const
+ MUIM_Dataspace_Add = $80423366;
+ { V11 }
+ MUIM_Dataspace_Clear = $8042b6c9;
+ { V11 }
+ MUIM_Dataspace_Find = $8042832c;
+ { V11 }
+ MUIM_Dataspace_Merge = $80423e2b;
+ { V11 }
+ MUIM_Dataspace_ReadIFF = $80420dfb;
+ { V11 }
+ MUIM_Dataspace_Remove = $8042dce1;
+ { V11 }
+ MUIM_Dataspace_WriteIFF = $80425e8e;
+
+ type
+ tMUIP_Dataspace_Add = record
+ MethodID : LongWord;
+ data : APTR;
+ len : LONG;
+ id : LongWord;
+ end;
+ pMUIP_Dataspace_Add = ^tMUIP_Dataspace_Add;
+
+ tMUIP_Dataspace_Clear = record
+ MethodID : LongWord;
+ end;
+ pMUIP_Dataspace_Clear = ^tMUIP_Dataspace_Clear;
+
+ tMUIP_Dataspace_Find = record
+ MethodID : LongWord;
+ id : LongWord;
+ end;
+ pMUIP_Dataspace_Find = ^tMUIP_Dataspace_Find;
+
+ tMUIP_Dataspace_Merge = record
+ MethodID : LongWord;
+ dataspace : PObject_;
+ end;
+ pMUIP_Dataspace_Merge = ^tMUIP_Dataspace_Merge;
+
+ tMUIP_Dataspace_ReadIFF = record
+ MethodID : LongWord;
+ handle : Pointer;//PIFFHandle;
+ end;
+ pMUIP_Dataspace_ReadIFF = ^tMUIP_Dataspace_ReadIFF;
+
+ tMUIP_Dataspace_Remove = record
+ MethodID : LongWord;
+ id : LongWord;
+ end;
+ pMUIP_Dataspace_Remove = ^tMUIP_Dataspace_Remove;
+
+ tMUIP_Dataspace_WriteIFF = record
+ MethodID : LongWord;
+ handle : Pointer; //PIFFHandle;
+ type_ : LongWord;
+ id : LongWord;
+ end;
+ pMUIP_Dataspace_WriteIFF = ^tMUIP_Dataspace_WriteIFF;
+
+ { Attributes }
+ { V11 i.. APTR }
+
+ const
+ MUIA_Dataspace_Pool = $80424cf9;
+ { }
+ { Configdata }
+ { }
+
+
+ const
+ MUIC_Configdata : PChar = 'Configdata.mui';
+
+ { Methods }
+ { Attributes }
+ { }
+ { Dtpic }
+ { }
+
+
+ const
+ MUIC_Dtpic : PChar = 'Dtpic.mui';
+ { Attributes }
+ { }
+ { End of automatic header file creation }
+ { }
+ {
+ Structures and Macros for creating custom classes.
+ }
+ {
+ GENERAL NOTES:
+
+ - Everything described in this header file is only valid within
+ MUI classes. You may never use any of these things out of
+ a class, e.g. in a traditional MUI application.
+
+ - Except when otherwise stated, all structures are strictly read only.
+ }
+ { Global information for every object }
+ { ... private data follows ... }
+
+ type
+ tMUI_GlobalInfo = record
+ priv0 : LongWord;
+ mgi_ApplicationObject : PObject_;
+ end;
+ pMUI_GlobalInfo = ^tMUI_GlobalInfo;
+
+ { Instance data of notify class }
+ tMUI_NotifyData = record
+ mnd_GlobalInfo : PMUI_GlobalInfo;
+ mnd_UserData : LongWord;
+ mnd_ObjectID : LongWord;
+ priv1 : LongWord;
+ priv2 : LongWord;
+ priv3 : LongWord;
+ priv4 : LongWord;
+ end;
+ pMUI_NotifyData = ^tMUI_NotifyData;
+
+
+ { use this if a dimension is not limited. }
+
+ const
+ MUI_MAXMAX = 10000;
+ { Hook message for custom layout }
+ { type of message (see defines below) }
+ { list of this groups children, traverse with NextObject() }
+ { results for MUILM_MINMAX }
+ { size (and result) for MUILM_LAYOUT }
+
+ type
+ tMUI_LayoutMsg = record
+ lm_Type : LongWord;
+ lm_Children : PMinList;
+ lm_MinMax : tMUI_MinMax;
+ lm_Layout : record
+ Width : LONG;
+ Height : LONG;
+ priv5 : LongWord;
+ priv6 : LongWord;
+ end;
+ end;
+ pMUI_LayoutMsg = ^tMUI_LayoutMsg;
+
+ { MUI wants you to calc your min & max sizes }
+
+ const
+ MUILM_MINMAX = 1;
+ { MUI wants you to layout your children }
+ MUILM_LAYOUT = 2;
+ { return this if your hook doesn't implement lm_Type }
+ MUILM_UNKNOWN = -(1);
+ { (partial) instance data of area class }
+ { RenderInfo for this object }
+ { Font }
+ { min/max/default sizes }
+ { position and dimension }
+ { frame & innerspacing left offset }
+ { frame & innerspacing top offset }
+ { frame & innerspacing add. width }
+ { frame & innerspacing add. height }
+ { see definitions below }
+ { ... private data follows ... }
+
+ type
+ tMUI_AreaData = record
+ mad_RenderInfo : PMUI_RenderInfo;
+ priv7 : LongWord;
+ mad_Font : PTextFont;
+ mad_MinMax : tMUI_MinMax;
+ mad_Box : tIBox;
+ mad_addleft : BYTE;
+ mad_addtop : BYTE;
+ mad_subwidth : BYTE;
+ mad_subheight : BYTE;
+ mad_Flags : LongWord;
+ end;
+ pMUI_AreaData = ^tMUI_AreaData;
+
+ { Definitions for mad_Flags, other flags are private }
+ { completely redraw yourself }
+
+ const
+ MADF_DRAWOBJECT = 1 shl 0;
+ { only update yourself }
+ MADF_DRAWUPDATE = 1 shl 1;
+ { MUI's draw pens }
+ MPEN_SHINE = 0;
+ MPEN_HALFSHINE = 1;
+ MPEN_BACKGROUND = 2;
+ MPEN_HALFSHADOW = 3;
+ MPEN_SHADOW = 4;
+ MPEN_TEXT = 5;
+ MPEN_FILL = 6;
+ MPEN_MARK = 7;
+ MPEN_COUNT = 8;
+ { Mask for pens from MUI_ObtainPen() }
+ MUIPEN_MASK = $0000ffff;
+
+
+ { Information on display environment }
+ { valid between MUIM_Setup/MUIM_Cleanup }
+ { valid between MUIM_Setup/MUIM_Cleanup }
+ { valid between MUIM_Setup/MUIM_Cleanup }
+ { valid between MUIM_Setup/MUIM_Cleanup }
+ { valid between MUIM_Show/MUIM_Hide }
+ { valid between MUIM_Show/MUIM_Hide }
+ { valid between MUIM_Setup/MUIM_Cleanup }
+ { ... private data follows ... }
+
+
+
+ {
+ If mri_Flags & MUIMRI_RECTFILL, RectFill() is quicker
+ than Move()/Draw() for horizontal or vertical lines.
+ on the current display.
+ }
+
+ const
+ MUIMRI_RECTFILL = 1 shl 0;
+ {
+ If mri_Flags & MUIMRI_TRUECOLOR, display environment is a
+ cybergraphics emulated hicolor or true color display.
+ }
+ MUIMRI_TRUECOLOR = 1 shl 1;
+ {
+ If mri_Flags & MUIMRI_THINFRAMES, MUI uses thin frames
+ (1:1) apsect ratio instead of standard 2:1 frames.
+ }
+ MUIMRI_THINFRAMES = 1 shl 2;
+ {
+ If mri_Flags & MUIMRI_REFRESHMODE, MUI is currently
+ refreshing a WFLG_SIMPLEREFRESH window and is between
+ a BeginRefresh()/EndRefresh() pair.
+ }
+ MUIMRI_REFRESHMODE = 1 shl 3;
+ { the following macros can be used to get pointers to an objects
+ GlobalInfo and RenderInfo structures. }
+
+ type
+ t__dummyXFC2__ = record
+ mnd : tMUI_NotifyData;
+ mad : tMUI_AreaData;
+ end;
+ p__dummyXFC2__ = ^t__dummyXFC2__;
+
+
+ const
+
+ MUIKEY_RELEASE = -2;
+ MUIKEY_NONE = -1;
+ MUIKEY_PRESS = 0;
+ MUIKEY_TOGGLE = 1;
+ MUIKEY_UP = 2;
+ MUIKEY_DOWN = 3;
+ MUIKEY_PAGEUP = 4;
+ MUIKEY_PAGEDOWN = 5;
+ MUIKEY_TOP = 6;
+ MUIKEY_BOTTOM = 7;
+ MUIKEY_LEFT = 8;
+ MUIKEY_RIGHT = 9;
+ MUIKEY_WORDLEFT = 10;
+ MUIKEY_WORDRIGHT = 11;
+ MUIKEY_LINESTART = 12;
+ MUIKEY_LINEEND = 13;
+ MUIKEY_GADGET_NEXT = 14;
+ MUIKEY_GADGET_PREV = 15;
+ MUIKEY_GADGET_OFF = 16;
+ MUIKEY_WINDOW_CLOSE = 17;
+ MUIKEY_WINDOW_NEXT = 18;
+ MUIKEY_WINDOW_PREV = 19;
+ MUIKEY_HELP = 20;
+ MUIKEY_POPUP = 21;
+ MUIKEY_COUNT = 22;
+
+ MUIKEYF_PRESS = 1 shl MUIKEY_PRESS;
+ MUIKEYF_TOGGLE = 1 shl MUIKEY_TOGGLE;
+ MUIKEYF_UP = 1 shl MUIKEY_UP;
+ MUIKEYF_DOWN = 1 shl MUIKEY_DOWN;
+ MUIKEYF_PAGEUP = 1 shl MUIKEY_PAGEUP;
+ MUIKEYF_PAGEDOWN = 1 shl MUIKEY_PAGEDOWN;
+ MUIKEYF_TOP = 1 shl MUIKEY_TOP;
+ MUIKEYF_BOTTOM = 1 shl MUIKEY_BOTTOM;
+ MUIKEYF_LEFT = 1 shl MUIKEY_LEFT;
+ MUIKEYF_RIGHT = 1 shl MUIKEY_RIGHT;
+ MUIKEYF_WORDLEFT = 1 shl MUIKEY_WORDLEFT;
+ MUIKEYF_WORDRIGHT = 1 shl MUIKEY_WORDRIGHT;
+ MUIKEYF_LINESTART = 1 shl MUIKEY_LINESTART;
+ MUIKEYF_LINEEND = 1 shl MUIKEY_LINEEND;
+ MUIKEYF_GADGET_NEXT = 1 shl MUIKEY_GADGET_NEXT;
+ MUIKEYF_GADGET_PREV = 1 shl MUIKEY_GADGET_PREV;
+ MUIKEYF_GADGET_OFF = 1 shl MUIKEY_GADGET_OFF;
+ MUIKEYF_WINDOW_CLOSE = 1 shl MUIKEY_WINDOW_CLOSE;
+ MUIKEYF_WINDOW_NEXT = 1 shl MUIKEY_WINDOW_NEXT;
+ MUIKEYF_WINDOW_PREV = 1 shl MUIKEY_WINDOW_PREV;
+ MUIKEYF_HELP = 1 shl MUIKEY_HELP;
+ MUIKEYF_POPUP = 1 shl MUIKEY_POPUP;
+
+ { MUI_CustomClass returned by MUI_CreateCustomClass() }
+ { use for whatever you want }
+ { MUI has opened these libraries }
+ { for you automatically. You can }
+ { use them or decide to open }
+ { your libraries yourself. }
+ { pointer to super class }
+ { pointer to the new class }
+ { ... private data follows ... }
+
+ type
+ tMUI_CustomClass = record
+ mcc_UserData : APTR;
+ mcc_UtilityBase : PLibrary;
+ mcc_DOSBase : PLibrary;
+ mcc_GfxBase : PLibrary;
+ mcc_IntuitionBase : PLibrary;
+ mcc_Super : PIClass;
+ mcc_Class : PIClass;
+ end;
+ pMUI_CustomClass = ^tMUI_CustomClass;
+
+var
+ MUIMasterBase : pLibrary;
+
+function MUI_NewObjectA(class_ : PChar; tags : pTagItem) : PObject_; syscall MUIMasterBase 5;
+procedure MUI_DisposeObject(obj : PObject_); syscall MUIMasterBase 6;
+function MUI_RequestA(app : Pointer; win : Pointer; flags : LONGBITS; title : PChar; gadgets : PChar; format : PChar; params : Pointer) : LongInt; syscall MUIMasterBase 7;
+function MUI_AllocAslRequest(typ : LongWord; tags : pTagItem) : Pointer; syscall MUIMasterBase 8;
+function MUI_AslRequest(req : Pointer; tags : pTagItem) : LongBool; syscall MUIMasterBase 9;
+procedure MUI_FreeAslRequest(req : Pointer); syscall MUIMasterBase 10;
+function MUI_Error : LongInt; syscall MUIMasterBase 11;
+function MUI_SetError(errnum : LongInt) : LongInt; syscall MUIMasterBase 12;
+function MUI_GetClass(name : pCHar) : PIClass; syscall MUIMasterBase 13;
+procedure MUI_FreeClass(cl : PIClass); syscall MUIMasterBase 14;
+procedure MUI_RequestIDCMP(obj : PObject_; flags : LongWord); syscall MUIMasterBase 15;
+procedure MUI_RejectIDCMP(obj : PObject_; flags : LongWord); syscall MUIMasterBase 16;
+procedure MUI_Redraw(obj : PObject_; flags : LongWord); syscall MUIMasterBase 17;
+function MUI_CreateCustomClass(base : pLibrary; supername : PChar; supermcc : pMUI_CustomClass; datasize : LongInt; dispatcher : Pointer) : PMUI_CustomClass; syscall MUIMasterBase 18;
+function MUI_DeleteCustomClass(mcc : pMUI_CustomClass) : LongBool; syscall MUIMasterBase 19;
+function MUI_MakeObjectA(typ: LongInt; params : pLongWord) : PObject_; syscall MUIMasterBase 20;
+function MUI_Layout(obj: PObject_; l : LongInt; t : LongInt; w : LongInt; h : LongInt; flags : LongWord) : LongBool; syscall MUIMasterBase 21;
+function MUI_ObtainPen(mri: PMUI_RenderInfo; spec : pMUI_PenSpec; flags : LongWord) : LongInt; syscall MUIMasterBase 22;
+procedure MUI_ReleasePen(mri: PMUI_RenderInfo; pen : LongInt); syscall MUIMasterBase 23;
+function MUI_AddClipping(mri: PMUI_RenderInfo; l : smallint; t : smallint; w : smallint; h : smallint) : Pointer; syscall MUIMasterBase 24;
+procedure MUI_RemoveClipping(mri: PMUI_RenderInfo; h : Pointer); syscall MUIMasterBase 25;
+function MUI_AddClipRegion(mri: PMUI_RenderInfo; region : pRegion) : Pointer; syscall MUIMasterBase 26;
+procedure MUI_RemoveClipRegion(mri: PMUI_RenderInfo; region : Pointer); syscall MUIMasterBase 27;
+function MUI_BeginRefresh(mri: PMUI_RenderInfo; flags : LongWord) : LongBool; syscall MUIMasterBase 28;
+procedure MUI_EndRefresh(mri: PMUI_RenderInfo; flags : LongWord); syscall MUIMasterBase 29;
+
+
+(*
+** some procedures to get some information about our object
+*)
+
+function MUINotifyData(obj : APTR) : pMUI_NotifyData;
+function MUIAreaData(obj : APTR) : pMUI_AreaData;
+function MUIGlobalInfo(obj : APTR) : pMUI_GlobalInfo;
+function MUIUserData(obj : APTR) : Pointer ;
+function MUIRenderInfo(obj : APTR) : PMUI_RenderInfo;
+function MUIPen(pen : LongInt): LongInt;
+(*
+** some more specialized functions to retain information about special
+** object-data like rastport, window, etc.
+**
+** NOTE: These macros may only be used in custom classes and are
+** only valid if your class is inbetween the specified methods!
+*)
+
+function OBJ_App(obj : APTR) : PObject_; (* valid between MUIM_Setup/Cleanup *)
+function OBJ_Win(obj : APTR) : PObject_; (* valid between MUIM_Setup/Cleanup *)
+function OBJ_Dri(obj : APTR) : pDrawInfo; (* valid between MUIM_Setup/Cleanup *)
+function OBJ_Screen(obj : APTR) : pScreen; (* valid between MUIM_Setup/Cleanup *)
+function OBJ_Pens(obj : APTR) : pWord; (* valid between MUIM_Setup/Cleanup *)
+function OBJ_Window(obj : APTR) : pWindow; (* valid between MUIM_Show/Hide *)
+function OBJ_Rp(obj : APTR) : pRastPort; (* valid between MUIM_Show/Hide *)
+function OBJ_Left(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+function OBJ_Top(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+function OBJ_Width(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+function OBJ_Height(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+function OBJ_Right(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+function OBJ_Bottom(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+function OBJ_AddLeft(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+function OBJ_AddTop(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+function OBJ_SubWidth(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+function OBJ_SubHeight(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+function OBJ_MLeft(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+function OBJ_MTop(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+function OBJ_MWidth(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+function OBJ_MHeight(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+function OBJ_MRight(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+function OBJ_MBottom(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+function OBJ_Font(obj : APTR) : pTextFont; (* valid between MUIM_Setup/Cleanup *)
+function OBJ_MinWidth(obj : APTR) : LongWord; (* valid between MUIM_Show/Hide *)
+function OBJ_MinHeight(obj : APTR) : LongWord; (* valid between MUIM_Show/Hide *)
+function OBJ_MaxWidth(obj : APTR) : LongWord; (* valid between MUIM_Show/Hide *)
+function OBJ_MaxHeight(obj : APTR) : LongWord; (* valid between MUIM_Show/Hide *)
+function OBJ_DefWidth(obj : APTR) : LongWord; (* valid between MUIM_Show/Hide *)
+function OBJ_DefHeight(obj : APTR) : LongWord; (* valid between MUIM_Show/Hide *)
+function OBJ_Flags(obj : APTR) : LongWord;
+
+function OBJ_Between(a,x,b : smallint): boolean;
+function OBJ_IsInObject(x,y : smallint; obj : PObject_): boolean;
+
+function MUIV_Window_AltHeight_MinMax(p : LongInt) : LongInt;
+function MUIV_Window_AltHeight_Visible(p : LongInt) : LongInt;
+function MUIV_Window_AltHeight_Screen(p : LongInt) : LongInt;
+function MUIV_Window_AltTopEdge_Delta(p : LongInt) : LongInt;
+function MUIV_Window_AltWidth_MinMax(p : LongInt) : LongInt;
+function MUIV_Window_AltWidth_Visible(p : LongInt) : LongInt;
+function MUIV_Window_AltWidth_Screen(p : LongInt) : LongInt;
+function MUIV_Window_Height_MinMax(p : LongInt) : LongInt;
+function MUIV_Window_Height_Visible(p : LongInt) : LongInt;
+function MUIV_Window_Height_Screen(p : LongInt) : LongInt;
+function MUIV_Window_TopEdge_Delta(p : LongInt) : LongInt;
+function MUIV_Window_Width_MinMax(p : LongInt) : LongInt;
+function MUIV_Window_Width_Visible(p : LongInt) : LongInt;
+function MUIV_Window_Width_Screen(p : LongInt) : LongInt;
+
+{
+ Functions and procedures with array of const go here
+}
+function MUI_AllocAslRequestTags(_type : longword; const tags : Array Of Const) : Pointer;
+function MUI_AslRequestTags(req : Pointer; const tags : Array Of Const) : LongBool;
+function MUI_MakeObject(_type : LongInt; const params : Array Of Const) : pLongWord;
+function MUI_NewObject(a0arg : pCHAR; const tags : Array Of Const) : pLongWord;
+function MUI_Request(app : Pointer; win : Pointer; flags : longword; title : pCHAR; gadgets : pCHAR; format : pCHAR; const params : Array Of Const) : LongInt;
+
+
+
+{This is a variable that knows how the unit is compiled}
+var
+ MUIMASTERIsCompiledHow : LongInt;
+
+implementation
+
+uses
+ tagsarray,longarray;
+
+function MUINotifyData(obj : APTR) : pMUI_NotifyData;
+begin
+ MUINotifyData := pMUI_NotifyData(@p__dummyXFC2__(obj)^.mnd);
+end;
+
+function MUIAreaData(obj : APTR) : pMUI_AreaData;
+begin
+ MUIAreaData := pMUI_AreaData(@p__dummyXFC2__(obj)^.mad);
+end;
+
+function MUIGlobalInfo(obj : APTR) : pMUI_GlobalInfo;
+begin
+ MUIGlobalInfo := pMUI_GlobalInfo(p__dummyXFC2__(obj)^.mnd.mnd_GlobalInfo);
+end;
+
+function MUIUserData(obj : APTR) : Pointer ;
+begin
+ MUIUserData := Pointer(p__dummyXFC2__(obj)^.mnd.mnd_GlobalInfo);
+end;
+
+function MUIRenderInfo(obj : APTR) : PMUI_RenderInfo;
+begin
+ MUIRenderInfo := PMUI_RenderInfo(p__dummyXFC2__(obj)^.mad.mad_RenderInfo);
+end;
+
+function MUIPen(pen : LongInt): LongInt;
+begin
+ MUIPen := LongInt(pen*MUIPEN_Mask);
+end;
+
+function OBJ_App(obj : APTR) : PObject_; (* valid between MUIM_Setup/Cleanup *)
+begin
+ OBJ_App := MUIGlobalInfo(obj)^.mgi_ApplicationObject;
+end;
+
+function OBJ_Win(obj : APTR) : PObject_; (* valid between MUIM_Setup/Cleanup *)
+begin
+ OBJ_Win := MUIRenderInfo(obj)^.mri_WindowObject;
+end;
+
+function OBJ_Dri(obj : APTR) : pDrawInfo; (* valid between MUIM_Setup/Cleanup *)
+begin
+ OBJ_Dri := MUIRenderInfo(obj)^.mri_DrawInfo;
+end;
+
+function OBJ_Screen(obj : APTR) : pScreen; (* valid between MUIM_Setup/Cleanup *)
+begin
+ OBJ_Screen := MUIRenderInfo(obj)^.mri_Screen;
+end;
+
+function OBJ_Pens(obj : APTR) : pWord; (* valid between MUIM_Setup/Cleanup *)
+begin
+ OBJ_Pens := MUIRenderInfo(obj)^.mri_Pens;
+end;
+
+function OBJ_Window(obj : APTR) : pWindow; (* valid between MUIM_Show/Hide *)
+begin
+ OBJ_Window := MUIRenderInfo(obj)^.mri_Window;
+end;
+
+function OBJ_Rp(obj : APTR) : pRastPort; (* valid between MUIM_Show/Hide *)
+begin
+ OBJ_Rp := MUIRenderInfo(obj)^.mri_RastPort;
+end;
+
+function OBJ_Left(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+begin
+ OBJ_Left := MUIAreaData(obj)^.mad_Box.Left;
+end;
+
+function OBJ_Top(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+begin
+ OBJ_Top := MUIAreaData(obj)^.mad_Box.Top;
+end;
+
+function OBJ_Width(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+begin
+ OBJ_Width := MUIAreaData(obj)^.mad_Box.Width;
+end;
+
+function OBJ_Height(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+begin
+ OBJ_Height := MUIAreaData(obj)^.mad_Box.Height;
+end;
+
+function OBJ_Right(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+begin
+ OBJ_Right := OBJ_Left(obj) + OBJ_Width(obj) -1;
+end;
+
+function OBJ_Bottom(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+begin
+ OBJ_Bottom := OBJ_Top(obj) + OBJ_Height(obj) -1;
+end;
+
+function OBJ_AddLeft(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+begin
+ OBJ_AddLeft := MUIAreaData(obj)^.mad_AddLeft;
+end;
+
+function OBJ_AddTop(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+begin
+ OBJ_AddTop := MUIAreaData(obj)^.mad_AddTop;
+end;
+
+function OBJ_SubWidth(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+begin
+ OBJ_SubWidth := MUIAreaData(obj)^.mad_SubWidth;
+end;
+
+function OBJ_SubHeight(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+begin
+ OBJ_SubHeight := MUIAreaData(obj)^.mad_SubHeight;
+end;
+
+function OBJ_MLeft(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+begin
+ OBJ_MLeft := OBJ_Left(obj) + OBJ_AddLeft(obj);
+end;
+
+function OBJ_MTop(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+begin
+ OBJ_MTop := OBJ_Top(obj) + OBJ_AddTop(obj);
+end;
+
+function OBJ_MWidth(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+begin
+ OBJ_MWidth := OBJ_Width(obj) -OBJ_SubWidth(obj);
+end;
+
+function OBJ_MHeight(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+begin
+ OBJ_MHeight := OBJ_Height(obj) - OBJ_SubHeight(obj);
+end;
+
+function OBJ_MRight(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+begin
+ OBJ_MRight := OBJ_MLeft(obj) + OBJ_MWidth(obj) -1;
+end;
+
+function OBJ_MBottom(obj : APTR) : smallint; (* valid during MUIM_Draw *)
+begin
+ OBJ_MBottom := OBJ_MTop(obj) + OBJ_MHeight(obj) -1;
+end;
+
+function OBJ_Font(obj : APTR) : pTextFont; (* valid between MUIM_Setup/Cleanup *)
+begin
+ OBJ_Font := MUIAreaData(obj)^.mad_Font;
+end;
+
+function OBJ_MinWidth(obj : APTR) : LongWord; (* valid between MUIM_Show/Hide *)
+begin
+ OBJ_MinWidth := MUIAreaData(obj)^.mad_MinMax.MinWidth;
+end;
+
+function OBJ_MinHeight(obj : APTR) : LongWord; (* valid between MUIM_Show/Hide *)
+begin
+ OBJ_MinHeight := MUIAreaData(obj)^.mad_MinMax.MinHeight;
+end;
+
+function OBJ_MaxWidth(obj : APTR) : LongWord; (* valid between MUIM_Show/Hide *)
+begin
+ OBJ_maxWidth := MUIAreaData(obj)^.mad_MinMax.MaxWidth;
+end;
+
+function OBJ_MaxHeight(obj : APTR) : LongWord; (* valid between MUIM_Show/Hide *)
+begin
+ OBJ_maxHeight := MUIAreaData(obj)^.mad_MinMax.MaxHeight;
+end;
+
+function OBJ_DefWidth(obj : APTR) : LongWord; (* valid between MUIM_Show/Hide *)
+begin
+ OBJ_DefWidth := MUIAreaData(obj)^.mad_MinMax.DefWidth;
+end;
+
+function OBJ_DefHeight(obj : APTR) : LongWord; (* valid between MUIM_Show/Hide *)
+begin
+ OBJ_DefHeight := MUIAreaData(obj)^.mad_MinMax.DefHeight;
+end;
+
+function OBJ_Flags(obj : APTR) : LongWord;
+begin
+ OBJ_Flags := MUIAreaData(obj)^.mad_Flags;
+end;
+
+(*
+** 2 useful procedures for testing if some coordinates are inside your object
+** (converted from the ones in class3.c. So look there how to use... )
+*)
+
+function OBJ_Between(a,x,b : smallint): boolean;
+begin
+ OBJ_Between := ((x>=a) and (x<=b));
+end;
+
+function OBJ_IsInObject(x,y : smallint; obj : PObject_): boolean;
+begin
+ OBJ_IsInObject := (OBJ_Between(OBJ_MLeft(obj),x,OBJ_MRight(obj))
+ and OBJ_Between(OBJ_MTop(obj),y,OBJ_MBottom(obj)));
+end;
+
+function MUIV_Window_AltHeight_MinMax(p : LongInt) : LongInt;
+begin
+ MUIV_Window_AltHeight_MinMax := (0 - p);
+end;
+
+function MUIV_Window_AltHeight_Visible(p : LongInt) : LongInt;
+begin
+ MUIV_Window_AltHeight_Visible := (-100 - (p));
+end;
+
+function MUIV_Window_AltHeight_Screen(p : LongInt) : LongInt;
+begin
+ MUIV_Window_AltHeight_Screen := (-200 - (p));
+end;
+
+function MUIV_Window_AltTopEdge_Delta(p : LongInt) : LongInt;
+begin
+ MUIV_Window_AltTopEdge_Delta := (-3 - (p));
+end;
+
+function MUIV_Window_AltWidth_MinMax(p : LongInt) : LongInt;
+begin
+ MUIV_Window_AltWidth_MinMax := 0 - p;
+end;
+
+function MUIV_Window_AltWidth_Visible(p : LongInt) : LongInt;
+begin
+ MUIV_Window_AltWidth_Visible := (-100 - (p));
+end;
+
+function MUIV_Window_AltWidth_Screen(p : LongInt) : LongInt;
+begin
+ MUIV_Window_AltWidth_Screen := (-200 - (p));
+end;
+
+function MUIV_Window_Height_MinMax(p : LongInt) : LongInt;
+begin
+ MUIV_Window_Height_MinMax := 0 - p;
+end;
+
+function MUIV_Window_Height_Visible(p : LongInt) : LongInt;
+begin
+ MUIV_Window_Height_Visible := (-100 - (p));
+end;
+
+function MUIV_Window_Height_Screen(p : LongInt) : LongInt;
+begin
+ MUIV_Window_Height_Screen := (-200 - (p));
+end;
+
+function MUIV_Window_TopEdge_Delta(p : LongInt) : LongInt;
+begin
+ MUIV_Window_TopEdge_Delta := (-3 - (p));
+end;
+
+function MUIV_Window_Width_MinMax(p : LongInt) : LongInt;
+begin
+ MUIV_Window_Width_MinMax := 0 - p;
+end;
+
+function MUIV_Window_Width_Visible(p : LongInt) : LongInt;
+begin
+ MUIV_Window_Width_Visible := (-100 - (p));
+end;
+
+function MUIV_Window_Width_Screen(p : LongInt) : LongInt;
+begin
+ MUIV_Window_Width_Screen := (-200 - (p));
+end;
+
+{
+ Functions and procedures with array of const go here
+}
+function MUI_AllocAslRequestTags(_type : longword; const tags : Array Of Const) : Pointer;
+begin
+ MUI_AllocAslRequestTags := MUI_AllocAslRequest(_type , readintags(tags));
+end;
+
+function MUI_AslRequestTags(req : Pointer; const tags : Array Of Const) : LongBool;
+begin
+ MUI_AslRequestTags := MUI_AslRequest(req , readintags(tags));
+end;
+
+function MUI_MakeObject(_type : LongInt; const params : Array Of Const) : pLongWord;
+begin
+ MUI_MakeObject := MUI_MakeObjectA(_type , readinlongs(params));
+end;
+
+function MUI_NewObject(a0arg : pCHAR; const tags : Array Of Const) : pLongWord;
+begin
+ MUI_NewObject := MUI_NewObjectA(a0arg , readintags(tags));
+end;
+
+function MUI_Request(app : Pointer; win : Pointer; flags : longword; title : pCHAR; gadgets : pCHAR; format : pCHAR; const params : Array Of Const) : LongInt;
+begin
+ MUI_Request := MUI_RequestA(app , win , flags , title , gadgets , format , readintags(params));
+end;
+
+const
+ { Change VERSION and LIBVERSION to proper values }
+
+ VERSION : string[2] = '0';
+ LIBVERSION : longword = 0;
+
+initialization
+ MUIMasterBase := OpenLibrary(MUIMASTER_NAME,LIBVERSION);
+finalization
+ CloseLibrary(MUIMasterBase);
+end.
diff --git a/packages/arosunits/src/tagsarray.pas b/packages/arosunits/src/tagsarray.pas
new file mode 100644
index 0000000000..175d55883a
--- /dev/null
+++ b/packages/arosunits/src/tagsarray.pas
@@ -0,0 +1,111 @@
+{
+ This file is part of the Free Pascal run time library.
+
+ A file in Amiga system run time library.
+ Copyright (c) 2002 by Nils Sjoholm
+ member of the Amiga RTL development team.
+
+ 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 tagsarray;
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ Exec, Utility;
+
+type
+ TTagsList = array of ttagitem;
+ PMyTags = ^TTagsList;
+
+
+function ReadInTags(const Args: array of const): PTagItem;
+procedure AddTags(var Taglist: TTagsList; const Args: array of const);
+function GetTagPtr(var TagList: TTagsList): PTagItem;
+
+implementation
+
+var
+ MyTags: PMyTags;
+
+procedure AddTags(var Taglist: TTagsList; const Args: array of const);
+var
+ i: IPTR;
+ ii: IPTR;
+begin
+ ii := Length(TagList);
+ SetLength(TagList, Length(TagList) + (Length(args) DIV 2));
+ for i := 0 to High(args) do
+ begin
+ if (not Odd(i)) then
+ begin
+ TagList[ii].ti_tag := IPTR(Args[i].vinteger);
+ end else
+ begin
+ case Args[i].vtype of
+ vtinteger : TagList[ii].ti_data := IPTR(Args[i].vinteger);
+ vtboolean : TagList[ii].ti_data := IPTR(byte(Args[i].vboolean));
+ vtpchar : TagList[ii].ti_data := IPTR(Args[i].vpchar);
+ vtchar : TagList[ii].ti_data := IPTR(Args[i].vchar);
+ vtstring : TagList[ii].ti_data := IPTR(PChar(string(Args[i].vstring^)));
+ vtpointer : TagList[ii].ti_data := IPTR(Args[i].vpointer);
+ end;
+ inc(ii);
+ end;
+ end;
+end;
+
+function GetTagPtr(var TagList: TTagsList): pTagItem;
+begin
+ AddTags(TagList, [TAG_END, TAG_END]);
+ GetTagPtr := @(TagList[0]);
+end;
+
+function ReadInTags(const Args: array of const): PTagItem;
+var
+ i: IPTR;
+ ii: IPTR;
+begin
+ ii := 0;
+ SetLength(MyTags^, (Length(Args) div 2) + 4); // some more at the end
+ for i := 0 to High(Args) do
+ begin
+ if not Odd(i) then
+ begin
+ mytags^[ii].ti_tag := IPTR(Args[i].vinteger);
+ end else
+ begin
+ case Args[i].vtype of
+ vtinteger: mytags^[ii].ti_data := IPTR(Args[i].vinteger);
+ vtboolean: mytags^[ii].ti_data := IPTR(Byte(Args[i].vboolean));
+ vtpchar: mytags^[ii].ti_data := IPTR(Args[i].vpchar);
+ vtchar: mytags^[ii].ti_data := IPTR(Args[i].vchar);
+ vtstring: mytags^[ii].ti_data := IPTR(PChar(string(Args[i].vstring^)));
+ vtpointer: mytags^[ii].ti_data := IPTR(Args[i].vpointer);
+ end;
+ Inc(ii);
+ end;
+ end;
+ Inc(ii);
+ // Add additional TAG_DONE (if user forget)
+ mytags^[ii].ti_tag := TAG_DONE;
+ mytags^[ii].ti_data := 0;
+ // return the pointer
+ ReadInTags := @(MyTags^[0]);
+end;
+
+initialization
+ New(MyTags);
+ SetLength(MyTags^, 200);
+finalization
+ SetLength(MyTags^, 0);
+ Dispose(MyTags);
+end.
diff --git a/packages/arosunits/src/timer.pas b/packages/arosunits/src/timer.pas
new file mode 100644
index 0000000000..e0908d443d
--- /dev/null
+++ b/packages/arosunits/src/timer.pas
@@ -0,0 +1,94 @@
+{
+ This file is part of the Free Pascal run time library.
+
+ A file in Amiga system run time library.
+ Copyright (c) 1998-2003 by Nils Sjoholm
+ member of the Amiga RTL development team.
+
+ 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.
+
+ **********************************************************************}
+
+{
+ History:
+ Removed the var for all functions.
+ 06 Sep 2000.
+
+ Added the define use_amiga_smartlink.
+ 13 Jan 2003.
+
+ nils.sjoholm@mailbox.swipnet.se
+
+}
+
+unit timer;
+
+interface
+
+uses
+ exec;
+
+const
+
+{ unit defintions }
+ UNIT_MICROHZ = 0;
+ UNIT_VBLANK = 1;
+ UNIT_ECLOCK = 2;
+ UNIT_WAITUNTIL = 3;
+ UNIT_WAITECLOCK = 4;
+
+ TIMERNAME: PChar = 'timer.device';
+
+type
+ PTimeval = ^TTimeval;
+ TTimeval = record
+ tv_secs: LongWord;
+ tv_micro: LongWord;
+ end;
+
+ PTimerequest = ^TTimerequest;
+ TTimerequest = record
+ tr_node: TIORequest;
+ tr_time: TTimeval;
+ end;
+
+ PEClockVal = ^TEClockVal;
+ TEClockVal = record
+ ev_hi : LongWord;
+ ev_lo : LongWord;
+ end;
+
+
+const
+
+{ IO_COMMAND to use for adding a timer }
+ TR_ADDREQUEST = CMD_NONSTD;
+ TR_GETSYSTIME = CMD_NONSTD + 1;
+ TR_SETSYSTIME = CMD_NONSTD + 2;
+
+{ To use any of the routines below, TimerBase must be set to point
+ to the timer.device, either by calling CreateTimer or by pulling
+ the device pointer from a valid TimeRequest, i.e.
+
+ TimerBase := TimeRequest.io_Device;
+
+ _after_ you have called OpenDevice on the timer.
+ }
+
+var
+ TimerBase: Pointer;
+
+procedure AddTime(Dest, Source: PTimeVal); syscall TimerBase 7;
+function CmpTime(Dest, Source: PTimeVal): LongWord; syscall TimerBase 9;
+procedure SubTime(Dest, Source: PTimeVal); syscall TimerBase 8;
+function ReadEClock(Dest: PEClockVal): LongInt; syscall TimerBase 10;
+procedure GetSysTime(Dest: PTimeVal); syscall TimerBase 11;
+
+implementation
+
+end.
diff --git a/packages/arosunits/src/utility.pas b/packages/arosunits/src/utility.pas
new file mode 100644
index 0000000000..d81016f49b
--- /dev/null
+++ b/packages/arosunits/src/utility.pas
@@ -0,0 +1,295 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ utility.library 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.
+
+ **********************************************************************}
+unit utility;
+
+{$mode objfpc}{$H+}
+{$PACKRECORDS C}
+
+interface
+
+uses
+ Exec;
+
+type
+ PClockData = ^TClockData;
+ TClockData = record
+ Sec: Word;
+ Min: Word;
+ Hour: Word;
+ MDay: Word;
+ Month: Word;
+ Year: Word;
+ WDay: Word;
+ end;
+
+// Use CALLHOOKPKT to call a hook
+ PHook = ^THook;
+ THookFunctionProc = function(Hook: PHook; Object_: APTR; Message: APTR): IPTR; cdecl;
+
+ THook = record
+ h_MinNode: TMinNode;
+ h_Entry: IPTR; // Main Entry point THookFunctionProc
+ h_SubEntry: IPTR; // Secondary entry point
+ h_Data: Pointer; // owner specific
+ end;
+
+// The named object structure
+ PNamedObject = ^TNamedObject;
+ TNamedObject = record
+ no_Object: APTR; // Your pointer, for whatever you want
+ END;
+
+const
+// Tags for AllocNamedObject()
+ ANO_NameSpace = 4000; // Tag to define namespace
+ ANO_UserSpace = 4001; // tag to define userspace
+ ANO_Priority = 4002; // tag to define priority
+ ANO_Flags = 4003; // tag to define flags (NSF_*)
+
+// Flags for tag ANO_Flags
+ NSB_NODUPS = 0;
+ NSF_NODUPS = 1 shl 0; // Default allow duplicates
+ NSB_CASE = 1;
+ NSF_CASE = 1 shl 1; // Default to caseless...
+
+// Control attributes for Pack/UnpackStructureTags()
+{ PackTable definition:
+
+ The PackTable is a simple array of LONGWORDS that are evaluated by
+ PackStructureTags() and UnpackStructureTags().
+
+ The table contains compressed information such as the tag offset from
+ the base tag. The tag offset has a limited range so the base tag is
+ defined in the first longword.
+
+ After the first longword, the fields look as follows:
+
+ +--------- 1 = signed, 0 = unsigned (for bits, 1=inverted boolean)
+ |
+ | +------ 00 = Pack/Unpack, 10 = Pack, 01 = Unpack, 11 = special
+ | / \
+ | | | +-- 00 = Byte, 01 = Integer, 10 = Long, 11 = Bit
+ | | | / \
+ | | | | | /----- For bit operations: 1 = TAG_EXISTS is TRUE
+ | | | | | |
+ | | | | | | /-------------------- Tag offset from base tag value
+ | | | | | | | \
+ m n n o o p q q q q q q q q q q r r r s s s s s s s s s s s s s
+ \ | | |
+ Bit offset (for bit operations) ----/ | |
+ \ |
+ Offset into data structure -----------------------------------/
+
+ A -1 longword signifies that the next longword will be a new base tag
+
+ A 0 longword signifies that it is the end of the pack table.
+
+ What this implies is that there are only 13-bits of address offset
+ and 10 bits for tag offsets from the base tag. For most uses this
+ should be enough, but when this is not, either multiple pack tables
+ or a pack table with extra base tags would be able to do the trick.
+ The goal here was to make the tables small and yet flexible enough to
+ handle most cases.}
+const
+ PSTB_EXISTS = 26; // Tag exists bit true flag hack...
+ PSTF_EXISTS = 1 shl 26;
+ PSTB_PACK = 29; // Note that these are active low...
+ PSTF_PACK = 1 shl 29;
+ PSTB_UNPACK = 30; // Note that these are active low...
+ PSTF_UNPACK = 1 shl 30;
+ PSTB_SIGNED = 31;
+ PSTF_SIGNED = 1 shl 31;
+
+ PKCTRL_UBYTE = $00000000;
+ PKCTRL_BYTE = $80000000;
+ PKCTRL_UWORD = $08000000;
+ PKCTRL_WORD = $88000000;
+ PKCTRL_LongWord = $10000000;
+ PKCTRL_LONG = $90000000;
+ PKCTRL_PACKUNPACK = $00000000;
+ PKCTRL_UNPACKONLY = $20000000;
+ PKCTRL_PACKONLY = $40000000;
+ PKCTRL_BIT = $18000000;
+ PKCTRL_FLIPBIT = $98000000;
+
+{ Some handy dandy macros to easily create pack tables
+ *
+ * Use PACK_STARTTABLE() at the start of a pack table. You pass it the
+ * base tag value that will be handled in the following chunk of the pack
+ * table.
+ *
+ * PACK_ENDTABLE() is used to mark the end of a pack table.
+ *
+ * PACK_NEWOFFSET() lets you change the base tag value used for subsequent
+ * entries in the table
+ *
+ * PACK_ENTRY() lets you define an entry in the pack table. You pass it the
+ * base tag value, the tag of interest, the type of the structure to use,
+ * the field name in the structure to affect and control bits (combinations of
+ * the various PKCTRL_XXX bits)
+ *
+ * PACK_BYTEBIT() lets you define a bit-control entry in the pack table. You
+ * pass it the same data as PACK_ENTRY, plus the flag bit pattern this tag
+ * affects. This macro should be used when the field being affected is byte
+ * sized.
+ *
+ * PACK_WORDBIT() lets you define a bit-control entry in the pack table. You
+ * pass it the same data as PACK_ENTRY, plus the flag bit pattern this tag
+ * affects. This macro should be used when the field being affected is Integer
+ * sized.
+ *
+ * PACK_LONGBIT() lets you define a bit-control entry in the pack table. You
+ * pass it the same data as PACK_ENTRY, plus the flag bit pattern this tag
+ * affects. This macro should be used when the field being affected is longword
+ * sized.
+ *
+ * EXAMPLE:
+ *
+ * LongWord packTable[] =
+ * (
+ * PACK_STARTTABLE(GA_Dummy),
+ * PACK_ENTRY(GA_Dummy,GA_Left,Gadget,LeftEdge,PKCTRL_WORD|PKCTRL_PACKUNPACK),
+ * PACK_ENTRY(GA_Dummy,GA_Top,Gadget,TopEdge,PKCTRL_WORD|PKCTRL_PACKUNPACK),
+ * PACK_ENTRY(GA_Dummy,GA_Width,Gadget,Width,PKCTRL_UWORD|PKCTRL_PACKUNPACK),
+ * PACK_ENTRY(GA_Dummy,GA_Height,Gadget,Height,PKCTRL_UWORD|PKCTRL_PACKUNPACK),
+ * PACK_WORDBIT(GA_Dummy,GA_RelVerify,Gadget,Activation,PKCTRL_BIT|PKCTRL_PACKUNPACK,GACT_RELVERIFY)
+ * PACK_ENDTABLE
+ * );
+ }
+
+// TagItem, Tag, TAG_USER moved to Exec needed there already for dome definitions
+
+
+const
+// system tag values Tag.ti_Tag
+ TAG_DONE = 0; // terminates array of TagItems. ti_Data unused
+ TAG_END = TAG_DONE;
+ TAG_IGNORE = 1; // ignore this item, not END of array
+ TAG_MORE = 2; // ti_Data is pointer to another array of TagItems note that this tag terminates the current array
+ TAG_SKIP = 3; // skip this AND the next ti_Data items
+// What separates user tags from system tags
+ // TAG_USER = 1 shl 31; // see exec
+ TAG_OS = 16; // The first tag used by the OS
+// Tag-Offsets for the OS
+ DOS_TAGBASE = TAG_OS; // Reserve 16k tags for DOS
+ INTUITION_TAGBASE = TAG_OS or $2000; // Reserve 16k tags for Intuition
+
+{ If the TAG_USER bit is set in a tag number, it tells utility.library that
+ the tag is not a control tag (like TAG_DONE, TAG_IGNORE, TAG_MORE) and is
+ instead an application tag. "USER" means a client of utility.library in
+ general, including system code like Intuition or ASL, it has nothing to do
+ with user code.}
+// Tag filter logic specifiers for use with FilterTagItems()
+ TAGFILTER_AND = 0; // exclude everything but filter hits
+ TAGFILTER_NOT = 1; // exclude only filter hits
+
+// Mapping types for use with MapTags()
+ MAP_REMOVE_NOT_FOUND = 0; // remove tags that aren't in mapList
+ MAP_KEEP_NOT_FOUND = 1; // keep tags that aren't in mapList
+
+ UTILITYNAME = 'utility.library';
+
+type
+ PUtilityBase = ^TUtilityBase;
+ TUtilityBase = record
+ ub_LibNode: TLibrary;
+ ub_Language: Byte;
+ ub_Reserved: Byte;
+ end;
+
+function AddNamedObject(NameSpace, Object_: PNamedObject): LongBool; syscall AOS_UtilityBase 37;
+function AllocateTagItems(Num: LongWord): PTagItem; syscall AOS_UtilityBase 11;
+function AllocNamedObjectA(const Name: STRPTR; TagList: PTagItem): PNamedObject; syscall AOS_UtilityBase 38;
+procedure Amiga2Date(Seconds: LongWord; Resultat: PClockData); syscall AOS_UtilityBase 20;
+procedure ApplyTagChanges(List: PTagItem; ChangeList: PTagItem); syscall AOS_UtilityBase 31;
+function AttemptRemNamedObject(Object_: PNamedObject): LongInt; syscall AOS_UtilityBase 39;
+function CallHookPkt(Hook: PHook; Object_, ParamPaket: APTR): IPTR; syscall AOS_UtilityBase 17;
+function CheckDate(Date: PClockData): LongWord; syscall AOS_UtilityBase 22;
+function CloneTagItems(const TagList: PTagItem): PTagItem; syscall AOS_UtilityBase 12;
+function Date2Amiga(Date: PClockData): LongWord; syscall AOS_UtilityBase 21;
+procedure FilterTagChanges(ChangeList: PTagItem; const Oldvalues: PTagItem; Apply: LongBool); syscall AOS_UtilityBase 9;
+function FilterTagItems(TagList: PTagItem; FilterArray: PTag; Logic: LongWord): LongWord; syscall AOS_UtilityBase 16;
+function FindNamedObject(NameSpace: PNamedObject; const Name: STRPTR; LastObject: PNamedObject): PNamedObject; syscall AOS_UtilityBase 40;
+function FindTagItem(TagValue: Tag; const TagList: PTagItem): PTagItem; syscall AOS_UtilityBase 5;
+procedure FreeNamedObject(Object_: PNamedObject); syscall AOS_UtilityBase 41;
+procedure FreeTagItems(TagList: PTagItem); syscall AOS_UtilityBase 13;
+function GetTagData(TagValue: Tag; Default: IPTR; const TagList: PTagItem): IPTR; syscall AOS_UtilityBase 6;
+function GetUniqueID: LongWord; syscall AOS_UtilityBase 45;
+procedure MapTags(TagList: PTagItem; const MapList: PTagItem; MapType: LongWord); syscall AOS_UtilityBase 10;
+function NamedObjectName(Object_: PNamedObject): STRPTR; syscall AOS_UtilityBase 42;
+function NextTagItem(var Item: PTagItem): PTagItem; syscall AOS_UtilityBase 8;
+function PackBoolTags(InitialFlags: LongWord; const TagList, BoolMap: PTagItem): IPTR; syscall AOS_UtilityBase 7;
+function PackStructureTags(Pack: APTR; PackTable: PLongWord; TagList: PTagItem): LongWord; syscall AOS_UtilityBase 35;
+procedure RefreshTagItemClones(Clone: PTagItem; const Original: PTagItem); syscall AOS_UtilityBase 14;
+procedure ReleaseNamedObject(Object_: PNamedObject); syscall AOS_UtilityBase 43;
+procedure RemNamedObject(Object_: PNamedObject; Message: PMessage); syscall AOS_UtilityBase 44;
+function SDivMod32(Dividend, Divisor: LongInt): Int64; syscall AOS_UtilityBase 25;
+function SMult32(Arg1, Arg2: LongInt): LongInt; syscall AOS_UtilityBase 23;
+function SMult64(Arg1, Arg2: LongInt): Int64; syscall AOS_UtilityBase 33;
+function Stricmp(const Str1: STRPTR; const Str2: STRPTR): LongInt; syscall AOS_UtilityBase 27;
+function Strnicmp(const Str1: STRPTR; const Str2 : STRPTR; Length_: LongInt): LongInt; syscall AOS_UtilityBase 28;
+function TagInArray(TagValue: Tag; TagArray: PTag): LongBool; syscall AOS_UtilityBase 15;
+function ToLower(c: LongWord): Char; syscall AOS_UtilityBase 30;
+function ToUpper(c: LongWord): Char; syscall AOS_UtilityBase 29;
+function UDivMod32(Dividend, Divisor: LongWord): LongWord; syscall AOS_UtilityBase 26;
+function UMult32(Arg1, Arg2: LongWord): LongWord; syscall AOS_UtilityBase 24;
+function UMult64(Arg1, Arg2: LongWord): QWord; syscall AOS_UtilityBase 34;
+function UnpackStructureTags(Pack: APTR; PackTable: PLongWord; TagList: PTagItem): LongWord; syscall AOS_UtilityBase 36;
+
+// Macros
+function CALLHOOKPKT_(Hook: PHook; Object_: APTR; Message: APTR): IPTR; inline;
+function TAGLIST(var Args: array of const): PTagItem; // NOT threadsafe! Better use AddTags/GetTagPtr
+
+// VarArgs Versions
+function AllocNamedObject(const Name: STRPTR; const Tags: array of const): PNamedObject;
+function CallHook(Hook: PHook; Object_: APTR; const Params: array of const): IPTR;
+
+implementation
+
+uses
+ tagsarray,longarray;
+
+function AllocNamedObject(const Name: STRPTR; const Tags: array of const): PNamedObject;
+var
+ TagList: TTagsList;
+begin
+ AddTags(TagList, Tags);
+ Result := AllocNamedObjectA(Name, GetTagPtr(TagList));
+end;
+
+function TAGLIST(var Args: array of const): PTagItem;
+begin
+ Result := ReadInTags(Args);
+end;
+
+function CallHook(Hook: PHook; Object_: APTR; const Params: array of const): IPTR;
+begin
+ CallHook := CallHookPkt(Hook, Object_ , ReadInLongs(Params));
+end;
+
+function CALLHOOKPKT_(Hook: PHook; Object_: APTR; Message: APTR): IPTR;
+var
+ FuncPtr: THookFunctionProc;
+begin
+ Result := 0;
+ if (Hook = nil) or (Object_ = nil) or (Message = nil) then
+ Exit;
+ if (Hook^.h_Entry = 0) then
+ Exit;
+ FuncPtr := THookFunctionProc(Hook^.h_Entry);
+ Result := FuncPtr(Hook, Object_, Message);
+end;
+
+end.
diff --git a/packages/arosunits/src/workbench.pas b/packages/arosunits/src/workbench.pas
new file mode 100644
index 0000000000..94b3faeb69
--- /dev/null
+++ b/packages/arosunits/src/workbench.pas
@@ -0,0 +1,659 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ workbnech.library 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.
+
+ **********************************************************************}
+unit Workbench;
+
+{$MODE OBJFPC} {$H+}
+{$PACKRECORDS C}
+
+
+Interface
+
+Uses
+ exec, AmigaDos, Utility, Intuition, AGraphics;
+
+ // NOTE:
+ // - unit based on AROS ABIv0 sources d.d. 16-oct-2013
+ // - workbench/icon.h is not present in this unit. Instead it is present in
+ // unit icon.
+ // - It is uncertain if v45 additions are aros specific.
+ // - No full ABIv1 diff was done yet (only one item was done for future
+ // reference. Ergo, this unit is not ABIv1 compatible yet.
+
+// ###### workbench/startup.h ###############################################
+
+
+type
+ PWBArg = ^TWBArg;
+ TWBArg = record
+ wa_Lock: BPTR; // A lock descriptor.
+ wa_Name: PChar; // A string relative to that lock.
+ end;
+
+// ###### <freepascal> ######################################################
+
+ PWBArgList = ^TWBArgList;
+ TWBArgList = array[1..100] of TWBArg; // Only 1..smNumArgs are valid
+
+// ###### </freepascal> #####################################################
+
+ PWBStartup = ^TWBStartup;
+ TWBStartup = record
+ sm_Message: TMessage; // A standard message structure.
+ sm_Process: PMsgPort; // The process descriptor for you.
+ sm_Segment: BPTR; // A descriptor for your code.
+ sm_NumArgs: LongInt; // The number of elements in ArgList.
+ sm_ToolWindow: PChar; // Description of window.
+ sm_ArgList: PWBArgList; // The arguments themselves
+ end;
+
+// ###### workbench/workbench.h #############################################
+
+const
+ WORKBENCHNAME: PChar = 'workbench.library'; // Workbench library name.
+
+type
+ POldDrawerData = ^TOldDrawerData;
+ TOldDrawerData = record
+ dd_NewWindow: TNewWindow; // Args to open window.
+ dd_CurrentX: LongInt; // Current x coordinate of origin.
+ dd_CurrentY: LongInt; // Current y coordinate of origin.
+ end;
+
+const
+ OLDDRAWERDATAFILESIZE = SizeOf(TOldDrawerData); // Amount of DrawerData actually written to disk.
+
+type
+ PDrawerData = ^TDrawerData;
+ TDrawerData = record
+ dd_NewWindow: TNewWindow; // Args to open window.
+ dd_CurrentX: LongInt; // Current x coordinate of origin.
+ dd_CurrentY: LongInt; // Current y coordinate of origin.
+ dd_Flags: LongWord; // Flags for drawer.
+ dd_ViewModes: Word; // View mode for drawer.
+ end;
+
+const
+ DRAWERDATAFILESIZE = SizeOf(TDrawerData); // Amount of DrawerData actually written to disk.
+
+ // Definitions for dd_ViewModes
+ DDVM_BYDEFAULT = 0; // Default (inherit parent's view mode).
+ DDVM_BYICON = 1; // View as icons.
+ DDVM_BYNAME = 2; // View as text, sorted by name.
+ DDVM_BYDATE = 3; // View as text, sorted by date.
+ DDVM_BYSIZE = 4; // View as text, sorted by size.
+ DDVM_BYTYPE = 5; // View as text, sorted by type.
+
+ // Definitions for dd_Flags
+ DDFLAGS_SHOWDEFAULT = 0; // Fefault (show only icons).
+ DDFLAGS_SHOWICONS = 1; // Show only icons.
+ DDFLAGS_SHOWALL = 2; // Show all files.
+
+type
+ PDiskObject = ^TDiskObject;
+ TDiskObject = record
+ do_Magic: Word; // A magic number at the start of the file.
+ do_Version: Word; // A version number, so we can change it.
+ do_Gadget: TGadget; // A copy of in core gadget.
+ do_type: Byte;
+ do_DefaultTool: STRPTR;
+ do_Tooltypes: PPChar;
+ do_CurrentX: LongInt;
+ do_CurrentY: LongInt;
+ do_DrawerData: PDrawerData;
+ do_ToolWindow: STRPTR; // Only applies to tools.
+ do_StackSize: LongInt; // Only applies to tools.
+ end;
+
+const
+ WBDISK = 1;
+ WBDRAWER = 2;
+ WBTOOL = 3;
+ WBPROJECT = 4;
+ WBGARBAGE = 5;
+ WBDEVICE = 6;
+ WBKICK = 7;
+ WBAPPICON = 8;
+
+ WB_DISKVERSION = 1; // Current version number.
+ WB_DISKREVISION = 1; // Current revision number.
+ WB_DISKREVISIONMASK = $FF; // Only use the lower 8 bits of Gadget.UserData for the revision #.
+
+ WB_DISKMAGIC = $E310; // A magic number, not easily impersonated.
+
+type
+ PFreeList = ^TFreeList;
+ TFreeList = record
+ fl_NumFree: SmallInt;
+ fl_MemList: TList;
+ end;
+
+const
+ //
+ // workbench does different complement modes for its gadgets.
+ // It supports separate images, complement mode, and backfill mode.
+ // The first two are identical to intuitions GADGIMAGE and GADGHCOMP.
+ // backfill is similar to GADGHCOMP, but the region outside of the
+ // image (which normally would be color three when complemented)
+ // is flood-filled to color zero.
+ //
+ GFLG_GADGBACKFILL = $0001;
+ // GADGBACKFILL = $0001; // an old synonym
+ NO_ICON_POSITION = $80000000; // If an icon does not really live anywhere, set its current position to here.
+
+type
+ PAppMessage = ^TAppMessage;
+ TAppMessage = record
+ am_Message: TMessage; // Standard message structure.
+ am_type: Word; // Message type.
+ am_UserData: IPTR; // Application specific.
+ {$IFDEF AROS_ABIv1}
+ am_ID: IPTR; // Application definable ID.
+ {$ELSE}
+ am_ID: LongWord; // Application definable ID.
+ {$ENDIF}
+ am_NumArgs: LongInt; // # of elements in arglist.
+ am_ArgList: PWBArgList; // The arguements themselves.
+ am_Version: Word; // Will be AM_VERSION.
+ am_Class: Word; // Message class.
+ am_MouseX: SmallInt; // Mouse x position of event.
+ am_MouseY: SmallInt; // Mouse y position of event.
+ am_Seconds: LongWord; // Current system clock time.
+ am_Micros: LongWord; // Current system clock time.
+ am_Reserved: array[0..7] of LongWord; // Avoid recompilation.
+ end;
+
+const
+ //
+ // If you find am_Version >= AM_VERSION, you know this structure has
+ // at least the fields defined in this version of the include file
+ //
+ AM_VERSION = 1; // Definition for am_Version.
+
+ // Definitions for member am_type of structure TAppMessage.
+ AMTYPE_APPWINDOW = 7; // App window message.
+ AMTYPE_APPICON = 8; // App icon message.
+ AMTYPE_APPMENUITEM = 9; // App menu item message.
+ AMTYPE_APPWINDOWZONE = 10; // App window drop zone message.
+
+ // Definitions for member am_Class of structure TAppMessage for AppIcon messages (V44)
+ AMCLASSICON_Open = 0; // The "Open" menu item was invoked, the icon got double-clicked or an icon got dropped on it.
+ AMCLASSICON_Copy = 1; // The "Copy" menu item was invoked.
+ AMCLASSICON_Rename = 2; // The "Rename" menu item was invoked.
+ AMCLASSICON_Information = 3; // The "Information" menu item was invoked.
+ AMCLASSICON_Snapshot = 4; // The "Snapshot" menu item was invoked.
+ AMCLASSICON_UnSnapshot = 5; // The "UnSnapshot" menu item was invoked.
+ AMCLASSICON_LeaveOut = 6; // The "Leave Out" menu item was invoked.
+ AMCLASSICON_PutAway = 7; // The "Put Away" menu item was invoked.
+ AMCLASSICON_Delete = 8; // The "Delete" menu item was invoked.
+ AMCLASSICON_FormatDisk = 9; // The "Format Disk" menu item was invoked.
+ AMCLASSICON_EmptyTrash = 10; // The "Empty Trash" menu item was invoked.
+ AMCLASSICON_Selected = 11; // The icon is now selected.
+ AMCLASSICON_Unselected = 12; // The icon is now unselected.
+
+type
+ // The message your AppIcon rendering hook gets invoked with.
+ PAppIconRenderMsg = ^TAppIconRenderMsg;
+ TAppIconRenderMsg = record
+ arm_RastPort: PRastPort; // RastPort to render into.
+ arm_Icon: PDiskObject; // The icon to be rendered.
+ arm_Label: STRPTR; // The icon label txt.
+ arm_Tags: PTagItem; // Further tags to be passed on to DrawIconStateA().
+ arm_Left: SmallInt; // \ Rendering origin, not taking the
+ arm_Top: SmallInt; // / button border into account.
+ arm_Width: SmallInt; // \ Limit your rendering to
+ arm_Height: SmallInt; // / this area.
+ arm_State: LongWord; // IDS_SELECTED, IDS_NORMAL, etc.
+ end;
+
+ // The message your drop zone hook gets invoked with. }
+ PAppWindowDropZoneMsg = ^TAppWindowDropZoneMsg;
+ TAppWindowDropZoneMsg = record
+ adzm_RastPort: PRastPort; // RastPort to render into.
+ adzm_DropZoneBox: TIBox; // Limit your rendering to this area.
+ adzm_ID: LongWord; // \ These come from straight
+ adzm_UserData: IPTR; // / from AddAppWindowDropZoneA().
+ adzm_Action: LongInt; // See below for a list of actions.
+ end;
+
+const
+ // definitions for adzm_Action
+ ADZMACTION_Enter = 0;
+ ADZMACTION_Leave = 1;
+
+type
+ // The message your icon selection change hook is invoked with. }
+ PIconSelectMsg = ^TIconSelectMsg;
+ TIconSelectMsg = record
+ ism_Length: LongWord; // Size of this data structure (in bytes).
+ ism_Drawer: BPTR; // Lock on the drawer this object resides in, NULL for Workbench backdrop (devices).
+ ism_Name: STRPTR; // Name of the object in question.
+ ism_type: Word; // One of WBDISK, WBDRAWER, WBTOOL, WBPROJECT, WBGARBAGE, WBDEVICE, WBKICK or WBAPPICON.
+ ism_Selected: LongBool; // TRUE if currently selected, FALSE otherwise.
+ ism_Tags: PTagItem; // Pointer to the list of tag items passed to ChangeWorkbenchSelectionA().
+ ism_DrawerWindow: PWindow; // Pointer to the window attached to this icon, if the icon is a drawer-like object.
+ ism_ParentWindow: PWindow; // Pointer to the window the icon resides in.
+ ism_Left: SmallInt; // Position and size of the icon; note that the icon may not entirely reside within the visible bounds of the parent window.
+ ism_Top: SmallInt;
+ ism_Width: SmallInt;
+ ism_Height: SmallInt;
+ end;
+
+const
+ // These are the values your hook code can return.
+ ISMACTION_Unselect = 0; // Unselect the icon.
+ ISMACTION_Select = 1; // Select the icon.
+ ISMACTION_Ignore = 2; // Do not change the selection state.
+ ISMACTION_Stop = 3; // Do not invoke the hook code again, leave the icon as it is.
+
+type
+ // The messages your copy hook is invoked with.
+ PCopyBeginMsg = ^TCopyBeginMsg;
+ TCopyBeginMsg = record
+ cbm_Length: LongWord; // Size of this data structure in bytes.
+ cbm_Action: LongInt; // Will be set to CPACTION_Begin (see below).
+ cbm_SourceDrawer: BPTR; // A lock on the source drawer.
+ cbm_DestinationDrawer: BPTR; // A lock on the destination drawer.
+ end;
+
+ PCopyDataMsg = ^TCopyDataMsg;
+ TCopyDataMsg = record
+ cdm_Length: LongWord; // Size of this data structure in bytes.
+ cdm_Action: LongInt; // Will be set to CPACTION_Copy (see below).
+ cdm_SourceLock: BPTR; // A lock on the parent directory of the source file/drawer.
+ cdm_SourceName: STRPTR; // The name of the source file or drawer.
+ cdm_DestinationLock: BPTR; // A lock on the parent directory of the destination file/drawer.
+ cdm_DestinationName: STRPTR; // The name of the destination file/drawer.
+ // This may or may not match the name of the source file/drawer in case the
+ // data is to be copied under a different name. For example, this is the case
+ // with the Workbench "Copy" command which creates duplicates of file/drawers by
+ // prefixing the duplicate's name with "Copy_XXX_of".
+ cdm_DestinationX: LongInt; // When the icon corresponding to the destination is written to disk, this
+ cdm_DestinationY: LongInt; // is the position (put into its DiskObject->do_CurrentX/DiskObject->do_CurrentY.
+ end; // fields) it should be placed at.
+
+ PCopyEndMsg = ^TCopyEndMsg;
+ TCopyEndMsg = record
+ cem_Length: LongWord; // Size of this data structure in bytes.
+ cem_Action: LongInt; // Will be set to CPACTION_End (see below).
+ end;
+
+const
+ CPACTION_Begin = 0;
+ CPACTION_Copy = 1; // This message arrives for each file or drawer to be copied.
+ CPACTION_End = 2; // This message arrives when all files/drawers have been copied.
+
+type
+ // The messages your delete hook is invoked with.
+ PDeleteBeginMsg = ^TDeleteBeginMsg;
+ TDeleteBeginMsg = record
+ dbm_Length: LongWord; // Size of this data structure in bytes.
+ dbm_Action: LongInt; // Will be set to either DLACTION_BeginDiscard or DLACTION_BeginEmptyTrash (see below).
+ end;
+
+ PDeleteDataMsg = ^TDeleteDataMsg;
+ TDeleteDataMsg = record
+ ddm_Length: LongWord; // Size of this data structure in bytes.
+ ddm_Action: LongInt; // Will be set to either DLACTION_DeleteContents or DLACTION_DeleteObject (see below).
+ ddm_Lock: BPTR; // A Lock on the parent directory of the object whose contents or which itself should be deleted.
+ ddm_Name: STRPTR; // The name of the object whose contents or which itself should be deleted.
+ end;
+
+ PDeleteEndMsg = ^TDeleteEndMsg;
+ TDeleteEndMsg = record
+ dem_Length: LongWord; // Size of this data structure in bytes.
+ dem_Action: LongInt; // Will be set to DLACTION_End (see below).
+ end;
+
+
+const
+ DLACTION_BeginDiscard = 0;
+ DLACTION_BeginEmptyTrash = 1; // This indicates that the following delete operations are intended to empty the trashcan.
+ DLACTION_DeleteContents = 3; // This indicates that the object described by lock and name refers to a drawer; you should empty its contents but DO NOT delete the drawer itself!
+ DLACTION_DeleteObject = 4; // This indicates that the object described by lock and name should be deleted; this could be a file or an empty drawer.
+ DLACTION_End = 5; // This indicates that the deletion process is finished.
+
+type
+ // The message your setup/cleanup hook gets invoked with.
+ PSetupCleanupHookMsg = ^TSetupCleanupHookMsg;
+ TSetupCleanupHookMsg = record
+ schm_Length: LongWord;
+ schm_State: LongInt;
+ end;
+
+const
+ SCHMSTATE_TryCleanup = 0; // Workbench will attempt to shut down now.
+ SCHMSTATE_Cleanup = 1; // Workbench will really shut down now.
+ SCHMSTATE_Setup = 2; // Workbench is operational again or could not be shut down.
+
+type
+ // The messages your text input hook is invoked with.
+ PTextInputMsg = ^TTextInputMsg;
+ TTextInputMsg = record
+ tim_Length: LongWord; // Size of this data structure in bytes.
+ tim_Action: LongInt; // One of the TIACTION_... values listed below.
+ tim_Prompt: STRPTR; // The Workbench suggested result, depending on what kind of input is requested (as indicated by the tim_Action member).
+ end;
+
+const
+ TIACTION_Rename = 0; // A file or drawer is to be renamed.
+ TIACTION_RelabelVolume = 1; // A volume is to be relabeled.
+ TIACTION_NewDrawer = 2; // A new drawer is to be created.
+ TIACTION_Execute = 3; // A program or script is to be executed.
+
+type
+ //
+ // The following structures are private. These are just stub
+ // structures for code compatibility...
+ //
+ {
+ pAppWindow = ^tAppWindow;
+ tAppWindow = record
+ aw_PRIVATE: Pointer;
+ end;
+
+ pAppWindowDropZone = ^tAppWindowDropZone;
+ tAppWindowDropZone = record
+ awdz_PRIVATE: pointer;
+ end;
+
+ pAppIcon = ^tAppIcon;
+ tAppIcon = record
+ ai_PRIVATE: Pointer;
+ end;
+
+ pAppMenuItem = ^tAppMenuItem;
+ tAppMenuItem = record
+ ami_PRIVATE: Pointer;
+ end;
+ }
+ (* not in aros
+ PAppMenu = ^tAppMenu;
+ tAppMenu = record
+ am_PRIVATE: pointer;
+ end;
+ *)
+ // Aros versions:
+
+ PAppWindow = ^TAppWindow;
+ TAppWindow = record
+ end;
+
+ PAppWindowDropZone = ^TAppWindowDropZone;
+ TAppWindowDropZone = record
+ end;
+
+ PAppIcon = ^TAppIcon;
+ TAppIcon = record
+ end;
+
+ PAppMenuItem = ^TAppMenuItem;
+ TAppMenuItem = record
+ end;
+
+
+const
+ (* WBA_Dummy = TAG_USER + $A000; *) {$WARNING AROS: constant WBA_Dummy is renamed to WBA_BASE}
+ WBA_BASE = TAG_USER + $A000;
+ // Tags for use with AddAppIconA()
+ // The different menu items the AppIcon responds to (BOOL).
+ WBAPPICONA_SupportsOpen = WBA_BASE + 1; // AppIcon responds to the "Open" menu item (LongBool).
+ WBAPPICONA_SupportsCopy = WBA_BASE + 2; // AppIcon responds to the "Copy" menu item (LongBool).
+ WBAPPICONA_SupportsRename = WBA_BASE + 3; // AppIcon responds to the "Rename" menu item (LongBool).
+ WBAPPICONA_SupportsInformation = WBA_BASE + 4; // AppIcon responds to the "Information" menu item (LongBool).
+ WBAPPICONA_SupportsSnapshot = WBA_BASE + 5; // AppIcon responds to the "Snapshot" menu item (LongBool).
+ WBAPPICONA_SupportsUnSnapshot = WBA_BASE + 6; // AppIcon responds to the "UnSnapshot" menu item (LongBool).
+ WBAPPICONA_SupportsLeaveOut = WBA_BASE + 7; // AppIcon responds to the "LeaveOut" menu item (LongBool).
+ WBAPPICONA_SupportsPutAway = WBA_BASE + 8; // AppIcon responds to the "PutAway" menu item (LongBool).
+ WBAPPICONA_SupportsDelete = WBA_BASE + 9; // AppIcon responds to the "Delete" menu item (LongBool).
+ WBAPPICONA_SupportsFormatDisk = WBA_BASE + 10; // AppIcon responds to the "FormatDisk" menu item (LongBool).
+ WBAPPICONA_SupportsEmptyTrash = WBA_BASE + 11; // AppIcon responds to the "EmptyTrash" menu item (LongBool).
+
+ WBAPPICONA_PropagatePosition = WBA_BASE + 12; // AppIcon position should be propagated back to original DiskObject (LongBool).
+ WBAPPICONA_RenderHook = WBA_BASE + 13; // Callback hook to be invoked when rendering this icon (pHook).
+ WBAPPICONA_NotifySelectState = WBA_BASE + 14; // AppIcon wants to be notified when its select state changes (LongBool).
+
+ // Tags for use with AddAppMenuA()
+ WBAPPMENUA_CommandKeyString = WBA_BASE + 15; // Command key string for this AppMenu (STRPTR).
+ WBAPPMENUA_GetKey = WBA_BASE + 65; // Item to be added should get sub menu items attached to; make room for it, then return the key to use later for attaching the items (A_PUL
+ WBAPPMENUA_UseKey = WBA_BASE + 66; // This item should be attached to a sub menu; the key provided refers to the sub menu it should be attached to (LongWord).
+ WBAPPMENUA_GetTitleKey = WBA_BASE + 77; // Item to be added is in fact a new menu title; make room for it, then return the key to use later for attaching the items (??? ULONG ???).
+
+ // Tags for use with OpenWorkbenchObjectA()
+ WBOPENA_ArgLock = WBA_BASE + 16; // Corresponds to the wa_Lock member of a struct WBArg.
+ WBOPENA_ArgName = WBA_BASE + 17; // Corresponds to the wa_Name member of a struct WBArg.
+ WBOPENA_Show = WBA_BASE + 75; // When opening a drawer, show all files or only icons? This must be one out of DDFLAGS_SHOWICONS, or DDFLAGS_SHOWALL; (Byte); (V45)
+ WBOPENA_ViewBy = WBA_BASE + 76; // When opening a drawer, view the contents by icon, name, date, size or type? This must be one out of DDVM_BYICON, DDVM_BYNAME, DDVM_BYDATE, DDVM_BYSIZE or DDVM_BYTYPE; (UBYTE); (V45)
+
+ // Tags for use with WorkbenchControlA()
+ WBCTRLA_IsOpen = WBA_BASE + 18; // Check if the named drawer is currently open (PLongInt).
+ WBCTRLA_DuplicateSearchPath = WBA_BASE + 19; // Create a duplicate of the Workbench private search path list (PBPTR).
+ WBCTRLA_FreeSearchPath = WBA_BASE + 20; // Free the duplicated search path list (BPTR).
+ WBCTRLA_GetDefaultStackSize = WBA_BASE + 21; // Get the default stack size for launching programs with (PLongWord).
+ WBCTRLA_SetDefaultStackSize = WBA_BASE + 22; // Set the default stack size for launching programs with (LongWord).
+ WBCTRLA_RedrawAppIcon = WBA_BASE + 23; // Cause an AppIcon to be redrawn (pAppIcon).
+ WBCTRLA_GetProgramList = WBA_BASE + 24; // Get a list of currently running Workbench programs (pList).
+ WBCTRLA_FreeProgramList = WBA_BASE + 25; // Release the list of currently running Workbench programs (pList).
+ WBCTRLA_GetSelectedIconList = WBA_BASE + 36; // Get a list of currently selected icons (pList).
+ WBCTRLA_FreeSelectedIconList = WBA_BASE + 37; // Release the list of currently selected icons (pList).
+ WBCTRLA_GetOpenDrawerList = WBA_BASE + 38; // Get a list of currently open drawers (pList).
+ WBCTRLA_FreeOpenDrawerList = WBA_BASE + 39; // Release the list of currently open icons (pList).
+ WBCTRLA_GetHiddenDeviceList = WBA_BASE + 42; // Get the list of hidden devices (pList).
+
+ WBCTRLA_FreeHiddenDeviceList = WBA_BASE + 43; // Release the list of hidden devices (pList).
+ WBCTRLA_AddHiddenDeviceName = WBA_BASE + 44; // Add the name of a device which Workbench should never try to read a disk icon from (STRPTR).
+ WBCTRLA_RemoveHiddenDeviceName = WBA_BASE + 45; // Remove a name from list of hidden devices (STRPTR).
+ WBCTRLA_GettypeRestartTime = WBA_BASE + 47; // Get the number of seconds that have to pass before typing the next character in a drawer window will restart with a new file name (PLongWord).
+ WBCTRLA_SettypeRestartTime = WBA_BASE + 48; // Set the number of seconds that have to pass before typing the next character in a drawer window will restart with a new file name (LongWord).
+ WBCTRLA_GetCopyHook = WBA_BASE + 69; // Obtain the hook that will be invoked when Workbench starts to copy files and data (pHook); (V45)
+ WBCTRLA_SetCopyHook = WBA_BASE + 70; // Install the hook that will be invoked when Workbench starts to copy files and data (pHook); (V45)
+ WBCTRLA_GetDeleteHook = WBA_BASE + 71; // Obtain the hook that will be invoked when Workbench discards files and drawers or empties the trashcan (pHook); (V45).
+ WBCTRLA_SetDeleteHook = WBA_BASE + 72; // Install the hook that will be invoked when Workbench discards files and drawers or empties the trashcan (pHook); (V45).
+ WBCTRLA_GetTextInputHook = WBA_BASE + 73; // Obtain the hook that will be invoked when Workbench requests that the user enters text, such as when a file is to be renamed or a new drawer is to be created (pHook); (V45)
+ WBCTRLA_SetTextInputHook = WBA_BASE + 74; // Install the hook that will be invoked when Workbench requests that the user enters text, such as when a file is to be renamed or a new drawer is to be created (pHook); (V45)
+ WBCTRLA_AddSetupCleanupHook = WBA_BASE + 78; // Add a hook that will be invoked when Workbench is about to shut down (cleanup), and when Workbench has returned to operational state (setup) (pHook); (V45)
+ WBCTRLA_RemSetupCleanupHook = WBA_BASE + 79; // Remove a hook that has been installed with the WBCTRLA_AddSetupCleanupHook tag (pHook); (V45)
+
+ // Tags for use with AddAppWindowDropZoneA()
+ WBDZA_Left = WBA_BASE + 26; // Zone left edge (SmallInt)
+ WBDZA_RelRight = WBA_BASE + 27; // Zone left edge, if relative to the right edge of the window (SmallInt)
+ WBDZA_Top = WBA_BASE + 28; // Zone top edge (SmallInt)
+ WBDZA_RelBottom = WBA_BASE + 29; // Zone top edge, if relative to the bottom edge of the window (SmallInt)
+ WBDZA_Width = WBA_BASE + 30; // Zone width (SmallInt)
+ WBDZA_RelWidth = WBA_BASE + 31; // Zone width, if relative to the window width (SmallInt)
+ WBDZA_Height = WBA_BASE + 32; // Zone height (SmallInt)
+ WBDZA_RelHeight = WBA_BASE + 33; // Zone height, if relative to the window height (SmallInt)
+ WBDZA_Box = WBA_BASE + 34; // Zone position and size (pIBox).
+ WBDZA_Hook = WBA_BASE + 35; // Hook to invoke when the mouse enters or leave a drop zone (pHook).
+
+ // Reserved tags; don't use! }
+ WBA_Reserved1 = WBA_BASE + 40;
+ WBA_Reserved2 = WBA_BASE + 41;
+ WBA_Reserved3 = WBA_BASE + 46;
+ WBA_Reserved4 = WBA_BASE + 49;
+ WBA_Reserved5 = WBA_BASE + 50;
+ WBA_Reserved6 = WBA_BASE + 51;
+ WBA_Reserved7 = WBA_BASE + 52;
+ WBA_Reserved8 = WBA_BASE + 53;
+ WBA_Reserved9 = WBA_BASE + 54;
+ WBA_Reserved10 = WBA_BASE + 55;
+ WBA_Reserved11 = WBA_BASE + 56;
+ WBA_Reserved12 = WBA_BASE + 57;
+ WBA_Reserved13 = WBA_BASE + 58;
+ WBA_Reserved14 = WBA_BASE + 59;
+ WBA_Reserved15 = WBA_BASE + 60;
+ WBA_Reserved16 = WBA_BASE + 61;
+ WBA_Reserved17 = WBA_BASE + 62;
+ WBA_Reserved18 = WBA_BASE + 63;
+ WBA_Reserved19 = WBA_BASE + 64;
+
+ // Last Tag
+ WBA_LAST_TAG = WBA_BASE + 64;
+
+ // Parameters for the UpdateWorkbench() function.
+ UPDATEWB_ObjectRemoved = 0; // Object has been deleted.
+ UPDATEWB_ObjectAdded = 1; // Object is new or has changed.
+
+(* left behind: not used in aros, classic only
+const
+
+{ each message that comes into the WorkBenchPort must have a type field
+ * in the preceeding short. These are the defines for this type
+ }
+
+ MTYPE_PSTD = 1; { a "standard Potion" message }
+ MTYPE_TOOLEXIT = 2; { exit message from our tools }
+ MTYPE_DISKCHANGE = 3; { dos telling us of a disk change }
+ MTYPE_TIMER = 4; { we got a timer tick }
+ MTYPE_CLOSEDOWN = 5; { <unimplemented> }
+ MTYPE_IOPROC = 6; { <unimplemented> }
+ MTYPE_APPWINDOW = 7; { msg from an app window }
+ MTYPE_APPICON = 8; { msg from an app icon }
+ MTYPE_APPMENUITEM = 9; { msg from an app menuitem }
+ MTYPE_COPYEXIT = 10; { exit msg from copy process }
+ MTYPE_ICONPUT = 11; { msg from PutDiskObject in icon.library }
+*)
+
+// ###### workbench/handler.h ###############################################
+type
+ TWBHM_type =
+ (
+ WBHM_TYPE_SHOW, // Open all windows.
+ WBHM_TYPE_HIDE, // Close all windows.
+ WBHM_TYPE_OPEN, // Open a drawer.
+ WBHM_TYPE_UPDATE // Update an object.
+ );
+
+ PWBHandlerMessage = ^TWBHandlerMessage;
+ TWBHandlerMessage = record
+ wbhm_Message: TMessage; // Standard message structure.
+ wbhm_type: TWBHM_type; // type of message.
+ case integer of
+ 0 :
+ (
+ Open: record
+ OpenName: STRPTR; // Name of the drawer.
+ end;
+ );
+ 1 :
+ (
+ Update: record
+ UpdateName: STRPTR; // Mame of the object.
+ Updatetype: LongInt; // type of object (WBDRAWER, WBPROJECT, ...).
+ end;
+ );
+ end;
+
+
+var
+ WorkbenchBase: pLibrary;
+
+{ v36 }
+function UpdateWorkbench(const Name: STRPTR; Lock: BPTR; Action: LongInt): LongBool; syscall WorkbenchBase 5;
+function QuoteWorkbench(StringNum: LongWord): LongBool; syscall WorkbenchBase 6; unimplemented;
+function StartWorkbench(Flag: LongWord; Ptr: APTR): LongBool; syscall WorkbenchBase 7;
+function AddAppWindowA(ID: LongWord; UserData: LongWord; Window: PWindow; MsgPort: PMsgPort; TagList: PTagItem): PAppWindow; syscall WorkbenchBase 8;
+function RemoveAppWindow(AppWindow: PAppWindow): LongBool; syscall WorkbenchBase 9;
+function AddAppIconA(ID: LongWord; UserData: LongWord; Text_: PChar; MsgPort: PMsgPort; Lock: BPTR; DiskObj: PDiskObject; TagList: PTagItem): PAppIcon; syscall WorkbenchBase 10;
+function RemoveAppIcon(AppIcon: PAppIcon): LongBool; syscall WorkbenchBase 11;
+function AddAppMenuItemA(ID: LongWord; UserData: LongWord; Text_: APTR; MsgPort: PMsgPort; TagList: PTagItem): PAppMenuItem; syscall WorkbenchBase 12;
+function RemoveAppMenuItem(AppMenuItem: PAppMenuItem): LongBool; syscall WorkbenchBase 13;
+{ v39 }
+function WBConfig(Unk1: LongWord; Unk2: LongWord): LongBool; syscall WorkbenchBase 14; unimplemented;
+function WBInfo(Lock: BPTR; const Name: STRPTR; Screen: PScreen): LongBool; syscall WorkbenchBase 15;
+{ v44 }
+function OpenWorkbenchObjectA(Name: STRPTR; Tags: PTagItem): LongBool; syscall WorkbenchBase 16;
+function CloseWorkbenchObjectA(Name: STRPTR; Tags: PTagItem): LongBool; syscall WorkbenchBase 17; unimplemented;
+function WorkbenchControlA(Name: STRPTR; Tags: PTagItem): LongBool; syscall WorkbenchBase 18;
+function AddAppWindowDropZoneA(Aw: PAppWindow; ID: LongWord; UserData: LongWord; Tags: PTagItem): PAppWindowDropZone; syscall WorkbenchBase 19;
+function RemoveAppWindowDropZone(Aw: PAppWindow; DropZone: PAppWindowDropZone): LongBool; syscall WorkbenchBase 20;
+function ChangeWorkbenchSelectionA(Name: STRPTR; Hook: PHook; Tags: PTagItem): LongBool; syscall WorkbenchBase 21; unimplemented;
+function MakeWorkbenchObjectVisibleA(Name: STRPTR; Tags: PTagItem): LongBool; syscall WorkbenchBase 22; unimplemented;
+{ v45, AROS only ? }
+function RegisterWorkbench(MessagePort: PMsgPort): LongBool; syscall WorkbenchBase 23;
+function UnregisterWorkbench(MessagePort: PMsgPort): LongBool; syscall WorkbenchBase 24;
+function UpdateWorkbenchObjectA(Name: STRPTR; Type_: LongInt; Tags: PTagItem): LongBool; syscall WorkbenchBase 25;
+function SendAppWindowMessage(Win: PWindow; NumFiles: LongWord; Files: PPChar; Class_: Word; MouseX: SmallInt; MouseY: SmallInt; Seconds: LongWord; Micros: LongWord): LongBool; syscall WorkbenchBase 26;
+function GetNextAppIcon(LastDiskObj: PDiskObject; Text_: PChar): PDiskObject; syscall WorkbenchBase 27;
+
+// varargs versions:
+function AddAppIcon(ID: LongWord; UserData: LongWord; Text_: PChar; MsgPort: PMsgPort; Lock: BPTR; DiskObj: PDiskObject; const Tags: array of const): PAppIcon;
+function AddAppMenuItem(ID: LongWord; UserData: LongWord; Text_: APTR; MsgPort: PMsgPort; const Tags: array of const): PAppMenuItem;
+function AddAppWindow(ID: LongWord; UserData: LongWord; Window: PWindow; MsgPort: PMsgPort; const Tags: array of const): PAppWindow;
+function AddAppWindowDropZone(Aw: PAppWindow; ID: LongWord; UserData: LongWord; const Tags: array of const): PAppWindowDropZone;
+function CloseWorkbenchObject(Name: STRPTR; const Tags: array of const): LongBool; unimplemented;
+function MakeWorkbenchObjectVisible(Name: STRPTR; const Tags: array of const): LongBool; unimplemented;
+function OpenWorkbenchObject(Name: STRPTR; const Tags: array of const): LongBool;
+function WorkbenchControl(Name: STRPTR; const Tags: array of const): LongBool;
+
+implementation
+
+uses
+ TagsArray;
+
+
+// varargs versions:
+function AddAppIcon(ID: LongWord; UserData: LongWord; Text_: PChar; MsgPort: PMsgPort; Lock: BPTR; DiskObj: PDiskObject; const Tags: array of const): PAppIcon;
+begin
+ AddAppIcon := AddAppIconA(ID, UserData, Text_, MsgPort, Lock, DiskObj, ReadInTags(Tags));
+end;
+
+
+function AddAppMenuItem(ID: LongWord; UserData: LongWord; Text_: APTR; MsgPort: PMsgPort; const Tags: array of const): PAppMenuItem;
+begin
+ AddAppMenuItem := AddAppMenuItemA(ID, UserData, Text_, MsgPort, ReadInTags(Tags));
+end;
+
+
+function AddAppWindow(ID: LongWord; UserData: LongWord; Window: PWindow; MsgPort: PMsgPort; const Tags: array of const): PAppWindow;
+begin
+ AddAppWindow := AddAppWindowA(ID, UserData, Window, MsgPort, ReadInTags(Tags));
+end;
+
+
+function AddAppWindowDropZone(Aw: PAppWindow; ID: LongWord; UserData: LongWord; const Tags: array of const): PAppWindowDropZone;
+begin
+ AddAppWindowDropZone := AddAppWindowDropZoneA(Aw, ID, UserData, ReadInTags(Tags));
+end;
+
+
+function CloseWorkbenchObject(Name: STRPTR; const Tags: array of const): LongBool;
+begin
+ CloseWorkbenchObject := CloseWorkbenchObjectA(Name, ReadInTags(Tags));
+end;
+
+
+function MakeWorkbenchObjectVisible(Name: STRPTR; const Tags: array of const): LongBool;
+begin
+ MakeWorkbenchObjectVisible := MakeWorkbenchObjectVisibleA(Name, ReadInTags(Tags));
+end;
+
+
+function OpenWorkbenchObject(Name: STRPTR; const Tags: array of const): LongBool;
+begin
+ OpenWorkbenchObject := OpenWorkbenchObjectA(Name, ReadInTags(Tags));
+end;
+
+
+function WorkbenchControl(Name: STRPTR; const Tags: array of const): LongBool;
+begin
+ WorkbenchControl := WorkbenchControlA(Name, ReadInTags(Tags));
+end;
+
+
+Initialization
+ WorkbenchBase := OpenLibrary(WORKBENCHNAME,0);
+Finalization
+ CloseLibrary(WorkbenchBase);
+end.
diff --git a/packages/aspell/Makefile b/packages/aspell/Makefile
index c9d77d8d23..1be3cd9dc3 100644
--- a/packages/aspell/Makefile
+++ b/packages/aspell/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=aspell
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/aspell/Makefile.fpc b/packages/aspell/Makefile.fpc
index 895958a7ed..c982709ad3 100644
--- a/packages/aspell/Makefile.fpc
+++ b/packages/aspell/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=aspell
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/aspell/Makefile.fpc.fpcmake b/packages/aspell/Makefile.fpc.fpcmake
index 2fc1613232..746a1bfd52 100644
--- a/packages/aspell/Makefile.fpc.fpcmake
+++ b/packages/aspell/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=aspell
-version=2.7.1
+version=3.1.1
[target]
units=aspell aspelldyn spellcheck
diff --git a/packages/aspell/fpmake.pp b/packages/aspell/fpmake.pp
index 697256366a..027c0667f0 100644
--- a/packages/aspell/fpmake.pp
+++ b/packages/aspell/fpmake.pp
@@ -18,12 +18,12 @@ begin
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'header:Aleš Katona, library: Kevin Atkinson';
P.License := 'header: LGPL with modification, library: LGPL 2.0 or 2.1';
P.HomepageURL := 'www.freepascal.org';
- P.OSes := [beos,haiku,freebsd,darwin,iphonesim,netbsd,openbsd,linux,win32,aix];
+ P.OSes := [beos,haiku,freebsd,darwin,iphonesim,netbsd,openbsd,linux,win32,aix,dragonfly];
P.Email := '';
P.Description := 'The New Aspell, spelling library';
P.NeedLibC:= true;
diff --git a/packages/bfd/Makefile b/packages/bfd/Makefile
index d521b738a2..8983a5fed2 100644
--- a/packages/bfd/Makefile
+++ b/packages/bfd/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=bfd
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/bfd/Makefile.fpc b/packages/bfd/Makefile.fpc
index 073f17765b..bf1984eaef 100644
--- a/packages/bfd/Makefile.fpc
+++ b/packages/bfd/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=bfd
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/bfd/Makefile.fpc.fpcmake b/packages/bfd/Makefile.fpc.fpcmake
index ba5e2724af..f1c5c9aae1 100644
--- a/packages/bfd/Makefile.fpc.fpcmake
+++ b/packages/bfd/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=bfd
-version=2.7.1
+version=3.1.1
[target]
units=bfd
diff --git a/packages/bfd/fpmake.pp b/packages/bfd/fpmake.pp
index 30a70151f5..ed3bdbe284 100644
--- a/packages/bfd/fpmake.pp
+++ b/packages/bfd/fpmake.pp
@@ -16,14 +16,14 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: Cygnus Support, header: by Uli Tessel';
P.License := 'Library: GPL2 or later, header: LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
P.Email := '';
P.Description := 'Binary File Descriptor library.';
P.NeedLibC:= true;
- P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,aix];
+ P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,aix,dragonfly];
P.SourcePath.Add('src');
diff --git a/packages/bzip2/Makefile b/packages/bzip2/Makefile
index f4bc474c66..7a9c0f4bfe 100644
--- a/packages/bzip2/Makefile
+++ b/packages/bzip2/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=bzip2
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/bzip2/Makefile.fpc b/packages/bzip2/Makefile.fpc
index 216a889f49..9aed6b2e6c 100644
--- a/packages/bzip2/Makefile.fpc
+++ b/packages/bzip2/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=bzip2
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/bzip2/Makefile.fpc.fpcmake b/packages/bzip2/Makefile.fpc.fpcmake
index beabdeb094..0f9c2cf76c 100644
--- a/packages/bzip2/Makefile.fpc.fpcmake
+++ b/packages/bzip2/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=bzip2
-version=2.7.1
+version=3.1.1
[target]
units=bzip2comn bzip2 bzip2stream
diff --git a/packages/bzip2/fpmake.pp b/packages/bzip2/fpmake.pp
index 86c5f15834..d734e625e8 100644
--- a/packages/bzip2/fpmake.pp
+++ b/packages/bzip2/fpmake.pp
@@ -13,12 +13,13 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('bzip2');
+ P.ShortName:='bz2';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: Julian R. Seward, header: Daniel Mantione';
// 3 clause becaue "prominent notice" is not required.
diff --git a/packages/cairo/Makefile b/packages/cairo/Makefile
index c990b4f5ff..0942037a42 100644
--- a/packages/cairo/Makefile
+++ b/packages/cairo/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=cairo
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/cairo/Makefile.fpc b/packages/cairo/Makefile.fpc
index 70bd318b79..967830bcb9 100644
--- a/packages/cairo/Makefile.fpc
+++ b/packages/cairo/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=cairo
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/cairo/Makefile.fpc.fpcmake b/packages/cairo/Makefile.fpc.fpcmake
index 3128103f95..4108236e5a 100644
--- a/packages/cairo/Makefile.fpc.fpcmake
+++ b/packages/cairo/Makefile.fpc.fpcmake
@@ -16,7 +16,7 @@ packages_iphonesim=x11
[package]
name=cairo
-version=2.7.1
+version=3.1.1
[target]
units=cairo cairoft
diff --git a/packages/cairo/fpmake.pp b/packages/cairo/fpmake.pp
index 34434091ee..b9648ab615 100644
--- a/packages/cairo/fpmake.pp
+++ b/packages/cairo/fpmake.pp
@@ -15,11 +15,11 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: University of Southern California + Red Hat Inc., header: Luiz AmXrico Pereira CXmara';
P.License := 'Library: MPL 1.1 + LGPL-2.1, header: LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
- P.OSes := [beos,haiku,freebsd,solaris,netbsd,openbsd,linux,win32,win64,aix];
+ P.OSes := [beos,haiku,freebsd,solaris,netbsd,openbsd,linux,win32,win64,aix,dragonfly];
// Do not build cairo on iPhone (=arm-darwin)
if Defaults.CPU<>arm then
P.OSes := P.OSes + [darwin];
diff --git a/packages/cdrom/Makefile b/packages/cdrom/Makefile
index ee1aacfda9..6ca7d1ae4a 100644
--- a/packages/cdrom/Makefile
+++ b/packages/cdrom/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=cdrom
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/cdrom/Makefile.fpc b/packages/cdrom/Makefile.fpc
index 4ea547b26b..d48cdb79d6 100644
--- a/packages/cdrom/Makefile.fpc
+++ b/packages/cdrom/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=cdrom
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/cdrom/Makefile.fpc.fpcmake b/packages/cdrom/Makefile.fpc.fpcmake
index 9adbb088fb..75d72080e3 100644
--- a/packages/cdrom/Makefile.fpc.fpcmake
+++ b/packages/cdrom/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=cdrom
-version=2.7.1
+version=3.1.1
[target]
units=cdrom discid fpcddb
diff --git a/packages/cdrom/examples/Makefile b/packages/cdrom/examples/Makefile
index dc42e01cb5..6bca9ab4f3 100644
--- a/packages/cdrom/examples/Makefile
+++ b/packages/cdrom/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=getdiscid showcds
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=getdiscid showcds
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=getdiscid showcds
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=getdiscid showcds
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=getdiscid showcds
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=getdiscid showcds
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=getdiscid showcds
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=getdiscid showcds
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=getdiscid showcds
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_CDROM=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
+REQUIRE_PACKAGES_CDROM=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_CDROM=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
+REQUIRE_PACKAGES_CDROM=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_CDROM=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
+REQUIRE_PACKAGES_CDROM=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/cdrom/fpmake.pp b/packages/cdrom/fpmake.pp
index 6a2e117afd..50b700e21b 100644
--- a/packages/cdrom/fpmake.pp
+++ b/packages/cdrom/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('cdrom');
+ P.ShortName:='cdr';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes:=[Win32,Win64,Linux];
P.Author := 'Michael van Canneyt';
diff --git a/packages/chm/Makefile b/packages/chm/Makefile
index 63ddd42242..f77f7516be 100644
--- a/packages/chm/Makefile
+++ b/packages/chm/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=chm
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/chm/Makefile.fpc b/packages/chm/Makefile.fpc
index 462a7cf130..f67ffb4aca 100644
--- a/packages/chm/Makefile.fpc
+++ b/packages/chm/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=chm
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/chm/Makefile.fpc.fpcmake b/packages/chm/Makefile.fpc.fpcmake
index 2521cb1df3..83fc22b485 100644
--- a/packages/chm/Makefile.fpc.fpcmake
+++ b/packages/chm/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=chm
-version=2.7.1
+version=3.1.1
[target]
units=fasthtmlparser htmlutil paslzx paslzxcomp paslznonslide chmbase chmtypes \
diff --git a/packages/chm/examples/chmsearch.lpr b/packages/chm/examples/chmsearch.lpr
new file mode 100644
index 0000000000..e853223a03
--- /dev/null
+++ b/packages/chm/examples/chmsearch.lpr
@@ -0,0 +1,178 @@
+program chmsearch;
+{ Fulltext search demo by Reinier Olislagers}
+{$mode objfpc}{$H+}
+
+uses
+ Classes, SysUtils, ChmReader, chmfiftimain;
+
+
+type
+ TChmWLCTopic = record
+ TopicIndex: DWord;
+ LocationCodes: array of DWord;
+ end;
+
+ TChmWLCTopicArray = array of TChmWLCTopic;
+
+procedure DoSearch(CHMFileName: string; Keyword: string);
+type
+ TTopicEntry = record
+ Topic:Integer;
+ Hits: Integer;
+ TitleHits: Integer;
+ FoundForThisRound: Boolean;
+ end;
+ TFoundTopics = array of TTopicEntry;
+var
+ FoundTopics: TFoundTopics;
+
+ procedure DeleteTopic(ATopicIndex: Integer);
+ var
+ MoveSize: DWord;
+ begin
+ WriteLn('Deleting Topic');
+ if ATopicIndex < High(FoundTopics) then
+ begin
+ MoveSize := SizeOf(TTopicEntry) * (High(FoundTopics) - (ATopicIndex+1));
+ Move(FoundTopics[ATopicIndex+1], FoundTopics[ATopicIndex], MoveSize);
+ end;
+ SetLength(FoundTopics, Length(FoundTopics) -1);
+ end;
+
+ function GetTopicIndex(ATopicID: Integer): Integer;
+ var
+ i: Integer;
+ begin
+ Result := -1;
+ for i := 0 to High(FoundTopics) do
+ begin
+ if FoundTopics[i].Topic = ATopicID then
+ Exit(i);
+ end;
+ end;
+
+ procedure UpdateTopic(TopicID: Integer; NewHits: Integer; NewTitleHits: Integer; AddNewTopic: Boolean);
+ var
+ TopicIndex: Integer;
+ begin
+ //WriteLn('Updating topic');
+ TopicIndex := GetTopicIndex(TopicID);
+ if TopicIndex = -1 then
+ begin
+ if AddNewTopic = False then
+ Exit;
+ SetLength(FoundTopics, Length(FoundTopics)+1);
+ TopicIndex := High(FoundTopics);
+ FoundTopics[TopicIndex].Topic := TopicID;
+ end;
+
+ FoundTopics[TopicIndex].FoundForThisRound := True;
+ if NewHits > 0 then
+ Inc(FoundTopics[TopicIndex].Hits, NewHits);
+ if NewTitleHits > 0 then
+ Inc(FoundTopics[TopicIndex].TitleHits, NewTitleHits);
+ end;
+
+var
+ CHMRead: TCHMReader;
+ CHMStream: TFileStream;
+ TopicResults: chmfiftimain.TChmWLCTopicArray;
+ TitleResults: chmfiftimain.TChmWLCTopicArray;
+ FIftiMainStream: TMemoryStream;
+ SearchReader: TChmSearchReader;
+ DocTitle: String;
+ DocURL: String;
+ CurrTopic: Integer;
+ k: Integer;
+
+begin
+ CHMStream := TFileStream.Create(CHMFileName, fmOpenRead or fmShareDenyWrite);
+ ChmRead := TChmReader.Create(CHMStream,false);
+ try
+ FIftiMainStream := CHMRead.GetObject('/$FIftiMain');
+ if FIftiMainStream = nil then
+ begin
+ writeln('Could not assign fiftimainstream. Aborting.');
+ halt(3);
+ end;
+ SearchReader := TChmSearchReader.Create(FIftiMainStream, True); //frees the stream when done
+ CHMRead.SearchReader := SearchReader;
+ TopicResults := SearchReader.LookupWord(Keyword, TitleResults);
+ //TopicResults := SearchReader.LookupWord(SearchWords[CurrTopic], TitleResults);
+ // Body results
+ for k := 0 to High(TopicResults) do
+ begin
+ UpdateTopic(TopicResults[k].TopicIndex, High(TopicResults[k].LocationCodes), 0, CurrTopic = 0);
+ writeln('Updated topic body with index '+inttostr(TopicResults[k].TopicIndex));
+ end;
+ // Title results
+ for k := 0 to High(TitleResults) do
+ begin
+ UpdateTopic(TitleResults[k].TopicIndex, 0, High(TitleResults[k].LocationCodes), CurrTopic = 0);
+ writeln('Updated title topic with index '+inttostr(TitleResults[k].TopicIndex));
+ end;
+
+ // Remove documents that don't have results
+ k := 0;
+ writeln('Going to remove docs without results; count: '+Inttostr(Length(FoundTopics)));
+ while k <= High(FoundTopics) do
+ begin
+ if FoundTopics[k].FoundForThisRound = False then
+ DeleteTopic(k)
+ else
+ begin
+ FoundTopics[k].FoundForThisRound := False;
+ Inc(k);
+ end;
+ end;
+
+ // Clear out results that don't contain all the words we are looking for
+ // Now lookup titles and urls to add to final search results
+ writeln('Found '+inttostr(Length(FoundTopics))+' topics');
+ for CurrTopic := 0 to High(FoundTopics) do
+ begin
+ try
+ DocURL := CHMRead.LookupTopicByID(FoundTopics[CurrTopic].Topic, DocTitle);
+ if (Length(DocURL) > 0) and (DocURL[1] <> '/') then
+ Insert('/', DocURL, 1);
+ if DocTitle = '' then
+ DocTitle := 'untitled';
+ writeln('DocURL : '+DocURL);
+ writeln('DocTitle : '+DocTitle);
+ except
+ on E: Exception do
+ begin
+ WriteLn('Exception');
+ writeln(E.Message);
+ end;
+ end;
+ end;
+ finally
+ CHMRead.Free;
+ CHMStream.Free;
+ //SearchReader.Free; //apparently not needed?!?!
+ end;
+end;
+
+var
+ SearchFor: string;
+begin
+ if paramstr(1)='' then
+ begin
+ writeln('No .chm file specified.');
+ writeln('Substituting hardcoded value lcl.chm');
+ end;
+ writeln('Enter search keyword or blank to exit:');
+ readln(SearchFor);
+ while (trim(SearchFor)<>'') do
+ begin
+ if paramstr(1)='' then
+ DoSearch('lcl.chm',SearchFor)
+ else
+ DoSearch(paramstr(1),SearchFor);
+ writeln('Enter search keyword or blank to exit:');
+ readln(SearchFor);
+ end;
+end.
+
+
diff --git a/packages/chm/fpmake.pp b/packages/chm/fpmake.pp
index 37aca41ffb..3cf0d8d393 100644
--- a/packages/chm/fpmake.pp
+++ b/packages/chm/fpmake.pp
@@ -17,7 +17,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Andrew Haines';
P.License := 'LGPL with modification, ';
@@ -29,7 +29,7 @@ begin
D:=P.Dependencies.Add('fcl-xml');
D:=P.Dependencies.Add('fcl-base');
- D.Version:='2.7.1';
+ D.Version:='3.1.1';
P.SourcePath.Add('src');
diff --git a/packages/chm/src/chmbase.pas b/packages/chm/src/chmbase.pas
index 5950956575..f4de0aca4f 100644
--- a/packages/chm/src/chmbase.pas
+++ b/packages/chm/src/chmbase.pas
@@ -28,7 +28,7 @@ uses
Classes, SysUtils;
const
- CHMPackageVersion = '2.6.0'; // to be put in readme
+ CHMPackageVersion = '3.1.1'; // to be put in readme
type
{$PACKRECORDS C}
diff --git a/packages/chm/src/chmcmd.lpr b/packages/chm/src/chmcmd.lpr
index 9c2a8ea992..a377c43614 100644
--- a/packages/chm/src/chmcmd.lpr
+++ b/packages/chm/src/chmcmd.lpr
@@ -26,7 +26,7 @@ uses
{$ifdef LZX_USETHREADS}{$ifdef Unix}cthreads,{$endif}{$endif} Classes, Sysutils, chmfilewriter, GetOpts;
Const
- CHMCMDVersion = '2.6.1';
+ CHMCMDVersion = '3.1.1';
Procedure Usage;
diff --git a/packages/chm/src/chmls.lpr b/packages/chm/src/chmls.lpr
index beba9940bc..955c350162 100644
--- a/packages/chm/src/chmls.lpr
+++ b/packages/chm/src/chmls.lpr
@@ -1045,7 +1045,9 @@ begin
end;
end;
cmdextractall: begin
- if length(localparams)=2 then
+ if length(localparams)=1 then //extract into current directory
+ ExtractFileAll(localparams[0],GetCurrentDir)
+ else if length(localparams)=2 then //extract into specified dir
ExtractFileall(localparams[0],localparams[1])
else
WrongNrParam(cmdnames[cmd],length(localparams));
diff --git a/packages/cocoaint/Makefile b/packages/cocoaint/Makefile
index f60c686d2c..d5b0bc12bd 100644
--- a/packages/cocoaint/Makefile
+++ b/packages/cocoaint/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=cocoaint
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/cocoaint/Makefile.fpc b/packages/cocoaint/Makefile.fpc
index 67c3bbc5e0..c92976e4aa 100644
--- a/packages/cocoaint/Makefile.fpc
+++ b/packages/cocoaint/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=cocoaint
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/cocoaint/Makefile.fpc.fpcmake b/packages/cocoaint/Makefile.fpc.fpcmake
index f1927a4e21..325a162e2d 100644
--- a/packages/cocoaint/Makefile.fpc.fpcmake
+++ b/packages/cocoaint/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=cocoaint
-version=2.7.1
+version=3.1.1
[target]
units=CocoaAll WebKit CoreData
diff --git a/packages/cocoaint/fpmake.pp b/packages/cocoaint/fpmake.pp
index 18ad58a5c8..5fdf0b2673 100644
--- a/packages/cocoaint/fpmake.pp
+++ b/packages/cocoaint/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.CPUs:=[i386,x86_64,powerpc,powerpc64];
P.OSes:=[darwin];
P.Dependencies.Add('univint');
diff --git a/packages/dblib/Makefile b/packages/dblib/Makefile
index abefcea3f5..ab3aab06af 100644
--- a/packages/dblib/Makefile
+++ b/packages/dblib/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=dblib
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,13 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipinstall: fpc_zipinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2311,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2339,15 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
diff --git a/packages/dblib/Makefile.fpc b/packages/dblib/Makefile.fpc
index 0ec318ca14..c11bb0996d 100644
--- a/packages/dblib/Makefile.fpc
+++ b/packages/dblib/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=dblib
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,16 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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/packages/dblib/fpmake.pp b/packages/dblib/fpmake.pp
index 35fcd1f912..d47eef50d5 100644
--- a/packages/dblib/fpmake.pp
+++ b/packages/dblib/fpmake.pp
@@ -9,7 +9,7 @@ uses fpmkunit;
procedure add_dblib(const ADirectory: string);
Const
- DBLibOSes = [linux,freebsd,netbsd,openbsd,solaris,win32,win64,haiku,android];
+ DBLibOSes = [linux,freebsd,netbsd,openbsd,solaris,win32,win64,haiku,android,dragonfly];
Var
P : TPackage;
@@ -19,7 +19,7 @@ begin
begin
P:=AddPackage('dblib');
P.Directory:=ADirectory;
- P.Version:='1.0';
+ P.Version:='3.1.1';
P.Author := 'Library: (FreeTDS/Microsoft), header: Ladislav Karrach';
P.License := 'Library: FreeTDS License, header: LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/dbus/Makefile b/packages/dbus/Makefile
index 18c3799338..93a15f827b 100644
--- a/packages/dbus/Makefile
+++ b/packages/dbus/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=dbus
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/dbus/Makefile.fpc b/packages/dbus/Makefile.fpc
index f8746c005d..e5986c86ca 100644
--- a/packages/dbus/Makefile.fpc
+++ b/packages/dbus/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=dbus
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/dbus/Makefile.fpc.fpcmake b/packages/dbus/Makefile.fpc.fpcmake
index 078a2b7ed3..5284313db3 100644
--- a/packages/dbus/Makefile.fpc.fpcmake
+++ b/packages/dbus/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=dbus
-version=2.7.1
+version=3.1.1
[target]
units=dbus
diff --git a/packages/dbus/examples/Makefile b/packages/dbus/examples/Makefile
index 9b6021f5a9..f13bf90ecc 100644
--- a/packages/dbus/examples/Makefile
+++ b/packages/dbus/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=busexample
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=busexample
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=busexample
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=busexample
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=busexample
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=busexample
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=busexample
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=busexample
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=busexample
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_DBUS=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
+REQUIRE_PACKAGES_DBUS=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_DBUS=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
+REQUIRE_PACKAGES_DBUS=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_DBUS=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
+REQUIRE_PACKAGES_DBUS=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/dbus/fpmake.pp b/packages/dbus/fpmake.pp
index fb584b6510..508f9ad7a6 100644
--- a/packages/dbus/fpmake.pp
+++ b/packages/dbus/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: Red Hat, header: Unknown (but probably Sebastian Guenther)';
P.License := 'Library: GPL2 or later, header: LGPL with modification, ';
diff --git a/packages/dts/Makefile b/packages/dts/Makefile
index 9d5aaade59..ebc60bab13 100644
--- a/packages/dts/Makefile
+++ b/packages/dts/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=dts
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/dts/Makefile.fpc b/packages/dts/Makefile.fpc
index 56507e3181..f63f5889e7 100644
--- a/packages/dts/Makefile.fpc
+++ b/packages/dts/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=dts
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/dts/Makefile.fpc.fpcmake b/packages/dts/Makefile.fpc.fpcmake
index fdaef22119..f4f282fb5a 100644
--- a/packages/dts/Makefile.fpc.fpcmake
+++ b/packages/dts/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=dts
-version=2.7.1
+version=3.1.1
[target]
units=dts
diff --git a/packages/dts/fpmake.pp b/packages/dts/fpmake.pp
index 1f1e2088b8..1d64e6c960 100644
--- a/packages/dts/fpmake.pp
+++ b/packages/dts/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: Gildas Bazin, header: Ivo Steinmann';
P.License := 'Library: GPL2 or later, header: LGPL with modification, ';
diff --git a/packages/fastcgi/Makefile b/packages/fastcgi/Makefile
index 056a9cd0ac..6de4a10ce3 100644
--- a/packages/fastcgi/Makefile
+++ b/packages/fastcgi/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fastcgi
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fastcgi/Makefile.fpc b/packages/fastcgi/Makefile.fpc
index 3e4b5c42b9..41246daa85 100644
--- a/packages/fastcgi/Makefile.fpc
+++ b/packages/fastcgi/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fastcgi
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fastcgi/Makefile.fpc.fpcmake b/packages/fastcgi/Makefile.fpc.fpcmake
index 44a824bc7c..fb5d9c5876 100644
--- a/packages/fastcgi/Makefile.fpc.fpcmake
+++ b/packages/fastcgi/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fastcgi
-version=2.5.1
+version=3.1.1
[target]
units=fastcgi
diff --git a/packages/fastcgi/fpmake.pp b/packages/fastcgi/fpmake.pp
index 8e6be58d40..27baee5f4b 100644
--- a/packages/fastcgi/fpmake.pp
+++ b/packages/fastcgi/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'FreePascal development team';
P.License := 'LGPL with modification, ';
@@ -24,7 +24,7 @@ begin
P.Email := '';
P.Description := 'FastCGI header translation to Pascal';
P.NeedLibC:= false;
- P.OSes := AllUnixOSes+AllWindowsOSes-[qnx];
+ P.OSes := AllUnixOSes+AllWindowsOSes-[qnx]+[amiga,aros];
P.SourcePath.Add('src');
diff --git a/packages/fcl-async/Makefile b/packages/fcl-async/Makefile
index 8aa30eece4..339df66ee4 100644
--- a/packages/fcl-async/Makefile
+++ b/packages/fcl-async/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-async
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-async/Makefile.fpc b/packages/fcl-async/Makefile.fpc
index d8e2cd9248..5f332033bf 100644
--- a/packages/fcl-async/Makefile.fpc
+++ b/packages/fcl-async/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-async
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-async/Makefile.fpc.fpcmake b/packages/fcl-async/Makefile.fpc.fpcmake
index 9435b7593c..ba2f144624 100644
--- a/packages/fcl-async/Makefile.fpc.fpcmake
+++ b/packages/fcl-async/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fcl-async
-version=2.7.1
+version=3.1.1
[target]
units=libasync fpasync
diff --git a/packages/fcl-async/fpmake.pp b/packages/fcl-async/fpmake.pp
index a39b3d3855..9e8d8da852 100644
--- a/packages/fcl-async/fpmake.pp
+++ b/packages/fcl-async/fpmake.pp
@@ -13,16 +13,17 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('fcl-async');
+ P.ShortName:='fcla';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Mostly Sebastian Guenther';
P.License := 'LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
P.Email := '';
- P.Description := 'Asynchonous event management of Free Component Libraries (FCL), FPC''s OOP library.';
+ P.Description := 'Asynchronous event management of Free Component Libraries (FCL), FPC''s OOP library.';
P.NeedLibC:= false;
P.OSes:=AllUnixOses;
diff --git a/packages/fcl-base/Makefile b/packages/fcl-base/Makefile
index f3604c4c59..88565f4013 100644
--- a/packages/fcl-base/Makefile
+++ b/packages/fcl-base/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-base
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-base/Makefile.fpc b/packages/fcl-base/Makefile.fpc
index 43015bc934..a123273932 100644
--- a/packages/fcl-base/Makefile.fpc
+++ b/packages/fcl-base/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-base
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-base/Makefile.fpc.fpcmake b/packages/fcl-base/Makefile.fpc.fpcmake
index ae26d16b2f..d062e2f86d 100644
--- a/packages/fcl-base/Makefile.fpc.fpcmake
+++ b/packages/fcl-base/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fcl-base
-version=2.7.1
+version=3.1.1
[require]
packages_darwin=univint
diff --git a/packages/fcl-base/examples/Makefile b/packages/fcl-base/examples/Makefile
index f0fb6451d5..e290546fcb 100644
--- a/packages/fcl-base/examples/Makefile
+++ b/packages/fcl-base/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
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),i386-aros)
+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),m68k-linux)
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 sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-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),x86_64-dragonfly)
+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),arm-linux)
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 sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
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 sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur ipcserver ipcclient debugtest dbugsrv asiotest testtimer
endif
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
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
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1572,6 +1598,23 @@ REQUIRE_PACKAGES_FCL-REGISTRY=1
REQUIRE_PACKAGES_FCL-WEB=1
REQUIRE_PACKAGES_FCL-XML=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
+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),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2065,6 +2108,23 @@ REQUIRE_PACKAGES_FCL-REGISTRY=1
REQUIRE_PACKAGES_FCL-WEB=1
REQUIRE_PACKAGES_FCL-XML=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
+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),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2371,6 +2431,23 @@ REQUIRE_PACKAGES_FCL-REGISTRY=1
REQUIRE_PACKAGES_FCL-WEB=1
REQUIRE_PACKAGES_FCL-XML=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
+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),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -3122,7 +3199,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -3152,17 +3229,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/fcl-base/fpmake.pp b/packages/fcl-base/fpmake.pp
index ce2d326740..f330bf7cca 100644
--- a/packages/fcl-base/fpmake.pp
+++ b/packages/fcl-base/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('fcl-base');
+ P.ShortName:='fclb';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('univint',[Darwin,iPhoneSim]);
P.Dependencies.Add('fcl-res');
p.Dependencies.Add('rtl-objpas');
@@ -24,7 +25,7 @@ begin
P.Author := '<various>';
P.License := 'LGPL with modification, ';
P.Email := '';
- P.Description := 'Base library of Free Component Libraries(FCL), FPC''s OOP library.';
+ P.Description := 'Base library of Free Component Libraries (FCL), FPC''s OOP library.';
P.NeedLibC:= false;
P.OSes:=AllOSes-[embedded,msdos];
diff --git a/packages/fcl-base/src/fileinfo.pp b/packages/fcl-base/src/fileinfo.pp
index 71939ee76c..bada896940 100644
--- a/packages/fcl-base/src/fileinfo.pp
+++ b/packages/fcl-base/src/fileinfo.pp
@@ -194,7 +194,8 @@ begin
Inc(I);
end;
// This will read the info.
- FVersionInfo.FixedInfo;
+ if assigned(FVersionInfo) then
+ FVersionInfo.FixedInfo;
end;
procedure TVersionInfo.Load(Const Instance: THandle);
diff --git a/packages/fcl-base/src/whtml.pp b/packages/fcl-base/src/whtml.pp
index cd191884fd..8955326c04 100644
--- a/packages/fcl-base/src/whtml.pp
+++ b/packages/fcl-base/src/whtml.pp
@@ -339,7 +339,7 @@ Var
begin
A:='NAME="'+Name+'" TYPE="checkbox" VALUE="'+Value+'"';
If Checked then
- A:=A+' CHECKED=1';
+ A:=A+' CHECKED="checked"';
TagStart('INPUT',A);
end;
@@ -357,7 +357,7 @@ Var
begin
A:='NAME="'+Name+'" TYPE="checkbox" VALUE="'+Value+'"';
If Checked then
- A:=A+' CHECKED=1';
+ A:=A+' CHECKED="checked"';
TagStart('INPUT',A);
end;
@@ -410,7 +410,7 @@ begin
end;
end;
If (Value<>'') and (V=Value) then
- A:=A+' SELECTED';
+ A:=A+' SELECTED="selected"';
TagStart('OPTION',A);
end;
TagEnd('SELECT')
diff --git a/packages/fcl-db/Makefile b/packages/fcl-db/Makefile
index 9d35c2541f..2c822e9ab8 100644
--- a/packages/fcl-db/Makefile
+++ b/packages/fcl-db/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-db
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-db/Makefile.fpc b/packages/fcl-db/Makefile.fpc
index e861774c7c..a4c3d8acba 100644
--- a/packages/fcl-db/Makefile.fpc
+++ b/packages/fcl-db/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-db
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-db/Makefile.fpc.fpcmake b/packages/fcl-db/Makefile.fpc.fpcmake
index 21c858ed66..028c5ee9c5 100644
--- a/packages/fcl-db/Makefile.fpc.fpcmake
+++ b/packages/fcl-db/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fcl-db
-version=2.7.1
+version=3.1.1
[target]
dirs=src/sdf src/memds src/sqldb src/base src/sql src/json
@@ -17,6 +17,7 @@ dirs_iphonesim=src/dbase src/sqlite
dirs_solaris=src/dbase src/sqlite
dirs_netbsd=src/dbase src/sqlite src/paradox
dirs_openbsd=src/dbase src/sqlite src/paradox
+dirs_os2=src/dbase src/export
dirs_win32=src/dbase src/paradox src/sqlite src/export src/datadict src/codegen
dirs_win64=src/dbase src/sqlite src/export src/datadict src/codegen
dirs_wince=src/dbase src/sqlite src/export src/datadict src/codegen
diff --git a/packages/fcl-db/examples/dbftool.lpi b/packages/fcl-db/examples/dbftool.lpi
index f2d6ba0627..3674cb838c 100644
--- a/packages/fcl-db/examples/dbftool.lpi
+++ b/packages/fcl-db/examples/dbftool.lpi
@@ -35,7 +35,6 @@
<Unit0>
<Filename Value="dbftool.lpr"/>
<IsPartOfProject Value="True"/>
- <UnitName Value="dbftool"/>
</Unit0>
</Units>
</ProjectOptions>
@@ -49,12 +48,6 @@
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
- <Other>
- <CompilerMessages>
- <MsgFileName Value=""/>
- </CompilerMessages>
- <CompilerPath Value="$(CompPath)"/>
- </Other>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
diff --git a/packages/fcl-db/examples/dbftool.lpr b/packages/fcl-db/examples/dbftool.lpr
index a6327ab3c8..250737b4b7 100644
--- a/packages/fcl-db/examples/dbftool.lpr
+++ b/packages/fcl-db/examples/dbftool.lpr
@@ -1,6 +1,8 @@
program dbftool;
-{ Reads and exports DBF files. Can create a demo DBF file to test with.
+{
+Reads and exports DBF files.
+Can create a set of 2 demo DBF files in current directory to test with.
Demonstrates creating DBF tables, filling it with data,
and exporting datasets.
@@ -36,7 +38,10 @@ type
TDBFTool = class(TCustomApplication)
private
+ // Exports recordset to specified format
procedure ExportDBF(var MyDbf: TDbf; ExportFormat: string);
+ // Executable name without path
+ function GetExeName: string;
protected
procedure DoRun; override;
public
@@ -45,18 +50,26 @@ type
procedure WriteHelp; virtual;
end;
+ // Creates 2 demonstration DBFs in Directory
+ // with dbase compatibility level TableLevel
procedure CreateDemoDBFs(Directory: string; TableLevel: integer);
- // Creates 2 demonstration DBFs in Directory with dbase compatibility level
- // TableLevel
+ // Data structure and data adapted from Firebird employee sample database that
+ // are also used in the SQLDB tutorials on Lazarus wiki/demo directory.
var
+ CurDir: string; //current directory
NewDBF: TDBF;
i: integer;
begin
+ // Get current working directory (need not be application directory):
+ CurDir := '';
+ GetDir(0,CurDir);
NewDBF := TDBF.Create(nil);
try
if Directory = '' then
- NewDBF.FilePath := '' { application directory}
+ begin
+ NewDBF.FilePathFull := ExpandFileName(CurDir);
+ end
else
NewDBF.FilePathFull := ExpandFileName(Directory) {full absolute path};
if TableLevel <= 0 then
@@ -65,8 +78,8 @@ type
NewDBF.TableLevel := TableLevel;
NewDBF.TableName := 'customer.dbf';
- writeln('Creating ', NewDBF.TableName, ' with table level ', NewDBF.TableLevel);
- if TableLevel >= 30 then
+ writeln('Creating ', NewDBF.TableName, ' with table level ', NewDBF.TableLevel);
+ if TableLevel >= 30 {Visual FoxPro} then
begin
NewDBF.FieldDefs.Add('CUST_NO', ftAutoInc);
end
@@ -90,7 +103,7 @@ type
NewDBF.FieldByName('CITY').AsString := 'San Diego';
NewDBF.FieldByName('COUNTRY').AsString := 'USA';
end;
- 2:
+ 2: //Let's try a duplicate row
begin
NewDBF.FieldByName('CUSTOMER').AsString := 'Michael Design';
NewDBF.FieldByName('CITY').AsString := 'San Diego';
@@ -125,7 +138,7 @@ type
NewDBF := TDBF.Create(nil);
try
if Directory = '' then
- NewDBF.FilePath := '' {application directory}
+ NewDBF.FilePathFull := ExpandFileName(CurDir)
else
NewDBF.FilePathFull := ExpandFileName(Directory) {full absolute path};
if TableLevel <= 0 then
@@ -135,7 +148,7 @@ type
NewDBF.TableName := 'employee.dbf';
writeln('Creating ', NewDBF.TableName, ' with table level ', NewDBF.TableLevel);
- if TableLevel >= 30 then
+ if TableLevel >= 30 {Visual FoxPro} then
begin
NewDBF.FieldDefs.Add('EMP_NO', ftAutoInc);
end
@@ -216,31 +229,34 @@ type
end;
end;
+ // Gets list of all .dbf files in current directory and its subdirectories.
procedure GetDBFList(Results: TStringList);
- // Gets list of all .dbf files in a directory and its subdirectories.
var
r: TSearchRec;
begin
results.Clear;
- if FindFirst('*.dbf', faAnyFile -
+ if FindFirst('*', faAnyFile - faDirectory -
{$WARNINGS OFF}
faVolumeID - faSymLink
{$WARNINGS ON}
, r) = 0 then
begin
repeat
- if (r.Attr and faDirectory) <> faDirectory then
- begin
+ begin
+ // Cater for both case-sensitive and case-insensitive filesystems
+ // ignore any directories
+ if ((r.Attr and faDirectory) <> faDirectory) and
+ (LowerCase(ExtractFileExt(r.Name))='.dbf') then
results.add(expandfilename(r.Name));
- end;
+ end;
until (FindNext(r) <> 0);
findclose(r);
end;
end;
+ // Convert binary field contents to strings with hexadecimal representation.
+ // Useful for displaying binary field contents.
function BinFieldToHex(BinarySource: TField): string;
- // Convert binary field contents to strings with hexadecimal representation.
- // Useful for displaying binary field contents.
var
HexValue: PChar;
begin
@@ -261,8 +277,8 @@ type
end;
end;
+ // Writes contents of available records to screen
procedure PrintRecords(DBf: TDBf);
- // Prints contents of available records to screen
var
i: integer;
RecordCount: integer;
@@ -291,7 +307,6 @@ type
{ TDBFTool }
procedure TDBFTool.ExportDBF(var MyDbf: TDbf; ExportFormat: string);
- // Exports recordset to specified format
var
ExportSettings: TCustomExportFormatSettings;
Exporter: TCustomFileExporter;
@@ -326,7 +341,7 @@ type
//todo: delimiter?
Exporter.FileName := MyDBF.FilePathFull + ChangeFileExt(MyDBF.TableName, '.csv');
end;
- 'CSV', 'CSVRFC4180', 'CSVLIBRE', 'CSVLIBREOFFICE':
+ 'CSV', 'CSVRFC4180', 'CSVLIBRE', 'CSVLIBREOFFICE', 'CSVOPENOFFICE':
begin
Exporter := TCSVExporter.Create(nil);
ExportSettings := TCSVFormatSettings.Create(true);
@@ -417,6 +432,11 @@ type
end;
end;
+ function TDBFTool.GetExeName: string;
+ begin
+ result := ExtractFileName(ExeName);
+ end;
+
procedure TDBFTool.DoRun;
var
DBFs: TStringList;
@@ -472,15 +492,17 @@ type
GetDBFList(DBFs);
if DBFs.Count = 0 then
- writeln('Could not find any dbf files');
+ begin
+ writeln('Could not find any dbf files.');
+ writeln('Use ' + GetExeName + ' --createdemo to create some test DBF files.');
+ end;
for FileNo := 0 to DBFs.Count - 1 do
begin
if not (fileexists(DBFs[FileNo])) then
begin
- // for some reason, fpc trunk suddenly returns the directory as well...
- //writeln('Sorry, file ',DBFs[FileNo],' does not exist.');
- break;
+ writeln('Sorry, file ',DBFs[FileNo],' does not exist. Ignoring it.');
+ continue;
end;
MyDbf := TDbf.Create(nil);
try
@@ -539,18 +561,21 @@ type
procedure TDBFTool.WriteHelp;
begin
- writeln('Usage: ', ExeName, ' -h');
- writeln(' --createdemo create demo database');
- writeln(' --tablelevel=<n> optional: desired tablelevel for demo db');
+ writeln('Read/print all dbfs in current directory');
+ writeln('Usage info: ', GetExeName, ' -h');
+ writeln('');
+ writeln('--createdemo create demo database in current directory');
+ writeln('--tablelevel=<n> optional: desired tablelevel for demo db');
writeln(' 3 DBase III');
- writeln(' 4 DBase IV');
+ writeln(' 4 DBase IV (default if no tablelevel given)');
writeln(' 7 Visual DBase 7');
writeln(' 25 FoxPro 2.x');
writeln(' 30 Visual FoxPro');
- writeln(' --exportformat=<text> export dbfs to format. Format can be:');
+ writeln('--exportformat=<text> export dbfs to format. Format can be:');
writeln(' access Microsoft Access XML');
writeln(' adonet ADO.Net dataset XML');
- writeln(' csvexcel Excel/Creativyst format CSV text file (with locale dependent output)');
+ writeln(' csvexcel Excel/Creativyst format CSV text file ');
+ writeln(' (with locale dependent output)');
writeln(' csvRFC4180 LibreOffice/RFC4180 format CSV text file');
writeln(' dataset Delphi dataset XML');
writeln(' excel Microsoft Excel XML');
diff --git a/packages/fcl-db/fpmake.pp b/packages/fcl-db/fpmake.pp
index 398be1ca4b..c15d22db32 100644
--- a/packages/fcl-db/fpmake.pp
+++ b/packages/fcl-db/fpmake.pp
@@ -8,12 +8,12 @@ uses fpmkunit;
procedure add_fcl_db(const ADirectory: string);
const
- ParadoxOSes = [beos,haiku,linux,freebsd,netbsd,openbsd,win32];
- DatadictOSes = [aix,beos,darwin,haiku,linux,freebsd,win32,win64,wince,android];
- SqldbConnectionOSes = [aix,beos,haiku,linux,freebsd,darwin,iphonesim,netbsd,openbsd,solaris,win32,win64,wince,android];
- SqliteOSes = [aix,beos,haiku,linux,freebsd,darwin,iphonesim,netbsd,openbsd,solaris,win32,win64,wince,android];
- DBaseOSes = [aix,beos,haiku,linux,freebsd,darwin,iphonesim,netbsd,openbsd,solaris,win32,win64,wince,android];
- MSSQLOSes = [beos,haiku,linux,freebsd,netbsd,openbsd,solaris,win32,win64,android];
+ ParadoxOSes = [beos,haiku,linux,freebsd,netbsd,openbsd,win32,dragonfly];
+ DatadictOSes = [aix,beos,darwin,haiku,linux,freebsd,win32,win64,wince,android,dragonfly];
+ SqldbConnectionOSes = [aix,beos,haiku,linux,freebsd,darwin,iphonesim,netbsd,openbsd,solaris,win32,win64,wince,android,dragonfly];
+ SqliteOSes = [aix,beos,haiku,linux,freebsd,darwin,iphonesim,netbsd,openbsd,solaris,win32,win64,wince,android,dragonfly];
+ DBaseOSes = [aix,beos,haiku,linux,freebsd,darwin,iphonesim,netbsd,openbsd,solaris,win32,win64,wince,android,os2,dragonfly];
+ MSSQLOSes = [beos,haiku,linux,freebsd,netbsd,openbsd,solaris,win32,win64,android,dragonfly];
SqldbWithoutOracleOSes = [win64];
@@ -25,6 +25,7 @@ begin
With Installer do
begin
P:=AddPackage('fcl-db');
+ P.ShortName:='fcld';
P.Author := '<various>';
P.License := 'LGPL with modification, ';
@@ -35,7 +36,7 @@ begin
P.OSes:=AllOSes-[embedded,msdos];
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.SourcePath.Add('src/base');
P.SourcePath.Add('src/paradox', ParadoxOSes);
@@ -305,6 +306,8 @@ begin
with T.Dependencies do
begin
AddInclude('dbf_common.inc');
+ AddInclude('dbf_wnix.inc', AllOSes-AllWindowsOSes-[os2]);
+ AddInclude('dbf_wos2.inc', [os2]);
end;
T:=P.Targets.AddUnit('fpcgcreatedbf.pp', DatadictOSes);
with T.Dependencies do
diff --git a/packages/fcl-db/src/base/Makefile b/packages/fcl-db/src/base/Makefile
index df8b2d5ad6..d465c2dfff 100644
--- a/packages/fcl-db/src/base/Makefile
+++ b/packages/fcl-db/src/base/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-db
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR))))))
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader
@@ -391,6 +397,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader
endif
@@ -478,6 +487,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader
endif
@@ -532,6 +544,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader
endif
@@ -613,6 +628,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader
endif
@@ -700,6 +718,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader
endif
@@ -754,6 +775,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_RSTS+=dbconst dbcoll sqlscript xmldatapacketreader
endif
@@ -836,6 +860,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -923,6 +950,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -977,6 +1007,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2h
endif
@@ -1058,6 +1091,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_UNITDIR+=../dbase
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_UNITDIR+=../dbase
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_UNITDIR+=../dbase
endif
@@ -1145,6 +1181,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_UNITDIR+=../dbase
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_UNITDIR+=../dbase
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_UNITDIR+=../dbase
endif
@@ -1199,6 +1238,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_UNITDIR+=../dbase
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_UNITDIR+=../dbase
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_UNITDIR+=../dbase
endif
@@ -1453,6 +1495,12 @@ 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=
@@ -1498,6 +1546,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2080,6 +2133,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2370,6 +2433,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2550,6 +2623,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -3007,7 +3090,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -3037,17 +3120,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/base/Makefile.fpc b/packages/fcl-db/src/base/Makefile.fpc
index b3bb92cffa..f509e5405a 100644
--- a/packages/fcl-db/src/base/Makefile.fpc
+++ b/packages/fcl-db/src/base/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
main=fcl-db
-version=2.7.1
+version=3.1.1
[target]
units=dbconst db dbwhtml bufdataset_parser bufdataset dbcoll sqlscript xmldatapacketreader
diff --git a/packages/fcl-db/src/base/bufdataset.pas b/packages/fcl-db/src/base/bufdataset.pas
index 59cbe1758d..f2a1c5b53c 100644
--- a/packages/fcl-db/src/base/bufdataset.pas
+++ b/packages/fcl-db/src/base/bufdataset.pas
@@ -504,7 +504,6 @@ type
procedure SetIndexFieldNames(const AValue: String);
procedure SetIndexName(AValue: String);
procedure SetMaxIndexesCount(const AValue: Integer);
- procedure SetPacketRecords(aValue : integer);
procedure SetBufUniDirectional(const AValue: boolean);
// indexes handling
procedure InitDefaultIndexes;
@@ -513,6 +512,7 @@ type
procedure RemoveRecordFromIndexes(const ABookmark : TBufBookmark);
protected
// abstract & virtual methods of TDataset
+ procedure SetPacketRecords(aValue : integer); virtual;
procedure UpdateIndexDefs; override;
procedure SetRecNo(Value: Longint); override;
function GetRecNo: Longint; override;
@@ -546,7 +546,7 @@ type
procedure SetFilterText(const Value: String); override; {virtual;}
procedure SetFiltered(Value: Boolean); override; {virtual;}
procedure InternalRefresh; override;
- procedure DataEvent(Event: TDataEvent; Info: Ptrint); override;
+ procedure DataEvent(Event: TDataEvent; Info: PtrInt); override;
// virtual or methods, which can be used by descendants
function GetNewBlobBuffer : PBlobBuffer;
function GetNewWriteBlobBuffer : PBlobBuffer;
@@ -558,6 +558,7 @@ type
procedure SetReadOnly(AValue: Boolean); virtual;
function IsReadFromPacket : Boolean;
function getnextpacket : integer;
+ procedure ActiveBufferToRecord;
// abstracts, must be overidden by descendents
function Fetch : boolean; virtual;
function LoadField(FieldDef : TFieldDef;buffer : pointer; out CreateBlob : boolean) : boolean; virtual;
@@ -2103,9 +2104,10 @@ end;
function TCustomBufDataset.GetCurrentBuffer: TRecordBuffer;
begin
case State of
- dsFilter: Result := FFilterBuffer;
- dsCalcFields: Result := CalcBuffer;
- else Result := ActiveBuffer;
+ dsFilter: Result := FFilterBuffer;
+ dsCalcFields: Result := CalcBuffer;
+ dsRefreshFields: Result := FCurrentIndex.CurrentBuffer
+ else Result := ActiveBuffer;
end;
end;
@@ -2143,7 +2145,7 @@ begin
begin
if GetFieldIsNull(pbyte(CurrBuff),Field.FieldNo-1) then
Exit;
- if assigned(buffer) then
+ if assigned(Buffer) then
begin
inc(CurrBuff,FFieldBufPositions[Field.FieldNo-1]);
Move(CurrBuff^, Buffer^, GetFieldSize(FieldDefs[Field.FieldNo-1]));
@@ -2154,7 +2156,7 @@ begin
begin
Inc(CurrBuff, GetRecordSize + Field.Offset);
Result := Boolean(CurrBuff^);
- if result and assigned(Buffer) then
+ if Result and assigned(Buffer) then
begin
inc(CurrBuff);
Move(CurrBuff^, Buffer^, Field.DataSize);
@@ -2179,7 +2181,7 @@ begin
CurrBuff := GetCurrentBuffer;
If Field.FieldNo > 0 then // If =-1, then calculated/lookup field or =0 unbound field
begin
- if Field.ReadOnly and not (State in [dsSetKey, dsFilter]) then
+ if Field.ReadOnly and not (State in [dsSetKey, dsFilter, dsRefreshFields]) then
DatabaseErrorFmt(SReadOnlyField, [Field.DisplayName]);
if State in [dsEdit, dsInsert, dsNewValue] then
Field.Validate(Buffer);
@@ -2203,7 +2205,7 @@ begin
Move(Buffer^, CurrBuff^, Field.DataSize);
end;
if not (State in [dsCalcFields, dsFilter, dsNewValue]) then
- DataEvent(deFieldChange, Ptrint(Field));
+ DataEvent(deFieldChange, PtrInt(Field));
end;
procedure TCustomBufDataset.InternalDelete;
@@ -2355,7 +2357,7 @@ var r : Integer;
FailedCount : integer;
Response : TResolverResponse;
StoreCurrRec : TBufBookmark;
- AUpdateErr : EUpdateError;
+ AUpdateError : EUpdateError;
begin
CheckBrowseMode;
@@ -2373,7 +2375,7 @@ begin
if not ((FUpdateBuffer[r].UpdateKind=ukDelete) and not (assigned(FUpdateBuffer[r].OldValuesBuffer))) then
begin
FCurrentIndex.GotoBookmark(@FUpdateBuffer[r].BookmarkData);
- // Synchronise the Currentbuffer to the ActiveBuffer
+ // Synchronise the CurrentBuffer to the ActiveBuffer
CurrentRecordToBuffer(ActiveBuffer);
Response := rrApply;
try
@@ -2382,18 +2384,23 @@ begin
on E: EDatabaseError do
begin
Inc(FailedCount);
- if FailedCount > word(MaxErrors) then Response := rrAbort
- else Response := rrSkip;
+ if FailedCount > word(MaxErrors) then
+ Response := rrAbort
+ else
+ Response := rrSkip;
if assigned(FOnUpdateError) then
begin
- AUpdateErr := PSGetUpdateException(Exception(AcquireExceptionObject), nil);
- FOnUpdateError(Self,Self,AUpdateErr,FUpdateBuffer[r].UpdateKind,Response);
- AUpdateErr.Free;
+ AUpdateError := PSGetUpdateException(Exception(AcquireExceptionObject), nil);
+ FOnUpdateError(Self, Self, AUpdateError, FUpdateBuffer[r].UpdateKind, Response);
+ AUpdateError.Free;
if Response in [rrApply, rrIgnore] then dec(FailedCount);
if Response = rrApply then dec(r);
end
else if Response = rrAbort then
- Raise EUpdateError.Create(SOnUpdateError,E.Message,0,0,Exception(AcquireExceptionObject));
+ begin
+ AUpdateError := PSGetUpdateException(Exception(AcquireExceptionObject), nil);
+ raise AUpdateError;
+ end;
end
else
raise;
@@ -2535,8 +2542,7 @@ begin
FUpdateBuffer[FCurrentUpdateBuffer].OldValuesBuffer := nil;
end;
end;
-
- move(ActiveBuffer^,FCurrentIndex.CurrentBuffer^,FRecordSize);
+ ActiveBufferToRecord;
// new data are now in current record so reorder current record if needed
for i := 1 to FIndexesCount-1 do
@@ -2544,6 +2550,12 @@ begin
FIndexes[i].OrderCurrentRecord;
end;
+procedure TCustomBufDataset.ActiveBufferToRecord;
+
+begin
+ move(ActiveBuffer^,FCurrentIndex.CurrentBuffer^,FRecordSize);
+end;
+
procedure TCustomBufDataset.CalcRecordSize;
var x : longint;
@@ -3236,7 +3248,7 @@ begin
// Do nothing
end;
-procedure TCustomBufDataset.DataEvent(Event: TDataEvent; Info: Ptrint);
+procedure TCustomBufDataset.DataEvent(Event: TDataEvent; Info: PtrInt);
begin
if Event = deUpdateState then
// Save DataSet.State set by DataSet.SetState (filter out State set by DataSet.SetTempState)
diff --git a/packages/fcl-db/src/base/database.inc b/packages/fcl-db/src/base/database.inc
index 9b3dd4523f..716f5eb7e3 100644
--- a/packages/fcl-db/src/base/database.inc
+++ b/packages/fcl-db/src/base/database.inc
@@ -379,15 +379,27 @@ begin
DatabaseError(SErrNoDatabaseAvailable,Self)
end;
+Function TDBTransaction.AllowClose(DS : TDBDataset) : Boolean;
+
+begin
+ Result:=Assigned(DS);
+end;
+
procedure TDBTransaction.CloseDataSets;
-Var I : longint;
+Var
+ I : longint;
+ DS : TDBDataset;
begin
If Assigned(FDatasets) then
begin
For I:=FDatasets.Count-1 downto 0 do
- TDBDataset(FDatasets[i]).Close;
+ begin
+ DS:=TDBDataset(FDatasets[i]);
+ If AllowClose(DS) then
+ DS.Close;
+ end;
end;
end;
diff --git a/packages/fcl-db/src/base/dataset.inc b/packages/fcl-db/src/base/dataset.inc
index 6a7869ebe4..507db5143d 100644
--- a/packages/fcl-db/src/base/dataset.inc
+++ b/packages/fcl-db/src/base/dataset.inc
@@ -2060,9 +2060,9 @@ end;
procedure TDataSet.Post;
begin
+ UpdateRecord;
if State in [dsEdit,dsInsert] then
begin
- DataEvent(deUpdateRecord,0);
DataEvent(deCheckBrowseMode,0);
{$ifdef dsdebug}
writeln ('Post: checking required fields');
@@ -2083,7 +2083,7 @@ begin
{$endif}
DoAfterPost;
end
- else
+ else if State<>dsSetKey then
DatabaseErrorFmt(SNotEditing, [Name], Self);
end;
diff --git a/packages/fcl-db/src/base/datasource.inc b/packages/fcl-db/src/base/datasource.inc
index c63afb518b..6dee4bb6e5 100644
--- a/packages/fcl-db/src/base/datasource.inc
+++ b/packages/fcl-db/src/base/datasource.inc
@@ -36,7 +36,7 @@ Var
B : Boolean;
begin
- B:=Assigned(DataSource) and (DataSource.State<>dsInactive);
+ B:=Assigned(DataSource) and Not (DataSource.State in [dsInactive,dsOpening]);
If B<>FActive then
begin
FActive:=B;
diff --git a/packages/fcl-db/src/base/db.pas b/packages/fcl-db/src/base/db.pas
index 32c13a7e26..0f20d4afb5 100644
--- a/packages/fcl-db/src/base/db.pas
+++ b/packages/fcl-db/src/base/db.pas
@@ -48,7 +48,7 @@ type
TDataSetState = (dsInactive, dsBrowse, dsEdit, dsInsert, dsSetKey,
dsCalcFields, dsFilter, dsNewValue, dsOldValue, dsCurValue, dsBlockRead,
- dsInternalCalc, dsOpening);
+ dsInternalCalc, dsOpening, dsRefreshFields);
TDataEvent = (deFieldChange, deRecordChange, deDataSetChange,
deDataSetScroll, deLayoutChange, deUpdateRecord, deUpdateState,
@@ -61,7 +61,7 @@ type
TUpdateMode = (upWhereAll, upWhereChanged, upWhereKeyOnly);
TResolverResponse = (rrSkip, rrAbort, rrMerge, rrApply, rrIgnore);
- TProviderFlag = (pfInUpdate, pfInWhere, pfInKey, pfHidden);
+ TProviderFlag = (pfInUpdate, pfInWhere, pfInKey, pfHidden, pfRefreshOnInsert,pfRefreshOnUpdate);
TProviderFlags = set of TProviderFlag;
{ Forward declarations }
@@ -79,6 +79,7 @@ type
{ Exception classes }
EDatabaseError = class(Exception);
+
EUpdateError = class(EDatabaseError)
private
FContext : String;
@@ -1231,6 +1232,19 @@ type
end;
TParamClass = Class of TParam;
+ { TParamsEnumerator }
+
+ TParamsEnumerator = class
+ private
+ FPosition: Integer;
+ FParams: TParams;
+ function GetCurrent: TParam;
+ public
+ constructor Create(AParams: TParams);
+ function MoveNext: Boolean;
+ property Current: TParam read GetCurrent;
+ end;
+
{ TParams }
TParams = class(TCollection)
@@ -1255,6 +1269,7 @@ type
Function FindParam(const Value: string): TParam;
Procedure GetParamList(List: TList; const ParamNames: string);
Function IsEqual(Value: TParams): Boolean;
+ Function GetEnumerator: TParamsEnumerator;
Function ParamByName(const Value: string): TParam;
Function ParseSQL(SQL: String; DoCreate: Boolean): String; overload;
Function ParseSQL(SQL: String; DoCreate, EscapeSlash, EscapeRepeat : Boolean; ParameterStyle : TParamStyle): String; overload;
@@ -1607,7 +1622,7 @@ type
function CreateBlobStream(Field: TField; Mode: TBlobStreamMode): TStream; virtual;
procedure CursorPosChanged;
procedure DataConvert(aField: TField; aSource, aDest: Pointer; aToNative: Boolean); virtual;
- procedure Delete;
+ procedure Delete; virtual;
procedure DisableControls;
procedure Edit;
procedure EnableControls;
@@ -1878,6 +1893,7 @@ type
procedure RemoveDataSets;
procedure SetActive(Value : boolean);
Protected
+ Function AllowClose(DS: TDBDataset): Boolean; virtual;
Procedure SetDatabase (Value : TDatabase); virtual;
procedure CloseTrans;
procedure openTrans;
@@ -2141,7 +2157,7 @@ const
dsEditModes = [dsEdit, dsInsert, dsSetKey];
dsWriteModes = [dsEdit, dsInsert, dsSetKey, dsCalcFields, dsFilter,
- dsNewValue, dsInternalCalc];
+ dsNewValue, dsInternalCalc, dsRefreshFields];
// Correct list of all field types that are BLOB types.
// Please use this instead of checking TBlobType which will give
// incorrect results
@@ -2214,6 +2230,7 @@ begin
Pos:=i;
end;
+
{ EUpdateError }
constructor EUpdateError.Create(NativeError, Context : String;
ErrCode, PrevError : integer; E: Exception);
diff --git a/packages/fcl-db/src/base/dbconst.pas b/packages/fcl-db/src/base/dbconst.pas
index f8f4a27817..35d129a314 100644
--- a/packages/fcl-db/src/base/dbconst.pas
+++ b/packages/fcl-db/src/base/dbconst.pas
@@ -105,13 +105,22 @@ Resourcestring
SStreamNotRecognised = 'The data-stream format is not recognized';
SNoReaderClassRegistered = 'There is no TDatapacketReaderClass registered for this kind of data-stream';
SErrCircularDataSourceReferenceNotAllowed = 'Circular datasource references are not allowed.';
- SCommitting = 'Committing transaction';
- SRollingBack = 'Rolling back transaction';
- SCommitRetaining = 'Commit and retaining transaction';
- SRollBackRetaining = 'Rollback and retaining transaction';
- SErrNoFieldsDefined = 'Can not create a dataset when there are no fielddefinitions or fields defined';
- SErrApplyUpdBeforeRefresh= 'Must apply updates before refreshing data';
- SErrNoDataset = 'Missing (compatible) underlying dataset, can not open';
+ SCommitting = 'Committing transaction';
+ SRollingBack = 'Rolling back transaction';
+ SCommitRetaining = 'Commit and retaining transaction';
+ SRollBackRetaining = 'Rollback and retaining transaction';
+ SErrNoFieldsDefined = 'Can not create a dataset when there are no fielddefinitions or fields defined';
+ SErrApplyUpdBeforeRefresh = 'Must apply updates before refreshing data';
+ SErrNoDataset = 'Missing (compatible) underlying dataset, can not open';
+ SErrDisconnectedPacketRecords = 'For disconnected TSQLQuery instances, packetrecords must be -1';
+ SErrImplicitNoRollBack = 'Implicit use of transactions does not allow rollback.';
+ SErrNoImplicitTransaction = 'Connection %s does not allow implicit transactions.';
+ SErrImplictTransactionStart = 'Error: attempt to implicitly start a transaction on Connection "%s", transaction "%s".';
+ SErrImplicitConnect = 'Error: attempt to implicitly activate connection "%s".';
+ SErrFailedToUpdateRecord = 'Failed to apply record updates: %d rows updated.';
+ SErrRefreshNotSingleton = 'Refresh SQL resulted in multiple records: %d.';
+ SErrRefreshEmptyResult = 'Refresh SQL resulted in empty result set.';
+ SErrNoKeyFieldForRefreshClause = 'No key field found to construct refresh SQL WHERE clause';
Implementation
diff --git a/packages/fcl-db/src/base/dsparams.inc b/packages/fcl-db/src/base/dsparams.inc
index e261c0b7cb..54654a1449 100644
--- a/packages/fcl-db/src/base/dsparams.inc
+++ b/packages/fcl-db/src/base/dsparams.inc
@@ -22,29 +22,49 @@ begin
until notRepeatEscaped;
end;
+{ TParamsEnumerator }
+
+function TParamsEnumerator.GetCurrent: TParam;
+begin
+ Result := FParams[FPosition];
+end;
+
+constructor TParamsEnumerator.Create(AParams: TParams);
+begin
+ inherited Create;
+ FParams := AParams;
+ FPosition := -1;
+end;
+
+function TParamsEnumerator.MoveNext: Boolean;
+begin
+ inc(FPosition);
+ Result := FPosition < FParams.Count;
+end;
+
{ TParams }
-function TParams.GetItem(Index: Integer): TParam;
+Function TParams.GetItem(Index: Integer): TParam;
begin
Result:=(Inherited GetItem(Index)) as TParam;
end;
-function TParams.GetParamValue(const ParamName: string): Variant;
+Function TParams.GetParamValue(const ParamName: string): Variant;
begin
Result:=ParamByName(ParamName).Value;
end;
-procedure TParams.SetItem(Index: Integer; Value: TParam);
+Procedure TParams.SetItem(Index: Integer; Value: TParam);
begin
Inherited SetItem(Index,Value);
end;
-procedure TParams.SetParamValue(const ParamName: string; const Value: Variant);
+Procedure TParams.SetParamValue(const ParamName: string; const Value: Variant);
begin
ParamByName(ParamName).Value:=Value;
end;
-procedure TParams.AssignTo(Dest: TPersistent);
+Procedure TParams.AssignTo(Dest: TPersistent);
begin
if (Dest is TParams) then
TParams(Dest).Assign(Self)
@@ -52,7 +72,7 @@ begin
inherited AssignTo(Dest);
end;
-function TParams.GetDataSet: TDataSet;
+Function TParams.GetDataSet: TDataSet;
begin
If (FOwner is TDataset) Then
Result:=TDataset(FOwner)
@@ -60,17 +80,17 @@ begin
Result:=Nil;
end;
-function TParams.GetOwner: TPersistent;
+Function TParams.GetOwner: TPersistent;
begin
Result:=FOwner;
end;
-class function TParams.ParamClass: TParamClass;
+Class Function TParams.ParamClass: TParamClass;
begin
Result:=TParam;
end;
-constructor TParams.Create(AOwner: TPersistent; AItemClass: TCollectionItemClass
+Constructor TParams.Create(AOwner: TPersistent; AItemClass: TCollectionItemClass
);
begin
Inherited Create(AItemClass);
@@ -78,22 +98,22 @@ begin
end;
-constructor TParams.Create(AOwner: TPersistent);
+Constructor TParams.Create(AOwner: TPersistent);
begin
Create(AOwner,ParamClass);
end;
-constructor TParams.Create;
+Constructor TParams.Create;
begin
Create(TPersistent(Nil));
end;
-procedure TParams.AddParam(Value: TParam);
+Procedure TParams.AddParam(Value: TParam);
begin
Value.Collection:=Self;
end;
-procedure TParams.AssignValues(Value: TParams);
+Procedure TParams.AssignValues(Value: TParams);
Var
I : Integer;
@@ -109,7 +129,7 @@ begin
end;
end;
-function TParams.CreateParam(FldType: TFieldType; const ParamName: string;
+Function TParams.CreateParam(FldType: TFieldType; const ParamName: string;
ParamType: TParamType): TParam;
begin
@@ -119,7 +139,7 @@ begin
Result.ParamType:=ParamType;
end;
-function TParams.FindParam(const Value: string): TParam;
+Function TParams.FindParam(const Value: string): TParam;
Var
I : Integer;
@@ -134,7 +154,7 @@ begin
Dec(i);
end;
-procedure TParams.GetParamList(List: TList; const ParamNames: string);
+Procedure TParams.GetParamList(List: TList; const ParamNames: string);
Var
P: TParam;
@@ -152,7 +172,7 @@ begin
until StrPos > Length(ParamNames);
end;
-function TParams.IsEqual(Value: TParams): Boolean;
+Function TParams.IsEqual(Value: TParams): Boolean;
Var
I : Integer;
@@ -167,14 +187,19 @@ begin
end;
end;
-function TParams.ParamByName(const Value: string): TParam;
+Function TParams.GetEnumerator: TParamsEnumerator;
+begin
+ Result:=TParamsEnumerator.Create(Self);
+end;
+
+Function TParams.ParamByName(const Value: string): TParam;
begin
Result:=FindParam(Value);
If (Result=Nil) then
DatabaseErrorFmt(SParameterNotFound,[Value],Dataset);
end;
-function TParams.ParseSQL(SQL: String; DoCreate: Boolean): String;
+Function TParams.ParseSQL(SQL: String; DoCreate: Boolean): String;
var pb : TParamBinding;
rs : string;
@@ -183,7 +208,7 @@ begin
Result := ParseSQL(SQL,DoCreate,True,True,psInterbase, pb, rs);
end;
-function TParams.ParseSQL(SQL: String; DoCreate, EscapeSlash,
+Function TParams.ParseSQL(SQL: String; DoCreate, EscapeSlash,
EscapeRepeat: Boolean; ParameterStyle: TParamStyle): String;
var pb : TParamBinding;
@@ -193,7 +218,7 @@ begin
Result := ParseSQL(SQL,DoCreate,EscapeSlash,EscapeRepeat,ParameterStyle,pb, rs);
end;
-function TParams.ParseSQL(SQL: String; DoCreate, EscapeSlash,
+Function TParams.ParseSQL(SQL: String; DoCreate, EscapeSlash,
EscapeRepeat: Boolean; ParameterStyle: TParamStyle; out
ParamBinding: TParambinding): String;
@@ -246,7 +271,7 @@ begin
end; {case}
end;
-function TParams.ParseSQL(SQL: String; DoCreate, EscapeSlash,
+Function TParams.ParseSQL(SQL: String; DoCreate, EscapeSlash,
EscapeRepeat: Boolean; ParameterStyle: TParamStyle; out
ParamBinding: TParambinding; out ReplaceString: string): String;
@@ -435,7 +460,7 @@ begin
end;
-procedure TParams.RemoveParam(Value: TParam);
+Procedure TParams.RemoveParam(Value: TParam);
begin
Value.Collection:=Nil;
end;
@@ -1123,7 +1148,7 @@ begin
end;
-procedure TParams.CopyParamValuesFromDataset(ADataset: TDataset;
+Procedure TParams.CopyParamValuesFromDataset(ADataset: TDataset;
CopyBound: Boolean);
Var
diff --git a/packages/fcl-db/src/base/fields.inc b/packages/fcl-db/src/base/fields.inc
index def9b0b8d0..893ad21435 100644
--- a/packages/fcl-db/src/base/fields.inc
+++ b/packages/fcl-db/src/base/fields.inc
@@ -1331,7 +1331,7 @@ end;
procedure TNumericField.RangeError(AValue, Min, Max: Double);
begin
- DatabaseErrorFMT(SRangeError,[AValue,Min,Max,FieldName]);
+ DatabaseErrorFmt(SRangeError,[AValue,Min,Max,FieldName]);
end;
procedure TNumericField.SetDisplayFormat(const AValue: string);
@@ -1474,12 +1474,15 @@ begin
end;
procedure TLongintField.SetAsInteger(AValue: Longint);
-
+var Min, Max: Longint;
begin
If CheckRange(AValue) then
SetData(@AValue)
else
- RangeError(AValue,FMinRange,FMaxRange);
+ if (FMinValue<>0) or (FMaxValue<>0) then
+ RangeError(AValue,FMinValue,FMaxValue)
+ else
+ RangeError(AValue,FMinRange,FMaxRange);
end;
procedure TLongintField.SetVarValue(const AValue: Variant);
@@ -1500,27 +1503,17 @@ begin
If Code=0 then
SetAsInteger(L)
else
- DatabaseErrorFMT(SNotAnInteger,[AValue]);
+ DatabaseErrorFmt(SNotAnInteger,[AValue]);
end;
end;
Function TLongintField.CheckRange(AValue : longint) : Boolean;
begin
- result := true;
- if (FMaxValue=0) then
- begin
- if (AValue>FMaxRange) Then result := false;
- end
+ if (FMinValue<>0) or (FMaxValue<>0) then
+ Result := (AValue>=FMinValue) and (AValue<=FMaxValue)
else
- if AValue>FMaxValue then result := false;
-
- if (FMinValue=0) then
- begin
- if (AValue<FMinRange) Then result := false;
- end
- else
- if AValue<FMinValue then result := false;
+ Result := (AValue>=FMinRange) and (AValue<=FMaxRange);
end;
Procedure TLongintField.SetMaxValue (AValue : longint);
@@ -1645,7 +1638,7 @@ begin
If CheckRange(AValue) then
SetData(@AValue)
else
- RangeError(AValue,FMinRange,FMaxRange);
+ RangeError(AValue,FMinValue,FMaxValue);
end;
procedure TLargeintField.SetAsInteger(AValue: Longint);
@@ -1668,7 +1661,7 @@ begin
If Code=0 then
SetAsLargeint(L)
else
- DatabaseErrorFMT(SNotAnInteger,[AValue]);
+ DatabaseErrorFmt(SNotAnInteger,[AValue]);
end;
end;
@@ -1680,20 +1673,10 @@ end;
Function TLargeintField.CheckRange(AValue : largeint) : Boolean;
begin
- result := true;
- if (FMaxValue=0) then
- begin
- if (AValue>FMaxRange) Then result := false;
- end
- else
- if AValue>FMaxValue then result := false;
-
- if (FMinValue=0) then
- begin
- if (AValue<FMinRange) Then result := false;
- end
+ if (FMinValue<>0) or (FMaxValue<>0) then
+ Result := (AValue>=FMinValue) and (AValue<=FMaxValue)
else
- if AValue<FMinValue then result := false;
+ Result := (AValue>=FMinRange) and (AValue<=FMaxRange);
end;
Procedure TLargeintField.SetMaxValue (AValue : largeint);
@@ -2393,7 +2376,7 @@ class procedure TBCDField.CheckTypeSize(AValue: Longint);
begin
If not (AValue in [0..4]) then
- DatabaseErrorfmt(SInvalidFieldSize,[AValue]);
+ DatabaseErrorFmt(SInvalidFieldSize,[AValue]);
end;
function TBCDField.GetAsBCD: TBCD;
@@ -2504,7 +2487,7 @@ procedure TBCDField.SetAsCurrency(AValue: Currency);
begin
If CheckRange(AValue) then
- setdata(@AValue)
+ SetData(@AValue)
else
RangeError(AValue,FMinValue,FMaxValue);
end;
@@ -2564,7 +2547,7 @@ end;
class procedure TFMTBCDField.CheckTypeSize(AValue: Longint);
begin
If AValue > MAXFMTBcdFractionSize then
- DatabaseErrorfmt(SInvalidFieldSize,[AValue]);
+ DatabaseErrorFmt(SInvalidFieldSize,[AValue]);
end;
constructor TFMTBCDField.Create(AOwner: TComponent);
diff --git a/packages/fcl-db/src/codegen/Makefile b/packages/fcl-db/src/codegen/Makefile
index 110914d420..c4b2938642 100644
--- a/packages/fcl-db/src/codegen/Makefile
+++ b/packages/fcl-db/src/codegen/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=fpddcodegen fpcgcreatedbf fpcgdbcoll fpcgsqlconst fpcgtiopf fpddpopcode
endif
@@ -612,6 +627,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode
endif
@@ -699,6 +717,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode
endif
@@ -753,6 +774,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_RSTS+=fpddcodegen fpcgsqlconst fpddpopcode
endif
@@ -835,6 +859,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -922,6 +949,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -976,6 +1006,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2h
endif
@@ -1230,6 +1263,12 @@ 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=
@@ -1275,6 +1314,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1834,6 +1878,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2095,6 +2148,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2257,6 +2319,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2672,7 +2743,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2702,17 +2773,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/datadict/Makefile b/packages/fcl-db/src/datadict/Makefile
index aee3ca6ab4..05e3b866c3 100644
--- a/packages/fcl-db/src/datadict/Makefile
+++ b/packages/fcl-db/src/datadict/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd fpddmysql51 fpddmysql55
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd fpddmysql51 fpddmysql55
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd fpddmysql51 fpddmysql55
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=fpdatadict fpdddiff fpdddbf fpddsqldb
endif
@@ -612,6 +627,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd fpddmysql51 fpddmysql55
endif
@@ -699,6 +717,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd fpddmysql51 fpddmysql55
endif
@@ -753,6 +774,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff fpddfb fpddmysql40 fpddmysql41 fpddmysql50 fpddodbc fpddpq fpddoracle fpddsqlite3 fpddregstd fpddmysql51 fpddmysql55
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_RSTS+=fpdatadict fpddfb fpddsqldb fpdddiff
endif
@@ -835,6 +859,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -922,6 +949,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -976,6 +1006,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2h
endif
@@ -1230,6 +1263,12 @@ 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=
@@ -1275,6 +1314,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1905,6 +1949,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2287,6 +2341,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2521,6 +2585,16 @@ REQUIRE_PACKAGES_SQLITE=1
REQUIRE_PACKAGES_ODBC=1
REQUIRE_PACKAGES_POSTGRES=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -3206,7 +3280,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -3236,17 +3310,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/dbase/Makefile b/packages/fcl-db/src/dbase/Makefile
index 849698672d..dc614c1276 100644
--- a/packages/fcl-db/src/dbase/Makefile
+++ b/packages/fcl-db/src/dbase/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -398,6 +404,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=dbf
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=dbf
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=dbf
endif
@@ -485,6 +494,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=dbf
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=dbf
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=dbf
endif
@@ -539,6 +551,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=dbf
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=dbf
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=dbf
endif
@@ -620,6 +635,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_EXAMPLES+=testdbf
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_EXAMPLES+=testdbf
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_EXAMPLES+=testdbf
endif
@@ -707,6 +725,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_EXAMPLES+=testdbf
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_EXAMPLES+=testdbf
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_EXAMPLES+=testdbf
endif
@@ -761,6 +782,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_EXAMPLES+=testdbf
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_EXAMPLES+=testdbf
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_EXAMPLES+=testdbf
endif
@@ -842,6 +866,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
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-aros)
+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),m68k-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
@@ -929,6 +956,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-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),x86_64-dragonfly)
+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),arm-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
@@ -983,6 +1013,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-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
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
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
@@ -1064,6 +1097,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
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),i386-aros)
+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),m68k-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
@@ -1151,6 +1187,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-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),x86_64-dragonfly)
+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),arm-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
@@ -1205,6 +1244,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-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
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
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
@@ -1287,6 +1329,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2 -Sh
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2 -Sh
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2 -Sh
endif
@@ -1374,6 +1419,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2 -Sh
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2 -Sh
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2 -Sh
endif
@@ -1428,6 +1476,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2 -Sh
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2 -Sh
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2 -Sh
endif
@@ -1682,6 +1733,12 @@ 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=
@@ -1727,6 +1784,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2286,6 +2348,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2547,6 +2618,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2709,6 +2789,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -3124,7 +3213,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -3154,17 +3243,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/dbase/dbf_dbffile.pas b/packages/fcl-db/src/dbase/dbf_dbffile.pas
index 89b8a71cb6..78dc606c6f 100644
--- a/packages/fcl-db/src/dbase/dbf_dbffile.pas
+++ b/packages/fcl-db/src/dbase/dbf_dbffile.pas
@@ -228,12 +228,14 @@ implementation
uses
{$ifndef WINDOWS}
-{$ifndef FPC}
+ {$IFNDEF OS2}
+ {$ifndef FPC}
RTLConsts,
-{$else}
+ {$else FPC}
BaseUnix,
-{$endif}
-{$endif}
+ {$endif FPC}
+ {$ENDIF OS2}
+{$endif WINDOWS}
{$ifdef SUPPORT_MATH_UNIT}
Math,
{$endif}
@@ -3155,8 +3157,10 @@ end;
procedure TDbfGlobals.InitUserName;
{$ifdef FPC}
{$ifndef WINDOWS}
+ {$IFNDEF OS2}
var
TempName: UTSName;
+ {$ENDIF OS2}
{$endif}
{$endif}
begin
@@ -3176,8 +3180,12 @@ begin
{$endif wince}
{$else}
{$ifdef FPC}
+ {$IFDEF OS2}
+ FUserName := GetEnvironmentVariable ('HOSTNAME');
+ {$ELSE OS2}
FpUname(TempName);
FUserName := TempName.machine;
+ {$ENDIF OS2}
FUserNameLen := Length(FUserName);
{$endif}
{$endif}
diff --git a/packages/fcl-db/src/dbase/dbf_wnix.inc b/packages/fcl-db/src/dbase/dbf_wnix.inc
new file mode 100644
index 0000000000..d8a26def51
--- /dev/null
+++ b/packages/fcl-db/src/dbase/dbf_wnix.inc
@@ -0,0 +1,368 @@
+{$ifdef FPC}
+uses
+ unix;
+{$endif}
+
+(*
+NAME
+ fcntl - manipulate file descriptor
+
+SYNOPSIS
+ #include <unistd.h>
+ #include <fcntl.h>
+
+ int fcntl(int fd, int cmd);
+ int fcntl(int fd, int cmd, long arg);
+ int fcntl(int fd, int cmd, struct flock * lock);
+
+DESCRIPTION
+ fcntl performs one of various miscellaneous operations on
+ fd. The operation in question is determined by cmd:
+
+ F_GETLK, F_SETLK and F_SETLKW are used to manage discreð
+ tionary file locks. The third argument lock is a pointer
+ to a struct flock (that may be overwritten by this call).
+
+ F_GETLK
+ Return the flock structure that prevents us from
+ obtaining the lock, or set the l_type field of the
+ lock to F_UNLCK if there is no obstruction.
+
+ F_SETLK
+ The lock is set (when l_type is F_RDLCK or F_WRLCK)
+ or cleared (when it is F_UNLCK). If the lock is
+ held by someone else, this call returns -1 and sets
+ errno to EACCES or EAGAIN.
+
+ F_SETLKW
+ Like F_SETLK, but instead of returning an error we
+ wait for the lock to be released. If a signal that
+ is to be caught is received while fcntl is waiting,
+ it is interrupted and (after the signal handler has
+ returned) returns immediately (with return value -1
+ and errno set to EINTR).
+
+ Using these mechanisms, a program can implement fully
+ asynchronous I/O without using select(2) or poll(2) most
+ of the time.
+
+ The use of O_ASYNC, F_GETOWN, F_SETOWN is specific to BSD
+ and Linux. F_GETSIG and F_SETSIG are Linux-specific.
+ POSIX has asynchronous I/O and the aio_sigevent structure
+ to achieve similar things; these are also available in
+ Linux as part of the GNU C Library (Glibc).
+
+RETURN VALUE
+ For a successful call, the return value depends on the
+ operation:
+
+ F_GETFD Value of flag.
+
+ F_GETFL Value of flags.
+
+ F_GETOWN Value of descriptor owner.
+
+ F_GETSIG Value of signal sent when read or write becomes
+ possible, or zero for traditional SIGIO
+ behaviour.
+
+ All other commands
+ Zero.
+
+ On error, -1 is returned, and errno is set appropriately.
+
+ERRORS
+ EACCES Operation is prohibited by locks held by other
+ processes.
+
+ EAGAIN Operation is prohibited because the file has been
+ memory-mapped by another process.
+
+ EBADF fd is not an open file descriptor.
+
+ EDEADLK It was detected that the specified F_SETLKW comð
+ mand would cause a deadlock.
+
+ EFAULT lock is outside your accessible address space.
+
+ EINTR For F_SETLKW, the command was interrupted by a
+ signal. For F_GETLK and F_SETLK, the command was
+ interrupted by a signal before the lock was
+ checked or acquired. Most likely when locking a
+ remote file (e.g. locking over NFS), but can
+ sometimes happen locally.
+
+ EINVAL For F_DUPFD, arg is negative or is greater than
+ the maximum allowable value. For F_SETSIG, arg
+ is not an allowable signal number.
+
+ EMFILE For F_DUPFD, the process already has the maximum
+ number of file descriptors open.
+
+ ENOLCK Too many segment locks open, lock table is full,
+ or a remote locking protocol failed (e.g. locking
+ over NFS).
+
+ EPERM Attempted to clear the O_APPEND flag on a file
+ that has the append-only attribute set.
+
+typedef long __kernel_off_t;
+typedef int __kernel_pid_t;
+
+struct flock {
+ short l_type;
+ short l_whence;
+ off_t l_start;
+ off_t l_len;
+ pid_t l_pid;
+};
+
+whence:
+--------
+const
+ SEEK_SET = 0; { Seek from beginning of file. }
+ SEEK_CUR = 1; { Seek from current position. }
+ SEEK_END = 2; { Seek from end of file. }
+
+{ Old BSD names for the same constants; just for compatibility. }
+ L_SET = SEEK_SET;
+ L_INCR = SEEK_CUR;
+ L_XTND = SEEK_END;
+*)
+
+
+{$ifdef FPC}
+const
+ F_RDLCK = 0;
+ F_WRLCK = 1;
+ F_UNLCK = 2;
+ F_EXLCK = 4;
+ F_SHLCK = 8;
+
+ LOCK_SH = 1;
+ LOCK_EX = 2;
+ LOCK_NB = 4;
+ LOCK_UN = 8;
+
+ LOCK_MAND = 32;
+ LOCK_READ = 64;
+ LOCK_WRITE = 128;
+ LOCK_RW = 192;
+
+ EACCES = ESysEACCES;
+ EAGAIN = ESysEAGAIN;
+{$endif}
+
+function LockFile(hFile: THandle; dwFileOffsetLow, dwFileOffsetHigh: DWORD; nNumberOfBytesToLockLow, nNumberOfBytesToLockHigh: DWORD): BOOL;
+var
+ FLockInfo: {$ifdef FPC}BaseUnix.FLock{$else}TFLock{$endif};
+ FLastError: Cardinal;
+begin
+ FLockInfo.l_type := F_WRLCK;
+ FLockInfo.l_whence := SEEK_SET;
+ FLockInfo.l_start := dwFileOffsetLow;
+ FLockInfo.l_len := nNumberOfBytesToLockLow;
+ FLockInfo.l_pid := {$ifdef FPC}fpgetpid{$else}getpid{$endif}();
+ Result := {$ifdef FPC}fpfcntl{$else}fcntl{$endif}(hFile, F_SETLK, FLockInfo) <> -1;
+ if not Result then
+ begin
+ FLastError := GetLastError();
+ if (FLastError = EACCES) or (FLastError = EAGAIN) then
+ SetLastError(ERROR_LOCK_VIOLATION)
+ else
+ Result := True; // If errno is ENOLCK or EINVAL
+ end;
+end;
+
+function UnlockFile(hFile: THandle; dwFileOffsetLow, dwFileOffsetHigh: DWORD; nNumberOfBytesToUnlockLow, nNumberOfBytesToUnlockHigh: DWORD): BOOL;
+var
+ FLockInfo: {$ifdef FPC}BaseUnix.FLock{$else}TFLock{$endif};
+begin
+ FLockInfo.l_type := F_UNLCK;
+ FLockInfo.l_whence := SEEK_SET;
+ FLockInfo.l_start := dwFileOffsetLow;
+ FLockInfo.l_len := nNumberOfBytesToUnLockLow;
+ FLockInfo.l_pid := {$ifdef FPC}fpgetpid{$else}getpid{$endif}();
+ Result := {$ifdef FPC}fpfcntl{$else}fcntl{$endif}(hFile, F_SETLK, FLockInfo) <> -1;
+end;
+
+function GetOEMCP: Cardinal;
+begin
+{$ifdef HUNGARIAN}
+ Result := 852;
+{$else}
+ Result := $FFFFFFFF;
+{$endif}
+end;
+
+function GetACP: Cardinal;
+begin
+{$ifdef HUNGARIAN}
+ Result := 1250;
+{$else}
+ Result := 1252;
+{$endif}
+end;
+
+{$ifdef HUNGARIAN}
+
+procedure OemHunHun(AnsiDst: PChar; cchDstLength: DWORD);
+var
+ Count: DWORD;
+begin
+ if Assigned(AnsiDst) and (cchDstLength<>0) then
+ begin
+ for Count:=0 to Pred(cchDstLength) do
+ begin
+ case AnsiDst^ of
+ #160: AnsiDst^:= #225; {á}
+ #143,#181: AnsiDst^:= #193; {Á}
+ #130: AnsiDst^:= #233; {é}
+ #144: AnsiDst^:= #201; {É}
+ #161: AnsiDst^:= #237; {í}
+ #141,#214: AnsiDst^:= #205; {Í}
+ #162: AnsiDst^:= #243; {ó}
+ #149,#224: AnsiDst^:= #211; {Ó}
+ #148: AnsiDst^:= #246; {ö}
+ #153: AnsiDst^:= #214; {Ö}
+ #147,#139: AnsiDst^:= #245; {õ}
+ #167,#138: AnsiDst^:= #213; {Õ}
+ #163: AnsiDst^:= #250; {ú}
+ #151,#233: AnsiDst^:= #218; {Ú}
+ #129: AnsiDst^:= #252; {ü}
+ #154: AnsiDst^:= #220; {Ü}
+ #150,#251: AnsiDst^:= #251; {û}
+ #152,#235: AnsiDst^:= #219; {Û}
+ end;
+ Inc(AnsiDst);
+ end;
+ end;
+end;
+
+procedure AnsiHunHun(AnsiDst: PChar; cchDstLength: DWORD);
+var
+ Count: DWORD;
+begin
+ if Assigned(AnsiDst) and (cchDstLength<>0) then
+ begin
+ for Count:=0 to Pred(cchDstLength) do
+ begin
+ case AnsiDst^ of
+ #225: AnsiDst^:= #160; {á}
+ #193: AnsiDst^:= #181; {Á}
+ #233: AnsiDst^:= #130; {é}
+ #201: AnsiDst^:= #144; {É}
+ #237: AnsiDst^:= #161; {í}
+ #205: AnsiDst^:= #214; {Í}
+ #243: AnsiDst^:= #162; {ó}
+ #211: AnsiDst^:= #224; {Ó}
+ #246: AnsiDst^:= #148; {ö}
+ #214: AnsiDst^:= #153; {Ö}
+ #245: AnsiDst^:= #139; {õ}
+ #213: AnsiDst^:= #138; {Õ}
+ #250: AnsiDst^:= #163; {ú}
+ #218: AnsiDst^:= #233; {Ú}
+ #252: AnsiDst^:= #129; {ü}
+ #220: AnsiDst^:= #154; {Ü}
+ #251: AnsiDst^:= #251; {û}
+ #219: AnsiDst^:= #235; {Û}
+ end;
+ Inc(AnsiDst);
+ end;
+ end;
+end;
+
+{$endif}
+
+function OemToChar(lpszSrc: PChar; lpszDst: PChar): BOOL;
+begin
+ if lpszDst <> lpszSrc then
+ StrCopy(lpszDst, lpszSrc);
+ Result := true;
+end;
+
+function CharToOem(lpszSrc: PChar; lpszDst: PChar): BOOL;
+begin
+ if lpszDst <> lpszSrc then
+ StrCopy(lpszDst, lpszSrc);
+ Result := true;
+end;
+
+function OemToCharBuffA(lpszSrc: PChar; lpszDst: PChar; cchDstLength: DWORD): BOOL;
+begin
+ if lpszDst <> lpszSrc then
+ StrLCopy(lpszDst, lpszSrc, cchDstLength);
+{$ifdef HUNGARIAN}
+ OemHunHun(lpszDst, cchDstLength);
+{$endif}
+ Result := true;
+end;
+
+function CharToOemBuffA(lpszSrc: PChar; lpszDst: PChar; cchDstLength: DWORD): BOOL;
+begin
+ if lpszDst <> lpszSrc then
+ StrLCopy(lpszDst, lpszSrc, cchDstLength);
+{$ifdef HUNGARIAN}
+ AnsiHunHun(lpszDst, cchDstLength);
+{$endif}
+ Result := true;
+end;
+
+function MultiByteToWideChar(CodePage: DWORD; dwFlags: DWORD; const lpMultiByteStr: LPCSTR; cchMultiByte: Integer; lpWideCharStr: LPWSTR; cchWideChar: Integer): Integer;
+var
+ TempA: AnsiString;
+ TempW: WideString;
+begin
+ TempA := String(lpMultiByteStr^);
+ TempW := TempA;
+ Result := Length(TempW);
+ System.Move(TempW, lpWideCharStr^, Result);
+end;
+
+function WideCharToMultiByte(CodePage: DWORD; dwFlags: DWORD; lpWideCharStr: LPWSTR; cchWideChar: Integer; lpMultiByteStr: LPSTR; cchMultiByte: Integer; lpDefaultChar: LPCSTR; lpUsedDefaultChar: PBOOL): Integer;
+var
+ TempA: AnsiString;
+ TempW: WideString;
+begin
+ TempW := WideString(lpWideCharStr^);
+ TempA := TempW;
+ Result := Length(TempA);
+ System.Move(TempA, lpMultiByteStr^, Result);
+end;
+
+function CompareString(Locale: LCID; dwCmpFlags: DWORD; lpString1: PChar; cchCount1: Integer; lpString2: PChar; cchCount2: Integer): Integer;
+begin
+ Result := StrLComp(lpString1, lpString2, cchCount1) + 2;
+ if Result > 2 then Result := 3;
+ if Result < 2 then Result := 1;
+end;
+
+function EnumSystemCodePages(lpCodePageEnumProc: TFNCodepageEnumProc; dwFlags: DWORD): BOOL;
+begin
+ Result := True;
+end;
+
+function EnumSystemLocales(lpLocaleEnumProc: TFNLocaleEnumProc; dwFlags: DWORD): BOOL;
+begin
+ Result := True;
+end;
+
+function GetUserDefaultLCID: LCID;
+begin
+{$WARNING Probably shall be implemented by parsing environment variable LANG}
+ Result := LANG_ENGLISH or (SUBLANG_ENGLISH_UK shl 10);
+end;
+
+{$ifdef FPC}
+
+function GetLastError: Integer;
+begin
+ Result := FpGetErrno;
+end;
+
+procedure SetLastError(Value: Integer);
+begin
+ FpSetErrno(Value);
+end;
+
+{$endif}
diff --git a/packages/fcl-db/src/dbase/dbf_wos2.inc b/packages/fcl-db/src/dbase/dbf_wos2.inc
new file mode 100644
index 0000000000..03d6dca664
--- /dev/null
+++ b/packages/fcl-db/src/dbase/dbf_wos2.inc
@@ -0,0 +1,305 @@
+uses
+ DosCalls, DosCall2;
+
+(*
+NAME
+ fcntl - manipulate file descriptor
+
+SYNOPSIS
+ #include <unistd.h>
+ #include <fcntl.h>
+
+ int fcntl(int fd, int cmd);
+ int fcntl(int fd, int cmd, long arg);
+ int fcntl(int fd, int cmd, struct flock * lock);
+
+DESCRIPTION
+ fcntl performs one of various miscellaneous operations on
+ fd. The operation in question is determined by cmd:
+
+ F_GETLK, F_SETLK and F_SETLKW are used to manage discreð
+ tionary file locks. The third argument lock is a pointer
+ to a struct flock (that may be overwritten by this call).
+
+ F_GETLK
+ Return the flock structure that prevents us from
+ obtaining the lock, or set the l_type field of the
+ lock to F_UNLCK if there is no obstruction.
+
+ F_SETLK
+ The lock is set (when l_type is F_RDLCK or F_WRLCK)
+ or cleared (when it is F_UNLCK). If the lock is
+ held by someone else, this call returns -1 and sets
+ errno to EACCES or EAGAIN.
+
+ F_SETLKW
+ Like F_SETLK, but instead of returning an error we
+ wait for the lock to be released. If a signal that
+ is to be caught is received while fcntl is waiting,
+ it is interrupted and (after the signal handler has
+ returned) returns immediately (with return value -1
+ and errno set to EINTR).
+
+ Using these mechanisms, a program can implement fully
+ asynchronous I/O without using select(2) or poll(2) most
+ of the time.
+
+ The use of O_ASYNC, F_GETOWN, F_SETOWN is specific to BSD
+ and Linux. F_GETSIG and F_SETSIG are Linux-specific.
+ POSIX has asynchronous I/O and the aio_sigevent structure
+ to achieve similar things; these are also available in
+ Linux as part of the GNU C Library (Glibc).
+
+RETURN VALUE
+ For a successful call, the return value depends on the
+ operation:
+
+ F_GETFD Value of flag.
+
+ F_GETFL Value of flags.
+
+ F_GETOWN Value of descriptor owner.
+
+ F_GETSIG Value of signal sent when read or write becomes
+ possible, or zero for traditional SIGIO
+ behaviour.
+
+ All other commands
+ Zero.
+
+ On error, -1 is returned, and errno is set appropriately.
+
+ERRORS
+ EACCES Operation is prohibited by locks held by other
+ processes.
+
+ EAGAIN Operation is prohibited because the file has been
+ memory-mapped by another process.
+
+ EBADF fd is not an open file descriptor.
+
+ EDEADLK It was detected that the specified F_SETLKW comð
+ mand would cause a deadlock.
+
+ EFAULT lock is outside your accessible address space.
+
+ EINTR For F_SETLKW, the command was interrupted by a
+ signal. For F_GETLK and F_SETLK, the command was
+ interrupted by a signal before the lock was
+ checked or acquired. Most likely when locking a
+ remote file (e.g. locking over NFS), but can
+ sometimes happen locally.
+
+ EINVAL For F_DUPFD, arg is negative or is greater than
+ the maximum allowable value. For F_SETSIG, arg
+ is not an allowable signal number.
+
+ EMFILE For F_DUPFD, the process already has the maximum
+ number of file descriptors open.
+
+ ENOLCK Too many segment locks open, lock table is full,
+ or a remote locking protocol failed (e.g. locking
+ over NFS).
+
+ EPERM Attempted to clear the O_APPEND flag on a file
+ that has the append-only attribute set.
+
+typedef long __kernel_off_t;
+typedef int __kernel_pid_t;
+
+struct flock {
+ short l_type;
+ short l_whence;
+ off_t l_start;
+ off_t l_len;
+ pid_t l_pid;
+};
+
+whence:
+--------
+const
+ SEEK_SET = 0; { Seek from beginning of file. }
+ SEEK_CUR = 1; { Seek from current position. }
+ SEEK_END = 2; { Seek from end of file. }
+
+{ Old BSD names for the same constants; just for compatibility. }
+ L_SET = SEEK_SET;
+ L_INCR = SEEK_CUR;
+ L_XTND = SEEK_END;
+*)
+
+(*
+const
+ F_RDLCK = 0;
+ F_WRLCK = 1;
+ F_UNLCK = 2;
+ F_EXLCK = 4;
+ F_SHLCK = 8;
+
+ LOCK_SH = 1;
+ LOCK_EX = 2;
+ LOCK_NB = 4;
+ LOCK_UN = 8;
+
+ LOCK_MAND = 32;
+ LOCK_READ = 64;
+ LOCK_WRITE = 128;
+ LOCK_RW = 192;
+
+ EACCES = ESysEACCES;
+ EAGAIN = ESysEAGAIN;
+*)
+{$PACKRECORDS 1}
+const
+ LastErr: cardinal = 0;
+
+type
+ TQRecL = record
+ L1, L2: longint;
+ end;
+
+ TQRecC = record
+ C1, C2: cardinal;
+ end;
+
+function LockFile (hFile: THandle; dwFileOffsetLow, dwFileOffsetHigh: DWORD;
+ nNumberOfBytesToLockLow, nNumberOfBytesToLockHigh: DWORD): BOOL;
+var
+ FLock, FUnlock: TFileLockL;
+ RC: Cardinal;
+begin
+ FillChar (FUnlock, SizeOf (FUnlock), 0);
+ TQRecC (FLock.Offset).C2 := dwFileOffsetHigh;
+ TQRecC (FLock.Offset).C1 := dwFileOffsetLow;
+ TQRecC (FLock.Range).C2 := nNumberOfBytesToLockHigh;
+ TQRecC (FLock.Range).C1 := nNumberOfBytesToLockLow;
+ RC := DosSetFileLocksL (hFile, FLock, FUnlock, 50, 0);
+ if RC <> 0 then
+ begin
+ LastErr := RC;
+ Result := false;
+ end
+ else
+ Result := true;
+end;
+
+function UnlockFile (hFile: THandle; dwFileOffsetLow, dwFileOffsetHigh: DWORD;
+ nNumberOfBytesToUnlockLow, nNumberOfBytesToUnlockHigh: DWORD): BOOL;
+var
+ FLock, FUnlock: TFileLockL;
+ RC: Cardinal;
+begin
+ FillChar (FLock, SizeOf (FLock), 0);
+ TQRecC (FUnlock.Offset).C2 := dwFileOffsetHigh;
+ TQRecC (FUnlock.Offset).C1 := dwFileOffsetLow;
+ TQRecC (FUnlock.Range).C2 := nNumberOfBytesToUnlockHigh;
+ TQRecC (FUnlock.Range).C1 := nNumberOfBytesToUnlockLow;
+ RC := DosSetFileLocksL (hFile, FLock, FUnlock, 50, 0);
+ if RC <> 0 then
+ begin
+ LastErr := RC;
+ Result := false;
+ end
+ else
+ Result := true;
+end;
+
+function GetOEMCP: Cardinal;
+begin
+ Result := DefaultSystemCodePage;
+end;
+
+function GetACP: Cardinal;
+begin
+ Result := DefaultSystemCodePage;
+end;
+
+function OemToChar(lpszSrc: PChar; lpszDst: PChar): BOOL;
+begin
+ if lpszDst <> lpszSrc then
+ StrCopy(lpszDst, lpszSrc);
+ Result := true;
+end;
+
+function CharToOem(lpszSrc: PChar; lpszDst: PChar): BOOL;
+begin
+ if lpszDst <> lpszSrc then
+ StrCopy(lpszDst, lpszSrc);
+ Result := true;
+end;
+
+function OemToCharBuffA(lpszSrc: PChar; lpszDst: PChar; cchDstLength: DWORD): BOOL;
+begin
+ if lpszDst <> lpszSrc then
+ StrLCopy(lpszDst, lpszSrc, cchDstLength);
+ Result := true;
+end;
+
+function CharToOemBuffA(lpszSrc: PChar; lpszDst: PChar; cchDstLength: DWORD): BOOL;
+begin
+ if lpszDst <> lpszSrc then
+ StrLCopy(lpszDst, lpszSrc, cchDstLength);
+ Result := true;
+end;
+
+function MultiByteToWideChar(CodePage: DWORD; dwFlags: DWORD; const lpMultiByteStr: LPCSTR; cchMultiByte: Integer; lpWideCharStr: LPWSTR; cchWideChar: Integer): Integer;
+var
+ TempA: AnsiString;
+ TempW: WideString;
+begin
+{$WARNING To be rewritten using the UnicodeStringManager functionality!}
+ TempA := String(lpMultiByteStr^);
+ TempW := TempA;
+ Result := Length(TempW);
+ System.Move(TempW, lpWideCharStr^, Result);
+end;
+
+function WideCharToMultiByte(CodePage: DWORD; dwFlags: DWORD; lpWideCharStr: LPWSTR; cchWideChar: Integer; lpMultiByteStr: LPSTR; cchMultiByte: Integer; lpDefaultChar: LPCSTR; lpUsedDefaultChar: PBOOL): Integer;
+var
+ TempA: AnsiString;
+ TempW: WideString;
+begin
+{$WARNING To be rewritten using the UnicodeStringManager functionality!}
+ TempW := WideString(lpWideCharStr^);
+ TempA := TempW;
+ Result := Length(TempA);
+ System.Move(TempA, lpMultiByteStr^, Result);
+end;
+
+function CompareString(Locale: LCID; dwCmpFlags: DWORD; lpString1: PChar; cchCount1: Integer; lpString2: PChar; cchCount2: Integer): Integer;
+begin
+{$WARNING To be rewritten using the UnicodeStringManager functionality!}
+ Result := StrLComp(lpString1, lpString2, cchCount1) + 2;
+ if Result > 2 then Result := 3;
+ if Result < 2 then Result := 1;
+end;
+
+function EnumSystemCodePages(lpCodePageEnumProc: TFNCodepageEnumProc; dwFlags: DWORD): BOOL;
+begin
+{$WARNING To be rewritten using the LIBUNI.DLL functionality!}
+ Result := True;
+end;
+
+function EnumSystemLocales(lpLocaleEnumProc: TFNLocaleEnumProc; dwFlags: DWORD): BOOL;
+begin
+{$WARNING To be rewritten using the LIBUNI.DLL functionality!}
+(* http://compgroups.net/comp.os.os2.programmer.misc/how-to-obtain-current-locale-lang/2524034 *)
+ Result := True;
+end;
+
+function GetUserDefaultLCID: LCID;
+begin
+{$WARNING To be rewritten using the LIBUNI.DLL functionality!}
+(* http://compgroups.net/comp.os.os2.programmer.misc/how-to-obtain-current-locale-lang/2524034 *)
+ Result := LANG_ENGLISH or (SUBLANG_ENGLISH_UK shl 10);
+end;
+
+function GetLastError: Integer;
+begin
+ Result := Integer (LastErr);
+end;
+
+procedure SetLastError (Value: Integer);
+begin
+ LastErr := cardinal (Value);
+end;
diff --git a/packages/fcl-db/src/dbase/dbf_wtil.pas b/packages/fcl-db/src/dbase/dbf_wtil.pas
index df612dbdcd..9b1fc32cf3 100644
--- a/packages/fcl-db/src/dbase/dbf_wtil.pas
+++ b/packages/fcl-db/src/dbase/dbf_wtil.pas
@@ -6,11 +6,15 @@ interface
{$ifndef WINDOWS}
uses
-{$ifdef FPC}
+ {$IFDEF OS2}
+ OS2Def,
+ {$ELSE OS2}
+ {$ifdef FPC}
BaseUnix,
-{$else}
+ {$else}
Libc,
-{$endif}
+ {$endif}
+ {$ENDIF OS2}
Types, SysUtils, Classes;
const
@@ -200,11 +204,15 @@ const
(*
Error const of File Locking
*)
-{$ifdef FPC}
+{$IFDEF OS2}
+ ERROR_LOCK_VIOLATION = OS2Def.ERROR_LOCK_VIOLATION;
+{$ELSE OS2}
+ {$ifdef FPC}
ERROR_LOCK_VIOLATION = ESysEACCES;
-{$else}
+ {$else}
ERROR_LOCK_VIOLATION = EACCES;
-{$endif}
+ {$endif}
+{$ENDIF OS2}
{ MBCS and Unicode Translation Flags. }
MB_PRECOMPOSED = 1; { use precomposed chars }
@@ -271,195 +279,13 @@ procedure SetLastError(Value: Integer);
implementation
{$ifndef WINDOWS}
-{$ifdef FPC}
-uses
- unix;
-{$endif}
-
-(*
-NAME
- fcntl - manipulate file descriptor
-
-SYNOPSIS
- #include <unistd.h>
- #include <fcntl.h>
-
- int fcntl(int fd, int cmd);
- int fcntl(int fd, int cmd, long arg);
- int fcntl(int fd, int cmd, struct flock * lock);
-
-DESCRIPTION
- fcntl performs one of various miscellaneous operations on
- fd. The operation in question is determined by cmd:
-
- F_GETLK, F_SETLK and F_SETLKW are used to manage discreð
- tionary file locks. The third argument lock is a pointer
- to a struct flock (that may be overwritten by this call).
-
- F_GETLK
- Return the flock structure that prevents us from
- obtaining the lock, or set the l_type field of the
- lock to F_UNLCK if there is no obstruction.
-
- F_SETLK
- The lock is set (when l_type is F_RDLCK or F_WRLCK)
- or cleared (when it is F_UNLCK). If the lock is
- held by someone else, this call returns -1 and sets
- errno to EACCES or EAGAIN.
-
- F_SETLKW
- Like F_SETLK, but instead of returning an error we
- wait for the lock to be released. If a signal that
- is to be caught is received while fcntl is waiting,
- it is interrupted and (after the signal handler has
- returned) returns immediately (with return value -1
- and errno set to EINTR).
-
- Using these mechanisms, a program can implement fully
- asynchronous I/O without using select(2) or poll(2) most
- of the time.
-
- The use of O_ASYNC, F_GETOWN, F_SETOWN is specific to BSD
- and Linux. F_GETSIG and F_SETSIG are Linux-specific.
- POSIX has asynchronous I/O and the aio_sigevent structure
- to achieve similar things; these are also available in
- Linux as part of the GNU C Library (Glibc).
-
-RETURN VALUE
- For a successful call, the return value depends on the
- operation:
-
- F_GETFD Value of flag.
-
- F_GETFL Value of flags.
-
- F_GETOWN Value of descriptor owner.
-
- F_GETSIG Value of signal sent when read or write becomes
- possible, or zero for traditional SIGIO
- behaviour.
-
- All other commands
- Zero.
-
- On error, -1 is returned, and errno is set appropriately.
-
-ERRORS
- EACCES Operation is prohibited by locks held by other
- processes.
-
- EAGAIN Operation is prohibited because the file has been
- memory-mapped by another process.
-
- EBADF fd is not an open file descriptor.
-
- EDEADLK It was detected that the specified F_SETLKW comð
- mand would cause a deadlock.
-
- EFAULT lock is outside your accessible address space.
-
- EINTR For F_SETLKW, the command was interrupted by a
- signal. For F_GETLK and F_SETLK, the command was
- interrupted by a signal before the lock was
- checked or acquired. Most likely when locking a
- remote file (e.g. locking over NFS), but can
- sometimes happen locally.
-
- EINVAL For F_DUPFD, arg is negative or is greater than
- the maximum allowable value. For F_SETSIG, arg
- is not an allowable signal number.
-
- EMFILE For F_DUPFD, the process already has the maximum
- number of file descriptors open.
-
- ENOLCK Too many segment locks open, lock table is full,
- or a remote locking protocol failed (e.g. locking
- over NFS).
-
- EPERM Attempted to clear the O_APPEND flag on a file
- that has the append-only attribute set.
+ {$IFDEF OS2}
+ {$I dbf_wos2.inc}
+ {$ELSE OS2}
+ {$I dbf_wnix.inc}
+ {$ENDIF OS2}
-typedef long __kernel_off_t;
-typedef int __kernel_pid_t;
-
-struct flock {
- short l_type;
- short l_whence;
- off_t l_start;
- off_t l_len;
- pid_t l_pid;
-};
-
-whence:
---------
-const
- SEEK_SET = 0; { Seek from beginning of file. }
- SEEK_CUR = 1; { Seek from current position. }
- SEEK_END = 2; { Seek from end of file. }
-
-{ Old BSD names for the same constants; just for compatibility. }
- L_SET = SEEK_SET;
- L_INCR = SEEK_CUR;
- L_XTND = SEEK_END;
-*)
-
-
-{$ifdef FPC}
-const
- F_RDLCK = 0;
- F_WRLCK = 1;
- F_UNLCK = 2;
- F_EXLCK = 4;
- F_SHLCK = 8;
-
- LOCK_SH = 1;
- LOCK_EX = 2;
- LOCK_NB = 4;
- LOCK_UN = 8;
-
- LOCK_MAND = 32;
- LOCK_READ = 64;
- LOCK_WRITE = 128;
- LOCK_RW = 192;
-
- EACCES = ESysEACCES;
- EAGAIN = ESysEAGAIN;
-{$endif}
-
-function LockFile(hFile: THandle; dwFileOffsetLow, dwFileOffsetHigh: DWORD; nNumberOfBytesToLockLow, nNumberOfBytesToLockHigh: DWORD): BOOL;
-var
- FLockInfo: {$ifdef FPC}BaseUnix.FLock{$else}TFLock{$endif};
- FLastError: Cardinal;
-begin
- FLockInfo.l_type := F_WRLCK;
- FLockInfo.l_whence := SEEK_SET;
- FLockInfo.l_start := dwFileOffsetLow;
- FLockInfo.l_len := nNumberOfBytesToLockLow;
- FLockInfo.l_pid := {$ifdef FPC}fpgetpid{$else}getpid{$endif}();
- Result := {$ifdef FPC}fpfcntl{$else}fcntl{$endif}(hFile, F_SETLK, FLockInfo) <> -1;
- if not Result then
- begin
- FLastError := GetLastError();
- if (FLastError = EACCES) or (FLastError = EAGAIN) then
- SetLastError(ERROR_LOCK_VIOLATION)
- else
- Result := True; // If errno is ENOLCK or EINVAL
- end;
-end;
-
-function UnlockFile(hFile: THandle; dwFileOffsetLow, dwFileOffsetHigh: DWORD; nNumberOfBytesToUnlockLow, nNumberOfBytesToUnlockHigh: DWORD): BOOL;
-var
- FLockInfo: {$ifdef FPC}BaseUnix.FLock{$else}TFLock{$endif};
-begin
- FLockInfo.l_type := F_UNLCK;
- FLockInfo.l_whence := SEEK_SET;
- FLockInfo.l_start := dwFileOffsetLow;
- FLockInfo.l_len := nNumberOfBytesToUnLockLow;
- FLockInfo.l_pid := {$ifdef FPC}fpgetpid{$else}getpid{$endif}();
- Result := {$ifdef FPC}fpfcntl{$else}fcntl{$endif}(hFile, F_SETLK, FLockInfo) <> -1;
-end;
-
-procedure DateTimeToSystemTime(const DateTime: TDateTime; var SystemTime: TSystemTime);
+procedure DateTimeToSystemTime(const DateTime: System.TDateTime; var SystemTime: TSystemTime);
begin
with SystemTime do
begin
@@ -469,7 +295,7 @@ begin
end;
end;
-function SystemTimeToDateTime(const SystemTime: TSystemTime): TDateTime;
+function SystemTimeToDateTime(const SystemTime: TSystemTime): System.TDateTime;
begin
with SystemTime do
begin
@@ -486,185 +312,6 @@ begin
DateTimeToSystemTime(NOW, lpSystemTime);
end;
-function GetOEMCP: Cardinal;
-begin
-{$ifdef HUNGARIAN}
- Result := 852;
-{$else}
- Result := $FFFFFFFF;
-{$endif}
-end;
-
-function GetACP: Cardinal;
-begin
-{$ifdef HUNGARIAN}
- Result := 1250;
-{$else}
- Result := 1252;
-{$endif}
-end;
-
-{$ifdef HUNGARIAN}
-
-procedure OemHunHun(AnsiDst: PChar; cchDstLength: DWORD);
-var
- Count: DWORD;
-begin
- if Assigned(AnsiDst) and (cchDstLength<>0) then
- begin
- for Count:=0 to Pred(cchDstLength) do
- begin
- case AnsiDst^ of
- #160: AnsiDst^:= #225; {á}
- #143,#181: AnsiDst^:= #193; {Á}
- #130: AnsiDst^:= #233; {é}
- #144: AnsiDst^:= #201; {É}
- #161: AnsiDst^:= #237; {í}
- #141,#214: AnsiDst^:= #205; {Í}
- #162: AnsiDst^:= #243; {ó}
- #149,#224: AnsiDst^:= #211; {Ó}
- #148: AnsiDst^:= #246; {ö}
- #153: AnsiDst^:= #214; {Ö}
- #147,#139: AnsiDst^:= #245; {õ}
- #167,#138: AnsiDst^:= #213; {Õ}
- #163: AnsiDst^:= #250; {ú}
- #151,#233: AnsiDst^:= #218; {Ú}
- #129: AnsiDst^:= #252; {ü}
- #154: AnsiDst^:= #220; {Ü}
- #150,#251: AnsiDst^:= #251; {û}
- #152,#235: AnsiDst^:= #219; {Û}
- end;
- Inc(AnsiDst);
- end;
- end;
-end;
-
-procedure AnsiHunHun(AnsiDst: PChar; cchDstLength: DWORD);
-var
- Count: DWORD;
-begin
- if Assigned(AnsiDst) and (cchDstLength<>0) then
- begin
- for Count:=0 to Pred(cchDstLength) do
- begin
- case AnsiDst^ of
- #225: AnsiDst^:= #160; {á}
- #193: AnsiDst^:= #181; {Á}
- #233: AnsiDst^:= #130; {é}
- #201: AnsiDst^:= #144; {É}
- #237: AnsiDst^:= #161; {í}
- #205: AnsiDst^:= #214; {Í}
- #243: AnsiDst^:= #162; {ó}
- #211: AnsiDst^:= #224; {Ó}
- #246: AnsiDst^:= #148; {ö}
- #214: AnsiDst^:= #153; {Ö}
- #245: AnsiDst^:= #139; {õ}
- #213: AnsiDst^:= #138; {Õ}
- #250: AnsiDst^:= #163; {ú}
- #218: AnsiDst^:= #233; {Ú}
- #252: AnsiDst^:= #129; {ü}
- #220: AnsiDst^:= #154; {Ü}
- #251: AnsiDst^:= #251; {û}
- #219: AnsiDst^:= #235; {Û}
- end;
- Inc(AnsiDst);
- end;
- end;
-end;
-
-{$endif}
-
-function OemToChar(lpszSrc: PChar; lpszDst: PChar): BOOL;
-begin
- if lpszDst <> lpszSrc then
- StrCopy(lpszDst, lpszSrc);
- Result := true;
-end;
-
-function CharToOem(lpszSrc: PChar; lpszDst: PChar): BOOL;
-begin
- if lpszDst <> lpszSrc then
- StrCopy(lpszDst, lpszSrc);
- Result := true;
-end;
-
-function OemToCharBuffA(lpszSrc: PChar; lpszDst: PChar; cchDstLength: DWORD): BOOL;
-begin
- if lpszDst <> lpszSrc then
- StrLCopy(lpszDst, lpszSrc, cchDstLength);
-{$ifdef HUNGARIAN}
- OemHunHun(lpszDst, cchDstLength);
-{$endif}
- Result := true;
-end;
-
-function CharToOemBuffA(lpszSrc: PChar; lpszDst: PChar; cchDstLength: DWORD): BOOL;
-begin
- if lpszDst <> lpszSrc then
- StrLCopy(lpszDst, lpszSrc, cchDstLength);
-{$ifdef HUNGARIAN}
- AnsiHunHun(lpszDst, cchDstLength);
-{$endif}
- Result := true;
-end;
-
-function MultiByteToWideChar(CodePage: DWORD; dwFlags: DWORD; const lpMultiByteStr: LPCSTR; cchMultiByte: Integer; lpWideCharStr: LPWSTR; cchWideChar: Integer): Integer;
-var
- TempA: AnsiString;
- TempW: WideString;
-begin
- TempA := String(lpMultiByteStr^);
- TempW := TempA;
- Result := Length(TempW);
- System.Move(TempW, lpWideCharStr^, Result);
-end;
-
-function WideCharToMultiByte(CodePage: DWORD; dwFlags: DWORD; lpWideCharStr: LPWSTR; cchWideChar: Integer; lpMultiByteStr: LPSTR; cchMultiByte: Integer; lpDefaultChar: LPCSTR; lpUsedDefaultChar: PBOOL): Integer;
-var
- TempA: AnsiString;
- TempW: WideString;
-begin
- TempW := WideString(lpWideCharStr^);
- TempA := TempW;
- Result := Length(TempA);
- System.Move(TempA, lpMultiByteStr^, Result);
-end;
-
-function CompareString(Locale: LCID; dwCmpFlags: DWORD; lpString1: PChar; cchCount1: Integer; lpString2: PChar; cchCount2: Integer): Integer;
-begin
- Result := StrLComp(lpString1, lpString2, cchCount1) + 2;
- if Result > 2 then Result := 3;
- if Result < 2 then Result := 1;
-end;
-
-function EnumSystemCodePages(lpCodePageEnumProc: TFNCodepageEnumProc; dwFlags: DWORD): BOOL;
-begin
- Result := True;
-end;
-
-function EnumSystemLocales(lpLocaleEnumProc: TFNLocaleEnumProc; dwFlags: DWORD): BOOL;
-begin
- Result := True;
-end;
-
-function GetUserDefaultLCID: LCID;
-begin
- Result := LANG_ENGLISH or (SUBLANG_ENGLISH_UK shl 10);
-end;
-
-{$ifdef FPC}
-
-function GetLastError: Integer;
-begin
- Result := FpGetErrno;
-end;
-
-procedure SetLastError(Value: Integer);
-begin
- FpSetErrno(Value);
-end;
-
-{$endif}
{$endif}
end.
diff --git a/packages/fcl-db/src/dbase/fpmake.inc b/packages/fcl-db/src/dbase/fpmake.inc
index fc7955a615..9ffb2ebb5e 100644
--- a/packages/fcl-db/src/dbase/fpmake.inc
+++ b/packages/fcl-db/src/dbase/fpmake.inc
@@ -5,11 +5,11 @@
{ DBase, only for I386}
Targets.ResetDefaults;
Targets.DefaultCPU:=[i386];
-Targets.DefaultOS:=[linux,win32,freebsd];
+Targets.DefaultOS:=[linux,win32,freebsd,os2,emx];
Targets.DefaultDir:='db/dbase';
T:=Targets.AddUnit('dbf');
T:=Targets.Addexampleunit('testdbf');
-If (Defaults.CPU=i386) and (Defaults.OS in [linux,win32,freebsd]) then
+If (Defaults.CPU=i386) and (Defaults.OS in [linux,win32,freebsd,os2,emx]) then
begin
{ Install files. }
InstallFiles.add('dbf_common.o');
diff --git a/packages/fcl-db/src/dbase/testdbf.pp b/packages/fcl-db/src/dbase/testdbf.pp
index 61e100266f..87cf86a315 100644
--- a/packages/fcl-db/src/dbase/testdbf.pp
+++ b/packages/fcl-db/src/dbase/testdbf.pp
@@ -15,6 +15,7 @@ begin
Assign(F,FN);
Rewrite(F);
// SetTextBuf(F,Buf);
+ Count := 0;
With TDBF.Create(Nil) do
begin
TableName:=TN;
diff --git a/packages/fcl-db/src/export/Makefile b/packages/fcl-db/src/export/Makefile
index ce34d23fae..49c50c83a5 100644
--- a/packages/fcl-db/src/export/Makefile
+++ b/packages/fcl-db/src/export/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
endif
@@ -612,6 +627,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
endif
@@ -699,6 +717,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
endif
@@ -753,6 +774,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_RSTS+=fpdbexport fpcsvexport fpfixedexport fpsqlexport fpsimplexmlexport fpsimplejsonexport fpdbfexport fptexexport fprtfexport fpxmlxsdexport fpstdexports
endif
@@ -835,6 +859,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -922,6 +949,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -976,6 +1006,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2h
endif
@@ -1230,6 +1263,12 @@ 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=
@@ -1275,6 +1314,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1857,6 +1901,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2147,6 +2201,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2327,6 +2391,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2784,7 +2858,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2814,17 +2888,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/json/Makefile b/packages/fcl-db/src/json/Makefile
index 19d141d63b..3e3eadd776 100644
--- a/packages/fcl-db/src/json/Makefile
+++ b/packages/fcl-db/src/json/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=fpjsondataset
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=fpjsondataset
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=fpjsondataset
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=fpjsondataset
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=fpjsondataset
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=fpjsondataset
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=fpjsondataset
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=fpjsondataset
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=fpjsondataset
endif
@@ -786,6 +801,12 @@ 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=
@@ -831,6 +852,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1413,6 +1439,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-JSON=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1703,6 +1739,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-JSON=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1883,6 +1929,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-JSON=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2340,7 +2396,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2370,17 +2426,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/memds/Makefile b/packages/fcl-db/src/memds/Makefile
index cc5e634e7e..c7abb84727 100644
--- a/packages/fcl-db/src/memds/Makefile
+++ b/packages/fcl-db/src/memds/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=memds
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=memds
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=memds
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=memds
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=memds
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=memds
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=memds
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=memds
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=memds
endif
@@ -612,6 +627,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=memds
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=memds
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=memds
endif
@@ -699,6 +717,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=memds
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=memds
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=memds
endif
@@ -753,6 +774,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_RSTS+=memds
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_RSTS+=memds
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_RSTS+=memds
endif
@@ -834,6 +858,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_EXAMPLES+=testpop testopen testld testcp
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_EXAMPLES+=testpop testopen testld testcp
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_EXAMPLES+=testpop testopen testld testcp
endif
@@ -921,6 +948,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_EXAMPLES+=testpop testopen testld testcp
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_EXAMPLES+=testpop testopen testld testcp
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_EXAMPLES+=testpop testopen testld testcp
endif
@@ -975,6 +1005,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_EXAMPLES+=testpop testopen testld testcp
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_EXAMPLES+=testpop testopen testld testcp
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_EXAMPLES+=testpop testopen testld testcp
endif
@@ -1230,6 +1263,12 @@ 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=
@@ -1275,6 +1314,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1834,6 +1878,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2095,6 +2148,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2257,6 +2319,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2672,7 +2743,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2702,17 +2773,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/paradox/Makefile b/packages/fcl-db/src/paradox/Makefile
index 65487e0d35..7befae15e8 100644
--- a/packages/fcl-db/src/paradox/Makefile
+++ b/packages/fcl-db/src/paradox/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=paradox
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=paradox
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=paradox
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=paradox
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=paradox
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=paradox
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=paradox
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=paradox
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=paradox
endif
@@ -612,6 +627,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=paradox
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=paradox
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=paradox
endif
@@ -699,6 +717,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=paradox
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=paradox
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=paradox
endif
@@ -753,6 +774,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_RSTS+=paradox
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_RSTS+=paradox
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_RSTS+=paradox
endif
@@ -1008,6 +1032,12 @@ 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=
@@ -1053,6 +1083,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1635,6 +1670,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_PXLIB=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_PXLIB=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1925,6 +1970,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_PXLIB=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_PXLIB=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2105,6 +2160,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_PXLIB=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_PXLIB=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2562,7 +2627,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2592,17 +2657,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/sdf/Makefile b/packages/fcl-db/src/sdf/Makefile
index 0d91b4501c..25e35807bf 100644
--- a/packages/fcl-db/src/sdf/Makefile
+++ b/packages/fcl-db/src/sdf/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=sdfdata
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=sdfdata
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=sdfdata
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=sdfdata
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=sdfdata
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=sdfdata
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=sdfdata
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=sdfdata
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=sdfdata
endif
@@ -612,6 +627,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_EXAMPLES+=testsdf testfix
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_EXAMPLES+=testsdf testfix
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_EXAMPLES+=testsdf testfix
endif
@@ -699,6 +717,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_EXAMPLES+=testsdf testfix
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_EXAMPLES+=testsdf testfix
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_EXAMPLES+=testsdf testfix
endif
@@ -753,6 +774,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_EXAMPLES+=testsdf testfix
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_EXAMPLES+=testsdf testfix
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_EXAMPLES+=testsdf testfix
endif
@@ -1008,6 +1032,12 @@ 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=
@@ -1053,6 +1083,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1612,6 +1647,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1873,6 +1917,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2035,6 +2088,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2450,7 +2512,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2480,17 +2542,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/sql/Makefile b/packages/fcl-db/src/sql/Makefile
index 5adfb0b946..a3d0b49354 100644
--- a/packages/fcl-db/src/sql/Makefile
+++ b/packages/fcl-db/src/sql/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=fpsqltree fpsqlscanner fpsqlparser
endif
@@ -612,6 +627,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser
endif
@@ -699,6 +717,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser
endif
@@ -753,6 +774,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_RSTS+=fpsqltree fpsqlscanner fpsqlparser
endif
@@ -835,6 +859,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -922,6 +949,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -976,6 +1006,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2h
endif
@@ -1057,6 +1090,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_UNITDIR+=../dbase
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_UNITDIR+=../dbase
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_UNITDIR+=../dbase
endif
@@ -1144,6 +1180,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_UNITDIR+=../dbase
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_UNITDIR+=../dbase
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_UNITDIR+=../dbase
endif
@@ -1198,6 +1237,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_UNITDIR+=../dbase
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_UNITDIR+=../dbase
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_UNITDIR+=../dbase
endif
@@ -1452,6 +1494,12 @@ 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=
@@ -1497,6 +1545,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2056,6 +2109,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2317,6 +2379,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2479,6 +2550,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2894,7 +2974,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2924,17 +3004,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/sqldb/Makefile b/packages/fcl-db/src/sqldb/Makefile
index ea01960aaa..d3198ee707 100644
--- a/packages/fcl-db/src/sqldb/Makefile
+++ b/packages/fcl-db/src/sqldb/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -492,6 +498,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=sqldb
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=sqldb
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=sqldb
endif
@@ -579,6 +588,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=sqldb
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=sqldb
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=sqldb
endif
@@ -633,6 +645,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=sqldb
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=sqldb
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=sqldb
endif
@@ -714,6 +729,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=sqldb
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=sqldb
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=sqldb
endif
@@ -801,6 +819,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=sqldb
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=sqldb
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=sqldb
endif
@@ -855,6 +876,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_RSTS+=sqldb
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_RSTS+=sqldb
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_RSTS+=sqldb
endif
@@ -937,6 +961,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2
endif
@@ -1024,6 +1051,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2
endif
@@ -1078,6 +1108,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2
endif
@@ -1332,6 +1365,12 @@ 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=
@@ -1377,6 +1416,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1996,6 +2040,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=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
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2364,6 +2417,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=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
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2585,6 +2647,15 @@ REQUIRE_PACKAGES_ORACLE=1
REQUIRE_PACKAGES_SQLITE=1
REQUIRE_PACKAGES_DBLIB=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
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -3266,7 +3337,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -3296,17 +3367,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/sqldb/interbase/Makefile b/packages/fcl-db/src/sqldb/interbase/Makefile
index 110226eb96..67c03487d6 100644
--- a/packages/fcl-db/src/sqldb/interbase/Makefile
+++ b/packages/fcl-db/src/sqldb/interbase/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=ibconnection fbadmin fbeventmonitor
endif
@@ -613,6 +628,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2
endif
@@ -700,6 +718,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2
endif
@@ -754,6 +775,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2
endif
@@ -1008,6 +1032,12 @@ 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=
@@ -1053,6 +1083,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1635,6 +1670,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_IBASE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_IBASE=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1925,6 +1970,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_IBASE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_IBASE=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2105,6 +2160,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_IBASE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_IBASE=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2562,7 +2627,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2592,17 +2657,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/sqldb/interbase/fbadmin.pp b/packages/fcl-db/src/sqldb/interbase/fbadmin.pp
index 77d8861b96..f510ced77c 100644
--- a/packages/fcl-db/src/sqldb/interbase/fbadmin.pp
+++ b/packages/fcl-db/src/sqldb/interbase/fbadmin.pp
@@ -203,17 +203,11 @@ end;
procedure TFBAdmin.IBRaiseError(GDSErrorCode: Longint; const msg: string;
const args: array of const);
-var
- E:EIBDatabaseError;
begin
- FErrorMsg:=format(msg,args);
+ FErrorMsg:=Format(msg,args);
FErrorCode:=GDSErrorCode;
if FUseExceptions then
- begin
- E := EIBDatabaseError.Create(FErrorMsg);
- E.GDSErrorCode := GDSErrorCode;
- Raise E;
- end;
+ raise EIBDatabaseError.CreateFmt(msg,args,nil,GDSErrorCode,'');
end;
function TFBAdmin.IBSPBParamSerialize(isccode: byte; value: string): string;
@@ -391,7 +385,6 @@ end;
function TFBAdmin.Connect: boolean;
var
- E:EIBDatabaseError;
Service:string;
spb:string;
begin
@@ -400,11 +393,7 @@ begin
result:=InitialiseIBase60<>0;
{$EndIf}
if FSvcHandle<>FB_API_NULLHANDLE then
- begin
- E := EIBDatabaseError.CreateFmt(SErrConnected,[self.Name]);
- E.GDSErrorCode := 0;
- Raise E;
- end;
+ raise EIBDatabaseError.CreateFmt(SErrConnected,[Self.Name],nil,0,'');
Service:='service_mgr';
case FProtocol of
IBSPTCPIP:if FPort=3050 then
diff --git a/packages/fcl-db/src/sqldb/interbase/fpmake.inc b/packages/fcl-db/src/sqldb/interbase/fpmake.inc
index 4b0d627300..eb7180f23b 100644
--- a/packages/fcl-db/src/sqldb/interbase/fpmake.inc
+++ b/packages/fcl-db/src/sqldb/interbase/fpmake.inc
@@ -6,7 +6,7 @@
Targets.ResetDefaults;
Targets.DefaultDir:='db/sqldb/interbase';
{ Drivers only for the following OSes }
-Targets.DefaultOS:=[win32,openbsd,netbsd,freebsd,darwin,linux,haiku];
+Targets.DefaultOS:=[win32,openbsd,netbsd,freebsd,darwin,linux,haiku,dragonfly];
T:=Targets.AddUnit('ibconnection');
T.ResourceStrings:=True;
T:=Targets.AddUnit('fbadmin');
diff --git a/packages/fcl-db/src/sqldb/interbase/ibconnection.pp b/packages/fcl-db/src/sqldb/interbase/ibconnection.pp
index 5c189af43e..b9537f9acb 100644
--- a/packages/fcl-db/src/sqldb/interbase/ibconnection.pp
+++ b/packages/fcl-db/src/sqldb/interbase/ibconnection.pp
@@ -26,9 +26,9 @@ type
ServerVersionString : string; //Complete version string, including name, platform
end;
- EIBDatabaseError = class(EDatabaseError)
+ EIBDatabaseError = class(ESQLDatabaseError)
public
- GDSErrorCode : Longint;
+ property GDSErrorCode: integer read ErrorCode; deprecated 'Please use ErrorCode instead of GDSErrorCode'; // Nov 2014
end;
{ TIBCursor }
@@ -152,21 +152,25 @@ const
procedure TIBConnection.CheckError(ProcName : string; Status : PISC_STATUS);
var
- buf : array [0..1023] of char;
- Msg : string;
- E : EIBDatabaseError;
- Err : longint;
-
+ ErrorCode : longint;
+ Msg, SQLState : string;
+ Buf : array [0..1023] of char;
+
begin
if ((Status[0] = 1) and (Status[1] <> 0)) then
begin
- Err := Status[1];
- msg := '';
+ ErrorCode := Status[1];
+{$IFDEF LinkDynamically}
+ if assigned(fb_sqlstate) then // >= Firebird 2.5
+ begin
+ fb_sqlstate(Buf, Status);
+ SQLState := StrPas(Buf);
+ end;
+{$ENDIF}
+ Msg := '';
while isc_interprete(Buf, @Status) > 0 do
- Msg := Msg + LineEnding +' -' + StrPas(Buf);
- E := EIBDatabaseError.CreateFmt('%s : %s : %s',[self.Name,ProcName,Msg]);
- E.GDSErrorCode := Err;
- Raise E;
+ Msg := Msg + LineEnding + ' -' + StrPas(Buf);
+ raise EIBDatabaseError.CreateFmt('%s : %s', [ProcName,Msg], Self, ErrorCode, SQLState);
end;
end;
@@ -354,6 +358,13 @@ begin
CheckError('Close', FStatus);
{$IfDef LinkDynamically}
ReleaseIBase60;
+{$ELSE}
+ // Shutdown embedded subsystem with timeout 300ms (Firebird 2.5+)
+ // Required before unloading library; has no effect on non-embedded client
+ if (pointer(fb_shutdown)<>nil) and (fb_shutdown(300,1)<>0) then
+ begin
+ //todo: log error; still try to unload library below as the timeout may have been insufficient
+ end;
{$EndIf}
end;
@@ -595,7 +606,7 @@ begin
TrLen := SQLLen;
end;
SQL_TYPE_DATE :
- TrType := ftDate;
+ TrType := ftDate;
SQL_TYPE_TIME :
TrType := ftTime;
SQL_TIMESTAMP :
@@ -608,9 +619,9 @@ begin
SQL_BLOB :
begin
if SQLSubType = isc_blob_text then
- TrType := ftMemo
+ TrType := ftMemo
else
- TrType := ftBlob;
+ TrType := ftBlob;
TrLen := SQLLen;
end;
SQL_SHORT :
@@ -988,23 +999,35 @@ begin
VSQLVar^.SQLInd^ := 0;
case (VSQLVar^.sqltype and not 1) of
+ SQL_SHORT, SQL_BOOLEAN_INTERBASE :
+ begin
+ if VSQLVar^.sqlscale = 0 then
+ si := AParams[ParNr].AsSmallint
+ else
+ si := Round(AParams[ParNr].AsCurrency * IntPower10(-VSQLVar^.sqlscale));
+ i := si;
+ Move(i, VSQLVar^.SQLData^, VSQLVar^.SQLLen);
+ end;
SQL_LONG :
begin
if VSQLVar^.sqlscale = 0 then
i := AParams[ParNr].AsInteger
else
- i := Round(AParams[ParNr].AsCurrency * IntPower10(-VSQLVar^.sqlscale));
+ i := Round(AParams[ParNr].AsFloat * IntPower10(-VSQLVar^.sqlscale)); //*any number of digits
Move(i, VSQLVar^.SQLData^, VSQLVar^.SQLLen);
end;
- SQL_SHORT, SQL_BOOLEAN_INTERBASE :
+ SQL_INT64:
begin
if VSQLVar^.sqlscale = 0 then
- si := AParams[ParNr].AsSmallint
+ li := AParams[ParNr].AsLargeInt
+ else if AParams[ParNr].DataType = ftFMTBcd then
+ li := AParams[ParNr].AsFMTBCD * IntPower10(-VSQLVar^.sqlscale)
else
- si := Round(AParams[ParNr].AsCurrency * IntPower10(-VSQLVar^.sqlscale));
- i := si;
- Move(i, VSQLVar^.SQLData^, VSQLVar^.SQLLen);
+ li := Round(AParams[ParNr].AsCurrency * IntPower10(-VSQLVar^.sqlscale));
+ Move(li, VSQLVar^.SQLData^, VSQLVar^.SQLLen);
end;
+ SQL_DOUBLE, SQL_FLOAT:
+ SetFloat(VSQLVar^.SQLData, AParams[ParNr].AsFloat, VSQLVar^.SQLLen);
SQL_BLOB :
SetBlobParam;
SQL_VARYING, SQL_TEXT :
@@ -1045,18 +1068,6 @@ begin
end;
SQL_TYPE_DATE, SQL_TYPE_TIME, SQL_TIMESTAMP :
SetDateTime(VSQLVar^.SQLData, AParams[ParNr].AsDateTime, VSQLVar^.SQLType);
- SQL_INT64:
- begin
- if VSQLVar^.sqlscale = 0 then
- li := AParams[ParNr].AsLargeInt
- else if AParams[ParNr].DataType = ftFMTBcd then
- li := AParams[ParNr].AsFMTBCD * IntPower10(-VSQLVar^.sqlscale)
- else
- li := Round(AParams[ParNr].AsCurrency * IntPower10(-VSQLVar^.sqlscale));
- Move(li, VSQLVar^.SQLData^, VSQLVar^.SQLLen);
- end;
- SQL_DOUBLE, SQL_FLOAT:
- SetFloat(VSQLVar^.SQLData, AParams[ParNr].AsFloat, VSQLVar^.SQLLen);
SQL_BOOLEAN_FIREBIRD:
PByte(VSQLVar^.SQLData)^ := Byte(AParams[ParNr].AsBoolean);
else
@@ -1607,29 +1618,41 @@ end;
class function TIBConnectionDef.DefaultLibraryName: String;
begin
+{$IFDEF LinkDynamically}
If UseEmbeddedFirebird then
Result:=fbembedlib
else
- Result:=fbclib
+ Result:=fbclib;
+{$ELSE}
+ Result:='';
+{$ENDIF}
end;
class function TIBConnectionDef.LoadFunction: TLibraryLoadFunction;
begin
+{$IFDEF LinkDynamically}
Result:=@InitialiseIBase60;
+{$ELSE}
+ Result:=nil;
+{$ENDIF}
end;
class function TIBConnectionDef.UnLoadFunction: TLibraryUnLoadFunction;
begin
+{$IFDEF LinkDynamically}
Result:=@ReleaseIBase60
+{$ELSE}
+ Result:=nil;
+{$ENDIF}
end;
class function TIBConnectionDef.LoadedLibraryName: string;
begin
- {$IfDef LinkDynamically}
+{$IFDEF LinkDynamically}
Result:=IBaseLoadedLibrary;
- {$else}
+{$ELSE}
Result:='';
- {$endif}
+{$ENDIF}
end;
initialization
diff --git a/packages/fcl-db/src/sqldb/mssql/Makefile b/packages/fcl-db/src/sqldb/mssql/Makefile
index 089f4086a4..033e41000d 100644
--- a/packages/fcl-db/src/sqldb/mssql/Makefile
+++ b/packages/fcl-db/src/sqldb/mssql/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=mssqlconn
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=mssqlconn
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=mssqlconn
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=mssqlconn
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=mssqlconn
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=mssqlconn
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=mssqlconn
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=mssqlconn
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=mssqlconn
endif
@@ -613,6 +628,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2
endif
@@ -700,6 +718,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2
endif
@@ -754,6 +775,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2
endif
@@ -1008,6 +1032,12 @@ 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=
@@ -1053,6 +1083,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1612,6 +1647,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_DBLIB=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
+REQUIRE_PACKAGES_DBLIB=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1873,6 +1917,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_DBLIB=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
+REQUIRE_PACKAGES_DBLIB=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2035,6 +2088,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_DBLIB=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
+REQUIRE_PACKAGES_DBLIB=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2450,7 +2512,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2480,17 +2542,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/sqldb/mssql/fpmake.inc b/packages/fcl-db/src/sqldb/mssql/fpmake.inc
index a3a16c6c2d..0703b35133 100644
--- a/packages/fcl-db/src/sqldb/mssql/fpmake.inc
+++ b/packages/fcl-db/src/sqldb/mssql/fpmake.inc
@@ -6,6 +6,6 @@
Targets.ResetDefaults;
Targets.DefaultDir:='db/sqldb/mssql';
{ Drivers only for the following OSes }
-Targets.DefaultOS:=[win32,win64,openbsd,netbsd,freebsd,linux,haiku];
+Targets.DefaultOS:=[win32,win64,openbsd,netbsd,freebsd,linux,haiku,dragonfly];
T:=Targets.AddUnit('mssqlconn');
T.ResourceStrings:=False;
diff --git a/packages/fcl-db/src/sqldb/mssql/mssqlconn.pp b/packages/fcl-db/src/sqldb/mssql/mssqlconn.pp
index b1d1a8355d..a63586a5b7 100644
--- a/packages/fcl-db/src/sqldb/mssql/mssqlconn.pp
+++ b/packages/fcl-db/src/sqldb/mssql/mssqlconn.pp
@@ -96,6 +96,7 @@ type
// - Statement execution
procedure Execute(cursor:TSQLCursor; ATransaction:TSQLTransaction; AParams:TParams); override;
function RowsAffected(cursor: TSQLCursor): TRowsCount; override;
+ function RefreshLastInsertID(Query : TCustomSQLQuery; Field : TField): boolean; override;
// - Result retrieving
procedure AddFieldDefs(cursor:TSQLCursor; FieldDefs:TFieldDefs); override;
function Fetch(cursor:TSQLCursor):boolean; override;
@@ -208,6 +209,7 @@ begin
DBErrorStr:=DBErrorStr+LineEnding+dberrstr;
DBErrorNo :=dberr;
Result :=INT_CANCEL;
+ // for server messages with severity greater than 10 error handler is also called
end;
function DBMsgHandler(dbproc: PDBPROCESS; msgno: DBINT; msgstate, severity:INT; msgtext, srvname, procname:PChar; line:DBUSMALLINT):INT; cdecl;
@@ -295,8 +297,10 @@ end;
function TMSSQLConnection.CheckError(const Ret: RETCODE): RETCODE;
var E: EMSSQLDatabaseError;
begin
- if Ret=FAIL then
+ if (Ret=FAIL) or (DBErrorStr<>'') then
begin
+ // try clear all pending results to allow ROLLBACK and prevent error 10038 "Results pending"
+ if assigned(FDBProc) then dbcancel(FDBProc);
if DBErrorStr = '' then
case DBErrorNo of
SYBEFCON: DBErrorStr:='SQL Server connection failed!';
@@ -312,7 +316,7 @@ end;
constructor TMSSQLConnection.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
- FConnOptions := FConnOptions + [sqSupportEmptyDatabaseName, sqEscapeRepeat];
+ FConnOptions := [sqSupportEmptyDatabaseName, sqEscapeRepeat, sqImplicitTransaction, sqLastInsertID];
//FieldNameQuoteChars:=DoubleQuotes; //default
Ftds := DBTDS_UNKNOWN;
end;
@@ -537,7 +541,7 @@ end;
function TMSSQLConnection.Rollback(trans: TSQLHandle): boolean;
begin
- Execute('ROLLBACK');
+ Execute('IF @@TRANCOUNT>0 ROLLBACK');
Result:=true;
end;
@@ -656,6 +660,21 @@ begin
Result := inherited RowsAffected(cursor);
end;
+function TMSSQLConnection.RefreshLastInsertID(Query: TCustomSQLQuery; Field: TField): boolean;
+var Identity: int64;
+begin
+ // global variable @@IDENTITY is NUMERIC(38,0)
+ Result:=False;
+ if dbcmd(FDBProc, 'SELECT @@IDENTITY') = FAIL then Exit;
+ if dbsqlexec(FDBProc) = FAIL then Exit;
+ if dbresults(FDBProc) = FAIL then Exit;
+ if dbnextrow(FDBProc) = FAIL then Exit;
+ if dbconvert(FDBProc, dbcoltype(FDBProc,1), dbdata(FDBProc,1), -1, SYBINT8, @Identity, sizeof(Identity)) = -1 then Exit;
+ // by default identity columns are ReadOnly
+ Field.AsLargeInt := Identity;
+ Result:=True;
+end;
+
function TMSSQLConnection.TranslateFldType(SQLDataType: integer): TFieldType;
begin
case SQLDataType of
diff --git a/packages/fcl-db/src/sqldb/mysql/Makefile b/packages/fcl-db/src/sqldb/mysql/Makefile
index 75dab6bce8..300e713dab 100644
--- a/packages/fcl-db/src/sqldb/mysql/Makefile
+++ b/packages/fcl-db/src/sqldb/mysql/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
endif
@@ -612,6 +627,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
endif
@@ -699,6 +717,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
endif
@@ -753,6 +774,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_RSTS+=mysql40conn mysql41conn mysql50conn mysql51conn mysql55conn mysql56conn
endif
@@ -835,6 +859,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2
endif
@@ -922,6 +949,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2
endif
@@ -976,6 +1006,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2
endif
@@ -1230,6 +1263,12 @@ 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=
@@ -1275,6 +1314,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1857,6 +1901,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_MYSQL=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_MYSQL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2147,6 +2201,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_MYSQL=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_MYSQL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2327,6 +2391,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_MYSQL=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_MYSQL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2784,7 +2858,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2814,17 +2888,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/sqldb/mysql/fpmake.inc b/packages/fcl-db/src/sqldb/mysql/fpmake.inc
index 50fcd03c85..87491373c9 100644
--- a/packages/fcl-db/src/sqldb/mysql/fpmake.inc
+++ b/packages/fcl-db/src/sqldb/mysql/fpmake.inc
@@ -6,4 +6,4 @@
Targets.ResetDefaults;
Targets.DefaultDir:='db/sqldb/mysql';
{ Drivers only for the following OSes }
-Targets.DefaultOS:=[win32,openbsd,netbsd,freebsd,darwin,linux,haiku];
+Targets.DefaultOS:=[win32,openbsd,netbsd,freebsd,darwin,linux,haiku,dragonfly];
diff --git a/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc b/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc
index 648227e822..49839fbd0a 100644
--- a/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc
+++ b/packages/fcl-db/src/sqldb/mysql/mysqlconn.inc
@@ -59,6 +59,12 @@ Const
{$endif}
{$endif}
{$ENDIF}
+ MariaDBVersion =
+{$IFDEF mysql56} // MariaDB 10.0 is compatible with MySQL 5.6
+ '10.0';
+{$ELSE} // MariaDB 5.1..5.5 presumably report the same version number as MySQL
+ MySQLVersion;
+{$ENDIF}
Type
TTransactionName = Class(TSQLHandle)
@@ -93,11 +99,11 @@ Type
procedure ExecuteDirectMySQL(const query : string);
function EscapeString(const Str : string) : string;
protected
- function StrToStatementType(s : string) : TStatementType; override;
Procedure ConnectToServer; virtual;
Procedure SelectDatabase; virtual;
function MySQLDataType(AField: PMYSQL_FIELD; var NewType: TFieldType; var NewSize: Integer): Boolean;
function MySQLWriteData(AField: PMYSQL_FIELD; FieldDef: TFieldDef; Source, Dest: PChar; Len: integer; out CreateBlob : boolean): Boolean;
+
// SQLConnection methods
procedure DoInternalConnect; override;
procedure DoInternalDisconnect; override;
@@ -110,6 +116,7 @@ Type
Procedure DeAllocateCursorHandle(var cursor : TSQLCursor); override;
Function AllocateTransactionHandle : TSQLHandle; override;
+ function StrToStatementType(s : string) : TStatementType; override;
procedure PrepareStatement(cursor: TSQLCursor;ATransaction : TSQLTransaction;buf : string; AParams : TParams); override;
procedure UnPrepareStatement(cursor:TSQLCursor); override;
procedure FreeFldBuffers(cursor : TSQLCursor); override;
@@ -127,6 +134,7 @@ Type
function GetSchemaInfoSQL(SchemaType : TSchemaType; SchemaObjectName, SchemaPattern : string) : string; override;
procedure UpdateIndexDefs(IndexDefs : TIndexDefs;TableName : string); override;
function RowsAffected(cursor: TSQLCursor): TRowsCount; override;
+ function RefreshLastInsertID(Query : TCustomSQLQuery; Field : TField): Boolean; override;
Public
constructor Create(AOwner : TComponent); override;
procedure GetFieldNames(const TableName : string; List : TStrings); override;
@@ -323,7 +331,7 @@ begin
Result := mysql_stat(FMYSQL);
end;
-function TConnectionName.GetInsertID: Int64;
+Function TConnectionName.GetInsertID: int64;
begin
CheckConnected;
Result:=mysql_insert_id(GetHandle);
@@ -398,14 +406,14 @@ begin
end;
-procedure TConnectionName.ConnectToServer;
+Procedure TConnectionName.ConnectToServer;
begin
ConnectMySQL(FMySQL);
FServerInfo := strpas(mysql_get_server_info(FMYSQL));
FHostInfo := strpas(mysql_get_host_info(FMYSQL));
end;
-procedure TConnectionName.SelectDatabase;
+Procedure TConnectionName.SelectDatabase;
begin
if mysql_select_db(FMySQL,pchar(DatabaseName))<>0 then
MySQLError(FMySQL,SErrDatabaseSelectFailed,Self);
@@ -459,13 +467,15 @@ end;
procedure TConnectionName.DoInternalConnect;
var
- FullVersion,
- ClientVerStr: string;
+ FullVersion: string;
begin
InitialiseMysql;
Fullversion:=strpas(mysql_get_client_info());
- ClientVerStr := copy(FullVersion,1,3);
- If (ClientVerStr<>MySQLVersion) then
+ // Version string should start with version number:
+ // Note: in case of MariaDB version mismatch: tough luck, we report MySQL
+ // version only.
+ if (pos(MySQLVersion, Fullversion) <> 1) and
+ (pos(MariaDBVersion, Fullversion) <> 1) then
Raise EInOutError.CreateFmt(SErrVersionMisMatch,[ClassName,MySQLVersion,FullVersion]);
inherited DoInternalConnect;
ConnectToServer;
@@ -485,7 +495,7 @@ begin
Result:=FMySQL;
end;
-function TConnectionName.AllocateCursorHandle: TSQLCursor;
+Function TConnectionName.AllocateCursorHandle: TSQLCursor;
begin
{$IFDEF mysql56}
Result:=TMySQL56Cursor.Create;
@@ -516,7 +526,7 @@ begin
FreeAndNil(cursor);
end;
-function TConnectionName.AllocateTransactionHandle: TSQLHandle;
+Function TConnectionName.AllocateTransactionHandle: TSQLHandle;
begin
// Result:=TTransactionName.Create;
Result := nil;
@@ -1110,11 +1120,17 @@ begin
Result := -1;
end;
+function TConnectionName.RefreshLastInsertID(Query: TCustomSQLQuery; Field: TField): Boolean;
+begin
+ Field.AsLargeInt:=GetInsertID;
+ Result := True;
+end;
+
constructor TConnectionName.Create(AOwner: TComponent);
const SingleBackQoutes: TQuoteChars = ('`','`');
begin
inherited Create(AOwner);
- FConnOptions := FConnOptions + [sqEscapeRepeat] + [sqEscapeSlash];
+ FConnOptions := [sqEscapeRepeat, sqEscapeSlash, sqImplicitTransaction, sqLastInsertID];
FieldNameQuoteChars:=SingleBackQoutes;
FMySQL := Nil;
end;
diff --git a/packages/fcl-db/src/sqldb/odbc/Makefile b/packages/fcl-db/src/sqldb/odbc/Makefile
index c53d42f208..99702775d1 100644
--- a/packages/fcl-db/src/sqldb/odbc/Makefile
+++ b/packages/fcl-db/src/sqldb/odbc/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=odbcconn
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=odbcconn
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=odbcconn
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=odbcconn
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=odbcconn
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=odbcconn
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=odbcconn
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=odbcconn
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=odbcconn
endif
@@ -613,6 +628,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2
endif
@@ -700,6 +718,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2
endif
@@ -754,6 +775,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2
endif
@@ -1008,6 +1032,12 @@ 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=
@@ -1053,6 +1083,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1635,6 +1670,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_ODBC=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ODBC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1925,6 +1970,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_ODBC=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ODBC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2105,6 +2160,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_ODBC=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ODBC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2562,7 +2627,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2592,17 +2657,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/sqldb/odbc/odbcconn.pas b/packages/fcl-db/src/sqldb/odbc/odbcconn.pas
index 07b27d09e1..29857d6279 100644
--- a/packages/fcl-db/src/sqldb/odbc/odbcconn.pas
+++ b/packages/fcl-db/src/sqldb/odbc/odbcconn.pas
@@ -16,9 +16,7 @@ unit odbcconn;
interface
uses
- Classes, SysUtils, sqldb, db, odbcsqldyn
-{$IF (FPC_VERSION>=2) AND (FPC_RELEASE>=1)}, BufDataset{$ENDIF}
- ;
+ Classes, SysUtils, sqldb, db, odbcsqldyn, BufDataset;
type
@@ -33,9 +31,6 @@ type
FQuery:string; // last prepared query, with :ParamName converted to ?
FParamIndex:TParamBinding; // maps the i-th parameter in the query to the TParams passed to PrepareStatement
FParamBuf:array of pointer; // buffers that can be used to bind the i-th parameter in the query
-{$IF NOT((FPC_VERSION>=2) AND (FPC_RELEASE>=1))}
- FBlobStreams:TList; // list of Blob TMemoryStreams stored in field buffers (we need this currently as we can't hook into the freeing of TBufDataset buffers)
-{$ENDIF}
public
constructor Create(Connection:TODBCConnection);
destructor Destroy; override;
@@ -95,13 +90,8 @@ type
// - Result retrieving
procedure AddFieldDefs(cursor:TSQLCursor; FieldDefs:TFieldDefs); override;
function Fetch(cursor:TSQLCursor):boolean; override;
-{$IF (FPC_VERSION>=2) AND (FPC_RELEASE>=1)}
function LoadField(cursor:TSQLCursor; FieldDef:TFieldDef; buffer:pointer; out CreateBlob : boolean):boolean; override;
procedure LoadBlobIntoBuffer(FieldDef: TFieldDef;ABlobBuf: PBufBlobField; cursor: TSQLCursor; ATransaction : TSQLTransaction); override;
-{$ELSE}
- function LoadField(cursor:TSQLCursor; FieldDef:TFieldDef; buffer:pointer):boolean; override;
- function CreateBlobStream(Field:TField; Mode:TBlobStreamMode):TStream; override;
-{$ENDIF}
procedure FreeFldBuffers(cursor:TSQLCursor); override;
// - UpdateIndexDefs
procedure UpdateIndexDefs(IndexDefs:TIndexDefs; TableName:string); override;
@@ -135,7 +125,6 @@ type
EODBCException = class(ESQLDatabaseError);
-{$IF (FPC_VERSION>=2) AND (FPC_RELEASE>=1)}
{ TODBCConnectionDef }
TODBCConnectionDef = Class(TConnectionDef)
@@ -143,7 +132,6 @@ type
Class Function ConnectionClass : TSQLConnectionClass; override;
Class Function Description : String; override;
end;
-{$ENDIF}
implementation
@@ -302,9 +290,7 @@ end;
constructor TODBCConnection.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
-{$IF (FPC_VERSION>=2) AND (FPC_RELEASE>=1)}
FConnOptions := FConnOptions + [sqEscapeRepeat] + [sqEscapeSlash];
-{$ENDIF}
end;
function TODBCConnection.StrToStatementType(s : string) : TStatementType;
@@ -661,11 +647,7 @@ begin
// Parse the SQL and build FParamIndex
if assigned(AParams) and (AParams.count > 0) then
-{$IF (FPC_VERSION>=2) AND (FPC_RELEASE>=1)}
buf := AParams.ParseSQL(buf,false,sqEscapeSlash in ConnOptions, sqEscapeRepeat in ConnOptions,psInterbase,ODBCCursor.FParamIndex);
-{$ELSE}
- buf := AParams.ParseSQL(buf,false,psInterbase,ODBCCursor.FParamIndex);
-{$ENDIF}
// prepare statement
ODBCCursor.FQuery:=Buf;
@@ -815,11 +797,7 @@ end;
const
DEFAULT_BLOB_BUFFER_SIZE = 1024;
-{$IF (FPC_VERSION>=2) AND (FPC_RELEASE>=1)}
function TODBCConnection.LoadField(cursor: TSQLCursor; FieldDef: TFieldDef; buffer: pointer; out CreateBlob : boolean): boolean;
-{$ELSE}
-function TODBCConnection.LoadField(cursor: TSQLCursor; FieldDef: TFieldDef; buffer: pointer):boolean;
-{$ENDIF}
var
ODBCCursor:TODBCCursor;
StrLenOrInd:SQLLEN;
@@ -827,16 +805,9 @@ var
ODBCTimeStruct:SQL_TIME_STRUCT;
ODBCTimeStampStruct:SQL_TIMESTAMP_STRUCT;
DateTime:TDateTime;
-{$IF NOT((FPC_VERSION>=2) AND (FPC_RELEASE>=1))}
- BlobBuffer:pointer;
- BlobBufferSize,BytesRead:SQLINTEGER;
- BlobMemoryStream:TMemoryStream;
-{$ENDIF}
Res:SQLRETURN;
begin
-{$IF (FPC_VERSION>=2) AND (FPC_RELEASE>=1)}
CreateBlob := False;
-{$ENDIF}
ODBCCursor:=cursor as TODBCCursor;
// load the field using SQLGetData
@@ -899,9 +870,7 @@ begin
else
PWord(buffer)^ := StrLenOrInd;
end;
-{$IF (FPC_VERSION>=2) AND (FPC_RELEASE>=1)}
ftWideMemo,
-{$ENDIF}
ftBlob, ftMemo: // BLOBs
begin
//Writeln('BLOB');
@@ -911,48 +880,8 @@ begin
// Read the data if not NULL
if StrLenOrInd<>SQL_NULL_DATA then
begin
-{$IF (FPC_VERSION>=2) AND (FPC_RELEASE>=1)}
CreateBlob:=true; // defer actual loading of blob data to LoadBlobIntoBuffer method
//WriteLn('Deferring loading of blob of length ',StrLenOrInd);
-{$ELSE}
- // Determine size of buffer to use
- if StrLenOrInd<>SQL_NO_TOTAL then
- BlobBufferSize:=StrLenOrInd
- else
- BlobBufferSize:=DEFAULT_BLOB_BUFFER_SIZE;
- try
- // init BlobBuffer and BlobMemoryStream to nil pointers
- BlobBuffer:=nil;
- BlobMemoryStream:=nil;
- if BlobBufferSize>0 then // Note: zero-length BLOB is represented as nil pointer in the field buffer to save memory usage
- begin
- // Allocate the buffer and memorystream
- BlobBuffer:=GetMem(BlobBufferSize);
- BlobMemoryStream:=TMemoryStream.Create;
- // Retrieve data in parts (or effectively in one part if StrLenOrInd<>SQL_NO_TOTAL above)
- repeat
- Res:=SQLGetData(ODBCCursor.FSTMTHandle, FieldDef.Index+1, SQL_C_BINARY, BlobBuffer, BlobBufferSize, @StrLenOrInd);
- ODBCCheckResult(Res, SQL_HANDLE_STMT, ODBCCursor.FSTMTHandle, 'Could not get field data for field "%s" (index %d).',[FieldDef.Name, FieldDef.Index+1]);
- // Append data in buffer to memorystream
- if (StrLenOrInd=SQL_NO_TOTAL) or (StrLenOrInd>BlobBufferSize) then
- BytesRead:=BlobBufferSize
- else
- BytesRead:=StrLenOrInd;
- BlobMemoryStream.Write(BlobBuffer^, BytesRead);
- until Res=SQL_SUCCESS;
- end;
- // Store memorystream pointer in Field buffer and in the cursor's FBlobStreams list
- TObject(buffer^):=BlobMemoryStream;
- if BlobMemoryStream<>nil then
- ODBCCursor.FBlobStreams.Add(BlobMemoryStream);
- // Set BlobMemoryStream to nil, so it won't get freed in the finally block below
- BlobMemoryStream:=nil;
- finally
- BlobMemoryStream.Free;
- if BlobBuffer<>nil then
- Freemem(BlobBuffer,BlobBufferSize);
- end;
-{$ENDIF}
end;
end;
// TODO: Loading of other field types
@@ -965,7 +894,6 @@ begin
//writeln(Format('Field.Size: %d; StrLenOrInd: %d',[FieldDef.Size, StrLenOrInd]));
end;
-{$IF (FPC_VERSION>=2) AND (FPC_RELEASE>=1)}
procedure TODBCConnection.LoadBlobIntoBuffer(FieldDef: TFieldDef; ABlobBuf: PBufBlobField; cursor: TSQLCursor; ATransaction: TSQLTransaction);
var
ODBCCursor: TODBCCursor;
@@ -1036,41 +964,13 @@ begin
end;
end;
end;
-{$ELSE}
-function TODBCConnection.CreateBlobStream(Field: TField; Mode: TBlobStreamMode): TStream;
-var
- ODBCCursor: TODBCCursor;
- BlobMemoryStream, BlobMemoryStreamCopy: TMemoryStream;
-begin
- if (Mode=bmRead) and not Field.IsNull then
- begin
- Field.GetData(@BlobMemoryStream);
- BlobMemoryStreamCopy:=TMemoryStream.Create;
- if BlobMemoryStream<>nil then
- BlobMemoryStreamCopy.LoadFromStream(BlobMemoryStream);
- Result:=BlobMemoryStreamCopy;
- end
- else
- Result:=nil;
-end;
-{$ENDIF}
procedure TODBCConnection.FreeFldBuffers(cursor: TSQLCursor);
var
ODBCCursor:TODBCCursor;
-{$IF NOT((FPC_VERSION>=2) AND (FPC_RELEASE>=1))}
- i: integer;
-{$ENDIF}
begin
ODBCCursor:=cursor as TODBCCursor;
-{$IF NOT((FPC_VERSION>=2) AND (FPC_RELEASE>=1))}
- // Free TMemoryStreams in cursor.FBlobStreams and clear it
- for i:=0 to ODBCCursor.FBlobStreams.Count-1 do
- TObject(ODBCCursor.FBlobStreams[i]).Free;
- ODBCCursor.FBlobStreams.Clear;
-{$ENDIF}
-
if ODBCCursor.FSTMTHandle <> SQL_NULL_HSTMT then
ODBCCheckResult(
SQLFreeStmt(ODBCCursor.FSTMTHandle, SQL_CLOSE),
@@ -1082,11 +982,7 @@ procedure TODBCConnection.AddFieldDefs(cursor: TSQLCursor; FieldDefs: TFieldDefs
const
ColNameDefaultLength = 40; // should be > 0, because an ansistring of length 0 is a nil pointer instead of a pointer to a #0
TypeNameDefaultLength = 80; // idem
-{$IF (FPC_VERSION>=2) AND (FPC_RELEASE>=1)}
BLOB_BUF_SIZE = 0;
-{$ELSE}
- BLOB_BUF_SIZE = sizeof(pointer);
-{$ENDIF}
var
ODBCCursor:TODBCCursor;
ColumnCount:SQLSMALLINT;
@@ -1149,11 +1045,9 @@ begin
SQL_CHAR: begin FieldType:=ftFixedChar; FieldSize:=ColumnSize; end;
SQL_VARCHAR: begin FieldType:=ftString; FieldSize:=ColumnSize; end;
SQL_LONGVARCHAR: begin FieldType:=ftMemo; FieldSize:=BLOB_BUF_SIZE; end; // is a blob
-{$IF (FPC_VERSION>=2) AND (FPC_RELEASE>=1)}
SQL_WCHAR: begin FieldType:=ftFixedWideChar; FieldSize:=ColumnSize*sizeof(Widechar); end;
SQL_WVARCHAR: begin FieldType:=ftWideString; FieldSize:=ColumnSize*sizeof(Widechar); end;
SQL_WLONGVARCHAR: begin FieldType:=ftWideMemo; FieldSize:=BLOB_BUF_SIZE; end; // is a blob
-{$ENDIF}
SQL_DECIMAL: begin FieldType:=ftFloat; FieldSize:=0; end;
SQL_NUMERIC: begin FieldType:=ftFloat; FieldSize:=0; end;
SQL_SMALLINT: begin FieldType:=ftSmallint; FieldSize:=0; end;
@@ -1186,9 +1080,7 @@ begin
{ SQL_INTERVAL_HOUR_TO_MINUTE: FieldType:=ftUnknown;}
{ SQL_INTERVAL_HOUR_TO_SECOND: FieldType:=ftUnknown;}
{ SQL_INTERVAL_MINUTE_TO_SECOND:FieldType:=ftUnknown;}
-{$IF (FPC_VERSION>=2) AND (FPC_RELEASE>=1)}
SQL_GUID: begin FieldType:=ftGuid; FieldSize:=38; end; //SQL_GUID defines 36, but TGuidField requires 38
-{$ENDIF}
else
begin FieldType:=ftUnknown; FieldSize:=ColumnSize; end
end;
@@ -1565,21 +1457,13 @@ end;
constructor TODBCCursor.Create(Connection:TODBCConnection);
begin
-{$IF NOT((FPC_VERSION>=2) AND (FPC_RELEASE>=1))}
- // allocate FBlobStreams
- FBlobStreams:=TList.Create;
-{$ENDIF}
end;
destructor TODBCCursor.Destroy;
begin
-{$IF NOT((FPC_VERSION>=2) AND (FPC_RELEASE>=1))}
- FBlobStreams.Free;
-{$ENDIF}
inherited Destroy;
end;
-{$IF (FPC_VERSION>=2) AND (FPC_RELEASE>=1)}
class function TODBCConnectionDef.TypeName: String;
begin
Result:='ODBC';
@@ -1597,12 +1481,9 @@ end;
initialization
RegisterConnection(TODBCConnectionDef);
-{$ENDIF}
finalization
-{$IF (FPC_VERSION>=2) AND (FPC_RELEASE>=1)}
UnRegisterConnection(TODBCConnectionDef);
-{$ENDIF}
if Assigned(DefaultEnvironment) then
DefaultEnvironment.Free;
end.
diff --git a/packages/fcl-db/src/sqldb/oracle/Makefile b/packages/fcl-db/src/sqldb/oracle/Makefile
index 446b4b4185..12eb0fbe8a 100644
--- a/packages/fcl-db/src/sqldb/oracle/Makefile
+++ b/packages/fcl-db/src/sqldb/oracle/Makefile
@@ -1,3190 +1,3270 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
-#
-default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
-LIMIT83fs = go32v2 os2 emx watcom msdos
-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
-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 units)),)
-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 units)),)
-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 units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-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
-ifeq ($(CPU_TARGET),mipsel)
-BINUTILSPREFIX=mipsel-linux-android-
-endif
-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 $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-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=fcl-db
-PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR))))))
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-android)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-aix)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),x86_64-netbsd)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),x86_64-openbsd)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-android)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc64-aix)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),mips-linux)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),mipsel-android)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),jvm-java)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),jvm-android)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i8086-msdos)
-override TARGET_UNITS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i386-android)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc-aix)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),x86_64-netbsd)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),x86_64-openbsd)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),arm-android)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),powerpc64-aix)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),mips-linux)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),mipsel-android)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),jvm-java)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),jvm-android)
-override TARGET_RSTS+=oracleconnection
-endif
-ifeq ($(FULL_TARGET),i8086-msdos)
-override TARGET_RSTS+=oracleconnection
-endif
-override INSTALL_FPCPACKAGE=y
-ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-haiku)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-nativent)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-iphonesim)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i386-android)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-wii)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc-aix)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-netbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-solaris)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-openbsd)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),arm-android)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),powerpc64-aix)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),avr-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),armeb-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),armeb-embedded)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),mips-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),mipsel-linux)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),mipsel-android)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),jvm-java)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),jvm-android)
-override COMPILER_OPTIONS+=-S2
-endif
-ifeq ($(FULL_TARGET),i8086-msdos)
-override COMPILER_OPTIONS+=-S2
-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
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-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),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),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=
-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
-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 fcl-xml oracle
-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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=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),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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=1
-endif
-ifeq ($(FULL_TARGET),m68k-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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=1
-endif
-ifeq ($(FULL_TARGET),m68k-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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-REQUIRE_PACKAGES_FCL-XML=1
-REQUIRE_PACKAGES_ORACLE=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
-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),)
-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
-ifdef REQUIRE_PACKAGES_FCL-XML
-PACKAGEDIR_FCL-XML:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_FCL-XML),)
-ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX)),)
-UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX)
-else
-UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML)
-endif
-ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_FCL-XML=$(PACKAGEDIR_FCL-XML)/units/$(SOURCESUFFIX)
-else
-ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units_bs/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_FCL-XML=$(PACKAGEDIR_FCL-XML)/units_bs/$(SOURCESUFFIX)
-else
-UNITDIR_FPMAKE_FCL-XML=$(PACKAGEDIR_FCL-XML)
-endif
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_FCL-XML)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_FCL-XML) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-XML)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_FCL-XML=
-UNITDIR_FCL-XML:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_FCL-XML),)
-UNITDIR_FCL-XML:=$(firstword $(UNITDIR_FCL-XML))
-else
-UNITDIR_FCL-XML=
-endif
-endif
-ifdef UNITDIR_FCL-XML
-override COMPILER_UNITDIR+=$(UNITDIR_FCL-XML)
-endif
-ifdef UNITDIR_FPMAKE_FCL-XML
-override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-XML)
-endif
-endif
-ifdef REQUIRE_PACKAGES_ORACLE
-PACKAGEDIR_ORACLE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /oracle/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_ORACLE),)
-ifneq ($(wildcard $(PACKAGEDIR_ORACLE)/units/$(TARGETSUFFIX)),)
-UNITDIR_ORACLE=$(PACKAGEDIR_ORACLE)/units/$(TARGETSUFFIX)
-else
-UNITDIR_ORACLE=$(PACKAGEDIR_ORACLE)
-endif
-ifneq ($(wildcard $(PACKAGEDIR_ORACLE)/units/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_ORACLE=$(PACKAGEDIR_ORACLE)/units/$(SOURCESUFFIX)
-else
-ifneq ($(wildcard $(PACKAGEDIR_ORACLE)/units_bs/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_ORACLE=$(PACKAGEDIR_ORACLE)/units_bs/$(SOURCESUFFIX)
-else
-UNITDIR_FPMAKE_ORACLE=$(PACKAGEDIR_ORACLE)
-endif
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_ORACLE)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_ORACLE) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_ORACLE)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_ORACLE=
-UNITDIR_ORACLE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /oracle/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_ORACLE),)
-UNITDIR_ORACLE:=$(firstword $(UNITDIR_ORACLE))
-else
-UNITDIR_ORACLE=
-endif
-endif
-ifdef UNITDIR_ORACLE
-override COMPILER_UNITDIR+=$(UNITDIR_ORACLE)
-endif
-ifdef UNITDIR_FPMAKE_ORACLE
-override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ORACLE)
-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)
-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)
-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
-ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-endif
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1r
-endif
-else
-FPCCPUOPT:=-O2
-endif
-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),freebsd openbsd netbsd linux solaris),)
-ifeq ($(CPU_TARGET),x86_64)
-override FPCOPT+=-Cg
-endif
-endif
-ifdef LINKSHARED
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-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))
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-ifdef RUNBATCH
-EXECPPAS:=@$(RUNBATCH) $(PPAS)
-else
-EXECPPAS:=@$(PPAS)
-endif
-endif
-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) .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 %$(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)
-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
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-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: $(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)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
-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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
- -$(DEL) *$(ASMEXT) *_ppas$(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
- -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
- -$(DEL) *.o *.ppu *.a
-endif
- -$(DELTREE) *$(SMARTEXT)
- -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
- -$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
- -$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
- -$(DEL) *$(DEBUGSYMEXT)
-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
-.NOTPARALLEL:
+#
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
+#
+default: all
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
+UNIXs = linux $(BSDs) solaris qnx haiku aix
+LIMIT83fs = go32v2 os2 emx watcom msdos
+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),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
+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 units)),)
+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 units)),)
+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 units)),)
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+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
+ifeq ($(CPU_TARGET),mipsel)
+BINUTILSPREFIX=mipsel-linux-android-
+endif
+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 $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
+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=fcl-db
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR))))))
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override TARGET_UNITS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_RSTS+=oracleconnection
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override TARGET_RSTS+=oracleconnection
+endif
+override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-S2
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-S2
+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
+BATCHEXT=.bat
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+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=
+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
+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 fcl-xml oracle
+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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=1
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+REQUIRE_PACKAGES_RTL=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),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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=1
+endif
+ifeq ($(FULL_TARGET),m68k-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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=1
+endif
+ifeq ($(FULL_TARGET),m68k-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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_ORACLE=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
+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),)
+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
+ifdef REQUIRE_PACKAGES_FCL-XML
+PACKAGEDIR_FCL-XML:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_FCL-XML),)
+ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX)),)
+UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML)/units/$(TARGETSUFFIX)
+else
+UNITDIR_FCL-XML=$(PACKAGEDIR_FCL-XML)
+endif
+ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_FCL-XML=$(PACKAGEDIR_FCL-XML)/units/$(SOURCESUFFIX)
+else
+ifneq ($(wildcard $(PACKAGEDIR_FCL-XML)/units_bs/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_FCL-XML=$(PACKAGEDIR_FCL-XML)/units_bs/$(SOURCESUFFIX)
+else
+UNITDIR_FPMAKE_FCL-XML=$(PACKAGEDIR_FCL-XML)
+endif
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_FCL-XML)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_FCL-XML) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-XML)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_FCL-XML=
+UNITDIR_FCL-XML:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-xml/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_FCL-XML),)
+UNITDIR_FCL-XML:=$(firstword $(UNITDIR_FCL-XML))
+else
+UNITDIR_FCL-XML=
+endif
+endif
+ifdef UNITDIR_FCL-XML
+override COMPILER_UNITDIR+=$(UNITDIR_FCL-XML)
+endif
+ifdef UNITDIR_FPMAKE_FCL-XML
+override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-XML)
+endif
+endif
+ifdef REQUIRE_PACKAGES_ORACLE
+PACKAGEDIR_ORACLE:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /oracle/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_ORACLE),)
+ifneq ($(wildcard $(PACKAGEDIR_ORACLE)/units/$(TARGETSUFFIX)),)
+UNITDIR_ORACLE=$(PACKAGEDIR_ORACLE)/units/$(TARGETSUFFIX)
+else
+UNITDIR_ORACLE=$(PACKAGEDIR_ORACLE)
+endif
+ifneq ($(wildcard $(PACKAGEDIR_ORACLE)/units/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_ORACLE=$(PACKAGEDIR_ORACLE)/units/$(SOURCESUFFIX)
+else
+ifneq ($(wildcard $(PACKAGEDIR_ORACLE)/units_bs/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_ORACLE=$(PACKAGEDIR_ORACLE)/units_bs/$(SOURCESUFFIX)
+else
+UNITDIR_FPMAKE_ORACLE=$(PACKAGEDIR_ORACLE)
+endif
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_ORACLE)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_ORACLE) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_ORACLE)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_ORACLE=
+UNITDIR_ORACLE:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /oracle/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_ORACLE),)
+UNITDIR_ORACLE:=$(firstword $(UNITDIR_ORACLE))
+else
+UNITDIR_ORACLE=
+endif
+endif
+ifdef UNITDIR_ORACLE
+override COMPILER_UNITDIR+=$(UNITDIR_ORACLE)
+endif
+ifdef UNITDIR_FPMAKE_ORACLE
+override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_ORACLE)
+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)
+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)
+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
+ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
+ifeq ($(CPU_TARGET),i386)
+FPCCPUOPT:=-OG2p3
+endif
+ifeq ($(CPU_TARGET),powerpc)
+FPCCPUOPT:=-O1r
+endif
+else
+FPCCPUOPT:=-O2
+endif
+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),)
+ifeq ($(CPU_TARGET),x86_64)
+override FPCOPT+=-Cg
+endif
+endif
+ifdef LINKSHARED
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+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_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) .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 %$(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)
+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
+override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
+ifneq ($(UNITTARGETDIRPREFIX),)
+override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
+override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
+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: $(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)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
+endif
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
+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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *$(ASMEXT) *_ppas$(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
+ -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+ -$(DEL) *.o *.ppu *.a
+endif
+ -$(DELTREE) *$(SMARTEXT)
+ -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *_ppas$(BATCHEXT)
+ifdef AOUTEXT
+ -$(DEL) *$(AOUTEXT)
+endif
+ifdef DEBUGSYMEXT
+ -$(DEL) *$(DEBUGSYMEXT)
+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
+.NOTPARALLEL:
diff --git a/packages/fcl-db/src/sqldb/oracle/oracleconnection.pp b/packages/fcl-db/src/sqldb/oracle/oracleconnection.pp
index e6a069bb1a..5c486a36c0 100644
--- a/packages/fcl-db/src/sqldb/oracle/oracleconnection.pp
+++ b/packages/fcl-db/src/sqldb/oracle/oracleconnection.pp
@@ -68,8 +68,8 @@ type
FOciUserSession : POCISession;
FUserMem : pointer;
procedure HandleError;
- procedure GetParameters(cursor : TSQLCursor; AParams : TParams);
- procedure SetParameters(cursor : TSQLCursor; AParams : TParams);
+ procedure GetParameters(cursor : TSQLCursor; ATransaction : TSQLTransaction; AParams : TParams);
+ procedure SetParameters(cursor : TSQLCursor; ATransaction : TSQLTransaction; AParams : TParams);
protected
// - Connect/disconnect
procedure DoInternalConnect; override;
@@ -332,22 +332,17 @@ end;
procedure TOracleConnection.HandleError;
-var errcode : sb4;
+var
+ errcode : sb4;
buf : array[0..1023] of char;
- E : EOraDatabaseError;
+
begin
OCIErrorGet(FOciError,1,nil,errcode,@buf[0],1024,OCI_HTYPE_ERROR);
- if (Self.Name <> '') then
- E := EOraDatabaseError.CreateFmt('%s : %s',[Self.Name,pchar(buf)])
- else
- E := EOraDatabaseError.Create(pchar(buf));
-
- E.ErrorCode := errcode;
- Raise E;
+ raise EOraDatabaseError.CreateFmt(pchar(buf), [], Self, errcode, '')
end;
-procedure TOracleConnection.GetParameters(cursor: TSQLCursor; AParams: TParams);
+procedure TOracleConnection.GetParameters(cursor: TSQLCursor; ATransaction : TSQLTransaction; AParams: TParams);
var
i : integer;
odt : TODateTime;
@@ -384,11 +379,10 @@ begin
end;
procedure TOracleConnection.DoInternalConnect;
-
var
ConnectString : string;
TempServiceContext : POCISvcCtx;
-
+ IsConnected : boolean;
begin
{$IfDef LinkDynamically}
InitialiseOCI;
@@ -397,42 +391,78 @@ begin
inherited DoInternalConnect;
//todo: get rid of FUserMem, as it isn't used
FUserMem := nil;
+ IsConnected := false;
- // Create environment handle
- if OCIEnvCreate(FOciEnvironment,oci_default,nil,nil,nil,nil,0,FUserMem) <> OCI_SUCCESS then
- DatabaseError(SErrEnvCreateFailed,self);
- // Create error handle
- if OciHandleAlloc(FOciEnvironment,FOciError,OCI_HTYPE_ERROR,0,FUserMem) <> OCI_SUCCESS then
- DatabaseError(SErrHandleAllocFailed,self);
- // Create Server handle
- if OciHandleAlloc(FOciEnvironment,FOciServer,OCI_HTYPE_SERVER,0,FUserMem) <> OCI_SUCCESS then
- DatabaseError(SErrHandleAllocFailed,self);
- // Initialize Server handle
- if hostname='' then connectstring := databasename
- else connectstring := '//'+hostname+'/'+databasename;
- if OCIServerAttach(FOciServer,FOciError,@(ConnectString[1]),Length(ConnectString),OCI_DEFAULT) <> OCI_SUCCESS then
- HandleError();
+ try
+ // Create environment handle
+ if OCIEnvCreate(FOciEnvironment,OCI_DEFAULT,nil,nil,nil,nil,0,FUserMem) <> OCI_SUCCESS then
+ DatabaseError(SErrEnvCreateFailed,self);
+ // Create error handle
+ if OciHandleAlloc(FOciEnvironment,FOciError,OCI_HTYPE_ERROR,0,FUserMem) <> OCI_SUCCESS then
+ DatabaseError(SErrHandleAllocFailed,self);
+ // Create server handle
+ if OciHandleAlloc(FOciEnvironment,FOciServer,OCI_HTYPE_SERVER,0,FUserMem) <> OCI_SUCCESS then
+ DatabaseError(SErrHandleAllocFailed,self);
- // Create temporary service-context handle for user authentication
- if OciHandleAlloc(FOciEnvironment,TempServiceContext,OCI_HTYPE_SVCCTX,0,FUserMem) <> OCI_SUCCESS then
- DatabaseError(SErrHandleAllocFailed,self);
+ // Initialize server handle
+ if hostname='' then
+ connectstring := databasename
+ else
+ connectstring := '//'+hostname+'/'+databasename;
+ if OCIServerAttach(FOciServer,FOciError,@(ConnectString[1]),Length(ConnectString),OCI_DEFAULT) <> OCI_SUCCESS then
+ HandleError();
- // Create user-session handle
- if OciHandleAlloc(FOciEnvironment,FOciUserSession,OCI_HTYPE_SESSION,0,FUserMem) <> OCI_SUCCESS then
- DatabaseError(SErrHandleAllocFailed,self);
- // Set the server-handle in the service-context handle
- if OCIAttrSet(TempServiceContext,OCI_HTYPE_SVCCTX,FOciServer,0,OCI_ATTR_SERVER,FOciError) <> OCI_SUCCESS then
- HandleError();
- // Set username and password in the user-session handle
- if OCIAttrSet(FOciUserSession,OCI_HTYPE_SESSION,@(Self.UserName[1]),Length(Self.UserName),OCI_ATTR_USERNAME,FOciError) <> OCI_SUCCESS then
- HandleError();
- if OCIAttrSet(FOciUserSession,OCI_HTYPE_SESSION,@(Self.Password[1]),Length(Self.Password),OCI_ATTR_PASSWORD,FOciError) <> OCI_SUCCESS then
- HandleError();
- // Authenticate
- if OCISessionBegin(TempServiceContext,FOciError,FOcIUserSession,OCI_CRED_RDBMS,OCI_DEFAULT) <> OCI_SUCCESS then
- HandleError();
- // Free temporary service-context handle
- OCIHandleFree(TempServiceContext,OCI_HTYPE_SVCCTX);
+ try
+ // Create temporary service-context handle for user authentication
+ if OciHandleAlloc(FOciEnvironment,TempServiceContext,OCI_HTYPE_SVCCTX,0,FUserMem) <> OCI_SUCCESS then
+ DatabaseError(SErrHandleAllocFailed,self);
+
+ try
+ // Create user-session handle
+ if OciHandleAlloc(FOciEnvironment,FOciUserSession,OCI_HTYPE_SESSION,0,FUserMem) <> OCI_SUCCESS then
+ DatabaseError(SErrHandleAllocFailed,self);
+ try
+ // Set the server-handle in the service-context handle
+ if OCIAttrSet(TempServiceContext,OCI_HTYPE_SVCCTX,FOciServer,0,OCI_ATTR_SERVER,FOciError) <> OCI_SUCCESS then
+ HandleError();
+ // Set username and password in the user-session handle
+ if OCIAttrSet(FOciUserSession,OCI_HTYPE_SESSION,@(Self.UserName[1]),Length(Self.UserName),OCI_ATTR_USERNAME,FOciError) <> OCI_SUCCESS then
+ HandleError();
+ if OCIAttrSet(FOciUserSession,OCI_HTYPE_SESSION,@(Self.Password[1]),Length(Self.Password),OCI_ATTR_PASSWORD,FOciError) <> OCI_SUCCESS then
+ HandleError();
+ // Authenticate
+ if OCISessionBegin(TempServiceContext,FOciError,FOcIUserSession,OCI_CRED_RDBMS,OCI_DEFAULT) <> OCI_SUCCESS then
+ HandleError();
+ IsConnected := true;
+ finally
+ if not IsConnected then
+ begin
+ OCIHandleFree(FOciUserSession,OCI_HTYPE_SESSION);
+ FOciUserSession := nil;
+ end;
+ end;
+ finally
+ // Free temporary service-context handle
+ OCIHandleFree(TempServiceContext,OCI_HTYPE_SVCCTX);
+ end;
+ finally
+ if not IsConnected then
+ OCIServerDetach(FOciServer,FOciError,OCI_DEFAULT);
+ end;
+ finally
+ if not IsConnected then
+ begin
+ if assigned(FOciServer) then
+ OCIHandleFree(FOciServer,OCI_HTYPE_SERVER);
+ if assigned(FOciError) then
+ OCIHandleFree(FOciError,OCI_HTYPE_ERROR);
+ if assigned(FOciEnvironment) then
+ OCIHandleFree(FOciEnvironment,OCI_HTYPE_ENV);
+ FOciEnvironment := nil;
+ FOciError := nil;
+ FOciServer := nil;
+ end;
+ end;
end;
procedure TOracleConnection.DoInternalDisconnect;
@@ -441,36 +471,56 @@ var
begin
inherited DoInternalDisconnect;
- // Create temporary service-context handle for user-disconnect
- if OciHandleAlloc(FOciEnvironment,TempServiceContext,OCI_HTYPE_SVCCTX,0,FUserMem) <> OCI_SUCCESS then
- DatabaseError(SErrHandleAllocFailed,self);
-
- // Set the server handle in the service-context handle
- if OCIAttrSet(TempServiceContext,OCI_HTYPE_SVCCTX,FOciServer,0,OCI_ATTR_SERVER,FOciError) <> OCI_SUCCESS then
- HandleError();
- // Set the user session handle in the service-context handle
- if OCIAttrSet(TempServiceContext,OCI_HTYPE_SVCCTX,FOciUserSession,0,OCI_ATTR_SESSION,FOciError) <> OCI_SUCCESS then
- HandleError();
- // Disconnect uses-session handle
- if OCISessionEnd(TempServiceContext,FOciError,FOcIUserSession,OCI_DEFAULT) <> OCI_SUCCESS then
- HandleError();
- // Free user-session handle
- OCIHandleFree(FOciUserSession,OCI_HTYPE_SESSION);
- // Free temporary service-context handle
- OCIHandleFree(TempServiceContext,OCI_HTYPE_SVCCTX);
-
- // Disconnect server handle
- if OCIServerDetach(FOciServer,FOciError,OCI_DEFAULT) <> OCI_SUCCESS then
- HandleError();
+ if assigned(FOciEnvironment) then
+ begin
+ if assigned(FOciError) then
+ begin
+ if assigned(FOciServer) then
+ begin
+ if assigned(FOciUserSession) then
+ begin
+ try
+ // Create temporary service-context handle for user-disconnect
+ if OciHandleAlloc(FOciEnvironment,TempServiceContext,OCI_HTYPE_SVCCTX,0,FUserMem) <> OCI_SUCCESS then
+ DatabaseError(SErrHandleAllocFailed,self);
+
+ // Set the server handle in the service-context handle
+ if OCIAttrSet(TempServiceContext,OCI_HTYPE_SVCCTX,FOciServer,0,OCI_ATTR_SERVER,FOciError) <> OCI_SUCCESS then
+ HandleError();
+ // Set the user session handle in the service-context handle
+ if OCIAttrSet(TempServiceContext,OCI_HTYPE_SVCCTX,FOciUserSession,0,OCI_ATTR_SESSION,FOciError) <> OCI_SUCCESS then
+ HandleError();
+ // Disconnect uses-session handle
+ if OCISessionEnd(TempServiceContext,FOciError,FOcIUserSession,OCI_DEFAULT) <> OCI_SUCCESS then
+ HandleError();
+ finally
+ // Free user-session handle
+ OCIHandleFree(FOciUserSession,OCI_HTYPE_SESSION);
+ // Free temporary service-context handle
+ OCIHandleFree(TempServiceContext,OCI_HTYPE_SVCCTX);
+ FOciUserSession := nil;
+ end;
+ end;
- // Free connection handles
- OCIHandleFree(FOciServer,OCI_HTYPE_SERVER);
- OCIHandleFree(FOciError,OCI_HTYPE_ERROR);
- OCIHandleFree(FOciEnvironment,OCI_HTYPE_ENV);
+ try
+ // Disconnect server handle
+ if OCIServerDetach(FOciServer,FOciError,OCI_DEFAULT) <> OCI_SUCCESS then
+ HandleError();
+ finally
+ // Free connection handles
+ OCIHandleFree(FOciServer,OCI_HTYPE_SERVER);
+ FOciServer := nil;
+ end;
+ end;
+ OCIHandleFree(FOciError,OCI_HTYPE_ERROR);
+ FOciError := nil;
+ end;
+ OCIHandleFree(FOciEnvironment,OCI_HTYPE_ENV);
+ FOciEnvironment := nil;
+ end;
{$IfDef LinkDynamically}
ReleaseOCI;
{$EndIf}
-
end;
function TOracleConnection.AllocateCursorHandle: TSQLCursor;
@@ -568,6 +618,7 @@ begin
end;
if FStatementType in [stUpdate,stDelete,stInsert,stDDL] then
FSelectable:=false;
+
if assigned(AParams) then
begin
setlength(ParamBuffers,AParams.Count);
@@ -588,7 +639,8 @@ begin
ftFMTBcd, ftBCD :
begin OFieldType := SQLT_VNU; OFieldSize := 22; end;
ftBlob :
- begin OFieldType := SQLT_LVB; OFieldSize := 65535; end;
+ //begin OFieldType := SQLT_LVB; OFieldSize := 65535; end;
+ begin OFieldType := SQLT_BLOB; OFieldSize := sizeof(pointer); ODescType := OCI_DTYPE_LOB; end;
ftMemo :
begin OFieldType := SQLT_LVC; OFieldSize := 65535; end;
else
@@ -629,13 +681,13 @@ begin
end;
end;
-procedure TOracleConnection.SetParameters(cursor : TSQLCursor; AParams : TParams);
+procedure TOracleConnection.SetParameters(cursor : TSQLCursor; ATransaction : TSQLTransaction; AParams : TParams);
-var i : integer;
+var i : integer;
year, month, day, hour, min, sec, msec : word;
- s : string;
- blobbuf : string;
- bloblen : ub4;
+ s : string;
+ LobBuffer : string;
+ LobLength : ub4;
begin
with cursor as TOracleCursor do for i := 0 to High(ParamBuffers) do with AParams[i] do
@@ -671,14 +723,21 @@ begin
ftFmtBCD, ftBCD : begin
FmtBCD2Nvu(asFmtBCD,parambuffers[i].buffer);
end;
- ftBlob, ftMemo : begin
- blobbuf := AsBlob; // todo: use AsBytes
- bloblen := length(blobbuf);
- if bloblen > 65531 then bloblen := 65531;
- PInteger(ParamBuffers[i].Buffer)^ := bloblen;
- Move(blobbuf[1], (ParamBuffers[i].Buffer+sizeof(integer))^, bloblen);
- //if OciLobWrite(TOracleTrans(ATransaction.Handle).FOciSvcCtx, FOciError, ParamBuffers[i].buffer, @bloblen, 1, @blobbuf[1], bloblen, OCI_ONE_PIECE, nil, nil, 0, SQLCS_IMPLICIT) = OCI_ERROR then
- // HandleError;
+ ftBlob : begin
+ LobBuffer := AsBlob; // todo: use AsBytes
+ LobLength := length(LobBuffer);
+ // create empty temporary LOB with zero length
+ if OciLobCreateTemporary(TOracleTrans(ATransaction.Handle).FOciSvcCtx, FOciError, ParamBuffers[i].Buffer, OCI_DEFAULT, OCI_DEFAULT, OCI_TEMP_BLOB, False, OCI_DURATION_SESSION) = OCI_ERROR then
+ HandleError;
+ if (LobLength > 0) and (OciLobWrite(TOracleTrans(ATransaction.Handle).FOciSvcCtx, FOciError, ParamBuffers[i].Buffer, @LobLength, 1, @LobBuffer[1], LobLength, OCI_ONE_PIECE, nil, nil, 0, SQLCS_IMPLICIT) = OCI_ERROR) then
+ HandleError;
+ end;
+ ftMemo : begin
+ LobBuffer := AsString;
+ LobLength := length(LobBuffer);
+ if LobLength > 65531 then LobLength := 65531;
+ PInteger(ParamBuffers[i].Buffer)^ := LobLength;
+ Move(LobBuffer[1], (ParamBuffers[i].Buffer+sizeof(integer))^, LobLength);
end;
else
DatabaseErrorFmt(SUnsupportedParameter,[DataType],self);
@@ -763,8 +822,17 @@ begin
end;
procedure TOracleConnection.Execute(cursor: TSQLCursor; ATransaction: TSQLTransaction; AParams: TParams);
+ procedure FreeParameters;
+ var i: integer;
+ begin
+ with cursor as TOracleCursor do
+ for i:=0 to high(ParamBuffers) do
+ if ParamBuffers[i].DescType = OCI_DTYPE_LOB then
+ if OciLobFreeTemporary(TOracleTrans(ATransaction.Handle).FOciSvcCtx, FOciError, ParamBuffers[i].Buffer) = OCI_ERROR then
+ HandleError;
+ end;
begin
- if Assigned(AParams) and (AParams.Count > 0) then SetParameters(cursor, AParams);
+ if Assigned(AParams) and (AParams.Count > 0) then SetParameters(cursor, ATransaction, AParams);
if cursor.FStatementType = stSelect then
begin
if OCIStmtExecute(TOracleTrans(ATransaction.Handle).FOciSvcCtx,(cursor as TOracleCursor).FOciStmt,FOciError,0,0,nil,nil,OCI_DEFAULT) = OCI_ERROR then
@@ -774,8 +842,9 @@ begin
begin
if OCIStmtExecute(TOracleTrans(ATransaction.Handle).FOciSvcCtx,(cursor as TOracleCursor).FOciStmt,FOciError,1,0,nil,nil,OCI_DEFAULT) = OCI_ERROR then
HandleError;
- if Assigned(AParams) and (AParams.Count > 0) then GetParameters(cursor, AParams);
+ if Assigned(AParams) and (AParams.Count > 0) then GetParameters(cursor, ATransaction, AParams);
end;
+ FreeParameters;
end;
function TOracleConnection.RowsAffected(cursor: TSQLCursor): TRowsCount;
@@ -892,7 +961,12 @@ begin
OFieldSize:=sizeof(double);
end;
end;
- SQLT_LNG,
+ SQLT_LNG : begin
+ FieldType := ftString;
+ FieldSize := MaxSmallint; // OFieldSize is zero for LONG data type
+ OFieldSize:= MaxSmallint+1;
+ OFieldType:=SQLT_STR;
+ end;
OCI_TYPECODE_CHAR,
OCI_TYPECODE_VARCHAR,
OCI_TYPECODE_VARCHAR2 : begin
@@ -1044,17 +1118,20 @@ end;
procedure TOracleConnection.LoadBlobIntoBuffer(FieldDef: TFieldDef; ABlobBuf: PBufBlobField; cursor: TSQLCursor; ATransaction: TSQLTransaction);
var LobLocator: pointer;
- len: ub4;
+ LobCharSetForm: ub1;
+ LobLength: ub4;
begin
LobLocator := (cursor as TOracleCursor).FieldBuffers[FieldDef.FieldNo-1].Buffer;
//if OCILobLocatorIsInit(TOracleTrans(ATransaction.Handle).FOciSvcCtx, FOciError, LobLocator, @is_init) = OCI_ERROR then
// HandleError;
- if OciLobGetLength(TOracleTrans(ATransaction.Handle).FOciSvcCtx, FOciError, LobLocator, @len) = OCI_ERROR then
+ // For character LOBs, it is the number of characters, for binary LOBs and BFILEs it is the number of bytes
+ if OciLobGetLength(TOracleTrans(ATransaction.Handle).FOciSvcCtx, FOciError, LobLocator, @LobLength) = OCI_ERROR then
+ HandleError;
+ if OCILobCharSetForm(FOciEnvironment, FOciError, LobLocator, @LobCharSetForm) = OCI_ERROR then
HandleError;
- // Len - For character LOBs, it is the number of characters, for binary LOBs and BFILEs it is the number of bytes
- ReAllocMem(ABlobBuf^.BlobBuffer^.Buffer, len);
- ABlobBuf^.BlobBuffer^.Size := len;
- if OciLobRead(TOracleTrans(ATransaction.Handle).FOciSvcCtx, FOciError, LobLocator, @len, 1, ABlobBuf^.BlobBuffer^.Buffer, len, nil, nil, 0, SQLCS_IMPLICIT) = OCI_ERROR then
+ ReAllocMem(ABlobBuf^.BlobBuffer^.Buffer, LobLength);
+ ABlobBuf^.BlobBuffer^.Size := LobLength;
+ if (LobLength > 0) and (OciLobRead(TOracleTrans(ATransaction.Handle).FOciSvcCtx, FOciError, LobLocator, @LobLength, 1, ABlobBuf^.BlobBuffer^.Buffer, LobLength, nil, nil, 0, LobCharSetForm) = OCI_ERROR) then
HandleError;
end;
@@ -1123,7 +1200,8 @@ begin
stTables : s := 'SELECT '+
'''' + DatabaseName + ''' as catalog_name, '+
'sys_context( ''userenv'', ''current_schema'' ) as schema_name, '+
- 'TABLE_NAME '+
+ 'TABLE_NAME,'+
+ 'TABLE_TYPE '+
'FROM USER_CATALOG ' +
'WHERE '+
'TABLE_TYPE<>''SEQUENCE'' '+
@@ -1132,20 +1210,22 @@ begin
stSysTables : s := 'SELECT '+
'''' + DatabaseName + ''' as catalog_name, '+
'OWNER as schema_name, '+
- 'TABLE_NAME '+
+ 'TABLE_NAME,'+
+ 'TABLE_TYPE '+
'FROM ALL_CATALOG ' +
'WHERE '+
'TABLE_TYPE<>''SEQUENCE'' '+
'ORDER BY TABLE_NAME';
stColumns : s := 'SELECT '+
+ 'OWNER as schema_name, '+
'COLUMN_NAME, '+
'DATA_TYPE as column_datatype, '+
'CHARACTER_SET_NAME, '+
'NULLABLE as column_nullable, '+
'DATA_LENGTH as column_length, '+
'DATA_PRECISION as column_precision, '+
- 'DATA_SCALE as column_scale '+
- {DATA_DEFAULT is type LONG; no support for that in oracleconnection so removed this from query}
+ 'DATA_SCALE as column_scale, '+
+ 'DATA_DEFAULT as column_default '+
'FROM ALL_TAB_COLUMNS '+
'WHERE Upper(TABLE_NAME) = '''+UpperCase(SchemaObjectName)+''' '+
'ORDER BY COLUMN_NAME';
@@ -1163,6 +1243,10 @@ constructor TOracleConnection.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FConnOptions := FConnOptions + [sqEscapeRepeat];
+ FOciEnvironment := nil;
+ FOciError := nil;
+ FOciServer := nil;
+ FOciUserSession := nil;
FUserMem := nil;
end;
diff --git a/packages/fcl-db/src/sqldb/postgres/Makefile b/packages/fcl-db/src/sqldb/postgres/Makefile
index c83b09797d..91dfe0fe73 100644
--- a/packages/fcl-db/src/sqldb/postgres/Makefile
+++ b/packages/fcl-db/src/sqldb/postgres/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=pqconnection pqeventmonitor
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=pqconnection pqeventmonitor
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=pqconnection pqeventmonitor
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=pqconnection pqeventmonitor
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=pqconnection pqeventmonitor
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=pqconnection pqeventmonitor
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=pqconnection pqeventmonitor
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=pqconnection pqeventmonitor
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=pqconnection pqeventmonitor
endif
@@ -612,6 +627,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=pqconnection
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=pqconnection
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=pqconnection
endif
@@ -699,6 +717,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=pqconnection
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=pqconnection
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=pqconnection
endif
@@ -753,6 +774,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_RSTS+=pqconnection
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_RSTS+=pqconnection
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_RSTS+=pqconnection
endif
@@ -835,6 +859,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2
endif
@@ -922,6 +949,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2
endif
@@ -976,6 +1006,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2
endif
@@ -1230,6 +1263,12 @@ 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=
@@ -1275,6 +1314,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1857,6 +1901,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_POSTGRES=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_POSTGRES=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2147,6 +2201,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_POSTGRES=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_POSTGRES=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2327,6 +2391,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_POSTGRES=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_POSTGRES=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2784,7 +2858,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2814,17 +2888,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/sqldb/postgres/fpmake.inc b/packages/fcl-db/src/sqldb/postgres/fpmake.inc
index d9c7a0a135..92f4d2e876 100644
--- a/packages/fcl-db/src/sqldb/postgres/fpmake.inc
+++ b/packages/fcl-db/src/sqldb/postgres/fpmake.inc
@@ -6,7 +6,7 @@
Targets.ResetDefaults;
Targets.DefaultDir:='db/sqldb/postgres';
{ Drivers only for the following OSes }
-Targets.DefaultOS:=[win32,openbsd,netbsd,freebsd,darwin,linux,haiku];
+Targets.DefaultOS:=[win32,openbsd,netbsd,freebsd,darwin,linux,haiku,dragonfly];
T:=Targets.AddUnit('pqconnection');
T.ResourceStrings:=True;
T:=Targets.AddUnit('pqeventmonitor');
diff --git a/packages/fcl-db/src/sqldb/postgres/pqconnection.pp b/packages/fcl-db/src/sqldb/postgres/pqconnection.pp
index 48c24e8b58..bcf43828a1 100644
--- a/packages/fcl-db/src/sqldb/postgres/pqconnection.pp
+++ b/packages/fcl-db/src/sqldb/postgres/pqconnection.pp
@@ -21,10 +21,10 @@ type
TPQTrans = Class(TSQLHandle)
protected
- PGConn : PPGConn;
- FList : TThreadList;
- Procedure RegisterCursor(S : TPQCursor);
- Procedure UnRegisterCursor(S : TPQCursor);
+ PGConn : PPGConn;
+ FList : TThreadList;
+ Procedure RegisterCursor(Cursor : TPQCursor);
+ Procedure UnRegisterCursor(Cursor : TPQCursor);
Public
Constructor Create;
Destructor Destroy; override;
@@ -60,6 +60,8 @@ type
Destructor Destroy; override;
end;
+ { EPQDatabaseError }
+
EPQDatabaseError = class(EDatabaseError)
public
SEVERITY:string;
@@ -70,6 +72,8 @@ type
STATEMENT_POSITION:string;
end;
+ { TPQTranConnection }
+
TPQTranConnection = class
protected
FPGConn : PPGConn;
@@ -116,6 +120,7 @@ type
function RollBack(trans : TSQLHandle) : boolean; override;
function Commit(trans : TSQLHandle) : boolean; override;
procedure CommitRetaining(trans : TSQLHandle); override;
+ function StartImplicitTransaction(trans : TSQLHandle; AParams : string) : boolean; override;
function StartdbTransaction(trans : TSQLHandle; AParams : string) : boolean; override;
procedure RollBackRetaining(trans : TSQLHandle); override;
procedure UpdateIndexDefs(IndexDefs : TIndexDefs;TableName : string); override;
@@ -124,7 +129,7 @@ type
function RowsAffected(cursor: TSQLCursor): TRowsCount; override;
public
constructor Create(AOwner : TComponent); override;
- destructor destroy; override;
+ destructor Destroy; override;
function GetConnectionInfo(InfoType:TConnInfoType): string; override;
procedure CreateDB; override;
procedure DropDB; override;
@@ -188,23 +193,12 @@ const Oid_Bool = 16;
oid_numeric = 1700;
Oid_uuid = 2950;
-{ TPQTrans }
-procedure TPQTrans.RegisterCursor(S: TPQCursor);
-begin
- FList.Add(S);
- S.tr:=Self;
-end;
-
-procedure TPQTrans.UnRegisterCursor(S: TPQCursor);
-begin
- S.tr:=Nil;
- FList.Remove(S);
-end;
+{ TPQTrans }
constructor TPQTrans.Create;
begin
- Flist:=TThreadList.Create;
+ FList:=TThreadList.Create;
FList.Duplicates:=dupIgnore;
end;
@@ -215,19 +209,39 @@ Var
I : integer;
begin
- L:=Flist.LockList;
+ L:=FList.LockList;
try
For I:=0 to L.Count-1 do
TPQCursor(L[i]).tr:=Nil;
finally
- Flist.UnlockList;
+ FList.UnlockList;
end;
FreeAndNil(FList);
inherited Destroy;
end;
+procedure TPQTrans.RegisterCursor(Cursor: TPQCursor);
+begin
+ FList.Add(Cursor);
+ Cursor.tr:=Self;
+end;
+
+procedure TPQTrans.UnRegisterCursor(Cursor: TPQCursor);
+begin
+ Cursor.tr:=Nil;
+ FList.Remove(Cursor);
+end;
+
+
{ TPQCursor }
+destructor TPQCursor.Destroy;
+begin
+ if Assigned(tr) then
+ tr.UnRegisterCursor(Self);
+ inherited Destroy;
+end;
+
function TPQCursor.GetFieldBinding(F: TFieldDef): PFieldBinding;
Var
@@ -251,25 +265,20 @@ begin
end;
end;
-destructor TPQCursor.Destroy;
-begin
- if Assigned(tr) then
- Tr.UnRegisterCursor(Self);
- inherited Destroy;
-end;
+{ TPQConnection }
constructor TPQConnection.Create(AOwner : TComponent);
begin
inherited;
- FConnOptions := FConnOptions + [sqSupportParams, sqSupportEmptyDatabaseName, sqEscapeRepeat, sqEscapeSlash];
+ FConnOptions := FConnOptions + [sqSupportParams, sqSupportEmptyDatabaseName, sqEscapeRepeat, sqEscapeSlash, sqImplicitTransaction];
FieldNameQuoteChars:=DoubleQuotes;
VerboseErrors:=True;
FConnectionPool:=TThreadlist.Create;
end;
-destructor TPQConnection.destroy;
+destructor TPQConnection.Destroy;
begin
// We must disconnect here. If it is done in inherited, then connection pool is gone.
Connected:=False;
@@ -322,7 +331,8 @@ begin
{$EndIf}
end;
-procedure TPQConnection.GetExtendedFieldInfo(cursor: TPQCursor; Bindings: TFieldBindings);
+Procedure TPQConnection.GetExtendedFieldInfo(cursor: TPQCursor;
+ Bindings: TFieldBindings);
Var
tt,tc,Tn,S : String;
@@ -376,7 +386,7 @@ begin
P.SQLDBData:=TPQCursor(C).GetFieldBinding(F.FieldDef);
end;
-function TPQConnection.ErrorOnUnknownType: Boolean;
+Function TPQConnection.ErrorOnUnknownType: Boolean;
begin
Result:=False;
end;
@@ -430,6 +440,7 @@ var
begin
result := false;
tr := trans as TPQTrans;
+ // unprepare statements associated with given transaction
L:=tr.FList.LockList;
try
For I:=0 to L.Count-1 do
@@ -439,8 +450,9 @@ begin
end;
L.Clear;
finally
- tr.flist.UnlockList;
+ tr.FList.UnlockList;
end;
+
res := PQexec(tr.PGConn, 'ROLLBACK');
CheckResultError(res,tr.PGConn,SErrRollbackFailed);
PQclear(res);
@@ -463,23 +475,50 @@ begin
result := true;
end;
-function TPQConnection.StartdbTransaction(trans : TSQLHandle; AParams : string) : boolean;
+procedure TPQConnection.RollBackRetaining(trans : TSQLHandle);
+var
+ res : PPGresult;
+ tr : TPQTrans;
+begin
+ tr := trans as TPQTrans;
+ res := PQexec(tr.PGConn, 'ROLLBACK');
+ CheckResultError(res,tr.PGConn,SErrRollbackFailed);
+
+ PQclear(res);
+ res := PQexec(tr.PGConn, 'BEGIN');
+ CheckResultError(res,tr.PGConn,sErrTransactionFailed);
+
+ PQclear(res);
+end;
+
+procedure TPQConnection.CommitRetaining(trans : TSQLHandle);
var
res : PPGresult;
tr : TPQTrans;
- i : Integer;
- t : TPQTranConnection;
- L : TList;
begin
- result:=false;
tr := trans as TPQTrans;
+ res := PQexec(tr.PGConn, 'COMMIT');
+ CheckResultError(res,tr.PGConn,SErrCommitFailed);
+
+ PQclear(res);
+ res := PQexec(tr.PGConn, 'BEGIN');
+ CheckResultError(res,tr.PGConn,sErrTransactionFailed);
+ PQclear(res);
+end;
+
+function TPQConnection.StartImplicitTransaction(trans : TSQLHandle; AParams : string) : boolean;
+var
+ i : Integer;
+ T : TPQTranConnection;
+ L : TList;
+begin
//find an unused connection in the pool
i:=0;
- t:=Nil;
+ T:=Nil;
L:=FConnectionPool.LockList;
try
- while (I<L.Count) do
+ while (i<L.Count) do
begin
T:=TPQTranConnection(L[i]);
if (T.FPGConn=nil) or not T.FTranActive then
@@ -495,60 +534,42 @@ begin
finally
FConnectionPool.UnLockList;
end;
+
if (T=Nil) then
begin
T:=TPQTranConnection.Create;
T.FTranActive:=True;
AddConnection(T);
end;
- if (T.FPGConn<>nil) then
- tr.PGConn:=T.FPGConn
- else
+
+ if (T.FPGConn=nil) then
begin
- tr.PGConn := PQconnectdb(pchar(FConnectString));
- T.FPGConn:=tr.PGConn;
- CheckConnectionStatus(tr.PGConn);
+ T.FPGConn := PQconnectdb(pchar(FConnectString));
+ CheckConnectionStatus(T.FPGConn);
if CharSet <> '' then
- PQsetClientEncoding(tr.PGConn, pchar(CharSet));
+ PQsetClientEncoding(T.FPGConn, pchar(CharSet));
end;
- res := PQexec(tr.PGConn, 'BEGIN');
- CheckResultError(res,tr.PGConn,sErrTransactionFailed);
-
- PQclear(res);
- result := true;
+ TPQTrans(trans).PGConn := T.FPGConn;
+ Result := true;
end;
-procedure TPQConnection.RollBackRetaining(trans : TSQLHandle);
-var
- res : PPGresult;
- tr : TPQTrans;
-begin
- tr := trans as TPQTrans;
- res := PQexec(tr.PGConn, 'ROLLBACK');
- CheckResultError(res,tr.PGConn,SErrRollbackFailed);
-
- PQclear(res);
- res := PQexec(tr.PGConn, 'BEGIN');
- CheckResultError(res,tr.PGConn,sErrTransactionFailed);
-
- PQclear(res);
-end;
+function TPQConnection.StartDBTransaction(trans: TSQLHandle;
+ AParams: string): boolean;
-procedure TPQConnection.CommitRetaining(trans : TSQLHandle);
-var
+Var
res : PPGresult;
tr : TPQTrans;
-begin
- tr := trans as TPQTrans;
- res := PQexec(tr.PGConn, 'COMMIT');
- CheckResultError(res,tr.PGConn,SErrCommitFailed);
-
- PQclear(res);
- res := PQexec(tr.PGConn, 'BEGIN');
- CheckResultError(res,tr.PGConn,sErrTransactionFailed);
- PQclear(res);
+begin
+ Result:=StartImplicitTransaction(trans, AParams);
+ if Result then
+ begin
+ tr := trans as TPQTrans;
+ res := PQexec(tr.PGConn, 'BEGIN');
+ CheckResultError(res,tr.PGConn,sErrTransactionFailed);
+ PQclear(res);
+ end;
end;
@@ -648,9 +669,21 @@ var
MESSAGE_DETAIL: string;
MESSAGE_HINT: string;
STATEMENT_POSITION: string;
+ P : Pchar;
+ haveError : Boolean;
+
begin
- if (PQresultStatus(res) <> PGRES_COMMAND_OK) then
+ HaveError:=False;
+ if (Res=Nil) then
+ begin
+ HaveError:=True;
+ P:=PQerrorMessage(conn);
+ If Assigned(p) then
+ ErrMsg:=StrPas(P);
+ end
+ else if (PQresultStatus(res) <> PGRES_COMMAND_OK) then
begin
+ HaveError:=True;
SEVERITY:=PQresultErrorField(res,ord('S'));
SQLSTATE:=PQresultErrorField(res,ord('C'));
MESSAGE_PRIMARY:=PQresultErrorField(res,ord('M'));
@@ -667,6 +700,9 @@ begin
MaybeAdd(sErr,'Hint',MESSAGE_HINT);
MaybeAdd(sErr,'Character',STATEMENT_POSITION);
end;
+ end;
+ if HaveError then
+ begin
if (Self.Name='') then CompName := Self.ClassName else CompName := Self.Name;
E:=EPQDatabaseError.CreateFmt('%s : %s (PostgreSQL: %s)', [CompName, ErrMsg, sErr]);
E.SEVERITY:=SEVERITY;
@@ -675,7 +711,6 @@ begin
E.MESSAGE_DETAIL:=MESSAGE_DETAIL;
E.MESSAGE_HINT:=MESSAGE_HINT;
E.STATEMENT_POSITION:=STATEMENT_POSITION;
-
PQclear(res);
res:=nil;
if assigned(conn) then
@@ -688,7 +723,7 @@ begin
end;
function TPQConnection.TranslateFldType(res: PPGresult; Tuple: integer; out
- Size: integer; out ATypeOID: oid): TFieldType;
+ Size: integer; Out ATypeOID: oid): TFieldType;
const
VARHDRSZ=sizeof(longint);
@@ -769,18 +804,18 @@ begin
end;
end;
-function TPQConnection.AllocateCursorHandle: TSQLCursor;
+Function TPQConnection.AllocateCursorHandle: TSQLCursor;
begin
result := TPQCursor.create;
end;
-procedure TPQConnection.DeAllocateCursorHandle(var cursor: TSQLCursor);
+Procedure TPQConnection.DeAllocateCursorHandle(var cursor: TSQLCursor);
begin
FreeAndNil(cursor);
end;
-function TPQConnection.AllocateTransactionHandle: TSQLHandle;
+Function TPQConnection.AllocateTransactionHandle: TSQLHandle;
begin
result := TPQTrans.create;
@@ -918,7 +953,7 @@ begin
res:=nil;
if FPrepared then
begin
- if PQtransactionStatus(tr.PGConn) <> PQTRANS_INERROR then
+ if assigned(tr) and (PQtransactionStatus(tr.PGConn) <> PQTRANS_INERROR) then
begin
res := PQexec(tr.PGConn,pchar('deallocate '+StmtName));
CheckResultError(res,nil,SErrUnPrepareFailed);
@@ -1000,7 +1035,7 @@ begin
end
else
begin
- // Registercursor sets tr
+ // RegisterCursor sets tr
TPQTrans(aTransaction.Handle).RegisterCursor(Cursor as TPQCursor);
if Assigned(AParams) and (AParams.Count > 0) then
@@ -1090,7 +1125,7 @@ begin
end
else
if ErrorOnUnknownType then
- DatabaseError('unhandled field type :'+FB^.TypeName,Self);
+ DatabaseError('Unhandled field type :'+FB^.TypeName,Self);
end;
end;
end;
diff --git a/packages/fcl-db/src/sqldb/sqldb.pp b/packages/fcl-db/src/sqldb/sqldb.pp
index c964cc8427..0c39f9d5c0 100644
--- a/packages/fcl-db/src/sqldb/sqldb.pp
+++ b/packages/fcl-db/src/sqldb/sqldb.pp
@@ -24,9 +24,7 @@ uses SysUtils, Classes, DB, bufdataset, sqlscript;
type
TSchemaType = (stNoSchema, stTables, stSysTables, stProcedures, stColumns, stProcedureParams, stIndexes, stPackages, stSchemata);
- TConnOption = (sqSupportParams, sqSupportEmptyDatabaseName, sqEscapeSlash, sqEscapeRepeat);
- TConnOptions= set of TConnOption;
- TConnInfoType=(citAll=-1, citServerType, citServerVersion, citServerVersionString, citClientName, citClientVersion);
+
TStatementType = (stUnknown, stSelect, stInsert, stUpdate, stDelete,
stDDL, stGetSegment, stPutSegment, stExecProcedure,
stStartTrans, stCommit, stRollback, stSelectForUpd);
@@ -43,7 +41,6 @@ type
end;
-type
TSQLConnection = class;
TSQLTransaction = class;
TCustomSQLQuery = class;
@@ -141,9 +138,18 @@ type
{ TSQLConnection }
+ TConnOption = (sqSupportParams, sqSupportEmptyDatabaseName, sqEscapeSlash, sqEscapeRepeat, sqImplicitTransaction, sqLastInsertID);
+ TConnOptions= set of TConnOption;
+
+ TSQLConnectionOption = (scoExplicitConnect, scoApplyUpdatesChecksRowsAffected);
+ TSQLConnectionOptions = Set of TSQLConnectionOption;
+
+ TConnInfoType=(citAll=-1, citServerType, citServerVersion, citServerVersionString, citClientName, citClientVersion);
+
TSQLConnection = class (TDatabase)
private
FFieldNameQuoteChars : TQuoteChars;
+ FOptions : TSQLConnectionOptions;
FPassword : string;
FTransaction : TSQLTransaction;
FUserName : string;
@@ -153,24 +159,28 @@ type
FStatements : TFPList;
FLogEvents: TDBEventTypes;
FOnLog: TDBLogNotifyEvent;
+ FInternalTransaction : TSQLTransaction;
function GetPort: cardinal;
+ procedure SetOptions(AValue: TSQLConnectionOptions);
procedure SetPort(const AValue: cardinal);
protected
FConnOptions : TConnOptions;
FSQLFormatSettings : TFormatSettings;
+
// Updating of DB records is moved out of TSQLQuery.
// It is done here, so descendents can override it and implement DB-specific.
// One day, this may be factored out to a TSQLResolver class.
// The following allow construction of update queries. They can be adapted as needed by descendents to fit the DB engine.
procedure AddFieldToUpdateWherePart(var sql_where: string; UpdateMode : TUpdateMode; F: TField); virtual;
- function ConstructDeleteSQL(Query: TCustomSQLQuery): string; virtual;
function ConstructInsertSQL(Query: TCustomSQLQuery): string; virtual;
function ConstructUpdateSQL(Query: TCustomSQLQuery): string; virtual;
+ function ConstructDeleteSQL(Query: TCustomSQLQuery): string; virtual;
+ function ConstructRefreshSQL(Query: TCustomSQLQuery; UpdateKind : TUpdateKind): string; virtual;
function InitialiseUpdateStatement(Query: TCustomSQLQuery; var qry: TCustomSQLStatement): TCustomSQLStatement;
procedure ApplyFieldUpdate(C : TSQLCursor; P: TSQLDBParam; F: TField; UseOldValue: Boolean); virtual;
// This is the call that updates a record, it used to be in TSQLQuery.
procedure ApplyRecUpdate(Query : TCustomSQLQuery; UpdateKind : TUpdateKind); virtual;
- //
+ function RefreshLastInsertID(Query : TCustomSQLQuery; Field : TField): Boolean; virtual;
procedure GetDBInfo(const ASchemaType : TSchemaType; const ASchemaObjectName, AReturnField : string; AList: TStrings);
procedure SetTransaction(Value : TSQLTransaction); virtual;
procedure DoInternalConnect; override;
@@ -182,7 +192,6 @@ type
Procedure Log(EventType : TDBEventType; Const Msg : String); virtual;
Procedure RegisterStatement(S : TCustomSQLStatement);
Procedure UnRegisterStatement(S : TCustomSQLStatement);
-
Function AllocateCursorHandle : TSQLCursor; virtual; abstract;
Procedure DeAllocateCursorHandle(var cursor : TSQLCursor); virtual; abstract;
function StrToStatementType(s : string) : TStatementType; virtual;
@@ -200,6 +209,7 @@ type
function GetTransactionHandle(trans : TSQLHandle): pointer; virtual; abstract;
function Commit(trans : TSQLHandle) : boolean; virtual; abstract;
function RollBack(trans : TSQLHandle) : boolean; virtual; abstract;
+ function StartImplicitTransaction(trans : TSQLHandle; aParams : string) : boolean; virtual;
function StartdbTransaction(trans : TSQLHandle; aParams : string) : boolean; virtual; abstract;
procedure CommitRetaining(trans : TSQLHandle); virtual; abstract;
procedure RollBackRetaining(trans : TSQLHandle); virtual; abstract;
@@ -207,6 +217,8 @@ type
procedure UpdateIndexDefs(IndexDefs : TIndexDefs; TableName : string); virtual;
function GetSchemaInfoSQL(SchemaType : TSchemaType; SchemaObjectName, SchemaPattern : string) : string; virtual;
+ Procedure MaybeConnect;
+
Property Statements : TFPList Read FStatements;
property Port: cardinal read GetPort write SetPort;
public
@@ -235,8 +247,9 @@ type
property HostName : string Read FHostName Write FHostName;
Property OnLog : TDBLogNotifyEvent Read FOnLog Write FOnLog;
Property LogEvents : TDBEventTypes Read FLogEvents Write FLogEvents Default LogAllEvents;
- property Connected;
+ Property Options : TSQLConnectionOptions Read FOptions Write SetOptions;
Property Role : String read FRole write FRole;
+ property Connected;
property DatabaseName;
property KeepConnection;
property LoginPrompt;
@@ -249,15 +262,22 @@ type
TCommitRollbackAction = (caNone, caCommit, caCommitRetaining, caRollback,
caRollbackRetaining);
+ TSQLTransactionOption = (stoUseImplicit, stoExplicitStart);
+ TSQLTransactionOptions = Set of TSQLTransactionOption;
+
TSQLTransaction = class (TDBTransaction)
private
+ FOptions : TSQLTransactionOptions;
FTrans : TSQLHandle;
FAction : TCommitRollbackAction;
FParams : TStringList;
function GetSQLConnection: TSQLConnection;
+ procedure SetOptions(AValue: TSQLTransactionOptions);
procedure SetParams(const AValue: TStringList);
procedure SetSQLConnection(AValue: TSQLConnection);
protected
+ Procedure MaybeStartTransaction;
+ Function AllowClose(DS: TDBDataset): Boolean; override;
function GetHandle : Pointer; virtual;
Procedure SetDatabase (Value : TDatabase); override;
Function LogEvent(EventType : TDBEventType) : Boolean;
@@ -277,8 +297,11 @@ type
property Action : TCommitRollbackAction read FAction write FAction Default caRollBack;
property Database;
property Params : TStringList read FParams write SetParams;
+ Property Options : TSQLTransactionOptions Read FOptions Write SetOptions;
end;
+
+
{ TCustomSQLStatement }
TCustomSQLStatement = Class(TComponent)
@@ -293,6 +316,7 @@ type
FTransaction: TSQLTransaction;
FParseSQL: Boolean;
FDataLink : TDataLink;
+ FRowsAffected : TRowsCount;
procedure SetDatabase(AValue: TSQLConnection);
procedure SetParams(AValue: TParams);
procedure SetSQL(AValue: TStrings);
@@ -350,15 +374,20 @@ type
{ TCustomSQLQuery }
+ TSQLQueryOption = (sqoKeepOpenOnCommit, sqoAutoApplyUpdates, sqoAutoCommit);
+ TSQLQueryOptions = Set of TSQLQueryOption;
+
TCustomSQLQuery = class (TCustomBufDataset)
private
+ FOptions : TSQLQueryOptions;
FSchemaType : TSchemaType;
FUpdateable : boolean;
FTableName : string;
FStatement : TCustomSQLStatement;
- FUpdateSQL,
FInsertSQL,
- FDeleteSQL : TStringList;
+ FUpdateSQL,
+ FDeleteSQL,
+ FRefreshSQL : TStringList;
FIsEOF : boolean;
FLoadingFieldDefs : boolean;
FUpdateMode : TUpdateMode;
@@ -374,27 +403,30 @@ type
FSchemaObjectName : string;
FSchemaPattern : string;
+ FInsertQry,
FUpdateQry,
- FDeleteQry,
- FInsertQry : TCustomSQLStatement;
+ FDeleteQry : TCustomSQLStatement;
procedure FreeFldBuffers;
function GetParamCheck: Boolean;
function GetParams: TParams;
function GetParseSQL: Boolean;
function GetServerIndexDefs: TServerIndexDefs;
- function GetSQL: TStringlist;
+ function GetSQL: TStringList;
function GetSQLConnection: TSQLConnection;
function GetSQLTransaction: TSQLTransaction;
function GetStatementType : TStatementType;
+ Function NeedLastInsertID: TField;
+ procedure SetOptions(AValue: TSQLQueryOptions);
procedure SetParamCheck(AValue: Boolean);
procedure SetSQLConnection(AValue: TSQLConnection);
procedure SetSQLTransaction(AValue: TSQLTransaction);
- procedure SetUpdateSQL(const AValue: TStringlist);
- procedure SetDeleteSQL(const AValue: TStringlist);
- procedure SetInsertSQL(const AValue: TStringlist);
+ procedure SetInsertSQL(const AValue: TStringList);
+ procedure SetUpdateSQL(const AValue: TStringList);
+ procedure SetDeleteSQL(const AValue: TStringList);
+ procedure SetRefreshSQL(const AValue: TStringList);
procedure SetParams(AValue: TParams);
procedure SetParseSQL(AValue : Boolean);
- procedure SetSQL(const AValue: TStringlist);
+ procedure SetSQL(const AValue: TStringList);
procedure SetUsePrimaryKeyAsKey(AValue : Boolean);
procedure SetUpdateMode(AValue : TUpdateMode);
procedure OnChangeModifySQL(Sender : TObject);
@@ -402,6 +434,9 @@ type
procedure ApplyFilter;
Function AddFilter(SQLstr : string) : string;
protected
+ Function RefreshLastInsertID(Field: TField): Boolean; virtual;
+ Function NeedRefreshRecord (UpdateKind: TUpdateKind): Boolean; virtual;
+ Function RefreshRecord (UpdateKind: TUpdateKind) : Boolean; virtual;
Function Cursor : TSQLCursor;
Function LogEvent(EventType : TDBEventType) : Boolean;
Procedure Log(EventType : TDBEventType; Const Msg : String); virtual;
@@ -410,6 +445,7 @@ type
function LoadField(FieldDef : TFieldDef;buffer : pointer; out CreateBlob : boolean) : boolean; override;
procedure LoadBlobIntoBuffer(FieldDef: TFieldDef;ABlobBuf: PBufBlobField); override;
procedure ApplyRecUpdate(UpdateKind : TUpdateKind); override;
+ procedure SetPacketRecords(aValue : integer); override;
// abstract & virtual methods of TDataset
procedure UpdateServerIndexDefs; virtual;
procedure SetDatabase(Value : TDatabase); override;
@@ -445,6 +481,11 @@ type
Property Prepared : boolean read IsPrepared;
Property SQLConnection : TSQLConnection Read GetSQLConnection Write SetSQLConnection;
Property SQLTransaction: TSQLTransaction Read GetSQLTransaction Write SetSQLTransaction;
+ // overriden TBufDataSet methods
+ Procedure ApplyUpdates(MaxErrors: Integer); override; overload;
+ // overriden TDataSet methods
+ Procedure Post; override;
+ Procedure Delete; override;
protected
// redeclared TDataSet properties
property Active;
@@ -473,14 +514,16 @@ type
property OnNewRecord;
property OnPostError;
property AutoCalcFields;
+ // protected
property Database;
- // protected
- property SchemaType : TSchemaType read FSchemaType default stNoSchema;
property Transaction;
+ property SchemaType : TSchemaType read FSchemaType default stNoSchema;
property SQL : TStringlist read GetSQL write SetSQL;
- property UpdateSQL : TStringlist read FUpdateSQL write SetUpdateSQL;
- property InsertSQL : TStringlist read FInsertSQL write SetInsertSQL;
- property DeleteSQL : TStringlist read FDeleteSQL write SetDeleteSQL;
+ property InsertSQL : TStringList read FInsertSQL write SetInsertSQL;
+ property UpdateSQL : TStringList read FUpdateSQL write SetUpdateSQL;
+ property DeleteSQL : TStringList read FDeleteSQL write SetDeleteSQL;
+ property RefreshSQL : TStringList read FRefreshSQL write SetRefreshSQL;
+ Property Options : TSQLQueryOptions Read FOptions Write SetOptions;
property Params : TParams read GetParams Write SetParams;
Property ParamCheck : Boolean Read GetParamCheck Write SetParamCheck default true;
property ParseSQL : Boolean read GetParseSQL write SetParseSQL default true;
@@ -534,10 +577,12 @@ type
property Transaction;
property ReadOnly;
property SQL;
- property UpdateSQL;
property InsertSQL;
+ property UpdateSQL;
property DeleteSQL;
+ property RefreshSQL;
property IndexDefs;
+ Property Options;
property Params;
Property ParamCheck;
property ParseSQL;
@@ -683,6 +728,10 @@ implementation
uses dbconst, strutils;
+Const
+ // Flags to check which fields must be refreshed.
+ RefreshFlags : Array [ukModify..ukInsert] of TProviderFlag = (pfRefreshOnUpdate,pfRefreshOnInsert);
+
function TimeIntervalToString(Time: TDateTime): string;
var
@@ -724,11 +773,18 @@ begin
else
Msg := Format(CompNameFmt, [Comp.Name,Fmt]);
- inherited CreateFmt(Msg, Args);
+ if Length(Args) = 0 then
+ inherited Create(Msg)
+ else
+ inherited CreateFmt(Msg, Args);
+
ErrorCode := AErrorCode;
SQLState := ASQLState;
end;
+Type
+ TInternalTransaction = Class(TSQLTransaction);
+
{ TCustomSQLStatement }
procedure TCustomSQLStatement.OnChangeSQL(Sender: TObject);
@@ -784,7 +840,7 @@ begin
FDataLink.DataSource:=AValue;
end;
-procedure TCustomSQLStatement.CopyParamsFromMaster(CopyBound : Boolean);
+Procedure TCustomSQLStatement.CopyParamsFromMaster(CopyBound: Boolean);
begin
if Assigned(DataSource) and Assigned(DataSource.Dataset) then
FParams.CopyParamValuesFromDataset(DataSource.Dataset,CopyBound);
@@ -817,8 +873,9 @@ begin
end;
end;
-procedure TCustomSQLStatement.DoExecute;
+Procedure TCustomSQLStatement.DoExecute;
begin
+ FRowsAffected:=-1;
If (FParams.Count>0) and Assigned(DataSource) then
CopyParamsFromMaster(False);
If LogEvent(detExecute) then
@@ -826,27 +883,27 @@ begin
Database.Execute(FCursor,Transaction, FParams);
end;
-function TCustomSQLStatement.GetPrepared: Boolean;
+Function TCustomSQLStatement.GetPrepared: Boolean;
begin
Result := Assigned(FCursor) and FCursor.FPrepared;
end;
-function TCustomSQLStatement.CreateDataLink: TDataLink;
+Function TCustomSQLStatement.CreateDataLink: TDataLink;
begin
Result:=TDataLink.Create;
end;
-function TCustomSQLStatement.CreateParams: TSQLDBParams;
+Function TCustomSQLStatement.CreateParams: TSQLDBParams;
begin
Result:=TSQLDBParams.Create(Nil);
end;
-function TCustomSQLStatement.LogEvent(EventType: TDBEventType): Boolean;
+Function TCustomSQLStatement.LogEvent(EventType: TDBEventType): Boolean;
begin
Result:=Assigned(Database) and Database.LogEvent(EventType);
end;
-procedure TCustomSQLStatement.Log(EventType: TDBEventType; const Msg: String);
+Procedure TCustomSQLStatement.Log(EventType: TDBEventType; Const Msg: String);
Var
M : String;
@@ -883,6 +940,7 @@ begin
FParams:=CreateParams;
FParamCheck:=True;
FParseSQL:=True;
+ FRowsAffected:=-1;
end;
destructor TCustomSQLStatement.Destroy;
@@ -897,28 +955,29 @@ begin
inherited Destroy;
end;
-function TCustomSQLStatement.GetSchemaType: TSchemaType;
+Function TCustomSQLStatement.GetSchemaType: TSchemaType;
begin
Result:=stNoSchema
end;
-function TCustomSQLStatement.GetSchemaObjectName: String;
+Function TCustomSQLStatement.GetSchemaObjectName: String;
begin
Result:='';
end;
-function TCustomSQLStatement.GetSchemaPattern: String;
+Function TCustomSQLStatement.GetSchemaPattern: String;
begin
Result:='';
end;
-function TCustomSQLStatement.IsSelectable: Boolean;
+Function TCustomSQLStatement.IsSelectable: Boolean;
begin
Result:=False;
end;
+
procedure TCustomSQLStatement.GetStatementInfo(var ASQL: String; out Info: TSQLStatementInfo);
begin
@@ -961,7 +1020,7 @@ begin
Database.PrepareStatement(FCursor,Transaction,FServerSQL,FParams);
end;
-procedure TCustomSQLStatement.Prepare;
+Procedure TCustomSQLStatement.Prepare;
begin
if Prepared then exit;
@@ -969,10 +1028,9 @@ begin
DatabaseError(SErrDatabasenAssigned);
if not assigned(Transaction) then
DatabaseError(SErrTransactionnSet);
- if not Database.Connected then
- Database.Open;
+ Database.MaybeConnect;
if not Transaction.Active then
- Transaction.StartTransaction;
+ Transaction.MaybeStartTransaction;
try
DoPrepare;
except
@@ -981,7 +1039,7 @@ begin
end;
end;
-procedure TCustomSQLStatement.Execute;
+Procedure TCustomSQLStatement.Execute;
begin
Prepare;
DoExecute;
@@ -1008,7 +1066,7 @@ begin
Result:=Nil;
end;
-procedure TCustomSQLStatement.Unprepare;
+Procedure TCustomSQLStatement.Unprepare;
begin
// Some SQLConnections does not support statement [un]preparation, but they have allocated local cursor(s)
// so let them do cleanup f.e. cancel pending queries and/or free resultset
@@ -1017,17 +1075,19 @@ begin
DoUnprepare;
end;
-function TCustomSQLStatement.ParamByName(const AParamName: String): TParam;
+function TCustomSQLStatement.ParamByName(Const AParamName: String): TParam;
begin
Result:=FParams.ParamByName(AParamName);
end;
function TCustomSQLStatement.RowsAffected: TRowsCount;
begin
- Result := -1;
- if not Assigned(Database) then
- Exit;
- Result:=Database.RowsAffected(FCursor);
+ if FRowsAffected=-1 then
+ begin
+ if Assigned(Database) then
+ FRowsAffected:=Database.RowsAffected(FCursor);
+ end;
+ Result:=FRowsAffected;
end;
{ TSQLConnection }
@@ -1072,6 +1132,7 @@ begin
end;
end;
+
procedure TSQLConnection.UpdateIndexDefs(IndexDefs : TIndexDefs; TableName : string);
begin
// Empty abstract
@@ -1126,7 +1187,8 @@ begin
DatabaseError(SErrTransactionnSet);
if not Connected then Open;
- if not ATransaction.Active then ATransaction.StartTransaction;
+ if not (ATransaction.Active or (stoUseImplicit in ATransaction.Options)) then
+ ATransaction.MaybeStartTransaction;
try
SQL := TrimRight(SQL);
@@ -1152,6 +1214,13 @@ begin
result := StrToIntDef(Params.Values['Port'],0);
end;
+procedure TSQLConnection.SetOptions(AValue: TSQLConnectionOptions);
+begin
+ if FOptions=AValue then Exit;
+ FOptions:=AValue;
+end;
+
+
procedure TSQLConnection.SetPort(const AValue: cardinal);
begin
if AValue<>0 then
@@ -1440,12 +1509,12 @@ begin
Result := nil;
end;
-function TSQLConnection.LogEvent(EventType: TDBEventType): Boolean;
+Function TSQLConnection.LogEvent(EventType: TDBEventType): Boolean;
begin
Result:=(Assigned(FOnLog) or Assigned(GlobalDBLogHook)) and (EventType in LogEvents);
end;
-procedure TSQLConnection.Log(EventType: TDBEventType; const Msg: String);
+Procedure TSQLConnection.Log(EventType: TDBEventType; Const Msg: String);
Var
M : String;
@@ -1466,18 +1535,19 @@ begin
end;
end;
-procedure TSQLConnection.RegisterStatement(S: TCustomSQLStatement);
+Procedure TSQLConnection.RegisterStatement(S: TCustomSQLStatement);
begin
if FStatements.IndexOf(S)=-1 then
FStatements.Add(S);
end;
-procedure TSQLConnection.UnRegisterStatement(S: TCustomSQLStatement);
+Procedure TSQLConnection.UnRegisterStatement(S: TCustomSQLStatement);
begin
if Assigned(FStatements) then // Can be nil, when we are destroying and datasets are uncoupled.
FStatements.Remove(S);
end;
+
function TSQLConnection.InitialiseUpdateStatement(Query : TCustomSQLQuery; var qry : TCustomSQLStatement): TCustomSQLStatement;
begin
@@ -1491,6 +1561,7 @@ begin
Result:=qry;
end;
+
procedure TSQLConnection.AddFieldToUpdateWherePart(var sql_where : string;UpdateMode : TUpdateMode; F : TField);
begin
@@ -1509,28 +1580,6 @@ begin
end;
end;
-function TSQLConnection.ConstructUpdateSQL(Query: TCustomSQLQuery): string;
-
-var x : integer;
- F : TField;
- sql_set : string;
- sql_where : string;
-
-begin
- sql_set := '';
- sql_where := '';
- for x := 0 to Query.Fields.Count -1 do
- begin
- F:=Query.Fields[x];
- AddFieldToUpdateWherePart(sql_where,Query.UpdateMode,F);
- if (pfInUpdate in F.ProviderFlags) and (not F.ReadOnly) then
- sql_set := sql_set +FieldNameQuoteChars[0] + F.FieldName + FieldNameQuoteChars[1] +'=:"' + F.FieldName + '",';
- end;
- if length(sql_set) = 0 then DatabaseErrorFmt(sNoUpdateFields,['update'],self);
- setlength(sql_set,length(sql_set)-1);
- if length(sql_where) = 0 then DatabaseErrorFmt(sNoWhereFields,['update'],self);
- result := 'update ' + Query.FTableName + ' set ' + sql_set + ' where ' + sql_where;
-end;
function TSQLConnection.ConstructInsertSQL(Query : TCustomSQLQuery) : string;
@@ -1560,6 +1609,30 @@ begin
end;
+function TSQLConnection.ConstructUpdateSQL(Query: TCustomSQLQuery): string;
+
+var x : integer;
+ F : TField;
+ sql_set : string;
+ sql_where : string;
+
+begin
+ sql_set := '';
+ sql_where := '';
+ for x := 0 to Query.Fields.Count -1 do
+ begin
+ F:=Query.Fields[x];
+ AddFieldToUpdateWherePart(sql_where,Query.UpdateMode,F);
+ if (pfInUpdate in F.ProviderFlags) and (not F.ReadOnly) then
+ sql_set := sql_set +FieldNameQuoteChars[0] + F.FieldName + FieldNameQuoteChars[1] +'=:"' + F.FieldName + '",';
+ end;
+ if length(sql_set) = 0 then DatabaseErrorFmt(sNoUpdateFields,['update'],self);
+ setlength(sql_set,length(sql_set)-1);
+ if length(sql_where) = 0 then DatabaseErrorFmt(sNoWhereFields,['update'],self);
+ result := 'update ' + Query.FTableName + ' set ' + sql_set + ' where ' + sql_where;
+end;
+
+
function TSQLConnection.ConstructDeleteSQL(Query : TCustomSQLQuery) : string;
var
@@ -1575,6 +1648,43 @@ begin
result := 'delete from ' + Query.FTableName + ' where ' + sql_where;
end;
+function TSQLConnection.ConstructRefreshSQL(Query: TCustomSQLQuery; UpdateKind: TUpdateKind): string;
+
+Var
+ F : TField;
+ PF : TProviderFlag;
+ Where : String;
+
+begin
+ Where:='';
+ Result:=Query.RefreshSQL.Text;
+ if (Result='') then
+ begin
+ PF:=RefreshFlags[UpdateKind];
+ For F in Query.Fields do
+ begin
+ if PF in F.ProviderFlags then
+ begin
+ if (Result<>'') then
+ Result:=Result+', ';
+ if (F.Origin<>'') and (F.Origin<>F.FieldName) then
+ Result:=Result+F.Origin+' AS '+F.FieldName
+ else
+ Result:=Result+FieldNameQuoteChars[0]+F.FieldName+FieldNameQuoteChars[1]
+ end;
+ if pfInkey in F.ProviderFlags then
+ begin
+ if (Where<>'') then
+ Where:=Where+' AND ';
+ Where:=Where+'('+FieldNameQuoteChars[0]+F.FieldName+FieldNameQuoteChars[0]+' = :'+F.FieldName+')';
+ end;
+ end;
+ if (Where='') then
+ DatabaseError(SErrNoKeyFieldForRefreshClause,Query);
+ Result:='SELECT '+Result+' FROM '+Query.FTableName+' WHERE '+Where;
+ end;
+end;
+
procedure TSQLConnection.ApplyFieldUpdate(C : TSQLCursor; P : TSQLDBParam;F : TField; UseOldValue : Boolean);
begin
@@ -1622,13 +1732,20 @@ begin
begin
P:=Qry.Params[x];
S:=p.name;
- B:=Sametext(leftstr(S,4),'OLD_');
+ B:=SameText(leftstr(S,4),'OLD_');
if B then
Delete(S,1,4);
Fld:=Query.FieldByName(S);
ApplyFieldUpdate(Query.Cursor,P as TSQLDBParam,Fld,B);
end;
- Qry.execute;
+ Qry.Execute;
+ if (scoApplyUpdatesChecksRowsAffected in Options) and (Qry.RowsAffected<>1) then
+ DatabaseErrorFmt(SErrFailedToUpdateRecord, [Qry.RowsAffected], Query);
+end;
+
+function TSQLConnection.RefreshLastInsertID(Query: TCustomSQLQuery; Field: TField): Boolean;
+begin
+ Result:=False;
end;
procedure TSQLConnection.FreeFldBuffers(cursor: TSQLCursor);
@@ -1636,6 +1753,11 @@ begin
// empty
end;
+function TSQLConnection.StartImplicitTransaction(trans: TSQLHandle; aParams: string): boolean;
+begin
+ Result:=False;
+end;
+
function TSQLConnection.GetSchemaInfoSQL( SchemaType : TSchemaType; SchemaObjectName, SchemaPattern : string) : string;
begin
@@ -1646,6 +1768,16 @@ begin
end;
end;
+Procedure TSQLConnection.MaybeConnect;
+begin
+ If Not Connected then
+ begin
+ If (scoExplicitConnect in Options) then
+ DatabaseErrorFmt(SErrImplicitConnect,[Name]);
+ Connected:=True;
+ end;
+end;
+
procedure TSQLConnection.CreateDB;
begin
@@ -1668,7 +1800,10 @@ begin
Commit;
caNone,
caRollback, caRollbackRetaining :
- RollBack;
+ if not (stoUseImplicit in Options) then
+ RollBack
+ else
+ CloseTrans;
end;
end;
@@ -1682,24 +1817,50 @@ begin
Result:=Database as TSQLConnection;
end;
+procedure TSQLTransaction.SetOptions(AValue: TSQLTransactionOptions);
+begin
+ if FOptions=AValue then Exit;
+ if (stoUseImplicit in Avalue) and Assigned(SQLConnection) And Not (sqImplicitTransaction in SQLConnection.ConnOptions) then
+ DatabaseErrorFmt(SErrNoImplicitTransaction, [SQLConnection.ClassName]);
+ FOptions:=AValue;
+end;
+
procedure TSQLTransaction.SetSQLConnection(AValue: TSQLConnection);
begin
Database:=AValue;
end;
+Procedure TSQLTransaction.MaybeStartTransaction;
+begin
+ if not Active then
+ begin
+ if (stoExplicitStart in Options) then
+ DatabaseErrorFmt(SErrImplictTransactionStart, [Database.Name,Name]);
+ StartTransaction;
+ end;
+end;
+
function TSQLTransaction.GetHandle: Pointer;
begin
Result := SQLConnection.GetTransactionHandle(FTrans);
end;
+Function TSQLTransaction.AllowClose(DS: TDBDataset): Boolean;
+begin
+ if (DS is TSQLQuery) then
+ Result:=not (sqoKeepOpenOnCommit in TSQLQuery(DS).Options)
+ else
+ Result:=Inherited AllowClose(DS);
+end;
+
procedure TSQLTransaction.Commit;
begin
- if Active then
+ if Active then
begin
CloseDataSets;
If LogEvent(detCommit) then
Log(detCommit,SCommitting);
- if SQLConnection.Commit(FTrans) then
+ if (stoUseImplicit in Options) or SQLConnection.Commit(FTrans) then
begin
CloseTrans;
FreeAndNil(FTrans);
@@ -1721,6 +1882,8 @@ procedure TSQLTransaction.Rollback;
begin
if Active then
begin
+ if (stoUseImplicit in Options) then
+ DatabaseError(SErrImplicitNoRollBack);
CloseDataSets;
If LogEvent(detRollback) then
Log(detRollback,SRollingBack);
@@ -1736,6 +1899,8 @@ procedure TSQLTransaction.RollbackRetaining;
begin
if Active then
begin
+ if (stoUseImplicit in Options) then
+ DatabaseError(SErrImplicitNoRollBack);
If LogEvent(detRollback) then
Log(detRollback,SRollBackRetaining);
SQLConnection.RollBackRetaining(FTrans);
@@ -1755,11 +1920,20 @@ begin
if Db = nil then
DatabaseError(SErrDatabasenAssigned);
- if not Db.Connected then
- Db.Open;
+ Db.MaybeConnect;
+
if not assigned(FTrans) then FTrans := Db.AllocateTransactionHandle;
- if Db.StartdbTransaction(FTrans,FParams.CommaText) then OpenTrans;
+ if (stoUseImplicit in Options) then
+ begin
+ if Db.StartImplicitTransaction(FTrans,FParams.CommaText) then
+ OpenTrans
+ end
+ else
+ begin
+ if Db.StartdbTransaction(FTrans,FParams.CommaText) then
+ OpenTrans
+ end;
end;
constructor TSQLTransaction.Create(AOwner : TComponent);
@@ -1777,17 +1951,21 @@ begin
inherited Destroy;
end;
-procedure TSQLTransaction.SetDatabase(Value: TDatabase);
+Procedure TSQLTransaction.SetDatabase(Value: TDatabase);
begin
If Value<>Database then
begin
- if assigned(value) and not (Value is TSQLConnection) then
+ if Assigned(Value) and not (Value is TSQLConnection) then
DatabaseErrorFmt(SErrNotASQLConnection,[value.Name],self);
CheckInactive;
+ if (stoUseImplicit in Options) and Assigned(Value) and Not (sqImplicitTransaction in TSQLConnection(Value).ConnOptions) then
+ DatabaseErrorFmt(SErrNoImplicitTransaction,[Value.ClassName]);
If Assigned(Database) then
+ begin
with SQLConnection do
if Transaction = self then Transaction := nil;
+ end;
inherited SetDatabase(Value);
If Assigned(Database) and not (csLoading in ComponentState) then
If (SQLConnection.Transaction=Nil) then
@@ -1795,12 +1973,12 @@ begin
end;
end;
-function TSQLTransaction.LogEvent(EventType: TDBEventType): Boolean;
+Function TSQLTransaction.LogEvent(EventType: TDBEventType): Boolean;
begin
Result:=Assigned(Database) and SQLConnection.LogEvent(EventType);
end;
-procedure TSQLTransaction.Log(EventType: TDBEventType; const Msg: String);
+Procedure TSQLTransaction.Log(EventType: TDBEventType; Const Msg: String);
Var
M : String;
@@ -1909,12 +2087,14 @@ begin
F.FQuery:=Self;
FStatement:=F;
- FUpdateSQL := TStringList.Create;
- FUpdateSQL.OnChange := @OnChangeModifySQL;
FInsertSQL := TStringList.Create;
FInsertSQL.OnChange := @OnChangeModifySQL;
+ FUpdateSQL := TStringList.Create;
+ FUpdateSQL.OnChange := @OnChangeModifySQL;
FDeleteSQL := TStringList.Create;
FDeleteSQL.OnChange := @OnChangeModifySQL;
+ FRefreshSQL := TStringList.Create;
+ FRefreshSQL.OnChange := @OnChangeModifySQL;
FServerIndexDefs := TServerIndexDefs.Create(Self);
@@ -1937,13 +2117,14 @@ begin
UnPrepare;
FreeAndNil(FStatement);
FreeAndNil(FInsertSQL);
- FreeAndNil(FDeleteSQL);
FreeAndNil(FUpdateSQL);
+ FreeAndNil(FDeleteSQL);
+ FreeAndNil(FRefreshSQL);
FServerIndexDefs.Free;
inherited Destroy;
end;
-function TCustomSQLQuery.ParamByName(const AParamName: String): TParam;
+function TCustomSQLQuery.ParamByName(Const AParamName: String): TParam;
begin
Result:=Params.ParamByName(AParamName);
@@ -1955,7 +2136,7 @@ begin
CheckInactive;
end;
-procedure TCustomSQLQuery.SetTransaction(Value: TDBTransaction);
+Procedure TCustomSQLQuery.SetTransaction(Value: TDBTransaction);
begin
UnPrepare;
@@ -1985,7 +2166,7 @@ begin
end;
end;
-function TCustomSQLQuery.IsPrepared: Boolean;
+Function TCustomSQLQuery.IsPrepared: Boolean;
begin
if Assigned(Fstatement) then
@@ -1994,7 +2175,7 @@ begin
Result := False;
end;
-function TCustomSQLQuery.AddFilter(SQLstr: string): string;
+Function TCustomSQLQuery.AddFilter(SQLstr: string): string;
begin
if (FWhereStartPos > 0) and (FWhereStopPos > 0) then
@@ -2012,6 +2193,76 @@ begin
Result := SQLstr;
end;
+Function TCustomSQLQuery.NeedRefreshRecord(UpdateKind: TUpdateKind): Boolean;
+
+
+Var
+ PF : TProviderFlag;
+ I : Integer;
+begin
+ Result:=(FRefreshSQL.Count<>0);
+ if Not Result then
+ begin
+ PF:=RefreshFlags[UpdateKind];
+ I:=0;
+ While (Not Result) and (I<Fields.Count) do
+ begin
+ Result:=PF in Fields[i].ProviderFlags;
+ Inc(I);
+ end;
+ end;
+end;
+
+Function TCustomSQLQuery.RefreshRecord(UpdateKind: TUpdateKind) : Boolean;
+
+Var
+ Q : TCustomSQLQuery;
+ P : TParam;
+ F,FD : TField;
+ N : String;
+
+begin
+ Result:=False;
+ Q:=TCustomSQLQuery.Create(Nil);
+ try
+ Q.Database:=Self.Database;
+ Q.Transaction:=Self.Transaction;
+ Q.SQL.Text:=SQLConnection.ConstructRefreshSQL(Self,UpdateKind);
+ For P in Q.Params do
+ begin
+ N:=P.Name;
+ If CompareText(Copy(N,1,4),'OLD_')=0 then
+ system.Delete(N,1,4);
+ F:=Fields.FindField(N);
+ if Assigned(F) then
+ P.AssignField(F);
+ end;
+ Q.Open;
+ try
+ if (Q.EOF and Q.BOF) then
+ DatabaseError(SErrRefreshEmptyResult,Self)
+ else
+ begin
+ if Q.RecordCount<>1 then
+ DatabaseErrorFmt(SErrRefreshNotSingleton,[Q.RecordCount],Self);
+ For F in Q.Fields do
+ begin
+ FD:=Fields.FindField(F.FieldName);
+ if Assigned(FD) then
+ begin
+ FD.Assign(F);
+ Result:=True; // We could check if the new value differs from the old, but we won't.
+ end;
+ end;
+ end
+ finally
+ Q.Close;
+ end;
+ finally
+ Q.Free;
+ end;
+end;
+
procedure TCustomSQLQuery.ApplyFilter;
begin
@@ -2025,7 +2276,7 @@ begin
First;
end;
-procedure TCustomSQLQuery.SetActive(Value: Boolean);
+Procedure TCustomSQLQuery.SetActive(Value: Boolean);
begin
inherited SetActive(Value);
@@ -2056,6 +2307,7 @@ begin
end;
end;
+
procedure TCustomSQLQuery.Prepare;
begin
@@ -2114,7 +2366,7 @@ begin
Result:=Transaction as TSQLTransaction;
end;
-function TCustomSQLQuery.Cursor: TSQLCursor;
+Function TCustomSQLQuery.Cursor: TSQLCursor;
begin
Result:=FStatement.Cursor;
end;
@@ -2138,7 +2390,7 @@ end;
function TCustomSQLQuery.RowsAffected: TRowsCount;
begin
- Result:=Fstatement.RowsAffected;
+ Result:=FStatement.RowsAffected;
end;
function TCustomSQLQuery.LoadField(FieldDef : TFieldDef;buffer : pointer; out CreateBlob : boolean) : boolean;
@@ -2268,6 +2520,12 @@ begin
try
Prepare;
Execute;
+ If sqoAutoCommit in Options then
+ begin
+ // Retrieve rows affected
+ FStatement.RowsAffected;
+ SQLTransaction.Commit;
+ end;
finally
// Cursor has to be assigned, or else the prepare went wrong before PrepareStatment was
// called, so UnPrepareStatement shoudn't be called either
@@ -2276,6 +2534,31 @@ begin
end;
end;
+Procedure TCustomSQLQuery.ApplyUpdates(MaxErrors: Integer);
+begin
+ inherited ApplyUpdates(MaxErrors);
+ If sqoAutoCommit in Options then
+ begin
+ // Retrieve rows affected for last update.
+ FStatement.RowsAffected;
+ SQLTransaction.Commit;
+ end;
+end;
+
+Procedure TCustomSQLQuery.Post;
+begin
+ inherited Post;
+ If (sqoAutoApplyUpdates in Options) then
+ ApplyUpdates;
+end;
+
+Procedure TCustomSQLQuery.Delete;
+begin
+ inherited Delete;
+ If (sqoAutoApplyUpdates in Options) then
+ ApplyUpdates;
+end;
+
procedure TCustomSQLQuery.SetReadOnly(AValue : Boolean);
begin
@@ -2297,11 +2580,6 @@ begin
FStatement.SQL.Assign(AValue);
end;
-procedure TCustomSQLQuery.SetUpdateSQL(const AValue: TStringlist);
-begin
- FUpdateSQL.Assign(AValue);
-end;
-
procedure TCustomSQLQuery.SetUsePrimaryKeyAsKey(AValue : Boolean);
begin
@@ -2321,12 +2599,75 @@ begin
SQLConnection.UpdateIndexDefs(ServerIndexDefs,FTableName);
end;
+Function TCustomSQLQuery.NeedLastInsertID : TField;
+
+Var
+ I : Integer;
+
+begin
+ Result:=Nil;
+ if sqLastInsertID in SQLConnection.ConnOptions then
+ begin
+ I:=0;
+ While (Result=Nil) and (I<Fields.Count) do
+ begin
+ Result:=Fields[i];
+ if (Result.DataType<>ftAutoInc) or not Result.IsNull then
+ Result:=Nil;
+ Inc(I);
+ end;
+ end
+end;
+
+Function TCustomSQLQuery.RefreshLastInsertID(Field : TField) : Boolean;
+
+begin
+ Result:=SQLConnection.RefreshLastInsertID(Self, Field);
+end;
+
procedure TCustomSQLQuery.ApplyRecUpdate(UpdateKind: TUpdateKind);
+Var
+ DoRefresh, RecordRefreshed : Boolean;
+ LastIDField : TField;
+ S : TDataSetState;
+
begin
// Moved to connection: the SQLConnection always has more information about types etc.
// than SQLQuery itself.
- SQLConnection.ApplyRecupdate(Self,UpdateKind);
+ SQLConnection.ApplyRecUpdate(Self,UpdateKind);
+
+ if UpdateKind=ukInsert then
+ LastIDField:=NeedLastInsertID
+ else
+ LastIDField:=nil;
+ DoRefresh:=(UpdateKind in [ukModify,ukInsert]) and NeedRefreshRecord(UpdateKind);
+ if assigned(LastIDField) or DoRefresh then
+ begin
+ // updates fields directly in record buffer of TBufDataSet
+ // TDataSet buffers are resynchronized at end of ApplyUpdates process
+ S:=SetTempState(dsRefreshFields);
+ try
+ RecordRefreshed:=False;
+ if assigned(LastIDField) then
+ RecordRefreshed:=RefreshLastInsertID(LastIDField);
+ if DoRefresh then
+ RecordRefreshed:=RefreshRecord(UpdateKind) or RecordRefreshed;
+ finally
+ RestoreState(S);
+ end;
+ if RecordRefreshed then
+ // Active buffer is updated, move to record.
+ //ActiveBufferToRecord;
+ end;
+end;
+
+procedure TCustomSQLQuery.SetPacketRecords(aValue: integer);
+begin
+ if (AValue=PacketRecords) then exit;
+ if (AValue<>-1) and (sqoKeepOpenOnCommit in Options) then
+ DatabaseError(SErrDisconnectedPacketRecords);
+ Inherited SetPacketRecords(aValue);
end;
@@ -2364,12 +2705,12 @@ begin
UnPrepareStatement(Cursor);
end;
-function TCustomSQLQuery.LogEvent(EventType: TDBEventType): Boolean;
+Function TCustomSQLQuery.LogEvent(EventType: TDBEventType): Boolean;
begin
Result:=Assigned(Database) and SQLConnection.LogEvent(EventType);
end;
-procedure TCustomSQLQuery.Log(EventType: TDBEventType; const Msg: String);
+Procedure TCustomSQLQuery.Log(EventType: TDBEventType; Const Msg: String);
Var
M : String;
@@ -2403,6 +2744,15 @@ begin
FStatement.ParamCheck:=AValue;
end;
+procedure TCustomSQLQuery.SetOptions(AValue: TSQLQueryOptions);
+begin
+ if FOptions=AValue then Exit;
+ CheckInactive;
+ FOptions:=AValue;
+ if sqoKeepOpenOnCommit in FOptions then
+ PacketRecords:=-1;
+end;
+
procedure TCustomSQLQuery.SetSQLConnection(AValue: TSQLConnection);
begin
Database:=AValue;
@@ -2413,22 +2763,33 @@ begin
Transaction:=AValue;
end;
-procedure TCustomSQLQuery.SetDeleteSQL(const AValue: TStringlist);
+procedure TCustomSQLQuery.SetInsertSQL(const AValue: TStringList);
+begin
+ FInsertSQL.Assign(AValue);
+end;
+
+procedure TCustomSQLQuery.SetUpdateSQL(const AValue: TStringList);
+begin
+ FUpdateSQL.Assign(AValue);
+end;
+
+procedure TCustomSQLQuery.SetDeleteSQL(const AValue: TStringList);
begin
FDeleteSQL.Assign(AValue);
end;
-procedure TCustomSQLQuery.SetInsertSQL(const AValue: TStringlist);
+procedure TCustomSQLQuery.SetRefreshSQL(const AValue: TStringList);
begin
- FInsertSQL.Assign(AValue);
+ FRefreshSQL.Assign(AValue);
end;
+
procedure TCustomSQLQuery.SetParams(AValue: TParams);
begin
FStatement.Params.Assign(AValue);
end;
-procedure TCustomSQLQuery.SetDataSource(AValue: TDataSource);
+Procedure TCustomSQLQuery.SetDataSource(AValue: TDataSource);
Var
DS : TDataSource;
@@ -2445,7 +2806,7 @@ begin
end;
end;
-function TCustomSQLQuery.GetDataSource: TDataSource;
+Function TCustomSQLQuery.GetDataSource: TDataSource;
begin
If Assigned(FStatement) then
diff --git a/packages/fcl-db/src/sqldb/sqlite/Makefile b/packages/fcl-db/src/sqldb/sqlite/Makefile
index 6a321747b0..b66c6f67de 100644
--- a/packages/fcl-db/src/sqldb/sqlite/Makefile
+++ b/packages/fcl-db/src/sqldb/sqlite/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=sqlite3conn
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=sqlite3conn
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=sqlite3conn
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=sqlite3conn
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=sqlite3conn
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=sqlite3conn
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=sqlite3conn
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=sqlite3conn
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=sqlite3conn
endif
@@ -613,6 +628,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2
endif
@@ -700,6 +718,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2
endif
@@ -754,6 +775,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2
endif
@@ -1008,6 +1032,12 @@ 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=
@@ -1053,6 +1083,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1635,6 +1670,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_SQLITE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_SQLITE=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1925,6 +1970,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_SQLITE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_SQLITE=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2105,6 +2160,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_SQLITE=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
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_SQLITE=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2562,7 +2627,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2592,17 +2657,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp b/packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp
index 4984a8fe29..f7feb99fa5 100644
--- a/packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp
+++ b/packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp
@@ -1,6 +1,6 @@
{
This file is part of the Free Pascal Classes Library (FCL).
- Copyright (c) 2006 by the Free Pascal development team
+ Copyright (c) 2006-2014 by the Free Pascal development team
SQLite3 connection for SQLDB
@@ -38,9 +38,6 @@ const
type
PDateTime = ^TDateTime;
- TSqliteOption = (sloTransactions,sloDesignTransactions);
- TSqliteOptions = set of TSqliteOption;
-
TStringArray = Array of string;
PStringArray = ^TStringArray;
@@ -52,44 +49,41 @@ type
TSQLite3Connection = class(TSQLConnection)
private
fhandle: psqlite3;
- foptions: TSQLiteOptions;
- procedure setoptions(const avalue: tsqliteoptions);
protected
- function stringsquery(const asql: string): TArrayStringArray;
- procedure checkerror(const aerror: integer);
-
procedure DoInternalConnect; override;
procedure DoInternalDisconnect; override;
function GetHandle : pointer; override;
Function AllocateCursorHandle : TSQLCursor; override;
- //aowner used as blob cache
Procedure DeAllocateCursorHandle(var cursor : TSQLCursor); override;
Function AllocateTransactionHandle : TSQLHandle; override;
- procedure PrepareStatement(cursor: TSQLCursor; ATransaction : TSQLTransaction;
- buf: string; AParams : TParams); override;
+ function StrToStatementType(s : string) : TStatementType; override;
+ procedure PrepareStatement(cursor: TSQLCursor; ATransaction : TSQLTransaction; buf: string; AParams : TParams); override;
procedure Execute(cursor: TSQLCursor;atransaction:tSQLtransaction; AParams : TParams); override;
function Fetch(cursor : TSQLCursor) : boolean; override;
- procedure AddFieldDefs(cursor: TSQLCursor; FieldDefs : TfieldDefs); override;
+ procedure AddFieldDefs(cursor: TSQLCursor; FieldDefs : TFieldDefs); override;
procedure UnPrepareStatement(cursor : TSQLCursor); override;
procedure FreeFldBuffers(cursor : TSQLCursor); override;
- function LoadField(cursor : TSQLCursor;FieldDef : TfieldDef;buffer : pointer; out CreateBlob : boolean) : boolean; override;
- //if bufsize < 0 -> buffer was too small, should be -bufsize
+ function LoadField(cursor : TSQLCursor; FieldDef : TFieldDef; buffer : pointer; out CreateBlob : boolean) : boolean; override;
+ procedure LoadBlobIntoBuffer(FieldDef: TFieldDef; ABlobBuf: PBufBlobField; cursor: TSQLCursor; ATransaction : TSQLTransaction); override;
+
function GetTransactionHandle(trans : TSQLHandle): pointer; override;
function Commit(trans : TSQLHandle) : boolean; override;
function RollBack(trans : TSQLHandle) : boolean; override;
function StartdbTransaction(trans : TSQLHandle; aParams : string) : boolean; override;
procedure CommitRetaining(trans : TSQLHandle); override;
procedure RollBackRetaining(trans : TSQLHandle); override;
- procedure LoadBlobIntoBuffer(FieldDef: TFieldDef;ABlobBuf: PBufBlobField; cursor: TSQLCursor; ATransaction : TSQLTransaction); override;
- // New methods
- procedure execsql(const asql: string);
+
procedure UpdateIndexDefs(IndexDefs : TIndexDefs; TableName : string); override;
- function RowsAffected(cursor: TSQLCursor): TRowsCount; override;
function GetSchemaInfoSQL(SchemaType : TSchemaType; SchemaObjectName, SchemaPattern : string) : string; override;
- function StrToStatementType(s : string) : TStatementType; override;
+ function RowsAffected(cursor: TSQLCursor): TRowsCount; override;
+ function RefreshLastInsertID(Query : TCustomSQLQuery; Field : TField): Boolean; override;
+ // New methods
+ procedure checkerror(const aerror: integer);
+ function stringsquery(const asql: string): TArrayStringArray;
+ procedure execsql(const asql: string);
public
constructor Create(AOwner : TComponent); override;
procedure GetFieldNames(const TableName : string; List : TStrings); override;
@@ -97,12 +91,10 @@ type
function GetInsertID: int64;
// See http://www.sqlite.org/c3ref/create_collation.html for detailed information
// If eTextRep=0 a default UTF-8 compare function is used (UTF8CompareCallback)
- // Warning: UTF8CompareCallback needs a wide string manager on linux such as cwstring
+ // Warning: UTF8CompareCallback needs a wide string manager on Linux such as cwstring
// Warning: CollationName has to be a UTF-8 string
procedure CreateCollation(const CollationName: string; eTextRep: integer; Arg: Pointer=nil; Compare: xCompare=nil);
procedure LoadExtension(LibraryFile: string);
- published
- property Options: TSqliteOptions read FOptions write SetOptions;
end;
{ TSQLite3ConnectionDef }
@@ -194,8 +186,9 @@ begin
if P.IsNull then
checkerror(sqlite3_bind_null(fstatement,I))
else
- case P.datatype of
+ case P.DataType of
ftInteger,
+ ftAutoInc,
ftBoolean,
ftSmallint: checkerror(sqlite3_bind_int(fstatement,I,P.AsInteger));
ftWord: checkerror(sqlite3_bind_int(fstatement,I,P.AsWord));
@@ -298,7 +291,14 @@ end;
{ TSQLite3Connection }
-procedure TSQLite3Connection.LoadBlobIntoBuffer(FieldDef: TFieldDef;ABlobBuf: PBufBlobField; cursor: TSQLCursor; ATransaction : TSQLTransaction);
+constructor TSQLite3Connection.Create(AOwner: TComponent);
+begin
+ inherited Create(AOwner);
+ FConnOptions := [sqEscapeRepeat, sqEscapeSlash, sqImplicitTransaction, sqLastInsertID];
+ FieldNameQuoteChars:=DoubleQuotes;
+end;
+
+procedure TSQLite3Connection.LoadBlobIntoBuffer(FieldDef: TFieldDef; ABlobBuf: PBufBlobField; cursor: TSQLCursor; ATransaction : TSQLTransaction);
var
int1: integer;
@@ -334,12 +334,12 @@ begin
ABlobBuf^.BlobBuffer^.Size := int1;
end;
-function TSQLite3Connection.AllocateTransactionHandle: TSQLHandle;
+Function TSQLite3Connection.AllocateTransactionHandle: TSQLHandle;
begin
result:= tsqlhandle.create;
end;
-function TSQLite3Connection.AllocateCursorHandle: TSQLCursor;
+Function TSQLite3Connection.AllocateCursorHandle: TSQLCursor;
Var
Res : TSQLite3Cursor;
@@ -350,11 +350,18 @@ begin
Result:=Res;
end;
-procedure TSQLite3Connection.DeAllocateCursorHandle(var cursor: TSQLCursor);
+Procedure TSQLite3Connection.DeAllocateCursorHandle(var cursor: TSQLCursor);
begin
freeandnil(cursor);
end;
+function TSQLite3Connection.StrToStatementType(s: string): TStatementType;
+begin
+ S:=Lowercase(s);
+ if s = 'pragma' then exit(stSelect);
+ result := inherited StrToStatementType(s);
+end;
+
procedure TSQLite3Connection.PrepareStatement(cursor: TSQLCursor;
ATransaction: TSQLTransaction; buf: string; AParams: TParams);
begin
@@ -412,16 +419,31 @@ Const
}
);
-procedure TSQLite3Connection.AddFieldDefs(cursor: TSQLCursor;
- FieldDefs: TfieldDefs);
+procedure TSQLite3Connection.AddFieldDefs(cursor: TSQLCursor; FieldDefs: TFieldDefs);
var
- i : integer;
- FN,FD : string;
- ft1 : tfieldtype;
+ i, fi : integer;
+ FN, FD, PrimaryKeyFields : string;
+ ft1 : TFieldType;
size1, size2 : integer;
- fi : integer;
st : psqlite3_stmt;
+ function GetPrimaryKeyFields: string;
+ var IndexDefs: TServerIndexDefs;
+ i: integer;
+ begin
+ if FieldDefs.Dataset is TSQLQuery then
+ begin
+ IndexDefs := (FieldDefs.DataSet as TSQLQuery).ServerIndexDefs;
+ for i:=IndexDefs.Count-1 downto 0 do
+ if ixPrimary in IndexDefs[i].Options then
+ begin
+ Result := IndexDefs[i].Fields;
+ Exit;
+ end;
+ end;
+ Result := '';
+ end;
+
function ExtractPrecisionAndScale(decltype: string; var precision, scale: integer): boolean;
var p: integer;
begin
@@ -447,6 +469,7 @@ var
end;
begin
+ PrimaryKeyFields := GetPrimaryKeyFields;
st:=TSQLite3Cursor(cursor).fstatement;
for i:= 0 to sqlite3_column_count(st) - 1 do
begin
@@ -459,6 +482,10 @@ begin
ft1:=FieldMap[fi].t;
break;
end;
+ // Column declared as INTEGER PRIMARY KEY [AUTOINCREMENT] becomes ROWID for given table
+ // declared data type must be INTEGER (not INT, BIGINT, NUMERIC etc.)
+ if (FD='INTEGER') and SameText(FN, PrimaryKeyFields) then
+ ft1:=ftAutoInc;
// In case of an empty fieldtype (FD='', which is allowed and used in calculated
// columns (aggregates) and by pragma-statements) or an unknown fieldtype,
// use the field's affinity:
@@ -493,13 +520,14 @@ begin
else if (size2-size1>MaxBCDPrecision-MaxBCDScale) or (size1>MaxBCDScale) then
ft1:=ftFmtBCD;
end;
- ftUnknown : DatabaseError('Unknown record type: '+FN);
+ ftUnknown : DatabaseErrorFmt('Unknown or unsupported data type %s of column %s', [FD, FN]);
end; // Case
- Fielddefs.Add(FieldDefs.MakeNameUnique(FN),ft1,size1,false,i+1);
+ FieldDefs.Add(FieldDefs.MakeNameUnique(FN),ft1,size1,false,i+1);
end;
end;
-procedure TSQLite3Connection.Execute(cursor: TSQLCursor; atransaction: tsqltransaction; AParams: TParams);
+procedure TSQLite3Connection.Execute(cursor: TSQLCursor;
+ atransaction: tSQLtransaction; AParams: TParams);
var
SC : TSQLite3Cursor;
@@ -524,18 +552,26 @@ begin
Delete(S,1,P);
end;
+// Parses string-formatted date into TDateTime value
+// Expected format: '2013-12-31 ' (without ')
Function ParseSQLiteDate(S : ShortString) : TDateTime;
Var
Year, Month, Day : Integer;
+
begin
- Result:=0;
- If TryStrToInt(NextWord(S,'-'),Year) then
- if TryStrToInt(NextWord(S,'-'),Month) then
- if TryStrToInt(NextWord(S,' '),Day) then
+ Result:=0;
+ If TryStrToInt(NextWord(S,'-'),Year) then
+ if TryStrToInt(NextWord(S,'-'),Month) then
+ if TryStrToInt(NextWord(S,' '),Day) then
Result:=EncodeDate(Year,Month,Day);
end;
+// Parses string-formatted time into TDateTime value
+// Expected formats
+// 23:59
+// 23:59:59
+// 23:59:59.999
Function ParseSQLiteTime(S : ShortString; Interval: boolean) : TDateTime;
Var
@@ -545,16 +581,28 @@ begin
Result:=0;
If TryStrToInt(NextWord(S,':'),Hour) then
if TryStrToInt(NextWord(S,':'),Min) then
+ begin
if TryStrToInt(NextWord(S,'.'),Sec) then
- begin
- MSec:=StrToIntDef(S,0);
- if Interval then
- Result:=EncodeTimeInterval(Hour,Min,Sec,MSec)
- else
- Result:=EncodeTime(Hour,Min,Sec,MSec);
- end;
+ begin // 23:59:59 or 23:59:59.999
+ MSec:=StrToIntDef(S,0);
+ if Interval then
+ Result:=EncodeTimeInterval(Hour,Min,Sec,MSec)
+ else
+ Result:=EncodeTime(Hour,Min,Sec,MSec);
+ end;
+ end
+ else //23:59
+ begin
+ Sec:=0;
+ MSec:=0;
+ if Interval then
+ Result:=EncodeTimeInterval(Hour,Min,Sec,MSec)
+ else
+ Result:=EncodeTime(Hour,Min,Sec,MSec);
+ end;
end;
+// Parses string-formatted date/time into TDateTime value
Function ParseSQLiteDateTime(S : String) : TDateTime;
var
@@ -564,7 +612,9 @@ var
begin
DS:='';
TS:='';
- P:=Pos(' ',S);
+ P:=Pos('T',S); //allow e.g. YYYY-MM-DDTHH:MM
+ if P=0 then
+ P:=Pos(' ',S); //allow e.g. YYYY-MM-DD HH:MM
If (P<>0) then
begin
DS:=Copy(S,1,P-1);
@@ -581,7 +631,7 @@ begin
Result:=ComposeDateTime(ParseSQLiteDate(DS),ParseSQLiteTime(TS,False));
end;
-function TSQLite3Connection.LoadField(cursor : TSQLCursor;FieldDef : TfieldDef;buffer : pointer; out CreateBlob : boolean) : boolean;
+function TSQLite3Connection.LoadField(cursor : TSQLCursor; FieldDef : TFieldDef; buffer : pointer; out CreateBlob : boolean) : boolean;
var
st1: TStorageType;
@@ -600,7 +650,8 @@ begin
result:= st1 <> stnull;
if Not result then
Exit;
- case FieldDef.datatype of
+ case FieldDef.DataType of
+ ftAutoInc,
ftInteger : pinteger(buffer)^ := sqlite3_column_int(st,fnum);
ftSmallInt : psmallint(buffer)^ := sqlite3_column_int(st,fnum);
ftWord : pword(buffer)^ := sqlite3_column_int(st,fnum);
@@ -612,17 +663,17 @@ begin
ftDateTime,
ftDate,
ftTime: if st1 = sttext then
- begin
+ begin { Stored as string }
setlength(str1,sqlite3_column_bytes(st,fnum));
move(sqlite3_column_text(st,fnum)^,str1[1],length(str1));
case FieldDef.datatype of
ftDateTime: PDateTime(Buffer)^:=ParseSqliteDateTime(str1);
ftDate : PDateTime(Buffer)^:=ParseSqliteDate(str1);
- ftTime : PDateTime(Buffer)^:=ParseSQLiteTime(str1,true);
+ ftTime : PDateTime(Buffer)^:=ParseSqliteTime(str1,true);
end; {case}
end
else
- begin
+ begin { Assume stored as double }
PDateTime(buffer)^ := sqlite3_column_double(st,fnum);
if PDateTime(buffer)^ > 1721059.5 {Julian 01/01/0000} then
PDateTime(buffer)^ := PDateTime(buffer)^ + JulianEpoch; //backward compatibility hack
@@ -833,14 +884,6 @@ begin
checkerror(sqlite3_exec(fhandle,pchar(asql),@execscallback,@result,nil));
end;
-function TSQLite3Connection.RowsAffected(cursor: TSQLCursor): TRowsCount;
-begin
- if assigned(cursor) then
- Result := (cursor as TSQLite3Cursor).RowsAffected
- else
- Result := -1;
-end;
-
function TSQLite3Connection.GetSchemaInfoSQL(SchemaType: TSchemaType;
SchemaObjectName, SchemaPattern: string): string;
@@ -854,20 +897,6 @@ begin
end; {case}
end;
-function TSQLite3Connection.StrToStatementType(s: string): TStatementType;
-begin
- S:=Lowercase(s);
- if s = 'pragma' then exit(stSelect);
- result := inherited StrToStatementType(s);
-end;
-
-constructor TSQLite3Connection.Create(AOwner: TComponent);
-begin
- inherited Create(AOwner);
- FConnOptions := FConnOptions + [sqEscapeRepeat] + [sqEscapeSlash];
- FieldNameQuoteChars:=DoubleQuotes;
-end;
-
procedure TSQLite3Connection.UpdateIndexDefs(IndexDefs: TIndexDefs; TableName: string);
var
artableinfo, arindexlist, arindexinfo: TArrayStringArray;
@@ -926,7 +955,21 @@ begin
IXFields.Free;
end;
-function TSQLite3Connection.getinsertid: int64;
+function TSQLite3Connection.RowsAffected(cursor: TSQLCursor): TRowsCount;
+begin
+ if assigned(cursor) then
+ Result := (cursor as TSQLite3Cursor).RowsAffected
+ else
+ Result := -1;
+end;
+
+function TSQLite3Connection.RefreshLastInsertID(Query: TCustomSQLQuery; Field: TField): Boolean;
+begin
+ Field.AsLargeInt:=GetInsertID;
+ Result:=True;
+end;
+
+function TSQLite3Connection.GetInsertID: int64;
begin
result:= sqlite3_last_insert_rowid(fhandle);
end;
@@ -980,7 +1023,7 @@ begin
CheckError(sqlite3_create_collation(fhandle, PChar(CollationName), eTextRep, Arg, Compare));
end;
-procedure TSQLite3Connection.LoadExtension(LibraryFile: String);
+procedure TSQLite3Connection.LoadExtension(LibraryFile: string);
var
LoadResult: integer;
begin
@@ -1005,14 +1048,6 @@ begin
end;
end;
-procedure TSQLite3Connection.setoptions(const avalue: tsqliteoptions);
-begin
- if avalue <> foptions then
- begin
- checkdisconnected;
- foptions:= avalue;
- end;
-end;
{ TSQLite3ConnectionDef }
diff --git a/packages/fcl-db/src/sqlite/Makefile b/packages/fcl-db/src/sqlite/Makefile
index f308d859bb..1e0b553990 100644
--- a/packages/fcl-db/src/sqlite/Makefile
+++ b/packages/fcl-db/src/sqlite/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=customsqliteds sqliteds sqlite3ds
endif
@@ -786,6 +801,12 @@ 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=
@@ -831,6 +852,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1413,6 +1439,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_SQLITE=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_SQLITE=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1703,6 +1739,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_SQLITE=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_SQLITE=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1883,6 +1929,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_SQLITE=1
REQUIRE_PACKAGES_FCL-BASE=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
+REQUIRE_PACKAGES_SQLITE=1
+REQUIRE_PACKAGES_FCL-BASE=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2340,7 +2396,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2370,17 +2426,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-db/src/sqlite/customsqliteds.pas b/packages/fcl-db/src/sqlite/customsqliteds.pas
index 6ee6dc3c53..fa9155004a 100644
--- a/packages/fcl-db/src/sqlite/customsqliteds.pas
+++ b/packages/fcl-db/src/sqlite/customsqliteds.pas
@@ -45,15 +45,12 @@ const
DefaultStringSize = 255;
type
- {$if defined(ver2_6_0) or defined(ver2_4)}
- TRecordBuffer = PAnsiChar;
- {$endif}
TCustomSqliteDataset = class;
PDataRecord = ^DataRecord;
PPDataRecord = ^PDataRecord;
DataRecord = record
- Row: PPChar;
+ Row: PPAnsiChar;
BookmarkFlag: TBookmarkFlag;
Next: PDataRecord;
Previous: PDataRecord;
@@ -65,7 +62,7 @@ type
private
FEditItem: PDataRecord;
FDataset: TCustomSqliteDataset;
- FFieldRow: PChar;
+ FFieldRow: PAnsiChar;
FField: TField;
FFieldOffset: Integer;
FRowSize: Int64;
@@ -84,8 +81,8 @@ type
end;
//callback types
- TSqliteCdeclCallback = function(UserData: Pointer; Count: LongInt; Values: PPChar; Names: PPChar): LongInt; cdecl;
- TSqliteCallback = function(UserData: Pointer; Count: LongInt; Values: PPChar; Names: PPChar): LongInt of object;
+ TSqliteCdeclCallback = function(UserData: Pointer; Count: LongInt; Values: PPAnsiChar; Names: PPAnsiChar): LongInt; cdecl;
+ TSqliteCallback = function(UserData: Pointer; Count: LongInt; Values: PPAnsiChar; Names: PPAnsiChar): LongInt of object;
TCallbackInfo = record
Proc: TSqliteCallback;
Data: Pointer;
@@ -94,9 +91,9 @@ type
TRecordState = (rsAdded, rsDeleted, rsUpdated);
TRecordStateSet = set of TRecordState;
- TQueryUpdatesCallback = procedure(UserData: Pointer; Values: PPChar; ABookmark: TBookmark; RecordState: TRecordState) of object;
+ TQueryUpdatesCallback = procedure(UserData: Pointer; Values: PPAnsiChar; ABookmark: TBookmark; RecordState: TRecordState) of object;
- TGetSqlStrFunction = function(APChar: PChar): String;
+ TGetSqlStrFunction = function(APChar: PAnsiChar): String;
TSqliteOption = (soWildcardKey);
TSqliteOptions = set of TSqliteOption;
@@ -132,7 +129,7 @@ type
protected
FPrimaryKey: String;
FPrimaryKeyNo: Integer;
- FFileName: String;
+ FFileName: UTF8String;
FSQL: String;
FEffectiveSQL: String;
FTableName: String;
@@ -156,7 +153,7 @@ type
FSaveOnRefetch: Boolean;
FAutoIncrementKey: Boolean;
FDataAllocated: Boolean;
- function SqliteExec(Sql: PChar; ACallback: TSqliteCdeclCallback; Data: Pointer): Integer; virtual; abstract;
+ function SqliteExec(Sql: PAnsiChar; ACallback: TSqliteCdeclCallback; Data: Pointer): Integer; virtual; abstract;
procedure InternalCloseHandle; virtual; abstract;
function InternalGetHandle: Pointer; virtual; abstract;
function FieldDefsStored: Boolean;
@@ -171,7 +168,7 @@ type
function GetMasterFields: String;
procedure SetMasterSource(Value: TDataSource);
function GetMasterSource: TDataSource;
- procedure SetFileName(const Value: String);
+ procedure SetFileName(const Value: UTF8String);
function GetRowsAffected: Integer; virtual; abstract;
procedure RetrieveFieldDefs; virtual; abstract;
//TDataSet overrides
@@ -231,7 +228,7 @@ type
procedure ExecSQL(ASqlList: TStrings);
procedure ExecSQLList;
procedure ExecuteDirect(const ASql: String); virtual; abstract;
- function GetSQLValue(Values: PPChar; FieldIndex: Integer): String;
+ function GetSQLValue(Values: PPAnsiChar; FieldIndex: Integer): String;
procedure QueryUpdates(RecordStates: TRecordStateSet; Callback: TQueryUpdatesCallback; UserData: Pointer = nil);
function QuickQuery(const ASql: String):String;overload;
function QuickQuery(const ASql: String; const AStrList: TStrings): String; overload;
@@ -258,7 +255,7 @@ type
published
property AutoIncrementKey: Boolean read FAutoIncrementKey write FAutoIncrementKey default False;
property IndexFieldNames: string read FIndexFieldNames write FIndexFieldNames;
- property FileName: String read FFileName write SetFileName;
+ property FileName: UTF8String read FFileName write SetFileName;
property OnCallback: TSqliteCallback read FOnCallback write FOnCallback;
property OnGetHandle: TDataSetNotifyEvent read FOnGetHandle write FOnGetHandle;
property Options: TSqliteOptions read FOptions write SetOptions default [];
@@ -299,8 +296,8 @@ type
property OnPostError;
end;
- function Num2SQLStr(APChar: PChar): String;
- function Char2SQLStr(APChar: PChar): String;
+ function Num2SQLStr(APChar: PAnsiChar): String;
+ function Char2SQLStr(APChar: PAnsiChar): String;
implementation
@@ -316,13 +313,13 @@ const
NullString = 'NULL';
-function CallbackDispatcher(UserData: Pointer; Count: LongInt; Values: PPchar; Names: PPchar): LongInt; cdecl;
+function CallbackDispatcher(UserData: Pointer; Count: LongInt; Values: PPAnsiChar; Names: PPAnsiChar): LongInt; cdecl;
begin
with PCallbackInfo(UserData)^ do
Result:= Proc(Data, Count, Values, Names);
end;
-function Num2SQLStr(APChar: PChar): String;
+function Num2SQLStr(APChar: PAnsiChar): String;
begin
if APChar = nil then
begin
@@ -332,14 +329,14 @@ begin
Result := String(APChar);
end;
-function Char2SQLStr(APChar: PChar): String;
+function Char2SQLStr(APChar: PAnsiChar): String;
begin
if APChar = nil then
begin
Result := NullString;
Exit;
end;
- //todo: create custom routine to directly transform PChar -> SQL str
+ //todo: create custom routine to directly transform PAnsiChar -> SQL str
Result := String(APChar);
if Pos('''', Result) > 0 then
Result := AnsiReplaceStr(Result, '''', '''''');
@@ -394,7 +391,7 @@ end;
function TDSStream.Write(const Buffer; Count: LongInt): LongInt;
var
- NewRow: PChar;
+ NewRow: PAnsiChar;
begin
Result := Count;
if Count > 0 then
@@ -703,7 +700,7 @@ function TCustomSqliteDataset.GetFieldData(Field: TField; Buffer: Pointer;
NativeFormat: Boolean): Boolean;
var
ValError: Word;
- FieldRow: PChar;
+ FieldRow: PAnsiChar;
FieldOffset: Integer;
begin
if Field.FieldNo >= 0 then
@@ -722,7 +719,7 @@ begin
case Field.Datatype of
ftString:
begin
- Move(FieldRow^, PChar(Buffer)^, StrLen(FieldRow) + 1);
+ Move(FieldRow^, PAnsiChar(Buffer)^, StrLen(FieldRow) + 1);
end;
ftInteger, ftAutoInc:
begin
@@ -1023,7 +1020,7 @@ begin
end;
type
- TLocateCompareFunction = function (Value: PChar; const Key: String): Boolean;
+ TLocateCompareFunction = function (Value: PAnsiChar; const Key: String): Boolean;
TLocateFieldInfo = record
Index: Integer;
@@ -1031,7 +1028,7 @@ type
CompFunction: TLocateCompareFunction;
end;
-function CompInsensitivePartial(UTF8Value: PChar; const AnsiKey: String): Boolean;
+function CompInsensitivePartial(UTF8Value: PAnsiChar; const AnsiKey: String): Boolean;
var
AnsiValue: AnsiString;
begin
@@ -1039,21 +1036,21 @@ begin
if UTF8Value <> nil then
begin
AnsiValue := UTF8Decode(UTF8Value);
- Result := AnsiStrLIComp(PChar(AnsiValue), PChar(AnsiKey), Length(AnsiKey)) = 0;
+ Result := AnsiStrLIComp(PAnsiChar(AnsiValue), PAnsiChar(AnsiKey), Length(AnsiKey)) = 0;
end
else
Result := False;
end;
-function CompSensitivePartial(UTF8Value: PChar; const UTF8Key: String): Boolean;
+function CompSensitivePartial(UTF8Value: PAnsiChar; const UTF8Key: String): Boolean;
begin
if UTF8Value <> nil then
- Result := StrLComp(UTF8Value, PChar(UTF8Key), Length(UTF8Key)) = 0
+ Result := StrLComp(UTF8Value, PAnsiChar(UTF8Key), Length(UTF8Key)) = 0
else
Result := False;
end;
-function CompInsensitive(UTF8Value: PChar; const AnsiKey: String): Boolean;
+function CompInsensitive(UTF8Value: PAnsiChar; const AnsiKey: String): Boolean;
begin
//fpc does not provide a function to compare UTF8 directly, so convert the
//UTF8Value string to ansi through a temporary widestring and compare with the
@@ -1067,15 +1064,15 @@ begin
Result := False;
end;
-function CompSensitive(UTF8Value: PChar; const UTF8Key: String): Boolean;
+function CompSensitive(UTF8Value: PAnsiChar; const UTF8Key: String): Boolean;
begin
if UTF8Value <> nil then
- Result := StrComp(UTF8Value, PChar(UTF8Key)) = 0
+ Result := StrComp(UTF8Value, PAnsiChar(UTF8Key)) = 0
else
Result := False;
end;
-function CompSensitiveWild(UTF8Value: PChar; const UTF8Key: String): Boolean;
+function CompSensitiveWild(UTF8Value: PAnsiChar; const UTF8Key: String): Boolean;
begin
if UTF8Value <> nil then
Result := IsWild(String(UTF8Value), UTF8Key, False)
@@ -1083,7 +1080,7 @@ begin
Result := False;
end;
-function CompDouble(UTF8Value: PChar; const UTF8Key: String): Boolean;
+function CompDouble(UTF8Value: PAnsiChar; const UTF8Key: String): Boolean;
var e1,e2:double;
begin
if UTF8Value <> nil then
@@ -1096,7 +1093,7 @@ begin
Result := False;
end;
-function CompInsensitiveWild(UTF8Value: PChar; const AnsiKey: String): Boolean;
+function CompInsensitiveWild(UTF8Value: PAnsiChar; const AnsiKey: String): Boolean;
begin
//IsWild does not work with UTF8 encoded strings for case insensitive searches,
//so convert UTF8Value to the system ansi encoding before passing to IsWild.
@@ -1363,13 +1360,13 @@ begin
case Field.Datatype of
ftString:
begin
- EditItem^.Row[FieldOffset] := StrNew(PChar(Buffer));
+ EditItem^.Row[FieldOffset] := StrNew(PAnsiChar(Buffer));
end;
ftInteger:
begin
Str(LongInt(Buffer^), TempStr);
EditItem^.Row[FieldOffset] := StrAlloc(Length(TempStr) + 1);
- Move(PChar(TempStr)^, (EditItem^.Row[FieldOffset])^, Length(TempStr) + 1);
+ Move(PAnsiChar(TempStr)^, (EditItem^.Row[FieldOffset])^, Length(TempStr) + 1);
end;
ftBoolean, ftWord:
begin
@@ -1379,19 +1376,19 @@ begin
else
Str(Word(Buffer^), TempStr);
EditItem^.Row[FieldOffset] := StrAlloc(Length(TempStr) + 1);
- Move(PChar(TempStr)^, (EditItem^.Row[FieldOffset])^, Length(TempStr) + 1);
+ Move(PAnsiChar(TempStr)^, (EditItem^.Row[FieldOffset])^, Length(TempStr) + 1);
end;
ftFloat, ftDateTime, ftDate, ftTime, ftCurrency:
begin
Str(Double(Buffer^), TempStr);
EditItem^.Row[FieldOffset] := StrAlloc(Length(TempStr) + 1);
- Move(PChar(TempStr)^, (EditItem^.Row[FieldOffset])^, Length(TempStr) + 1);
+ Move(PAnsiChar(TempStr)^, (EditItem^.Row[FieldOffset])^, Length(TempStr) + 1);
end;
ftLargeInt:
begin
Str(Int64(Buffer^), TempStr);
EditItem^.Row[FieldOffset] := StrAlloc(Length(TempStr) + 1);
- Move(PChar(TempStr)^, (EditItem^.Row[FieldOffset])^, Length(TempStr) + 1);
+ Move(PAnsiChar(TempStr)^, (EditItem^.Row[FieldOffset])^, Length(TempStr) + 1);
end;
end;// case
end//if
@@ -1517,7 +1514,7 @@ begin
Result := FMasterLink.DataSource;
end;
-procedure TCustomSqliteDataset.SetFileName(const Value: String);
+procedure TCustomSqliteDataset.SetFileName(const Value: UTF8String);
begin
if Value <> FFileName then
begin
@@ -1545,7 +1542,7 @@ procedure TCustomSqliteDataset.ExecSQL(ASqlList: TStrings);
begin
if FSqliteHandle = nil then
GetSqliteHandle;
- FReturnCode := SqliteExec(PChar(ASQLList.Text), nil, nil);
+ FReturnCode := SqliteExec(PAnsiChar(ASQLList.Text), nil, nil);
if FReturnCode <> SQLITE_OK then
DatabaseError(ReturnString, Self);
end;
@@ -1555,7 +1552,7 @@ begin
ExecSQL(SQLList);
end;
-function TCustomSqliteDataset.GetSQLValue(Values: PPChar; FieldIndex: Integer): String;
+function TCustomSqliteDataset.GetSQLValue(Values: PPAnsiChar; FieldIndex: Integer): String;
begin
if (State = dsInactive) or (FieldIndex < 0) or (FieldIndex >= FieldDefs.Count) then
DatabaseError('Error retrieving SQL value: dataset inactive or field out of range', Self);
@@ -1615,7 +1612,7 @@ begin
if StatementsCounter = 400 then
begin
SQLTemp := SQLTemp + 'COMMIT;';
- FReturnCode := SqliteExec(PChar(SQLTemp), nil, nil);
+ FReturnCode := SqliteExec(PAnsiChar(SQLTemp), nil, nil);
StatementsCounter := 0;
SQLTemp := 'BEGIN;';
if FReturnCode <> SQLITE_OK then
@@ -1649,7 +1646,7 @@ begin
if StatementsCounter = 400 then
begin
SQLTemp := SQLTemp + 'COMMIT;';
- FReturnCode := SqliteExec(PChar(SQLTemp), nil, nil);
+ FReturnCode := SqliteExec(PAnsiChar(SQLTemp), nil, nil);
StatementsCounter := 0;
SQLTemp := 'BEGIN;';
if FReturnCode <> SQLITE_OK then
@@ -1681,7 +1678,7 @@ begin
if StatementsCounter = 400 then
begin
SQLTemp := SQLTemp + 'COMMIT;';
- FReturnCode := SqliteExec(PChar(SQLTemp), nil, nil);
+ FReturnCode := SqliteExec(PAnsiChar(SQLTemp), nil, nil);
StatementsCounter := 0;
SQLTemp := 'BEGIN;';
if FReturnCode <> SQLITE_OK then
@@ -1698,7 +1695,7 @@ begin
if FReturnCode = SQLITE_OK then
begin
SQLTemp := SQLTemp + 'COMMIT;';
- FReturnCode := SqliteExec(PChar(SQLTemp), nil, nil);
+ FReturnCode := SqliteExec(PAnsiChar(SQLTemp), nil, nil);
if FReturnCode <> SQLITE_OK then
SqliteExec('ROLLBACK;', nil, nil);
end;
@@ -1802,7 +1799,7 @@ begin
GetSqliteHandle;
CallbackInfo.Data := UserData;
CallbackInfo.Proc := FOnCallback;
- SqliteExec(PChar(ASQL), @CallbackDispatcher, @CallbackInfo);
+ SqliteExec(PAnsiChar(ASQL), @CallbackDispatcher, @CallbackInfo);
end;
diff --git a/packages/fcl-db/src/sqlite/sqlite3ds.pas b/packages/fcl-db/src/sqlite/sqlite3ds.pas
index b5053d15af..a1ee5be8ce 100644
--- a/packages/fcl-db/src/sqlite/sqlite3ds.pas
+++ b/packages/fcl-db/src/sqlite/sqlite3ds.pas
@@ -51,7 +51,7 @@ type
procedure InternalCloseHandle; override;
function InternalGetHandle: Pointer; override;
procedure RetrieveFieldDefs; override;
- function SqliteExec(ASQL: PChar; ACallback: TSqliteCdeclCallback; Data: Pointer): Integer; override;
+ function SqliteExec(ASQL: PAnsiChar; ACallback: TSqliteCdeclCallback; Data: Pointer): Integer; override;
public
procedure ExecuteDirect(const ASQL: String); override;
function QuickQuery(const ASQL: String; const AStrList: TStrings; FillObjects: Boolean): String; override;
@@ -101,7 +101,7 @@ begin
end;
end;
-function GetAutoIncValue(NextValue: Pointer; Columns: Integer; ColumnValues: PPChar; ColumnNames: PPChar): Integer; cdecl;
+function GetAutoIncValue(NextValue: Pointer; Columns: Integer; ColumnValues: PPAnsiChar; ColumnNames: PPAnsiChar): Integer; cdecl;
var
CodeError, TempInt: Integer;
begin
@@ -118,7 +118,7 @@ end;
{ TSqlite3Dataset }
-function TSqlite3Dataset.SqliteExec(ASQL: PChar; ACallback: TSqliteCdeclCallback; Data: Pointer): Integer;
+function TSqlite3Dataset.SqliteExec(ASQL: PAnsiChar; ACallback: TSqliteCdeclCallback; Data: Pointer): Integer;
begin
Result := sqlite3_exec(FSqliteHandle, ASQL, ACallback, Data, nil);
end;
@@ -138,7 +138,7 @@ var
vm: Pointer;
ErrorStr: String;
begin
- sqlite3_open(PChar(FFileName), @Result);
+ sqlite3_open(PAnsiChar(FFileName), @Result);
//sqlite3_open returns SQLITE_OK even for invalid files
//do additional check here
FReturnCode := sqlite3_prepare(Result, CheckFileSql, -1, @vm, nil);
@@ -163,7 +163,7 @@ begin
{$endif}
FAutoIncFieldNo := -1;
FieldDefs.Clear;
- FReturnCode := sqlite3_prepare(FSqliteHandle, PChar(FEffectiveSQL), -1, @vm, nil);
+ FReturnCode := sqlite3_prepare(FSqliteHandle, PAnsiChar(FEffectiveSQL), -1, @vm, nil);
if FReturnCode <> SQLITE_OK then
DatabaseError(ReturnString, Self);
sqlite3_step(vm);
@@ -263,7 +263,7 @@ procedure TSqlite3Dataset.ExecuteDirect(const ASQL: String);
var
vm: Pointer;
begin
- FReturnCode := sqlite3_prepare(FSqliteHandle, Pchar(ASQL), -1, @vm, nil);
+ FReturnCode := sqlite3_prepare(FSqliteHandle, PAnsiChar(ASQL), -1, @vm, nil);
if FReturnCode <> SQLITE_OK then
DatabaseError(ReturnString, Self);
FReturnCode := sqlite3_step(vm);
@@ -278,10 +278,10 @@ var
begin
//Get AutoInc Field initial value
if FAutoIncFieldNo <> -1 then
- sqlite3_exec(FSqliteHandle, PChar('Select Max(' + FieldDefs[FAutoIncFieldNo].Name +
+ sqlite3_exec(FSqliteHandle, PAnsiChar('Select Max(' + FieldDefs[FAutoIncFieldNo].Name +
') from ' + FTableName), @GetAutoIncValue, @FNextAutoInc, nil);
- FReturnCode := sqlite3_prepare(FSqliteHandle, PChar(FEffectiveSQL), -1, @vm, nil);
+ FReturnCode := sqlite3_prepare(FSqliteHandle, PAnsiChar(FEffectiveSQL), -1, @vm, nil);
if FReturnCode <> SQLITE_OK then
DatabaseError(ReturnString, Self);
@@ -294,7 +294,7 @@ begin
//add extra rows for calculated fields
if FCalcFieldList <> nil then
Inc(FRowCount, FCalcFieldList.Count);
- FRowBufferSize := (SizeOf(PPChar) * FRowCount);
+ FRowBufferSize := (SizeOf(PPAnsiChar) * FRowCount);
FReturnCode := sqlite3_step(vm);
while FReturnCode = SQLITE_ROW do
begin
@@ -367,7 +367,7 @@ begin
if FSqliteHandle = nil then
GetSqliteHandle;
Result := '';
- FReturnCode := sqlite3_prepare(FSqliteHandle,Pchar(ASQL), -1, @vm, nil);
+ FReturnCode := sqlite3_prepare(FSqliteHandle,PAnsiChar(ASQL), -1, @vm, nil);
if FReturnCode <> SQLITE_OK then
DatabaseError(ReturnString, Self);
diff --git a/packages/fcl-db/src/sqlite/sqliteds.pas b/packages/fcl-db/src/sqlite/sqliteds.pas
index fb8fc5c8d0..66e7ffed4a 100644
--- a/packages/fcl-db/src/sqlite/sqliteds.pas
+++ b/packages/fcl-db/src/sqlite/sqliteds.pas
@@ -53,7 +53,7 @@ type
function InternalGetHandle: Pointer; override;
procedure InternalCloseHandle; override;
procedure RetrieveFieldDefs; override;
- function SqliteExec(ASQL: PChar; ACallback: TSqliteCdeclCallback; Data: Pointer): Integer; override;
+ function SqliteExec(ASQL: PAnsiChar; ACallback: TSqliteCdeclCallback; Data: Pointer): Integer; override;
public
procedure ExecuteDirect(const ASQL: String); override;
function QuickQuery(const ASQL: String; const AStrList: TStrings; FillObjects: Boolean): String; override;
@@ -69,7 +69,7 @@ uses
//function sqlite_last_statement_changes(dbhandle:Pointer):longint;cdecl;external 'sqlite' name 'sqlite_last_statement_changes';
-function GetAutoIncValue(NextValue: Pointer; Columns: Integer; ColumnValues: PPChar; ColumnNames: PPChar): Integer; cdecl;
+function GetAutoIncValue(NextValue: Pointer; Columns: Integer; ColumnValues: PPAnsiChar; ColumnNames: PPAnsiChar): Integer; cdecl;
var
CodeError, TempInt: Integer;
begin
@@ -86,7 +86,7 @@ end;
{ TSqliteDataset }
-function TSqliteDataset.SqliteExec(ASQL: PChar; ACallback: TSqliteCdeclCallback; Data: Pointer): Integer;
+function TSqliteDataset.SqliteExec(ASQL: PAnsiChar; ACallback: TSqliteCdeclCallback; Data: Pointer): Integer;
begin
Result := sqlite_exec(FSqliteHandle, ASQL, ACallback, Data, nil);
end;
@@ -99,9 +99,9 @@ end;
function TSqliteDataset.InternalGetHandle: Pointer;
var
- ErrorStr: PChar;
+ ErrorStr: PAnsiChar;
begin
- Result := sqlite_open(PChar(FFileName), 0, @ErrorStr);
+ Result := sqlite_open(PAnsiChar(FFileName), 0, @ErrorStr);
if Result = nil then
begin
DatabaseError('Error opening "' + FFileName + '": ' + String(ErrorStr));
@@ -114,12 +114,12 @@ var
ColumnCount, i, DataSize:Integer;
AType: TFieldType;
vm: Pointer;
- ColumnNames, ColumnValues:PPChar;
+ ColumnNames, ColumnValues:PPAnsiChar;
ColumnStr: String;
begin
FieldDefs.Clear;
FAutoIncFieldNo := -1;
- FReturnCode := sqlite_compile(FSqliteHandle, PChar(FEffectiveSQL), nil, @vm, nil);
+ FReturnCode := sqlite_compile(FSqliteHandle, PAnsiChar(FEffectiveSQL), nil, @vm, nil);
if FReturnCode <> SQLITE_OK then
DatabaseError(ReturnString, Self);
sqlite_step(vm, @ColumnCount, @ColumnValues, @ColumnNames);
@@ -207,10 +207,10 @@ end;
procedure TSqliteDataset.ExecuteDirect(const ASQL: String);
var
vm: Pointer;
- ColumnNames, ColumnValues: PPChar;
+ ColumnNames, ColumnValues: PPAnsiChar;
ColCount: Integer;
begin
- FReturnCode := sqlite_compile(FSqliteHandle, Pchar(ASQL), nil, @vm, nil);
+ FReturnCode := sqlite_compile(FSqliteHandle, PAnsiChar(ASQL), nil, @vm, nil);
if FReturnCode <> SQLITE_OK then
DatabaseError(ReturnString,Self);
@@ -223,15 +223,15 @@ procedure TSqliteDataset.BuildLinkedList;
var
TempItem: PDataRecord;
vm: Pointer;
- ColumnNames, ColumnValues: PPChar;
+ ColumnNames, ColumnValues: PPAnsiChar;
Counter, ColumnCount: Integer;
begin
//Get AutoInc Field initial value
if FAutoIncFieldNo <> -1 then
- sqlite_exec(FSqliteHandle, PChar('Select Max(' + FieldDefs[FAutoIncFieldNo].Name + ') from ' + FTableName),
+ sqlite_exec(FSqliteHandle, PAnsiChar('Select Max(' + FieldDefs[FAutoIncFieldNo].Name + ') from ' + FTableName),
@GetAutoIncValue, @FNextAutoInc, nil);
- FReturnCode := sqlite_compile(FSqliteHandle, PChar(FEffectiveSQL), nil, @vm, nil);
+ FReturnCode := sqlite_compile(FSqliteHandle, PAnsiChar(FEffectiveSQL), nil, @vm, nil);
if FReturnCode <> SQLITE_OK then
DatabaseError(ReturnString, Self);
@@ -244,7 +244,7 @@ begin
//add extra rows for calculated fields
if FCalcFieldList <> nil then
Inc(FRowCount, FCalcFieldList.Count);
- FRowBufferSize := (SizeOf(PPChar) * FRowCount);
+ FRowBufferSize := (SizeOf(PPAnsiChar) * FRowCount);
while FReturnCode = SQLITE_ROW do
begin
@@ -339,7 +339,7 @@ end;
function TSqliteDataset.QuickQuery(const ASQL: String; const AStrList: TStrings; FillObjects: Boolean): String;
var
vm: Pointer;
- ColumnNames, ColumnValues: PPChar;
+ ColumnNames, ColumnValues: PPAnsiChar;
ColCount: Integer;
procedure FillStrings;
@@ -364,7 +364,7 @@ begin
if FSqliteHandle = nil then
GetSqliteHandle;
Result := '';
- FReturnCode := sqlite_compile(FSqliteHandle, PChar(ASQL), nil, @vm, nil);
+ FReturnCode := sqlite_compile(FSqliteHandle, PAnsiChar(ASQL), nil, @vm, nil);
if FReturnCode <> SQLITE_OK then
DatabaseError(ReturnString,Self);
diff --git a/packages/fcl-db/tests/Makefile b/packages/fcl-db/tests/Makefile
index 3aa558054f..26a2194eb2 100644
--- a/packages/fcl-db/tests/Makefile
+++ b/packages/fcl-db/tests/Makefile
@@ -1,2988 +1,3059 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
-#
-default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx haiku aix
-LIMIT83fs = go32v2 os2 emx watcom msdos
-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
-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 units)),)
-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 units)),)
-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 units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-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
-ifeq ($(CPU_TARGET),mipsel)
-BINUTILSPREFIX=mipsel-linux-android-
-endif
-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 $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-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=fcl
-PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-android)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),powerpc-aix)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),x86_64-netbsd)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),x86_64-openbsd)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),arm-android)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),powerpc64-aix)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),mips-linux)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),mipsel-android)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),jvm-java)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),jvm-android)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i8086-msdos)
-override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i386-android)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),powerpc-aix)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),x86_64-netbsd)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),x86_64-openbsd)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),arm-android)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),powerpc64-aix)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),mips-linux)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),mipsel-android)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),jvm-java)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),jvm-android)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-ifeq ($(FULL_TARGET),i8086-msdos)
-override TARGET_EXAMPLES+=dbtestframework testsqlfiles
-endif
-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
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-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),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),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=
-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
-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 fcl-fpcunit fcl-db paszlib
-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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=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),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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=1
-endif
-ifeq ($(FULL_TARGET),m68k-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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=1
-endif
-ifeq ($(FULL_TARGET),m68k-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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-REQUIRE_PACKAGES_FCL-FPCUNIT=1
-REQUIRE_PACKAGES_FCL-DB=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
-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),)
-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
-ifdef REQUIRE_PACKAGES_FCL-FPCUNIT
-PACKAGEDIR_FCL-FPCUNIT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-fpcunit/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_FCL-FPCUNIT),)
-ifneq ($(wildcard $(PACKAGEDIR_FCL-FPCUNIT)/units/$(TARGETSUFFIX)),)
-UNITDIR_FCL-FPCUNIT=$(PACKAGEDIR_FCL-FPCUNIT)/units/$(TARGETSUFFIX)
-else
-UNITDIR_FCL-FPCUNIT=$(PACKAGEDIR_FCL-FPCUNIT)
-endif
-ifneq ($(wildcard $(PACKAGEDIR_FCL-FPCUNIT)/units/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_FCL-FPCUNIT=$(PACKAGEDIR_FCL-FPCUNIT)/units/$(SOURCESUFFIX)
-else
-ifneq ($(wildcard $(PACKAGEDIR_FCL-FPCUNIT)/units_bs/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_FCL-FPCUNIT=$(PACKAGEDIR_FCL-FPCUNIT)/units_bs/$(SOURCESUFFIX)
-else
-UNITDIR_FPMAKE_FCL-FPCUNIT=$(PACKAGEDIR_FCL-FPCUNIT)
-endif
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_FCL-FPCUNIT)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_FCL-FPCUNIT) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-FPCUNIT)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_FCL-FPCUNIT=
-UNITDIR_FCL-FPCUNIT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-fpcunit/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_FCL-FPCUNIT),)
-UNITDIR_FCL-FPCUNIT:=$(firstword $(UNITDIR_FCL-FPCUNIT))
-else
-UNITDIR_FCL-FPCUNIT=
-endif
-endif
-ifdef UNITDIR_FCL-FPCUNIT
-override COMPILER_UNITDIR+=$(UNITDIR_FCL-FPCUNIT)
-endif
-ifdef UNITDIR_FPMAKE_FCL-FPCUNIT
-override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-FPCUNIT)
-endif
-endif
-ifdef REQUIRE_PACKAGES_FCL-DB
-PACKAGEDIR_FCL-DB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_FCL-DB),)
-ifneq ($(wildcard $(PACKAGEDIR_FCL-DB)/units/$(TARGETSUFFIX)),)
-UNITDIR_FCL-DB=$(PACKAGEDIR_FCL-DB)/units/$(TARGETSUFFIX)
-else
-UNITDIR_FCL-DB=$(PACKAGEDIR_FCL-DB)
-endif
-ifneq ($(wildcard $(PACKAGEDIR_FCL-DB)/units/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_FCL-DB=$(PACKAGEDIR_FCL-DB)/units/$(SOURCESUFFIX)
-else
-ifneq ($(wildcard $(PACKAGEDIR_FCL-DB)/units_bs/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_FCL-DB=$(PACKAGEDIR_FCL-DB)/units_bs/$(SOURCESUFFIX)
-else
-UNITDIR_FPMAKE_FCL-DB=$(PACKAGEDIR_FCL-DB)
-endif
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_FCL-DB)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_FCL-DB) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-DB)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_FCL-DB=
-UNITDIR_FCL-DB:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_FCL-DB),)
-UNITDIR_FCL-DB:=$(firstword $(UNITDIR_FCL-DB))
-else
-UNITDIR_FCL-DB=
-endif
-endif
-ifdef UNITDIR_FCL-DB
-override COMPILER_UNITDIR+=$(UNITDIR_FCL-DB)
-endif
-ifdef UNITDIR_FPMAKE_FCL-DB
-override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-DB)
-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)
-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)
-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
-ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-endif
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1r
-endif
-else
-FPCCPUOPT:=-O2
-endif
-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),freebsd openbsd netbsd linux solaris),)
-ifeq ($(CPU_TARGET),x86_64)
-override FPCOPT+=-Cg
-endif
-endif
-ifdef LINKSHARED
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-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))
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-ifdef RUNBATCH
-EXECPPAS:=@$(RUNBATCH) $(PPAS)
-else
-EXECPPAS:=@$(PPAS)
-endif
-endif
-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_examples
-ifneq ($(TARGET_EXAMPLES),)
-HASEXAMPLES=1
-override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET_EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES)))
-override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES))
-override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES)))
-override EXAMPLEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_EXAMPLES))
-override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES)
-override CLEANEXEDBGFILES+=$(EXAMPLEDBGFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
-endif
-endif
-ifneq ($(TARGET_EXAMPLEDIRS),)
-HASEXAMPLES=1
-endif
-fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(TARGET_EXAMPLEDIRS))
-.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) .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 %$(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)
-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
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-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: $(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)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
-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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
- -$(DEL) *$(ASMEXT) *_ppas$(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
- -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
- -$(DEL) *.o *.ppu *.a
-endif
- -$(DELTREE) *$(SMARTEXT)
- -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
- -$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
- -$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
- -$(DEL) *$(DEBUGSYMEXT)
-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: fpc_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
-.NOTPARALLEL:
+#
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
+#
+default: all
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
+UNIXs = linux $(BSDs) solaris qnx haiku aix
+LIMIT83fs = go32v2 os2 emx watcom msdos
+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),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
+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 units)),)
+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 units)),)
+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 units)),)
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+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
+ifeq ($(CPU_TARGET),mipsel)
+BINUTILSPREFIX=mipsel-linux-android-
+endif
+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 $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
+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=fcl
+PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl/Makefile.fpc,$(PACKAGESDIR))))))
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override TARGET_UNITS+=toolsunit dbftoolsunit memdstoolsunit sqldbtoolsunit sdfdstoolsunit
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override TARGET_EXAMPLES+=dbtestframework testsqlfiles
+endif
+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
+BATCHEXT=.bat
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+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=
+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
+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 fcl-fpcunit fcl-db paszlib
+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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+REQUIRE_PACKAGES_RTL=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),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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
+endif
+ifeq ($(FULL_TARGET),m68k-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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=1
+endif
+ifeq ($(FULL_TARGET),m68k-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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+REQUIRE_PACKAGES_FCL-DB=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
+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),)
+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
+ifdef REQUIRE_PACKAGES_FCL-FPCUNIT
+PACKAGEDIR_FCL-FPCUNIT:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-fpcunit/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_FCL-FPCUNIT),)
+ifneq ($(wildcard $(PACKAGEDIR_FCL-FPCUNIT)/units/$(TARGETSUFFIX)),)
+UNITDIR_FCL-FPCUNIT=$(PACKAGEDIR_FCL-FPCUNIT)/units/$(TARGETSUFFIX)
+else
+UNITDIR_FCL-FPCUNIT=$(PACKAGEDIR_FCL-FPCUNIT)
+endif
+ifneq ($(wildcard $(PACKAGEDIR_FCL-FPCUNIT)/units/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_FCL-FPCUNIT=$(PACKAGEDIR_FCL-FPCUNIT)/units/$(SOURCESUFFIX)
+else
+ifneq ($(wildcard $(PACKAGEDIR_FCL-FPCUNIT)/units_bs/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_FCL-FPCUNIT=$(PACKAGEDIR_FCL-FPCUNIT)/units_bs/$(SOURCESUFFIX)
+else
+UNITDIR_FPMAKE_FCL-FPCUNIT=$(PACKAGEDIR_FCL-FPCUNIT)
+endif
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_FCL-FPCUNIT)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_FCL-FPCUNIT) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-FPCUNIT)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_FCL-FPCUNIT=
+UNITDIR_FCL-FPCUNIT:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-fpcunit/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_FCL-FPCUNIT),)
+UNITDIR_FCL-FPCUNIT:=$(firstword $(UNITDIR_FCL-FPCUNIT))
+else
+UNITDIR_FCL-FPCUNIT=
+endif
+endif
+ifdef UNITDIR_FCL-FPCUNIT
+override COMPILER_UNITDIR+=$(UNITDIR_FCL-FPCUNIT)
+endif
+ifdef UNITDIR_FPMAKE_FCL-FPCUNIT
+override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-FPCUNIT)
+endif
+endif
+ifdef REQUIRE_PACKAGES_FCL-DB
+PACKAGEDIR_FCL-DB:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_FCL-DB),)
+ifneq ($(wildcard $(PACKAGEDIR_FCL-DB)/units/$(TARGETSUFFIX)),)
+UNITDIR_FCL-DB=$(PACKAGEDIR_FCL-DB)/units/$(TARGETSUFFIX)
+else
+UNITDIR_FCL-DB=$(PACKAGEDIR_FCL-DB)
+endif
+ifneq ($(wildcard $(PACKAGEDIR_FCL-DB)/units/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_FCL-DB=$(PACKAGEDIR_FCL-DB)/units/$(SOURCESUFFIX)
+else
+ifneq ($(wildcard $(PACKAGEDIR_FCL-DB)/units_bs/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_FCL-DB=$(PACKAGEDIR_FCL-DB)/units_bs/$(SOURCESUFFIX)
+else
+UNITDIR_FPMAKE_FCL-DB=$(PACKAGEDIR_FCL-DB)
+endif
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_FCL-DB)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_FCL-DB) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-DB)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_FCL-DB=
+UNITDIR_FCL-DB:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-db/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_FCL-DB),)
+UNITDIR_FCL-DB:=$(firstword $(UNITDIR_FCL-DB))
+else
+UNITDIR_FCL-DB=
+endif
+endif
+ifdef UNITDIR_FCL-DB
+override COMPILER_UNITDIR+=$(UNITDIR_FCL-DB)
+endif
+ifdef UNITDIR_FPMAKE_FCL-DB
+override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-DB)
+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)
+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)
+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
+ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
+ifeq ($(CPU_TARGET),i386)
+FPCCPUOPT:=-OG2p3
+endif
+ifeq ($(CPU_TARGET),powerpc)
+FPCCPUOPT:=-O1r
+endif
+else
+FPCCPUOPT:=-O2
+endif
+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),)
+ifeq ($(CPU_TARGET),x86_64)
+override FPCOPT+=-Cg
+endif
+endif
+ifdef LINKSHARED
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+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_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_examples
+ifneq ($(TARGET_EXAMPLES),)
+HASEXAMPLES=1
+override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET_EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES)))
+override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES))
+override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES)))
+override EXAMPLEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_EXAMPLES))
+override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES)
+override CLEANEXEDBGFILES+=$(EXAMPLEDBGFILES)
+ifeq ($(OS_TARGET),os2)
+override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
+endif
+ifeq ($(OS_TARGET),emx)
+override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
+endif
+endif
+ifneq ($(TARGET_EXAMPLEDIRS),)
+HASEXAMPLES=1
+endif
+fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(TARGET_EXAMPLEDIRS))
+.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) .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 %$(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)
+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
+override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
+ifneq ($(UNITTARGETDIRPREFIX),)
+override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
+override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
+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: $(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)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
+endif
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
+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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *$(ASMEXT) *_ppas$(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
+ -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+ -$(DEL) *.o *.ppu *.a
+endif
+ -$(DELTREE) *$(SMARTEXT)
+ -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *_ppas$(BATCHEXT)
+ifdef AOUTEXT
+ -$(DEL) *$(AOUTEXT)
+endif
+ifdef DEBUGSYMEXT
+ -$(DEL) *$(DEBUGSYMEXT)
+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: fpc_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
+.NOTPARALLEL:
diff --git a/packages/fcl-db/tests/sqldbtoolsunit.pas b/packages/fcl-db/tests/sqldbtoolsunit.pas
index 56ba77efd0..c9b2ac3603 100644
--- a/packages/fcl-db/tests/sqldbtoolsunit.pas
+++ b/packages/fcl-db/tests/sqldbtoolsunit.pas
@@ -54,13 +54,14 @@ type
procedure DropFieldDataset; override;
Function InternalGetNDataset(n : integer) : TDataset; override;
Function InternalGetFieldDataset : TDataSet; override;
- procedure TryDropIfExist(ATableName : String);
public
+ procedure TryDropIfExist(ATableName : String);
destructor Destroy; override;
constructor Create; override;
procedure ExecuteDirect(const SQL: string);
// Issue a commit(retaining) for databases that need it (e.g. in DDL)
procedure CommitDDL;
+ Procedure FreeTransaction;
property Connection : TSQLConnection read FConnection;
property Transaction : TSQLTransaction read FTransaction;
property Query : TSQLQuery read FQuery;
@@ -321,7 +322,7 @@ begin
FieldtypeDefinitions[ftMemo] := 'CLOB';
FieldtypeDefinitions[ftWideString] := 'NVARCHAR2(10)';
FieldtypeDefinitions[ftFixedWideChar] := 'NCHAR(10)';
- //FieldtypeDefinitions[ftWideMemo] := 'NCLOB';
+ FieldtypeDefinitions[ftWideMemo] := 'NCLOB';
end;
ssPostgreSQL:
begin
@@ -400,7 +401,7 @@ begin
testValues[ftFixedChar,i] := PadRight(testValues[ftFixedChar,i], 10);
end;
-function TSQLDBConnector.CreateQuery: TSQLQuery;
+Function TSQLDBConnector.CreateQuery: TSQLQuery;
begin
Result := TSQLQuery.create(nil);
@@ -555,7 +556,7 @@ begin
end;
procedure TSQLDBConnector.DoLogEvent(Sender: TSQLConnection;
- EventType: TDBEventType; const Msg: String);
+ EventType: TDBEventType; Const Msg: String);
var
Category: string;
begin
@@ -609,7 +610,7 @@ begin
end;
end;
-function TSQLDBConnector.InternalGetNDataset(n: integer): TDataset;
+Function TSQLDBConnector.InternalGetNDataset(n: integer): TDataset;
begin
Result := CreateQuery;
with (Result as TSQLQuery) do
@@ -620,7 +621,7 @@ begin
end;
end;
-function TSQLDBConnector.InternalGetFieldDataset: TDataSet;
+Function TSQLDBConnector.InternalGetFieldDataset: TDataSet;
begin
Result := CreateQuery;
with (Result as TSQLQuery) do
@@ -641,7 +642,7 @@ begin
ssFirebird:
begin
// This only works with Firebird 2+
- FConnection.ExecuteDirect('execute block as begin if (exists (select 1 from rdb$relations where rdb$relation_name=''' + ATableName + ''')) '+
+ FConnection.ExecuteDirect('execute block as begin if (exists (select 1 from rdb$relations where upper(rdb$relation_name)=''' + UpperCase(ATableName) + ''')) '+
'then execute statement ''drop table ' + ATableName + ';'';end');
FTransaction.CommitRetaining;
end;
@@ -651,15 +652,19 @@ begin
// which leads to the rollback not referring to the right transaction=>SQL error
// Use SQL92 ISO standard INFORMATION_SCHEMA:
FConnection.ExecuteDirect(
- 'if exists (select * from INFORMATION_SCHEMA.TABLES where TABLE_TYPE=''BASE TABLE'' AND TABLE_NAME=''' + ATableName + ''') '+
- 'begin '+
- 'drop table ' + ATableName + ' '+
- 'end');
+ 'if exists (select * from INFORMATION_SCHEMA.TABLES where TABLE_TYPE=''BASE TABLE'' AND TABLE_NAME=''' + ATableName + ''')'+
+ ' drop table ' + ATableName );
end;
ssMySQL:
begin
FConnection.ExecuteDirect('drop table if exists ' + ATableName);
end;
+ ssPostgreSQL,
+ ssSQLite:
+ begin
+ FConnection.ExecuteDirect('drop table if exists ' + ATableName);
+ FTransaction.CommitRetaining;
+ end;
ssOracle:
begin
FConnection.ExecuteDirect(
@@ -702,23 +707,34 @@ begin
Transaction.CommitRetaining;
end;
+Procedure TSQLDBConnector.FreeTransaction;
+begin
+ FreeAndNil(FTransaction);
+end;
+
destructor TSQLDBConnector.Destroy;
begin
+ FreeAndNil(FQuery);
if assigned(FTransaction) then
begin
try
- if Ftransaction.Active then Ftransaction.Rollback;
- Ftransaction.StartTransaction;
- Fconnection.ExecuteDirect('DROP TABLE FPDEV2');
- Ftransaction.Commit;
+ if not (stoUseImplicit in Transaction.Options) then
+ begin
+ if Ftransaction.Active then
+ Ftransaction.Rollback;
+ Ftransaction.StartTransaction;
+ end;
+ TryDropIfExist('FPDEV2');
+ if not (stoUseImplicit in Transaction.Options) then
+ Ftransaction.Commit;
Except
- if Ftransaction.Active then Ftransaction.Rollback;
+ if Ftransaction.Active and not (stoUseImplicit in Transaction.Options) then
+ Ftransaction.Rollback;
end; // try
end;
- inherited Destroy;
- FreeAndNil(FQuery);
- FreeAndNil(FTransaction);
+ FreeTransaction;
FreeAndNil(FConnection);
+ inherited Destroy;
end;
constructor TSQLDBConnector.Create;
diff --git a/packages/fcl-db/tests/testfieldtypes.pas b/packages/fcl-db/tests/testfieldtypes.pas
index 4f7006a15f..c97633b9ff 100644
--- a/packages/fcl-db/tests/testfieldtypes.pas
+++ b/packages/fcl-db/tests/testfieldtypes.pas
@@ -24,7 +24,10 @@ type
procedure TestSQLFieldType(ADatatype: TFieldType; ASQLTypeDecl: string;
ADataSize: integer; AGetSQLTextProc: TGetSQLTextProc;
ACheckFieldValueProc: TCheckFieldValueProc);
- procedure TestXXParamQuery(ADatatype : TFieldType; ASQLTypeDecl : string; testValuesCount : integer; Cross : boolean = false);
+ procedure TestXXParamQuery(ADataType : TFieldType; ASQLTypeDecl : string;
+ ParamValuesCount : integer); overload;
+ procedure TestXXParamQuery(ADataType : TFieldType; ASQLTypeDecl : string;
+ ParamValuesCount : integer; const ParamValues: array of string; Cross : boolean = False); overload;
procedure TestSetBlobAsParam(asWhat : integer);
protected
procedure SetUp; override;
@@ -83,6 +86,7 @@ type
procedure TestTimeParamQuery;
procedure TestDateTimeParamQuery;
procedure TestFmtBCDParamQuery;
+ Procedure TestFmtBCDParamQuery2; // Bug 27077
procedure TestFloatParamQuery;
procedure TestCurrencyParamQuery;
procedure TestBCDParamQuery;
@@ -829,7 +833,7 @@ begin
begin
datatype:='INTEGER PRIMARY KEY';
values:='DEFAULT VALUES';
- fieldtype:=ftInteger;
+ fieldtype:=ftAutoInc;
updatable:=true;
end;
ssPostgreSQL:
@@ -1488,7 +1492,14 @@ end;
procedure TTestFieldTypes.TestFmtBCDParamQuery;
begin
- TestXXParamQuery(ftFMTBcd,FieldtypeDefinitions[ftFMTBcd],testValuesCount);
+ TestXXParamQuery(ftFMTBcd, FieldtypeDefinitions[ftFMTBcd], testValuesCount, testFmtBCDValues);
+end;
+
+Procedure TTestFieldTypes.TestFmtBCDParamQuery2;
+begin
+ // This test tests FmtBCD params with smaller precision, which fits into INT32
+ // TestFmtBCDParamQuery tests FmtBCD params with bigger precision, which fits into INT64
+ TestXXParamQuery(ftFMTBcd, 'NUMERIC(9,5)', 2, ['1234','1234.56781']);
end;
procedure TTestFieldTypes.TestDateParamQuery;
@@ -1498,7 +1509,7 @@ end;
procedure TTestFieldTypes.TestCrossStringDateParam;
begin
- TestXXParamQuery(ftDate,FieldtypeDefinitions[ftDate],testDateValuesCount,True);
+ TestXXParamQuery(ftDate,FieldtypeDefinitions[ftDate],testDateValuesCount,[],True);
end;
procedure TTestFieldTypes.TestTimeParamQuery;
@@ -1529,12 +1540,12 @@ end;
procedure TTestFieldTypes.TestBytesParamQuery;
begin
- TestXXParamQuery(ftBytes, FieldtypeDefinitions[ftBytes], testBytesValuesCount, true);
+ TestXXParamQuery(ftBytes, FieldtypeDefinitions[ftBytes], testBytesValuesCount, [], True);
end;
procedure TTestFieldTypes.TestVarBytesParamQuery;
begin
- TestXXParamQuery(ftVarBytes, FieldtypeDefinitions[ftVarBytes], testVarBytesValuesCount, not(SQLServerType in [ssMSSQL, ssSybase]));
+ TestXXParamQuery(ftVarBytes, FieldtypeDefinitions[ftVarBytes], testVarBytesValuesCount, [], not(SQLServerType in [ssMSSQL, ssSybase]));
end;
procedure TTestFieldTypes.TestBooleanParamQuery;
@@ -1548,7 +1559,6 @@ begin
end;
procedure TTestFieldTypes.TestStringParamQuery;
-
begin
TestXXParamQuery(ftString,'VARCHAR(10)',testValuesCount);
end;
@@ -1558,8 +1568,14 @@ begin
TestXXParamQuery(ftFixedChar,'CHAR(10)',testValuesCount);
end;
+procedure TTestFieldTypes.TestXXParamQuery(ADataType : TFieldType; ASQLTypeDecl : string;
+ ParamValuesCount : integer);
+begin
+ TestXXParamQuery(ADataType, ASQLTypeDecl, ParamValuesCount, [], False);
+end;
-procedure TTestFieldTypes.TestXXParamQuery(ADatatype : TFieldType; ASQLTypeDecl : string; testValuesCount : integer; Cross : boolean = false);
+procedure TTestFieldTypes.TestXXParamQuery(ADataType : TFieldType; ASQLTypeDecl : string;
+ ParamValuesCount : integer; const ParamValues: array of string; Cross : boolean = False);
var i : integer;
@@ -1581,7 +1597,7 @@ begin
if ADataType=ftFixedChar then
Params.ParamByName('field1').DataType := ftFixedChar;
- for i := 0 to testValuesCount -1 do
+ for i := 0 to ParamValuesCount-1 do
begin
Params.ParamByName('id').AsInteger := i;
case ADataType of
@@ -1600,7 +1616,7 @@ begin
else
Params.ParamByName('field1').AsDate := StrToDate(testDateValues[i],'yyyy/mm/dd','-');
ftDateTime: Params.ParamByName('field1').AsDateTime := StrToDateTime(testValues[ADataType,i], DBConnector.FormatSettings);
- ftFMTBcd : Params.ParamByName('field1').AsFMTBCD := StrToBCD(testFmtBCDValues[i], DBConnector.FormatSettings);
+ ftFMTBcd : Params.ParamByName('field1').AsFMTBCD := StrToBCD(ParamValues[i], DBConnector.FormatSettings);
ftBlob : Params.ParamByName('field1').AsBlob := testBlobValues[i];
ftBytes : if cross then
Params.ParamByName('field1').Value := StringToByteArray(testBytesValues[i])
@@ -1616,7 +1632,7 @@ begin
ExecSQL;
end;
// test NULL parameter value
- Params.ParamByName('id').AsInteger := testValuesCount;
+ Params.ParamByName('id').AsInteger := ParamValuesCount;
Params.ParamByName('field1').Clear;
ExecSQL;
@@ -1626,7 +1642,7 @@ begin
sql.append('select * from FPDEV2 order by ID');
open;
- for i := 0 to testValuesCount -1 do
+ for i := 0 to ParamValuesCount-1 do
begin
AssertEquals(i,FieldByName('ID').AsInteger);
case ADataType of
@@ -1642,7 +1658,7 @@ begin
ftTime : AssertEquals(testTimeValues[i],DateTimeToTimeString(FieldByName('FIELD1').AsDateTime));
ftDate : AssertEquals(testDateValues[i],DateTimeToStr(FieldByName('FIELD1').AsDateTime, DBConnector.FormatSettings));
ftDateTime : AssertEquals(testValues[ADataType,i], DateTimeToStr(FieldByName('FIELD1').AsDateTime, DBConnector.FormatSettings));
- ftFMTBcd : AssertEquals(testFmtBCDValues[i], BCDToStr(FieldByName('FIELD1').AsBCD, DBConnector.FormatSettings));
+ ftFMTBcd : AssertEquals(ParamValues[i], BCDToStr(FieldByName('FIELD1').AsBCD, DBConnector.FormatSettings));
ftBlob : AssertEquals(testBlobValues[i], FieldByName('FIELD1').AsString);
ftVarBytes,
ftBytes : AssertEquals(testBytesValues[i], shortstring(FieldByName('FIELD1').AsString));
diff --git a/packages/fcl-db/tests/testsqldb.pas b/packages/fcl-db/tests/testsqldb.pas
index 3d97dca39e..daf9fb3e1d 100644
--- a/packages/fcl-db/tests/testsqldb.pas
+++ b/packages/fcl-db/tests/testsqldb.pas
@@ -9,34 +9,66 @@ unit TestSQLDB;
interface
uses
- Classes, SysUtils, fpcunit, testregistry,
- db;
+ Classes, sqldb, SysUtils, fpcunit, testregistry,
+ sqldbtoolsunit,toolsunit, db;
type
{ TSQLDBTestCase }
TSQLDBTestCase = class(TTestCase)
+ private
+ function GetSQLDBConnector: TSQLDBConnector;
protected
procedure SetUp; override;
procedure TearDown; override;
+ Property SQLDBConnector : TSQLDBConnector Read GetSQLDBConnector;
end;
{ TTestTSQLQuery }
TTestTSQLQuery = class(TSQLDBTestCase)
private
+ FMyQ: TSQLQuery;
+ procedure DoAfterPost(DataSet: TDataSet);
+ Procedure DoApplyUpdates;
+ Procedure TrySetQueryOptions;
+ Procedure TrySetPacketRecords;
+ Protected
+ Procedure Setup; override;
published
procedure TestMasterDetail;
procedure TestUpdateServerIndexDefs;
+ Procedure TestKeepOpenOnCommit;
+ Procedure TestKeepOpenOnCommitPacketRecords;
+ Procedure TestCheckSettingsOnlyWhenInactive;
+ Procedure TestAutoApplyUpdatesPost;
+ Procedure TestAutoApplyUpdatesDelete;
+ Procedure TestCheckRowsAffected;
+ Procedure TestAutoCommit;
+ Procedure TestRefreshSQL;
+ Procedure TestGeneratedRefreshSQL;
+ Procedure TestGeneratedRefreshSQL1Field;
+ Procedure TestGeneratedRefreshSQLNoKey;
+ Procedure TestRefreshSQLMultipleRecords;
+ Procedure TestRefreshSQLNoRecords;
+ Procedure TestFetchAutoInc;
end;
{ TTestTSQLConnection }
TTestTSQLConnection = class(TSQLDBTestCase)
private
+ procedure SetImplicit;
+ procedure TestImplicitTransaction;
+ procedure TestImplicitTransaction2;
+ procedure TestImplicitTransactionNotAssignable;
+ procedure TestImplicitTransactionOK;
+ procedure TryOpen;
published
- procedure ReplaceMe;
+ procedure TestUseImplicitTransaction;
+ procedure TestUseExplicitTransaction;
+ procedure TestExplicitConnect;
end;
{ TTestTSQLScript }
@@ -50,16 +82,21 @@ type
implementation
-uses sqldbtoolsunit, toolsunit, sqldb;
{ TTestTSQLQuery }
+Procedure TTestTSQLQuery.Setup;
+begin
+ inherited Setup;
+ SQLDBConnector.Connection.Options:=[];
+end;
+
procedure TTestTSQLQuery.TestMasterDetail;
var MasterQuery, DetailQuery: TSQLQuery;
MasterSource: TDataSource;
begin
- with TSQLDBConnector(DBConnector) do
+ with SQLDBConnector do
try
MasterQuery := GetNDataset(10) as TSQLQuery;
MasterSource := TDatasource.Create(nil);
@@ -87,7 +124,7 @@ begin
// For ODBC Firebird/Interbase we must define primary key as named constraint and
// in ODBC driver must be set: "quoted identifiers" and "sensitive identifier"
// See also: TTestFieldTypes.TestUpdateIndexDefs
- with TSQLDBConnector(DBConnector) do
+ with SQLDBConnector do
begin
// SQLite ignores case-sensitivity of quoted table names
// MS SQL Server case-sensitivity of identifiers depends on the case-sensitivity of default collation of the database
@@ -110,7 +147,7 @@ begin
end;
try
- Q := TSQLDBConnector(DBConnector).Query;
+ Q := SQLDBConnector.Query;
Q.SQL.Text:='select * from '+name1;
Q.Prepare;
Q.ServerIndexDefs.Update;
@@ -131,7 +168,7 @@ begin
CheckTrue(Q.ServerIndexDefs[0].Options=[ixPrimary,ixUnique], '3.3');
finally
Q.UnPrepare;
- with TSQLDBConnector(DBConnector) do
+ with SQLDBConnector do
begin
ExecuteDirect('DROP TABLE '+name1);
ExecuteDirect('DROP TABLE '+name2);
@@ -141,11 +178,544 @@ begin
end;
end;
+Procedure TTestTSQLQuery.TestKeepOpenOnCommit;
+var Q: TSQLQuery;
+ I: Integer;
+begin
+ // Test that for a SQL query with Options=sqoKeepOpenOnCommit, calling commit does not close the dataset.
+ // Test also that an edit still works.
+ with SQLDBConnector do
+ begin
+ ExecuteDirect('create table FPDEV2 (id integer not null, a varchar(10), constraint PK_FPDEV2 primary key(id))');
+ Transaction.Commit;
+ for I:=1 to 20 do
+ ExecuteDirect(Format('INSERT INTO FPDEV2 values (%d,''%.6d'')',[i,i]));
+ Transaction.Commit;
+
+ Q := SQLDBConnector.Query;
+ Q.SQL.Text:='select * from FPDEV2';
+ Q.Options:=[sqoKeepOpenOnCommit];
+ AssertEquals('PacketRecords forced to -1',-1,Q.PacketRecords);
+ Q.Open;
+ AssertEquals('Got all records',20,Q.RecordCount);
+ Q.SQLTransaction.Commit;
+ AssertTrue('Still open after transaction',Q.Active);
+
+ // Now check editing
+ Q.Locate('id',20,[]);
+ Q.Edit;
+ Q.FieldByName('a').AsString:='abc';
+ Q.Post;
+ AssertTrue('Have updates pending',Q.UpdateStatus=usModified);
+ Q.ApplyUpdates;
+ AssertTrue('Have no more updates pending',Q.UpdateStatus=usUnmodified);
+ Q.Close;
+ Q.SQL.Text:='select * from FPDEV2 where (id=20) and (a=''abc'')';
+ Q.Open;
+ AssertTrue('Have modified data record in database', not (Q.EOF AND Q.BOF));
+ end;
+end;
+
+Procedure TTestTSQLQuery.TrySetPacketRecords;
+begin
+ FMyQ.PacketRecords:=10;
+end;
+
+Procedure TTestTSQLQuery.TestKeepOpenOnCommitPacketRecords;
+begin
+ with SQLDBConnector do
+ begin
+ FMyQ := SQLDBConnector.Query;
+ FMyQ.Options:=[sqoKeepOpenOnCommit];
+ AssertException('Cannot set PacketRecords when sqoKeepOpenOnCommit is active',EDatabaseError,@TrySetPacketRecords);
+ end;
+end;
+
+Procedure TTestTSQLQuery.TrySetQueryOptions;
+begin
+ FMyQ.Options:=[sqoKeepOpenOnCommit];
+end;
+
+Procedure TTestTSQLQuery.TestCheckSettingsOnlyWhenInactive;
+begin
+ // Check that we can only set QueryOptions when the query is inactive.
+ with SQLDBConnector do
+ begin
+ ExecuteDirect('create table FPDEV2 (id integer not null, a varchar(10), constraint PK_FPDEV2 primary key(id))');
+ Transaction.Commit;
+ ExecuteDirect(Format('INSERT INTO FPDEV2 values (%d,''%.6d'')',[1,1]));
+ Transaction.Commit;
+ FMyQ := SQLDBConnector.Query;
+ FMyQ.SQL.Text:='select * from FPDEV2';
+ FMyQ := SQLDBConnector.Query;
+ FMyQ.Open;
+ AssertException('Cannot set Options when query is active',EDatabaseError,@TrySetQueryOptions);
+ end;
+end;
+
+procedure TTestTSQLQuery.DoAfterPost(DataSet: TDataSet);
+begin
+ AssertTrue('Have modifications in after post',FMyq.UpdateStatus=usModified)
+end;
+
+Procedure TTestTSQLQuery.TestAutoApplyUpdatesPost;
+var Q: TSQLQuery;
+ I: Integer;
+begin
+ // Test that if sqoAutoApplyUpdates is in QueryOptions, then POST automatically does an ApplyUpdates
+ // Test also that POST afterpost event is backwards compatible.
+ with SQLDBConnector do
+ begin
+ ExecuteDirect('create table FPDEV2 (id integer not null, a varchar(10), constraint PK_FPDEV2 primary key(id))');
+ Transaction.COmmit;
+ for I:=1 to 2 do
+ ExecuteDirect(Format('INSERT INTO FPDEV2 values (%d,''%.6d'')',[i,i]));
+ Transaction.COmmit;
+ Q := SQLDBConnector.Query;
+ FMyQ:=Q; // so th event handler can reach it.
+ Q.SQL.Text:='select * from FPDEV2';
+ Q.Options:=[sqoAutoApplyUpdates];
+ // We must test that in AfterPost, the modification is still there, for backwards compatibilty
+ Q.AfterPost:=@DoAfterPost;
+ Q.Open;
+ AssertEquals('Got all records',2,Q.RecordCount);
+ // Now check editing
+ Q.Locate('id',2,[]);
+ Q.Edit;
+ Q.FieldByName('a').AsString:='abc';
+ Q.Post;
+ AssertTrue('Have no more updates pending',Q.UpdateStatus=usUnmodified);
+ Q.Close;
+ Q.SQL.Text:='select * from FPDEV2 where (id=2) and (a=''abc'')';
+ Q.Open;
+ AssertTrue('Have modified data record in database',not (Q.EOF AND Q.BOF));
+ end;
+
+end;
+
+Procedure TTestTSQLQuery.TestAutoApplyUpdatesDelete;
+
+var Q: TSQLQuery;
+ I: Integer;
+begin
+ // Test that if sqoAutoApplyUpdates is in QueryOptions, then Delete automatically does an ApplyUpdates
+ with SQLDBConnector do
+ begin
+ ExecuteDirect('create table FPDEV2 (id integer not null, a varchar(10), constraint PK_FPDEV2 primary key(id))');
+ Transaction.COmmit;
+ for I:=1 to 2 do
+ ExecuteDirect(Format('INSERT INTO FPDEV2 values (%d,''%.6d'')',[i,i]));
+ Transaction.COmmit;
+ Q := SQLDBConnector.Query;
+ FMyQ:=Q; // so th event handler can reach it.
+ Q.SQL.Text:='select * from FPDEV2';
+ Q.Options:=[sqoAutoApplyUpdates];
+ // We must test that in AfterPost, the modification is still there, for backwards compatibilty
+ Q.AfterPost:=@DoAfterPost;
+ Q.Open;
+ AssertEquals('Got all records',2,Q.RecordCount);
+ // Now check editing
+ Q.Locate('id',2,[]);
+ Q.Delete;
+ AssertTrue('Have no more updates pending',Q.UpdateStatus=usUnmodified);
+ Q.Close;
+ Q.SQL.Text:='select * from FPDEV2 where (id=2)';
+ Q.Open;
+ AssertTrue('Data record is deleted in database', (Q.EOF AND Q.BOF));
+ end;
+end;
+
+Procedure TTestTSQLQuery.DoApplyUpdates;
+
+begin
+ FMyQ.ApplyUpdates();
+end;
+
+Procedure TTestTSQLQuery.TestCheckRowsAffected;
+var Q: TSQLQuery;
+ I: Integer;
+begin
+ // Test that if sqoAutoApplyUpdates is in QueryOptions, then Delete automatically does an ApplyUpdates
+ with SQLDBConnector do
+ begin
+ ExecuteDirect('create table FPDEV2 (id integer not null, a varchar(10), constraint PK_FPDEV2 primary key(id))');
+ Transaction.COmmit;
+ for I:=1 to 2 do
+ ExecuteDirect(Format('INSERT INTO FPDEV2 values (%d,''%.6d'')',[i,i]));
+ Transaction.COmmit;
+ SQLDBConnector.Connection.Options:=[scoApplyUpdatesChecksRowsAffected];
+ Q := SQLDBConnector.Query;
+ Q.SQL.Text:='select * from FPDEV2';
+ Q.DeleteSQL.Text:='delete from FPDEV2';
+ Q.Open;
+ AssertEquals('Got all records',2,Q.RecordCount);
+ // Now check editing
+ Q.Delete;
+ FMyQ:=Q;
+ AssertException('RowsAffected > 1 raises exception',EUpdateError,@DoApplyUpdates);
+ end;
+end;
+
+Procedure TTestTSQLQuery.TestAutoCommit;
+var
+ I : Integer;
+begin
+ with SQLDBConnector do
+ begin
+ ExecuteDirect('create table FPDEV2 (id integer not null, a varchar(10), constraint PK_FPDEV2 primary key(id))');
+ if Transaction.Active then
+ Transaction.Commit;
+
+ Query.Options:=[sqoAutoCommit];
+ for I:=1 to 2 do
+ begin
+ Query.SQL.Text:=Format('INSERT INTO FPDEV2 values (%d,''%.6d'');',[i,i]);
+ Query.Prepare;
+ Query.ExecSQL;
+ // We do not commit anything explicitly.
+ end;
+
+ AssertFalse('Transaction is still active after expected auto commit', Transaction.Active);
+
+ Connection.Close;
+ Connection.Open;
+
+ Query.SQL.Text:='SELECT COUNT(*) from FPDEV2';
+ Query.Open;
+ AssertEquals('Records haven''t been committed to database', 2, Query.Fields[0].AsInteger);
+ end;
+end;
+
+Procedure TTestTSQLQuery.TestRefreshSQL;
+var
+ Q: TSQLQuery;
+
+begin
+ with SQLDBConnector do
+ begin
+ ExecuteDirect('create table FPDEV2 (id integer not null primary key, a varchar(5) default ''abcde'', b integer default 1)');
+ if Transaction.Active then
+ Transaction.Commit;
+ end;
+ Q:=SQLDBConnector.Query;
+ Q.SQL.Text:='select * from FPDEV2';
+ Q.InsertSQL.Text:='insert into FPDEV2 (id) values (:id)';
+ Q.RefreshSQL.Text:='SELECT a,b FROM FPDEV2 WHERE (id=:id)';
+ Q.Open;
+ Q.Insert; // #1 record
+ Q.FieldByName('id').AsInteger:=1;
+ Q.Post;
+ Q.Append; // #2 record
+ Q.FieldByName('id').AsInteger:=2;
+ Q.Post;
+ AssertTrue('Field value has not been fetched after Post', Q.FieldByName('a').IsNull);
+ Q.ApplyUpdates(0);
+ // #2 record:
+ AssertEquals('Still on correct field', 2, Q.FieldByName('id').AsInteger);
+ AssertEquals('Field value has been fetched from the database', 'abcde', Q.FieldByName('a').AsString);
+ AssertEquals('Field value has been fetched from the database', 1, Q.FieldByName('b').AsInteger);
+ Q.Prior;
+ // #1 record:
+ AssertEquals('Still on correct field', 1, Q.FieldByName('id').AsInteger);
+ AssertEquals('Field value has been fetched from the database', 'abcde', Q.FieldByName('a').AsString);
+ AssertEquals('Field value has been fetched from the database', 1, Q.FieldByName('b').AsInteger);
+end;
+
+Procedure TTestTSQLQuery.TestGeneratedRefreshSQL;
+
+var
+ Q: TSQLQuery;
+
+begin
+ with SQLDBConnector do
+ begin
+ ExecuteDirect('create table FPDEV2 (id integer not null, a varchar(10) default ''abcde'', b varchar(5) default ''fgh'', constraint PK_FPDEV2 primary key(id))');
+ if Transaction.Active then
+ Transaction.Commit;
+ end;
+ Q:=SQLDBConnector.Query;
+ Q.SQL.Text:='select * from FPDEV2';
+ Q.InsertSQL.Text:='insert into FPDEV2 (id) values (:id)';
+ Q.Open;
+ With Q.FieldByName('id') do
+ ProviderFlags:=ProviderFlags+[pfInKey];
+ With Q.FieldByName('a') do
+ ProviderFlags:=ProviderFlags+[pfRefreshOnInsert,pfRefreshOnUpdate];
+ With Q.FieldByName('b') do
+ ProviderFlags:=ProviderFlags+[pfRefreshOnInsert,pfRefreshOnUpdate];
+ Q.Insert;
+ Q.FieldByName('id').AsInteger:=1;
+ Q.Post;
+ AssertTrue('Field value has not been fetched after post',Q.FieldByName('a').IsNull);
+ Q.ApplyUpdates(0);
+ AssertEquals('Still on correct field',1,Q.FieldByName('id').AsInteger);
+ AssertEquals('Field value has been fetched from the database ','abcde',Q.FieldByName('a').AsString);
+ AssertEquals('Field value has been fetched from the database ','fgh',Q.FieldByName('b').AsString);
+end;
+
+Procedure TTestTSQLQuery.TestGeneratedRefreshSQL1Field;
+var
+ Q: TSQLQuery;
+
+begin
+ with SQLDBConnector do
+ begin
+ ExecuteDirect('create table FPDEV2 (id integer not null, a varchar(10) default ''abcde'', b varchar(5) default ''fgh'', constraint PK_FPDEV2 primary key(id))');
+ if Transaction.Active then
+ Transaction.Commit;
+ end;
+ Q:=SQLDBConnector.Query;
+ Q.SQL.Text:='select * from FPDEV2';
+ Q.InsertSQL.Text:='insert into FPDEV2 (id) values (:id)';
+ Q.Open;
+ With Q.FieldByName('id') do
+ ProviderFlags:=ProviderFlags+[pfInKey];
+ With Q.FieldByName('a') do
+ ProviderFlags:=ProviderFlags+[pfRefreshOnInsert,pfRefreshOnUpdate];
+ Q.Insert;
+ Q.FieldByName('id').AsInteger:=1;
+ Q.Post;
+ AssertTrue('Field value has not been fetched after post',Q.FieldByName('a').IsNull);
+ Q.ApplyUpdates(0);
+ AssertEquals('Still on correct field',1,Q.FieldByName('id').AsInteger);
+ AssertEquals('Field value a has been fetched from the database ','abcde',Q.FieldByName('a').AsString);
+ AssertEquals('Field value b has NOT been fetched from the database ','',Q.FieldByName('b').AsString);
+end;
+
+Procedure TTestTSQLQuery.TestGeneratedRefreshSQLNoKey;
+begin
+ with SQLDBConnector do
+ begin
+ ExecuteDirect('create table FPDEV2 (id integer not null, a varchar(10) default ''abcde'', b varchar(5) default ''fgh'', constraint PK_FPDEV2 primary key(id))');
+ if Transaction.Active then
+ Transaction.Commit;
+ end;
+ FMyQ:=SQLDBConnector.Query;
+ FMyQ.SQL.Text:='select * from FPDEV2';
+ FMyQ.InsertSQL.Text:='insert into FPDEV2 (id) values (:id)';
+ FMyQ.Open;
+ With FMyQ.FieldByName('id') do
+ ProviderFlags:=ProviderFlags-[pfInKey];
+ With FMyQ.FieldByName('a') do
+ ProviderFlags:=ProviderFlags+[pfRefreshOnInsert,pfRefreshOnUpdate];
+ FMyQ.Insert;
+ FMyQ.FieldByName('id').AsInteger:=1;
+ FMyQ.Post;
+ AssertException('Cannot refresh without primary key',EUpdateError,@DoApplyUpdates);
+end;
+
+Procedure TTestTSQLQuery.TestRefreshSQLMultipleRecords;
+
+begin
+ with SQLDBConnector do
+ begin
+ ExecuteDirect('create table FPDEV2 (id integer not null, a varchar(10) default ''abcde'', b varchar(5) default ''fgh'', constraint PK_FPDEV2 primary key(id))');
+ if Transaction.Active then
+ Transaction.Commit;
+ ExecuteDirect('insert into FPDEV2 (id) values (123)');
+ if Transaction.Active then
+ Transaction.Commit;
+ end;
+ FMyQ:=SQLDBConnector.Query;
+ FMyQ.SQL.Text:='select * from FPDEV2';
+ FMyQ.InsertSQL.Text:='insert into FPDEV2 (id) values (:id)';
+ FMyQ.RefreshSQL.Text:='select * from FPDEV2';
+ FMyQ.Open;
+ With FMyQ.FieldByName('id') do
+ ProviderFlags:=ProviderFlags+[pfInKey];
+ With FMyQ.FieldByName('a') do
+ ProviderFlags:=ProviderFlags+[pfRefreshOnInsert,pfRefreshOnUpdate];
+ FMyQ.Insert;
+ FMyQ.FieldByName('id').AsInteger:=1;
+ FMyQ.Post;
+ AssertException('Multiple records returned by RefreshSQL gives an error',EUpdateError,@DoApplyUpdates);
+end;
+
+Procedure TTestTSQLQuery.TestRefreshSQLNoRecords;
+begin
+ with SQLDBConnector do
+ begin
+ ExecuteDirect('create table FPDEV2 (id integer not null, a varchar(10) default ''abcde'', b varchar(5) default ''fgh'', constraint PK_FPDEV2 primary key(id))');
+ if Transaction.Active then
+ Transaction.Commit;
+ ExecuteDirect('insert into FPDEV2 (id) values (123)');
+ if Transaction.Active then
+ Transaction.Commit;
+ end;
+ FMyQ:=SQLDBConnector.Query;
+ FMyQ.SQL.Text:='select * from FPDEV2';
+ FMyQ.InsertSQL.Text:='insert into FPDEV2 (id) values (:id)';
+ FMyQ.RefreshSQL.Text:='select * from FPDEV2 where 1=2';
+ FMyQ.Open;
+ With FMyQ.FieldByName('id') do
+ ProviderFlags:=ProviderFlags+[pfInKey];
+ With FMyQ.FieldByName('a') do
+ ProviderFlags:=ProviderFlags+[pfRefreshOnInsert,pfRefreshOnUpdate];
+ FMyQ.Insert;
+ FMyQ.FieldByName('id').AsInteger:=1;
+ FMyQ.Post;
+ AssertException('No records returned by RefreshSQL gives an error',EUpdateError,@DoApplyUpdates);
+end;
+
+Procedure TTestTSQLQuery.TestFetchAutoInc;
+var datatype: string;
+ id: largeint;
+begin
+ with SQLDBConnector do
+ begin
+ if not (sqLastInsertID in Connection.ConnOptions) then
+ Ignore(STestNotApplicable);
+ case SQLServerType of
+ ssMySQL:
+ datatype := 'integer auto_increment';
+ ssMSSQL, ssSybase:
+ datatype := 'integer identity';
+ ssSQLite:
+ datatype := 'integer';
+ else
+ Ignore(STestNotApplicable);
+ end;
+ ExecuteDirect('create table FPDEV2 (id '+datatype+' primary key, f varchar(5))');
+ CommitDDL;
+ end;
+
+ with SQLDBConnector.Query do
+ begin
+ SQL.Text:='select * from FPDEV2';
+ Open;
+ Insert;
+ FieldByName('f').AsString:='a';
+ Post; // #1 record
+ Append;
+ FieldByName('f').AsString:='b';
+ Post; // #2 record
+ AssertTrue('ID field is not null after Post', FieldByName('id').IsNull);
+ First; // #1 record
+ ApplyUpdates(0);
+ AssertTrue('ID field is still null after ApplyUpdates', Not FieldByName('id').IsNull);
+ // Should be 1 after the table was created, but this is not guaranteed... So we just test positive values.
+ id := FieldByName('id').AsLargeInt;
+ AssertTrue('ID field has not positive value', id>0);
+ Next; // #2 record
+ AssertTrue('Next ID value is not greater than previous', FieldByName('id').AsLargeInt>id);
+ end;
+end;
+
+
{ TTestTSQLConnection }
-procedure TTestTSQLConnection.ReplaceMe;
+procedure TTestTSQLConnection.TestImplicitTransaction;
+
+Var
+ T : TSQLTransaction;
+
+begin
+ T:=TSQLTransaction.Create(Nil);
+ try
+ T.Options:=[stoUseImplicit];
+ T.DataBase:=SQLDBConnector.Connection;
+ finally
+ T.Free;
+ end;
+end;
+
+procedure TTestTSQLConnection.TestImplicitTransaction2;
+
+Var
+ T : TSQLTransaction;
+
begin
- // replace this procedure with any test for TSQLConnection
+ T:=TSQLTransaction.Create(Nil);
+ try
+ T.Options:=[stoUseImplicit];
+ SQLDBConnector.Connection.Transaction:=T;
+ finally
+ T.Free;
+ end;
+end;
+
+procedure TTestTSQLConnection.SetImplicit;
+
+begin
+ SQLDBConnector.Transaction.Options:=[stoUseImplicit];
+end;
+
+procedure TTestTSQLConnection.TestImplicitTransactionNotAssignable;
+
+begin
+ AssertException('Cannot set toUseImplicit option if database does not allow it',EDatabaseError,@SetImplicit);
+ AssertException('Cannot assign database to transaction with toUseImplicit, if database does not allow it',EDatabaseError,@TestImplicitTransaction);
+ AssertException('Cannot assign transaction with toUseImplicit to database, if database does not allow it',EDatabaseError,@TestImplicitTransaction2);
+end;
+
+procedure TTestTSQLConnection.TestImplicitTransactionOK;
+
+var
+ Q : TSQLQuery;
+ T : TSQLTransaction;
+ I : Integer;
+begin
+ with SQLDBConnector do
+ begin
+ ExecuteDirect('create table FPDEV2 (id integer not null, a varchar(10), constraint PK_FPDEV2 primary key(id))');
+ if Transaction.Active then
+ Transaction.Commit;
+ end;
+ SetImplicit;
+ Q:=SQLDBConnector.Query;
+ for I:=1 to 2 do
+ begin
+ Q.SQL.Text:=Format('INSERT INTO FPDEV2 values (%d,''%.6d'');',[i,i]);
+ Q.Prepare;
+ Q.ExecSQL;
+ // We do not commit anything explicitly.
+ end;
+ Q:=Nil;
+ T:=Nil;
+ try
+ T:=TSQLTransaction.Create(Nil);
+ Q:=TSQLQuery.Create(Nil);
+ Q.Transaction:=T;
+ Q.Database:=SQLDBConnector.Connection;
+ T.Database:=SQLDBConnector.Connection;
+ Q.SQL.text:='SELECT COUNT(*) from FPDEV2';
+ Q.Open;
+ AssertEquals('Records have been committed to database',2,Q.Fields[0].AsInteger);
+ finally
+ Q.Free;
+ T.Free;
+ end;
+end;
+
+procedure TTestTSQLConnection.TestUseImplicitTransaction;
+begin
+ if (sqImplicitTransaction in SQLDBConnector.Connection.ConnOptions) then
+ TestImplicitTransactionOK
+ else
+ TestImplicitTransactionNotAssignable;
+end;
+
+procedure TTestTSQLConnection.TryOpen;
+
+begin
+ SQLDBConnector.Query.Open;
+end;
+
+procedure TTestTSQLConnection.TestUseExplicitTransaction;
+begin
+ SQLDBConnector.Transaction.Active:=False;
+ SQLDBConnector.Transaction.Options:=[stoExplicitStart];
+ SQLDBConnector.Query.SQL.Text:='select * from FPDEV';
+ AssertException('toExplicitStart raises exception on implicit start',EDatabaseError,@TryOpen)
+end;
+
+procedure TTestTSQLConnection.TestExplicitConnect;
+begin
+ SQLDBConnector.Transaction.Active:=False;
+ SQLDBConnector.Connection.Options:=[scoExplicitConnect];
+ SQLDBConnector.Connection.Connected:=False;
+ SQLDBConnector.Query.SQL.Text:='select * from FPDEV';
+ AssertException('toExplicitStart raises exception on implicit start',EDatabaseError,@TryOpen)
end;
{ TTestTSQLScript }
@@ -157,21 +727,21 @@ begin
try
with Ascript do
begin
- DataBase := TSQLDBConnector(DBConnector).Connection;
- Transaction := TSQLDBConnector(DBConnector).Transaction;
+ DataBase := SQLDBConnector.Connection;
+ Transaction := SQLDBConnector.Transaction;
Script.Clear;
Script.Append('create table FPDEV_A (id int);');
Script.Append('create table FPDEV_B (id int);');
ExecuteScript;
// Firebird/Interbase need a commit after a DDL statement. Not necessary for the other connections
- TSQLDBConnector(DBConnector).CommitDDL;
+ SQLDBConnector.CommitDDL;
end;
finally
AScript.Free;
- TSQLDBConnector(DBConnector).ExecuteDirect('drop table FPDEV_A');
- TSQLDBConnector(DBConnector).ExecuteDirect('drop table FPDEV_B');
+ SQLDBConnector.ExecuteDirect('drop table FPDEV_A');
+ SQLDBConnector.ExecuteDirect('drop table FPDEV_B');
// Firebird/Interbase need a commit after a DDL statement. Not necessary for the other connections
- TSQLDBConnector(DBConnector).CommitDDL;
+ SQLDBConnector.CommitDDL;
end;
end;
@@ -186,8 +756,8 @@ begin
try
with Ascript do
begin
- DataBase := TSQLDBConnector(DBConnector).Connection;
- Transaction := TSQLDBConnector(DBConnector).Transaction;
+ DataBase := SQLDBConnector.Connection;
+ Transaction := SQLDBConnector.Transaction;
Script.Clear;
UseSetTerm := true;
// Example procedure that selects table names
@@ -210,13 +780,13 @@ begin
);
ExecuteScript;
// Firebird/Interbase need a commit after a DDL statement. Not necessary for the other connections
- TSQLDBConnector(DBConnector).CommitDDL;
+ SQLDBConnector.CommitDDL;
end;
finally
AScript.Free;
- TSQLDBConnector(DBConnector).ExecuteDirect('DROP PROCEDURE FPDEV_TESTCOLON');
+ SQLDBConnector.ExecuteDirect('DROP PROCEDURE FPDEV_TESTCOLON');
// Firebird/Interbase need a commit after a DDL statement. Not necessary for the other connections
- TSQLDBConnector(DBConnector).CommitDDL;
+ SQLDBConnector.CommitDDL;
end;
end;
@@ -234,8 +804,8 @@ begin
try
with Ascript do
begin
- DataBase := TSQLDBConnector(DBConnector).Connection;
- Transaction := TSQLDBConnector(DBConnector).Transaction;
+ DataBase := SQLDBConnector.Connection;
+ Transaction := SQLDBConnector.Transaction;
Script.Clear;
UseCommit:=true;
// Example procedure that selects table names
@@ -245,9 +815,9 @@ begin
Script.Append('COMMIT;');
ExecuteScript;
// This line should not run, as the commit above should have taken care of it:
- //TSQLDBConnector(DBConnector).CommitDDL;
+ //SQLDBConnector.CommitDDL;
// Test whether second line of script executed, just to be sure
- CheckQuery:=TSQLDBConnector(DBConnector).Query;
+ CheckQuery:=SQLDBConnector.Query;
CheckQuery.SQL.Text:='SELECT logmessage FROM fpdev_scriptusecommit ';
CheckQuery.Open;
CheckEquals(TestValue, CheckQuery.Fields[0].AsString, 'Insert script line should have inserted '+TestValue);
@@ -255,13 +825,18 @@ begin
end;
finally
AScript.Free;
- TSQLDBConnector(DBConnector).ExecuteDirect('DROP TABLE fpdev_scriptusecommit');
- TSQLDBConnector(DBConnector).Transaction.Commit;
+ SQLDBConnector.ExecuteDirect('DROP TABLE fpdev_scriptusecommit');
+ SQLDBConnector.Transaction.Commit;
end;
end;
{ TSQLDBTestCase }
+function TSQLDBTestCase.GetSQLDBConnector: TSQLDBConnector;
+begin
+ Result:=DBConnector as TSQLDBConnector;
+end;
+
procedure TSQLDBTestCase.SetUp;
begin
inherited SetUp;
@@ -273,8 +848,9 @@ procedure TSQLDBTestCase.TearDown;
begin
DBConnector.StopTest(TestName);
if assigned(DBConnector) then
- with TSQLDBConnector(DBConnector) do
- Transaction.Rollback;
+ with SQLDBConnector do
+ if Assigned(Transaction) and Transaction.Active and not (stoUseImplicit in Transaction.Options) then
+ Transaction.Rollback;
FreeDBConnector;
inherited TearDown;
end;
diff --git a/packages/fcl-extra/Makefile b/packages/fcl-extra/Makefile
index fe1cbb9ff2..7620df18ac 100644
--- a/packages/fcl-extra/Makefile
+++ b/packages/fcl-extra/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-extra
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-extra/Makefile.fpc b/packages/fcl-extra/Makefile.fpc
index 0835bd836c..48c54e8e88 100644
--- a/packages/fcl-extra/Makefile.fpc
+++ b/packages/fcl-extra/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-extra
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-extra/Makefile.fpc.fpcmake b/packages/fcl-extra/Makefile.fpc.fpcmake
index ff6e0bccea..f878d28e26 100644
--- a/packages/fcl-extra/Makefile.fpc.fpcmake
+++ b/packages/fcl-extra/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fcl-extra
-version=2.7.1
+version=3.1.1
[require]
packages=fcl-base
diff --git a/packages/fcl-extra/examples/Makefile b/packages/fcl-extra/examples/Makefile
index d80d6a7305..1c15be32a6 100644
--- a/packages/fcl-extra/examples/Makefile
+++ b/packages/fcl-extra/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -658,6 +664,12 @@ 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=
@@ -703,6 +715,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1285,6 +1302,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-EXTRA=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-EXTRA=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1575,6 +1602,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-EXTRA=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-EXTRA=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1755,6 +1792,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-EXTRA=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-EXTRA=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2212,7 +2259,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2242,17 +2289,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/fcl-extra/fpmake.pp b/packages/fcl-extra/fpmake.pp
index c8ca6a07dc..2d8b418651 100644
--- a/packages/fcl-extra/fpmake.pp
+++ b/packages/fcl-extra/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('fcl-base');
P.OSes:=[Win32,Win64]+AllUnixOSes;
P.Dependencies.Add('winunits-jedi',[Win32,Win64]);
diff --git a/packages/fcl-fpcunit/Makefile b/packages/fcl-fpcunit/Makefile
index 02beca8e68..90416b4e5c 100644
--- a/packages/fcl-fpcunit/Makefile
+++ b/packages/fcl-fpcunit/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-fpcunit
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-fpcunit/Makefile.fpc b/packages/fcl-fpcunit/Makefile.fpc
index 1cff3747ad..771a5793ab 100644
--- a/packages/fcl-fpcunit/Makefile.fpc
+++ b/packages/fcl-fpcunit/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-fpcunit
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-fpcunit/Makefile.fpc.fpcmake b/packages/fcl-fpcunit/Makefile.fpc.fpcmake
index dae3d86a5c..9e64ebb542 100644
--- a/packages/fcl-fpcunit/Makefile.fpc.fpcmake
+++ b/packages/fcl-fpcunit/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fcl-fpcunit
-version=2.7.1
+version=3.1.1
[target]
units=testregistry testreport testdecorator ubmockobject xmlreporter \
diff --git a/packages/fcl-fpcunit/fpmake.pp b/packages/fcl-fpcunit/fpmake.pp
index d06cfeaa74..5fd64a305c 100644
--- a/packages/fcl-fpcunit/fpmake.pp
+++ b/packages/fcl-fpcunit/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('fcl-fpcunit');
+ P.ShortName:='fclu';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('paszlib');
P.Dependencies.Add('fcl-base');
P.Dependencies.Add('fcl-xml');
diff --git a/packages/fcl-fpcunit/src/exampletests/Makefile b/packages/fcl-fpcunit/src/exampletests/Makefile
index 2e3a29188d..2582128b2b 100644
--- a/packages/fcl-fpcunit/src/exampletests/Makefile
+++ b/packages/fcl-fpcunit/src/exampletests/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=fpcunittests money moneytest testmockobject
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=fpcunittests money moneytest testmockobject
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=fpcunittests money moneytest testmockobject
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=fpcunittests money moneytest testmockobject
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=fpcunittests money moneytest testmockobject
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=fpcunittests money moneytest testmockobject
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=fpcunittests money moneytest testmockobject
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=fpcunittests money moneytest testmockobject
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=fpcunittests money moneytest testmockobject
endif
@@ -613,6 +628,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -700,6 +718,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -754,6 +775,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2h
endif
@@ -1008,6 +1032,12 @@ 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=
@@ -1053,6 +1083,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1658,6 +1693,17 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-FPCUNIT=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1977,6 +2023,17 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-FPCUNIT=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2175,6 +2232,17 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-FPCUNIT=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2674,7 +2742,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2704,17 +2772,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-fpcunit/src/latextestreport.pp b/packages/fcl-fpcunit/src/latextestreport.pp
index c690c62e1e..2f038c49a5 100644
--- a/packages/fcl-fpcunit/src/latextestreport.pp
+++ b/packages/fcl-fpcunit/src/latextestreport.pp
@@ -23,11 +23,14 @@ uses
type
+ { TLatexResultsWriter }
+
TLatexResultsWriter = class(TCustomResultsWriter)
private
FDoc: TStringList;
FSuiteHeaderIdx: TFPList;
FTempFailure: TTestFailure;
+ function TimeFormat(ATiming: TDateTime): String;
protected
class function EscapeText(const S: string): String; virtual;
procedure WriteTestHeader(ATest: TTest; ALevel: integer; ACount: integer); override;
@@ -53,6 +56,21 @@ function GetSuiteAsLatex(aSuite: TTestSuite): string;
implementation
+uses dateutils;
+
+function TLatexResultsWriter.TimeFormat(ATiming: TDateTime): String;
+Var
+ M : Int64;
+
+begin
+ Result:='ss.zzz';
+ M:=MinutesBetween(ATiming,0);
+ if M>60 then
+ Result:='hh:mm:'+Result
+ else if M>1 then
+ Result:='mm:'+Result;
+end;
+
class function TLatexResultsWriter.EscapeText(const S: string): String;
var
i: integer;
@@ -161,7 +179,7 @@ begin
inherited;
S:=StringOfChar(' ',ALevel*2)+ ' '+ '\item[-] ';
if Not SkipTiming then
- S:=S+FormatDateTime('ss.zzz', ATiming);
+ S:=S+FormatDateTime(TimeFormat(ATiming), ATiming);
S:=S+ ' ' + EscapeText(ATest.TestName);
FDoc.Add(S);
if Assigned(FTempFailure) then
diff --git a/packages/fcl-fpcunit/src/plaintestreport.pp b/packages/fcl-fpcunit/src/plaintestreport.pp
index 0d1b977a87..1cd19bc554 100644
--- a/packages/fcl-fpcunit/src/plaintestreport.pp
+++ b/packages/fcl-fpcunit/src/plaintestreport.pp
@@ -23,11 +23,14 @@ uses
type
+ { TPlainResultsWriter }
+
TPlainResultsWriter = class(TCustomResultsWriter)
private
FDoc: TStringList;
FSuiteHeaderIdx: TFPList;
FTempFailure: TTestFailure;
+ function TimeFormat(ATiming: TDateTime): String;
protected
procedure WriteTestHeader(ATest: TTest; ALevel: integer; ACount: integer); override;
procedure WriteTestFooter(ATest: TTest; ALevel: integer; ATiming: TDateTime); override;
@@ -50,6 +53,7 @@ function TestResultAsPlain(aTestResult: TTestResult): string;
implementation
+uses dateutils;
{TPlainResultsWriter}
@@ -110,7 +114,7 @@ begin
inherited;
S:=' ' + StringOfChar(' ',ALevel*2);
if Not SkipTiming then
- S:=S + FormatDateTime('ss.zzz', ATiming) + ' ';
+ S:=S + FormatDateTime(TimeFormat(ATiming), ATiming) + ' ';
S:=S + ATest.TestName;
FDoc.Add(S);
if Assigned(FTempFailure) then
@@ -139,6 +143,20 @@ begin
FTempFailure := nil;
end;
+Function TPlainResultsWriter.TimeFormat(ATiming : TDateTime) : String;
+
+Var
+ M : Int64;
+
+begin
+ Result:='ss.zzz';
+ M:=MinutesBetween(ATiming,0);
+ if M>60 then
+ Result:='hh:mm:'+Result
+ else if M>1 then
+ Result:='mm:'+Result;
+end;
+
procedure TPlainResultsWriter.WriteSuiteFooter(ATestSuite: TTestSuite; ALevel: integer;
ATiming: TDateTime; ANumRuns: integer; ANumErrors: integer; ANumFailures: integer;
ANumIgnores: integer);
@@ -149,7 +167,7 @@ begin
inherited;
idx := Integer(FSuiteHeaderIdx[FSuiteHeaderIdx.Count -1]);
if Not SkipTiming then
- S:= ' Time:'+ FormatDateTime('ss.zzz', ATiming);
+ S:= ' Time:'+ FormatDateTime(TimeFormat(ATiming), ATiming);
S:=S+ ' N:'+ IntToStr(ANumRuns)+ ' E:'+ IntToStr(ANumErrors)+ ' F:'+ IntToStr(ANumFailures)+
' I:'+ IntToStr(ANumIgnores) ;
FDoc[idx] := FDoc[idx]+S;
diff --git a/packages/fcl-fpcunit/src/tests/Makefile b/packages/fcl-fpcunit/src/tests/Makefile
index 620ef11ad8..831a226cb7 100644
--- a/packages/fcl-fpcunit/src/tests/Makefile
+++ b/packages/fcl-fpcunit/src/tests/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=asserttest frameworktest suitetest
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=asserttest frameworktest suitetest
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=asserttest frameworktest suitetest
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=asserttest frameworktest suitetest
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=asserttest frameworktest suitetest
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=asserttest frameworktest suitetest
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=asserttest frameworktest suitetest
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=asserttest frameworktest suitetest
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=asserttest frameworktest suitetest
endif
@@ -613,6 +628,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -700,6 +718,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -754,6 +775,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2h
endif
@@ -1008,6 +1032,12 @@ 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=
@@ -1053,6 +1083,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1658,6 +1693,17 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-FPCUNIT=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1977,6 +2023,17 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-FPCUNIT=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2175,6 +2232,17 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-FPCUNIT=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-FPCUNIT=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2674,7 +2742,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2704,17 +2772,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-fpcunit/src/xmltestreport.pp b/packages/fcl-fpcunit/src/xmltestreport.pp
index 249e033841..1ee7f75471 100644
--- a/packages/fcl-fpcunit/src/xmltestreport.pp
+++ b/packages/fcl-fpcunit/src/xmltestreport.pp
@@ -21,7 +21,7 @@
is valid XML, with reserved characters correctly escaped.
This allows the XML document to be further processed with XSLT etc without
any issues.
-
+
Notes:
Specify 'null' as the filename if you don't want to output to file (e.g.
used by the GUI test runner which instead reads the Document property).
@@ -194,7 +194,7 @@ begin
inherited;
FResults := FDoc.CreateElement('TestResults');
FResults.AppendChild(FDoc.CreateComment(' Generated using FPCUnit on '
- + FormatDateTime('yyyy-mm-dd hh:mm:ss', Now) ));
+ + FormatDateTime('yyyy-mm-dd hh:nn:ss', Now) ));
FDoc.AppendChild(FResults);
FListing := FDoc.CreateElement('TestListing');
FResults.AppendChild(FListing);
@@ -283,7 +283,7 @@ begin
{ Summary of ISO 8601 http://www.cl.cam.ac.uk/~mgk25/iso-time.html }
n := FDoc.CreateElement('DateTimeRan');
- n.AppendChild(FDoc.CreateTextNode(FormatDateTime('yyyy-mm-dd hh:mm:ss', Now)));
+ n.AppendChild(FDoc.CreateTextNode(FormatDateTime('yyyy-mm-dd hh:nn:ss', Now)));
lResults.AppendChild(n);
// This is so that the GUI Test Runner doesn't output text as well.
diff --git a/packages/fcl-image/Makefile b/packages/fcl-image/Makefile
index 22b4ab8a34..7d63361436 100644
--- a/packages/fcl-image/Makefile
+++ b/packages/fcl-image/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-image
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-image/Makefile.fpc b/packages/fcl-image/Makefile.fpc
index e39d7e3ceb..f56cf82a3b 100644
--- a/packages/fcl-image/Makefile.fpc
+++ b/packages/fcl-image/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-image
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-image/Makefile.fpc.fpcmake b/packages/fcl-image/Makefile.fpc.fpcmake
index 7814e734b2..38a7e7966c 100644
--- a/packages/fcl-image/Makefile.fpc.fpcmake
+++ b/packages/fcl-image/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fcl-image
-version=2.7.1
+version=3.1.1
[target]
units=fpimgcmn fpimage pngcomn fpreadpng fpwritepng fpreadxpm fpwritexpm \
diff --git a/packages/fcl-image/examples/Makefile b/packages/fcl-image/examples/Makefile
index 113ba757d4..d405ae106e 100644
--- a/packages/fcl-image/examples/Makefile
+++ b/packages/fcl-image/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=imgconv drawing xwdtobmp interpoldemo
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=imgconv drawing xwdtobmp interpoldemo
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=imgconv drawing xwdtobmp interpoldemo
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=imgconv drawing xwdtobmp interpoldemo
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=imgconv drawing xwdtobmp interpoldemo
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=imgconv drawing xwdtobmp interpoldemo
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=imgconv drawing xwdtobmp interpoldemo
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=imgconv drawing xwdtobmp interpoldemo
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=imgconv drawing xwdtobmp interpoldemo
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-IMAGE=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
+REQUIRE_PACKAGES_FCL-IMAGE=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-IMAGE=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
+REQUIRE_PACKAGES_FCL-IMAGE=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-IMAGE=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
+REQUIRE_PACKAGES_FCL-IMAGE=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/fcl-image/fpmake.pp b/packages/fcl-image/fpmake.pp
index 01903279d9..879331f86a 100644
--- a/packages/fcl-image/fpmake.pp
+++ b/packages/fcl-image/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('fcl-image');
+ P.ShortName:='fcli';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('pasjpeg');
P.Dependencies.Add('paszlib');
P.Dependencies.Add('fcl-base');
@@ -222,14 +223,14 @@ begin
begin
AddUnit('fpimage');
end;
- T:=P.Targets.AddUnit('freetypeh.pp',[solaris,iphonesim,darwin,freebsd,openbsd,netbsd,linux,haiku,beos,win32,win64,aix]);
- T:=P.Targets.AddUnit('freetype.pp',[solaris,iphonesim,darwin,freebsd,openbsd,netbsd,linux,haiku,beos,win32,win64,aix]);
+ T:=P.Targets.AddUnit('freetypeh.pp',[solaris,iphonesim,darwin,freebsd,openbsd,netbsd,linux,haiku,beos,win32,win64,aix,dragonfly]);
+ T:=P.Targets.AddUnit('freetype.pp',[solaris,iphonesim,darwin,freebsd,openbsd,netbsd,linux,haiku,beos,win32,win64,aix,dragonfly]);
with T.Dependencies do
begin
AddUnit('freetypeh');
AddUnit('fpimgcmn');
end;
- T:=P.Targets.AddUnit('ftfont.pp',[solaris,iphonesim,darwin,freebsd,openbsd,netbsd,linux,haiku,beos,win32,win64,aix]);
+ T:=P.Targets.AddUnit('ftfont.pp',[solaris,iphonesim,darwin,freebsd,openbsd,netbsd,linux,haiku,beos,win32,win64,aix,dragonfly]);
with T.Dependencies do
begin
AddUnit('fpcanvas');
diff --git a/packages/fcl-image/src/fpreadpng.pp b/packages/fcl-image/src/fpreadpng.pp
index 0a3bef0dc1..af204af144 100644
--- a/packages/fcl-image/src/fpreadpng.pp
+++ b/packages/fcl-image/src/fpreadpng.pp
@@ -534,13 +534,21 @@ end;
function TFPReaderPNG.ColorGrayAlpha16 (CD:TColorData) : TFPColor;
var c : word;
begin
+ {$ifdef FPC_LITTLE_ENDIAN}
+ c := CD and $FFFF;
+ {$else}
c := (CD shr 16) and $FFFF;
+ {$endif}
with result do
begin
red := c;
green := c;
blue := c;
+ {$ifdef FPC_LITTLE_ENDIAN}
+ alpha := (CD shr 16) and $FFFF;
+ {$else}
alpha := CD and $FFFF;
+ {$endif}
end;
end;
diff --git a/packages/fcl-image/src/fpreadtiff.pas b/packages/fcl-image/src/fpreadtiff.pas
index ee2ddd3a56..629bec8716 100644
--- a/packages/fcl-image/src/fpreadtiff.pas
+++ b/packages/fcl-image/src/fpreadtiff.pas
@@ -189,8 +189,8 @@ begin
0, 1: if SampleCnt-ExtraSampleCnt<>1 then
TiffError('gray images expect one sample per pixel, but found '+IntToStr(
SampleCnt));
- 2: if SampleCnt-ExtraSampleCnt<>3 then
- TiffError('rgb images expect three samples per pixel, but found '+IntToStr(
+ 2: if (SampleCnt-ExtraSampleCnt<>3) and (SampleCnt-ExtraSampleCnt<>4) then
+ TiffError('rgb(a) images expect three or four samples per pixel, but found '+IntToStr(
SampleCnt));
3: if SampleCnt-ExtraSampleCnt<>1 then
TiffError('palette images expect one sample per pixel, but found '+IntToStr(
@@ -238,10 +238,15 @@ begin
RedBits:=SampleBits[0];
GreenBits:=SampleBits[1];
BlueBits:=SampleBits[2];
+ if SampleCnt=4 then
+ AlphaBits:=SampleBits[3];
IFD.RedBits:=RedBits;
IFD.GreenBits:=GreenBits;
IFD.BlueBits:=BlueBits;
- IFD.AlphaBits:=0;
+ if SampleCnt=4 then
+ IFD.AlphaBits:=AlphaBits
+ else
+ IFD.AlphaBits:=0;
for i:=0 to ExtraSampleCnt-1 do begin
//writeln(' ',i,'/',ExtraSampleCnt,' Type=',ExtraSamples[i],' Count=',SampleBits[3+i]);
if ExtraSamples[i] in [1, 2] then begin
@@ -1822,7 +1827,10 @@ begin
ReadImgValue(RedBits,Run,cx,IFD.Predictor,LastRedValue,RedValue);
ReadImgValue(GreenBits,Run,cx,IFD.Predictor,LastGreenValue,GreenValue);
ReadImgValue(BlueBits,Run,cx,IFD.Predictor,LastBlueValue,BlueValue);
- AlphaValue:=alphaOpaque;
+ if SampleBitsPerPixel=32 then
+ ReadImgValue(AlphaBits,Run,cx,IFD.Predictor,LastAlphaValue,AlphaValue)
+ else
+ AlphaValue:=alphaOpaque;
for i:=0 to ExtraSampleCnt-1 do begin
if ExtraSamples[i] in [1,2] then begin
ReadImgValue(AlphaBits,Run,cx,IFD.Predictor,LastAlphaValue,AlphaValue);
@@ -2256,6 +2264,8 @@ var
p[s1.Count]:=s2.Data^;
// increase TableCount
inc(TableCount);
+ if ((SrcPos+3=Count) and (CurBitLength+SrcPosBit>16)) or
+ ((SrcPos+2=Count) and (CurBitLength+SrcPosBit<=16)) then exit;
case TableCount+259 of
512,1024,2048: inc(CurBitLength);
end;
diff --git a/packages/fcl-image/src/freetype.pp b/packages/fcl-image/src/freetype.pp
index 92ba87605e..1a60d9d5a0 100644
--- a/packages/fcl-image/src/freetype.pp
+++ b/packages/fcl-image/src/freetype.pp
@@ -416,8 +416,8 @@ begin
result := FList.count-1;
while (result >= 0) and
( ({$ifdef CaseSense}CompareText{$else}CompareStr{$endif}
- (TMgrFont(FList[anIndex]).Filename, afilename) <> 0) or
- (anIndex <> TMgrFont(FList[anIndex]).font^.face_index)
+ (TMgrFont(FList[Result]).Filename, afilename) <> 0) or
+ (anIndex <> TMgrFont(FList[Result]).font^.face_index)
) do
dec (result);
end;
diff --git a/packages/fcl-js/Makefile b/packages/fcl-js/Makefile
index aa31eb69f6..8e32e7aabb 100644
--- a/packages/fcl-js/Makefile
+++ b/packages/fcl-js/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-js
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-js/Makefile.fpc b/packages/fcl-js/Makefile.fpc
index f547513c22..bac633a799 100644
--- a/packages/fcl-js/Makefile.fpc
+++ b/packages/fcl-js/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-js
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-js/Makefile.fpc.fpcmake b/packages/fcl-js/Makefile.fpc.fpcmake
index e7149e512b..da8c1ad7c7 100644
--- a/packages/fcl-js/Makefile.fpc.fpcmake
+++ b/packages/fcl-js/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fcl-js
-version=2.7.1
+version=3.1.1
[target]
units=jsbase jstree jsscanner jsparser
diff --git a/packages/fcl-js/fpmake.pp b/packages/fcl-js/fpmake.pp
index 0aea4e70a7..dbc5b20bc1 100644
--- a/packages/fcl-js/fpmake.pp
+++ b/packages/fcl-js/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('fcl-js');
+ P.ShortName:='fcjs';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Michael Van Canneyt';
P.License := 'LGPL with FPC modification';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/fcl-json/Makefile b/packages/fcl-json/Makefile
index 135cdf7081..a961f5921b 100644
--- a/packages/fcl-json/Makefile
+++ b/packages/fcl-json/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-json
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-json/Makefile.fpc b/packages/fcl-json/Makefile.fpc
index 28d604a21c..6e45f8568f 100644
--- a/packages/fcl-json/Makefile.fpc
+++ b/packages/fcl-json/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-json
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-json/Makefile.fpc.fpcmake b/packages/fcl-json/Makefile.fpc.fpcmake
index a3d0819269..ca59cdd0db 100644
--- a/packages/fcl-json/Makefile.fpc.fpcmake
+++ b/packages/fcl-json/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fcl-json
-version=2.7.1
+version=3.1.1
[target]
units=fpjson jsonscanner jsonparser jsonconf fpjsonrtti
diff --git a/packages/fcl-json/fpmake.pp b/packages/fcl-json/fpmake.pp
index c328c24bed..4e41d935ef 100644
--- a/packages/fcl-json/fpmake.pp
+++ b/packages/fcl-json/fpmake.pp
@@ -13,11 +13,13 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('fcl-json');
+ P.ShortName:='fclj';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('fcl-base');
+ P.Dependencies.Add('rtl-objpas');
P.Author := 'Michael van Canneyt';
P.License := 'LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/fcl-json/src/fpjson.pp b/packages/fcl-json/src/fpjson.pp
index 0aedab9861..7c5f7accd8 100644
--- a/packages/fcl-json/src/fpjson.pp
+++ b/packages/fcl-json/src/fpjson.pp
@@ -36,14 +36,17 @@ type
TFormatOption = (foSingleLineArray, // Array without CR/LF : all on one line
foSingleLineObject, // Object without CR/LF : all on one line
foDoNotQuoteMembers, // Do not quote object member names.
- foUseTabchar); // Use tab characters instead of spaces.
+ foUseTabchar, // Use tab characters instead of spaces.
+ foSkipWhiteSpace); // Do not use whitespace at all
TFormatOptions = set of TFormatOption;
Const
DefaultIndentSize = 2;
DefaultFormat = [];
AsJSONFormat = [foSingleLineArray,foSingleLineObject]; // These options make FormatJSON behave as AsJSON
-
+ AsCompressedJSON = [foSingleLineArray,foSingleLineObject,foskipWhiteSpace]; // These options make FormatJSON behave as AsJSON with TJSONData.CompressedJSON=True
+ AsCompactJSON = [foSingleLineArray,foSingleLineObject,foskipWhiteSpace,foDoNotQuoteMembers]; // These options make FormatJSON behave as AsJSON with TJSONData.CompressedJSON=True and TJSONObject.UnquotedMemberNames=True
+
Type
TJSONData = Class;
@@ -67,6 +70,14 @@ Type
{ TJSONData }
TJSONData = class(TObject)
+ private
+ Const
+ ElementSeps : Array[Boolean] of TJSONStringType = (', ',',');
+ Class Var FCompressedJSON : Boolean;
+ Class Var FElementSep : TJSONStringType;
+ class procedure DetermineElementSeparators;
+ class function GetCompressedJSON: Boolean; static;
+ class procedure SetCompressedJSON(AValue: Boolean); static;
protected
Class Procedure DoError(Const Msg : String);
Class Procedure DoError(Const Fmt : String; const Args : Array of const);
@@ -91,10 +102,13 @@ Type
procedure SetItem(Index : Integer; const AValue: TJSONData); virtual;
Function DoFormatJSON(Options : TFormatOptions; CurrentIndent, Indent : Integer) : TJSONStringType; virtual;
function GetCount: Integer; virtual;
+ Public
+ Class function JSONType: TJSONType; virtual;
+ Class Property CompressedJSON : Boolean Read GetCompressedJSON Write SetCompressedJSON;
public
Constructor Create; virtual;
- Class function JSONType: TJSONType; virtual;
Procedure Clear; virtual; Abstract;
+ Procedure DumpJSON(S : TStream);
// Get enumerator
function GetEnumerator: TBaseJSONEnumerator; virtual;
Function FindPath(Const APath : TJSONStringType) : TJSONdata;
@@ -434,6 +448,16 @@ Type
TJSONObject = class(TJSONData)
private
+ Const
+ ElementStart : Array[Boolean] of TJSONStringType = ('"','');
+ SpacedQuoted : Array[Boolean] of TJSONStringType = ('" : ',' : ');
+ UnSpacedQuoted : Array[Boolean] of TJSONStringType = ('":',':');
+ ObjStartSeps : Array[Boolean] of TJSONStringType = ('{ ','{');
+ ObjEndSeps : Array[Boolean] of TJSONStringType = (' }','}');
+ Class var FUnquotedMemberNames: Boolean;
+ Class var FObjStartSep,FObjEndSep,FElementEnd,FElementStart : TJSONStringType;
+ Class procedure DetermineElementQuotes;
+ Private
FHash : TFPHashObjectList; // Careful : Names limited to 255 chars.
function GetArrays(const AName : String): TJSONArray;
function GetBooleans(const AName : String): Boolean;
@@ -457,6 +481,8 @@ Type
procedure SetObjects(const AName : String; const AValue: TJSONObject);
procedure SetQWords(AName : String; AValue: QWord);
procedure SetStrings(const AName : String; const AValue: TJSONStringType);
+ class function GetUnquotedMemberNames: Boolean; static;
+ class procedure SetUnquotedMemberNames(AValue: Boolean); static;
protected
Function DoFindPath(Const APath : TJSONStringType; Out NotFound : TJSONStringType) : TJSONdata; override;
Procedure Converterror(From : Boolean);
@@ -464,10 +490,12 @@ Type
function GetAsFloat: TJSONFloat; override;
function GetAsInteger: Integer; override;
function GetAsInt64: Int64; override;
+ function GetAsQWord: QWord; override;
procedure SetAsBoolean(const AValue: Boolean); override;
procedure SetAsFloat(const AValue: TJSONFloat); override;
procedure SetAsInteger(const AValue: Integer); override;
procedure SetAsInt64(const AValue: Int64); override;
+ procedure SetAsQword(const AValue: QWord); override;
function GetAsJSON: TJSONStringType; override;
function GetAsString: TJSONStringType; override;
procedure SetAsString(const AValue: TJSONStringType); override;
@@ -482,6 +510,7 @@ Type
Constructor Create(const Elements : Array of Const); overload;
destructor Destroy; override;
class function JSONType: TJSONType; override;
+ Class Property UnquotedMemberNames : Boolean Read GetUnquotedMemberNames Write SetUnquotedMemberNames;
Function Clone : TJSONData; override;
function GetEnumerator: TBaseJSONEnumerator; override;
// Examine
@@ -994,12 +1023,81 @@ begin
Clear;
end;
+procedure TJSONData.DumpJSON(S: TStream);
+
+ Procedure W(T : String);
+
+ begin
+ if (T<>'') then
+ S.WriteBuffer(T[1],Length(T)*SizeOf(Char));
+ end;
+
+Var
+ I,C : Integer;
+ O : TJSONObject;
+
+begin
+ Case JSONType of
+ jtObject :
+ begin
+ O:=TJSONObject(Self);
+ W('{');
+ For I:=0 to O.Count-1 do
+ begin
+ if (I>0) then
+ W(',');
+ W('"');
+ W(StringToJSONString(O.Names[i]));
+ W('":');
+ O.Items[I].DumpJSON(S);
+ end;
+ W('}');
+ end;
+ jtArray :
+ begin
+ W('[');
+ For I:=0 to Count-1 do
+ begin
+ if (I>0) then
+ W(',');
+ Items[I].DumpJSON(S);
+ end;
+ W(']');
+ end
+ else
+ W(AsJSON)
+ end;
+end;
+
+class function TJSONData.GetCompressedJSON: Boolean; static;
+begin
+ Result:=FCompressedJSON;
+end;
+
+class procedure TJSONData.DetermineElementSeparators;
+
+
+begin
+ FElementSep:=ElementSeps[FCompressedJSON];
+end;
+
+class procedure TJSONData.SetCompressedJSON(AValue: Boolean); static;
+
+
+begin
+ if AValue=FCompressedJSON then exit;
+ FCompressedJSON:=AValue;
+ DetermineElementSeparators;
+ TJSONObject.DetermineElementQuotes;
+end;
+
class procedure TJSONData.DoError(const Msg: String);
begin
Raise EJSON.Create(Msg);
end;
-class procedure TJSONData.DoError(const Fmt: String; Const Args: array of const);
+class procedure TJSONData.DoError(const Fmt: String;
+ const Args: array of const);
begin
Raise EJSON.CreateFmt(Fmt,Args);
end;
@@ -1886,18 +1984,21 @@ end;
{$warnings on}
+
function TJSONArray.GetAsJSON: TJSONStringType;
Var
I : Integer;
+ Sep : String;
begin
+ Sep:=TJSONData.FElementSep;
Result:='[';
For I:=0 to Count-1 do
begin
Result:=Result+Items[i].AsJSON;
If (I<Count-1) then
- Result:=Result+', '
+ Result:=Result+Sep;
end;
Result:=Result+']';
end;
@@ -1918,25 +2019,31 @@ function TJSONArray.DoFormatJSON(Options: TFormatOptions; CurrentIndent,
Var
I : Integer;
+ MultiLine : Boolean;
+ SkipWhiteSpace : Boolean;
+ Ind : String;
begin
Result:='[';
- if not (foSingleLineArray in Options) then
+ MultiLine:=Not (foSingleLineArray in Options);
+ SkipWhiteSpace:=foSkipWhiteSpace in Options;
+ Ind:=IndentString(Options, CurrentIndent+Indent);
+ if MultiLine then
Result:=Result+sLineBreak;
For I:=0 to Count-1 do
begin
- if not (foSingleLineArray in Options) then
- Result:=Result+IndentString(Options, CurrentIndent+Indent);
+ if MultiLine then
+ Result:=Result+Ind;
Result:=Result+Items[i].DoFormatJSON(Options,CurrentIndent+Indent,Indent);
If (I<Count-1) then
- if (foSingleLineArray in Options) then
- Result:=Result+', '
+ if MultiLine then
+ Result:=Result+','
else
- Result:=Result+',';
- if not (foSingleLineArray in Options) then
+ Result:=Result+ElementSeps[SkipWhiteSpace];
+ if MultiLine then
Result:=Result+sLineBreak
end;
- if not (foSingleLineArray in Options) then
+ if MultiLine then
Result:=Result+IndentString(Options, CurrentIndent);
Result:=Result+']';
end;
@@ -2292,6 +2399,11 @@ begin
Result:=Getelements(Aname).JSONType;
end;
+class function TJSONObject.GetUnquotedMemberNames: Boolean; static;
+begin
+ Result:=FUnquotedMemberNames;
+end;
+
procedure TJSONObject.SetArrays(const AName : String; const AValue: TJSONArray);
begin
@@ -2352,6 +2464,26 @@ begin
SetElements(AName,CreateJSON(AVAlue));
end;
+class procedure TJSONObject.DetermineElementQuotes;
+
+begin
+ FObjStartSep:=ObjStartSeps[TJSONData.FCompressedJSON];
+ FObjEndSep:=ObjEndSeps[TJSONData.FCompressedJSON];
+ if TJSONData.FCompressedJSON then
+ FElementEnd:=UnSpacedQuoted[FUnquotedMemberNames]
+ else
+ FElementEnd:=SpacedQuoted[FUnquotedMemberNames];
+ FElementStart:=ElementStart[FUnquotedMemberNames]
+end;
+
+class procedure TJSONObject.SetUnquotedMemberNames(AValue: Boolean); static;
+
+begin
+ if FUnquotedMemberNames=AValue then exit;
+ FUnquotedMemberNames:=AValue;
+ DetermineElementQuotes;
+end;
+
function TJSONObject.DoFindPath(const APath: TJSONStringType; out
NotFound: TJSONStringType): TJSONdata;
@@ -2415,6 +2547,11 @@ begin
ConvertError(True);
end;
+function TJSONObject.GetAsQWord: QWord;
+begin
+ ConvertError(True);
+end;
+
procedure TJSONObject.SetAsBoolean(const AValue: Boolean);
begin
ConvertError(False);
@@ -2434,23 +2571,32 @@ procedure TJSONObject.SetAsInt64(const AValue: Int64);
begin
ConvertError(False);
end;
+
+procedure TJSONObject.SetAsQword(const AValue: QWord);
+begin
+ ConvertError(False);
+end;
+
{$warnings on}
function TJSONObject.GetAsJSON: TJSONStringType;
+
Var
I : Integer;
+ Sep : String;
begin
+ Sep:=TJSONData.FElementSep;
Result:='';
For I:=0 to Count-1 do
begin
If (Result<>'') then
- Result:=Result+', ';
- Result:=Result+'"'+StringToJSONString(Names[i])+'" : '+Items[I].AsJSON;
+ Result:=Result+Sep;
+ Result:=Result+FElementStart+StringToJSONString(Names[i])+FElementEnd+Items[I].AsJSON;
end;
If (Result<>'') then
- Result:='{ '+Result+' }'
+ Result:=FObjStartSep+Result+FObjEndSep
else
Result:='{}';
end;
@@ -2573,33 +2719,42 @@ function TJSONObject.DoFormatJSON(Options: TFormatOptions; CurrentIndent,
Var
i : Integer;
S : TJSONStringType;
-
-
+ MultiLine,UseQuotes, SkipWhiteSpace : Boolean;
+ NSep,Sep,Ind : String;
begin
Result:='';
- CurrentIndent:=CurrentIndent+Indent;
+ UseQuotes:=Not (foDoNotQuoteMembers in options);
+ MultiLine:=Not (foSingleLineObject in Options);
+ SkipWhiteSpace:=foSkipWhiteSpace in Options;
+ CurrentIndent:=CurrentIndent+Indent;
+ Ind:=IndentString(Options, CurrentIndent);
+ If SkipWhiteSpace then
+ NSep:=':'
+ else
+ NSep:=' : ';
+ If MultiLine then
+ Sep:=','+SLineBreak+Ind
+ else if SkipWhiteSpace then
+ Sep:=','
+ else
+ Sep:=', ';
For I:=0 to Count-1 do
begin
- If (Result<>'') then
- begin
- If (foSingleLineObject in Options) then
- Result:=Result+', '
- else
- Result:=Result+','+SLineBreak;
- end;
- If not (foSingleLineObject in Options) then
- Result:=Result+IndentString(Options,CurrentIndent);
+ If (I>0) then
+ Result:=Result+Sep
+ else If MultiLine then
+ Result:=Result+Ind;
S:=StringToJSONString(Names[i]);
- If not (foDoNotQuoteMembers in options) then
+ If UseQuotes then
S:='"'+S+'"';
- Result:=Result+S+' : '+Items[I].DoFormatJSON(Options,CurrentIndent,Indent);
+ Result:=Result+S+NSep+Items[I].DoFormatJSON(Options,CurrentIndent,Indent);
end;
If (Result<>'') then
begin
- if (foSingleLineObject in Options) then
- Result:='{ '+Result+' }'
- else
+ if MultiLine then
Result:='{'+sLineBreak+Result+sLineBreak+indentString(options,CurrentIndent-Indent)+'}'
+ else
+ Result:=ObjStartSeps[SkipWhiteSpace]+Result+ObjEndSeps[SkipWhiteSpace]
end
else
Result:='{}';
@@ -2867,5 +3022,9 @@ begin
Result:=Nil;
end;
+initialization
+ // Need to force initialization;
+ TJSONData.DetermineElementSeparators;
+ TJSONObject.DetermineElementQuotes;
end.
diff --git a/packages/fcl-json/src/jsonscanner.pp b/packages/fcl-json/src/jsonscanner.pp
index 4f63c6d5cf..4bde174618 100644
--- a/packages/fcl-json/src/jsonscanner.pp
+++ b/packages/fcl-json/src/jsonscanner.pp
@@ -342,7 +342,7 @@ begin
Inc(TokenStr);
Result := tkSquaredBraceClose;
end;
- 'a'..'z','_':
+ 'a'..'z','A'..'Z','_':
begin
TokenStart := TokenStr;
repeat
diff --git a/packages/fcl-json/tests/testjson.lpi b/packages/fcl-json/tests/testjson.lpi
index e9a1f02ffb..36137f6e60 100644
--- a/packages/fcl-json/tests/testjson.lpi
+++ b/packages/fcl-json/tests/testjson.lpi
@@ -24,7 +24,6 @@
<RunParams>
<local>
<FormatVersion Value="1"/>
- <CommandLineParams Value="--suite=TTestParser.TestErrors"/>
<LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
</local>
</RunParams>
@@ -80,11 +79,6 @@
<UseAnsiStrings Value="False"/>
</SyntaxOptions>
</Parsing>
- <Linking>
- <Debugging>
- <UseHeaptrc Value="True"/>
- </Debugging>
- </Linking>
<Other>
<CompilerMessages>
<UseMsgFile Value="True"/>
@@ -92,4 +86,14 @@
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
+ <Debugging>
+ <Exceptions Count="2">
+ <Item1>
+ <Name Value="EConvertError"/>
+ </Item1>
+ <Item2>
+ <Name Value="EJSON"/>
+ </Item2>
+ </Exceptions>
+ </Debugging>
</CONFIG>
diff --git a/packages/fcl-json/tests/testjsondata.pp b/packages/fcl-json/tests/testjsondata.pp
index 63c484b814..0d9dbed354 100644
--- a/packages/fcl-json/tests/testjsondata.pp
+++ b/packages/fcl-json/tests/testjsondata.pp
@@ -168,6 +168,7 @@ type
Procedure TestCreateString;
Procedure TestCreatePchar;
procedure TestCreateStrings;
+ procedure TestCreateStringsCompressed;
procedure TestCreateInteger;
procedure TestCreateInt64;
procedure TestCreateFloat;
@@ -213,15 +214,25 @@ type
published
Procedure TestCreate;
Procedure TestCreateString;
+ Procedure TestCreateStringUnquoted;
Procedure TestCreatePchar;
+ Procedure TestCreatePcharUnquoted;
procedure TestCreateStrings;
+ procedure TestCreateStringsCompressed;
+ procedure TestCreateStringsCompressedUnquoted;
procedure TestCreateInteger;
+ procedure TestCreateIntegerUnquoted;
procedure TestCreateInt64;
+ procedure TestCreateInt64Unquoted;
procedure TestCreateFloat;
+ procedure TestCreateFloatUnquoted;
procedure TestCreateBoolean;
+ procedure TestCreateBooleanUnquoted;
procedure TestCreateObject;
procedure TestCreateJSONString;
+ procedure TestCreateJSONStringUnquoted;
procedure TestCreateJSONObject;
+ procedure TestCreateJSONObjectUnquoted;
procedure TestCreateNilPointer;
procedure TestCreatePointer;
procedure TestAddInteger;
@@ -1042,6 +1053,8 @@ Procedure TTestJSON.SetUp;
begin
inherited SetUp;
SetDefaultInstanceTypes;
+ TJSONData.CompressedJSON:=False;
+ TJSONObject.UnquotedMemberNames:=False;
end;
Procedure TTestJSON.TestItemCount(J: TJSONData; Expected: Integer);
@@ -2183,6 +2196,29 @@ begin
end;
end;
+procedure TTestArray.TestCreateStringsCompressed;
+Const
+ S = 'A string';
+ T = 'B string';
+
+Var
+ J : TJSONArray;
+
+begin
+ TJSONData.CompressedJSON:=True;
+ J:=TJSONArray.Create([S,T]);
+ try
+ TestJSONType(J,jtArray);
+ TestItemCount(J,2);
+ TestJSONType(J[0],jtString);
+ TestJSONType(J[1],jtString);
+ TestJSON(J,'["'+S+'","'+T+'"]');
+ TestIsNull(J,False);
+ finally
+ FreeAndNil(J);
+ end;
+end;
+
procedure TTestArray.TestCreateInteger;
Const
@@ -2958,10 +2994,10 @@ begin
TestJSONType(J[2],jtNumber);
TestJSON(J,'[0, 1, 2]');
AssertEquals('FormatJSON, single line',J.AsJSON,J.FormatJSON([foSingleLineArray],1));
- AssertEquals('FormatJSON, single line','['+sLinebreak+' 0,'+sLinebreak+' 1,'+sLinebreak+' 2'+sLinebreak+']',J.FormatJSON());
- AssertEquals('FormatJSON, single line','['+sLinebreak+#9'0,'+sLinebreak+#9'1,'+sLinebreak+#9'2'+sLinebreak+']',J.FormatJSON([foUseTabChar],1));
+ AssertEquals('FormatJSON, default','['+sLinebreak+' 0,'+sLinebreak+' 1,'+sLinebreak+' 2'+sLinebreak+']',J.FormatJSON());
+ AssertEquals('FormatJSON, use tab','['+sLinebreak+#9'0,'+sLinebreak+#9'1,'+sLinebreak+#9'2'+sLinebreak+']',J.FormatJSON([foUseTabChar],1));
J.Add(TJSONObject.Create(['x',1,'y',2]));
- AssertEquals('FormatJSON, single line','['+sLinebreak+#9'0,'+sLinebreak+#9'1,'+sLinebreak+#9'2,'+sLinebreak+#9'{'+sLineBreak+#9#9'"x" : 1,'+sLineBreak+#9#9'"y" : 2'+sLinebreak+#9'}'+sLineBreak+']',J.FormatJSON([foUseTabChar],1));
+ AssertEquals('FormatJSON, use tab indentsize 1','['+sLinebreak+#9'0,'+sLinebreak+#9'1,'+sLinebreak+#9'2,'+sLinebreak+#9'{'+sLineBreak+#9#9'"x" : 1,'+sLineBreak+#9#9'"y" : 2'+sLinebreak+#9'}'+sLineBreak+']',J.FormatJSON([foUseTabChar],1));
finally
J.Free
end;
@@ -3404,6 +3440,8 @@ begin
try
TestJSON(O,'{ "x" : 1, "y" : 2 }');
AssertEquals('Format equals JSON',O.AsJSON,O.FormatJSON([foSingleLineObject]));
+ AssertEquals('Format using SkipWhiteSpace','{"x":1,"y":2}',O.FormatJSON([foSingleLineObject,foSkipWhiteSpace]));
+ AssertEquals('Format using SkipWhiteSpace,unquotednames','{x:1,y:2}',O.FormatJSON([foSingleLineObject,foSkipWhiteSpace,foDoNotQuoteMembers]));
AssertEquals('Format 1','{'+sLineBreak+' "x" : 1,'+sLineBreak+' "y" : 2'+sLineBreak+'}',O.FormatJSON([]));
AssertEquals('Format 1','{'+sLineBreak+' x : 1,'+sLineBreak+' y : 2'+sLineBreak+'}',O.FormatJSON([foDoNotQuoteMembers]));
AssertEquals('Format 1','{'+sLineBreak+#9'x : 1,'+sLineBreak+#9'y : 2'+sLineBreak+'}',O.FormatJSON([foUseTabChar,foDoNotQuoteMembers],1));
@@ -3472,6 +3510,28 @@ begin
end;
end;
+procedure TTestObject.TestCreateStringUnquoted;
+Const
+ A = 'A';
+ S = 'A string';
+
+Var
+ J : TJSONObject;
+
+begin
+ TJSONObject.UnquotedMemberNames:=True;
+ J:=TJSONObject.Create([A,S]);
+ try
+ TestJSONType(J,jtObject);
+ TestItemCount(J,1);
+ TestJSONType(J[A],jtString);
+ TestJSON(J,'{ A : "'+S+'" }');
+ TestIsNull(J,False);
+ finally
+ FreeAndNil(J);
+ end;
+end;
+
procedure TTestObject.TestCreatePchar;
Const
@@ -3494,6 +3554,29 @@ begin
end;
end;
+procedure TTestObject.TestCreatePcharUnquoted;
+
+Const
+ A = 'A';
+ S = 'A string';
+
+Var
+ J : TJSONObject;
+
+begin
+ TJSONObject.UnQuotedMemberNames:=True;
+ J:=TJSONObject.Create([A,Pchar(S)]);
+ try
+ TestJSONType(J,jtObject);
+ TestItemCount(J,1);
+ TestJSONType(J[A],jtString);
+ TestJSON(J,'{ A : "'+S+'" }');
+ TestIsNull(J,False);
+ finally
+ FreeAndNil(J);
+ end;
+end;
+
procedure TTestObject.TestCreateStrings;
Const
@@ -3519,6 +3602,59 @@ begin
end;
end;
+procedure TTestObject.TestCreateStringsCompressed;
+
+Const
+ A = 'A';
+ B = 'B';
+ S = 'A string';
+ T = 'B string';
+
+Var
+ J : TJSONObject;
+
+begin
+ TJSONData.CompressedJSON:=True;
+ J:=TJSONObject.Create([A,S,B,T]);
+ try
+ TestJSONType(J,jtObject);
+ TestItemCount(J,2);
+ TestJSONType(J[A],jtString);
+ TestJSONType(J[B],jtString);
+ TestJSON(J,'{"A":"'+S+'","B":"'+T+'"}');
+ TestIsNull(J,False);
+ finally
+ FreeAndNil(J);
+ end;
+end;
+
+procedure TTestObject.TestCreateStringsCompressedUnquoted;
+
+Const
+ A = 'A';
+ B = 'B';
+ S = 'A string';
+ T = 'B string';
+
+Var
+ J : TJSONObject;
+
+begin
+ TJSONData.CompressedJSON:=True;
+ TJSONObject.UnQuotedMemberNames:=True;
+ J:=TJSONObject.Create([A,S,B,T]);
+ try
+ TestJSONType(J,jtObject);
+ TestItemCount(J,2);
+ TestJSONType(J[A],jtString);
+ TestJSONType(J[B],jtString);
+ TestJSON(J,'{A:"'+S+'",B:"'+T+'"}');
+ TestIsNull(J,False);
+ finally
+ FreeAndNil(J);
+ end;
+end;
+
procedure TTestObject.TestCreateInteger;
Const
@@ -3540,6 +3676,27 @@ begin
end;
end;
+procedure TTestObject.TestCreateIntegerUnquoted;
+Const
+ A = 'A';
+ S = 3;
+
+Var
+ J : TJSONObject;
+
+begin
+ TJSONObject.UnQuotedMemberNames:=True;
+ J:=TJSONObject.Create([A,S]);
+ try
+ TestJSONType(J,jtObject);
+ TestItemCount(J,1);
+ TestJSONType(J[A],jtNumber);
+ TestJSON(J,'{ A : 3 }');
+ finally
+ FreeAndNil(J);
+ end;
+end;
+
procedure TTestObject.TestCreateFloat;
Const
@@ -3563,6 +3720,29 @@ begin
end;
end;
+procedure TTestObject.TestCreateFloatUnquoted;
+Const
+ A = 'A';
+ S : double = 1.2;
+
+Var
+ J : TJSONObject;
+ r : String;
+
+begin
+ TJSONObject.UnQuotedMemberNames:=True;
+ J:=TJSONObject.Create([A,S]);
+ try
+ TestJSONType(J,jtObject);
+ TestItemCount(J,1);
+ TestJSONType(J[A],jtNumber);
+ Str(S,R);
+ TestJSON(J,'{ A :'+R+' }');
+ finally
+ FreeAndNil(J);
+ end;
+end;
+
procedure TTestObject.TestCreateInt64;
Const
@@ -3584,6 +3764,27 @@ begin
end;
end;
+procedure TTestObject.TestCreateInt64Unquoted;
+Const
+ A = 'A';
+ S : Int64 = $FFFFFFFFFFFFF;
+
+Var
+ J : TJSONObject;
+
+begin
+ TJSONObject.UnQuotedMemberNames:=True;
+ J:=TJSONObject.Create([A,S]);
+ try
+ TestJSONType(J,jtObject);
+ TestItemCount(J,1);
+ TestJSONType(J[A],jtNumber);
+ TestJSON(J,'{ A : '+IntToStr(S)+' }');
+ finally
+ FreeAndNil(J);
+ end;
+end;
+
procedure TTestObject.TestCreateBoolean;
Const
@@ -3605,6 +3806,27 @@ begin
end;
end;
+procedure TTestObject.TestCreateBooleanUnquoted;
+Const
+ A = 'A';
+ S = True;
+
+Var
+ J : TJSONObject;
+
+begin
+ TJSONObject.UnQuotedMemberNames:=True;
+ J:=TJSONObject.Create([A,S]);
+ try
+ TestJSONType(J,jtObject);
+ TestItemCount(J,1);
+ TestJSONType(J[A],jtBoolean);
+ TestJSON(J,'{ A : true }');
+ finally
+ FreeAndNil(J);
+ end;
+end;
+
procedure TTestObject.TestCreateJSONObject;
Const
@@ -3623,6 +3845,26 @@ begin
FreeAndNil(J);
end;
end;
+
+procedure TTestObject.TestCreateJSONObjectUnquoted;
+Const
+ A = 'A';
+
+Var
+ J : TJSONObject;
+
+begin
+ TJSONObject.UnQuotedMemberNames:=True;
+ J:=TJSONObject.Create([A,TJSONObject.Create]);
+ try
+ TestItemCount(J,1);
+ TestJSONType(J[A],jtObject);
+ TestJSON(J,'{ A : {} }');
+ finally
+ FreeAndNil(J);
+ end;
+end;
+
procedure TTestObject.TestCreateJSONString;
Const
@@ -3643,6 +3885,27 @@ begin
end;
end;
+procedure TTestObject.TestCreateJSONStringUnquoted;
+
+Const
+ A = 'A';
+ S = 'A string';
+
+Var
+ J : TJSONObject;
+
+begin
+ TJSONObject.UnQuotedMemberNames:=True;
+ J:=TJSONObject.Create([A,TJSONString.Create(S)]);
+ try
+ TestItemCount(J,1);
+ TestJSONType(J[A],jtString);
+ TestJSON(J,'{ A : "'+S+'" }');
+ finally
+ FreeAndNil(J);
+ end;
+end;
+
procedure TTestObject.TestCreateObject;
Const
diff --git a/packages/fcl-net/Makefile b/packages/fcl-net/Makefile
index 14a80e01cb..126e1d2cb8 100644
--- a/packages/fcl-net/Makefile
+++ b/packages/fcl-net/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-net
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-net/Makefile.fpc b/packages/fcl-net/Makefile.fpc
index a715ec676e..13b475d671 100644
--- a/packages/fcl-net/Makefile.fpc
+++ b/packages/fcl-net/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-net
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-net/Makefile.fpc.fpcmake b/packages/fcl-net/Makefile.fpc.fpcmake
index a2233cc473..0a232dd179 100644
--- a/packages/fcl-net/Makefile.fpc.fpcmake
+++ b/packages/fcl-net/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fcl-net
-version=2.7.1
+version=3.1.1
[target]
units_linux=netdb resolve ssockets fpsock cnetdb
@@ -21,7 +21,8 @@ units_emx=resolve ssockets
units_os2=resolve ssockets
units_win32=resolve ssockets
units_win64=resolve ssockets
-units_wince=resolve ssockets
+units_wince=resolve ssockets
+units_aros=resolve ssockets
[require]
packages=fcl-base fcl-xml fcl-passrc fcl-async
diff --git a/packages/fcl-net/examples/Makefile b/packages/fcl-net/examples/Makefile
index fe7765b0e7..c14a9c42ef 100644
--- a/packages/fcl-net/examples/Makefile
+++ b/packages/fcl-net/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=rpcserv rpccli
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=rpcserv rpccli
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=rpcserv rpccli
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=rpcserv rpccli
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=rpcserv rpccli
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=rpcserv rpccli
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=rpcserv rpccli
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=rpcserv rpccli
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=rpcserv rpccli
endif
@@ -610,6 +625,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=svrclass svrclass_xmlrpc
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=svrclass svrclass_xmlrpc
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=svrclass svrclass_xmlrpc
endif
@@ -697,6 +715,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=svrclass svrclass_xmlrpc
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=svrclass svrclass_xmlrpc
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=svrclass svrclass_xmlrpc
endif
@@ -751,6 +772,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=svrclass svrclass_xmlrpc
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=svrclass svrclass_xmlrpc
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=svrclass svrclass_xmlrpc
endif
@@ -833,6 +857,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -920,6 +947,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -974,6 +1004,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2h
endif
@@ -1228,6 +1261,12 @@ 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=
@@ -1273,6 +1312,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1878,6 +1922,17 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-NET=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-NET=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2197,6 +2252,17 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-NET=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-NET=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2395,6 +2461,17 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-NET=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-NET=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2894,7 +2971,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2924,17 +3001,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-net/fpmake.pp b/packages/fcl-net/fpmake.pp
index 55aab09bda..be95c26e0b 100644
--- a/packages/fcl-net/fpmake.pp
+++ b/packages/fcl-net/fpmake.pp
@@ -13,15 +13,16 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('fcl-net');
+ P.ShortName:='fcln';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('fcl-base');
- P.Dependencies.Add('openssl');
+ P.Dependencies.Add('openssl',AllOSes - [amiga,aros]);
P.Dependencies.Add('fcl-xml');
P.Dependencies.Add('fcl-passrc');
- P.Dependencies.Add('fcl-async',[linux,freebsd,netbsd,openbsd]);
+ P.Dependencies.Add('fcl-async',[linux,freebsd,netbsd,openbsd,dragonfly]);
P.Dependencies.Add('rtl-extra');
P.Author := 'Sebastian Guenther and Free Pascal development team';
@@ -40,14 +41,14 @@ begin
// IP and Sockets
T:=P.Targets.AddUnit('netdb.pp',AllUnixOSes);
- T:=P.Targets.AddUnit('resolve.pp',AllUnixOSes+AllWindowsOSes+[OS2,EMX]);
+ T:=P.Targets.AddUnit('resolve.pp',AllUnixOSes+AllWindowsOSes+[OS2,EMX,amiga,aros]);
with T.Dependencies do
begin
AddInclude('resolve.inc');
AddUnit('netdb',AllUnixOSes);
end;
T.ResourceStrings := True;
- T:=P.Targets.AddUnit('ssockets.pp',AllUnixOSes+AllWindowsOSes+[OS2,EMX]);
+ T:=P.Targets.AddUnit('ssockets.pp',AllUnixOSes+AllWindowsOSes+[OS2,EMX, amiga,aros]);
with T.Dependencies do
begin
AddUnit('resolve');
@@ -61,7 +62,7 @@ begin
T.ResourceStrings := True;
// HTTP Client
- T:=P.Targets.AddUnit('fpsock.pp',[linux,freebsd,netbsd,openbsd]);
+ T:=P.Targets.AddUnit('fpsock.pp',[linux,freebsd,netbsd,openbsd,dragonfly]);
with T.Dependencies do
begin
AddUnit('resolve');
diff --git a/packages/fcl-net/src/amiga/resolve.inc b/packages/fcl-net/src/amiga/resolve.inc
new file mode 100644
index 0000000000..69a4b5fbd7
--- /dev/null
+++ b/packages/fcl-net/src/amiga/resolve.inc
@@ -0,0 +1,99 @@
+
+uses
+ Sysutils;
+const
+ { Net type }
+ socklib = 'c';
+ AF_INET = 2;
+
+ { Error constants. Returned by LastError method of THost, TNet}
+
+ NETDB_INTERNAL= -1; { see errno }
+ NETDB_SUCCESS = 0; { no problem }
+ HOST_NOT_FOUND= 1; { Authoritative Answer Host not found }
+ TRY_AGAIN = 2; { Non-Authoritive Host not found, or SERVERFAIL }
+ NO_RECOVERY = 3; { Non recoverable errors, FORMERR, REFUSED, NOTIMP }
+ NO_DATA = 4; { Valid name, no data record of requested type }
+ NO_ADDRESS = NO_DATA; { no address, look for MX record }
+
+
+Type
+
+ { THostEnt Object }
+ THostEnt = record
+ H_Name : pchar; { Official name }
+ H_Aliases : ppchar; { Null-terminated list of aliases}
+ H_Addrtype : longint; { Host address type }
+ H_length : longint; { Length of address }
+ H_Addr : ppchar; { null-terminated list of adresses }
+ end;
+ PHostEntry = ^THostEnt;
+
+ { TNetEnt object }
+ TNetEnt = record
+ N_Name : pchar; { Official name }
+ N_Aliases : ppchar; { Nill-terminated alias list }
+ N_AddrType : longint; { Net address type }
+ N_net : Cardinal; { Network number }
+ end;
+ PNetEntry = ^TNetEnt;
+
+ TServEnt = record
+ s_name : pchar; { Service name }
+ s_aliases : ppchar; { Null-terminated alias list }
+ s_port : longint; { Port number }
+ s_proto : pchar; { Protocol to use }
+ end;
+ PServEntry = ^TServEnt;
+
+{ C style calls, linked in from Libc }
+
+function gethostbyname(Name: PChar location 'a0'): PHostEntry; syscall SocketBase 210;
+function getnetbyname(Name: PChar location 'a0'): PNetEntry; syscall SocketBase 222;
+function getnetbyaddr(Net: Longint location 'd0'; NetType: Longint location 'd1'): PNetEntry; syscall SocketBase 228;
+function getservbyname(Name: PChar location 'a0'; Protocol: PChar location 'a1'): PServEntry; syscall SocketBase 234;
+function getservbyport(Port: LongInt location 'd0'; Protocol: PChar location 'a0'): PServEntry; syscall SocketBase 240;
+
+procedure setnetent(Stayopen: Longint location 'd0'); syscall SocketBase 516;
+procedure endnetent; syscall SocketBase 522;
+function getnetent: PNetEntry; syscall SocketBase 528;
+procedure setservent(StayOpen: longint location 'd0'); syscall SocketBase 552;
+procedure endservent; syscall SocketBase 558;
+function getservent: PServEntry; syscall SocketBase 564;
+
+function gethostbyaddr(Addr: PChar; Len: Longint; HType: Longint): PHostentry;
+var
+ addr1,
+ addr2: in_addr;
+ IP: PPLongInt;
+begin
+ Addr1 := in_addr(PHostAddr(Addr)^);
+ Addr2.s_addr := htonl(Addr1.s_addr);
+ gethostbyaddr := Pointer(bsd_GetHostByAddr(Pointer(@Addr2.s_addr), Len, HType));
+ if Assigned(gethostbyaddr) then
+ begin
+ ip := Pointer(gethostbyaddr^.H_Addr);
+ if Assigned(ip) then
+ begin
+ repeat
+ ip^^ := ntohl(ip^^);
+ Inc(IP);
+ until ip^ = nil;
+ end;
+ end;
+end;
+
+function GetDNSError: integer;
+begin
+ GetDNSError:=bsd_Errno;
+end;
+
+Function InitResolve : Boolean;
+begin
+ Result:=True;
+end;
+
+Function FinalResolve : Boolean;
+begin
+ Result:=True;
+end;
diff --git a/packages/fcl-net/src/aros/resolve.inc b/packages/fcl-net/src/aros/resolve.inc
new file mode 100644
index 0000000000..e303907086
--- /dev/null
+++ b/packages/fcl-net/src/aros/resolve.inc
@@ -0,0 +1,99 @@
+
+uses
+ Sysutils;
+const
+ { Net type }
+ socklib = 'c';
+ AF_INET = 2;
+
+ { Error constants. Returned by LastError method of THost, TNet}
+
+ NETDB_INTERNAL= -1; { see errno }
+ NETDB_SUCCESS = 0; { no problem }
+ HOST_NOT_FOUND= 1; { Authoritative Answer Host not found }
+ TRY_AGAIN = 2; { Non-Authoritive Host not found, or SERVERFAIL }
+ NO_RECOVERY = 3; { Non recoverable errors, FORMERR, REFUSED, NOTIMP }
+ NO_DATA = 4; { Valid name, no data record of requested type }
+ NO_ADDRESS = NO_DATA; { no address, look for MX record }
+
+
+Type
+
+ { THostEnt Object }
+ THostEnt = record
+ H_Name : pchar; { Official name }
+ H_Aliases : ppchar; { Null-terminated list of aliases}
+ H_Addrtype : longint; { Host address type }
+ H_length : longint; { Length of address }
+ H_Addr : ppchar; { null-terminated list of adresses }
+ end;
+ PHostEntry = ^THostEnt;
+
+ { TNetEnt object }
+ TNetEnt = record
+ N_Name : pchar; { Official name }
+ N_Aliases : ppchar; { Nill-terminated alias list }
+ N_AddrType : longint; { Net address type }
+ N_net : Cardinal; { Network number }
+ end;
+ PNetEntry = ^TNetEnt;
+
+ TServEnt = record
+ s_name : pchar; { Service name }
+ s_aliases : ppchar; { Null-terminated alias list }
+ s_port : longint; { Port number }
+ s_proto : pchar; { Protocol to use }
+ end;
+ PServEntry = ^TServEnt;
+
+{ C style calls, linked in from Libc }
+
+function gethostbyname(Name: PChar): PHostEntry; syscall SocketBase 35;
+function getnetbyname(Name: PChar): PNetEntry; syscall SocketBase 37;
+function getnetbyaddr(Net: Longint; NetType: Longint): PNetEntry; syscall SocketBase 38;
+function getservbyname(Name: PChar; Protocol: PChar): PServEntry; syscall SocketBase 39;
+function getservbyport(Port: LongInt; Protocol: PChar): PServEntry; syscall SocketBase 40;
+
+procedure setnetent(Stayopen: Longint); syscall SocketBase 86;
+procedure endnetent; syscall SocketBase 87;
+function getnetent: PNetEntry; syscall SocketBase 88;
+procedure setservent(StayOpen: longint); syscall SocketBase 92;
+procedure endservent; syscall SocketBase 93;
+function getservent: PServEntry; syscall SocketBase 94;
+
+function gethostbyaddr(Addr: PChar; Len: Longint; HType: Longint): PHostentry;
+var
+ addr1,
+ addr2: in_addr;
+ IP: PPLongInt;
+begin
+ Addr1 := in_addr(PHostAddr(Addr)^);
+ Addr2.s_addr := htonl(Addr1.s_addr);
+ gethostbyaddr := Pointer(bsd_GetHostByAddr(Pointer(@Addr2.s_addr), Len, HType));
+ if Assigned(gethostbyaddr) then
+ begin
+ ip := Pointer(gethostbyaddr^.H_Addr);
+ if Assigned(ip) then
+ begin
+ repeat
+ ip^^ := ntohl(ip^^);
+ Inc(IP);
+ until ip^ = nil;
+ end;
+ end;
+end;
+
+function GetDNSError: integer;
+begin
+ GetDNSError:=bsd_Errno;
+end;
+
+Function InitResolve : Boolean;
+begin
+ Result:=True;
+end;
+
+Function FinalResolve : Boolean;
+begin
+ Result:=True;
+end;
diff --git a/packages/fcl-net/src/cnetdb.pp b/packages/fcl-net/src/cnetdb.pp
index 6668e83ae1..5637e6af2a 100644
--- a/packages/fcl-net/src/cnetdb.pp
+++ b/packages/fcl-net/src/cnetdb.pp
@@ -194,7 +194,7 @@ type
{$if defined(LINUX) or defined(OPENBSD)}
{$define FIRST_ADDR_THEN_CANONNAME}
{$endif}
-{$if defined(FREEBSD) or defined(NETBSD)}
+{$if defined(FREEBSD) or defined(NETBSD) or defined(DRAGONFLY)}
{$define FIRST_CANONNAME_THEN_ADDR}
{$endif}
{$if not defined(FIRST_CANONNAME_THEN_ADDR) and not defined(FIRST_ADDR_THEN_CANONNAME)}
diff --git a/packages/fcl-net/src/fpsock.pp b/packages/fcl-net/src/fpsock.pp
index 3067398664..00e03f988a 100644
--- a/packages/fcl-net/src/fpsock.pp
+++ b/packages/fcl-net/src/fpsock.pp
@@ -512,9 +512,9 @@ var
SockAddr: TInetSockAddr;
begin
inherited DoConnect;
- SockAddr.Family := AF_INET;
- SockAddr.Port := ShortHostToNet(Port);
- SockAddr.Addr := Cardinal(HostAddr);
+ SockAddr.sin_Family := AF_INET;
+ SockAddr.sin_Port := ShortHostToNet(Port);
+ SockAddr.sin_Addr.s_addr := Cardinal(HostAddr);
if Sockets.FpConnect(Stream.Handle, @SockAddr, SizeOf(SockAddr))<>0 Then
if (SocketError <> sys_EINPROGRESS) and (SocketError <> 0) then
raise ESocketError.CreateFmt(SSocketConnectFailed,
@@ -558,9 +558,9 @@ begin
Sockets.fpSetSockOpt(Socket, SOL_SOCKET, SO_REUSEADDR,
@TrueValue, SizeOf(TrueValue));
FStream := TSocketStream.Create(Socket);
- Addr.Family := AF_INET;
- Addr.Port := ShortHostToNet(Port);
- Addr.Addr := 0;
+ Addr.sin_Family := AF_INET;
+ Addr.sin_Port := ShortHostToNet(Port);
+ Addr.sin_Addr.s_addr := 0;
if fpBind(Socket, @Addr, SizeOf(Addr))<>0 then
raise ESocketError.CreateFmt(SSocketBindingError,
[Port, StrError(SocketError)]);
diff --git a/packages/fcl-net/src/netdb.pp b/packages/fcl-net/src/netdb.pp
index a758205ad4..e770e5e05f 100644
--- a/packages/fcl-net/src/netdb.pp
+++ b/packages/fcl-net/src/netdb.pp
@@ -763,9 +763,9 @@ begin
exit;
With SA do
begin
- family:=AF_INET;
- port:=htons(DNSport);
- addr:=cardinal(DNSServers[Resolver]); // dnsservers already in net order
+ sin_family:=AF_INET;
+ sin_port:=htons(DNSport);
+ sin_addr.s_addr:=cardinal(DNSServers[Resolver]); // dnsservers already in net order
end;
fpsendto(sock,@qry,qrylen+12,0,@SA,SizeOf(SA));
// Wait for answer.
diff --git a/packages/fcl-net/src/ssockets.pp b/packages/fcl-net/src/ssockets.pp
index 599bca1f91..b566d7874a 100644
--- a/packages/fcl-net/src/ssockets.pp
+++ b/packages/fcl-net/src/ssockets.pp
@@ -474,7 +474,7 @@ var
begin
{$if defined(unix)}
fpShutdown(FSocket,SHUT_RDWR);
-{$elseif defined(mswindows)}
+{$elseif defined(mswindows) or defined(aros) or defined(amiga)}
CloseSocket(FSocket);
{$else}
{$WARNING Method Abort is not tested on this platform!}
diff --git a/packages/fcl-passrc/Makefile b/packages/fcl-passrc/Makefile
index 1b93d0eff3..617f61d76e 100644
--- a/packages/fcl-passrc/Makefile
+++ b/packages/fcl-passrc/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-passrc
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-passrc/Makefile.fpc b/packages/fcl-passrc/Makefile.fpc
index 9e32adbf9f..c74073e680 100644
--- a/packages/fcl-passrc/Makefile.fpc
+++ b/packages/fcl-passrc/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-passrc
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-passrc/Makefile.fpc.fpcmake b/packages/fcl-passrc/Makefile.fpc.fpcmake
index 4b51c20987..6f2c4cc651 100644
--- a/packages/fcl-passrc/Makefile.fpc.fpcmake
+++ b/packages/fcl-passrc/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fcl-passrc
-version=2.7.1
+version=3.1.1
[target]
units=pastree pscanner pparser paswrite
diff --git a/packages/fcl-passrc/fpmake.pp b/packages/fcl-passrc/fpmake.pp
index 7be493420e..52257f9b06 100644
--- a/packages/fcl-passrc/fpmake.pp
+++ b/packages/fcl-passrc/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('fcl-passrc');
+ P.ShortName:='fcls';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('fcl-base');
P.Author := 'Sebastian Guenther';
P.License := 'LGPL with modification, ';
diff --git a/packages/fcl-process/Makefile b/packages/fcl-process/Makefile
index 655c8df8e4..8caf064a34 100644
--- a/packages/fcl-process/Makefile
+++ b/packages/fcl-process/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-process
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -596,6 +602,12 @@ 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=
@@ -641,6 +653,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1062,6 +1079,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1149,6 +1169,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1203,6 +1226,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1366,7 +1392,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1396,17 +1422,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -1753,12 +1785,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -1774,15 +1804,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -1802,17 +1832,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-process/Makefile.fpc b/packages/fcl-process/Makefile.fpc
index ae681861ab..909dc549f7 100644
--- a/packages/fcl-process/Makefile.fpc
+++ b/packages/fcl-process/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-process
-version=2.7.1
+version=3.1.1
[require]
packages=rtl
@@ -67,15 +67,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -100,18 +100,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-process/Makefile.fpc.fpcmake b/packages/fcl-process/Makefile.fpc.fpcmake
index 2cd52617a6..ad6ecdd2f5 100644
--- a/packages/fcl-process/Makefile.fpc.fpcmake
+++ b/packages/fcl-process/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fcl-process
-version=2.7.1
+version=3.1.1
[target]
units=pipes process
diff --git a/packages/fcl-process/fpmake.pp b/packages/fcl-process/fpmake.pp
index 3c91d60dce..f64cbef12d 100644
--- a/packages/fcl-process/fpmake.pp
+++ b/packages/fcl-process/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('fcl-process');
+ P.ShortName:='fclp';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Michael van Canneyt and Free Pascal Development team';
P.License := 'LGPL with modification';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/fcl-process/src/os2/simpleipc.inc b/packages/fcl-process/src/os2/simpleipc.inc
index fc7d857ad8..92ca900012 100644
--- a/packages/fcl-process/src/os2/simpleipc.inc
+++ b/packages/fcl-process/src/os2/simpleipc.inc
@@ -171,6 +171,7 @@ begin
Owner.FMsgType := Hdr.MsgType;
if Hdr.MsgLen > 0 then
begin
+ Owner.FMsgData.Size:=0;
Owner.FMsgData.Seek (0, soFromBeginning);
Owner.FMsgData.CopyFrom (FStream, Hdr.MsgLen);
end
diff --git a/packages/fcl-process/src/pipes.pp b/packages/fcl-process/src/pipes.pp
index a22f1b4632..86c661993c 100644
--- a/packages/fcl-process/src/pipes.pp
+++ b/packages/fcl-process/src/pipes.pp
@@ -120,6 +120,7 @@ end;
function TOutputPipeStream.Seek(const Offset: int64; Origin: TSeekOrigin): int64;
begin
+ Result:=0; { to silence warning mostly }
InvalidSeek;
end;
diff --git a/packages/fcl-process/src/process.pp b/packages/fcl-process/src/process.pp
index f81206fafe..4443403ce1 100644
--- a/packages/fcl-process/src/process.pp
+++ b/packages/fcl-process/src/process.pp
@@ -173,13 +173,14 @@ Var
Function DetectXTerm : String;
{$endif unix}
-function RunCommandIndir(const curdir:string;const exename:string;const commands:array of string;var outputstring:string;var exitstatus:integer):integer;
-function RunCommandIndir(const curdir:string;const exename:string;const commands:array of string;var outputstring:string):boolean;
+function RunCommandIndir(const curdir:string;const exename:string;const commands:array of string;var outputstring:string;var exitstatus:integer):integer;
+function RunCommandIndir(const curdir:string;const exename:string;const commands:array of string;var outputstring:string):boolean;
function RunCommandInDir(const curdir,cmdline:string;var outputstring:string):boolean; deprecated;
-function RunCommand(const exename:string;const commands:array of string;var outputstring:string):boolean;
+function RunCommand(const exename:string;const commands:array of string;var outputstring:string):boolean;
function RunCommand(const cmdline:string;var outputstring:string):boolean; deprecated;
+
implementation
{$i process.inc}
@@ -321,7 +322,7 @@ end;
procedure TProcess.Loaded;
begin
inherited Loaded;
- If (csDesigning in ComponentState) and (CommandLine<>'') then
+ If (csDesigning in ComponentState) and (FCommandLine<>'') then
ConvertCommandLine;
end;
@@ -460,7 +461,7 @@ end;
procedure TProcess.ConvertCommandLine;
begin
FParameters.Clear;
- CommandToList(CommandLine,FParameters);
+ CommandToList(FCommandLine,FParameters);
If FParameters.Count>0 then
begin
Executable:=FParameters[0];
@@ -468,40 +469,95 @@ begin
end;
end;
-Const
+Const
READ_BYTES = 65536; // not too small to avoid fragmentation when reading large files.
// helperfunction that does the bulk of the work.
-function internalRuncommand(p:TProcess;var outputstring:string;var exitstatus:integer):integer;
+// We need to also collect stderr output in order to avoid
+// lock out if the stderr pipe is full.
+function internalRuncommand(p:TProcess;var outputstring:string;
+ var stderrstring:string; var exitstatus:integer):integer;
var
- numbytes,bytesread : integer;
+ numbytes,bytesread,available : integer;
+ outputlength, stderrlength : integer;
+ stderrnumbytes,stderrbytesread : integer;
begin
result:=-1;
try
try
p.Options := [poUsePipes];
bytesread:=0;
+ outputlength:=0;
+ stderrbytesread:=0;
+ stderrlength:=0;
p.Execute;
while p.Running do
- begin
- Setlength(outputstring,BytesRead + READ_BYTES);
- NumBytes := p.Output.Read(outputstring[1+bytesread], READ_BYTES);
- if NumBytes > 0 then
- Inc(BytesRead, NumBytes)
- else
- Sleep(100);
+ begin
+ // Only call ReadFromStream if Data from corresponding stream
+ // is already available, otherwise, on linux, the read call
+ // is blocking, and thus it is not possible to be sure to handle
+ // big data amounts bboth on output and stderr pipes. PM.
+ available:=P.Output.NumBytesAvailable;
+ if available > 0 then
+ begin
+ if (BytesRead + available > outputlength) then
+ begin
+ outputlength:=BytesRead + READ_BYTES;
+ Setlength(outputstring,outputlength);
+ end;
+ NumBytes := p.Output.Read(outputstring[1+bytesread], available);
+ if NumBytes > 0 then
+ Inc(BytesRead, NumBytes);
+ end
+ // The check for assigned(P.stderr) is mainly here so that
+ // if we use poStderrToOutput in p.Options, we do not access invalid memory.
+ else if assigned(P.stderr) and (P.StdErr.NumBytesAvailable > 0) then
+ begin
+ available:=P.StdErr.NumBytesAvailable;
+ if (StderrBytesRead + available > stderrlength) then
+ begin
+ stderrlength:=StderrBytesRead + READ_BYTES;
+ Setlength(stderrstring,stderrlength);
+ end;
+ StderrNumBytes := p.StdErr.Read(stderrstring[1+StderrBytesRead], available);
+ if StderrNumBytes > 0 then
+ Inc(StderrBytesRead, StderrNumBytes);
+ end
+ else
+ Sleep(100);
+ end;
+ // Get left output after end of execution
+ available:=P.Output.NumBytesAvailable;
+ while available > 0 do
+ begin
+ if (BytesRead + available > outputlength) then
+ begin
+ outputlength:=BytesRead + READ_BYTES;
+ Setlength(outputstring,outputlength);
+ end;
+ NumBytes := p.Output.Read(outputstring[1+bytesread], available);
+ if NumBytes > 0 then
+ Inc(BytesRead, NumBytes);
+ available:=P.Output.NumBytesAvailable;
end;
- repeat
- Setlength(outputstring,BytesRead + READ_BYTES);
- NumBytes := p.Output.Read(outputstring[1+bytesread], READ_BYTES);
- if NumBytes > 0 then
- Inc(BytesRead, NumBytes);
- until NumBytes <= 0;
setlength(outputstring,BytesRead);
- exitstatus:=p.exitstatus;
+ while assigned(P.stderr) and (P.Stderr.NumBytesAvailable > 0) do
+ begin
+ available:=P.Stderr.NumBytesAvailable;
+ if (StderrBytesRead + available > stderrlength) then
+ begin
+ stderrlength:=StderrBytesRead + READ_BYTES;
+ Setlength(stderrstring,stderrlength);
+ end;
+ StderrNumBytes := p.StdErr.Read(stderrstring[1+StderrBytesRead], available);
+ if StderrNumBytes > 0 then
+ Inc(StderrBytesRead, StderrNumBytes);
+ end;
+ setlength(stderrstring,StderrBytesRead);
+ exitstatus:=p.exitstatus;
result:=0; // we came to here, document that.
except
- on e : Exception do
+ on e : Exception do
begin
result:=1;
setlength(outputstring,BytesRead);
@@ -512,74 +568,81 @@ begin
end;
end;
-function RunCommandIndir(const curdir:string;const exename:string;const commands:array of string;var outputstring:string;var exitstatus:integer):integer;
+{ Functions without StderrString }
+
+function RunCommandIndir(const curdir:string;const exename:string;const commands:array of string;var outputstring:string;var exitstatus:integer):integer;
Var
p : TProcess;
- i : integer;
+ i : integer;
+ ErrorString : String;
begin
p:=TProcess.create(nil);
- p.Executable:=exename;
+ p.Executable:=exename;
if curdir<>'' then
p.CurrentDirectory:=curdir;
- if high(commands)>=0 then
+ if high(commands)>=0 then
for i:=low(commands) to high(commands) do
p.Parameters.add(commands[i]);
- result:=internalruncommand(p,outputstring,exitstatus);
+ result:=internalruncommand(p,outputstring,errorstring,exitstatus);
end;
function RunCommandInDir(const curdir,cmdline:string;var outputstring:string):boolean; deprecated;
Var
p : TProcess;
- exitstatus : integer;
+ exitstatus : integer;
+ ErrorString : String;
begin
p:=TProcess.create(nil);
- p.commandline:=cmdline;
+ p.setcommandline(cmdline);
if curdir<>'' then
p.CurrentDirectory:=curdir;
- result:=internalruncommand(p,outputstring,exitstatus)=0;
+ result:=internalruncommand(p,outputstring,errorstring,exitstatus)=0;
if exitstatus<>0 then result:=false;
end;
-function RunCommandIndir(const curdir:string;const exename:string;const commands:array of string;var outputstring:string):boolean;
+function RunCommandIndir(const curdir:string;const exename:string;const commands:array of string;var outputstring:string):boolean;
Var
p : TProcess;
i,
- exitstatus : integer;
+ exitstatus : integer;
+ ErrorString : String;
begin
p:=TProcess.create(nil);
- p.Executable:=exename;
+ p.Executable:=exename;
if curdir<>'' then
p.CurrentDirectory:=curdir;
- if high(commands)>=0 then
+ if high(commands)>=0 then
for i:=low(commands) to high(commands) do
p.Parameters.add(commands[i]);
- result:=internalruncommand(p,outputstring,exitstatus)=0;
+ result:=internalruncommand(p,outputstring,errorstring,exitstatus)=0;
if exitstatus<>0 then result:=false;
end;
function RunCommand(const cmdline:string;var outputstring:string):boolean; deprecated;
Var
p : TProcess;
- exitstatus : integer;
+ exitstatus : integer;
+ ErrorString : String;
begin
p:=TProcess.create(nil);
- p.commandline:=cmdline;
- result:=internalruncommand(p,outputstring,exitstatus)=0;
+ p.setcommandline(cmdline);
+ result:=internalruncommand(p,outputstring,errorstring,exitstatus)=0;
if exitstatus<>0 then result:=false;
end;
-function RunCommand(const exename:string;const commands:array of string;var outputstring:string):boolean;
+function RunCommand(const exename:string;const commands:array of string;var outputstring:string):boolean;
Var
p : TProcess;
i,
- exitstatus : integer;
+ exitstatus : integer;
+ ErrorString : String;
begin
p:=TProcess.create(nil);
- p.Executable:=exename;
- if high(commands)>=0 then
+ p.Executable:=exename;
+ if high(commands)>=0 then
for i:=low(commands) to high(commands) do
p.Parameters.add(commands[i]);
- result:=internalruncommand(p,outputstring,exitstatus)=0;
+ result:=internalruncommand(p,outputstring,errorstring,exitstatus)=0;
if exitstatus<>0 then result:=false;
end;
diff --git a/packages/fcl-process/src/simpleipc.pp b/packages/fcl-process/src/simpleipc.pp
index 059b268ba8..693a4b28d1 100644
--- a/packages/fcl-process/src/simpleipc.pp
+++ b/packages/fcl-process/src/simpleipc.pp
@@ -351,7 +351,6 @@ begin
CheckActive;
FBusy:=True;
Try
- FMsgData.Size:=0;
FIPCComm.ReadMessage;
If Assigned(FOnMessage) then
FOnMessage(Self);
diff --git a/packages/fcl-process/src/unix/process.inc b/packages/fcl-process/src/unix/process.inc
index 6a0f1f7414..6d66e43016 100644
--- a/packages/fcl-process/src/unix/process.inc
+++ b/packages/fcl-process/src/unix/process.inc
@@ -351,8 +351,16 @@ begin
child borrows the execution thread of the parent
unit it either exits or execs -> potential
deadlock depending on how quickly the SIGSTOP
- signal is delivered }
- if not(poRunSuspended in Options) then
+ signal is delivered
+
+ We also can't use vfork in case we have to change the working
+ directory, use pipes or not use a console since calling anything but
+ exec* or _exit after vfork is unsupported. For the same reason, also
+ don't use vfork in case there is a forkevent (since we don't know
+ what that one will call) }
+ if (([poRunSuspended,PoUsePipes,poNoConsole] * Options) = []) and
+ (FCurrentDirectory='') and
+ not assigned(FForkEvent) then
Pid:=fpvfork
else
Pid:=fpfork;
@@ -373,7 +381,17 @@ begin
begin
{ We're in the child }
if (FCurrentDirectory<>'') then
- ChDir(FCurrentDirectory);
+ begin
+{$push}{$i-}
+ ChDir(FCurrentDirectory);
+ { exit if the requested working directory does not exist (can
+ use DirectoryExists, that would not be atomic; cannot change
+ before forking because that would also change the CWD of the
+ parent, which could influence other threads }
+ if ioresult<>0 then
+ fpexit(127);
+{$pop}
+ end;
if PoUsePipes in Options then
begin
FileClose(HI[peWrite]);
diff --git a/packages/fcl-process/src/unix/simpleipc.inc b/packages/fcl-process/src/unix/simpleipc.inc
index 6fb14d4a03..5f65feb1c6 100644
--- a/packages/fcl-process/src/unix/simpleipc.inc
+++ b/packages/fcl-process/src/unix/simpleipc.inc
@@ -261,6 +261,7 @@ begin
M:=MsgData;
if count > 0 then
begin
+ M.Size:=0;
M.Seek(0,soFrombeginning);
M.CopyFrom(FStream,Count);
end
diff --git a/packages/fcl-process/src/win/process.inc b/packages/fcl-process/src/win/process.inc
index f0ac7c1955..37d5e7a970 100644
--- a/packages/fcl-process/src/win/process.inc
+++ b/packages/fcl-process/src/win/process.inc
@@ -116,7 +116,7 @@ begin
TA.nLength := SizeOf(TA);
end;
-Procedure InitStartupInfo(P : TProcess; Var SI : STARTUPINFO);
+Procedure InitStartupInfo(P : TProcess; Var SI : STARTUPINFOA);
Const
SWC : Array [TShowWindowOptions] of Cardinal =
@@ -179,7 +179,7 @@ begin
end;
-Procedure CreatePipes(Var HI,HO,HE : Thandle; Var SI : TStartupInfo; CE : Boolean; APipeBufferSize : Cardinal);
+Procedure CreatePipes(Var HI,HO,HE : Thandle; Var SI : TStartupInfoA; CE : Boolean; APipeBufferSize : Cardinal);
begin
CreatePipeHandles(SI.hStdInput,HI, APipeBufferSize);
@@ -224,7 +224,7 @@ Var
FProcessAttributes : TSecurityAttributes;
FThreadAttributes : TSecurityAttributes;
FProcessInformation : TProcessInformation;
- FStartupInfo : STARTUPINFO;
+ FStartupInfo : STARTUPINFOA;
HI,HO,HE : THandle;
Cmd : String;
diff --git a/packages/fcl-process/src/win/simpleipc.inc b/packages/fcl-process/src/win/simpleipc.inc
index 308fe3a7ef..3bfcdba8ef 100644
--- a/packages/fcl-process/src/win/simpleipc.inc
+++ b/packages/fcl-process/src/win/simpleipc.inc
@@ -169,6 +169,7 @@ Var
begin
CDS:=PCopyDataStruct(Msg.Lparam);
Owner.FMsgType:=CDS^.dwData;
+ Owner.FMsgData.Size:=0;
Owner.FMsgData.Seek(0,soFrombeginning);
Owner.FMsgData.WriteBuffer(CDS^.lpData^,CDS^.cbData);
end;
@@ -257,7 +258,7 @@ begin
CDS.dwData:=MsgType;
CDS.lpData:=Data.Memory;
CDS.cbData:=Data.Size;
- Windows.SendMessage(FHWnd,WM_COPYDATA,0,Integer(@CDS));
+ Windows.SendMessage(FHWnd,WM_COPYDATA,0,PtrInt(@CDS));
Finally
FreeAndNil(FMemStr);
end;
diff --git a/packages/fcl-process/src/wince/simpleipc.inc b/packages/fcl-process/src/wince/simpleipc.inc
index c4ec239ea0..2e8521a916 100644
--- a/packages/fcl-process/src/wince/simpleipc.inc
+++ b/packages/fcl-process/src/wince/simpleipc.inc
@@ -168,6 +168,7 @@ Var
begin
CDS:=PCopyDataStruct(Msg.Lparam);
+ Owner.FMsgData.Size:=0;
Owner.FMsgData.Seek(0,soFrombeginning);
Owner.FMsgData.WriteBuffer(CDS^.lpData^,CDS^.cbData);
end;
diff --git a/packages/fcl-registry/Makefile b/packages/fcl-registry/Makefile
index 5db618a109..4cff43e7b3 100644
--- a/packages/fcl-registry/Makefile
+++ b/packages/fcl-registry/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-registry
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-registry/Makefile.fpc b/packages/fcl-registry/Makefile.fpc
index a79d33c889..e8db4117bd 100644
--- a/packages/fcl-registry/Makefile.fpc
+++ b/packages/fcl-registry/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-registry
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-registry/Makefile.fpc.fpcmake b/packages/fcl-registry/Makefile.fpc.fpcmake
index 05f9e90bbf..54bfc55dab 100644
--- a/packages/fcl-registry/Makefile.fpc.fpcmake
+++ b/packages/fcl-registry/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fcl-registry
-version=2.7.1
+version=3.1.1
[target]
units=xmlreg registry
diff --git a/packages/fcl-registry/fpmake.pp b/packages/fcl-registry/fpmake.pp
index 1c0694acc9..5be737b13e 100644
--- a/packages/fcl-registry/fpmake.pp
+++ b/packages/fcl-registry/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('fcl-registry');
+ P.ShortName:='fclr';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('fcl-base');
P.Dependencies.Add('fcl-xml');
diff --git a/packages/fcl-registry/src/registry.pp b/packages/fcl-registry/src/registry.pp
index 5791d9c15c..9347e669d5 100644
--- a/packages/fcl-registry/src/registry.pp
+++ b/packages/fcl-registry/src/registry.pp
@@ -373,6 +373,7 @@ function TRegistry.ReadString(const Name: string): string;
Var
Info : TRegDataInfo;
+ ReadDataSize: Integer;
begin
GetDataInfo(Name,Info);
@@ -381,11 +382,19 @@ begin
If Not (Info.RegData in [rdString,rdExpandString]) then
Raise ERegistryException.CreateFmt(SInvalidRegType, [Name]);
SetLength(Result,Info.DataSize);
- If StringSizeIncludesNull then
- SetLength(Result, Info.DataSize-1)
+ ReadDataSize := GetData(Name,PChar(Result),Info.DataSize,Info.RegData);
+ if ReadDataSize > 0 then
+ begin
+ // If the data has the REG_SZ, REG_MULTI_SZ or REG_EXPAND_SZ type,
+ // the size includes any terminating null character or characters
+ // unless the data was stored without them! (RegQueryValueEx @ MSDN)
+ if StringSizeIncludesNull then
+ if Result[ReadDataSize] = #0 then
+ Dec(ReadDataSize);
+ SetLength(Result, ReadDataSize);
+ end
else
- SetLength(Result, Info.DataSize);
- GetData(Name,PChar(Result),Info.DataSize,Info.RegData);
+ Result := '';
end
else
result:='';
diff --git a/packages/fcl-registry/tests/Makefile b/packages/fcl-registry/tests/Makefile
index 7c8d604f02..b590d5b34b 100644
--- a/packages/fcl-registry/tests/Makefile
+++ b/packages/fcl-registry/tests/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_EXAMPLES+=regtestframework
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_EXAMPLES+=regtestframework
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_EXAMPLES+=regtestframework
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_EXAMPLES+=regtestframework
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_EXAMPLES+=regtestframework
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_EXAMPLES+=regtestframework
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_EXAMPLES+=regtestframework
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_EXAMPLES+=regtestframework
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_EXAMPLES+=regtestframework
endif
@@ -786,6 +801,12 @@ 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=
@@ -831,6 +852,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1252,6 +1278,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1339,6 +1368,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1393,6 +1425,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1556,7 +1591,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1586,17 +1621,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
diff --git a/packages/fcl-res/Makefile b/packages/fcl-res/Makefile
index 97d82d4fe8..1f9dcc3cdb 100644
--- a/packages/fcl-res/Makefile
+++ b/packages/fcl-res/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-res
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-res/Makefile.fpc b/packages/fcl-res/Makefile.fpc
index c876be0e35..83bcf6450c 100644
--- a/packages/fcl-res/Makefile.fpc
+++ b/packages/fcl-res/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-res
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-res/Makefile.fpc.fpcmake b/packages/fcl-res/Makefile.fpc.fpcmake
index 8abe98caf4..6d46099358 100644
--- a/packages/fcl-res/Makefile.fpc.fpcmake
+++ b/packages/fcl-res/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fcl-res
-version=2.7.1
+version=3.1.1
[target]
units=acceleratorsresource bitmapresource coffconsts coffreader cofftypes \
diff --git a/packages/fcl-res/fpmake.pp b/packages/fcl-res/fpmake.pp
index c9cde6e79a..3f90ec2fd7 100644
--- a/packages/fcl-res/fpmake.pp
+++ b/packages/fcl-res/fpmake.pp
@@ -13,17 +13,18 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('fcl-res');
+ P.ShortName:='fcle';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Giulio Bernardi';
P.License := 'LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
P.Email := '';
P.Description := 'Resource handling of Free Component Libraries (FCL), FPC''s OOP library.';
P.NeedLibC:= false;
- P.OSes:=AllOSes-[embedded];
+ P.OSes:=AllOSes-[embedded,msdos];
P.SourcePath.Add('src');
P.IncludePath.Add('src');
diff --git a/packages/fcl-sdo/Makefile b/packages/fcl-sdo/Makefile
index d9a51c27c3..8e8a30fd9e 100644
--- a/packages/fcl-sdo/Makefile
+++ b/packages/fcl-sdo/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-sdo
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,13 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipinstall: fpc_zipinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2311,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2339,15 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
diff --git a/packages/fcl-sdo/Makefile.fpc b/packages/fcl-sdo/Makefile.fpc
index 07cefe05d3..8b1dd61dcb 100644
--- a/packages/fcl-sdo/Makefile.fpc
+++ b/packages/fcl-sdo/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-sdo
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,16 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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/packages/fcl-sdo/fpmake.pp b/packages/fcl-sdo/fpmake.pp
index 0f3e791381..1e460c4241 100644
--- a/packages/fcl-sdo/fpmake.pp
+++ b/packages/fcl-sdo/fpmake.pp
@@ -12,13 +12,14 @@ begin
begin
{$endif ALLPACKAGES}
P:=AddPackage('fcl-sdo');
+ P.ShortName:='fcsd';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
P.Dependencies.Add('fcl-base');
P.Dependencies.Add('fcl-xml');
P.Dependencies.Add('fcl-db');
- P.Version:='1.0';
+ P.Version:='3.1.1';
P.Author := 'Inoussa Ouedraogo';
P.License := 'LGPL with modification';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/fcl-sound/Makefile b/packages/fcl-sound/Makefile
index bb9195236f..fe14e53aa6 100644
--- a/packages/fcl-sound/Makefile
+++ b/packages/fcl-sound/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014/03/26]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -326,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-sound
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -578,6 +578,12 @@ 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=
@@ -623,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1159,6 +1170,14 @@ 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
@@ -1391,6 +1410,14 @@ 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
@@ -1916,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1946,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2303,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2324,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2352,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-sound/Makefile.fpc b/packages/fcl-sound/Makefile.fpc
index b5b3c8a503..f4a6566af2 100644
--- a/packages/fcl-sound/Makefile.fpc
+++ b/packages/fcl-sound/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-sound
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-sound/fpmake.pp b/packages/fcl-sound/fpmake.pp
index 3df7327ac7..561dbced17 100644
--- a/packages/fcl-sound/fpmake.pp
+++ b/packages/fcl-sound/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('fcl-sound');
+ P.ShortName:='fsnd';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('fcl-base');
P.Author := 'Abou Al Montacir of the Free Pascal development team';
diff --git a/packages/fcl-stl/Makefile b/packages/fcl-stl/Makefile
index 5712b0dcdf..480ec53e77 100644
--- a/packages/fcl-stl/Makefile
+++ b/packages/fcl-stl/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-stl
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-stl/Makefile.fpc b/packages/fcl-stl/Makefile.fpc
index f1649729f7..f331f5ff99 100644
--- a/packages/fcl-stl/Makefile.fpc
+++ b/packages/fcl-stl/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-stl
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-stl/Makefile.fpc.fpcmake b/packages/fcl-stl/Makefile.fpc.fpcmake
index d882f81929..e188d09643 100644
--- a/packages/fcl-stl/Makefile.fpc.fpcmake
+++ b/packages/fcl-stl/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fcl-stl
-version=2.7.1
+version=3.1.1
[target]
units=garrayutils gdeque gmap gpriorityqueue gqueue gset gstack gutil gvector ghashset ghashmap
diff --git a/packages/fcl-stl/fpmake.pp b/packages/fcl-stl/fpmake.pp
index e87ba5c83f..49c6989afd 100644
--- a/packages/fcl-stl/fpmake.pp
+++ b/packages/fcl-stl/fpmake.pp
@@ -13,16 +13,17 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('fcl-stl');
+ P.ShortName:='fcst';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Vlado Boza';
P.License := 'LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
P.Email := '';
- P.Description := 'Asynchonous event management of Free Component Libraries (FCL), FPC''s OOP library.';
+ P.Description := 'Generic container library of Free Component Libraries (FCL), FPC''s OOP library.';
P.NeedLibC:= false;
P.OSes:=AllOSes-[embedded];
diff --git a/packages/fcl-web/Makefile b/packages/fcl-web/Makefile
index b98db823a3..ca9f8868f7 100644
--- a/packages/fcl-web/Makefile
+++ b/packages/fcl-web/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-web
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-web/Makefile.fpc b/packages/fcl-web/Makefile.fpc
index d99ba42a6e..7119ca5de5 100644
--- a/packages/fcl-web/Makefile.fpc
+++ b/packages/fcl-web/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-web
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-web/Makefile.fpc.fpcmake b/packages/fcl-web/Makefile.fpc.fpcmake
index 41ef699550..aedc207227 100644
--- a/packages/fcl-web/Makefile.fpc.fpcmake
+++ b/packages/fcl-web/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fcl-web
-version=2.5.1
+version=3.1.1
[target]
dirs=src/base src/webdata src/jsonrpc
diff --git a/packages/fcl-web/fpmake.pp b/packages/fcl-web/fpmake.pp
index f87206a40f..7ce5a0ee83 100644
--- a/packages/fcl-web/fpmake.pp
+++ b/packages/fcl-web/fpmake.pp
@@ -13,11 +13,12 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('fcl-web');
+ P.ShortName:='fclw';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
- P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,win32,win64,wince,aix];
+ P.Version:='3.1.1';
+ P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,win32,win64,wince,aix,amiga,aros,dragonfly];
P.Dependencies.Add('fcl-base');
P.Dependencies.Add('fcl-db');
P.Dependencies.Add('fcl-xml');
@@ -25,8 +26,8 @@ begin
P.Dependencies.Add('fcl-net');
P.Dependencies.Add('fcl-process');
P.Dependencies.Add('fastcgi');
- P.Dependencies.Add('httpd22');
- P.Dependencies.Add('httpd24');
+ P.Dependencies.Add('httpd22', AllOses - [amiga,aros]);
+ P.Dependencies.Add('httpd24', AllOses - [amiga,aros]);
// (Temporary) indirect dependencies, not detected by fpcmake:
P.Dependencies.Add('univint',[MacOSX,iphonesim]);
@@ -115,24 +116,26 @@ begin
end;
with P.Targets.AddUnit('fpfcgi.pp') do
begin
- OSes:=AllOses-[wince,darwin,iphonesim,aix];
+ OSes:=AllOses-[wince,darwin,iphonesim,aix,amiga,aros];
Dependencies.AddUnit('custfcgi');
end;
with P.Targets.AddUnit('custfcgi.pp') do
begin
- OSes:=AllOses-[wince,darwin,iphonesim,aix];
+ OSes:=AllOses-[wince,darwin,iphonesim,aix,amiga,aros];
Dependencies.AddUnit('httpdefs');
Dependencies.AddUnit('custweb');
ResourceStrings:=true;
end;
with P.Targets.AddUnit('fpapache.pp') do
begin
+ OSes:=AllOses-[amiga,aros];
Dependencies.AddUnit('fphttp');
Dependencies.AddUnit('custweb');
ResourceStrings:=true;
end;
with P.Targets.AddUnit('fpapache24.pp') do
begin
+ OSes:=AllOses-[amiga,aros];
Dependencies.AddUnit('fphttp');
Dependencies.AddUnit('custweb');
ResourceStrings:=true;
diff --git a/packages/fcl-web/src/base/Makefile b/packages/fcl-web/src/base/Makefile
index 3d857f1fc6..d10aa46629 100644
--- a/packages/fcl-web/src/base/Makefile
+++ b/packages/fcl-web/src/base/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-web
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-web/Makefile.fpc,$(PACKAGESDIR))))))
ifeq ($(FULL_TARGET),i386-linux)
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 custfcgi fpfcgi
@@ -391,6 +397,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
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-aros)
+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),m68k-linux)
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 custfcgi fpfcgi
endif
@@ -478,6 +487,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-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),x86_64-dragonfly)
+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),arm-linux)
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 custfcgi fpfcgi
endif
@@ -532,6 +544,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
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 custfcgi fpfcgi
endif
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
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
@@ -613,6 +628,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=fpcgi fphtml fpweb websession cgiapp fphttpserver fphttpclient
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=fpcgi fphtml fpweb websession cgiapp fphttpserver fphttpclient
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=fpcgi fphtml fpweb websession cgiapp fphttpserver fphttpclient
endif
@@ -700,6 +718,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=fpcgi fphtml fpweb websession cgiapp fphttpserver fphttpclient
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=fpcgi fphtml fpweb websession cgiapp fphttpserver fphttpclient
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=fpcgi fphtml fpweb websession cgiapp fphttpserver fphttpclient
endif
@@ -754,6 +775,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_RSTS+=fpcgi fphtml fpweb websession cgiapp fphttpserver fphttpclient
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_RSTS+=fpcgi fphtml fpweb websession cgiapp fphttpserver fphttpclient
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_RSTS+=fpcgi fphtml fpweb websession cgiapp fphttpserver fphttpclient
endif
@@ -836,6 +860,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -923,6 +950,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -977,6 +1007,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2h
endif
@@ -1231,6 +1264,12 @@ 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=
@@ -1276,6 +1315,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1975,6 +2019,21 @@ REQUIRE_PACKAGES_FASTCGI=1
REQUIRE_PACKAGES_FCL-NET=1
REQUIRE_PACKAGES_HTTPD24=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
+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),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2412,6 +2471,21 @@ REQUIRE_PACKAGES_FASTCGI=1
REQUIRE_PACKAGES_FCL-NET=1
REQUIRE_PACKAGES_HTTPD24=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
+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),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2684,6 +2758,21 @@ REQUIRE_PACKAGES_FASTCGI=1
REQUIRE_PACKAGES_FCL-NET=1
REQUIRE_PACKAGES_HTTPD24=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
+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),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -3389,7 +3478,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -3419,17 +3508,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-web/src/base/Makefile.fpc b/packages/fcl-web/src/base/Makefile.fpc
index 19e0d0f7bc..6780be1d62 100644
--- a/packages/fcl-web/src/base/Makefile.fpc
+++ b/packages/fcl-web/src/base/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
main=fcl-web
-version=2.7.1
+version=3.1.1
[target]
units=httpdefs fphttp custweb custcgi fpcgi fphtml iniwebsession websession fpweb \
diff --git a/packages/fcl-web/src/base/fphttpclient.pp b/packages/fcl-web/src/base/fphttpclient.pp
index 7c2bcf2728..28ba5efa90 100644
--- a/packages/fcl-web/src/base/fphttpclient.pp
+++ b/packages/fcl-web/src/base/fphttpclient.pp
@@ -275,8 +275,9 @@ Function EncodeURLElement(S : String) : String;
Function DecodeURLElement(Const S : String) : String;
implementation
-
+{$if not defined(aros) and not defined(amiga)}
uses sslsockets;
+{$endif}
resourcestring
SErrInvalidProtocol = 'Invalid protocol : "%s"';
@@ -425,10 +426,12 @@ begin
Result:=Nil;
if Assigned(FonGetSocketHandler) then
FOnGetSocketHandler(Self,UseSSL,Result);
- if (Result=Nil) then
+ if (Result=Nil) then
+ {$if not defined(AROS) and not defined(Amiga)}
If UseSSL then
Result:=TSSLSocketHandler.Create
else
+ {$endif}
Result:=TSocketHandler.Create;
end;
diff --git a/packages/fcl-web/src/jsonrpc/Makefile b/packages/fcl-web/src/jsonrpc/Makefile
index 39be269028..de3f4d9da9 100644
--- a/packages/fcl-web/src/jsonrpc/Makefile
+++ b/packages/fcl-web/src/jsonrpc/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-web
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-web/Makefile.fpc,$(PACKAGESDIR))))))
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_UNITS+=fpjsonrpc webjsonrpc fpextdirect
@@ -391,6 +397,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=fpjsonrpc webjsonrpc fpextdirect
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=fpjsonrpc webjsonrpc fpextdirect
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=fpjsonrpc webjsonrpc fpextdirect
endif
@@ -478,6 +487,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=fpjsonrpc webjsonrpc fpextdirect
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=fpjsonrpc webjsonrpc fpextdirect
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=fpjsonrpc webjsonrpc fpextdirect
endif
@@ -532,6 +544,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=fpjsonrpc webjsonrpc fpextdirect
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=fpjsonrpc webjsonrpc fpextdirect
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=fpjsonrpc webjsonrpc fpextdirect
endif
@@ -614,6 +629,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -701,6 +719,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -755,6 +776,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2h
endif
@@ -1009,6 +1033,12 @@ 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=
@@ -1054,6 +1084,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1659,6 +1694,17 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-JSON=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1978,6 +2024,17 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-JSON=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2176,6 +2233,17 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-JSON=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2675,7 +2743,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2705,17 +2773,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-web/src/jsonrpc/Makefile.fpc b/packages/fcl-web/src/jsonrpc/Makefile.fpc
index d7fde3d825..e464e5dd08 100644
--- a/packages/fcl-web/src/jsonrpc/Makefile.fpc
+++ b/packages/fcl-web/src/jsonrpc/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
main=fcl-web
-version=2.7.1
+version=3.1.1
[target]
units=fpjsonrpc webjsonrpc fpextdirect
diff --git a/packages/fcl-web/src/jsonrpc/fpdispextdirect.pp b/packages/fcl-web/src/jsonrpc/fpdispextdirect.pp
index 82d8efac83..9713edfb2d 100644
--- a/packages/fcl-web/src/jsonrpc/fpdispextdirect.pp
+++ b/packages/fcl-web/src/jsonrpc/fpdispextdirect.pp
@@ -91,6 +91,11 @@ Type
implementation
+{$ifdef EXTDEBUG}
+ uses
+ dbugintf;
+{$endif}
+
{ TCustomExtDirectDispatcher }
Const
DefaultNameSpace = 'FPWeb';
@@ -287,10 +292,5 @@ begin
end;
end;
-
-{$ifdef extdebug}
-uses dbugintf;
-{$endif}
-
end.
diff --git a/packages/fcl-web/src/webdata/Makefile b/packages/fcl-web/src/webdata/Makefile
index a5bcce5cfb..230ba7fc2a 100644
--- a/packages/fcl-web/src/webdata/Makefile
+++ b/packages/fcl-web/src/webdata/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-web
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
PACKAGEDIR_MAIN:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-web/Makefile.fpc,$(PACKAGESDIR))))))
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_UNITS+=fpwebdata sqldbwebdata fpextjs extjsjson extjsxml
@@ -391,6 +397,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=fpwebdata sqldbwebdata fpextjs extjsjson extjsxml
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=fpwebdata sqldbwebdata fpextjs extjsjson extjsxml
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=fpwebdata sqldbwebdata fpextjs extjsjson extjsxml
endif
@@ -478,6 +487,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=fpwebdata sqldbwebdata fpextjs extjsjson extjsxml
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=fpwebdata sqldbwebdata fpextjs extjsjson extjsxml
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=fpwebdata sqldbwebdata fpextjs extjsjson extjsxml
endif
@@ -532,6 +544,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=fpwebdata sqldbwebdata fpextjs extjsjson extjsxml
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=fpwebdata sqldbwebdata fpextjs extjsjson extjsxml
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=fpwebdata sqldbwebdata fpextjs extjsjson extjsxml
endif
@@ -614,6 +629,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -701,6 +719,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -755,6 +776,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2h
endif
@@ -1009,6 +1033,12 @@ 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=
@@ -1054,6 +1084,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1682,6 +1717,18 @@ REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-JSON=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2030,6 +2077,18 @@ REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-JSON=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2246,6 +2305,18 @@ REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-JSON=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2787,7 +2858,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2817,17 +2888,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/fcl-web/src/webdata/Makefile.fpc b/packages/fcl-web/src/webdata/Makefile.fpc
index 19e73760d1..64272b2972 100644
--- a/packages/fcl-web/src/webdata/Makefile.fpc
+++ b/packages/fcl-web/src/webdata/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
main=fcl-web
-version=2.7.1
+version=3.1.1
[target]
units=fpwebdata sqldbwebdata fpextjs extjsjson extjsxml
diff --git a/packages/fcl-xml/Makefile b/packages/fcl-xml/Makefile
index 98efe65c8d..61b28d76fb 100644
--- a/packages/fcl-xml/Makefile
+++ b/packages/fcl-xml/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fcl-xml
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-xml/Makefile.fpc b/packages/fcl-xml/Makefile.fpc
index fde8646505..04e9117de7 100644
--- a/packages/fcl-xml/Makefile.fpc
+++ b/packages/fcl-xml/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fcl-xml
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fcl-xml/Makefile.fpc.fpcmake b/packages/fcl-xml/Makefile.fpc.fpcmake
index c90f83661c..f5a9bef213 100644
--- a/packages/fcl-xml/Makefile.fpc.fpcmake
+++ b/packages/fcl-xml/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fcl-xml
-version=2.7.1
+version=3.1.1
[target]
units=htmldefs sax xmlutils dom sax_html dom_html xmlcfg xmlread xmlstreaming xmlwrite xhtml htmwrite xpath htmlelements htmlwriter xmlconf sax_xml dtdmodel
diff --git a/packages/fcl-xml/fpmake.pp b/packages/fcl-xml/fpmake.pp
index 4c9130e50e..2f3c9f5b56 100644
--- a/packages/fcl-xml/fpmake.pp
+++ b/packages/fcl-xml/fpmake.pp
@@ -14,13 +14,14 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('fcl-xml');
+ P.ShortName:='fclx';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Options.Add('-S2h');
D:=P.Dependencies.Add('fcl-base');
- D.Version:='2.7.1';
+ D.Version:='3.1.1';
D:=P.Dependencies.Add('iconvenc',[linux,darwin,iphonesim,freebsd,haiku,beos,aix]);
P.Author := 'Sebastian Guenther, Sergei Gorelkin and FPC development team';
diff --git a/packages/fcl-xml/src/htmlelements.pp b/packages/fcl-xml/src/htmlelements.pp
index 06441fd246..6ce20d4f26 100644
--- a/packages/fcl-xml/src/htmlelements.pp
+++ b/packages/fcl-xml/src/htmlelements.pp
@@ -141,7 +141,7 @@ end;
function UnescapeHTML ( const S : String ) : String;
begin
- Result := StringsReplace(result,['&amp;','&lt;','&gt;','&quot;','&apos;','&#39;'],['&','<','>','"',#39,#39],[rfReplaceAll]);
+ Result := StringsReplace(s,['&amp;','&lt;','&gt;','&quot;','&apos;','&#39;'],['&','<','>','"',#39,#39],[rfReplaceAll]);
end;
diff --git a/packages/fftw/Makefile b/packages/fftw/Makefile
index c7418b553f..a46da6377e 100644
--- a/packages/fftw/Makefile
+++ b/packages/fftw/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fftw
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fftw/Makefile.fpc b/packages/fftw/Makefile.fpc
index 7be1e0b7aa..135eb99b34 100644
--- a/packages/fftw/Makefile.fpc
+++ b/packages/fftw/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fftw
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fftw/Makefile.fpc.fpcmake b/packages/fftw/Makefile.fpc.fpcmake
index e9d28d6a3d..4ba4cf7d43 100644
--- a/packages/fftw/Makefile.fpc.fpcmake
+++ b/packages/fftw/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fftw
-version=2.7.1
+version=3.1.1
[target]
units=fftw_s
diff --git a/packages/fftw/fpmake.pp b/packages/fftw/fpmake.pp
index 4ca4fa802e..91d39dbd86 100644
--- a/packages/fftw/fpmake.pp
+++ b/packages/fftw/fpmake.pp
@@ -16,9 +16,9 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: Matteo Frigo and Steven G. Johnson, header: Daniel Mantione';
P.License := 'Library: GPL or commercial, header: LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/fpgtk/Makefile b/packages/fpgtk/Makefile
index c9ab9ea28c..e1c08704af 100644
--- a/packages/fpgtk/Makefile
+++ b/packages/fpgtk/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fpgtk
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fpgtk/Makefile.fpc b/packages/fpgtk/Makefile.fpc
index 2ea1c38ae8..1f9de89e3f 100644
--- a/packages/fpgtk/Makefile.fpc
+++ b/packages/fpgtk/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fpgtk
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fpgtk/Makefile.fpc.fpcmake b/packages/fpgtk/Makefile.fpc.fpcmake
index 3225480fe0..b49f19fe1f 100644
--- a/packages/fpgtk/Makefile.fpc.fpcmake
+++ b/packages/fpgtk/Makefile.fpc.fpcmake
@@ -6,7 +6,7 @@ packages=fcl-base gtk1
[package]
name=fpgtk
-version=2.7.1
+version=3.1.1
[target]
units=fpglib fpgtk fpgtkext
diff --git a/packages/fpgtk/examples/Makefile b/packages/fpgtk/examples/Makefile
index de60d7fee6..0beb5cbc5d 100644
--- a/packages/fpgtk/examples/Makefile
+++ b/packages/fpgtk/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=testgtk
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=testgtk
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=testgtk
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=testgtk
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=testgtk
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=testgtk
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=testgtk
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=testgtk
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=testgtk
endif
@@ -610,6 +625,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=lister
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=lister
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=lister
endif
@@ -697,6 +715,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=lister
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=lister
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=lister
endif
@@ -751,6 +772,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=lister
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=lister
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=lister
endif
@@ -1006,6 +1030,12 @@ 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=
@@ -1051,6 +1081,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1610,6 +1645,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FPGTK=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
+REQUIRE_PACKAGES_FPGTK=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1871,6 +1915,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FPGTK=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
+REQUIRE_PACKAGES_FPGTK=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2033,6 +2086,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FPGTK=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
+REQUIRE_PACKAGES_FPGTK=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2448,7 +2510,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2478,17 +2540,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/fpgtk/fpmake.pp b/packages/fpgtk/fpmake.pp
index c29cfbd589..8df5e0d4df 100644
--- a/packages/fpgtk/fpmake.pp
+++ b/packages/fpgtk/fpmake.pp
@@ -13,11 +13,12 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('fpgtk');
+ P.ShortName:='fpgt';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
- P.OSes := [beos,haiku,freebsd,solaris,netbsd,openbsd,linux,win32,win64,os2,emx,aix];
+ P.Version:='3.1.1';
+ P.OSes := [beos,haiku,freebsd,solaris,netbsd,openbsd,linux,win32,win64,os2,emx,aix,dragonfly];
// Do not build fpgtk on iPhone (=arm-darwin)
if Defaults.CPU<>arm then
P.OSes := P.OSes + [darwin];
diff --git a/packages/fpindexer/Makefile b/packages/fpindexer/Makefile
index 9f34bef4c8..b3d5c2e366 100644
--- a/packages/fpindexer/Makefile
+++ b/packages/fpindexer/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fpindexer
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,13 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipinstall: fpc_zipinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2311,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2339,15 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
diff --git a/packages/fpindexer/Makefile.fpc b/packages/fpindexer/Makefile.fpc
index fec866745d..535b00457f 100644
--- a/packages/fpindexer/Makefile.fpc
+++ b/packages/fpindexer/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fpindexer
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,16 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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/packages/fpindexer/fpmake.pp b/packages/fpindexer/fpmake.pp
index 19da7eb903..ffcf9e8ab1 100644
--- a/packages/fpindexer/fpmake.pp
+++ b/packages/fpindexer/fpmake.pp
@@ -7,8 +7,8 @@ uses fpmkunit;
procedure add_fpindexer(const ADirectory: string);
Const
- SqldbConnectionOSes = [beos,haiku,linux,freebsd,win32,win64,wince,darwin,iphonesim,netbsd,openbsd,aix];
- SqliteOSes = [beos,haiku,linux,freebsd,darwin,iphonesim,netbsd,openbsd,win32,wince,aix];
+ SqldbConnectionOSes = [beos,haiku,linux,freebsd,win32,win64,wince,darwin,iphonesim,netbsd,openbsd,aix,dragonfly];
+ SqliteOSes = [beos,haiku,linux,freebsd,darwin,iphonesim,netbsd,openbsd,win32,wince,aix,dragonfly];
Var
T : TTarget;
@@ -18,8 +18,8 @@ begin
begin
P:=AddPackage('fpindexer');
P.Directory:=ADirectory;
- P.Version:='2.7.1';
- P.OSes := [beos,haiku,freebsd,darwin,solaris,netbsd,openbsd,linux,win32,win64,wince,aix];
+ P.Version:='3.1.1';
+ P.OSes := [beos,haiku,freebsd,darwin,solaris,netbsd,openbsd,linux,win32,win64,wince,aix,dragonfly];
P.Dependencies.Add('fcl-base');
P.Dependencies.Add('fcl-db');
P.Dependencies.Add('chm'); // for fastreaderhtml
diff --git a/packages/fpmake.pp b/packages/fpmake.pp
index 4bce00564b..5d987ce974 100644
--- a/packages/fpmake.pp
+++ b/packages/fpmake.pp
@@ -27,13 +27,16 @@ rm fpmake_proc.inc fpmake_add.inc ; /bin/ls -1 */fpmake.pp| while read file; do
procedure add_packages(const ADirectory: string);
begin
+ AddCustomFpmakeCommandlineOption('data2inc', 'Use indicated data2inc executable.');
+ AddCustomFpmakeCommandlineOption('genfpmkunit', 'Regenerate the fpmkunitsrc.inc file (fppkg).');
+
{$include fpmake_add.inc}
With Installer do
begin
// Create fpc-all package
PBuild:=AddPackage('fpc-all');
- PBuild.Version:='2.7.1';
+ PBuild.Version:='3.1.1';
end;
end;
diff --git a/packages/fpmake_add.inc b/packages/fpmake_add.inc
index 32ec2abcca..32285b0966 100644
--- a/packages/fpmake_add.inc
+++ b/packages/fpmake_add.inc
@@ -1,5 +1,7 @@
add_a52(ADirectory+IncludeTrailingPathDelimiter('a52'));
+ add_ami_extra(ADirectory+IncludeTrailingPathDelimiter('ami-extra'));
add_amunits(ADirectory+IncludeTrailingPathDelimiter('amunits'));
+ add_arosunits(ADirectory+IncludeTrailingPathDelimiter('arosunits'));
add_aspell(ADirectory+IncludeTrailingPathDelimiter('aspell'));
add_bfd(ADirectory+IncludeTrailingPathDelimiter('bfd'));
add_bzip2(ADirectory+IncludeTrailingPathDelimiter('bzip2'));
@@ -71,6 +73,7 @@
add_lua(ADirectory+IncludeTrailingPathDelimiter('lua'));
add_mad(ADirectory+IncludeTrailingPathDelimiter('mad'));
add_modplug(ADirectory+IncludeTrailingPathDelimiter('modplug'));
+ add_morphunits(ADirectory+IncludeTrailingPathDelimiter('morphunits'));
add_mysql(ADirectory+IncludeTrailingPathDelimiter('mysql'));
add_ncurses(ADirectory+IncludeTrailingPathDelimiter('ncurses'));
add_newt(ADirectory+IncludeTrailingPathDelimiter('newt'));
diff --git a/packages/fpmake_proc.inc b/packages/fpmake_proc.inc
index af057415d0..601ba3a5e6 100644
--- a/packages/fpmake_proc.inc
+++ b/packages/fpmake_proc.inc
@@ -4,12 +4,24 @@ begin
{$include a52/fpmake.pp}
end;
+procedure add_ami_extra(const ADirectory: string);
+begin
+ with Installer do
+{$include ami-extra/fpmake.pp}
+end;
+
procedure add_amunits(const ADirectory: string);
begin
with Installer do
{$include amunits/fpmake.pp}
end;
+procedure add_arosunits(const ADirectory: string);
+begin
+ with Installer do
+{$include arosunits/fpmake.pp}
+end;
+
procedure add_aspell(const ADirectory: string);
begin
with Installer do
@@ -416,6 +428,12 @@ begin
{$include modplug/fpmake.pp}
end;
+procedure add_morphunits(const ADirectory: string);
+begin
+ with Installer do
+{$include morphunits/fpmake.pp}
+end;
+
procedure add_mysql(const ADirectory: string);
begin
with Installer do
diff --git a/packages/fpmkunit/Makefile b/packages/fpmkunit/Makefile
index 5dc961854b..ddfe590e77 100644
--- a/packages/fpmkunit/Makefile
+++ b/packages/fpmkunit/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2015-01-04 rev 29399]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fpmkunit
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
TARGET_UNITDIRBS=units_bs/$(SOURCESUFFIX)
CLEAN_FILES+=units_bs/$(SOURCESUFFIX)/fpmkunit.ppu units_bs/$(SOURCESUFFIX)/fpmkunit.rst units_bs/$(SOURCESUFFIX)/fpmkunit.o
CLEAN_FILES+=units_bs/$(SOURCESUFFIX)/adler.ppu units_bs/$(SOURCESUFFIX)/adler.o units_bs/$(SOURCESUFFIX)/crc.o units_bs/$(SOURCESUFFIX)/crc.ppu
@@ -342,7 +348,7 @@ UNIT_PROCESS=
ifneq ($(findstring $(OS_SOURCE),win32 win64),)
UNIT_PROCESS+=-Fi../fcl-process/src/win
endif
-ifneq ($(findstring $(OS_SOURCE),linux freebsd darwin iphonesim netbsd openbsd solaris haiku aix android),)
+ifneq ($(findstring $(OS_SOURCE),linux freebsd darwin iphonesim netbsd openbsd solaris haiku aix android dragonfly),)
UNIT_PROCESS+=-Fi../fcl-process/src/unix
endif
ifneq ($(findstring $(OS_SOURCE),os2 emx),)
@@ -607,6 +613,12 @@ 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=
@@ -652,6 +664,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1165,6 +1182,13 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=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
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1368,6 +1392,13 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=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
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1494,6 +1525,13 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=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
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1825,8 +1863,8 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
-ifeq ($(CPU_TARGET),x86_64)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel),)
override FPCOPT+=-Cg
endif
endif
@@ -1855,17 +1893,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2226,7 +2270,7 @@ endif
$(TARGET_UNITDIRBS):
$(MKDIRTREE) $(TARGET_UNITDIRBS)
bootstrap: $(TARGET_UNITDIRBS)
- $(FPCFPMAKE) src/fpmkunit.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) -FU$(TARGET_UNITDIRBS) $(UNIT_ZIPPER) $(UNIT_PROCESS) $(UNIT_LIBTAR) $(OPT)
+ $(FPCFPMAKE) src/fpmkunit.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(UNITDIR_FPMAKE_RTL)) -FU$(TARGET_UNITDIRBS) $(UNIT_ZIPPER) $(FPCMAKEOPT) $(UNIT_PROCESS) $(UNIT_LIBTAR) $(OPT)
clean_bootstrap:
-$(DELTREE) units_bs
fpmake: fpmake.pp
diff --git a/packages/fpmkunit/Makefile.fpc b/packages/fpmkunit/Makefile.fpc
index c9c3c384b0..8976d05f0d 100644
--- a/packages/fpmkunit/Makefile.fpc
+++ b/packages/fpmkunit/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fpmkunit
-version=2.7.1
+version=3.1.1
[require]
packages=rtl paszlib fcl-process hash libtar
@@ -39,7 +39,7 @@ UNIT_PROCESS=
ifneq ($(findstring $(OS_SOURCE),win32 win64),)
UNIT_PROCESS+=-Fi../fcl-process/src/win
endif
-ifneq ($(findstring $(OS_SOURCE),linux freebsd darwin iphonesim netbsd openbsd solaris haiku aix android),)
+ifneq ($(findstring $(OS_SOURCE),linux freebsd darwin iphonesim netbsd openbsd solaris haiku aix android dragonfly),)
UNIT_PROCESS+=-Fi../fcl-process/src/unix
endif
ifneq ($(findstring $(OS_SOURCE),os2 emx),)
@@ -68,8 +68,10 @@ LOCALFPMAKE=./fpmake$(SRCEXEEXT)
$(TARGET_UNITDIRBS):
$(MKDIRTREE) $(TARGET_UNITDIRBS)
+# We want to have all units inside the single packages/fpmkunit/units/$target directory
bootstrap: $(TARGET_UNITDIRBS)
- $(FPCFPMAKE) src/fpmkunit.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) -FU$(TARGET_UNITDIRBS) $(UNIT_ZIPPER) $(UNIT_PROCESS) $(UNIT_LIBTAR) $(OPT)
+ $(FPCFPMAKE) src/fpmkunit.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(UNITDIR_FPMAKE_RTL)) -FU$(TARGET_UNITDIRBS) $(UNIT_ZIPPER) $(FPCMAKEOPT) $(UNIT_PROCESS) $(UNIT_LIBTAR) $(OPT)
+# Old $(FPCFPMAKE) src/fpmkunit.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) -FU$(TARGET_UNITDIRBS) $(UNIT_ZIPPER) $(UNIT_PROCESS) $(UNIT_LIBTAR) $(OPT)
clean_bootstrap:
-$(DELTREE) units_bs
fpmake: fpmake.pp
diff --git a/packages/fpmkunit/Makefile.fpc.fpcmake b/packages/fpmkunit/Makefile.fpc.fpcmake
index b87090a9da..5d195baefb 100644
--- a/packages/fpmkunit/Makefile.fpc.fpcmake
+++ b/packages/fpmkunit/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fpmkunit
-version=2.7.1
+version=3.1.1
[target]
units=fpmkunit
diff --git a/packages/fpmkunit/fpmake.pp b/packages/fpmkunit/fpmake.pp
index e6dc585c63..81a91e64c5 100644
--- a/packages/fpmkunit/fpmake.pp
+++ b/packages/fpmkunit/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('fpmkunit');
+ P.ShortName:='fpmk';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Description:='Free Pascal Make Tool';
P.Author := 'Peter Vreman';
P.License := 'LGPL with modification, ';
@@ -30,13 +31,13 @@ begin
// here to be able to update all requirements to
// compile fpmake from a single place
D:=P.Dependencies.Add('hash');
- D.Version:='2.7.1';
+ D.Version:='3.1.1';
D:=P.Dependencies.Add('paszlib');
- D.Version:='2.7.1';
+ D.Version:='3.1.1';
D:=P.Dependencies.Add('fcl-process');
- D.Version:='2.7.1';
+ D.Version:='3.1.1';
D:=P.Dependencies.Add('libtar');
- D.Version:='2.7.1';
+ D.Version:='3.1.1';
with P.Targets.AddUnit('src/fpmkunit.pp') do
ResourceStrings:=true;
diff --git a/packages/fpmkunit/src/fpmkunit.pp b/packages/fpmkunit/src/fpmkunit.pp
index 2747c931d4..6f73dcc09f 100644
--- a/packages/fpmkunit/src/fpmkunit.pp
+++ b/packages/fpmkunit/src/fpmkunit.pp
@@ -32,12 +32,23 @@ Interface
{$DEFINE NO_THREADING}
{$ENDIF}
+{$IFDEF AMIGA}
+ {$DEFINE NO_UNIT_PROCESS}
+ {$DEFINE NO_THREADING}
+{$ENDIF}
+
+{$IFDEF AROS}
+ {$DEFINE NO_UNIT_PROCESS}
+ {$DEFINE NO_THREADING}
+{$ENDIF}
+
{$IFDEF OS2}
{$DEFINE NO_UNIT_PROCESS}
{$ENDIF OS2}
{$IFDEF GO32V2}
{$DEFINE NO_UNIT_PROCESS}
+ {$DEFINE NO_THREADING}
{$ENDIF GO32V2}
{$IFDEF NETBSD}
@@ -57,6 +68,12 @@ Interface
{$define HAS_TAR_SUPPORT}
{$endif NO_TAR_SUPPORT}
+{$ifdef unix}
+ {$ifdef HAS_TAR_SUPPORT}
+ {$define CREATE_TAR_FILE}
+ {$endif HAS_TAR_SUPPORT}
+{$endif unix}
+
uses
{$ifdef UNIX}
BaseUnix,
@@ -65,6 +82,9 @@ uses
{$ifdef UNIX}
cthreads,
{$endif UNIX}
+{$ifdef WINDOWS}
+ windows,
+{$endif WINDOWS}
{$endif NO_THREADING}
SysUtils, Classes
{$ifdef HAS_UNIT_PROCESS}
@@ -96,13 +116,15 @@ Type
amiga,atari, solaris, qnx, netware, openbsd,wdosx,
palmos,macos,darwin,emx,watcom,morphos,netwlibc,
win64,wince,gba,nds,embedded,symbian,haiku,iphonesim,
- aix,java,android,nativent,msdos,wii
+ aix,java,android,nativent,msdos,wii,aros,dragonfly
);
TOSes = Set of TOS;
TCompilerMode = (cmFPC,cmTP,cmObjFPC,cmDelphi,cmMacPas);
TCompilerModes = Set of TCompilerMode;
+ TInstallMOde = (imInstall, imUnInstall);
+
TTargetType = (ttProgram,ttUnit,ttImplicitUnit,ttCleanOnlyUnit,ttExampleUnit,ttExampleProgram,ttFPDoc);
TTargetTypes = set of TTargetType;
@@ -130,7 +152,7 @@ Type
TLogEvent = Procedure (Level : TVerboseLevel; Const Msg : String) of Object;
TNotifyProcEvent = procedure(Sender: TObject);
- TRunMode = (rmCompile,rmBuild,rmInstall,rmArchive,rmClean,rmDistClean,rmManifest,rmZipInstall);
+ TRunMode = (rmCompile,rmBuild,rmInstall,rmArchive,rmClean,rmDistClean,rmManifest,rmZipInstall,rmPkgList,rmUnInstall);
TBuildMode = (bmOneByOne, bmBuildUnit{, bmSkipImplicitUnits});
TBuildModes = set of TBuildMode;
@@ -147,12 +169,13 @@ Const
AllOSes = [Low(TOS)..High(TOS)];
AllCPUs = [Low(TCPU)..High(TCPU)];
- AllUnixOSes = [Linux,FreeBSD,NetBSD,OpenBSD,Darwin,QNX,BeOS,Solaris,Haiku,iphonesim,aix,Android];
- AllBSDOSes = [FreeBSD,NetBSD,OpenBSD,Darwin,iphonesim];
+ AllUnixOSes = [Linux,FreeBSD,NetBSD,OpenBSD,Darwin,QNX,BeOS,Solaris,Haiku,iphonesim,aix,Android,dragonfly];
+ AllBSDOSes = [FreeBSD,NetBSD,OpenBSD,Darwin,iphonesim,dragonfly];
AllWindowsOSes = [Win32,Win64,WinCE];
- AllLimit83fsOses= [go32v2,os2,emx,watcom,msdos];
+ AllAmigaLikeOSes = [Amiga,MorphOS,AROS];
+ AllLimit83fsOses = [go32v2,os2,emx,watcom,msdos];
- AllSmartLinkLibraryOSes = [Linux,msdos,amiga,morphos]; // OSes that use .a library files for smart-linking
+ AllSmartLinkLibraryOSes = [Linux,msdos,amiga,morphos,aros]; // OSes that use .a library files for smart-linking
AllImportLibraryOSes = AllWindowsOSes + [os2,emx,netwlibc,netware,watcom,go32v2,macos,nativent,msdos];
{ This table is kept OS,Cpu because it is easier to maintain (PFV) }
@@ -193,7 +216,9 @@ Const
{ android } ( false, true, false, false, false, false, true, false, false, false, false, true, true , false),
{ nativent }( false, true, 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, true ),
- { wii } ( false, false, false, true , false, false, false, false, false, false, false, false, false, false )
+ { wii } ( false, false, false, true , false, false, false, false, false, false, false, false, false, false),
+ { aros } ( true, 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 )
);
// Useful
@@ -211,10 +236,12 @@ Const
ExeExt = '.exe';
DbgExt = '.dbg';
ZipExt = '.zip';
+ FpmkExt = '.fpm';
FPMakePPFile = 'fpmake.pp';
ManifestFile = 'manifest.xml';
- UnitConfigFile = 'fpunits.cfg';
+ PkgListFileBase = 'pkg-';
+ PkgListFileExt = '.lst';
DirNotFound = '<dirnotfound>';
@@ -397,6 +424,38 @@ Type
Property ConditionalStrings[Index : Integer] : TConditionalDestString Read GetConditionalString Write SetConditionalString; default;
end;
+ { TNotifyEventCollection }
+
+ TNotifyEventAction = (neaBeforeCompile, neaAfterCompile, neaBeforeInstall, neaAfterInstall,
+ neaBeforeClean, neaAfterClean, neaBeforeArchive, neaAfterArchive,
+ neaBeforeManifest, neaAfterManifest, neaBeforePkgList, neaAfterPkgList,
+ neaBeforeUnInstall, neaAfterUnInstall,
+ neaBeforeCreateBuildEngine, neaAfterCreateBuildengine);
+
+ TNotifyEventActionSet = set of TNotifyEventAction;
+
+ TNotifyEventItem = class(TCollectionItem)
+ private
+ FOnAction: TNotifyEventAction;
+ FOnEvent: TNotifyEvent;
+ FOnProcEvent: TNotifyProcEvent;
+ public
+ property OnAction: TNotifyEventAction read FOnAction write FOnAction;
+ property OnEvent: TNotifyEvent read FOnEvent write FOnEvent;
+ property OnProcEvent: TNotifyProcEvent read FOnProcEvent write FOnProcEvent;
+ procedure CallEvent(Sender: TObject);
+ end;
+
+ TNotifyEventCollection = class(TCollection)
+ private
+ FSupportedActionSet: TNotifyEventActionSet;
+ public
+ constructor create(ASupportedActionSet: TNotifyEventActionSet);
+ procedure AppendEvent(AnAction: TNotifyEventAction; AnEvent: TNotifyEvent);
+ procedure AppendProcEvent(AnACtion: TNotifyEventAction; AnProcEvent: TNotifyProcEvent);
+ procedure CallEvents(AnAction: TNotifyEventAction; Sender: TObject);
+ end;
+
{ TDictionary }
TReplaceFunction = Function (Const AName,Args : String) : String of Object;
@@ -412,7 +471,7 @@ Type
Procedure RemoveItem(const AName : String);
Function GetValue(AName : String) : String;
Function GetValue(const AName,Args : String) : String; virtual;
- Function ReplaceStrings(Const ASource : String) : String; virtual;
+ Function ReplaceStrings(Const ASource : String; Const MaxDepth: Integer = 10) : String; virtual;
Function Substitute(Const Source : String; Macros : Array of string) : String; virtual;
end;
@@ -456,10 +515,14 @@ Type
private
FOptions: TStrings;
FTargets: TTargets;
+ FIncludePath: TConditionalStrings;
+ FSourcePath: TConditionalStrings;
public
constructor Create(ACollection: TCollection); override;
destructor Destroy; override;
property Options: TStrings read FOptions;
+ Property IncludePath : TConditionalStrings Read FIncludePath;
+ Property SourcePath : TConditionalStrings Read FSourcePath;
property Targets: TTargets read FTargets;
end;
@@ -684,6 +747,8 @@ Type
FAfterInstallProc: TNotifyProcEvent;
FAfterManifest: TNotifyEvent;
FAfterManifestProc: TNotifyProcEvent;
+ FAfterPkgList: TNotifyEvent;
+ FAfterPkgListProc: TNotifyProcEvent;
FBeforeArchive: TNotifyEvent;
FBeforeArchiveProc: TNotifyProcEvent;
FBeforeClean: TNotifyEvent;
@@ -694,6 +759,8 @@ Type
FBeforeInstallProc: TNotifyProcEvent;
FBeforeManifest: TNotifyEvent;
FBeforeManifestProc: TNotifyProcEvent;
+ FBeforePkgList: TNotifyEvent;
+ FBeforePkgListProc: TNotifyProcEvent;
FBuildMode: TBuildMode;
FFlags: TStrings;
FFPDocFormat: TFPDocFormats;
@@ -716,6 +783,7 @@ Type
FDirectory: String;
FOptions: TStrings;
FFileName: String;
+ FShortName: String;
FAuthor: String;
FLicense: String;
FHomepageURL: String;
@@ -731,6 +799,7 @@ Type
FPackageUnitInstallDir: String;
// Cached directory of installed packages
FUnitDir : String;
+ FUnitConfigFileName : String;
// Used by buildunits
FBUTargets: TTargets;
FBUTarget: TTarget;
@@ -744,6 +813,7 @@ Type
Function GetDescription : string;
function GetDictionary: TDictionary;
Function GetFileName : string;
+ Function GetShortName : string;
function GetOptions: TStrings;
Function GetVersion : string;
procedure SetOptions(const AValue: TStrings);
@@ -757,7 +827,7 @@ Type
destructor destroy; override;
Function HaveOptions : Boolean;
Function GetUnitsOutputDir(ACPU:TCPU; AOS : TOS):String;
- Function GetUnitConfigOutputDir(ACPU:TCPU; AOS : TOS):String;
+ Function GetUnitConfigOutputFilename(ACPU:TCPU; AOS : TOS):String;
Procedure InheritPackageVariantsFromDependency(ADependencyPackage: TPackage);
Function GetPackageVariantsByName(AName: string): TPackageVariants;
Procedure SetUnitsOutputDir(AValue: string);
@@ -770,6 +840,7 @@ Type
Procedure GetArchiveFiles(List : TStrings; ACPU:TCPU; AOS : TOS); virtual;
Procedure GetArchiveSourceFiles(List : TStrings); virtual;
Procedure GetManifest(Manifest : TStrings);
+ Procedure ListPackage(PkgList : TStrings);
Procedure AddPackageVariant(APackageVariant: TPackageVariants);
procedure ApplyPackageVariantToCompilerOptions(ACompilerOptions: tstrings);
procedure SetDefaultPackageVariant;
@@ -777,6 +848,7 @@ Type
procedure SaveUnitConfigToFile(Const AFileName: String;ACPU:TCPU;AOS:TOS);
Property Version : String Read GetVersion Write SetVersion;
Property FileName : String Read GetFileName Write FFileName;
+ Property ShortName : String Read GetShortName Write FShortName;
Property HomepageURL : String Read FHomepageURL Write FHomepageURL;
Property DownloadURL : String Read FDownloadURL Write FDownloadURL;
Property Email : String Read FEmail Write FEmail;
@@ -811,6 +883,7 @@ Type
Property Targets : TTargets Read FTargets;
Property Sources : TSources Read FSources;
Property UnitDir : String Read FUnitDir Write FUnitDir;
+ Property UnitConfigFileName: String read FUnitConfigFileName write FUnitConfigFileName;
// events
Property BeforeCompile : TNotifyEvent Read FBeforeCompile Write FBeforeCompile;
Property BeforeCompileProc : TNotifyProcEvent Read FBeforeCompileProc write FBeforeCompileProc;
@@ -832,6 +905,10 @@ Type
Property BeforeManifestProc : TNotifyProcEvent Read FBeforeManifestProc Write FBeforeManifestProc;
Property AfterManifest : TNotifyEvent Read FAfterManifest Write FAfterManifest;
Property AfterManifestProc : TNotifyProcEvent Read FAfterManifestProc Write FAfterManifestProc;
+ Property BeforePkgList : TNotifyEvent Read FBeforePkgList Write FBeforePkgList;
+ Property BeforePkgListProc : TNotifyProcEvent Read FBeforePkgListProc Write FBeforePkgListProc;
+ Property AfterPkgList : TNotifyEvent Read FAfterPkgList Write FAfterPkgList;
+ Property AfterPkgListProc : TNotifyProcEvent Read FAfterPkgListProc Write FAfterPkgListProc;
end;
{ TPackages }
@@ -856,6 +933,7 @@ Type
FCompiler: String;
FCopy: String;
FFPDocOutputDir: String;
+ FFPUnitSourcePath: String;
FIgnoreInvalidOptions: Boolean;
FInstallExamples: Boolean;
FMkDir: String;
@@ -870,6 +948,7 @@ Type
FGlobalUnitDir,
FBaseInstallDir,
FUnitInstallDir,
+ FUnitConfigFilesInstallDir,
FBinInstallDir,
FDocInstallDir,
FExamplesInstallDir : String;
@@ -883,10 +962,12 @@ Type
FNoFPCCfg: Boolean;
FUseEnvironment: Boolean;
FZipPrefix: String;
+ FExplicitOSNone: Boolean;
function GetBuildCPU: TCpu;
function GetBuildOS: TOS;
function GetBuildString: String;
function GetFPDocOutputDir: String;
+ function GetFPUnitSourcePath: String;
function GetLocalUnitDir: String;
function GetGlobalUnitDir: String;
function GetBaseInstallDir: String;
@@ -895,7 +976,9 @@ Type
function GetDocInstallDir: String;
function GetExamplesInstallDir: String;
function GetOptions: TStrings;
+ function GetPrefix: String;
function GetUnitInstallDir: String;
+ function GetUnitConfigFilesInstallDir: String;
procedure SetLocalUnitDir(const AValue: String);
procedure SetGlobalUnitDir(const AValue: String);
procedure IntSetBaseInstallDir(const AValue: String);
@@ -906,6 +989,7 @@ Type
procedure SetPrefix(const AValue: String);
procedure SetTarget(const AValue: String);
procedure SetUnitInstallDir(const AValue: String);
+ procedure SetUnitConfigFilesInstallDir(const AValue: String);
procedure SetZipPrefix(AValue: String);
Protected
procedure RecalcTarget;
@@ -925,6 +1009,8 @@ Type
Property Target : String Read FTarget Write SetTarget;
Property OS : TOS Read FOS Write SetOS;
Property CPU : TCPU Read FCPU Write SetCPU;
+ Property CompilerVersion : String read FCompilerVersion;
+ Property ExplicitOSNone: Boolean read FExplicitOSNone Write FExplicitOSNone;
Property BuildString : String read GetBuildString;
Property BuildOS : TOS read GetBuildOS;
Property BuildCPU : TCpu read GetBuildCPU;
@@ -949,14 +1035,16 @@ Type
// paths etc.
Property LocalUnitDir : String Read GetLocalUnitDir Write SetLocalUnitDir;
Property GlobalUnitDir : String Read GetGlobalUnitDir Write SetGlobalUnitDir;
- Property Prefix : String Read FPrefix Write SetPrefix;
+ Property Prefix : String Read GetPrefix Write SetPrefix;
Property ZipPrefix : String Read FZipPrefix Write SetZipPrefix;
Property BaseInstallDir : String Read GetBaseInstallDir Write SetBaseInstallDir;
Property UnitInstallDir : String Read GetUnitInstallDir Write SetUnitInstallDir;
+ Property UnitConfigFilesInstallDir : String Read GetUnitConfigFilesInstallDir Write SetUnitConfigFilesInstallDir;
Property BinInstallDir : String Read GetBinInstallDir Write FBinInstallDir;
Property DocInstallDir : String Read GetDocInstallDir Write FDocInstallDir;
Property ExamplesInstallDir : String Read GetExamplesInstallDir Write FExamplesInstallDir;
Property FPDocOutputDir : String Read GetFPDocOutputDir Write FFPDocOutputDir;
+ Property FPUnitSourcePath: String read GetFPUnitSourcePath Write FFPUnitSourcePath;
// Command tools. If not set, internal commands will be used.
Property Compiler : String Read GetCompiler Write FCompiler; // Compiler. Defaults to fpc
Property Copy : String Read FCopy Write FCopy; // copy $(FILES) to $(DEST)
@@ -988,6 +1076,7 @@ Type
end;
{ TBuildEngine }
+ TCopyFileProc = procedure(const APackage: TPackage; Const ASourceFileName, ADestFileName : String) of object;
TBuildEngine = Class(TComponent)
private
@@ -999,22 +1088,12 @@ Type
FVerbose : boolean;
FProgressMax : integer;
FProgressCount : integer;
-{$ifdef HAS_UNIT_ZIPPER}
- FZipFile: TZipper;
-{$endif HAS_UNIT_ZIPPER}
FExternalPackages : TPackages;
// Events
FOnLog: TLogEvent;
- FAfterArchive: TNotifyEvent;
- FAfterClean: TNotifyEvent;
- FAfterCompile: TNotifyEvent;
- FAfterInstall: TNotifyEvent;
- FAfterManifest: TNotifyEvent;
- FBeforeArchive: TNotifyEvent;
- FBeforeClean: TNotifyEvent;
- FBeforeCompile: TNotifyEvent;
- FBeforeInstall: TNotifyEvent;
- FBeforeManifest: TNotifyEvent;
+ FNotifyEventCollection: TNotifyEventCollection;
+ FOnCopyFile: TCopyFileProc;
+ FOnFinishCopy: TNotifyEvent;
FCachedlibcPath: string;
FGeneralCriticalSection: TRTLCriticalSection;
@@ -1023,7 +1102,10 @@ Type
{$endif HAS_UNIT_ZIPPER}
{$ifdef HAS_TAR_SUPPORT}
FTarWriter: TTarWriter;
+ FGZFileStream: TGZFileStream;
{$endif HAS_TAR_SUPPORT}
+ procedure AddFileToArchive(const APackage: TPackage; Const ASourceFileName, ADestFileName : String);
+ procedure FinishArchive(Sender: TObject);
Protected
Procedure Error(const Msg : String);
Procedure Error(const Fmt : String; const Args : Array of const);
@@ -1040,9 +1122,11 @@ Type
procedure LogUnIndent;
Procedure EnterDir(ADir : String);
Function GetCompiler : String;
- Function InstallPackageFiles(APAckage : TPackage; tt : TTargetTypes; Const Dest : String):Boolean;
+ Function InstallPackageFiles(APAckage : TPackage; tt : TTargetTypes; Const Dest : String; Const InstallMode: TInstallMode):Boolean;
Procedure InstallUnitConfigFile(APAckage : TPackage; Const Dest : String);
- Function InstallPackageSourceFiles(APAckage : TPackage; stt : TSourceTypes; ttt : TTargetTypes; Const Dest : String):Boolean;
+ function GetUnitConfigFilesInstallDir(ABaseDir: string): String;
+
+ Function InstallPackageSourceFiles(APAckage : TPackage; stt : TSourceTypes; ttt : TTargetTypes; Const Dest : String; Const InstallMode: TInstallMode):Boolean;
Function FileNewer(const Src,Dest : String) : Boolean;
Procedure LogSearchPath(APackage: TPackage;const ASearchPathName:string;Path:TConditionalStrings; ACPU:TCPU;AOS:TOS);
Function FindFileInPath(APackage: TPackage; Path:TConditionalStrings; AFileName:String; var FoundPath:String;ACPU:TCPU;AOS:TOS):Boolean;
@@ -1051,6 +1135,7 @@ Type
procedure AddPackageMacrosToDictionary(const APackage: TPackage; ADictionary: TDictionary);
//package commands
function GetUnitDir(APackage:TPackage):String;
+ procedure ResolvePackagePaths(APackage:TPackage);
procedure AddDependencyPaths(L: TStrings; DependencyType: TDependencyType; ATarget: TTarget);
procedure AddDependencyUnitPaths(L:TStrings;APackage: TPackage);
Public
@@ -1063,10 +1148,11 @@ Type
// Public Copy/delete/Move/Archive/Mkdir Commands.
Procedure ExecuteCommand(const Cmd,Args : String; const Env: TStrings = nil; IgnoreError : Boolean = False); virtual;
- Procedure CmdCopyFiles(List : TStrings; Const DestDir : String);
+ procedure CmdCopyFiles(List: TStrings; const DestDir: String; APackage: TPackage);
Procedure CmdCreateDir(const DestDir : String);
Procedure CmdMoveFiles(List : TStrings; Const DestDir : String);
Procedure CmdDeleteFiles(List : TStrings);
+ procedure CmdDeleteDestFiles(List: TStrings; const DestDir: String);
Procedure CmdArchiveFiles(List : TStrings; Const ArchiveFile : String);
Procedure CmdRenameFile(SourceName, DestName : String);
Procedure CmdRemoveDirs(List: TStrings);
@@ -1099,21 +1185,24 @@ Type
Procedure Compile(APackage : TPackage);
Procedure MaybeCompile(APackage:TPackage);
Function ReadyToCompile(APackage:TPackage) : Boolean;
- Procedure Install(APackage : TPackage);
+ Procedure Install(APackage : TPackage; AnArchiveFiles: boolean);
+ Procedure UnInstall(APackage : TPackage);
Procedure Archive(APackage : TPackage);
- Procedure Manifest(APackage : TPackage);
+ Procedure PkgList(PkgList: TStrings; APackage : TPackage);
Procedure Clean(APackage : TPackage; AllTargets: boolean);
Procedure Clean(APackage : TPackage; ACPU:TCPU; AOS : TOS);
Procedure CompileDependencies(APackage : TPackage);
- function CheckDependencies(APackage : TPackage): TCheckDependencyResult;
- Function CheckExternalPackage(Const APackageName : String):TPackage;
+ function CheckDependencies(APackage : TPackage; ErrorOnFailure: boolean): TCheckDependencyResult;
+ Function CheckExternalPackage(Const APackageName : String; ErrorOnFailure: boolean):TPackage;
procedure CreateOutputDir(APackage: TPackage);
// Packages commands
Procedure Compile(Packages : TPackages);
Procedure Install(Packages : TPackages);
+ Procedure UnInstall(Packages : TPackages);
Procedure ZipInstall(Packages : TPackages);
Procedure Archive(Packages : TPackages);
procedure Manifest(Packages: TPackages);
+ procedure PkgList(Packages: TPackages);
Procedure Clean(Packages : TPackages; AllTargets: boolean);
Procedure Log(Level : TVerboseLevel; Msg : String);
@@ -1124,16 +1213,7 @@ Type
Property ExternalPackages: TPackages Read FExternalPackages;
Property StartDir: String Read FStartDir;
// Events
- Property BeforeCompile : TNotifyEvent Read FBeforeCompile Write FBeforeCompile;
- Property AfterCompile : TNotifyEvent Read FAfterCompile Write FAfterCompile;
- Property BeforeInstall : TNotifyEvent Read FBeforeInstall Write FBeforeInstall;
- Property AfterInstall : TNotifyEvent Read FAfterInstall Write FAfterInstall;
- Property BeforeClean : TNotifyEvent Read FBeforeClean Write FBeforeClean;
- Property AfterClean : TNotifyEvent Read FAfterClean Write FAfterClean;
- Property BeforeArchive : TNotifyEvent Read FBeforeArchive Write FBeforeArchive;
- Property AfterArchive : TNotifyEvent Read FAfterArchive Write FAfterArchive;
- Property BeforeManifest : TNotifyEvent Read FBeforeManifest Write FBeforeManifest;
- Property AfterManifest : TNotifyEvent Read FAfterManifest Write FAfterManifest;
+ Property NotifyEventCollection: TNotifyEventCollection read FNotifyEventCollection;
Property OnLog : TLogEvent Read FOnLog Write FOnlog;
end;
@@ -1149,6 +1229,7 @@ Type
FFPMakeOptionsString: string;
FPackageVariantSettings: TStrings;
FPackageVariants: TFPList;
+ FNotifyEventCollection: TNotifyEventCollection;
Protected
Procedure Log(Level : TVerboseLevel; Const Msg : String);
Procedure CreatePackages; virtual;
@@ -1163,9 +1244,11 @@ Type
Procedure Compile(Force : Boolean); virtual;
Procedure Clean(AllTargets: boolean); virtual;
Procedure Install; virtual;
+ Procedure UnInstall; virtual;
Procedure ZipInstall; virtual;
Procedure Archive; virtual;
Procedure Manifest; virtual;
+ Procedure PkgList; virtual;
Public
Constructor Create(AOwner : TComponent); virtual;
Destructor destroy; override;
@@ -1178,6 +1261,7 @@ Type
Property Packages : TPackages Read GetPackages;
Property RunMode : TRunMode Read FRunMode;
Property ListMode : Boolean Read FListMode;
+ Property NotifyEventCollection : TNotifyEventCollection read FNotifyEventCollection;
end;
{ TFPCInstaller }
@@ -1290,6 +1374,13 @@ Implementation
uses typinfo, rtlconsts;
+const
+{$ifdef CREATE_TAR_FILE}
+ ArchiveExtension = '.tar.gz';
+{$else CREATE_TAR_FILE}
+ ArchiveExtension = '.zip';
+{$endif CREATE_TAR_FILE}
+
{----------------- from strutils ---------------------}
function FindPart(const HelpWilds, inputStr: string): Integer;
@@ -1463,6 +1554,8 @@ ResourceString
SErrCouldNotCompile = 'Could not compile target %s from package %s';
SErrUnsupportedBuildmode = 'Package does not support this buildmode';
SErrPackVarNotExist = 'There is no package variant with the name "%s"';
+ SErrEventNotSupported = 'Unsupported event type';
+ SErrorPkgNotInstalled = 'Package "%s" is not installed, can not uninstall.';
SWarnCircularTargetDependency = 'Warning: Circular dependency detected when compiling target %s with target %s';
SWarnCircularPackageDependency = 'Warning: Circular dependency detected when compiling package %s with package %s';
@@ -1489,15 +1582,18 @@ ResourceString
SWarngccNotFound = 'Could not find libgcc';
SWarngcclibpath = 'Warning: Unable to determine the libgcc path.';
SWarnNoFCLProcessSupport= 'No FCL-Process support';
+ SWarnRetryRemDirectory = 'Failed to remove directory "%s". Retry after a short delay';
SInfoPackageAlreadyProcessed = 'Package %s is already processed';
SInfoCompilingTarget = 'Compiling target %s';
SInfoExecutingCommand = 'Executing command "%s %s"';
SInfoCreatingOutputDir = 'Creating output dir "%s"';
SInfoInstallingPackage = 'Installing package %s';
+ SInfoUnInstallingPackage= 'Uninstalling package %s';
SInfoArchivingPackage = 'Archiving package %s in "%s"';
SInfoCleaningPackage = 'Cleaning package %s';
SInfoManifestPackage = 'Creating manifest for package %s';
+ SInfoPkgListPackage = 'Adding package %s to the package list';
SInfoCopyingFile = 'Copying file "%s" to "%s"';
SInfoDeletedFile = 'Deleted file "%s"';
SInfoRemovedDirectory = 'Removed directory "%s"';
@@ -1524,6 +1620,7 @@ ResourceString
SDbgExternalDependency = 'External dependency %s found in "%s"';
SDbgBuildEngineArchiving = 'Build engine archiving';
SDbgBuildEngineGenerateManifests = 'Build engine generating manifests';
+ SDbgBuildEngineGeneratePkgList = 'Build engine generating package list';
SDbgBuildEngineCleaning = 'Build engine cleaning';
SDbgGenerating = 'Generating "%s"';
SDbgLoading = 'Loading "%s"';
@@ -1557,10 +1654,12 @@ ResourceString
SHelpCompile = 'Compile all units in the package(s).';
SHelpBuild = 'Build all units in the package(s).';
SHelpInstall = 'Install all units in the package(s).';
+ SHelpUnInstall = 'Uninstall the package(s).';
SHelpClean = 'Clean (remove) all units in the package(s).';
SHelpArchive = 'Create archive (zip) with all units in the package(s).';
SHelpHelp = 'This message.';
SHelpManifest = 'Create a manifest suitable for import in repository.';
+ SHelpPkgList = 'Create list of all packages suitable for FPC installer.';
SHelpZipInstall = 'Install all units in the package(s) into an archive.';
SHelpCmdOptions = 'Where options is one or more of the following:';
SHelpCPU = 'Compile for indicated CPU.';
@@ -1581,6 +1680,7 @@ ResourceString
SHelpSkipCrossProgs = 'Skip programs when cross-compiling/installing';
SHelpIgnoreInvOpt = 'Ignore further invalid options.';
sHelpFpdocOutputDir = 'Use indicated directory as fpdoc output folder.';
+ sHelpFPUnitSrcPath = 'Sourcepath to replace in fpunits.cfg on installation.';
sHelpThreads = 'Enable the indicated amount of worker threads.';
sHelpUseEnvironment = 'Use environment to pass options to compiler.';
SHelpUseBuildUnit = 'Compile package in Build-unit mode.';
@@ -1648,7 +1748,7 @@ var
//ifdef the MsgNum so it contains the correct message numbers for each compiler version.
MsgNum : array [TMessages] of integer = (3104, 9015);
- n: longint;
+ n,available: longint;
BuffPos: longint;
sLine: string;
ch: char;
@@ -1656,14 +1756,24 @@ var
ipos: integer;
snum: string;
begin
- // make sure we have room
- ConsoleOutput.SetSize(BytesRead + READ_BYTES);
// try reading it
if ReadFromStdErr then
- n := P.Stderr.Read((ConsoleOutput.Memory + BytesRead)^, READ_BYTES)
+ begin
+ available:=P.Stderr.NumBytesAvailable;
+ // make sure we have room
+ if (bytesRead + Available > ConsoleOutput.Size) then
+ ConsoleOutput.SetSize(BytesRead + Available);
+ n := P.Stderr.Read((ConsoleOutput.Memory + BytesRead)^, available);
+ end
else
- n := P.Output.Read((ConsoleOutput.Memory + BytesRead)^, READ_BYTES);
+ begin
+ available:=P.Output.NumBytesAvailable;
+ // make sure we have room
+ if (bytesRead + Available > ConsoleOutput.Size) then
+ ConsoleOutput.SetSize(BytesRead + Available);
+ n := P.Output.Read((ConsoleOutput.Memory + BytesRead)^, available);
+ end;
if n > 0 then
begin
Inc(BytesRead, n);
@@ -1708,11 +1818,6 @@ var
until ConsoleOutput.Position >= BytesRead;
ConsoleOutput.Position := BuffPos;
- end
- else
- begin
- // no data, wait 100 ms
- Sleep(100);
end;
Result := n;
@@ -1731,7 +1836,19 @@ begin
P.Execute;
while P.Running do
- ReadFromStream(false);
+ begin
+ // Only call ReadFromStream if Data from corresponding stream
+ // is already available, otherwise, on linux, the read call
+ // is blocking, and thus it is not possible to be sure to handle
+ // big data amounts bboth on output and stderr pipes. PM.
+ if P.Output.NumBytesAvailable > 0 then
+ ReadFromStream(false)
+ else if P.StdErr.NumBytesAvailable > 0 then
+ ReadFromStream(true)
+ else
+ // no data, wait 100 ms
+ Sleep(100);
+ end;
// read last part
repeat
@@ -1769,7 +1886,7 @@ begin
SearchResult := FindNext(searchRec);
end;
finally
- FindClose(searchRec);
+ sysutils.FindClose(searchRec);
end;
end;
@@ -1896,7 +2013,7 @@ end;
function maybequoted(const s:string):string;
const
- {$IF DEFINED(MSWINDOWS) OR DEFINED(AMIGA) OR DEFINED(MORPHOS)}
+ {$IF DEFINED(MSWINDOWS) OR DEFINED(AMIGA) OR DEFINED(MORPHOS) OR DEFINED(AROS)}
FORBIDDEN_CHARS = ['!', '@', '#', '$', '%', '^', '&', '*', '(', ')',
'{', '}', '''', '`', '~'];
{$ELSE}
@@ -2003,6 +2120,7 @@ var
begin
{ can't use SetToString, there are more than 32 OSes }
First:=true;
+ Result:='';
for i in OSes do
begin
if not First then
@@ -2012,7 +2130,7 @@ begin
Str(i,Tmp);
Result:=Result+Tmp;
end;
- Result:=LowerCase(Tmp);
+ Result:=LowerCase(Result);
end;
Function CPUToString(CPU: TCPU) : String;
@@ -2090,15 +2208,49 @@ begin
end;
-Function MakeTargetString(CPU : TCPU;OS: TOS) : String;
+Function MakeTargetString(CPU : TCPU;OS: TOS;ALimit83: boolean) : String;
begin
- if OS in AllLimit83fsOses then
+ if ALimit83 then
Result := OSToString(OS)
else
Result:=CPUToString(CPU)+'-'+OSToString(OS);
end;
+Function MakeTargetString(CPU : TCPU;OS: TOS) : String;
+
+begin
+ Result := MakeTargetString (CPU, OS,
+ (Defaults.BuildOS in AllLimit83fsOses) or (OS in AllLimit83fsOses));
+end;
+
+function MakeZipSuffix(CPU : TCPU;OS: TOS;ALimit83: boolean) : String;
+
+begin
+ case OS of
+ go32v2: result := 'dos';
+ watcom: result := 'wat';
+ os2: result := 'os2';
+ emx: result := 'emx';
+ osNone:
+ begin
+ if ALimit83 then
+ result := 'src'
+ else
+ result := '.source'
+ end
+ else
+ result := '.' + MakeTargetString(CPU, OS, ALimit83);
+ end;
+end;
+
+function MakeZipSuffix(CPU : TCPU;OS: TOS) : String;
+
+begin
+ Result := MakeZipSuffix (CPU, OS,
+ (Defaults.BuildOS in AllLimit83fsOses) or (OS in AllLimit83fsOses));
+end;
+
Procedure StringToCPUOS(const S : String; Var CPU : TCPU; Var OS: TOS);
Var
@@ -2214,7 +2366,7 @@ begin
end;
end;
if AIsDir and (Result <> '') then
- Result := IncludeTrailingPathDelimiter(Result);;
+ Result := IncludeTrailingPathDelimiter(Result);
end;
function IsRelativePath(const APath: String): boolean;
@@ -2254,7 +2406,7 @@ procedure SearchFiles(const AFileName: string; Recursive: boolean; var List: TSt
List.Add(SearchDir + Info.Name);
until FindNext(Info)<>0;
end;
- FindClose(Info);
+ sysutils.FindClose(Info);
end;
var
@@ -2443,7 +2595,7 @@ function GetDefaultLibGCCDir(CPU : TCPU;OS: TOS; var ErrorMessage: string): stri
GccExecutable: string;
begin
result := '';
- GccExecutable := ExeSearch(AddProgramExtension('gcc', OS),GetEnvironmentVariable('PATH'));
+ GccExecutable := ExeSearch(AddProgramExtension('gcc', OS),Sysutils.GetEnvironmentVariable('PATH'));
if FileExists(GccExecutable) then
begin
{$ifdef HAS_UNIT_PROCESS}
@@ -2463,7 +2615,7 @@ function GetDefaultLibGCCDir(CPU : TCPU;OS: TOS; var ErrorMessage: string): stri
begin
result := '';
ErrorMessage:='';
- if OS in [freebsd, openbsd] then
+ if OS in [freebsd, openbsd, dragonfly] then
result := '/usr/local/lib'
else if OS = netbsd then
result := '/usr/pkg/lib'
@@ -2488,12 +2640,16 @@ begin
inherited Create(ACollection);
FTargets := TTargets.Create(TTarget);
FOptions := TStringList.Create;
+ FIncludePath:=TConditionalStrings.Create(TConditionalString);
+ FSourcePath:=TConditionalStrings.Create(TConditionalString);
end;
destructor TPackageVariant.Destroy;
begin
FOptions.Free;
FTargets.Free;
+ FIncludePath.Free;
+ FSourcePath.Free;
inherited Destroy;
end;
@@ -2553,18 +2709,18 @@ end;
function TConditionalDestStrings.Add(const Value: String; ADestPath: String): TConditionalDestString;
begin
- Add(Value, AllCPUs, AllOSes, ADestPath);
+ Result:=Add(Value, AllCPUs, AllOSes, ADestPath);
end;
function TConditionalDestStrings.Add(const Value: String; const OSes: TOSes; ADestPath: String): TConditionalDestString;
begin
- Add(Value, AllCPUs, OSes, ADestPath);
+ Result:=Add(Value, AllCPUs, OSes, ADestPath);
end;
{$ifdef cpu_only_overloads}
Function TConditionalDestStrings.Add(Const Value : String;const CPUs:TCPUs; ADestPath: String) : TConditionalDestString;inline;
begin
- Add(Value, CPUs, AllOSes, ADestPath);
+ Result:=Add(Value, CPUs, AllOSes, ADestPath);
end;
{$endif cpu_only_overloads}
@@ -2575,6 +2731,7 @@ var
begin
ACondString := inherited Add(Value,CPUs,OSes) as TConditionalDestString;
ACondString.DestPath:=ADestPath;
+ Result:=ACondString;
end;
{ TPackageDictionary }
@@ -3117,9 +3274,9 @@ begin
result:=FixPath(Dictionary.Substitute(FUnitsOutputDir,['CPU',CPUToString(ACPU),'OS',OSToString(AOS),'target',MakeTargetString(ACPU,AOS)]), False);
end;
-function TPackage.GetUnitConfigOutputDir(ACPU: TCPU; AOS: TOS): String;
+function TPackage.GetUnitConfigOutputFilename(ACPU: TCPU; AOS: TOS): String;
begin
- result:=FixPath(Dictionary.Substitute('units'+PathDelim+'$(target)'+PathDelim,['CPU',CPUToString(ACPU),'OS',OSToString(AOS),'target',MakeTargetString(ACPU,AOS)]), False);
+ result:=FixPath(Dictionary.Substitute(Name+'-$(target)'+FpmkExt,['CPU',CPUToString(ACPU),'OS',OSToString(AOS),'target',MakeTargetString(ACPU,AOS)]), False);
end;
procedure TPackage.InheritPackageVariantsFromDependency(ADependencyPackage: TPackage);
@@ -3188,6 +3345,7 @@ Var
begin
OB:=IncludeTrailingPathDelimiter(GetBinOutputDir(ACPU,AOS));
OU:=IncludeTrailingPathDelimiter(GetUnitsOutputDir(ACPU,AOS));
+ List.Add(GetUnitConfigOutputFilename(Defaults.CPU,Defaults.OS));
AddConditionalStrings(Self, List,CleanFiles,ACPU,AOS);
For I:=0 to FTargets.Count-1 do
FTargets.TargetItems[I].GetCleanFiles(List, OU, OB, ACPU, AOS);
@@ -3313,12 +3471,23 @@ begin
If (FFileName<>'') then
Result:=FFileName
else
- if not FVersion.Empty then
+ if not FVersion.Empty and not
+ ((Defaults.OS in AllLimit83fsOses) or (Defaults.BuildOS in AllLimit83fsOses)) then
Result := Name + '-' + FVersion.AsString
else
- Result := Name;
+ Result := ShortName;
end;
+
+Function TPackage.GetShortName : string;
+begin
+ if FShortName<>'' then
+ result := FShortName
+ else
+ result := Name;
+end;
+
+
function TPackage.GetOptions: TStrings;
begin
If (FOptions=Nil) then
@@ -3413,6 +3582,44 @@ begin
end;
end;
+Procedure TPackage.ListPackage(PkgList : TStrings);
+
+ function GetArchiveName (const APackage: TPackage; ALimit83: boolean): string;
+ begin
+{ Special hack to allow both long and short source files being recognized }
+ if ALimit83 and (Defaults.ZipPrefix = 'units-') then
+ result := 'u'
+ else
+ result := Defaults.ZipPrefix;
+ if ALimit83 then
+ result := result + APackage.ShortName
+ else
+ result := result + APackage.Name;
+ result := result + MakeZipSuffix(Defaults.CPU, Defaults.OS, ALimit83);
+ end;
+
+Var
+ S : String;
+begin
+{ if OSes = AllOSes then
+ Exit;}
+ if ((OSes = AllOSes) or (Defaults.OS in OSes)) and
+ ((CPUs = AllCPUs) or (Defaults.CPU in CPUs)) or
+ (Defaults.OS = osNone) and (Defaults.CPU = cpuNone) then
+ begin
+ if Defaults.OS = osNone then
+ PkgList.Add (Format ('# Source %d', [Succ (PkgList.Count div 2)]))
+ else {if OSes <> AllOSes then}
+ PkgList.Add (Format ('# ' + OSToString(Defaults.OS) + ' %d', [Succ (PkgList.Count div 2)]));
+ S := 'package=' + GetArchiveName (Self, false) + ArchiveExtension;
+ if ((ShortName <> Name) or (Defaults.ZipPrefix = 'units-')) and
+ ((Defaults.OS in AllLimit83fsOSes) or (Defaults.OS = osNone)) then
+ S := S + '[' + GetArchiveName (Self, true) + ArchiveExtension + ']';
+ S := S + ',' + Description;
+ PkgList.Add(S);
+ end;
+end;
+
procedure TPackage.AddPackageVariant(APackageVariant: TPackageVariants);
begin
if not assigned(APackageVariant.FMasterPackage) then
@@ -3444,9 +3651,11 @@ begin
PackageVariants.ActivePackageVariantName:= Installer.FPackageVariantSettings.Values[PackageVariants.Name]
else
PackageVariants.ActivePackageVariantName:= PackageVariants.DefaultPackageVariantName;
+ IncludePath.AddList(PackageVariants.ActivePackageVariant.IncludePath);
+ SourcePath.AddList(PackageVariants.ActivePackageVariant.SourcePath);
Dictionary.AddVariable(PackageVariants.Name,PackageVariants.ActivePackageVariantName);
- SetUnitsOutputDir(FUnitsOutputDir+'$('+PackageVariants.name+')');
- SetPackageUnitInstallDir(FPackageUnitInstallDir+'$('+PackageVariants.Name+')');
+ SetUnitsOutputDir(IncludeTrailingPathDelimiter(FUnitsOutputDir)+'$('+PackageVariants.name+')');
+ SetPackageUnitInstallDir(IncludeTrailingPathDelimiter(FPackageUnitInstallDir)+'$('+PackageVariants.Name+')');
// Do not add targets f the package is inherited
if PackageVariants.MasterPackage=Self then
for j := 0 to PackageVariants.ActivePackageVariant.Targets.count -1 do
@@ -3715,11 +3924,12 @@ function TCustomDefaults.GetDocInstallDir: String;
begin
If (FDocInstallDir<>'') then
Result:=FDocInstallDir
+ else if (Defaults.BuildOS=freebsd) or (Defaults.BuildOS=dragonfly) then
+ Result:=Prefix+'share'+PathDelim+'doc'+PathDelim+'fpc-$(CompilerVersion)'+PathDelim+'$(PackageName)'
+ else If UnixPaths then
+ Result:=Prefix+'share'+PathDelim+'doc'+PathDelim+'fpc-$(CompilerVersion)'+PathDelim+'$(PackageName)'
else
- If UnixPaths then
- Result:=Prefix+'share'+PathDelim+'doc'
- else
- Result:=BaseInstallDir+'docs';
+ Result:=BaseInstallDir+'docs'+PathDelim+'$(PackageName)';
end;
@@ -3727,11 +3937,12 @@ function TCustomDefaults.GetExamplesInstallDir: String;
begin
If (FExamplesInstallDir<>'') then
Result:=FExamplesInstallDir
+ else if (Defaults.BuildOS=freebsd) or (Defaults.BuildOS=dragonfly) then
+ Result:=Prefix+'share'+PathDelim+'examples'+PathDelim+'fpc-$(CompilerVersion)'+PathDelim+'$(PackageName)'+PathDelim+'examples'
+ else If UnixPaths then
+ Result:=Prefix+'share'+PathDelim+'doc'+PathDelim+'fpc-$(CompilerVersion)'+PathDelim+'$(PackageName)'+PathDelim+'examples'
else
- If UnixPaths then
- Result:=Prefix+'share'+PathDelim+'doc'
- else
- Result:=BaseInstallDir+'examples';
+ Result:=BaseInstallDir+'examples'+PathDelim+'$(PackageName)';
end;
function TCustomDefaults.GetOptions: TStrings;
@@ -3742,9 +3953,25 @@ begin
end;
+function TCustomDefaults.GetPrefix: String;
+begin
+ // Use ExpandFileName to support ~/ expansion
+ if FPrefix<>'' then
+ Result:=IncludeTrailingPathDelimiter(ExpandFileName(FPrefix))
+ else
+ Result:='';
+end;
+
+
function TCustomDefaults.GetUnitInstallDir: String;
begin
- result := FixPath(GlobalDictionary.ReplaceStrings(FUnitInstallDir), False);
+ result := FUnitInstallDir;
+end;
+
+
+function TCustomDefaults.GetUnitConfigFilesInstallDir: String;
+begin
+ result := FUnitConfigFilesInstallDir;
end;
@@ -3761,6 +3988,14 @@ begin
Result:=FixPath('.'+PathDelim+'docs', True);
end;
+function TCustomDefaults.GetFPUnitSourcePath: String;
+begin
+ If (FFPUnitSourcePath='') or (FFPUnitSourcePath='0') then
+ result := FFPUnitSourcePath
+ else
+ Result:=FixPath(FFPUnitSourcePath, True);
+end;
+
function TCustomDefaults.GetBuildCPU: TCpu;
begin
result := StringToCPU({$I %FPCTARGETCPU%});
@@ -3840,11 +4075,7 @@ end;
procedure TCustomDefaults.SetPrefix(const AValue: String);
begin
if FPrefix=AValue then exit;
- // Use ExpandFileName to support ~/ expansion
- if AValue<>'' then
- FPrefix:=IncludeTrailingPathDelimiter(ExpandFileName(AValue))
- else
- FPrefix:='';
+ FPrefix:=AValue;
GlobalDictionary.AddVariable('prefix',Prefix);
GlobalDictionary.AddVariable('bininstalldir',BinInstallDir);
BaseInstallDir:='';
@@ -3875,11 +4106,18 @@ end;
procedure TCustomDefaults.SetUnitInstallDir(const AValue: String);
begin
if AValue<>'' then
- FUnitInstallDir:=IncludeTrailingPathDelimiter(AValue)
+ FUnitInstallDir:=AValue
else
FUnitInstallDir:='';
end;
+
+procedure TCustomDefaults.SetUnitConfigFilesInstallDir(const AValue: String);
+begin
+ FUnitConfigFilesInstallDir:=AValue;
+end;
+
+
procedure TCustomDefaults.SetZipPrefix(AValue: String);
begin
if FZipPrefix=AValue then Exit;
@@ -3916,7 +4154,8 @@ begin
FNoFPCCfg:=False;
FCPU:=cpuNone;
FOS:=osNone;
- FUnitInstallDir:='$(BaseInstallDir)units/$(target)/$(packagename)';
+ FUnitInstallDir:='$(baseinstalldir)units/$(target)/$(packagename)';
+ FUnitConfigFilesInstallDir:='fpmkinst/$(target)';
FBuildMode:=bmOneByOne;
FThreadsAmount:=-1;
end;
@@ -3940,7 +4179,7 @@ begin
If (FN='') then
begin
// Environment variable.
- FN:=GetEnvironmentVariable('FPMAKECFG');
+ FN:=SysUtils.GetEnvironmentVariable('FPMAKECFG');
If (FN<>'') then
If not FileExists(FN) then
FN:='';
@@ -3970,7 +4209,8 @@ var
infoSL : TStringList;
{$endif HAS_UNIT_PROCESS}
begin
- if (CPU=cpuNone) or (OS=osNone) or (FCompilerVersion='') then
+ if (CPU=cpuNone) or ((OS=osNone) and not ExplicitOSNone) or
+ (FCompilerVersion='') then
begin
{$ifdef HAS_UNIT_PROCESS}
// Detect compiler version/target from -i option
@@ -3983,13 +4223,13 @@ begin
FCompilerVersion:=infosl[0];
if CPU=cpuNone then
CPU:=StringToCPU(infosl[1]);
- if OS=osNone then
+ if (OS=osNone) and not ExplicitOSNone then
OS:=StringToOS(infosl[2]);
{$else HAS_UNIT_PROCESS}
// Defaults taken from compiler used to build fpmake
if CPU=cpuNone then
CPU:=StringToCPU({$I %FPCTARGETCPU%});
- if OS=osNone then
+ if (OS=osNone) and not ExplicitOSNone then
OS:=StringToOS({$I %FPCTARGETOS%});
if FCompilerVersion='' then
FCompilerVersion:={$I %FPCVERSION%};
@@ -4155,7 +4395,7 @@ begin
BD:='/usr/lib/fpc/'+FCompilerVersion;
end;
{$else unix}
- BD:=FixPath(GetEnvironmentVariable('FPCDIR'), False);
+ BD:=FixPath(SysUtils.GetEnvironmentVariable('FPCDIR'), False);
if BD='' then
begin
BD:=ExtractFilePath(FCompiler)+'..';
@@ -4185,11 +4425,17 @@ begin
FPackageVariants := TFPList.Create;
GlobalDictionary:=DictionaryClass.Create(Nil);
AnalyzeOptions;
- GlobalDictionary.AddVariable('BaseInstallDir',Defaults.BaseInstallDir);
+ GlobalDictionary.AddVariable('baseinstalldir',Defaults.BaseInstallDir);
GlobalDictionary.AddVariable('bininstalldir',Defaults.BinInstallDir);
GlobalDictionary.AddVariable('Target',Defaults.Target);
GlobalDictionary.AddVariable('BuildString',Defaults.BuildString);
GlobalDictionary.AddVariable('Prefix',Defaults.Prefix);
+ GlobalDictionary.AddVariable('CompilerVersion',Defaults.CompilerVersion);
+ FNotifyEventCollection := TNotifyEventCollection.create([neaBeforeCompile, neaAfterCompile, neaBeforeClean, neaAfterClean,
+ neaBeforeInstall, neaAfterInstall, neaBeforeArchive, neaAfterArchive,
+ neaBeforeManifest, neaAfterManifest, neaBeforePkgList, neaAfterPkgList,
+ neaBeforeUnInstall, neaAfterUnInstall,
+ neaBeforeCreateBuildEngine, neaAfterCreateBuildengine]);
CreatePackages;
end;
@@ -4208,6 +4454,7 @@ begin
TPackageVariants(FPackageVariants.Items[i]).Free;
end;
FreeAndNil(FPackageVariants);
+ FreeAndNil(FNotifyEventCollection);
inherited destroy;
end;
@@ -4239,11 +4486,13 @@ end;
procedure TCustomInstaller.CreateBuildEngine;
begin
+ NotifyEventCollection.CallEvents(neaBeforeCreateBuildEngine, Self);
FBuildEngine:=TBuildEngine.Create(Self);
// FBuildEngine.Defaults:=Defaults;
FBuildEngine.ListMode:=FListMode;
FBuildEngine.Verbose := (FLogLevels = AllMessages);
FBuildEngine.OnLog:=@Self.Log;
+ NotifyEventCollection.CallEvents(neaAfterCreateBuildengine, Self);
end;
@@ -4274,13 +4523,14 @@ end;
procedure TCustomInstaller.AnalyzeOptions;
- Function CheckOption(Index : Integer;const Short,Long : String; AddToOptionString: boolean = true): Boolean;
+ Function CheckOption(Index : Integer;const Short,Long : String; AddToOptionString: boolean = false): Boolean;
var
O : String;
begin
O:=Paramstr(Index);
Result:=(O='-'+short) or (O='--'+long) or (copy(O,1,Length(Long)+3)=('--'+long+'='));
- if AddToOptionString and Result then FFPMakeOptionsString := FFPMakeOptionsString+' '+O;
+ if AddToOptionString and Result then
+ FFPMakeOptionsString := FFPMakeOptionsString+' '+O;
end;
Function CheckBuildOptionSetValue(Index: Integer): boolean;
@@ -4333,7 +4583,7 @@ procedure TCustomInstaller.AnalyzeOptions;
Result:=(O='-'+short) or (O=long);
end;
- Function OptionArg(Var Index : Integer) : String;
+ Function OptionArg(Var Index : Integer; AddToOptionString: boolean = false) : String;
Var
P : Integer;
begin
@@ -4343,6 +4593,8 @@ procedure TCustomInstaller.AnalyzeOptions;
begin
Inc(Index);
Result:=Paramstr(Index);
+ if AddToOptionString then
+ FFPMakeOptionsString := FFPMakeOptionsString+' '+Result;
end
else
Error(SErrNeedArgument,[Index,ParamStr(Index)]);
@@ -4388,9 +4640,9 @@ begin
While (I<ParamCount) do
begin
Inc(I);
- if CheckOption(I,'v','verbose',false) then
+ if CheckOption(I,'v','verbose') then
FLogLevels:=AllMessages
- else if CheckOption(I,'d','debug',false) then
+ else if CheckOption(I,'d','debug') then
FLogLevels:=AllMessages+[vlDebug]
else if CheckCommand(I,'m','compile') then
FRunMode:=rmCompile
@@ -4408,12 +4660,19 @@ begin
FRunMode:=rmarchive
else if CheckCommand(I,'M','manifest') then
FRunMode:=rmManifest
+ else if CheckCommand(I,'l','pkglist') then
+ FRunMode:=rmPkgList
+ else if CheckCommand(I,'u','uninstall') then
+ FRunMode:=rmUnInstall
else if CheckOption(I,'h','help') then
Usage('',[])
else if Checkoption(I,'C','cpu') then
Defaults.CPU:=StringToCPU(OptionArg(I))
else if Checkoption(I,'O','os') then
- Defaults.OS:=StringToOS(OptionArg(I))
+ begin
+ Defaults.OS:=StringToOS(OptionArg(I));
+ Defaults.ExplicitOSNone := OptionArg(I) = OSToString(osNone);
+ end
else if Checkoption(I,'t','target') then
Defaults.Target:=OptionArg(I)
else if CheckOption(I,'l','list-commands') then
@@ -4440,9 +4699,9 @@ begin
Defaults.LocalUnitDir:=OptionArg(I)
else if CheckOption(I,'UG','globalunitdir') then
Defaults.GlobalUnitDir:=OptionArg(I)
- else if CheckOption(I,'o','options') then
+ else if CheckOption(I,'o','options', true) then
begin
- OptString := OptionArg(I);
+ OptString := OptionArg(I, true);
while OptString <> '' do
Defaults.Options.Add(SplitSpaces(OptString));
end
@@ -4456,15 +4715,17 @@ begin
Defaults.SkipCrossPrograms:=true
else if CheckOption(I,'bu','buildunit') then
Defaults.BuildMode:=bmBuildUnit
- else if CheckOption(I,'io','ignoreinvalidoption') then
+ else if CheckOption(I,'io','ignoreinvalidoption', true) then
Defaults.IgnoreInvalidOptions:=true
else if CheckOption(I,'d','doc-folder') then
Defaults.FPDocOutputDir:=OptionArg(I)
+ else if CheckOption(I,'fsp','fpunitsrcpath') then
+ Defaults.FPUnitSourcePath:=OptionArg(I)
else if assigned(CustomFpmakeCommandlineOptions) and CheckCustomOption(I,CustOptName) then
begin
if not assigned(CustomFpMakeCommandlineValues) then
CustomFpMakeCommandlineValues := TStringList.Create;
- CustomFpMakeCommandlineValues.Values[CustOptName]:=OptionArg(I)
+ CustomFpMakeCommandlineValues.Values[CustOptName]:=OptionArg(I, true)
end
else if (not CheckBuildOptionSetValue(I)) and (not Defaults.IgnoreInvalidOptions) then
begin
@@ -4509,10 +4770,12 @@ begin
LogCmd('compile',SHelpCompile);
LogCmd('build',SHelpBuild);
LogCmd('install',SHelpInstall);
+ LogCmd('uninstall',SHelpUnInstall);
LogCmd('clean',SHelpClean);
LogCmd('archive',SHelpArchive);
LogCmd('manifest',SHelpManifest);
LogCmd('zipinstall',SHelpZipInstall);
+ LogCmd('pkglist',SHelpPkgList);
Log(vlInfo,SHelpCmdOptions);
LogOption('h','help',SHelpHelp);
LogOption('l','list-commands',SHelpList);
@@ -4524,6 +4787,7 @@ begin
LogOption('ie','installexamples',SHelpInstExamples);
LogOption('bu','buildunit',SHelpUseBuildUnit);
LogOption('sp','skipcrossprograms',SHelpSkipCrossProgs);
+ LogOption('io','ignoreinvalidoption',SHelpIgnoreInvOpt);
LogArgOption('C','cpu',SHelpCPU);
LogArgOption('O','os',SHelpOS);
LogArgOption('t','target',SHelpTarget);
@@ -4535,8 +4799,8 @@ begin
LogArgOption('r','compiler',SHelpCompiler);
LogArgOption('f','config',SHelpConfig);
LogArgOption('o','options',SHelpOptions);
- LogArgOption('io','ignoreinvalidoption',SHelpIgnoreInvOpt);
LogArgOption('d', 'doc-folder', sHelpFpdocOutputDir);
+ LogArgOption('fsp', 'fpunitsrcpath', sHelpFPUnitSrcPath);
LogArgOption('zp', 'zipprefix', sHelpZipPrefix);
{$ifndef NO_THREADING}
LogArgOption('T', 'threads', sHelpThreads);
@@ -4553,25 +4817,41 @@ end;
procedure TCustomInstaller.Compile(Force: Boolean);
begin
+ FNotifyEventCollection.CallEvents(neaBeforeCompile, Self);
FBuildEngine.ForceCompile:=Force;
FBuildEngine.Compile(Packages);
+ FNotifyEventCollection.CallEvents(neaAfterCompile, Self);
end;
procedure TCustomInstaller.Clean(AllTargets: boolean);
begin
+ NotifyEventCollection.CallEvents(neaBeforeClean, Self);
BuildEngine.Clean(Packages, AllTargets);
+ NotifyEventCollection.CallEvents(neaAfterClean, Self);
end;
procedure TCustomInstaller.Install;
begin
+ NotifyEventCollection.CallEvents(neaBeforeInstall, self);
BuildEngine.Install(Packages);
+ NotifyEventCollection.CallEvents(neaAfterInstall, self);
end;
procedure TCustomInstaller.ZipInstall;
begin
+ NotifyEventCollection.CallEvents(neaBeforeInstall, self);
BuildEngine.ZipInstall(Packages);
+ NotifyEventCollection.CallEvents(neaAfterInstall, self);
+end;
+
+
+procedure TCustomInstaller.UnInstall;
+begin
+ NotifyEventCollection.CallEvents(neaBeforeUnInstall, self);
+ BuildEngine.UnInstall(Packages);
+ NotifyEventCollection.CallEvents(neaAfterUnInstall, self);
end;
@@ -4579,13 +4859,25 @@ procedure TCustomInstaller.Archive;
begin
// Force generation of manifest.xml, this is required for the repository
BuildEngine.Manifest(Packages);
+ NotifyEventCollection.CallEvents(neaBeforeArchive, self);
BuildEngine.Archive(Packages);
+ NotifyEventCollection.CallEvents(neaAfterArchive, self);
end;
procedure TCustomInstaller.Manifest;
begin
+ NotifyEventCollection.CallEvents(neaBeforeManifest, self);
BuildEngine.Manifest(Packages);
+ NotifyEventCollection.CallEvents(neaAfterManifest, self);
+end;
+
+
+procedure TCustomInstaller.PkgList;
+begin
+ NotifyEventCollection.CallEvents(neaBeforePkgList, self);
+ BuildEngine.PkgList(Packages);
+ NotifyEventCollection.CallEvents(neaAfterPkgList, self);
end;
@@ -4612,6 +4904,8 @@ begin
rmClean : Clean(False);
rmDistClean: Clean(True);
rmManifest : Manifest;
+ rmPkgList : PkgList;
+ rmUnInstall : UnInstall;
end;
except
On E : Exception do
@@ -4666,7 +4960,10 @@ begin
// With --start-dir=/path/to/sources.
FStartDir:=includeTrailingPathDelimiter(GetCurrentDir);
FExternalPackages:=TPackages.Create(TPackage);
-
+ FNotifyEventCollection := TNotifyEventCollection.create([neaAfterCompile, neaBeforeCompile, neaAfterInstall, neaBeforeInstall,
+ neaAfterClean, neaBeforeClean, neaAfterArchive, neaBeforeArchive,
+ neaAfterManifest, neaBeforeManifest, neaAfterPkgList, neaBeforePkgList,
+ neaBeforeUnInstall, neaAfterUnInstall]);
{$ifndef NO_THREADING}
InitCriticalSection(FGeneralCriticalSection);
{$endif NO_THREADING}
@@ -4676,6 +4973,7 @@ end;
destructor TBuildEngine.Destroy;
begin
FreeAndNil(FExternalPackages);
+ FreeAndNil(FNotifyEventCollection);
{$ifndef NO_THREADING}
DoneCriticalsection(FGeneralCriticalSection);
@@ -4684,6 +4982,88 @@ begin
inherited Destroy;
end;
+procedure TBuildEngine.AddFileToArchive(const APackage: TPackage; const ASourceFileName, ADestFileName: String);
+
+ function GetArchiveName: string;
+ begin
+ result := Defaults.ZipPrefix;
+ if Defaults.BuildOS in AllLimit83fsOses then
+ result := result + APackage.ShortName
+ else
+ result := result + APackage.Name;
+ result := result + MakeZipSuffix(Defaults.CPU, Defaults.OS);
+ end;
+
+{$ifdef UNIX}
+var
+ FileStat: stat;
+{$endif UNIX}
+begin
+{$ifdef CREATE_TAR_FILE}
+ {$ifdef HAS_TAR_SUPPORT}
+ if not assigned(FTarWriter) then
+ begin
+ FGZFileStream := TGZFileStream.create(GetArchiveName + ArchiveExtension, gzopenwrite);
+ try
+ FTarWriter := TTarWriter.Create(FGZFileStream);
+ FTarWriter.Permissions := [tpReadByOwner, tpWriteByOwner, tpReadByGroup, tpReadByOther];
+ FTarWriter.UserName := 'root';
+ FTarWriter.GroupName := 'root';
+ except
+ FGZFileStream.Free;
+ end;
+ end;
+{$ifdef unix}
+ if (FpStat(ASourceFileName, FileStat) = 0) and (FileStat.st_mode and S_IXUSR = S_IXUSR) then
+ begin
+ FTarWriter.Permissions := FTarWriter.Permissions + [tpExecuteByGroup];
+ FTarWriter.Permissions := FTarWriter.Permissions + [tpExecuteByOwner];
+ FTarWriter.Permissions := FTarWriter.Permissions + [tpExecuteByOther];
+ end
+ else
+ begin
+ FTarWriter.Permissions := FTarWriter.Permissions - [tpExecuteByGroup];
+ FTarWriter.Permissions := FTarWriter.Permissions - [tpExecuteByOwner];
+ FTarWriter.Permissions := FTarWriter.Permissions - [tpExecuteByOther];
+ end;
+{$endif unix}
+ FTarWriter.AddFile(ASourceFileName, ADestFileName);
+ {$endif HAS_TAR_SUPPORT}
+{$else CREATE_TAR_FILE}
+ {$ifdef HAS_UNIT_ZIPPER}
+ if not assigned(FZipper) then
+ begin
+ FZipper := TZipper.Create;
+ FZipper.FileName := GetArchiveName + ArchiveExtension;
+ end;
+
+ FZipper.Entries.AddFileEntry(ASourceFileName, ADestFileName);
+ {$endif HAS_UNIT_ZIPPER}
+{$ENDIF CREATE_TAR_FILE}
+end;
+
+procedure TBuildEngine.FinishArchive(Sender: TObject);
+begin
+ {$ifdef HAS_TAR_SUPPORT}
+ if assigned(FTarWriter) then
+ begin
+ FreeAndNil(FTarWriter);
+ FGZFileStream.Free;
+ end;
+ {$endif HAS_TAR_SUPPORT}
+ {$ifdef HAS_UNIT_ZIPPER}
+ if assigned(FZipper) then
+ begin
+ try
+ FZipper.ZipAllFiles;
+ FZipper.Clear;
+ finally
+ FreeAndNil(FZipper);
+ end;
+ end;
+ {$endif HAS_UNIT_ZIPPER}
+end;
+
procedure TBuildEngine.Error(const Msg: String);
begin
@@ -4824,7 +5204,7 @@ procedure TBuildEngine.SysDeleteFile(Const AFileName : String);
begin
if not FileExists(AFileName) then
Log(vldebug,SDbgFileDoesNotExist,[AFileName])
- else If Not DeleteFile(AFileName) then
+ else If Not SysUtils.DeleteFile(AFileName) then
Error(SErrDeletingFile,[AFileName])
else
Log(vlInfo,SInfoDeletedFile,[AFileName]);
@@ -4846,12 +5226,43 @@ end;
procedure TBuildEngine.SysDeleteTree(Const ADirectoryName: String);
function IntRemoveTree(const ADirectoryName: String) : boolean;
+{$ifdef MSWINDOWS}
+ { pulling in shellapi with all it dependent units and packages makes things too
+ complicated so just add the constants here }
+ const
+ FO_DELETE = $0003;
+ FOF_SILENT = $0004;
+ FOF_NOCONFIRMATION = $0010;
+{$endif MSWINDOWS}
var
+ i: integer;
+{$ifdef MSWINDOWS}
+ SHFileOpStruct: TSHFileOpStruct;
+ DirBuf: array[0..MAX_PATH+1] of TCHAR;
+{$else MSWINDOWS}
searchRec: TSearchRec;
SearchResult: longint;
s: string;
+{$endif MSWINDOWS}
+
begin
result := true;
+{$ifdef MSWINDOWS}
+ try
+ FillChar(SHFileOpStruct, Sizeof(SHFileOpStruct), 0);
+ FillChar(DirBuf, Sizeof(DirBuf), 0);
+ StrPCopy(DirBuf, ADirectoryName);
+ with SHFileOpStruct do
+ begin
+ pFrom := @DirBuf;
+ wFunc := FO_DELETE;
+ fFlags := FOF_NOCONFIRMATION or FOF_SILENT;
+ end;
+ Result := SHFileOperation(SHFileOpStruct) = 0;
+ except
+ Result := False;
+ end;
+{$else MSWINDOWS}
SearchResult := FindFirst(IncludeTrailingPathDelimiter(ADirectoryName)+AllFilesMask, faAnyFile+faSymLink, searchRec);
try
while SearchResult=0 do
@@ -4874,9 +5285,23 @@ procedure TBuildEngine.SysDeleteTree(Const ADirectoryName: String);
finally
FindClose(searchRec);
end;
- if not RemoveDir(ADirectoryName) then
- result := false
- else
+
+ // There were reports of RemoveDir failing due to locking-problems. To solve
+ // these the RemoveDir is tried three times, with a delay of 5 seconds. See
+ // bug 21868
+ i := 2;
+ result := RemoveDir(ADirectoryName);
+{$endif WINDOWS}
+
+ while not result and (i>0) do
+ begin
+ log(vlWarning, SWarnRetryRemDirectory, [ADirectoryName]);
+ sleep(5000);
+ dec(i);
+ result := RemoveDir(ADirectoryName);
+ end;
+
+ if result then
log(vldebug, SDbgRemovedDirectory, [ADirectoryName]);
end;
@@ -4943,7 +5368,7 @@ begin
end;
-procedure TBuildEngine.CmdCopyFiles(List: TStrings; Const DestDir: String);
+procedure TBuildEngine.CmdCopyFiles(List: TStrings; Const DestDir: String; APackage : TPackage);
Var
Args : String;
@@ -4951,7 +5376,7 @@ Var
DestFileName : String;
begin
// When the files should be written to an archive, add them
- if assigned(FZipper) then
+ if assigned(FOnCopyFile) then
begin
For I:=0 to List.Count-1 do
if List.Names[i]<>'' then
@@ -4960,35 +5385,18 @@ begin
DestFileName:=DestDir+list.ValueFromIndex[i]
else
DestFileName:=list.ValueFromIndex[i];
- FZipper.Entries.AddFileEntry(List.names[i], DestFileName);
+ FOnCopyFile(APackage, AddPathPrefix(APackage, List.Names[i]), DestFileName);
end
else
- FZipper.Entries.AddFileEntry(List[i], DestDir+ExtractFileName(List[i]));
+ FOnCopyFile(APackage, AddPathPrefix(APackage, List[i]), DestDir+ExtractFileName(List[i]));
Exit;
end;
- {$ifdef HAS_TAR_SUPPORT}
- if assigned(FTarWriter) then
- begin
- For I:=0 to List.Count-1 do
- if List.Names[i]<>'' then
- begin
- if IsRelativePath(list.ValueFromIndex[i]) then
- DestFileName:=DestDir+list.ValueFromIndex[i]
- else
- DestFileName:=list.ValueFromIndex[i];
- FTarWriter.AddFile(List.names[i], DestFileName);
- end
- else
- FTarWriter.AddFile(List[i], DestDir+ExtractFileName(List[i]));
- Exit;
- end;
- {$endif HAS_TAR_SUPPORT}
// Copy the files to their new location on disk
CmdCreateDir(DestDir);
If (Defaults.Copy<>'') then
begin
- Args:=FileListToString(List,'');
+ Args:=FileListToString(List, IncludeTrailingPathDelimiter(GPathPrefix));
Args:=Args+' '+DestDir;
ExecuteCommand(Defaults.Copy,Args);
end
@@ -5001,10 +5409,10 @@ begin
else
DestFileName:=list.ValueFromIndex[i];
CmdCreateDir(ExtractFilePath(DestFileName));
- SysCopyFile(List.names[i],DestFileName)
+ SysCopyFile(AddPathPrefix(APackage, List.Names[i]),DestFileName)
end
else
- SysCopyFile(List[i],DestDir);
+ SysCopyFile(AddPathPrefix(APackage, List[i]), DestDir);
end;
@@ -5051,6 +5459,28 @@ begin
SysDeleteFile(List[i]);
end;
+procedure TBuildEngine.CmdDeleteDestFiles(List: TStrings; Const DestDir: String);
+
+Var
+ I : Integer;
+ DeleteFileName : String;
+begin
+ // Delete files from their location on disk
+ For I:=0 to List.Count-1 do
+ begin
+ if List.Names[i]<>'' then
+ begin
+ if IsRelativePath(list.ValueFromIndex[i]) then
+ DeleteFileName:=DestDir+list.ValueFromIndex[i]
+ else
+ DeleteFileName:=list.ValueFromIndex[i];
+ end
+ else
+ DeleteFileName:=DestDir+ExtractFileName(list[i]);
+ SysDeleteFile(DeleteFileName);
+ end;
+end;
+
procedure TBuildEngine.CmdArchiveFiles(List: TStrings; Const ArchiveFile: String);
Var
@@ -5060,7 +5490,7 @@ begin
SysArchiveFiles(List,ArchiveFile)
else
begin
- S:=FileListToString(List,'');
+ S:=FileListToString(List,IncludeTrailingPathDelimiter(GPathPrefix));
SplitCommand(Defaults.Archive,C,O);
If (O='') then
O:=ArchiveFile+' '+S
@@ -5168,7 +5598,7 @@ begin
Cmd:=C.Command;
If (ExtractFilePath(Cmd)='') then
- Cmd:=ExeSearch(Cmd,GetEnvironmentvariable('PATH'));
+ Cmd:=ExeSearch(Cmd,SysUtils.GetEnvironmentvariable('PATH'));
If (SourceFile<>'') and (DestFile<>'') then
begin
@@ -5250,17 +5680,25 @@ end;
procedure TBuildEngine.GetDirectoriesFromFilelist(const AFileList, ADirectoryList: TStringList);
var
i: integer;
+ s: string;
begin
ADirectoryList.Sorted:=true;
ADirectoryList.Duplicates:=dupIgnore;
for i := 0 to AFileList.Count-1 do
- ADirectoryList.Add(ExtractFileDir(AFileList.Strings[i]));
+ begin
+ s := ExtractFileDir(AFileList.Strings[i]);
+ if s <> '' then
+ ADirectoryList.Add(s);
+ end;
end;
procedure TBuildEngine.AddPackageMacrosToDictionary(const APackage: TPackage; ADictionary: TDictionary);
begin
APackage.Dictionary.AddVariable('UNITSOUTPUTDIR',AddPathPrefix(APackage,APackage.GetUnitsOutputDir(Defaults.CPU,Defaults.OS)));
APackage.Dictionary.AddVariable('BINOUTPUTDIR',AddPathPrefix(APackage,APackage.GetBinOutputDir(Defaults.CPU,Defaults.OS)));
+ APackage.Dictionary.AddVariable('PACKAGEVERSION',APackage.Version);
+ APackage.Dictionary.AddVariable('PACKAGEDIRECTORY',APackage.Directory);
+ APackage.Dictionary.AddVariable('PackageName',APackage.Name);
end;
Procedure TBuildEngine.ResolveFileNames(APackage : TPackage; ACPU:TCPU;AOS:TOS;DoChangeDir:boolean=true; WarnIfNotFound:boolean=true);
@@ -5410,7 +5848,54 @@ begin
end;
-function TBuildEngine.GetUnitDir(APackage:TPackage):String;
+procedure TBuildEngine.ResolvePackagePaths(APackage:TPackage);
+
+ procedure ResolveUnitConfigFilenameForBasePath(ABasePath: string);
+ var
+ IsPackageSourceLocation: boolean;
+ ASubDir: string;
+ AnUnitConfigFilename: string;
+ PackageBaseDir: string;
+ begin
+ if APackage.State=tsNotFound then
+ // When the state is tsNotFound, the package is not part of this fpmake, and only the package-name is known.
+ // In this case search for the package-name.
+ // This is not right for packages where the package-name and directory name of the source-files are
+ // not the same. We don't have a better option, though.
+ ASubDir:=APackage.Name
+ else
+ ASubDir:=APackage.Directory;
+
+ IsPackageSourceLocation:=FileExists(IncludeTrailingPathDelimiter(IncludeTrailingPathDelimiter(ABasePath)+ASubDir)+FPMakePPFile);
+ if IsPackageSourceLocation then
+ begin
+ PackageBaseDir:=IncludeTrailingPathDelimiter(IncludeTrailingPathDelimiter(ABasePath)+ASubDir);
+ AnUnitConfigFileName:=PackageBaseDir+APackage.GetUnitConfigOutputFilename(Defaults.CPU,Defaults.OS);
+ PackageBaseDir:=IncludeTrailingPathDelimiter(PackageBaseDir+APackage.GetUnitsOutputDir(defaults.CPU, Defaults.OS));
+ end
+ else
+ begin
+ PackageBaseDir:=IncludeTrailingPathDelimiter(IncludeTrailingPathDelimiter(ABasePath));
+ AnUnitConfigFileName:=IncludeTrailingPathDelimiter(GetUnitConfigFilesInstallDir(ABasePath))+APackage.Name+FpmkExt;
+ PackageBaseDir:=IncludeTrailingPathDelimiter(IncludeTrailingPathDelimiter(ABasePath)+APackage.GetUnitsOutputDir(Defaults.CPU, Defaults.OS))+APackage.Name;
+ end;
+
+ if (PackageBaseDir<>'') and SysDirectoryExists(PackageBaseDir) then
+ begin
+ APackage.UnitDir:=PackageBaseDir;
+ if IsPackageSourceLocation then
+ // Set the state to tsNoCompile and not tsCompiled. Because packages
+ // in the tsCompiled state trigger a rebuild of packages that depend
+ // on it.
+ APackage.FTargetState:=tsNoCompile
+ else if not (APackage.FTargetState in [tsCompiled, tsNoCompile]) then
+ APackage.FTargetState:=tsInstalled;
+ AnUnitConfigFilename:=APackage.Dictionary.ReplaceStrings(AnUnitConfigFilename);
+ if FileExists(AnUnitConfigFilename) then
+ APackage.UnitConfigFileName:=AnUnitConfigFilename;
+ end;
+ end;
+
begin
if APackage.UnitDir='' then
begin
@@ -5420,48 +5905,23 @@ begin
// - LocalUnitDir
// - GlobalUnitDir
if (APackage.State in [tsCompiled, tsNoCompile, tsInstalled]) then
- begin
- APackage.UnitDir:=IncludeTrailingPathDelimiter(FStartDir)+IncludeTrailingPathDelimiter(APackage.Directory)+APackage.GetUnitsOutputDir(Defaults.CPU,Defaults.OS);
- end;
+ ResolveUnitConfigFilenameForBasePath(FStartDir);
if (APackage.UnitDir='') and
(Defaults.LocalUnitDir<>'') then
- begin
- APackage.UnitDir:=IncludeTrailingPathDelimiter(Defaults.LocalUnitDir)+APackage.Name+PathDelim+APackage.GetPackageUnitInstallDir(defaults.CPU, Defaults.OS);
- if not SysDirectoryExists(APackage.UnitDir) then
- APackage.UnitDir:='';
- end;
- if APackage.UnitDir='' then
- begin
- APackage.UnitDir:=IncludeTrailingPathDelimiter(Defaults.GlobalUnitDir)+APackage.Name+PathDelim+APackage.GetPackageUnitInstallDir(defaults.CPU, Defaults.OS);
- if not SysDirectoryExists(APackage.UnitDir) then
- APackage.UnitDir:=DirNotFound;
- end;
+ ResolveUnitConfigFilenameForBasePath(Defaults.LocalUnitDir);
+ if (APackage.UnitDir='') and
+ (Defaults.GlobalUnitDir<>'') then
+ ResolveUnitConfigFilenameForBasePath(Defaults.GlobalUnitDir);
- if (APackage.UnitDir<>DirNotFound) then
- begin
- if FileExists(IncludeTrailingPathDelimiter(APackage.UnitDir)+FPMakePPFile) then
- begin
- // The package is not installed, but the source-path is detected.
- // It is an external package so it is impossible to compile it, so
- // assume that it has been compiled earlier.
- APackage.UnitDir := IncludeTrailingPathDelimiter(APackage.UnitDir) + APackage.GetUnitsOutputDir(Defaults.CPU,Defaults.OS);
- // If the unit-directory does not exist, you know for sure that
- // the package is not compiled
- if not SysDirectoryExists(APackage.UnitDir) then
- APackage.UnitDir:=DirNotFound
- else
- // Set the state to tsNoCompile and not tsCompiled. Because packages
- // in the tsCompiled state trigger a rebuild of packages that depend
- // on it.
- APackage.FTargetState:=tsNoCompile;
- end
- else if not (APackage.FTargetState in [tsCompiled, tsNoCompile]) then
- begin
- APackage.FTargetState:=tsInstalled;
- end;
- end;
+ if (APackage.UnitDir='') then
+ APackage.UnitDir:=DirNotFound;
end;
+end;
+
+function TBuildEngine.GetUnitDir(APackage:TPackage):String;
+begin
+ ResolvePackagePaths(APackage);
// Special error marker to prevent searches in case of error
if APackage.UnitDir=DirNotFound then
Result:=''
@@ -5639,7 +6099,7 @@ begin
// Convert to string
Result:='';
for i:=0 to Args.Count-1 do
- Result:=Result+' '+maybequoted(Args[i]);
+ Result:=Result+' '+maybequoted(APackage.Dictionary.ReplaceStrings(Args[i]));
Delete(result,1,1);
if Defaults.UseEnvironment and assigned(Env) then
@@ -5669,7 +6129,7 @@ begin
FCompiler:=Defaults.Compiler;
If (ExtractFilePath(FCompiler)='') then
begin
- S:=ExeSearch(FCompiler,GetEnvironmentVariable('PATH'));
+ S:=ExeSearch(FCompiler,SysUtils.GetEnvironmentVariable('PATH'));
If (S<>'') then
FCompiler:=S;
end;
@@ -5801,8 +6261,8 @@ begin
end;
end;
- // Check main source
- If not Result then
+ // Check main source, only if the TargetSourceFileName is found
+ If not Result and (ATarget.TargetSourceFileName<>'') then
begin
TFN := AddPathPrefix(APackage,ATarget.TargetSourceFileName);
if FileExists(TFN) then
@@ -6030,7 +6490,7 @@ begin
end;
-function TBuildEngine.CheckExternalPackage(Const APackageName : String):TPackage;
+function TBuildEngine.CheckExternalPackage(Const APackageName : String; ErrorOnFailure: boolean):TPackage;
var
S : String;
F : String;
@@ -6052,8 +6512,8 @@ begin
begin
Log(vldebug, SDbgExternalDependency, [APackageName,S]);
// Load unit config if it exists
- F:=IncludeTrailingPathDelimiter(S)+UnitConfigFile;
- if FileExists(F) then
+ F:=result.UnitConfigFileName;
+ if (F<>'') then
begin
Log(vlDebug, Format(SDbgLoading, [F]));
Result.LoadUnitConfigFromFile(F);
@@ -6063,7 +6523,7 @@ begin
// Check recursive implicit dependencies
CompileDependencies(Result);
end
- else
+ else if ErrorOnFailure then
Error(SErrDependencyNotFound,[APackageName]);
end;
@@ -6097,7 +6557,7 @@ begin
end
else
begin
- D.Target:=CheckExternalPackage(D.Value);
+ D.Target:=CheckExternalPackage(D.Value, true);
P:=TPackage(D.Target);
end;
if (D.RequireChecksum<>$ffffffff) and
@@ -6109,7 +6569,7 @@ begin
end;
end;
-function TBuildEngine.CheckDependencies(APackage: TPackage): TCheckDependencyResult;
+function TBuildEngine.CheckDependencies(APackage: TPackage; ErrorOnFailure: boolean): TCheckDependencyResult;
Var
I : Integer;
P : TPackage;
@@ -6139,7 +6599,7 @@ begin
end
else
begin
- D.Target:=CheckExternalPackage(D.Value);
+ D.Target:=CheckExternalPackage(D.Value, ErrorOnFailure);
P:=TPackage(D.Target);
end;
if (D.RequireChecksum<>$ffffffff) and
@@ -6283,7 +6743,8 @@ begin
if APackage.BuildMode=bmBuildUnit then
begin
APackage.FBUTargets := TTargets.Create(TTarget);
- if Defaults.OS in AllLimit83fsOses then
+ if (Defaults.BuildOS in AllLimit83fsOses) or
+ (Defaults.OS in AllLimit83fsOses) then
BUName := 'BUnit.pp'
else
BUName := 'BuildUnit_'+StringReplace(APackage.Name,'-','_',[rfReplaceAll])+'.pp';
@@ -6336,7 +6797,7 @@ begin
if RegenerateUnitconfigFile then
begin
- UC:=IncludeTrailingPathDelimiter(AddPathPrefix(APackage,APackage.GetUnitConfigOutputDir(Defaults.CPU,Defaults.OS)))+UnitConfigFile;
+ UC:=AddPathPrefix(APackage, APackage.GetUnitConfigOutputFilename(Defaults.CPU,Defaults.OS));
Log(vlInfo, Format(SDbgGenerating, [UC]));
APackage.SaveUnitConfigToFile(UC,Defaults.CPU,Defaults.OS);
end;
@@ -6362,7 +6823,7 @@ begin
end;
//execute fpdoc
- Cmd:=ExeSearch('fpdoc',GetEnvironmentvariable('PATH'));
+ Cmd:=ExeSearch('fpdoc',SysUtils.GetEnvironmentvariable('PATH'));
if Cmd = '' then Cmd := 'fpdoc';
ExecuteProcess(Cmd, sFPDocFormat + cmdOpts);
end;
@@ -6409,7 +6870,7 @@ begin
// dependencies.
if Defaults.ThreadsAmount=-1 then
CompileDependencies(APackage)
- else if CheckDependencies(APackage)=cdNotYetAvailable then
+ else if CheckDependencies(APackage, true)=cdNotYetAvailable then
begin
log(vlInfo,'Delaying package '+apackage.name);
result := False;
@@ -6429,7 +6890,7 @@ begin
end;
-Function TBuildEngine.InstallPackageFiles(APAckage : TPackage; tt : TTargetTypes; Const Dest : String):Boolean;
+Function TBuildEngine.InstallPackageFiles(APAckage : TPackage; tt : TTargetTypes; Const Dest : String; Const InstallMode: TInstallMode):Boolean;
Var
List : TStringList;
begin
@@ -6440,27 +6901,57 @@ begin
if (List.Count>0) then
begin
Result:=True;
- CmdCopyFiles(List,Dest);
+ case InstallMode of
+ imInstall: CmdCopyFiles(List,Dest,APackage);
+ imUnInstall: CmdDeleteDestFiles(List,Dest);
+ end;
end;
Finally
List.Free;
end;
end;
+function TBuildEngine.GetUnitConfigFilesInstallDir(ABaseDir: string): String;
+begin
+ result := FixPath(ABaseDir)+Defaults.UnitConfigFilesInstallDir;
+end;
+
procedure TBuildEngine.InstallUnitConfigFile(APAckage: TPackage; const Dest: String);
Var
List : TStringList;
+ ConfigFileName: String;
+ ConfigFileContent: TStrings;
+ Index: integer;
begin
+ ConfigFileName:=APackage.GetUnitConfigOutputFilename(Defaults.CPU,Defaults.OS);
List:=TStringList.Create;
Try
- List.add(IncludeTrailingPathDelimiter(APackage.GetUnitConfigOutputDir(Defaults.CPU,Defaults.OS))+UnitConfigFile);
- CmdCopyFiles(List,Dest);
+ if Defaults.FPUnitSourcePath<>'' then
+ begin
+ ConfigFileContent := TStringList.Create;
+ try
+ ConfigFileContent.LoadFromFile(AddPathPrefix(APAckage, ConfigFileName));
+ if Defaults.FPUnitSourcePath='0' then
+ begin
+ Index := ConfigFileContent.IndexOfName(KeySourcePath);
+ if Index > -1 then
+ ConfigFileContent.Delete(Index)
+ end
+ else
+ ConfigFileContent.Values[KeySourcePath] := Defaults.FPUnitSourcePath;
+ ConfigFileContent.SaveToFile(AddPathPrefix(APAckage, ConfigFileName));
+ finally
+ ConfigFileContent.Free;
+ end;
+ end;
+ List.Values[ConfigFileName] := APAckage.Name + FpmkExt;
+ CmdCopyFiles(List,Dest,APackage);
Finally
List.Free;
end;
end;
-function TBuildEngine.InstallPackageSourceFiles(APAckage : TPackage; stt : TSourceTypes; ttt : TTargetTypes; Const Dest : String): Boolean;
+function TBuildEngine.InstallPackageSourceFiles(APAckage : TPackage; stt : TSourceTypes; ttt : TTargetTypes; Const Dest : String; Const InstallMode: TInstallMode): Boolean;
Var
List : TStringList;
begin
@@ -6471,7 +6962,10 @@ begin
if (List.Count>0) then
begin
Result:=True;
- CmdCopyFiles(List,Dest);
+ case InstallMode of
+ imInstall: CmdCopyFiles(List,Dest,APackage);
+ imUnInstall: CmdDeleteDestFiles(List,Dest);
+ end;
end;
Finally
List.Free;
@@ -6499,62 +6993,129 @@ begin
end;
-procedure TBuildEngine.Install(APackage: TPackage);
+procedure TBuildEngine.Install(APackage: TPackage; AnArchiveFiles: boolean);
Var
UC,D : String;
B : Boolean;
begin
If (Apackage.State<>tsCompiled) then
MaybeCompile(APackage);
+ Log(vlCommand,SInfoInstallingPackage,[APackage.Name]);
+ if AnArchiveFiles then
+ FinishArchive(APackage);
try
- Log(vlCommand,SInfoInstallingPackage,[APackage.Name]);
If (APackage.Directory<>'') then
- EnterDir(APackage.Directory);
+ GPathPrefix := APackage.Directory;
+ if AnArchiveFiles then
+ begin
+ FOnCopyFile:=@AddFileToArchive;
+ FOnFinishCopy:=@FinishArchive;
+ end;
DoBeforeInstall(APackage);
// units
B:=false;
- GlobalDictionary.AddVariable('PackageName',APackage.Name);
- GlobalDictionary.AddVariable('unitinstalldir',Defaults.UnitInstallDir);
+ AddPackageMacrosToDictionary(APackage, APackage.Dictionary);
+ GlobalDictionary.AddVariable('unitinstalldir', FixPath(APackage.Dictionary.ReplaceStrings(Defaults.UnitInstallDir), False));
GlobalDictionary.AddVariable('packageunitinstalldir',APackage.GetPackageUnitInstallDir(Defaults.CPU,Defaults.OS));
- D:=IncludeTrailingPathDelimiter(Defaults.BaseInstallDir);
+ D:=FixPath(Defaults.Prefix,true);
// This is to install the TPackage.Installfiles, which are not related to any
// target
- if InstallPackageFiles(APackage,[],D) then
+ if InstallPackageFiles(APackage,[],D, imInstall) then
B:=true;
- D:=IncludeTrailingPathDelimiter(Defaults.UnitInstallDir)+APackage.GetPackageUnitInstallDir(Defaults.CPU,Defaults.OS);
- if InstallPackageFiles(APackage,[ttUnit, ttImplicitUnit],D) then
+ D:=FixPath(APackage.Dictionary.ReplaceStrings(Defaults.UnitInstallDir), True)+APackage.GetPackageUnitInstallDir(Defaults.CPU,Defaults.OS);
+ if InstallPackageFiles(APackage,[ttUnit, ttImplicitUnit],D, imInstall) then
B:=true;
// By default do not install the examples. Maybe add an option for this later
//if InstallPackageFiles(APAckage,ttExampleUnit,D) then
// B:=true;
// Unit (dependency) configuration if there were units installed
- D:=IncludeTrailingPathDelimiter(Defaults.UnitInstallDir);
+ D:=FixPath(APackage.Dictionary.ReplaceStrings(GetUnitConfigFilesInstallDir(Defaults.BaseInstallDir)), True);
if B then
InstallUnitConfigFile(APackage,D);
// Programs
D:=IncludeTrailingPathDelimiter(Defaults.BinInstallDir);
- InstallPackageFiles(APAckage,[ttProgram],D);
+ InstallPackageFiles(APAckage,[ttProgram],D, imInstall);
//InstallPackageFiles(APAckage,ttExampleProgram,D);
// Documentation
- D:=IncludeTrailingPathDelimiter(Defaults.DocInstallDir)+'fpc-'+APackage.FileName+PathDelim;
- InstallPackageSourceFiles(APackage,[stDoc],[],D);
+ D:=FixPath(APackage.Dictionary.ReplaceStrings(Defaults.DocInstallDir), True);
+ InstallPackageSourceFiles(APackage,[stDoc],[],D, imInstall);
// Examples
if Defaults.InstallExamples then
begin
- D:=IncludeTrailingPathDelimiter(Defaults.ExamplesInstallDir)+'fpc-'+APackage.FileName+PathDelim+'examples'+PathDelim;
- InstallPackageSourceFiles(APackage,[stExample],[ttExampleProgram,ttExampleUnit],D);
+ D:=FixPath(APackage.Dictionary.ReplaceStrings(Defaults.ExamplesInstallDir), True);
+ InstallPackageSourceFiles(APackage,[stExample],[ttExampleProgram,ttExampleUnit],D, imInstall);
end;
// Done.
APackage.FTargetState:=tsInstalled;
DoAfterInstall(APackage);
+ if AnArchiveFiles then
+ begin
+ FOnCopyFile:=nil;
+ FOnFinishCopy:=nil;
+ end;
Finally
If (APackage.Directory<>'') then
- EnterDir('');
+ GPathPrefix := '';
end;
end;
+procedure TBuildEngine.UnInstall(APackage: TPackage);
+Var
+ D : String;
+begin
+ CheckDependencies(APackage, False);
+ ResolvePackagePaths(APackage);
+ APackage.SetDefaultPackageVariant;
+ If (Apackage.State<>tsInstalled) then
+ begin
+ Error(SErrorPkgNotInstalled,[APackage.Name]);
+ exit;
+ end;
+ Log(vlCommand,SInfoUnInstallingPackage,[APackage.Name]);
+
+ //DoBeforeUnInstall(APackage);
+
+ // units
+ AddPackageMacrosToDictionary(APackage, APackage.Dictionary);
+ GlobalDictionary.AddVariable('unitinstalldir', FixPath(APackage.Dictionary.ReplaceStrings(Defaults.UnitInstallDir), False));
+ GlobalDictionary.AddVariable('packageunitinstalldir',APackage.GetPackageUnitInstallDir(Defaults.CPU,Defaults.OS));
+
+ D:=FixPath(Defaults.Prefix,true);
+ // This is to uninstall the TPackage.Installfiles, which are not related to any
+ // target
+ InstallPackageFiles(APackage,[],D,imUnInstall);
+ D:=FixPath(APackage.Dictionary.ReplaceStrings(Defaults.UnitInstallDir), True)+APackage.GetPackageUnitInstallDir(Defaults.CPU,Defaults.OS);
+ InstallPackageFiles(APackage,[ttUnit, ttImplicitUnit],D, imUnInstall);
+ SysDeleteDirectory(D);
+
+ // Unit (dependency) configuration
+ D:=FixPath(APackage.Dictionary.ReplaceStrings(GetUnitConfigFilesInstallDir(Defaults.BaseInstallDir)), True);
+ SysDeleteFile(D+APackage.Name+FpmkExt);
+
+ // Programs
+ D:=IncludeTrailingPathDelimiter(Defaults.BinInstallDir);
+ InstallPackageFiles(APAckage,[ttProgram],D, imUnInstall);
+ SysDeleteDirectory(D);
+ // Documentation
+ D:=FixPath(APackage.Dictionary.ReplaceStrings(Defaults.DocInstallDir), True);
+ InstallPackageSourceFiles(APackage,[stDoc],[],D, imUnInstall);
+ SysDeleteDirectory(D);
+ // Examples
+ if Defaults.InstallExamples then
+ begin
+ D:=FixPath(APackage.Dictionary.ReplaceStrings(Defaults.ExamplesInstallDir), True);
+ InstallPackageSourceFiles(APackage,[stExample],[ttExampleProgram,ttExampleUnit],D, imUnInstall);
+ SysDeleteDirectory(D);
+ end;
+ // Done.
+ APackage.FTargetState:=tsNeutral;
+
+ //DoAfterUnInstall(APackage);
+end;
+
+
procedure TBuildEngine.DoBeforeArchive(APackage: TPackage);
begin
ExecuteCommands(APackage.Commands,caBeforeArchive);
@@ -6582,13 +7143,17 @@ Var
i: integer;
ICPU : TCPU;
IOS : TOS;
+{$ifdef HAS_UNIT_ZIPPER}
+ ZipFile: TZipper;
+{$endif HAS_UNIT_ZIPPER}
begin
- A:=FStartDir+ APackage.FileName + ZipExt;
+ A:=Defaults.ZipPrefix + APackage.FileName + MakeZipSuffix(cpuNone, osNone) + ZipExt;
Log(vlInfo,SInfoArchivingPackage,[APackage.Name,A]);
try
If (APackage.Directory<>'') then
- EnterDir(APackage.Directory);
+ GPathPrefix := APackage.Directory;
DoBeforeArchive(Apackage);
+ AddPackageMacrosToDictionary(APackage, APackage.Dictionary);
L:=TStringList.Create;
L.Sorted:=true;
L.Duplicates:=dupIgnore;
@@ -6616,24 +7181,31 @@ begin
{$ifdef HAS_UNIT_ZIPPER}
if not Assigned(ArchiveFilesProc) then
begin
- FZipFile := TZipper.Create;
- FZipFile.ZipFiles(A, L);
+ ZipFile := TZipper.Create;
+ try
+ ZipFile.FileName:=A;
+ A := APackage.Dictionary.ReplaceStrings(Defaults.FPrefix);
+ if A <> '' then
+ A:=IncludeTrailingPathDelimiter(A);
+ for i := 0 to L.Count-1 do
+ begin
+ ZipFile.Entries.AddFileEntry(AddPathPrefix(APackage, L[i]), A+L[i]);
+ end;
+ ZipFile.ZipAllFiles;
+ finally
+ ZipFile.Free;
+ end;
end
else
{$endif HAS_UNIT_ZIPPER}
CmdArchiveFiles(L,A);
Finally
L.Free;
-
-{$ifdef HAS_UNIT_ZIPPER}
- if not Assigned(ArchiveFilesProc) then
- FreeAndNil(FZipFile);
-{$endif HAS_UNIT_ZIPPER}
end;
DoAfterArchive(Apackage);
Finally
If (APackage.Directory<>'') then
- EnterDir('');
+ GPathPrefix := '';
end;
end;
@@ -6668,6 +7240,10 @@ begin
try
If (APackage.Directory<>'') then
EnterDir(APackage.Directory);
+ // Check for inherited options (packagevariants) from other packages
+ ResolveDependencies(APackage.Dependencies, (APackage.Collection as TPackages));
+ CheckDependencies(APackage, False);
+ APackage.SetDefaultPackageVariant;
DoBeforeClean(Apackage);
AddPackageMacrosToDictionary(APackage, APackage.Dictionary);
if AllTargets then
@@ -6681,6 +7257,10 @@ begin
begin
if OSCPUSupported[AOS,ACPU] then
begin
+ // First perform a normal clean, to be sure that all files
+ // which are not in the units- or bin-dir are cleaned. (like
+ // the .fpm file)
+ Clean(APackage, ACPU, AOS);
DirectoryList.Add(ExtractFileDir(APackage.GetUnitsOutputDir(ACPU,AOS)));
DirectoryList.Add(ExtractFileDir(APackage.GetBinOutputDir(ACPU,AOS)));
end;
@@ -6689,13 +7269,6 @@ begin
finally
DirectoryList.Free;
end;
-{ for ACPU:=low(TCpu) to high(TCpu) do
- for AOS:=low(TOS) to high(TOS) do
- begin
- if FileExists(APackage.GetUnitsOutputDir(ACPU,AOS)) or
- FileExists(APackage.GetBinOutputDir(ACPU,AOS)) then
- Clean(APackage,ACPU,AOS);
- end;}
end
else
Clean(APackage, Defaults.CPU, Defaults.OS);
@@ -6713,7 +7286,7 @@ Var
begin
List:=TStringList.Create;
try
- List.Add(APackage.GetUnitsOutputDir(ACPU,AOS) + PathDelim + UnitConfigFile);
+ List.Add(APackage.GetUnitConfigOutputFilename(ACPU,AOS));
APackage.GetCleanFiles(List,ACPU,AOS);
if (List.Count>0) then
begin
@@ -6746,28 +7319,10 @@ begin
end;
-Procedure TBuildEngine.Manifest(APackage : TPackage);
-Var
- L : TStrings;
- PD,
- MF : String;
+Procedure TBuildEngine.PkgList(PkgList: TStrings; APackage : TPackage);
begin
- L:=TStringList.Create;
- Try
- Log(vlInfo, Format(SInfoManifestPackage,[APackage.Name]));
- PD:=APackage.Directory;
- if PD<>'' then
- PD:=IncludeTrailingPathDelimiter(PD);
- MF:=PD+ManifestFile;
- Log(vlDebug, Format(SDbgGenerating, [MF]));
- L.Add('<?xml version="1.0"?>');
- L.Add('<packages>');
- APackage.GetManifest(L);
- L.Add('</packages>');
- L.SaveToFile(MF);
- Finally
- L.Free;
- end;
+ Log(vlInfo, Format(SInfoPkgListPackage,[APackage.Name]));
+ APackage.ListPackage(PkgList);
end;
@@ -6852,8 +7407,7 @@ Var
{$endif NO_THREADING}
begin
- If Assigned(BeforeCompile) then
- BeforeCompile(Self);
+ NotifyEventCollection.CallEvents(neaBeforeCompile, Self);
FProgressMax:=Packages.Count;
FProgressCount:=0;
@@ -6912,8 +7466,7 @@ begin
raise Exception.Create(ErrorMessage);
{$endif NO_THREADING}
end;
- If Assigned(AfterCompile) then
- AfterCompile(Self);
+ NotifyEventCollection.CallEvents(neaAfterCompile, Self);
end;
@@ -6922,103 +7475,67 @@ Var
I : Integer;
P : TPackage;
begin
- If Assigned(BeforeInstall) then
- BeforeInstall(Self);
+ NotifyEventCollection.CallEvents(neaBeforeInstall, Self);
For I:=0 to Packages.Count-1 do
begin
P:=Packages.PackageItems[i];
If PackageOK(P) then
begin
- Install(P);
+ Install(P, False);
log(vlWarning, SWarnInstallationPackagecomplete, [P.Name, Defaults.Target]);
end
else
log(vlWarning,SWarnSkipPackageTarget,[P.Name, Defaults.Target]);
end;
- If Assigned(AfterInstall) then
- AfterInstall(Self);
+ NotifyEventCollection.CallEvents(neaAfterInstall, Self);
end;
procedure TBuildEngine.ZipInstall(Packages: TPackages);
- procedure CreateZipFile;
- var
- I : Integer;
- P : TPackage;
- begin
- FZipper := TZipper.Create;
- try
- For I:=0 to Packages.Count-1 do
- begin
- P:=Packages.PackageItems[i];
- If PackageOK(P) then
- begin
- FZipper.FileName := Defaults.ZipPrefix + P.Name + '.' + MakeTargetString(Defaults.CPU,Defaults.OS) +'.zip';
- Install(P);
- FZipper.ZipAllFiles;
- FZipper.Clear;
- log(vlWarning, SWarnInstallationPackagecomplete, [P.Name, Defaults.Target]);
- end
- else
- log(vlWarning,SWarnSkipPackageTarget,[P.Name, Defaults.Target]);
- end;
- finally
- FZipper.Free;
- end;
- end;
+var
+ I : Integer;
+ P : TPackage;
- {$ifdef HAS_TAR_SUPPORT}
- procedure CreateTarFile;
- var
- I : Integer;
- P : TPackage;
- S : TGZFileStream;
- begin;
+begin
+ NotifyEventCollection.CallEvents(neaBeforeInstall, Self);
+
+ if Defaults.UnixPaths then
+ Defaults.IntSetBaseInstallDir('lib/fpc/' + Defaults.FCompilerVersion+ '/')
+ else
+ Defaults.IntSetBaseInstallDir('');
+
+ try
For I:=0 to Packages.Count-1 do
begin
P:=Packages.PackageItems[i];
If PackageOK(P) then
begin
- S := TGZFileStream.create(Defaults.ZipPrefix + P.Name + '.' + MakeTargetString(Defaults.CPU,Defaults.OS) +'.tar.gz', gzopenwrite);
- try
- FTarWriter := TTarWriter.Create(S);
- FTarWriter.Permissions := [tpReadByOwner, tpWriteByOwner, tpReadByGroup, tpReadByOther];
- FTarWriter.UserName := 'root';
- FTarWriter.GroupName := 'root';
- try
- Install(P);
- log(vlWarning, SWarnInstallationPackagecomplete, [P.Name, Defaults.Target]);
- finally
- FTarWriter.Free;
- end;
- finally
- S.Free;
- end;
+ Install(P, True);
+ log(vlWarning, SWarnInstallationPackagecomplete, [P.Name, Defaults.Target]);
end
else
log(vlWarning,SWarnSkipPackageTarget,[P.Name, Defaults.Target]);
end;
+ finally
+ FinishArchive(P);
end;
- {$endif HAS_TAR_SUPPORT}
-begin
- If Assigned(BeforeInstall) then
- BeforeInstall(Self);
-
- Defaults.IntSetBaseInstallDir('lib/fpc/' + Defaults.FCompilerVersion+ '/');
+ NotifyEventCollection.CallEvents(neaAfterInstall, Self);
+end;
- {$ifdef unix}
- {$ifdef HAS_TAR_SUPPORT}
- CreateTarFile;
- {$else HAS_TAR_SUPPORT}
- CreateZipFile;
- {$endif HAS_TAR_SUPPORT}
- {$else unix}
- CreateZipFile;
- {$endif unix}
- If Assigned(AfterInstall) then
- AfterInstall(Self);
+procedure TBuildEngine.UnInstall(Packages: TPackages);
+Var
+ I : Integer;
+ P : TPackage;
+begin
+ NotifyEventCollection.CallEvents(neaBeforeUnInstall, Self);
+ For I:=0 to Packages.Count-1 do
+ begin
+ P:=Packages.PackageItems[i];
+ UnInstall(P);
+ end;
+ NotifyEventCollection.CallEvents(neaAfterUnInstall, Self);
end;
@@ -7027,44 +7544,89 @@ Var
I : Integer;
P : TPackage;
begin
- If Assigned(BeforeArchive) then
- BeforeArchive(Self);
+ NotifyEventCollection.CallEvents(neaBeforeArchive, Self);
Log(vlDebug, SDbgBuildEngineArchiving);
For I:=0 to Packages.Count-1 do
begin
P:=Packages.PackageItems[i];
Archive(P);
end;
- If Assigned(AfterArchive) then
- AfterArchive(Self);
+ NotifyEventCollection.CallEvents(neaAfterArchive, Self);
end;
procedure TBuildEngine.Manifest(Packages: TPackages);
Var
+ L : TStrings;
I : Integer;
P : TPackage;
begin
- If Assigned(BeforeManifest) then
- BeforeManifest(Self);
+ NotifyEventCollection.CallEvents(neaBeforeManifest, Self);
Log(vlDebug, SDbgBuildEngineGenerateManifests);
- For I:=0 to Packages.Count-1 do
- begin
- P:=Packages.PackageItems[i];
- Manifest(P);
- end;
- If Assigned(AfterManifest) then
- AfterManifest(Self);
+
+ L:=TStringList.Create;
+ Try
+ Log(vlDebug, Format(SDbgGenerating, [ManifestFile]));
+ L.Add('<?xml version="1.0"?>');
+ L.Add('<packages>');
+ For I:=0 to Packages.Count-1 do
+ begin
+ P:=Packages.PackageItems[i];
+ Log(vlInfo, Format(SInfoManifestPackage,[P.Name]));
+ P.GetManifest(L);
+ end;
+ L.Add('</packages>');
+ L.SaveToFile(ManifestFile);
+ Finally
+ L.Free;
+ end;
+
+ NotifyEventCollection.CallEvents(neaAfterManifest, Self);
end;
+procedure TBuildEngine.PkgList(Packages: TPackages);
+Var
+ I : Integer;
+ P : TPackage;
+ L : TStrings;
+ PKGL : String;
+begin
+ L:=TStringList.Create;
+ NotifyEventCollection.CallEvents(neaBeforePkgList, Self);
+ Log(vlDebug, SDbgBuildEngineGeneratePkgList);
+{ Consider only the target OS, because the installer would be run there }
+ if Defaults.OS in AllLimit83fsOSes then
+ PKGL := PkgListFileBase + OSToString (Defaults.OS) + PkgListFileExt
+ else if Defaults.OS = osNone then
+ PKGL := PkgListFileBase + 'src' + PkgListFileExt
+ else
+ PKGL := PkgListFileBase + CPUToString (Defaults.CPU) + '-' +
+ OSToString (Defaults.OS) + PkgListFileExt;
+
+ Try
+ Log(vlDebug, Format(SDbgGenerating, [PKGL]));
+
+ For I:=0 to Packages.Count-1 do
+ begin
+ P:=Packages.PackageItems[i];
+ PkgList(L, P);
+ end;
+
+ L.SaveToFile(PKGL);
+ Finally
+ L.Free;
+ end;
+
+ NotifyEventCollection.CallEvents(neaAfterPkgList, Self);
+end;
+
procedure TBuildEngine.Clean(Packages: TPackages; AllTargets: boolean);
Var
I : Integer;
P : TPackage;
begin
- If Assigned(BeforeClean) then
- BeforeClean(Self);
+ NotifyEventCollection.CallEvents(neaBeforeClean, Self);
Log(vldebug, SDbgBuildEngineCleaning);
For I:=0 to Packages.Count-1 do
begin
@@ -7073,8 +7635,7 @@ begin
Clean(P, AllTargets);
log(vlWarning, SWarnCleanPackagecomplete, [P.Name]);
end;
- If Assigned(AfterClean) then
- AfterClean(Self);
+ NotifyEventCollection.CallEvents(neaAfterClean, Self);
end;
{****************************************************************************
@@ -7380,24 +7941,27 @@ end;
procedure TTarget.GetInstallFiles(List: TStrings; const APrefixU, APrefixB: String; ACPU: TCPU; AOS : TOS);
+var
+ UnitsDir : string;
begin
- If Not (TargetType in [ttProgram,ttExampleProgram]) and FileExists(APrefixU + ObjectFileName) then
+ UnitsDir := Installer.BuildEngine.AddPathPrefix(nil, APrefixU);
+ If Not (TargetType in [ttProgram,ttExampleProgram]) and FileExists(UnitsDir + ObjectFileName) then
// The compiler does not create an objectfile for all programs.
List.Add(APrefixU + ObjectFileName);
If (TargetType in [ttUnit,ttImplicitUnit,ttExampleUnit]) then
begin
- List.Add(APrefixU + UnitFileName);
- if (AOS in AllSmartLinkLibraryOSes) and FileExists(APrefixU + GetUnitLibFileName(AOS)) then
- List.Add(APrefixU + GetUnitLibFileName(AOS));
- if (AOS in AllImportLibraryOSes) and FileExists(APrefixU + GetImportLibFilename(AOS)) then
- List.Add(APrefixU + GetImportLibFilename(AOS));
+ List.Add(APrefixU + UnitFileName);
+ if (AOS in AllSmartLinkLibraryOSes) and FileExists(UnitsDir + GetUnitLibFileName(AOS)) then
+ List.Add(APrefixU + GetUnitLibFileName(AOS));
+ if (AOS in AllImportLibraryOSes) and FileExists(UnitsDir + GetImportLibFilename(AOS)) then
+ List.Add(APrefixU + GetImportLibFilename(AOS));
end
else If (TargetType in [ttProgram,ttExampleProgram]) then
List.Add(APrefixB + GetProgramFileName(AOS));
If ResourceStrings then
begin
// choose between 2 possible resource files
- if FileExists(APrefixU + RSJFileName) then
+ if FileExists(UnitsDir + RSJFileName) then
List.Add(APrefixU + RSJFileName)
else
List.Add(APrefixU + RSTFileName);
@@ -7744,6 +8308,62 @@ begin
FFunc:=AFunc;
end;
+{****************************************************************************
+ TNotifyEventItem
+****************************************************************************}
+
+procedure TNotifyEventItem.CallEvent(Sender: TObject);
+begin
+ if assigned(OnEvent) then
+ OnEvent(Sender);
+ if assigned(OnProcEvent) then
+ OnProcEvent(sender);
+end;
+
+{****************************************************************************
+ TNotifyEventCollection
+****************************************************************************}
+
+constructor TNotifyEventCollection.create(ASupportedActionSet: TNotifyEventActionSet);
+begin
+ FSupportedActionSet:=ASupportedActionSet;
+ inherited create(TNotifyEventItem);
+end;
+
+procedure TNotifyEventCollection.AppendEvent(AnAction: TNotifyEventAction; AnEvent: TNotifyEvent);
+var
+ item: TNotifyEventItem;
+begin
+ if not (AnAction in FSupportedActionSet) then
+ raise Exception.Create(SErrEventNotSupported);
+ item := TNotifyEventItem(add);
+ item.OnEvent:=AnEvent;
+ item.OnAction:=AnAction;
+end;
+
+procedure TNotifyEventCollection.AppendProcEvent(AnAction: TNotifyEventAction; AnProcEvent: TNotifyProcEvent);
+var
+ item: TNotifyEventItem;
+begin
+ if not (AnAction in FSupportedActionSet) then
+ raise Exception.Create(SErrEventNotSupported);
+ item := TNotifyEventItem(add);
+ item.OnProcEvent:=AnProcEvent;
+ item.OnAction:=AnAction;
+end;
+
+procedure TNotifyEventCollection.CallEvents(AnAction: TNotifyEventAction; Sender: TObject);
+var
+ i: integer;
+ item: TNotifyEventItem;
+begin
+ for i := 0 to Count-1 do
+ begin
+ item := TNotifyEventItem(Items[i]);
+ if item.OnAction=AnAction then
+ item.CallEvent(Sender);
+ end;
+end;
{****************************************************************************
TDictionary
@@ -7830,7 +8450,7 @@ begin
end;
-function TDictionary.ReplaceStrings(Const ASource: String): String;
+function TDictionary.ReplaceStrings(Const ASource: String; Const MaxDepth: Integer = 10): String;
Var
S,FN,FV : String;
P: Integer;
@@ -7854,7 +8474,10 @@ begin
end
else
FV:='';
- Result:=Result+GetValue(FN,FV);
+ if MaxDepth > 0 then
+ Result:=Result+ReplaceStrings(GetValue(FN,FV), MaxDepth-1)
+ else
+ Result:=Result+GetValue(FN,FV);
P:=Pos('$(',S);
end;
Result:=Result+S;
@@ -7889,7 +8512,23 @@ var
Function Installer(InstallerClass: TInstallerClass): TCustomInstaller;
begin
If Not Assigned(DefInstaller) then
- DefInstaller:=InstallerClass.Create(Nil);
+ begin
+ try
+ DefInstaller:=InstallerClass.Create(Nil);
+ except
+ On E : Exception do
+ begin
+ if IsConsole then
+ begin
+ WriteLn(SErrInstaller);
+ WriteLn(E.Message);
+ halt(1);
+ end
+ else
+ raise;
+ end;
+ end;
+ end;
Result:=DefInstaller;
end;
@@ -7954,3 +8593,4 @@ Finalization
FreeAndNil(GlobalDictionary);
FreeAndNil(Defaults);
end.
+
diff --git a/packages/fppkg/Makefile b/packages/fppkg/Makefile
index bc6d77af77..16e426eeeb 100644
--- a/packages/fppkg/Makefile
+++ b/packages/fppkg/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fppkg
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fppkg/Makefile.fpc b/packages/fppkg/Makefile.fpc
index b00ef71b11..8739e48575 100644
--- a/packages/fppkg/Makefile.fpc
+++ b/packages/fppkg/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fppkg
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fppkg/Makefile.fpc.fpcmake b/packages/fppkg/Makefile.fpc.fpcmake
index 9ad41e6c3d..dc6a1358b7 100644
--- a/packages/fppkg/Makefile.fpc.fpcmake
+++ b/packages/fppkg/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fppkg
-version=2.7.1
+version=3.1.1
[target]
units=fprepos fpxmlrep pkgoptions pkgglobals pkgmessages pkghandler pkgmkconv pkgdownload pkgfpmake pkgcommands pkgrepos
diff --git a/packages/fppkg/fpmake.pp b/packages/fppkg/fpmake.pp
index cdc4cb851a..e612017c7f 100644
--- a/packages/fppkg/fpmake.pp
+++ b/packages/fppkg/fpmake.pp
@@ -8,7 +8,7 @@ uses fpmkunit, sysutils;
procedure add_fppkg(const ADirectory: string);
const
- TargetsWithWGet = [linux,beos,haiku,freebsd,netbsd,openbsd,darwin,iphonesim,solaris,win32,win64,wince,aix];
+ TargetsWithWGet = [linux,beos,haiku,freebsd,netbsd,openbsd,darwin,iphonesim,solaris,win32,win64,wince,aix,dragonfly];
TargetsWithfpWeb = TargetsWithWGet;
Var
@@ -23,9 +23,10 @@ begin
begin
P:=AddPackage('fppkg');
+ P.ShortName:='fppk';
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('fcl-base');
P.Dependencies.Add('fcl-xml');
P.Dependencies.Add('fcl-process');
diff --git a/packages/fppkg/src/fpmkunitsrc.inc b/packages/fppkg/src/fpmkunitsrc.inc
index 0b06f72179..bbc43f416f 100644
--- a/packages/fppkg/src/fpmkunitsrc.inc
+++ b/packages/fppkg/src/fpmkunitsrc.inc
@@ -1,8886 +1,9481 @@
{$ifdef Delphi}
-const fpmkunitsrc : array[0..1041] of string[240]=(
+const fpmkunitsrc : array[0..1106] of string[240]=(
{$else Delphi}
-const fpmkunitsrc : array[0..1041,1..240] of char=(
+const fpmkunitsrc : array[0..1106,1..240] of char=(
{$endif Delphi}
- '{'#013#010+
- ' This file is part of the Free Pascal Makefile Package'#013#010+
- #013#010+
- ' Implementation of fpmake classes and functions'#013#010+
- #013#010+
- ' Copyright (c) 2007 by the freepascal team'#013#010+
- #013#010+
- ' See the file COPYING.FPC, included in this distribution,'#013#010+
- ' for det','ails about the copyright.'#013#010+
- #013#010+
- ' This program is distributed in the hope that it will be useful,'#013+
- #010+
- ' but WITHOUT ANY WARRANTY; without even the implied warranty of'#013+
- #010+
- ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.'#013#010+
- #013#010+
- ' *************','******************************************************'+
- '***}'#013#010+
- #013#010+
- 'unit fpmkunit;'#013#010+
- #013#010+
- '{$Mode objfpc}'#013#010+
- '{$H+}'#013#010+
- '{$inline on}'#013#010+
- #013#010+
+ '{'#010+
+ ' This file is part of the Free Pascal Makefile Package'#010+
+ #010+
+ ' Implementation of fpmake classes and functions'#010+
+ #010+
+ ' Copyright (c) 2007 by the freepascal team'#010+
+ #010+
+ ' See the file COPYING.FPC, included in this distribution,'#010+
+ ' for details abo','ut the copyright.'#010+
+ #010+
+ ' This program is distributed in the hope that it will be useful,'#010+
+ ' but WITHOUT ANY WARRANTY; without even the implied warranty of'#010+
+ ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.'#010+
+ #010+
+ ' ***************************','****************************************'+
+ '***}'#010+
+ #010+
+ 'unit fpmkunit;'#010+
+ #010+
+ '{$Mode objfpc}'#010+
+ '{$H+}'#010+
+ '{$inline on}'#010+
+ #010+
'{ For target or cpu dependent dependencies also add an overload where '+
- 'you'#013#010+
- ' can pass only a set of cpus. This is disable','d for now because it c'+
- 'reates'#013#010+
- ' an error in the compiler with overload choosing }'#013#010+
- '{ define cpu_only_overloads}'#013#010+
- #013#010+
- 'Interface'#013#010+
- #013#010+
- '{$IFDEF MORPHOS}'#013#010+
- ' {$DEFINE NO_UNIT_PROCESS}'#013#010+
- ' {$DEFINE NO_THREADING}'#013#010+
- '{$ENDIF}'#013#010+
- #013#010+
- '{$IFDEF OS2}'#013#010+
- ' {$DEFINE NO_UN','IT_PROCESS}'#013#010+
- '{$ENDIF OS2}'#013#010+
- #013#010+
- '{$IFDEF GO32V2}'#013#010+
- ' {$DEFINE NO_UNIT_PROCESS}'#013#010+
- '{$ENDIF GO32V2}'#013#010+
- #013#010+
- '{$IFDEF NETBSD}'#013#010+
+ 'you'#010+
+ ' can pass only a set of cpus. This is disabled for now because it cr',
+ 'eates'#010+
+ ' an error in the compiler with overload choosing }'#010+
+ '{ define cpu_only_overloads}'#010+
+ #010+
+ 'Interface'#010+
+ #010+
+ '{$IFDEF MORPHOS}'#010+
+ ' {$DEFINE NO_UNIT_PROCESS}'#010+
+ ' {$DEFINE NO_THREADING}'#010+
+ '{$ENDIF}'#010+
+ #010+
+ '{$IFDEF AMIGA}'#010+
+ ' {$DEFINE NO_UNIT_PROCESS}'#010+
+ ' {$DEFINE NO_THREADIN','G}'#010+
+ '{$ENDIF}'#010+
+ #010+
+ '{$IFDEF AROS}'#010+
+ ' {$DEFINE NO_UNIT_PROCESS}'#010+
+ ' {$DEFINE NO_THREADING}'#010+
+ '{$ENDIF}'#010+
+ #010+
+ '{$IFDEF OS2}'#010+
+ ' {$DEFINE NO_UNIT_PROCESS}'#010+
+ '{$ENDIF OS2}'#010+
+ #010+
+ '{$IFDEF GO32V2}'#010+
+ ' {$DEFINE NO_UNIT_PROCESS}'#010+
+ ' {$DEFINE NO_THREADING}'#010+
+ '{$ENDIF GO32V2}'#010+
+ #010+
+ '{$IFDEF NETBSD','}'#010+
' { NetBSD pthreads are not yet working, try to use fpmake without thre'+
- 'ads }'#013#010+
- ' {$DEFINE NO_THREADING}'#013#010+
- '{$ENDIF NETBSD}'#013#010+
- #013#010+
- '{$ifndef',' NO_UNIT_PROCESS}'#013#010+
- ' {$define HAS_UNIT_PROCESS}'#013#010+
- '{$endif NO_UNIT_PROCESS}'#013#010+
- #013#010+
- '{$ifndef NO_UNIT_ZIPPER}'#013#010+
- ' {$define HAS_UNIT_ZIPPER}'#013#010+
- '{$endif NO_UNIT_ZIPPER}'#013#010+
- #013#010+
- '{$ifndef NO_TAR_SUPPORT}'#013#010+
- ' {$define HAS_TAR_SUPPORT}'#013#010+
- '{$endif NO_TAR_SUPPORT}'#013#010+
- #013,#010+
- 'uses'#013#010+
- '{$ifdef UNIX}'#013#010+
- ' BaseUnix,'#013#010+
- '{$endif UNIX}'#013#010+
- '{$ifndef NO_THREADING}'#013#010+
- '{$ifdef UNIX}'#013#010+
- ' cthreads,'#013#010+
- '{$endif UNIX}'#013#010+
- '{$endif NO_THREADING}'#013#010+
- ' SysUtils, Classes, StrUtils'#013#010+
- '{$ifdef HAS_UNIT_PROCESS}'#013#010+
- ' ,process'#013#010+
- '{$endif HAS_UNIT_PROCESS}'#013#010+
- '{$i','fdef HAS_TAR_SUPPORT}'#013#010+
- ' ,libtar'#013#010+
- '{$endif HAS_TAR_SUPPORT}'#013#010+
- '{$ifdef HAS_UNIT_ZIPPER}'#013#010+
- ' ,zipper, zstream'#013#010+
- '{$endif HAS_UNIT_ZIPPER}'#013#010+
- ' ;'#013#010+
- #013#010+
- 'Type'#013#010+
+ 'ads }'#010+
+ ' {$DEFINE NO_THREADING}'#010+
+ '{$ENDIF NETBSD}'#010+
+ #010+
+ '{$ifndef NO_UNIT_PROCESS}'#010+
+ ' {$define HAS_UNIT_PROCESS}'#010+
+ '{$endif NO_UNIT_PROCESS}'#010+
+ #010+
+ '{$ifndef NO_UNIT_ZIPPER}'#010+
+ ' {$define HAS','_UNIT_ZIPPER}'#010+
+ '{$endif NO_UNIT_ZIPPER}'#010+
+ #010+
+ '{$ifndef NO_TAR_SUPPORT}'#010+
+ ' {$define HAS_TAR_SUPPORT}'#010+
+ '{$endif NO_TAR_SUPPORT}'#010+
+ #010+
+ '{$ifdef unix}'#010+
+ ' {$ifdef HAS_TAR_SUPPORT}'#010+
+ ' {$define CREATE_TAR_FILE}'#010+
+ ' {$endif HAS_TAR_SUPPORT}'#010+
+ '{$endif unix}'#010+
+ #010+
+ 'uses'#010+
+ '{$ifd','ef UNIX}'#010+
+ ' BaseUnix,'#010+
+ '{$endif UNIX}'#010+
+ '{$ifndef NO_THREADING}'#010+
+ '{$ifdef UNIX}'#010+
+ ' cthreads,'#010+
+ '{$endif UNIX}'#010+
+ '{$ifdef WINDOWS}'#010+
+ ' windows,'#010+
+ '{$endif WINDOWS}'#010+
+ '{$endif NO_THREADING}'#010+
+ ' SysUtils, Classes'#010+
+ '{$ifdef HAS_UNIT_PROCESS}'#010+
+ ' ,process'#010+
+ '{$endif HAS_UNIT_P','ROCESS}'#010+
+ '{$ifdef HAS_TAR_SUPPORT}'#010+
+ ' ,libtar'#010+
+ '{$endif HAS_TAR_SUPPORT}'#010+
+ '{$ifdef HAS_UNIT_ZIPPER}'#010+
+ ' ,zipper, zstream'#010+
+ '{$endif HAS_UNIT_ZIPPER}'#010+
+ ' ;'#010+
+ #010+
+ 'Type'#010+
' TFileType = (ftSource,ftUnit,ftObject,ftResource,ftExecutable,ftStat'+
- 'icLibrary,'#013#010+
- ' ',' ftSharedLibrary);'#013#010+
- ' TFileTypes = set of TFileType;'#013#010+
- #013#010+
- ' // Please keep this order, see OSCPUSupported below'#013#010+
- ' TCpu=(cpuNone,'#013#010+
- ' i386,m68k,powerpc,sparc,x86_64,arm,powerpc64,avr,armeb,'#013#010+
- ' mips,mipsel,jvm,i8086'#013#010+
- ' );'#013#010+
- ' TCPUS = Set of',' TCPU;'#013#010+
- #013#010+
- ' // Please keep this order, see OSCPUSupported below'#013#010+
- ' TOS=(osNone,'#013#010+
- ' linux,go32v2,win32,os2,freebsd,beos,netbsd,'#013#010+
- ' amiga,atari, solaris, qnx, netware, openbsd,wdosx,'#013#010+
- ' palmos,macos,darwin,emx,watcom,morphos,netwlibc,'#013#010,
- ' win64,wince,gba,nds,embedded,symbian,haiku,iphonesim,'#013#010+
- ' aix,java,android,nativent,msdos,wii'#013#010+
- ' );'#013#010+
- ' TOSes = Set of TOS;'#013#010+
- #013#010+
- ' TCompilerMode = (cmFPC,cmTP,cmObjFPC,cmDelphi,cmMacPas);'#013#010+
- ' TCompilerModes = Set of TCompilerMode;'#013#010+
- #013#010+
- ' TTa','rgetType = (ttProgram,ttUnit,ttImplicitUnit,ttCleanOnlyUnit,ttE'+
- 'xampleUnit,ttExampleProgram,ttFPDoc);'#013#010+
- ' TTargetTypes = set of TTargetType;'#013#010+
- #013#010+
+ 'icLibrary,'#010+
+ ' ',' ftSharedLibrary);'#010+
+ ' TFileTypes = set of TFileType;'#010+
+ #010+
+ ' // Please keep this order, see OSCPUSupported below'#010+
+ ' TCpu=(cpuNone,'#010+
+ ' i386,m68k,powerpc,sparc,x86_64,arm,powerpc64,avr,armeb,'#010+
+ ' mips,mipsel,jvm,i8086'#010+
+ ' );'#010+
+ ' TCPUS = Set of TCPU;'#010,
+ #010+
+ ' // Please keep this order, see OSCPUSupported below'#010+
+ ' TOS=(osNone,'#010+
+ ' linux,go32v2,win32,os2,freebsd,beos,netbsd,'#010+
+ ' amiga,atari, solaris, qnx, netware, openbsd,wdosx,'#010+
+ ' palmos,macos,darwin,emx,watcom,morphos,netwlibc,'#010+
+ ' win64,winc','e,gba,nds,embedded,symbian,haiku,iphonesim,'#010+
+ ' aix,java,android,nativent,msdos,wii,aros,dragonfly'#010+
+ ' );'#010+
+ ' TOSes = Set of TOS;'#010+
+ #010+
+ ' TCompilerMode = (cmFPC,cmTP,cmObjFPC,cmDelphi,cmMacPas);'#010+
+ ' TCompilerModes = Set of TCompilerMode;'#010+
+ #010+
+ ' TTargetTyp','e = (ttProgram,ttUnit,ttImplicitUnit,ttCleanOnlyUnit,ttE'+
+ 'xampleUnit,ttExampleProgram,ttFPDoc);'#010+
+ ' TTargetTypes = set of TTargetType;'#010+
+ #010+
' TFPDocFormat = (ffHtml, ffHtm, ffXHtml, ffLaTex, ffXMLStruct, ffChm)'+
- ';'#013#010+
- ' TFPDocFormats = set of ','TFPDocFormat;'#013#010+
- #013#010+
+ ';'#010+
+ ' TFPDocFormats = set of TFPDocForma','t;'#010+
+ #010+
' TTargetState = (tsNeutral,tsConsidering,tsNoCompile,tsCompiled,tsIns'+
- 'talled,tsNotFound);'#013#010+
- ' TTargetStates = Set of TTargetState;'#013#010+
- #013#010+
- ' TSourceType = (stDoc,stSrc,stExample,stTest);'#013#010+
- ' TSourceTypes = set of TSourceType;'#013#010+
- #013#010+
- ' ',' TVerboseLevel = (vlError,vlWarning,vlInfo,vldebug,vlCommand);'#013#010+
- ' TVerboseLevels = Set of TVerboseLevel;'#013#010+
- #013#010+
- ' TCommandAt = (caBeforeCompile,caAfterCompile,'#013#010+
- ' caBeforeInstall,caAfterInstall,'#013#010+
- ' caBeforeArchive,ca','AfterArchive,'#013#010+
- ' caBeforeClean,caAfterClean,'#013#010+
- ' caBeforeDownload,caAfterDownload);'#013#010+
- #013#010+
+ 'talled,tsNotFound);'#010+
+ ' TTargetStates = Set of TTargetState;'#010+
+ #010+
+ ' TSourceType = (stDoc,stSrc,stExample,stTest);'#010+
+ ' TSourceTypes = set of TSourceType;'#010+
+ #010+
+ ' TVerboseLevel = (v','lError,vlWarning,vlInfo,vldebug,vlCommand);'#010+
+ ' TVerboseLevels = Set of TVerboseLevel;'#010+
+ #010+
+ ' TCommandAt = (caBeforeCompile,caAfterCompile,'#010+
+ ' caBeforeInstall,caAfterInstall,'#010+
+ ' caBeforeArchive,caAfterArchive,'#010+
+ ' ',' caBeforeClean,caAfterClean,'#010+
+ ' caBeforeDownload,caAfterDownload);'#010+
+ #010+
' TDependencyType = (depPackage,depImplicitPackage,depUnit,depInclude)'+
- ';'#013#010+
- ' TDependencyTypes = set of TDependencyType;'#013#010+
- #013#010+
- ' TLo','gEvent = Procedure (Level : TVerboseLevel; Const Msg : String) '+
- 'of Object;'#013#010+
- ' TNotifyProcEvent = procedure(Sender: TObject);'#013#010+
- #013#010+
+ ';'#010+
+ ' TDependencyTypes = set of TDependencyType;'#010+
+ #010+
+ ' TLogEvent = Procedure (Level : TVe','rboseLevel; Const Msg : String) '+
+ 'of Object;'#010+
+ ' TNotifyProcEvent = procedure(Sender: TObject);'#010+
+ #010+
' TRunMode = (rmCompile,rmBuild,rmInstall,rmArchive,rmClean,rmDistClea'+
- 'n,rmManifest,rmZipInstall);'#013#010+
- #013#010+
- ' TBuildMode',' = (bmOneByOne, bmBuildUnit{, bmSkipImplicitUnits});'#013+
+ 'n,rmManifest,rmZipInstall,rmPkgList);'#010+
#010+
- ' TBuildModes = set of TBuildMode;'#013#010+
- ' TProcessPackageResult = (ppHandled, ppDelayed);'#013#010+
+ ' TBuildMode = (bmOneByOne, bmBuildUni','t{, bmSkipImplicitUnits});'#010+
+ ' TBuildModes = set of TBuildMode;'#010+
+ ' TProcessPackageResult = (ppHandled, ppDelayed);'#010+
' TCheckDependencyResult = (cdAvailable, cdNotAvailable, cdNotYetAvail'+
- 'able);'#013#010+
- #013#010+
- 'Const'#013#010+
- ' // Aliases',#013#010+
- ' Amd64 = X86_64;'#013#010+
- ' PPC = PowerPC;'#013#010+
- ' PPC64 = PowerPC64;'#013#010+
- ' DOS = Go32v2;'#013#010+
- ' MacOSX = Darwin;'#013#010+
- #013#010+
- ' AllOSes = [Low(TOS)..High(TOS)];'#013#010+
- ' AllCPUs = [Low(TCPU)..High(TCPU)];'#013#010+
- ' AllUnixOSes = [Linux,FreeBSD,NetBSD,OpenBSD,Darwin,QNX,BeOS,S','olar'+
- 'is,Haiku,iphonesim,aix,Android];'#013#010+
- ' AllBSDOSes = [FreeBSD,NetBSD,OpenBSD,Darwin,iphonesim];'#013#010+
- ' AllWindowsOSes = [Win32,Win64,WinCE];'#013#010+
- ' AllLimit83fsOses= [go32v2,os2,emx,watcom,msdos];'#013#010+
- #013#010+
- ' AllSmartLinkLibraryOSes = [Linux,msdos,a','miga,morphos]; // OSes tha'+
- 't use .a library files for smart-linking'#013#010+
+ 'able);'#010+
+ #010+
+ 'Const'#010+
+ ' // Aliases'#010+
+ ' Amd64 = X86_64;'#010+
+ ' PPC = Pow','erPC;'#010+
+ ' PPC64 = PowerPC64;'#010+
+ ' DOS = Go32v2;'#010+
+ ' MacOSX = Darwin;'#010+
+ #010+
+ ' AllOSes = [Low(TOS)..High(TOS)];'#010+
+ ' AllCPUs = [Low(TCPU)..High(TCPU)];'#010+
+ ' AllUnixOSes = [Linux,FreeBSD,NetBSD,OpenBSD,Darwin,QNX,BeOS,Solaris'+
+ ',Haiku,iphonesim,aix,Android,dragon','fly];'#010+
+ ' AllBSDOSes = [FreeBSD,NetBSD,OpenBSD,Darwin,iphonesim,dragonfly'+
+ '];'#010+
+ ' AllWindowsOSes = [Win32,Win64,WinCE];'#010+
+ ' AllAmigaLikeOSes = [Amiga,MorphOS,AROS];'#010+
+ ' AllLimit83fsOses = [go32v2,os2,emx,watcom,msdos];'#010+
+ #010+
+ ' AllSmartLinkLibraryOSe','s = [Linux,msdos,amiga,morphos,aros]; // OSe'+
+ 's that use .a library files for smart-linking'#010+
' AllImportLibraryOSes = AllWindowsOSes + [os2,emx,netwlibc,netware,wa'+
- 'tcom,go32v2,macos,nativent,msdos];'#013#010+
- #013#010+
- ' { This table is kept OS,Cpu because it is easier to maintain (','PFV)'+
- ' }'#013#010+
- ' OSCPUSupported : array[TOS,TCpu] of boolean = ('#013#010+
+ 'tcom,go32v2,macos,nativent,msdos];'#010+
+ #010+
+ ' { This table is kept OS,Cpu because it is ','easier to maintain (PFV)'+
+ ' }'#010+
+ ' OSCPUSupported : array[TOS,TCpu] of boolean = ('#010+
' { os none i386 m68k ppc sparc x86_64 arm ppc'+
- '64 avr armeb mips mipsel jvm i8086}'#013#010+
- ' { none } ( false, false, false, false, false, false, fals','e, f'+
- 'alse, false, false, false, false, false, false),'#013#010+
+ '64 avr armeb mips mipsel jvm i8086}'#010+
+ ' { none } ( false, false, false, false, f','alse, false, false, f'+
+ 'alse, false, false, false, false, false, false),'#010+
' { linux } ( false, true, true, true, true, true, true, tru'+
- 'e, false, true , true , true , false, false),'#013#010+
- ' { go32v2 } ( false, true, false, false, false, false, false, f','a'+
- 'lse, false, false, false, false, false, false),'#013#010+
+ 'e, false, true , true , true , false, false),'#010+
+ ' { go32v2 } ( false, true, false, false, false, ','false, false, f'+
+ 'alse, false, false, false, false, false, false),'#010+
' { win32 } ( false, true, false, false, false, false, false, fal'+
- 'se, false, false, false, false, false, false),'#013#010+
- ' { os2 } ( false, true, false, false, false, false, false, fal'+
- 'se',', false, false, false, false, false, false),'#013#010+
+ 'se, false, false, false, false, false, false),'#010+
+ ' { os2 } ( false, true, false, false, false, false,',' false, f'+
+ 'alse, false, false, false, false, false, false),'#010+
' { freebsd } ( false, true, true, false, false, true, false, fal'+
- 'se, false, false, false, false, false, false),'#013#010+
- ' { beos } ( false, true, false, false, false, false, false, fal'+
- 'se, fa','lse, false, false, false, false, false),'#013#010+
- ' { netbsd } ( false, true, true, true, true, false, false, fal'+
- 'se, false, false, false, false, false, false),'#013#010+
+ 'se, false, false, false, false, false, false),'#010+
+ ' { beos } ( false, true, false, false, false, false, false',', f'+
+ 'alse, false, false, false, false, false, false),'#010+
+ ' { netbsd } ( false, true, true, true, true, true, false, fal'+
+ 'se, false, false, false, false, false, false),'#010+
' { amiga } ( false, false, true, true, false, false, false, fal'+
- 'se, false,',' false, false, false, false, false),'#013#010+
+ 's','e, false, false, false, false, false, false),'#010+
' { atari } ( false, false, true, false, false, false, false, fal'+
- 'se, false, false, false, false, false, false),'#013#010+
+ 'se, false, false, false, false, false, false),'#010+
' { solaris } ( false, true, false, false, true, false, false, fal'+
- 'se, false, fal','se, false, false, false, false),'#013#010+
+ 'se, fal','se, false, false, false, false, false),'#010+
' { qnx } ( false, true, false, false, false, false, false, fal'+
- 'se, false, false, false, false, false, false),'#013#010+
+ 'se, false, false, false, false, false, false),'#010+
' { netware } ( false, true, false, false, false, false, false, fal'+
- 'se, false, false, ','false, false, false, false),'#013#010+
- ' { openbsd } ( false, true, true, false, false, false, false, fal'+
- 'se, false, false, false, false, false, false),'#013#010+
+ 'se, false, fa','lse, false, false, false, false),'#010+
+ ' { openbsd } ( false, true, true, false, false, true, false, fal'+
+ 'se, false, false, false, false, false, false),'#010+
' { wdosx } ( false, true, false, false, false, false, false, fal'+
- 'se, false, false, fals','e, false, false, false),'#013#010+
+ 'se, false, false, f','alse, false, false, false),'#010+
' { palmos } ( false, false, true, false, false, false, true, fal'+
- 'se, false, false, false, false, false, false),'#013#010+
+ 'se, false, false, false, false, false, false),'#010+
' { macos } ( false, false, false, true, false, false, false, fal'+
- 'se, false, false, false, f','alse, false, false),'#013#010+
+ 'se, false, false, false, ','false, false, false),'#010+
' { darwin } ( false, true, false, true, false, true, true, tru'+
- 'e, false, false, false, false, false, false),'#013#010+
+ 'e, false, false, false, false, false, false),'#010+
' { emx } ( false, true, false, false, false, false, false, fal'+
- 'se, false, false, false, false',', false, false),'#013#010+
+ 'se, false, false, false, false,',' false, false),'#010+
' { watcom } ( false, true, false, false, false ,false, false, fal'+
- 'se, false, false, false, false, false, false),'#013#010+
+ 'se, false, false, false, false, false, false),'#010+
' { morphos } ( false, false, false, true, false ,false, false, fal'+
- 'se, false, false, false, false, fa','lse, false),'#013#010+
+ 'se, false, false, false, false, false',', false),'#010+
' { netwlibc }( false, true, false, false, false, false, false, fal'+
- 'se, false, false, false, false, false, false),'#013#010+
+ 'se, false, false, false, false, false, false),'#010+
' { win64 } ( false, false, false, false, false, true, false, fal'+
- 'se, false, false, false, false, false,',' false),'#013#010+
+ 'se, false, false, false, false, false, fals','e),'#010+
' { wince }( false, true, false, false, false, false, true, fal'+
- 'se, false, false, false, false, false, false),'#013#010+
+ 'se, false, false, false, false, false, false),'#010+
' { gba } ( false, false, false, false, false, false, true, fal'+
- 'se, false, false, false, false, false, fal','se),'#013#010+
- ' { nds } ( false, false, false, false, false, false, true, fal'+
- 'se, false, false, false, false, false, false),'#013#010+
+ 'se, false, false, false, false, false, false),'#010+
+ ' ',' { nds } ( false, false, false, false, false, false, true, f'+
+ 'alse, false, false, false, false, false, false),'#010+
' { embedded }( false, true, true, true, true, true, true, tru'+
- 'e, true, true , false, false, false, false),',#013#010+
- ' { symbian } ( false, true, false, false, false, false, true, fal'+
- 'se, false, false, false, false, false, false),'#013#010+
+ 'e, true, true , false, false, false, false),'#010+
+ ' { sy','mbian } ( false, true, false, false, false, false, true, f'+
+ 'alse, false, false, false, false, false, false),'#010+
' { haiku } ( false, true, false, false, false, false, false, fal'+
- 'se, false, false, false, false, false, false),'#013#010+
- ' ',' { iphonesim}( false, true, false, false, false, false, false, f'+
- 'alse, false, false, false, false, false, false),'#013#010+
+ 'se, false, false, false, false, false, false),'#010+
+ ' { iphonesi','m}( false, true, false, false, false, false, false, f'+
+ 'alse, false, false, false, false, false, false),'#010+
' { aix } ( false, false, false, true, false, false, false, tru'+
- 'e, false, false, false, false, false, false),'#013#010+
- ' { ','java } ( false, false, false, false, false, false, false, f'+
- 'alse, false, false, false, false, true , false),'#013#010+
+ 'e, false, false, false, false, false, false),'#010+
+ ' { java } ( fa','lse, false, false, false, false, false, false, f'+
+ 'alse, false, false, false, false, true , false),'#010+
' { android } ( false, true, false, false, false, false, true, fal'+
- 'se, false, false, false, true, true , false),'#013#010+
- ' { nati','vent }( false, true, false, false, false, false, false, f'+
- 'alse, false, false, false, false, false, false),'#013#010+
+ 'se, false, false, false, true, true , false),'#010+
+ ' { nativent }( false, t','rue, false, false, false, false, false, f'+
+ 'alse, false, false, false, false, false, false),'#010+
' { msdos } ( false, false, false, false, false, false, false, fal'+
- 'se, false, false, false, false, false, true ),'#013#010+
- ' { wii } ',' ( false, false, false, true , false, false, false, f'+
- 'alse, false, false, false, false, false, false )'#013#010+
- ' );'#013#010+
- #013#010+
- ' // Useful'#013#010+
- ' UnitExt = '#039'.ppu'#039';'#013#010+
- ' PPUExt = UnitExt;'#013#010+
- ' PasExt = '#039'.pas'#039';'#013#010+
- ' PPExt = '#039'.pp'#039';'#013#010+
- ' IncExt = '#039'.inc'#039';'#013#010+
- ' ObjExt ','= '#039'.o'#039';'#013#010+
- ' RstExt = '#039'.rst'#039';'#013#010+
- ' RsjExt = '#039'.rsj'#039';'#013#010+
- ' LibExt = '#039'.a'#039';'#013#010+
- ' SharedLibExt = '#039'.so'#039';'#013#010+
- ' DLLExt = '#039'.dll'#039';'#013#010+
- ' ExeExt = '#039'.exe'#039';'#013#010+
- ' DbgExt = '#039'.dbg'#039';'#013#010+
- ' ZipExt = '#039'.zip'#039';'#013#010+
- #013#010+
- ' FPMakePPFile = '#039'fpmake.pp'#039';'#013#010+
- ' ManifestFile = '#039'manifest.x','ml'#039';'#013#010+
- ' UnitConfigFile = '#039'fpunits.cfg'#039';'#013#010+
- #013#010+
- ' DirNotFound = '#039'<dirnotfound>'#039';'#013#010+
- #013#010+
+ 'se, false, false, false, false, false, true ),'#010+
+ ' { wii } ( false, false, ','false, true , false, false, false, f'+
+ 'alse, false, false, false, false, false, false),'#010+
+ ' { aros } ( true, false, false, false, false, false, false, fal'+
+ 'se, false, false, false, false, false, false),'#010+
+ ' { dragonfly}( false, false, false,',' false, false, true, false, fa'+
+ 'lse, false, false, false, false, false, false )'#010+
+ ' );'#010+
+ #010+
+ ' // Useful'#010+
+ ' UnitExt = '#039'.ppu'#039';'#010+
+ ' PPUExt = UnitExt;'#010+
+ ' PasExt = '#039'.pas'#039';'#010+
+ ' PPExt = '#039'.pp'#039';'#010+
+ ' IncExt = '#039'.inc'#039';'#010+
+ ' ObjExt = '#039'.o'#039';'#010+
+ ' RstExt = '#039'.rst'#039';'#010+
+ ' RsjE','xt = '#039'.rsj'#039';'#010+
+ ' LibExt = '#039'.a'#039';'#010+
+ ' SharedLibExt = '#039'.so'#039';'#010+
+ ' DLLExt = '#039'.dll'#039';'#010+
+ ' ExeExt = '#039'.exe'#039';'#010+
+ ' DbgExt = '#039'.dbg'#039';'#010+
+ ' ZipExt = '#039'.zip'#039';'#010+
+ ' FpmkExt = '#039'.fpm'#039';'#010+
+ #010+
+ ' FPMakePPFile = '#039'fpmake.pp'#039';'#010+
+ ' ManifestFile = '#039'manifest.xml'#039';'#010+
+ ' PkgListFileBase = ',#039'pkg-'#039';'#010+
+ ' PkgListFileExt = '#039'.lst'#039';'#010+
+ #010+
+ ' DirNotFound = '#039'<dirnotfound>'#039';'#010+
+ #010+
' UnitTargets = [ttUnit,ttImplicitUnit,ttCleanOnlyUnit,ttExampleUnit];'+
- #013#010+
- ' ProgramTargets = [ttProgram,ttExampleProgram];'#013#010+
- #013#010+
- ' DefaultMessages = [vlError,vlWarnin','g,vlCommand];'#013#010+
- ' AllMessages = [vlError,vlWarning,vlCommand,vlInfo];'#013#010+
- #013#010+
- 'Type'#013#010+
- ' TTargets = Class;'#013#010+
- ' { TNamedItem }'#013#010+
- #013#010+
- ' TNamedItem = Class(TCollectionItem)'#013#010+
- ' private'#013#010+
- ' FName: String;'#013#010+
- ' procedure SetName(const AValue: String);virtual',';'#013#010+
- ' Public'#013#010+
- ' property Name : String Read FName Write SetName;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TNamedCollection }'#013#010+
- #013#010+
- ' TNamedCollection = Class(TCollection)'#013#010+
- ' private'#013#010+
- ' FUniqueNames: Boolean;'#013#010+
- ' private'#013#010+
- ' function GetItem(Index: Integer): TNamedIt','em;'#013#010+
- ' procedure SetItem(Index: Integer; AValue: TNamedItem);'#013#010+
- ' Public'#013#010+
- ' Function IndexOfName(const AName : String) : Integer;'#013#010+
- ' Function ItemByName(const AName : String) : TNamedItem;'#013#010+
- ' Property UniqueNames : Boolean Read FUniq','ueNames;'#013#010+
- ' property Items[Index: Integer]: TNamedItem read GetItem write SetI'+
- 'tem;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TNamedItemList }'#013#010+
- #013#010+
- ' TNamedItemList = Class(TFPList)'#013#010+
- ' private'#013#010+
- ' function GetNamedItem(Index : Integer): TNamedItem;'#013#010+
- ' procedure Set','NamedItem(Index : Integer; const AValue: TNamedItem'+
- ');'#013#010+
- ' public'#013#010+
- ' Function IndexOfName(const AName : String) : Integer;'#013#010+
- ' Function ItemByName(const ANAme : String) : TNamedItem;'#013#010+
- ' Property NamedItems[Index : Integer] : TNamedItem R','ead GetNamedI'+
- 'tem Write SetNamedItem; default;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TCommand }'#013#010+
- ' TCommand = Class(TNamedItem)'#013#010+
- ' private'#013#010+
- ' FAfterCommand: TNotifyEvent;'#013#010+
- ' FBeforeCommand: TNotifyEvent;'#013#010+
- ' FCommand: String;'#013#010+
- ' FCommandAt: TCommandAt;'#013#010+
- ' ',' FDestFile: String;'#013#010+
- ' FIgnoreResult: Boolean;'#013#010+
- ' FOptions: TStrings;'#013#010+
- ' FSourceFile: String;'#013#010+
- ' Function GetOptions : TStrings;'#013#010+
- ' Procedure SetOptions(Const Value : TStrings);'#013#010+
- ' Public'#013#010+
- ' Destructor Destroy; override;'#013#010+
- ' Fu','nction HaveOptions : Boolean;'#013#010+
- ' Function CmdLineOptions : String;'#013#010+
- ' Procedure ParseOptions(S : String);'#013#010+
- ' Property SourceFile : String Read FSourceFile Write FSourceFile;'#013+
- #010+
- ' Property DestFile : String Read FDestFile Write FDestFi','le;'#013#010+
- ' Property Command : String Read FCommand Write FCommand;'#013#010+
- ' Property Options : TStrings Read GetOptions Write SetOptions;'#013#010+
- ' Property At : TCommandAt Read FCommandAt Write FCommandAt;'#013#010+
- ' Property IgnoreResult : Boolean Read FI','gnoreResult Write FIgnore'+
- 'Result;'#013#010+
- ' Property BeforeCommand : TNotifyEvent Read FBeforeCommand Write FB'+
- 'eforeCommand;'#013#010+
+ #010+
+ ' ProgramTargets = [ttProgram,ttExampleProgram];'#010+
+ #010+
+ ' DefaultMessages = [vlError,vlWarning,vlCommand]',';'#010+
+ ' AllMessages = [vlError,vlWarning,vlCommand,vlInfo];'#010+
+ #010+
+ 'Type'#010+
+ ' TTargets = Class;'#010+
+ ' { TNamedItem }'#010+
+ #010+
+ ' TNamedItem = Class(TCollectionItem)'#010+
+ ' private'#010+
+ ' FName: String;'#010+
+ ' procedure SetName(const AValue: String);virtual;'#010+
+ ' Public'#010+
+ ' propert','y Name : String Read FName Write SetName;'#010+
+ ' end;'#010+
+ #010+
+ ' { TNamedCollection }'#010+
+ #010+
+ ' TNamedCollection = Class(TCollection)'#010+
+ ' private'#010+
+ ' FUniqueNames: Boolean;'#010+
+ ' private'#010+
+ ' function GetItem(Index: Integer): TNamedItem;'#010+
+ ' procedure SetItem(Index: ','Integer; AValue: TNamedItem);'#010+
+ ' Public'#010+
+ ' Function IndexOfName(const AName : String) : Integer;'#010+
+ ' Function ItemByName(const AName : String) : TNamedItem;'#010+
+ ' Property UniqueNames : Boolean Read FUniqueNames;'#010+
+ ' property Items[Index: Int','eger]: TNamedItem read GetItem write Se'+
+ 'tItem;'#010+
+ ' end;'#010+
+ #010+
+ ' { TNamedItemList }'#010+
+ #010+
+ ' TNamedItemList = Class(TFPList)'#010+
+ ' private'#010+
+ ' function GetNamedItem(Index : Integer): TNamedItem;'#010+
+ ' procedure SetNamedItem(Index : Integer; const AValue: TNamed','Item'+
+ ');'#010+
+ ' public'#010+
+ ' Function IndexOfName(const AName : String) : Integer;'#010+
+ ' Function ItemByName(const ANAme : String) : TNamedItem;'#010+
+ ' Property NamedItems[Index : Integer] : TNamedItem Read GetNamedIte'+
+ 'm Write SetNamedItem; default;'#010+
+ ' end',';'#010+
+ #010+
+ ' { TCommand }'#010+
+ ' TCommand = Class(TNamedItem)'#010+
+ ' private'#010+
+ ' FAfterCommand: TNotifyEvent;'#010+
+ ' FBeforeCommand: TNotifyEvent;'#010+
+ ' FCommand: String;'#010+
+ ' FCommandAt: TCommandAt;'#010+
+ ' FDestFile: String;'#010+
+ ' FIgnoreResult: Boolean;'#010+
+ ' FOptions:',' TStrings;'#010+
+ ' FSourceFile: String;'#010+
+ ' Function GetOptions : TStrings;'#010+
+ ' Procedure SetOptions(Const Value : TStrings);'#010+
+ ' Public'#010+
+ ' Destructor Destroy; override;'#010+
+ ' Function HaveOptions : Boolean;'#010+
+ ' Function CmdLineOptions : String;'#010+
+ ' ',' Procedure ParseOptions(S : String);'#010+
+ ' Property SourceFile : String Read FSourceFile Write FSourceFile;'#010+
+ ' Property DestFile : String Read FDestFile Write FDestFile;'#010+
+ ' Property Command : String Read FCommand Write FCommand;'#010+
+ ' Prope','rty Options : TStrings Read GetOptions Write SetOptions;'#010+
+ ' Property At : TCommandAt Read FCommandAt Write FCommandAt;'#010+
+ ' Property IgnoreResult : Boolean Read FIgnoreResult Write FIgnoreRe'+
+ 'sult;'#010+
+ ' Property BeforeCommand : TNotifyEvent Re','ad FBeforeCommand Write '+
+ 'FBeforeCommand;'#010+
' Property AfterCommand : TNotifyEvent Read FAfterCommand Write FAft'+
- 'erCommand;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TCommands }'#013#010+
- #013#010+
- ' TCommand','s = Class(TNamedCollection)'#013#010+
- ' private'#013#010+
- ' FDefaultAt: TCommandAt;'#013#010+
- ' function GetCommand(const Dest : String): TCommand;'#013#010+
- ' function GetCommandItem(Index : Integer): TCommand;'#013#010+
- ' procedure SetCommandItem(Index : Integer; const AValu','e: TCommand'+
- ');'#013#010+
- ' Public'#013#010+
- ' Function AddCommand(Const Cmd : String) : TCommand;'#013#010+
- ' Function AddCommand(Const Cmd,Options : String) : TCommand;'#013#010+
+ 'erCommand;'#010+
+ ' end;'#010+
+ #010+
+ ' { TCommands }'#010+
+ #010+
+ ' TCommands = Class(TNamedCollection)'#010+
+ ' private'#010+
+ ' FDefaultAt: TCommandAt;'#010+
+ ' function GetCo','mmand(const Dest : String): TCommand;'#010+
+ ' function GetCommandItem(Index : Integer): TCommand;'#010+
+ ' procedure SetCommandItem(Index : Integer; const AValue: TCommand);'+
+ #010+
+ ' Public'#010+
+ ' Function AddCommand(Const Cmd : String) : TCommand;'#010+
+ ' Functi','on AddCommand(Const Cmd,Options : String) : TCommand;'#010+
' Function AddCommand(Const Cmd,Options,Dest,Source : String) : TCom'+
- 'mand;'#013#010+
- ' Function Add','Command(At : TCommandAt; Const Cmd : String) : TComm'+
- 'and;'#013#010+
- ' Function AddCommand(At : TCommandAt; Const Cmd,Options : String) :'+
- ' TCommand;'#013#010+
+ 'mand;'#010+
+ ' Function AddCommand(At : TCommandAt; Const Cmd : String) : TComman'+
+ 'd;'#010+
+ ' Function AddCommand(At : TCommand','At; Const Cmd,Options : String)'+
+ ' : TCommand;'#010+
' Function AddCommand(At : TCommandAt; Const Cmd,Options, Dest,Sourc'+
- 'e : String) : TCommand;'#013#010+
- ' P','roperty CommandItems[Index : Integer] : TCommand Read GetComman'+
- 'dItem Write SetCommandItem;'#013#010+
- ' Property Commands[Dest : String] : TCommand Read GetCommand; defau'+
- 'lt;'#013#010+
- ' Property DefaultAt : TCommandAt Read FDefaultAt Write FDefaultAt;'#013+
- #010+
- ' ','end;'#013#010+
- #013#010+
- ' { TFPVersion }'#013#010+
- #013#010+
- ' TFPVersion = Class(TPersistent)'#013#010+
- ' private'#013#010+
- ' FMajor,'#013#010+
- ' FMinor,'#013#010+
- ' FMicro,'#013#010+
- ' FBuild : Integer;'#013#010+
- ' function GetAsString: String;'#013#010+
- ' function GetEmpty: Boolean;'#013#010+
- ' procedure SetAsString(const A','Value: String);'#013#010+
- ' Public'#013#010+
- ' Procedure Clear;'#013#010+
- ' Procedure Assign(Source : TPersistent); override;'#013#010+
- ' Function CompareVersion(AVersion : TFPVersion) : Integer;'#013#010+
- ' Function SameVersion(AVersion : TFPVersion) : Boolean;'#013#010+
- ' Property AsStr','ing : String Read GetAsString Write SetAsString;'#013+
- #010+
- ' Property Empty : Boolean Read GetEmpty;'#013#010+
- ' Published'#013#010+
- ' Property Major : Integer Read FMajor Write FMajor;'#013#010+
- ' Property Minor : Integer Read FMinor Write FMinor;'#013#010+
- ' Property Micro : Int','eger Read FMicro Write FMicro;'#013#010+
- ' Property Build : Integer Read FBuild Write FBuild;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TConditionalString }'#013#010+
- ' TConditionalString = Class'#013#010+
- ' private'#013#010+
- ' FOSes : TOSes;'#013#010+
- ' FCPUs : TCPUs;'#013#010+
- ' FValue : String;'#013#010+
- ' Public'#013,#010+
- ' Constructor Create;virtual;'#013#010+
- ' Property Value : String Read FValue Write FValue;'#013#010+
- ' Property OSes : TOSes Read FOSes Write FOSes;'#013#010+
- ' Property CPUs : TCPUs Read FCPUS Write FCPUs;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' TConditionalStringClass = class of T','ConditionalString;'#013#010+
- #013#010+
- ' { TConditionalStrings }'#013#010+
- #013#010+
- ' TConditionalStrings = Class(TFPList)'#013#010+
- ' private'#013#010+
- ' FCSClass : TConditionalStringClass;'#013#010+
- ' function GetConditionalString(Index : Integer): TConditionalString'+
- ';'#013#010+
- ' procedure SetConditi','onalString(Index : Integer; const AValue: TC'+
- 'onditionalString);'#013#010+
- ' Public'#013#010+
- ' Constructor Create(AClass:TConditionalStringClass);'#013#010+
- ' Function Add(Const Value : String) : TConditionalString;inline;'#013+
- #010+
- ' Function Add(Const Value : String;co','nst OSes:TOSes) : TCondition'+
- 'alString;inline;'#013#010+
- '{$ifdef cpu_only_overloads}'#013#010+
+ 'e : String) : TCommand;'#010+
+ ' Property CommandItems[Index : Integer] : TCommand Read GetCommandI'+
+ 'tem Write SetCommandItem;'#010+
+ ' Pr','operty Commands[Dest : String] : TCommand Read GetCommand; def'+
+ 'ault;'#010+
+ ' Property DefaultAt : TCommandAt Read FDefaultAt Write FDefaultAt;'#010+
+ ' end;'#010+
+ #010+
+ ' { TFPVersion }'#010+
+ #010+
+ ' TFPVersion = Class(TPersistent)'#010+
+ ' private'#010+
+ ' FMajor,'#010+
+ ' FMinor,'#010+
+ ' FMic','ro,'#010+
+ ' FBuild : Integer;'#010+
+ ' function GetAsString: String;'#010+
+ ' function GetEmpty: Boolean;'#010+
+ ' procedure SetAsString(const AValue: String);'#010+
+ ' Public'#010+
+ ' Procedure Clear;'#010+
+ ' Procedure Assign(Source : TPersistent); override;'#010+
+ ' Function Co','mpareVersion(AVersion : TFPVersion) : Integer;'#010+
+ ' Function SameVersion(AVersion : TFPVersion) : Boolean;'#010+
+ ' Property AsString : String Read GetAsString Write SetAsString;'#010+
+ ' Property Empty : Boolean Read GetEmpty;'#010+
+ ' Published'#010+
+ ' Property Ma','jor : Integer Read FMajor Write FMajor;'#010+
+ ' Property Minor : Integer Read FMinor Write FMinor;'#010+
+ ' Property Micro : Integer Read FMicro Write FMicro;'#010+
+ ' Property Build : Integer Read FBuild Write FBuild;'#010+
+ ' end;'#010+
+ #010+
+ ' { TConditionalString }'#010+
+ ' TCo','nditionalString = Class'#010+
+ ' private'#010+
+ ' FOSes : TOSes;'#010+
+ ' FCPUs : TCPUs;'#010+
+ ' FValue : String;'#010+
+ ' Public'#010+
+ ' Constructor Create;virtual;'#010+
+ ' Property Value : String Read FValue Write FValue;'#010+
+ ' Property OSes : TOSes Read FOSes Write FOS','es;'#010+
+ ' Property CPUs : TCPUs Read FCPUS Write FCPUs;'#010+
+ ' end;'#010+
+ #010+
+ ' TConditionalStringClass = class of TConditionalString;'#010+
+ #010+
+ ' { TConditionalStrings }'#010+
+ #010+
+ ' TConditionalStrings = Class(TFPList)'#010+
+ ' private'#010+
+ ' FCSClass : TConditionalStringClass;'#010+
+ ' ','function GetConditionalString(Index : Integer): TConditionalStri'+
+ 'ng;'#010+
+ ' procedure SetConditionalString(Index : Integer; const AValue: TCon'+
+ 'ditionalString);'#010+
+ ' Public'#010+
+ ' Constructor Create(AClass:TConditionalStringClass);'#010+
+ ' Function Add(Con','st Value : String) : TConditionalString;inline;'#010+
+ ' Function Add(Const Value : String;const OSes:TOSes) : TConditional'+
+ 'String;inline;'#010+
+ '{$ifdef cpu_only_overloads}'#010+
' Function Add(Const Value : String;const CPUs:TCPUs) : TConditional'+
- 'String;inline;'#013#010+
- '{$endif cpu_only_overloads}'#013#010+
- ' Function Add(Const Value : String;const CPUs:T','CPUs;const OSes:TO'+
- 'Ses) : TConditionalString;'#013#010+
+ 'String;in','line;'#010+
+ '{$endif cpu_only_overloads}'#010+
+ ' Function Add(Const Value : String;const CPUs:TCPUs;const OSes:TOSe'+
+ 's) : TConditionalString;'#010+
' Property ConditionalStrings[Index : Integer] : TConditionalString '+
- 'Read GetConditionalString Write SetConditionalString; default;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TConditionalDestString }'#013#010+
- #013#010+
- ' TConditionalDest','String = Class(TConditionalString)'#013#010+
- ' private'#013#010+
- ' FDestPath: string;'#013#010+
- ' public'#013#010+
- ' property DestPath: string read FDestPath write FDestPath;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' TConditionalDestStringClass = class of TConditionalDestString;'#013#010+
- #013#010+
- ' { TConditionalDe','stStrings }'#013#010+
- #013#010+
- ' TConditionalDestStrings = Class(TConditionalStrings)'#013#010+
- ' private'#013#010+
+ 'Read GetConditionalString Write SetCondit','ionalString; default;'#010+
+ ' end;'#010+
+ #010+
+ ' { TConditionalDestString }'#010+
+ #010+
+ ' TConditionalDestString = Class(TConditionalString)'#010+
+ ' private'#010+
+ ' FDestPath: string;'#010+
+ ' public'#010+
+ ' property DestPath: string read FDestPath write FDestPath;'#010+
+ ' end;'#010+
+ #010+
+ ' TConditionalD','estStringClass = class of TConditionalDestString;'#010+
+ #010+
+ ' { TConditionalDestStrings }'#010+
+ #010+
+ ' TConditionalDestStrings = Class(TConditionalStrings)'#010+
+ ' private'#010+
' function GetConditionalString(Index : Integer): TConditionalDestSt'+
- 'ring;'#013#010+
- ' procedure SetConditionalString(Index : Integer; AValue: TCondition'+
- 'alDestStrin','g);'#013#010+
- ' public'#013#010+
- ' Constructor Create(AClass:TConditionalDestStringClass);'#013#010+
+ 'ring;'#010+
+ ' procedure Set','ConditionalString(Index : Integer; AValue: TConditi'+
+ 'onalDestString);'#010+
+ ' public'#010+
+ ' Constructor Create(AClass:TConditionalDestStringClass);'#010+
' Function Add(Const Value : String; ADestPath: String) : TCondition'+
- 'alDestString;inline;'#013#010+
- ' Function Add(Const Value : String;const OSes:TOSes; ADestPath: Str'+
- 'in','g) : TConditionalDestString;inline;'#013#010+
- '{$ifdef cpu_only_overloads}'#013#010+
+ 'alDestString;inline;'#010+
+ ' Function',' Add(Const Value : String;const OSes:TOSes; ADestPath: S'+
+ 'tring) : TConditionalDestString;inline;'#010+
+ '{$ifdef cpu_only_overloads}'#010+
' Function Add(Const Value : String;const CPUs:TCPUs; ADestPath: Str'+
- 'ing) : TConditionalDestString;inline;'#013#010+
- '{$endif cpu_only_overloads}'#013#010+
- ' Function Add(Const Value : Strin','g;const CPUs:TCPUs;const OSes:TO'+
- 'Ses; ADestPath: String) : TConditionalDestString;'#013#010+
+ 'ing) : TConditionalDestString;inline;'#010+
+ '{$endif ','cpu_only_overloads}'#010+
+ ' Function Add(Const Value : String;const CPUs:TCPUs;const OSes:TOSe'+
+ 's; ADestPath: String) : TConditionalDestString;'#010+
' Property ConditionalStrings[Index : Integer] : TConditionalDestStr'+
- 'ing Read GetConditionalString Write SetConditionalString; default;'#013+
- #010+
- ' end;'#013#010+
- #013#010+
- ' { TDict','ionary }'#013#010+
- #013#010+
- ' TReplaceFunction = Function (Const AName,Args : String) : String of '+
- 'Object;'#013#010+
- #013#010+
- ' TDictionary = Class(TComponent)'#013#010+
- ' private'#013#010+
- ' FList : TStringList;'#013#010+
- ' Public'#013#010+
- ' Constructor Create(AOwner : TComponent); override;'#013#010+
- ' Destr','uctor Destroy;override;'#013#010+
- ' Procedure AddVariable(const AName,Value : String);'#013#010+
- ' Procedure AddFunction(const AName : String; FReplacement : TReplac'+
- 'eFunction);'#013#010+
- ' Procedure RemoveItem(const AName : String);'#013#010+
- ' Function GetValue(AName',' : String) : String;'#013#010+
- ' Function GetValue(const AName,Args : String) : String; virtual;'#013+
- #010+
- ' Function ReplaceStrings(Const ASource : String) : String; virtual;'+
- #013#010+
+ 'ing Read GetConditionalString Wr','ite SetConditionalString; default;'#010+
+ ' end;'#010+
+ #010+
+ ' { TNotifyEventCollection }'#010+
+ #010+
+ ' TNotifyEventAction = (neaBeforeCompile, neaAfterCompile, neaBeforeIn'+
+ 'stall, neaAfterInstall,'#010+
+ ' neaBeforeClean, neaAfterClean, neaBeforeArchiv'+
+ 'e, ','neaAfterArchive,'#010+
+ ' neaBeforeManifest, neaAfterManifest, neaBefore'+
+ 'PkgList, neaAfterPkgList,'#010+
+ ' neaBeforeCreateBuildEngine, neaAfterCreateBuil'+
+ 'dengine);'#010+
+ #010+
+ ' TNotifyEventActionSet = set of TNotifyEventA','ction;'#010+
+ #010+
+ ' TNotifyEventItem = class(TCollectionItem)'#010+
+ ' private'#010+
+ ' FOnAction: TNotifyEventAction;'#010+
+ ' FOnEvent: TNotifyEvent;'#010+
+ ' FOnProcEvent: TNotifyProcEvent;'#010+
+ ' public'#010+
+ ' property OnAction: TNotifyEventAction read FOnAction write FOnActi',
+ 'on;'#010+
+ ' property OnEvent: TNotifyEvent read FOnEvent write FOnEvent;'#010+
+ ' property OnProcEvent: TNotifyProcEvent read FOnProcEvent write FOn'+
+ 'ProcEvent;'#010+
+ ' procedure CallEvent(Sender: TObject);'#010+
+ ' end;'#010+
+ #010+
+ ' TNotifyEventCollection = class(TCollec','tion)'#010+
+ ' private'#010+
+ ' FSupportedActionSet: TNotifyEventActionSet;'#010+
+ ' public'#010+
+ ' constructor create(ASupportedActionSet: TNotifyEventActionSet);'#010+
+ ' procedure AppendEvent(AnAction: TNotifyEventAction; AnEvent: TNoti'+
+ 'fyEvent);'#010+
+ ' procedure Appen','dProcEvent(AnACtion: TNotifyEventAction; AnProcEv'+
+ 'ent: TNotifyProcEvent);'#010+
+ ' procedure CallEvents(AnAction: TNotifyEventAction; Sender: TObject'+
+ ');'#010+
+ ' end;'#010+
+ #010+
+ ' { TDictionary }'#010+
+ #010+
+ ' TReplaceFunction = Function (Const AName,Args : String) : String ','o'+
+ 'f Object;'#010+
+ #010+
+ ' TDictionary = Class(TComponent)'#010+
+ ' private'#010+
+ ' FList : TStringList;'#010+
+ ' Public'#010+
+ ' Constructor Create(AOwner : TComponent); override;'#010+
+ ' Destructor Destroy;override;'#010+
+ ' Procedure AddVariable(const AName,Value : String);'#010+
+ ' Pro','cedure AddFunction(const AName : String; FReplacement : TRepl'+
+ 'aceFunction);'#010+
+ ' Procedure RemoveItem(const AName : String);'#010+
+ ' Function GetValue(AName : String) : String;'#010+
+ ' Function GetValue(const AName,Args : String) : String; virtual;'#010+
+ ' ',' Function ReplaceStrings(Const ASource : String; Const MaxDepth: '+
+ 'Integer = 10) : String; virtual;'#010+
' Function Substitute(Const Source : String; Macros : Array of strin'+
- 'g) : St','ring; virtual;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TPackageDictionary }'#013#010+
- #013#010+
- ' TPackageDictionary = Class(TDictionary)'#013#010+
- ' private'#013#010+
- ' FMasterDictionary: TDictionary;'#013#010+
- ' Public'#013#010+
- ' Function GetValue(const AName,Args : String) : String; override;'#013+
- #010+
- ' property Ma','sterDictionary: TDictionary read FMasterDictionary wr'+
- 'ite FMasterDictionary;'#013#010+
- ' end;'#013#010+
- #013#010+
- #013#010+
- ' { TDependency }'#013#010+
- ' TDependency = Class(TConditionalString)'#013#010+
- ' private'#013#010+
- ' FDependencyType : TDependencyType;'#013#010+
- ' // Package, Unit'#013#010+
- ' FTarget : TO','bject;'#013#010+
- ' FVersion : TFPVersion;'#013#010+
- ' FRequireChecksum : Cardinal;'#013#010+
- ' // Filenames, Includes'#013#010+
- ' FTargetFileName : String;'#013#010+
- ' Function GetVersion : string;'#013#010+
- ' Procedure SetVersion(const V : string);'#013#010+
- ' Public'#013#010+
- ' Constructor Creat','e;override;'#013#010+
- ' Destructor Destroy;override;'#013#010+
- ' Property Target : TObject Read FTarget Write FTarget;'#013#010+
- ' Property DependencyType : TDependencyType Read FDependencyType;'#013+
- #010+
- ' Property TargetFileName : String Read FTargetFileName Write F','Tar'+
- 'getFileName;'#013#010+
- ' Property Version : String Read GetVersion Write SetVersion;'#013#010+
- ' Property RequireChecksum : Cardinal Read FRequireChecksum Write FR'+
- 'equireChecksum;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TPackageVariant }'#013#010+
- #013#010+
- ' TPackage = Class;'#013#010+
- ' TPackageVaria','nt = class(TNamedItem)'#013#010+
- ' private'#013#010+
- ' FOptions: TStrings;'#013#010+
- ' FTargets: TTargets;'#013#010+
- ' public'#013#010+
- ' constructor Create(ACollection: TCollection); override;'#013#010+
- ' destructor Destroy; override;'#013#010+
- ' property Options: TStrings read FOptions;'#013#010+
- ' ',' property Targets: TTargets read FTargets;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TPackageVariants }'#013#010+
- #013#010+
- ' TPackageVariants = class(TNamedCollection)'#013#010+
- ' private'#013#010+
- ' FActivePackageVariantName: string;'#013#010+
- ' FDefaultPackageVariantName: string;'#013#010+
- ' FIsInheritable: b','oolean;'#013#010+
- ' FMasterPackage: TPackage;'#013#010+
- ' FName: string;'#013#010+
- ' function GetActivePackageVariant: TPackageVariant;'#013#010+
- ' function GetDefaultPackageVariant: TPackageVariant;'#013#010+
- ' procedure SetActivePackageVariantName(AValue: string);'#013#010+
- ' pro','cedure SetDefaultPackageVariantName(AValue: string);'#013#010+
- ' public'#013#010+
- ' function Add(AName: String): TPackageVariant; overload; virtual;'#013+
- #010+
- ' property Name: string read FName write FName;'#013#010+
- ' property MasterPackage: TPackage read FMasterPackag','e;'#013#010+
+ 'g) : String; virtual;'#010+
+ ' end;'#010+
+ #010+
+ ' { TPackageDictionary }'#010+
+ #010+
+ ' TPackageDict','ionary = Class(TDictionary)'#010+
+ ' private'#010+
+ ' FMasterDictionary: TDictionary;'#010+
+ ' Public'#010+
+ ' Function GetValue(const AName,Args : String) : String; override;'#010+
+ ' property MasterDictionary: TDictionary read FMasterDictionary writ'+
+ 'e FMasterDictionar','y;'#010+
+ ' end;'#010+
+ #010+
+ #010+
+ ' { TDependency }'#010+
+ ' TDependency = Class(TConditionalString)'#010+
+ ' private'#010+
+ ' FDependencyType : TDependencyType;'#010+
+ ' // Package, Unit'#010+
+ ' FTarget : TObject;'#010+
+ ' FVersion : TFPVersion;'#010+
+ ' FRequireChecksum : Cardinal;'#010+
+ ' // Filename','s, Includes'#010+
+ ' FTargetFileName : String;'#010+
+ ' Function GetVersion : string;'#010+
+ ' Procedure SetVersion(const V : string);'#010+
+ ' Public'#010+
+ ' Constructor Create;override;'#010+
+ ' Destructor Destroy;override;'#010+
+ ' Property Target : TObject Read FTarget Wr','ite FTarget;'#010+
+ ' Property DependencyType : TDependencyType Read FDependencyType;'#010+
+ ' Property TargetFileName : String Read FTargetFileName Write FTarge'+
+ 'tFileName;'#010+
+ ' Property Version : String Read GetVersion Write SetVersion;'#010+
+ ' Property R','equireChecksum : Cardinal Read FRequireChecksum Write '+
+ 'FRequireChecksum;'#010+
+ ' end;'#010+
+ #010+
+ ' { TPackageVariant }'#010+
+ #010+
+ ' TPackage = Class;'#010+
+ ' TPackageVariant = class(TNamedItem)'#010+
+ ' private'#010+
+ ' FOptions: TStrings;'#010+
+ ' FTargets: TTargets;'#010+
+ ' FIncludePath: TCo','nditionalStrings;'#010+
+ ' FSourcePath: TConditionalStrings;'#010+
+ ' public'#010+
+ ' constructor Create(ACollection: TCollection); override;'#010+
+ ' destructor Destroy; override;'#010+
+ ' property Options: TStrings read FOptions;'#010+
+ ' Property IncludePath : TConditi','onalStrings Read FIncludePath;'#010+
+ ' Property SourcePath : TConditionalStrings Read FSourcePath;'#010+
+ ' property Targets: TTargets read FTargets;'#010+
+ ' end;'#010+
+ #010+
+ ' { TPackageVariants }'#010+
+ #010+
+ ' TPackageVariants = class(TNamedCollection)'#010+
+ ' private'#010+
+ ' FActiveP','ackageVariantName: string;'#010+
+ ' FDefaultPackageVariantName: string;'#010+
+ ' FIsInheritable: boolean;'#010+
+ ' FMasterPackage: TPackage;'#010+
+ ' FName: string;'#010+
+ ' function GetActivePackageVariant: TPackageVariant;'#010+
+ ' function GetDefaultPackageVariant: T','PackageVariant;'#010+
+ ' procedure SetActivePackageVariantName(AValue: string);'#010+
+ ' procedure SetDefaultPackageVariantName(AValue: string);'#010+
+ ' public'#010+
+ ' function Add(AName: String): TPackageVariant; overload; virtual;'#010+
+ ' property Name: string r','ead FName write FName;'#010+
+ ' property MasterPackage: TPackage read FMasterPackage;'#010+
' property DefaultPackageVariant: TPackageVariant read GetDefaultPac'+
- 'kageVariant;'#013#010+
+ 'kageVariant;'#010+
' property ActivePackageVariant: TPackageVariant read GetActivePacka'+
- 'geVariant;'#013#010+
- ' property DefaultPackageVariantName: string read FDefaultPackageVar',
- 'iantName write SetDefaultPackageVariantName;'#013#010+
+ 'geVari','ant;'#010+
+ ' property DefaultPackageVariantName: string read FDefaultPackageVar'+
+ 'iantName write SetDefaultPackageVariantName;'#010+
' property ActivePackageVariantName: string read FActivePackageVaria'+
- 'ntName write SetActivePackageVariantName;'#013#010+
- ' property IsInheritable: boolean read FIsInheritable;'#013#010+
- ' end;'#013#010+
- #013#010+
- #013#010+
- ' TDependen','cies = Class(TConditionalStrings)'#013#010+
- ' function GetDependency(Index : Integer): TDependency;'#013#010+
+ 'ntName write SetActivePackageVariantName;'#010+
+ ' prop','erty IsInheritable: boolean read FIsInheritable;'#010+
+ ' end;'#010+
+ #010+
+ #010+
+ ' TDependencies = Class(TConditionalStrings)'#010+
+ ' function GetDependency(Index : Integer): TDependency;'#010+
' procedure SetDependency(Index : Integer; const AValue: TDependency'+
- ');'#013#010+
- ' Public'#013#010+
- ' Function Add(Const Value : String) : TDependency;inline;'#013#010,
+ ');'#010+
+ ' Publ','ic'#010+
+ ' Function Add(Const Value : String) : TDependency;inline;'#010+
' Function Add(Const Value : String;const OSes:TOSes) : TDependency;'+
- 'inline;'#013#010+
- '{$ifdef cpu_only_overloads}'#013#010+
- ' Function Add(Const Value : String;const CPUs:TCPUs) : TDependency;'+
- 'inline;'#013#010+
- '{$endif cpu_only_overloads}'#013#010+
- ' Function Add(Const V','alue : String;const CPUs:TCPUs;const OSes:TO'+
- 'Ses) : TDependency;'#013#010+
- ' Function AddUnit(Const Value : String) : TDependency;inline;'#013#010+
- ' Function AddUnit(Const Value : String;const OSes:TOSes) : TDepende'+
- 'ncy;inline;'#013#010+
- '{$ifdef cpu_only_overloads','}'#013#010+
+ 'inline;'#010+
+ '{$ifdef cpu_only_overloads}'#010+
+ ' Function Add(Const Value : String;const CPUs:TCPUs) : TDependency;',
+ 'inline;'#010+
+ '{$endif cpu_only_overloads}'#010+
+ ' Function Add(Const Value : String;const CPUs:TCPUs;const OSes:TOSe'+
+ 's) : TDependency;'#010+
+ ' Function AddUnit(Const Value : String) : TDependency;inline;'#010+
+ ' Function AddUnit(Const Value : String;const OSe','s:TOSes) : TDepen'+
+ 'dency;inline;'#010+
+ '{$ifdef cpu_only_overloads}'#010+
' Function AddUnit(Const Value : String;const CPUs:TCPUs) : TDepende'+
- 'ncy;inline;'#013#010+
- '{$endif cpu_only_overloads}'#013#010+
+ 'ncy;inline;'#010+
+ '{$endif cpu_only_overloads}'#010+
' Function AddUnit(Const Value : String;const CPUs:TCPUs;const OSes:'+
- 'TOSes) : TDependency;'#013#010+
- ' Function AddInclude(Const Va','lue : String) : TDependency;inline;'#013+
- #010+
+ 'T','OSes) : TDependency;'#010+
+ ' Function AddInclude(Const Value : String) : TDependency;inline;'#010+
' Function AddInclude(Const Value : String;const OSes:TOSes) : TDepe'+
- 'ndency;inline;'#013#010+
- '{$ifdef cpu_only_overloads}'#013#010+
- ' Function AddInclude(Const Value : String;const CPUs:TCPUs) : TDepe'+
- 'ndency;inline;'#013#010+
- '{$','endif cpu_only_overloads}'#013#010+
+ 'ndency;inline;'#010+
+ '{$ifdef cpu_only_overloads}'#010+
+ ' Function AddInclude(Const Value : ','String;const CPUs:TCPUs) : TDe'+
+ 'pendency;inline;'#010+
+ '{$endif cpu_only_overloads}'#010+
' Function AddInclude(Const Value : String;const CPUs:TCPUs;const OS'+
- 'es:TOSes) : TDependency;'#013#010+
- ' Property Dependencies[Index : Integer] : TDependency Read GetDepen'+
- 'dency Write SetDependency; default;'#013#010+
- ' end;'#013#010+
- #013#010,
- ' { TTarget }'#013#010+
- #013#010+
- ' TTarget = Class(TNamedItem)'#013#010+
- ' private'#013#010+
- ' FInstall : Boolean;'#013#010+
- ' FAfterClean: TNotifyEvent;'#013#010+
- ' FAfterCompile: TNotifyEvent;'#013#010+
- ' FBeforeClean: TNotifyEvent;'#013#010+
- ' FBeforeCompile: TNotifyEvent;'#013#010+
- ' FCPUs: TCPUs;'#013#010+
- ' ',' FOSes: TOSes;'#013#010+
- ' FMode: TCompilerMode;'#013#010+
- ' FResourceStrings: Boolean;'#013#010+
- ' FObjectPath,'#013#010+
- ' FUnitPath,'#013#010+
- ' FIncludePath : TConditionalStrings;'#013#010+
- ' FDependencies : TDependencies;'#013#010+
- ' FCommands : TCommands;'#013#010+
- ' FDirectory: String;'#013#010+
- ' ',' FExtension: String;'#013#010+
- ' FTargetSourceFileName : String;'#013#010+
- ' FFileType: TFileType;'#013#010+
- ' FOptions: TStrings;'#013#010+
- ' FFPCTarget: String;'#013#010+
- ' FTargetState: TTargetState;'#013#010+
- ' FTargetType: TTargetType;'#013#010+
- ' FXML: string;'#013#010+
- ' function GetOpt','ions: TStrings;'#013#010+
- ' procedure SetOptions(const AValue: TStrings);'#013#010+
- ' Protected'#013#010+
- ' Function GetSourceFileName : String; virtual;'#013#010+
- ' Function GetUnitFileName : String; virtual;'#013#010+
- ' function GetUnitLibFileName(AOS: TOS): String; virtual;',#013#010+
- ' Function GetObjectFileName : String; virtual;'#013#010+
- ' function GetRSTFileName : String; Virtual;'#013#010+
- ' function GetRSJFileName : String; Virtual;'#013#010+
- ' function GetImportLibFileName(AOS : TOS) : String; Virtual;'#013#010+
- ' Function GetProgramFil','eName(AOS : TOS) : String; Virtual;'#013#010+
- ' Function GetProgramDebugFileName(AOS : TOS) : String; Virtual;'#013+
- #010+
- ' Public'#013#010+
- ' Constructor Create(ACollection : TCollection); override;'#013#010+
- ' Destructor Destroy; override;'#013#010+
- ' procedure AssignTo(Dest:',' TPersistent); override;'#013#010+
- ' Function GetOutputFileName (AOs : TOS) : String; Virtual;'#013#010+
- ' Function HaveOptions : Boolean;'#013#010+
- ' procedure SetName(const AValue: String);override;'#013#010+
- ' procedure SetXML(const AValue: string);'#013#010+
- ' Procedure',' GetCleanFiles(List : TStrings; const APrefixU, APrefix'+
- 'B : String; ACPU:TCPU; AOS : TOS); virtual;'#013#010+
+ 'es:TOSes) : TDependency;'#010+
+ ' Property Dependencies[Index : Integer] : TDependency Read GetDepen',
+ 'dency Write SetDependency; default;'#010+
+ ' end;'#010+
+ #010+
+ ' { TTarget }'#010+
+ #010+
+ ' TTarget = Class(TNamedItem)'#010+
+ ' private'#010+
+ ' FInstall : Boolean;'#010+
+ ' FAfterClean: TNotifyEvent;'#010+
+ ' FAfterCompile: TNotifyEvent;'#010+
+ ' FBeforeClean: TNotifyEvent;'#010+
+ ' FBeforeCompile: T','NotifyEvent;'#010+
+ ' FCPUs: TCPUs;'#010+
+ ' FOSes: TOSes;'#010+
+ ' FMode: TCompilerMode;'#010+
+ ' FResourceStrings: Boolean;'#010+
+ ' FObjectPath,'#010+
+ ' FUnitPath,'#010+
+ ' FIncludePath : TConditionalStrings;'#010+
+ ' FDependencies : TDependencies;'#010+
+ ' FCommands : TCommands;'#010,
+ ' FDirectory: String;'#010+
+ ' FExtension: String;'#010+
+ ' FTargetSourceFileName : String;'#010+
+ ' FFileType: TFileType;'#010+
+ ' FOptions: TStrings;'#010+
+ ' FFPCTarget: String;'#010+
+ ' FTargetState: TTargetState;'#010+
+ ' FTargetType: TTargetType;'#010+
+ ' FXML: string;'#010+
+ ' ',' function GetOptions: TStrings;'#010+
+ ' procedure SetOptions(const AValue: TStrings);'#010+
+ ' Protected'#010+
+ ' Function GetSourceFileName : String; virtual;'#010+
+ ' Function GetUnitFileName : String; virtual;'#010+
+ ' function GetUnitLibFileName(AOS: TOS): Stri','ng; virtual;'#010+
+ ' Function GetObjectFileName : String; virtual;'#010+
+ ' function GetRSTFileName : String; Virtual;'#010+
+ ' function GetRSJFileName : String; Virtual;'#010+
+ ' function GetImportLibFileName(AOS : TOS) : String; Virtual;'#010+
+ ' Function GetPro','gramFileName(AOS : TOS) : String; Virtual;'#010+
+ ' Function GetProgramDebugFileName(AOS : TOS) : String; Virtual;'#010+
+ ' Public'#010+
+ ' Constructor Create(ACollection : TCollection); override;'#010+
+ ' Destructor Destroy; override;'#010+
+ ' procedure AssignTo(Des','t: TPersistent); override;'#010+
+ ' Function GetOutputFileName (AOs : TOS) : String; Virtual;'#010+
+ ' Function HaveOptions : Boolean;'#010+
+ ' procedure SetName(const AValue: String);override;'#010+
+ ' procedure SetXML(const AValue: string);'#010+
+ ' Procedure Ge','tCleanFiles(List : TStrings; const APrefixU, APrefix'+
+ 'B : String; ACPU:TCPU; AOS : TOS); virtual;'#010+
' Procedure GetInstallFiles(List : TStrings; const APrefixU, APrefix'+
- 'B: String; ACPU:TCPU; AOS : TOS); virtual;'#013#010+
- ' Procedure GetArchiveFi','les(List : TStrings; ACPU:TCPU; AOS : TOS)'+
- '; virtual;'#013#010+
- ' Property Dependencies : TDependencies Read FDependencies;'#013#010+
- ' Property Commands : TCommands Read FCommands;'#013#010+
- ' Property State : TTargetState Read FTargetState;'#013#010+
- ' Property Targe','tType : TTargetType Read FTargetType Write FTarget'+
- 'Type;'#013#010+
- ' Property OSes : TOSes Read FOSes Write FOSes;'#013#010+
- ' Property CPUs : TCPUs Read FCPUs Write FCPUs;'#013#010+
- ' Property Mode : TCompilerMode Read FMode Write FMode;'#013#010+
- ' Property Options :',' TStrings Read GetOptions Write SetOptions;'#013+
- #010+
- ' Property SourceFileName: String Read GetSourceFileName ;'#013#010+
- ' Property UnitFileName : String Read GetUnitFileName;'#013#010+
- ' Property ObjectFileName : String Read GetObjectFileName;'#013#010+
- ' Property ','RSTFileName : String Read GetRSTFileName;'#013#010+
- ' Property RSJFileName : String Read GetRSJFileName;'#013#010+
- ' Property FPCTarget : String Read FFPCTarget Write FFPCTarget;'#013#010+
- ' Property Extension : String Read FExtension Write FExtension;'#013#010+
- ' Pro','perty FileType : TFileType Read FFileType Write FFileType;'#013+
- #010+
- ' Property Directory : String Read FDirectory Write FDirectory;'#013#010+
+ 'B: String; ACPU:TCPU; AOS : TOS); virtual;'#010+
+ ' Procedure GetArchiveFiles(L','ist : TStrings; ACPU:TCPU; AOS : TOS)'+
+ '; virtual;'#010+
+ ' Property Dependencies : TDependencies Read FDependencies;'#010+
+ ' Property Commands : TCommands Read FCommands;'#010+
+ ' Property State : TTargetState Read FTargetState;'#010+
+ ' Property TargetType : T','TargetType Read FTargetType Write FTarget'+
+ 'Type;'#010+
+ ' Property OSes : TOSes Read FOSes Write FOSes;'#010+
+ ' Property CPUs : TCPUs Read FCPUs Write FCPUs;'#010+
+ ' Property Mode : TCompilerMode Read FMode Write FMode;'#010+
+ ' Property Options : TStrings Rea','d GetOptions Write SetOptions;'#010+
+ ' Property SourceFileName: String Read GetSourceFileName ;'#010+
+ ' Property UnitFileName : String Read GetUnitFileName;'#010+
+ ' Property ObjectFileName : String Read GetObjectFileName;'#010+
+ ' Property RSTFileName : Str','ing Read GetRSTFileName;'#010+
+ ' Property RSJFileName : String Read GetRSJFileName;'#010+
+ ' Property FPCTarget : String Read FFPCTarget Write FFPCTarget;'#010+
+ ' Property Extension : String Read FExtension Write FExtension;'#010+
+ ' Property FileType : TFil','eType Read FFileType Write FFileType;'#010+
+ ' Property Directory : String Read FDirectory Write FDirectory;'#010+
' Property ResourceStrings : Boolean Read FResourceStrings Write FRe'+
- 'sourceStrings;'#013#010+
- ' Property Install : Bool','ean Read FInstall Write FInstall;'#013#010+
- ' Property TargetSourceFileName: String Read FTargetSourceFileName;'#013+
- #010+
- ' Property ObjectPath : TConditionalStrings Read FObjectPath;'#013#010+
- ' Property UnitPath : TConditionalStrings Read FUnitPath;'#013#010+
- ' Prop','erty IncludePath : TConditionalStrings Read FIncludePath;'#013+
- #010+
- ' Property XML: string Read FXML Write SetXML;'#013#010+
- ' // Events.'#013#010+
+ 'sourceStrings;'#010+
+ ' Property Install : Boolean Read FInstall Write ','FInstall;'#010+
+ ' Property TargetSourceFileName: String Read FTargetSourceFileName;'#010+
+ ' Property ObjectPath : TConditionalStrings Read FObjectPath;'#010+
+ ' Property UnitPath : TConditionalStrings Read FUnitPath;'#010+
+ ' Property IncludePath : TConditio','nalStrings Read FIncludePath;'#010+
+ ' Property XML: string Read FXML Write SetXML;'#010+
+ ' // Events.'#010+
' Property BeforeCompile : TNotifyEvent Read FBeforeCompile Write FB'+
- 'eforeCompile;'#013#010+
- ' Property AfterCompile : TN','otifyEvent Read FAfterCompile Write FA'+
- 'fterCompile;'#013#010+
+ 'eforeCompile;'#010+
+ ' Property AfterCompile : TNotifyEvent Read FAfterCompile Wr','ite FA'+
+ 'fterCompile;'#010+
' Property BeforeClean : TNotifyEvent Read FBeforeClean Write FBefor'+
- 'eClean;'#013#010+
+ 'eClean;'#010+
' Property AfterClean : TNotifyEvent Read FAfterClean Write FAfterCl'+
- 'ean;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TTargets }'#013#010+
- #013#010+
- ' TTa','rgets = Class(TNamedCollection)'#013#010+
- ' private'#013#010+
- ' function GetTargetItem(Index : Integer): TTarget;'#013#010+
- ' function GetTarget(const AName : String): TTarget;'#013#010+
- ' procedure SetTargetItem(Index : Integer; const AValue: TTarget);'#013+
- #010+
- ' Public'#013#010+
- ' F','unction AddFPDoc(Const AUnitName, AXMLName : String) : TTarget;'+
- 'inline;'#013#010+
- ' Function AddUnit(Const AUnitName : String) : TTarget;inline;'#013#010+
+ 'ean;'#010+
+ ' end;'#010+
+ #010+
+ ' { TTargets }'#010+
+ #010+
+ ' TTargets = Class(TNamedCollection)'#010+
+ ' priva','te'#010+
+ ' function GetTargetItem(Index : Integer): TTarget;'#010+
+ ' function GetTarget(const AName : String): TTarget;'#010+
+ ' procedure SetTargetItem(Index : Integer; const AValue: TTarget);'#010+
+ ' Public'#010+
+ ' Function AddFPDoc(Const AUnitName, AXMLName : ','String) : TTarget;'+
+ 'inline;'#010+
+ ' Function AddUnit(Const AUnitName : String) : TTarget;inline;'#010+
' Function AddUnit(Const AUnitName : String;const OSes:TOSes) : TTar'+
- 'get;inline;'#013#010+
- '{$ifdef cpu_only_ov','erloads}'#013#010+
- ' Function AddUnit(Const AUnitName : String;const CPUs:TCPUs) : TTar'+
- 'get;inline;'#013#010+
- '{$endif cpu_only_overloads}'#013#010+
+ 'get;inline;'#010+
+ '{$ifdef cpu_only_overloads}'#010+
+ ' Function AddUnit(Const AUnitName : ','String;const CPUs:TCPUs) : TT'+
+ 'arget;inline;'#010+
+ '{$endif cpu_only_overloads}'#010+
' Function AddUnit(Const AUnitName : String;const CPUs:TCPUs;const O'+
- 'Ses:TOSes) : TTarget;'#013#010+
- ' Function AddImplicitU','nit(Const AUnitName : String;InstallUnit:bo'+
- 'olean=true) : TTarget;inline;'#013#010+
+ 'Ses:TOSes) : TTarget;'#010+
+ ' Function AddImplicitUnit(Const AUnitName : String;InstallUnit:bool'+
+ 'ean=tru','e) : TTarget;inline;'#010+
' Function AddImplicitUnit(Const AUnitName : String;const OSes:TOSes'+
- ';InstallUnit:boolean=true) : TTarget;inline;'#013#010+
- ' Function AddImplicitUnit(Const AUnitName : Str','ing;const CPUs:TCP'+
- 'Us;InstallUnit:boolean=true) : TTarget;inline;'#013#010+
+ ';InstallUnit:boolean=true) : TTarget;inline;'#010+
' Function AddImplicitUnit(Const AUnitName : String;const CPUs:TCPUs'+
- ';const OSes:TOSes;InstallUnit:boolean=true) : TTarget;'#013#010+
- ' Function AddProgram(Const AProgramName : Str','ing) : TTarget;inlin'+
- 'e;'#013#010+
- ' Function AddProgram(Const AProgramName : String;const OSes:TOSes) '+
- ': TTarget;inline;'#013#010+
- '{$ifdef cpu_only_overloads}'#013#010+
+ ';InstallUnit:boolean=true) : TTarg','et;inline;'#010+
+ ' Function AddImplicitUnit(Const AUnitName : String;const CPUs:TCPUs'+
+ ';const OSes:TOSes;InstallUnit:boolean=true) : TTarget;'#010+
+ ' Function AddProgram(Const AProgramName : String) : TTarget;inline;'+
+ #010+
+ ' Function AddProgram(Const APr','ogramName : String;const OSes:TOSes'+
+ ') : TTarget;inline;'#010+
+ '{$ifdef cpu_only_overloads}'#010+
' Function AddProgram(Const AProgramName : String;const CPUs:TCPUs) '+
- ': TTarget;inline;'#013#010+
- '{$endif c','pu_only_overloads}'#013#010+
- ' Function AddProgram(Const AProgramName : String;const CPUs:TCPUs;c'+
- 'onst OSes:TOSes) : TTarget;'#013#010+
+ ': TTarget;inline;'#010+
+ '{$endif cpu_only_overloads}'#010+
+ ' Function AddProgram(Const AProgramNam','e : String;const CPUs:TCPUs'+
+ ';const OSes:TOSes) : TTarget;'#010+
' Function AddExampleUnit(Const AUnitName : String) : TTarget;inline'+
- ';'#013#010+
- ' Function AddExampleUnit(Const AUnitName : St','ring;const OSes:TOSe'+
- 's) : TTarget;inline;'#013#010+
- '{$ifdef cpu_only_overloads}'#013#010+
+ ';'#010+
+ ' Function AddExampleUnit(Const AUnitName : String;const OSes:TOSes)'+
+ ' : TTarget;inline;'#010+
+ '{$ifdef cpu_only_overl','oads}'#010+
' Function AddExampleUnit(Const AUnitName : String;const CPUs:TCPUs)'+
- ' : TTarget;inline;'#013#010+
- '{$endif cpu_only_overloads}'#013#010+
- ' Function AddExampleUnit(Const AUnitName : Stri','ng;const CPUs:TCPU'+
- 's;const OSes:TOSes) : TTarget;'#013#010+
- ' Function AddExampleProgram(Const AProgramName : String) : TTarget;'+
- 'inline;'#013#010+
+ ' : TTarget;inline;'#010+
+ '{$endif cpu_only_overloads}'#010+
+ ' Function AddExampleUnit(Const AUnitName : String;const CPUs:TCPUs;'+
+ 'const OSes:TOSes) : TTarget;'#010+
+ ' Function AddEx','ampleProgram(Const AProgramName : String) : TTarge'+
+ 't;inline;'#010+
' Function AddExampleProgram(Const AProgramName : String;const OSes:'+
- 'TOSes) : TTarget;inline;'#013#010+
- '{$ifdef cpu_onl','y_overloads}'#013#010+
- ' Function AddExampleProgram(Const AProgramName : String;const CPUs:'+
- 'TCPUs) : TTarget;inline;'#013#010+
- '{$endif cpu_only_overloads}'#013#010+
+ 'TOSes) : TTarget;inline;'#010+
+ '{$ifdef cpu_only_overloads}'#010+
+ ' Function AddExampleProgram(Const AProgramName : Strin','g;const CPU'+
+ 's:TCPUs) : TTarget;inline;'#010+
+ '{$endif cpu_only_overloads}'#010+
' Function AddExampleProgram(Const AProgramName : String;const CPUs:'+
- 'TCPUs;const OSes:TOSes) : TTarg','et;'#013#010+
- ' Property Targets[AName : String] : TTarget Read GetTarget; default'+
- ';'#013#010+
+ 'TCPUs;const OSes:TOSes) : TTarget;'#010+
+ ' Property Targets[AName : String] : TTarget Read GetTarget; defaul',
+ 't;'#010+
' Property TargetItems[Index : Integer] : TTarget Read GetTargetItem'+
- ' Write SetTargetItem;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TSource }'#013#010+
- #013#010+
- ' TSource = Class(TNamedItem)'#013#010+
- ' private'#013#010,
- ' FSourceType : TSourceType;'#013#010+
- ' FInstallSourcePath : string;'#013#010+
- ' function GetInstallSourcePath: string;'#013#010+
- ' Public'#013#010+
- ' Constructor Create(ACollection : TCollection); override;'#013#010+
- ' Destructor Destroy; override;'#013#010+
- ' Procedure GetInstal','lFiles(List : TStrings); virtual;'#013#010+
- ' property SourceType : TSourceType read FSourceType;'#013#010+
- ' property InstallSourcePath : string read GetInstallSourcePath;'#013+
- #010+
- ' end;'#013#010+
- #013#010+
- ' { TSources }'#013#010+
- #013#010+
- ' TSources = Class(TNamedCollection)'#013#010+
- ' private'#013#010+
- ' ',' function GetSourceItem(Index : Integer): TSource;'#013#010+
- ' procedure SetSourceItem(Index : Integer; const AValue: TSource);'#013+
- #010+
- ' public'#013#010+
- ' Function AddDoc(const AFiles : String) : TSource;'#013#010+
- ' Function AddDoc(const AFiles : String; AInstallSo','urcePath : Stri'+
- 'ng) : TSource;'#013#010+
- ' Function AddSrc(const AFiles : String) : TSource;'#013#010+
- ' Function AddExample(const AFiles : String) : TSource;'#013#010+
+ ' Write SetTargetItem;'#010+
+ ' end;'#010+
+ #010+
+ ' { TSource }'#010+
+ #010+
+ ' TSource = Class(TNamedItem)'#010+
+ ' private'#010+
+ ' FSourceType : TSourceType;'#010+
+ ' FInstallSourcePath : string;'#010+
+ ' function GetIn','stallSourcePath: string;'#010+
+ ' Public'#010+
+ ' Constructor Create(ACollection : TCollection); override;'#010+
+ ' Destructor Destroy; override;'#010+
+ ' Procedure GetInstallFiles(List : TStrings); virtual;'#010+
+ ' property SourceType : TSourceType read FSourceType',';'#010+
+ ' property InstallSourcePath : string read GetInstallSourcePath;'#010+
+ ' end;'#010+
+ #010+
+ ' { TSources }'#010+
+ #010+
+ ' TSources = Class(TNamedCollection)'#010+
+ ' private'#010+
+ ' function GetSourceItem(Index : Integer): TSource;'#010+
+ ' procedure SetSourceItem(Index : Integer; c','onst AValue: TSource);'+
+ #010+
+ ' public'#010+
+ ' Function AddDoc(const AFiles : String) : TSource;'#010+
+ ' Function AddDoc(const AFiles : String; AInstallSourcePath : String'+
+ ') : TSource;'#010+
+ ' Function AddSrc(const AFiles : String) : TSource;'#010+
+ ' Function AddE','xample(const AFiles : String) : TSource;'#010+
' Function AddExample(const AFiles : String; AInstallSourcePath : St'+
- 'ring) : TSource;'#013#010+
- ' Fun','ction AddTest(const AFiles : String) : TSource;'#013#010+
- ' procedure AddDocFiles(const AFileMask: string; Recursive: boolean '+
- '= False; AInstallSourcePath : String = '#039#039');'#013#010+
+ 'ring) : TSource;'#010+
+ ' Function AddTest(const AFiles : String) : TSource;'#010+
+ ' procedure AddDocFiles(const AFileMask: string; Recurs','ive: boolea'+
+ 'n = False; AInstallSourcePath : String = '#039#039');'#010+
' procedure AddSrcFiles(const AFileMask: string; Recursive: boolean '+
- '= Fals','e);'#013#010+
+ '= False);'#010+
' procedure AddExampleFiles(const AFileMask: string; Recursive: bool'+
- 'ean = False; AInstallSourcePath : String = '#039#039');'#013#010+
+ 'ean = False; AInstallSourcePath :',' String = '#039#039');'#010+
' procedure AddTestFiles(const AFileMask: string; Recursive: boolean'+
- ' = False);'#013#010+
- ' Property SourceItems[Index : I','nteger] : TSource Read GetSourceIt'+
- 'em Write SetSourceItem;default;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TPackage }'#013#010+
- #013#010+
- ' TPackage = Class(TNamedItem)'#013#010+
- ' private'#013#010+
- ' FAfterArchive: TNotifyEvent;'#013#010+
- ' FAfterArchiveProc: TNotifyProcEvent;'#013#010+
- ' FAfterClean: TNotifyEv','ent;'#013#010+
- ' FAfterCleanProc: TNotifyProcEvent;'#013#010+
- ' FAfterCompile: TNotifyEvent;'#013#010+
- ' FAfterCompileProc: TNotifyProcEvent;'#013#010+
- ' FAfterInstall: TNotifyEvent;'#013#010+
- ' FAfterInstallProc: TNotifyProcEvent;'#013#010+
- ' FAfterManifest: TNotifyEvent;'#013#010+
- ' FAf','terManifestProc: TNotifyProcEvent;'#013#010+
- ' FBeforeArchive: TNotifyEvent;'#013#010+
- ' FBeforeArchiveProc: TNotifyProcEvent;'#013#010+
- ' FBeforeClean: TNotifyEvent;'#013#010+
- ' FBeforeCleanProc: TNotifyProcEvent;'#013#010+
- ' FBeforeCompile: TNotifyEvent;'#013#010+
- ' FBeforeCompil','eProc: TNotifyProcEvent;'#013#010+
- ' FBeforeInstall: TNotifyEvent;'#013#010+
- ' FBeforeInstallProc: TNotifyProcEvent;'#013#010+
- ' FBeforeManifest: TNotifyEvent;'#013#010+
- ' FBeforeManifestProc: TNotifyProcEvent;'#013#010+
- ' FBuildMode: TBuildMode;'#013#010+
- ' FFlags: TStrings;'#013#010+
- ' ','FFPDocFormat: TFPDocFormats;'#013#010+
- ' FIsFPMakeAddIn: boolean;'#013#010+
- ' FSupportBuildModes: TBuildModes;'#013#010+
- ' FUnitPath,'#013#010+
- ' FObjectPath,'#013#010+
- ' FIncludePath,'#013#010+
- ' FSourcePath,'#013#010+
- ' FExamplePath,'#013#010+
- ' FTestPath,'#013#010+
- ' FCleanFiles : TConditionalStri','ngs;'#013#010+
- ' FInstallFiles : TConditionalDestStrings;'#013#010+
- ' FDependencies : TDependencies;'#013#010+
- ' FCPUs: TCPUs;'#013#010+
- ' FOSes: TOSes;'#013#010+
- ' FTargetState: TTargetState;'#013#010+
- ' FTargets: TTargets;'#013#010+
- ' FSources: TSources;'#013#010+
- ' FDirectory: String;'#013#010+
- ' FO','ptions: TStrings;'#013#010+
- ' FFileName: String;'#013#010+
- ' FAuthor: String;'#013#010+
- ' FLicense: String;'#013#010+
- ' FHomepageURL: String;'#013#010+
- ' FDownloadURL: String;'#013#010+
- ' FVersion: TFPVersion;'#013#010+
- ' FEmail : String;'#013#010+
- ' FNeedLibC : Boolean;'#013#010+
- ' FCommands : TComman','ds;'#013#010+
- ' FDescriptionFile : String;'#013#010+
- ' FDescription : String;'#013#010+
- ' FInstalledChecksum : Cardinal;'#013#010+
- ' FUnitsOutputDir: String;'#013#010+
- ' FPackageUnitInstallDir: String;'#013#010+
- ' // Cached directory of installed packages'#013#010+
- ' FUnitDir : String;'#013#010+
- ' ',' // Used by buildunits'#013#010+
- ' FBUTargets: TTargets;'#013#010+
- ' FBUTarget: TTarget;'#013#010+
- ' // Used to identify if package is being processed by a thread'#013#010+
- ' FProcessing : boolean;'#013#010+
- ' // Dictionary'#013#010+
- ' FDictionary : TDictionary;'#013#010+
- ' // Is set wh','en all sourcefiles are found'#013#010+
- ' FAllFilesResolved: boolean;'#013#010+
- ' FPackageVariants: TFPList;'#013#010+
- ' Function GetDescription : string;'#013#010+
- ' function GetDictionary: TDictionary;'#013#010+
- ' Function GetFileName : string;'#013#010+
- ' function GetOptions: TSt','rings;'#013#010+
- ' Function GetVersion : string;'#013#010+
- ' procedure SetOptions(const AValue: TStrings);'#013#010+
- ' Procedure SetVersion(const V : string);'#013#010+
- ' Protected'#013#010+
- ' procedure SetName(const AValue: String);override;'#013#010+
- ' procedure SaveUnitConfigToStr','ingList(Const AStringList: TStrings'+
- ';ACPU:TCPU;AOS:TOS); virtual;'#013#010+
- ' property Dictionary: TDictionary read GetDictionary;'#013#010+
- ' Public'#013#010+
- ' constructor Create(ACollection: TCollection); override;'#013#010+
- ' destructor destroy; override;'#013#010+
- ' Functi','on HaveOptions : Boolean;'#013#010+
- ' Function GetUnitsOutputDir(ACPU:TCPU; AOS : TOS):String;'#013#010+
- ' Function GetUnitConfigOutputDir(ACPU:TCPU; AOS : TOS):String;'#013+
- #010+
- ' Procedure InheritPackageVariantsFromDependency(ADependencyPackage:'+
- ' TPackage);'#013,#010+
+ ' = False);'#010+
+ ' Property SourceItems[Index : Integer] : TSource Read GetSourceItem'+
+ ' Write SetSourceItem;default;'#010+
+ ' end;'#010+
+ #010+
+ ' { TPackage }'#010+
+ #010+
+ ' TPackage = Class(T','NamedItem)'#010+
+ ' private'#010+
+ ' FAfterArchive: TNotifyEvent;'#010+
+ ' FAfterArchiveProc: TNotifyProcEvent;'#010+
+ ' FAfterClean: TNotifyEvent;'#010+
+ ' FAfterCleanProc: TNotifyProcEvent;'#010+
+ ' FAfterCompile: TNotifyEvent;'#010+
+ ' FAfterCompileProc: TNotifyProcEvent;'#010+
+ ' ',' FAfterInstall: TNotifyEvent;'#010+
+ ' FAfterInstallProc: TNotifyProcEvent;'#010+
+ ' FAfterManifest: TNotifyEvent;'#010+
+ ' FAfterManifestProc: TNotifyProcEvent;'#010+
+ ' FAfterPkgList: TNotifyEvent;'#010+
+ ' FAfterPkgListProc: TNotifyProcEvent;'#010+
+ ' FBeforeArchiv','e: TNotifyEvent;'#010+
+ ' FBeforeArchiveProc: TNotifyProcEvent;'#010+
+ ' FBeforeClean: TNotifyEvent;'#010+
+ ' FBeforeCleanProc: TNotifyProcEvent;'#010+
+ ' FBeforeCompile: TNotifyEvent;'#010+
+ ' FBeforeCompileProc: TNotifyProcEvent;'#010+
+ ' FBeforeInstall: TNotifyEvent;',#010+
+ ' FBeforeInstallProc: TNotifyProcEvent;'#010+
+ ' FBeforeManifest: TNotifyEvent;'#010+
+ ' FBeforeManifestProc: TNotifyProcEvent;'#010+
+ ' FBeforePkgList: TNotifyEvent;'#010+
+ ' FBeforePkgListProc: TNotifyProcEvent;'#010+
+ ' FBuildMode: TBuildMode;'#010+
+ ' FFlags: TSt','rings;'#010+
+ ' FFPDocFormat: TFPDocFormats;'#010+
+ ' FIsFPMakeAddIn: boolean;'#010+
+ ' FSupportBuildModes: TBuildModes;'#010+
+ ' FUnitPath,'#010+
+ ' FObjectPath,'#010+
+ ' FIncludePath,'#010+
+ ' FSourcePath,'#010+
+ ' FExamplePath,'#010+
+ ' FTestPath,'#010+
+ ' FCleanFiles : TConditionalSt','rings;'#010+
+ ' FInstallFiles : TConditionalDestStrings;'#010+
+ ' FDependencies : TDependencies;'#010+
+ ' FCPUs: TCPUs;'#010+
+ ' FOSes: TOSes;'#010+
+ ' FTargetState: TTargetState;'#010+
+ ' FTargets: TTargets;'#010+
+ ' FSources: TSources;'#010+
+ ' FDirectory: String;'#010+
+ ' FOptions:',' TStrings;'#010+
+ ' FFileName: String;'#010+
+ ' FShortName: String;'#010+
+ ' FAuthor: String;'#010+
+ ' FLicense: String;'#010+
+ ' FHomepageURL: String;'#010+
+ ' FDownloadURL: String;'#010+
+ ' FVersion: TFPVersion;'#010+
+ ' FEmail : String;'#010+
+ ' FNeedLibC : Boolean;'#010+
+ ' FCommands :',' TCommands;'#010+
+ ' FDescriptionFile : String;'#010+
+ ' FDescription : String;'#010+
+ ' FInstalledChecksum : Cardinal;'#010+
+ ' FUnitsOutputDir: String;'#010+
+ ' FPackageUnitInstallDir: String;'#010+
+ ' // Cached directory of installed packages'#010+
+ ' FUnitDir : String;'#010+
+ ' ',' FUnitConfigFileName : String;'#010+
+ ' // Used by buildunits'#010+
+ ' FBUTargets: TTargets;'#010+
+ ' FBUTarget: TTarget;'#010+
+ ' // Used to identify if package is being processed by a thread'#010+
+ ' FProcessing : boolean;'#010+
+ ' // Dictionary'#010+
+ ' FDictionary : TD','ictionary;'#010+
+ ' // Is set when all sourcefiles are found'#010+
+ ' FAllFilesResolved: boolean;'#010+
+ ' FPackageVariants: TFPList;'#010+
+ ' Function GetDescription : string;'#010+
+ ' function GetDictionary: TDictionary;'#010+
+ ' Function GetFileName : string;'#010+
+ ' Fun','ction GetShortName : string;'#010+
+ ' function GetOptions: TStrings;'#010+
+ ' Function GetVersion : string;'#010+
+ ' procedure SetOptions(const AValue: TStrings);'#010+
+ ' Procedure SetVersion(const V : string);'#010+
+ ' Protected'#010+
+ ' procedure SetName(const AValue: ','String);override;'#010+
+ ' procedure SaveUnitConfigToStringList(Const AStringList: TStrings;A'+
+ 'CPU:TCPU;AOS:TOS); virtual;'#010+
+ ' property Dictionary: TDictionary read GetDictionary;'#010+
+ ' Public'#010+
+ ' constructor Create(ACollection: TCollection); override',';'#010+
+ ' destructor destroy; override;'#010+
+ ' Function HaveOptions : Boolean;'#010+
+ ' Function GetUnitsOutputDir(ACPU:TCPU; AOS : TOS):String;'#010+
+ ' Function GetUnitConfigOutputFilename(ACPU:TCPU; AOS : TOS):String'+
+ ';'#010+
+ ' Procedure InheritPackageVarian','tsFromDependency(ADependencyPackag'+
+ 'e: TPackage);'#010+
' Function GetPackageVariantsByName(AName: string): TPackageVariant'+
- 's;'#013#010+
- ' Procedure SetUnitsOutputDir(AValue: string);'#013#010+
- ' Function GetPackageUnitInstallDir(ACPU:TCPU; AOS : TOS):String;'#013+
- #010+
- ' Procedure SetPackageUnitInstallDir(AValue',': string);'#013#010+
- ' Function GetBinOutputDir(ACPU:TCPU; AOS : TOS) : String;'#013#010+
+ 's;'#010+
+ ' Procedure SetUnitsOutputDir(AValue: string);'#010+
+ ' Function GetPackageUnitInstallDir(ACPU:TCPU; AOS : TOS):String;'#010+
+ ' ',' Procedure SetPackageUnitInstallDir(AValue: string);'#010+
+ ' Function GetBinOutputDir(ACPU:TCPU; AOS : TOS) : String;'#010+
' Procedure GetCleanFiles(List : TStrings; ACPU:TCPU; AOS : TOS); vi'+
- 'rtual;'#013#010+
- ' procedure GetInstallFiles(List: TStrings;Types : TTargetTypes;ACPU'+
- ':TCPU; AOS : TOS)','; virtual;'#013#010+
+ 'rtual;'#010+
+ ' procedure GetInstallFiles(List: TStrings;T','ypes : TTargetTypes;AC'+
+ 'PU:TCPU; AOS : TOS); virtual;'#010+
' procedure GetInstallSourceFiles(List: TStrings; SourceTypes : TSou'+
- 'rceTypes; TargetTypes : TTargetTypes); virtual;'#013#010+
- ' Procedure GetArchiveFiles(List : TStrings; ACPU:TCPU; AOS : TOS); '+
- 'virtual;'#013#010+
- ' Procedure GetArchiveSourc','eFiles(List : TStrings); virtual;'#013#010+
- ' Procedure GetManifest(Manifest : TStrings);'#013#010+
- ' Procedure AddPackageVariant(APackageVariant: TPackageVariants);'#013+
- #010+
- ' procedure ApplyPackageVariantToCompilerOptions(ACompilerOptions: t'+
- 'strings);'#013#010+
- ' pr','ocedure SetDefaultPackageVariant;'#013#010+
- ' procedure LoadUnitConfigFromFile(Const AFileName: String);'#013#010+
- ' procedure SaveUnitConfigToFile(Const AFileName: String;ACPU:TCPU;A'+
- 'OS:TOS);'#013#010+
- ' Property Version : String Read GetVersion Write SetVersio','n;'#013#010+
- ' Property FileName : String Read GetFileName Write FFileName;'#013#010+
- ' Property HomepageURL : String Read FHomepageURL Write FHomepageURL'+
- ';'#013#010+
+ 'rceTypes; TargetTypes : TTargetTypes); virtual;'#010+
+ ' Procedure GetArchiveFiles(List : TStrings; ACPU:TCPU; AOS : TOS); ',
+ 'virtual;'#010+
+ ' Procedure GetArchiveSourceFiles(List : TStrings); virtual;'#010+
+ ' Procedure GetManifest(Manifest : TStrings);'#010+
+ ' Procedure ListPackage(PkgList : TStrings);'#010+
+ ' Procedure AddPackageVariant(APackageVariant: TPackageVariants);'#010+
+ ' p','rocedure ApplyPackageVariantToCompilerOptions(ACompilerOptions:'+
+ ' tstrings);'#010+
+ ' procedure SetDefaultPackageVariant;'#010+
+ ' procedure LoadUnitConfigFromFile(Const AFileName: String);'#010+
+ ' procedure SaveUnitConfigToFile(Const AFileName: String;ACP','U:TCPU'+
+ ';AOS:TOS);'#010+
+ ' Property Version : String Read GetVersion Write SetVersion;'#010+
+ ' Property FileName : String Read GetFileName Write FFileName;'#010+
+ ' Property ShortName : String Read GetShortName Write FShortName;'#010+
+ ' Property HomepageURL :',' String Read FHomepageURL Write FHomepageU'+
+ 'RL;'#010+
' Property DownloadURL : String Read FDownloadURL Write FDownloadURL'+
- ';'#013#010+
- ' Property Email : Str','ing Read FEmail Write FEmail;'#013#010+
- ' Property Author : String Read FAuthor Write FAuthor;'#013#010+
- ' Property License : String Read FLicense Write FLicense;'#013#010+
- ' Property Directory : String Read FDirectory Write FDirectory;'#013#010+
- ' Property Descriptio','n : String Read GetDescription Write FDescrip'+
- 'tion;'#013#010+
- ' Property DescriptionFile : String Read FDescriptionFile Write FDes'+
- 'criptionFile;'#013#010+
+ ';'#010+
+ ' Property Email : String Read FEmail Write FEmail;'#010+
+ ' Property Author : String Read FAuthor Write FAuthor;'#010+
+ ' Propert','y License : String Read FLicense Write FLicense;'#010+
+ ' Property Directory : String Read FDirectory Write FDirectory;'#010+
+ ' Property Description : String Read GetDescription Write FDescripti'+
+ 'on;'#010+
+ ' Property DescriptionFile : String Read FDescrip','tionFile Write FD'+
+ 'escriptionFile;'#010+
' Property InstalledChecksum : Cardinal Read FInstalledChecksum Writ'+
- 'e FInstalledChecksum;'#013#010+
- ' Proper','ty IsFPMakeAddIn: boolean read FIsFPMakeAddIn write FIsFPM'+
- 'akeAddIn;'#013#010+
- ' Property SupportBuildModes: TBuildModes read FSupportBuildModes wr'+
- 'ite FSupportBuildModes;'#013#010+
- ' Property BuildMode: TBuildMode read FBuildMode;'#013#010+
- ' Property Flags: TSt','rings read FFlags;'#013#010+
- ' // Compiler options.'#013#010+
- ' Property OSes : TOSes Read FOSes Write FOSes;'#013#010+
- ' Property CPUs : TCPUs Read FCPUs Write FCPUs;'#013#010+
- ' Property NeedLibC : Boolean Read FNeedLibC Write FNeedLibC;'#013#010+
- ' Property Options: TStri','ngs Read GetOptions Write SetOptions;'#013+
- #010+
- ' Property UnitPath : TConditionalStrings Read FUnitPath;'#013#010+
- ' Property ObjectPath : TConditionalStrings Read FObjectPath;'#013#010+
- ' Property IncludePath : TConditionalStrings Read FIncludePath;'#013#010+
- ' Prop','erty SourcePath : TConditionalStrings Read FSourcePath;'#013#010+
- ' Property ExamplePath : TConditionalStrings Read FExamplePath;'#013#010+
- ' Property TestPath : TConditionalStrings Read FTestPath;'#013#010+
- ' Property FPDocFormat: TFPDocFormats read FFPDocForm','at write FFPD'+
- 'ocFormat;'#013#010+
- ' // Targets and dependencies'#013#010+
- ' Property InstallFiles : TConditionalDestStrings Read FInstallFiles'+
- ';'#013#010+
- ' Property CleanFiles : TConditionalStrings Read FCleanFiles;'#013#010+
- ' Property Dependencies : TDependencies Rea','d FDependencies;'#013#010+
- ' Property Commands : TCommands Read FCommands;'#013#010+
- ' Property State : TTargetState Read FTargetState;'#013#010+
- ' Property Targets : TTargets Read FTargets;'#013#010+
- ' Property Sources : TSources Read FSources;'#013#010+
- ' Property UnitDir ',': String Read FUnitDir Write FUnitDir;'#013#010+
- ' // events'#013#010+
+ 'e FInstalledChecksum;'#010+
+ ' Property IsFPMakeAddIn: boolean read FIsFPMakeAddIn write FIsFPMak'+
+ 'eAddIn;'#010+
+ ' Property SupportBuildModes: TBuil','dModes read FSupportBuildModes '+
+ 'write FSupportBuildModes;'#010+
+ ' Property BuildMode: TBuildMode read FBuildMode;'#010+
+ ' Property Flags: TStrings read FFlags;'#010+
+ ' // Compiler options.'#010+
+ ' Property OSes : TOSes Read FOSes Write FOSes;'#010+
+ ' Property C','PUs : TCPUs Read FCPUs Write FCPUs;'#010+
+ ' Property NeedLibC : Boolean Read FNeedLibC Write FNeedLibC;'#010+
+ ' Property Options: TStrings Read GetOptions Write SetOptions;'#010+
+ ' Property UnitPath : TConditionalStrings Read FUnitPath;'#010+
+ ' Property Ob','jectPath : TConditionalStrings Read FObjectPath;'#010+
+ ' Property IncludePath : TConditionalStrings Read FIncludePath;'#010+
+ ' Property SourcePath : TConditionalStrings Read FSourcePath;'#010+
+ ' Property ExamplePath : TConditionalStrings Read FExampleP','ath;'#010+
+ ' Property TestPath : TConditionalStrings Read FTestPath;'#010+
+ ' Property FPDocFormat: TFPDocFormats read FFPDocFormat write FFPDoc'+
+ 'Format;'#010+
+ ' // Targets and dependencies'#010+
+ ' Property InstallFiles : TConditionalDestStrings Read FInstall','Fil'+
+ 'es;'#010+
+ ' Property CleanFiles : TConditionalStrings Read FCleanFiles;'#010+
+ ' Property Dependencies : TDependencies Read FDependencies;'#010+
+ ' Property Commands : TCommands Read FCommands;'#010+
+ ' Property State : TTargetState Read FTargetState;'#010+
+ ' ','Property Targets : TTargets Read FTargets;'#010+
+ ' Property Sources : TSources Read FSources;'#010+
+ ' Property UnitDir : String Read FUnitDir Write FUnitDir;'#010+
+ ' Property UnitConfigFileName: String read FUnitConfigFileName write'+
+ ' FUnitConfigFileName',';'#010+
+ ' // events'#010+
' Property BeforeCompile : TNotifyEvent Read FBeforeCompile Write FB'+
- 'eforeCompile;'#013#010+
+ 'eforeCompile;'#010+
' Property BeforeCompileProc : TNotifyProcEvent Read FBeforeCompileP'+
- 'roc write FBeforeCompileProc;'#013,#010+
- ' Property AfterCompile : TNotifyEvent Read FAfterCompile Write FAft'+
- 'erCompile;'#013#010+
+ 'roc write FBeforeCompileProc;'#010+
+ ' Property AfterCompile : TNotifyEvent',' Read FAfterCompile Write FA'+
+ 'fterCompile;'#010+
' Property AfterCompileProc : TNotifyProcEvent Read FAfterCompilePro'+
- 'c Write FAfterCompileProc;'#013#010+
- ' Property BeforeInstall : TNotifyEvent Read FBeforeInsta','ll Write '+
- 'FBeforeInstall;'#013#010+
- ' Property BeforeInstallProc : TNotifyProcEvent Read FBeforeInstallP'+
- 'roc Write FBeforeInstallProc;'#013#010+
+ 'c Write FAfterCompileProc;'#010+
+ ' Property BeforeInstall : TNotifyEvent Read FBeforeInstall Write FB'+
+ 'eforeInstall;'#010+
+ ' Property Befor','eInstallProc : TNotifyProcEvent Read FBeforeInstal'+
+ 'lProc Write FBeforeInstallProc;'#010+
' Property AfterInstall : TNotifyEvent Read FAfterInstall Write FAft'+
- 'erInstall;'#013#010+
- ' Property AfterInstallProc :',' TNotifyProcEvent Read FAfterInstallP'+
- 'roc Write FAfterInstallProc;'#013#010+
+ 'erInstall;'#010+
+ ' Property AfterInstallProc : TNotifyProcEvent Read FAfterInstallPro'+
+ 'c Write',' FAfterInstallProc;'#010+
' Property BeforeClean : TNotifyEvent Read FBeforeClean Write FBefor'+
- 'eClean;'#013#010+
+ 'eClean;'#010+
' Property BeforeCleanProc : TNotifyProcEvent Read FBeforeCleanProc '+
- 'Write FBeforeCleanProc;'#013,#010+
- ' Property AfterClean : TNotifyEvent Read FAfterClean Write FAfterCl'+
- 'ean;'#013#010+
+ 'Write FBeforeCleanProc;'#010+
+ ' Property AfterClean : TNotifyEvent Read FAft','erClean Write FAfter'+
+ 'Clean;'#010+
' Property AfterCleanProc : TNotifyProcEvent Read FAfterCleanProc Wr'+
- 'ite FAfterCleanProc;'#013#010+
+ 'ite FAfterCleanProc;'#010+
' Property BeforeArchive : TNotifyEvent Read FBeforeArchive Write FB'+
- 'e','foreArchive;'#013#010+
- ' Property BeforeArchiveProc : TNotifyProcEvent Read FBeforeArchiveP'+
- 'roc Write FBeforeArchiveProc;'#013#010+
+ 'eforeArchive;'#010+
+ ' Property BeforeArchiveProc : TNoti','fyProcEvent Read FBeforeArchiv'+
+ 'eProc Write FBeforeArchiveProc;'#010+
' Property AfterArchive : TNotifyEvent Read FAfterArchive Write FAft'+
- 'erArchive;'#013#010+
- ' Property AfterArchiveProc : TNotifyProc','Event Read FAfterArchiveP'+
- 'roc Write FAfterArchiveProc;'#013#010+
+ 'erArchive;'#010+
+ ' Property AfterArchiveProc : TNotifyProcEvent Read FAfterArchivePro'+
+ 'c Write FAfterArchiveProc;'#010,
' Property BeforeManifest : TNotifyEvent Read FBeforeManifest Write '+
- 'FBeforeManifest;'#013#010+
+ 'FBeforeManifest;'#010+
' Property BeforeManifestProc : TNotifyProcEvent Read FBeforeManifes'+
- 'tProc Write FBeforeManifest','Proc;'#013#010+
- ' Property AfterManifest : TNotifyEvent Read FAfterManifest Write FA'+
- 'fterManifest;'#013#010+
+ 'tProc Write FBeforeManifestProc;'#010+
+ ' Property AfterManifest : TNotifyEvent Read FAf','terManifest Write '+
+ 'FAfterManifest;'#010+
' Property AfterManifestProc : TNotifyProcEvent Read FAfterManifestP'+
- 'roc Write FAfterManifestProc;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TPackages }'#013#010+
- #013#010+
- ' TPackages = Clas','s(TNamedCollection)'#013#010+
- ' private'#013#010+
- ' function GetPackage(const AName : String): TPackage;'#013#010+
- ' function GetPackageItem(AIndex : Integer): TPackage;'#013#010+
- ' procedure SetPackageItem(AIndex : Integer; const AValue: TPackage)'+
- ';'#013#010+
- ' Public'#013#010+
- ' Funct','ion AddPackage(Const AName : String) : TPackage;'#013#010+
+ 'roc Write FAfterManifestProc;'#010+
+ ' Property BeforePkgList : TNotifyEvent Read FBeforePkgList Write FB'+
+ 'eforePkgList;'#010+
+ ' Property BeforePkg','ListProc : TNotifyProcEvent Read FBeforePkgLis'+
+ 'tProc Write FBeforePkgListProc;'#010+
+ ' Property AfterPkgList : TNotifyEvent Read FAfterPkgList Write FAft'+
+ 'erPkgList;'#010+
+ ' Property AfterPkgListProc : TNotifyProcEvent Read FAfterPkgListPro'+
+ 'c Write FAf','terPkgListProc;'#010+
+ ' end;'#010+
+ #010+
+ ' { TPackages }'#010+
+ #010+
+ ' TPackages = Class(TNamedCollection)'#010+
+ ' private'#010+
+ ' function GetPackage(const AName : String): TPackage;'#010+
+ ' function GetPackageItem(AIndex : Integer): TPackage;'#010+
+ ' procedure SetPackageItem(AIndex :',' Integer; const AValue: TPackag'+
+ 'e);'#010+
+ ' Public'#010+
+ ' Function AddPackage(Const AName : String) : TPackage;'#010+
' Property Packages[AName : String] : TPackage Read GetPackage ; Def'+
- 'ault;'#013#010+
- ' Property PackageItems[AIndex : Integer] : TPackage Read GetPackage'+
- 'Item Write SetPackageItem;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { T','CustomDefaults }'#013#010+
- #013#010+
- ' TCustomDefaults = Class(TPersistent)'#013#010+
- ' Private'#013#010+
- ' FArchive: String;'#013#010+
- ' FBuildMode: TBuildMode;'#013#010+
- ' FCompiler: String;'#013#010+
- ' FCopy: String;'#013#010+
- ' FFPDocOutputDir: String;'#013#010+
- ' FIgnoreInvalidOptions: Boolean;'#013#010+
- ' FI','nstallExamples: Boolean;'#013#010+
- ' FMkDir: String;'#013#010+
- ' FMove: String;'#013#010+
- ' FOptions: TStrings;'#013#010+
- ' FCPU: TCPU;'#013#010+
- ' FOS: TOS;'#013#010+
- ' FMode : TCompilerMode;'#013#010+
- ' FCompilerVersion : String;'#013#010+
- ' FPrefix: String;'#013#010+
- ' FLocalUnitDir,'#013#010+
- ' FGlobalUni','tDir,'#013#010+
- ' FBaseInstallDir,'#013#010+
- ' FUnitInstallDir,'#013#010+
- ' FBinInstallDir,'#013#010+
- ' FDocInstallDir,'#013#010+
- ' FExamplesInstallDir : String;'#013#010+
- ' FSkipCrossPrograms: boolean;'#013#010+
- ' FThreadsAmount: integer;'#013#010+
- ' FRemoveTree: String;'#013#010+
- ' FRemoveDir: String',';'#013#010+
- ' FRemove: String;'#013#010+
- ' FTarget: String;'#013#010+
- ' FUnixPaths: Boolean;'#013#010+
- ' FNoFPCCfg: Boolean;'#013#010+
- ' FUseEnvironment: Boolean;'#013#010+
- ' FZipPrefix: String;'#013#010+
- ' function GetBuildCPU: TCpu;'#013#010+
- ' function GetBuildOS: TOS;'#013#010+
- ' function GetBuildS','tring: String;'#013#010+
- ' function GetFPDocOutputDir: String;'#013#010+
- ' function GetLocalUnitDir: String;'#013#010+
- ' function GetGlobalUnitDir: String;'#013#010+
- ' function GetBaseInstallDir: String;'#013#010+
- ' function GetBinInstallDir: String;'#013#010+
- ' function GetCompile','r: String;'#013#010+
- ' function GetDocInstallDir: String;'#013#010+
- ' function GetExamplesInstallDir: String;'#013#010+
- ' function GetOptions: TStrings;'#013#010+
- ' function GetUnitInstallDir: String;'#013#010+
- ' procedure SetLocalUnitDir(const AValue: String);'#013#010+
- ' procedur','e SetGlobalUnitDir(const AValue: String);'#013#010+
- ' procedure IntSetBaseInstallDir(const AValue: String);'#013#010+
- ' procedure SetBaseInstallDir(const AValue: String);'#013#010+
- ' procedure SetCPU(const AValue: TCPU);'#013#010+
- ' procedure SetOptions(const AValue: ','TStrings);'#013#010+
- ' procedure SetOS(const AValue: TOS);'#013#010+
- ' procedure SetPrefix(const AValue: String);'#013#010+
- ' procedure SetTarget(const AValue: String);'#013#010+
- ' procedure SetUnitInstallDir(const AValue: String);'#013#010+
- ' procedure SetZipPrefix(AValue: ','String);'#013#010+
- ' Protected'#013#010+
- ' procedure RecalcTarget;'#013#010+
- ' Function CmdLineOptions : String;'#013#010+
- ' Public'#013#010+
- ' Constructor Create;'#013#010+
- ' Procedure InitDefaults;'#013#010+
- ' Function HaveOptions: Boolean;'#013#010+
- ' function IsBuildDifferentFromTarget: boolean;',#013#010+
- ' procedure CompilerDefaults; virtual;'#013#010+
- ' Procedure LocalInit(Const AFileName : String);'#013#010+
- ' Procedure LoadFromFile(Const AFileName : String);'#013#010+
- ' Procedure SaveToFile(Const AFileName : String);'#013#010+
- ' procedure SaveToStream(S : TStre','am);virtual;'#013#010+
- ' procedure LoadFromStream(S : TStream);virtual;'#013#010+
- ' // Compile Information'#013#010+
- ' Property Target : String Read FTarget Write SetTarget;'#013#010+
- ' Property OS : TOS Read FOS Write SetOS;'#013#010+
- ' Property CPU : TCPU Read FCPU Write S','etCPU;'#013#010+
- ' Property BuildString : String read GetBuildString;'#013#010+
- ' Property BuildOS : TOS read GetBuildOS;'#013#010+
- ' Property BuildCPU : TCpu read GetBuildCPU;'#013#010+
- ' Property Mode : TCompilerMode Read FMode Write FMode;'#013#010+
- ' Property UnixPaths :',' Boolean Read FUnixPaths Write FUnixPaths;'#013+
- #010+
- ' Property Options : TStrings Read GetOptions Write SetOptions; /'+
- '/ Default compiler options.'#013#010+
- ' Property NoFPCCfg : Boolean Read FNoFPCCfg Write FNoFPCCfg;'#013#010+
- ' // When ThreadsAmount is spe','cified, #threadsamount# worker-threa'+
- 'ds are'#013#010+
- ' // created. When such a worker-thread is ready all worker-threads '+
- 'are evaluated'#013#010+
+ 'ault;'#010+
+ ' Property PackageItems[AIndex : Integer] : TPackage Read Ge','tPacka'+
+ 'geItem Write SetPackageItem;'#010+
+ ' end;'#010+
+ #010+
+ ' { TCustomDefaults }'#010+
+ #010+
+ ' TCustomDefaults = Class(TPersistent)'#010+
+ ' Private'#010+
+ ' FArchive: String;'#010+
+ ' FBuildMode: TBuildMode;'#010+
+ ' FCompiler: String;'#010+
+ ' FCopy: String;'#010+
+ ' FFPDocOutputDir: String;'#010+
+ ' ','FFPUnitSourcePath: String;'#010+
+ ' FIgnoreInvalidOptions: Boolean;'#010+
+ ' FInstallExamples: Boolean;'#010+
+ ' FMkDir: String;'#010+
+ ' FMove: String;'#010+
+ ' FOptions: TStrings;'#010+
+ ' FCPU: TCPU;'#010+
+ ' FOS: TOS;'#010+
+ ' FMode : TCompilerMode;'#010+
+ ' FCompilerVersion : Str','ing;'#010+
+ ' FPrefix: String;'#010+
+ ' FLocalUnitDir,'#010+
+ ' FGlobalUnitDir,'#010+
+ ' FBaseInstallDir,'#010+
+ ' FUnitInstallDir,'#010+
+ ' FUnitConfigFilesInstallDir,'#010+
+ ' FBinInstallDir,'#010+
+ ' FDocInstallDir,'#010+
+ ' FExamplesInstallDir : String;'#010+
+ ' FSkipCrossPrograms: boo','lean;'#010+
+ ' FThreadsAmount: integer;'#010+
+ ' FRemoveTree: String;'#010+
+ ' FRemoveDir: String;'#010+
+ ' FRemove: String;'#010+
+ ' FTarget: String;'#010+
+ ' FUnixPaths: Boolean;'#010+
+ ' FNoFPCCfg: Boolean;'#010+
+ ' FUseEnvironment: Boolean;'#010+
+ ' FZipPrefix: String;'#010+
+ ' FExplic','itOSNone: Boolean;'#010+
+ ' function GetBuildCPU: TCpu;'#010+
+ ' function GetBuildOS: TOS;'#010+
+ ' function GetBuildString: String;'#010+
+ ' function GetFPDocOutputDir: String;'#010+
+ ' function GetFPUnitSourcePath: String;'#010+
+ ' function GetLocalUnitDir: String;'#010+
+ ' ',' function GetGlobalUnitDir: String;'#010+
+ ' function GetBaseInstallDir: String;'#010+
+ ' function GetBinInstallDir: String;'#010+
+ ' function GetCompiler: String;'#010+
+ ' function GetDocInstallDir: String;'#010+
+ ' function GetExamplesInstallDir: String;'#010+
+ ' fun','ction GetOptions: TStrings;'#010+
+ ' function GetPrefix: String;'#010+
+ ' function GetUnitInstallDir: String;'#010+
+ ' function GetUnitConfigFilesInstallDir: String;'#010+
+ ' procedure SetLocalUnitDir(const AValue: String);'#010+
+ ' procedure SetGlobalUnitDir(const',' AValue: String);'#010+
+ ' procedure IntSetBaseInstallDir(const AValue: String);'#010+
+ ' procedure SetBaseInstallDir(const AValue: String);'#010+
+ ' procedure SetCPU(const AValue: TCPU);'#010+
+ ' procedure SetOptions(const AValue: TStrings);'#010+
+ ' procedure Set','OS(const AValue: TOS);'#010+
+ ' procedure SetPrefix(const AValue: String);'#010+
+ ' procedure SetTarget(const AValue: String);'#010+
+ ' procedure SetUnitInstallDir(const AValue: String);'#010+
+ ' procedure SetUnitConfigFilesInstallDir(const AValue: String);'#010+
+ ' ',' procedure SetZipPrefix(AValue: String);'#010+
+ ' Protected'#010+
+ ' procedure RecalcTarget;'#010+
+ ' Function CmdLineOptions : String;'#010+
+ ' Public'#010+
+ ' Constructor Create;'#010+
+ ' Procedure InitDefaults;'#010+
+ ' Function HaveOptions: Boolean;'#010+
+ ' function IsBuildDiff','erentFromTarget: boolean;'#010+
+ ' procedure CompilerDefaults; virtual;'#010+
+ ' Procedure LocalInit(Const AFileName : String);'#010+
+ ' Procedure LoadFromFile(Const AFileName : String);'#010+
+ ' Procedure SaveToFile(Const AFileName : String);'#010+
+ ' procedure Sa','veToStream(S : TStream);virtual;'#010+
+ ' procedure LoadFromStream(S : TStream);virtual;'#010+
+ ' // Compile Information'#010+
+ ' Property Target : String Read FTarget Write SetTarget;'#010+
+ ' Property OS : TOS Read FOS Write SetOS;'#010+
+ ' Property CPU : TCPU Re','ad FCPU Write SetCPU;'#010+
+ ' Property CompilerVersion : String read FCompilerVersion;'#010+
+ ' Property ExplicitOSNone: Boolean read FExplicitOSNone Write FExpli'+
+ 'citOSNone;'#010+
+ ' Property BuildString : String read GetBuildString;'#010+
+ ' Property BuildOS ',': TOS read GetBuildOS;'#010+
+ ' Property BuildCPU : TCpu read GetBuildCPU;'#010+
+ ' Property Mode : TCompilerMode Read FMode Write FMode;'#010+
+ ' Property UnixPaths : Boolean Read FUnixPaths Write FUnixPaths;'#010+
+ ' Property Options : TStrings Read GetOptio','ns Write SetOptions; '+
+ ' // Default compiler options.'#010+
+ ' Property NoFPCCfg : Boolean Read FNoFPCCfg Write FNoFPCCfg;'#010+
+ ' // When ThreadsAmount is specified, #threadsamount# worker-threads'+
+ ' are'#010+
+ ' // created. When such a worker-thread is rea','dy all worker-thread'+
+ 's are evaluated'#010+
' // to see if there are idle threads (there is always at least one '+
- 'such thread.)'#013#010+
- ' // To each idle thread',' a package is assigned which has to be com'+
- 'piled for the'#013#010+
- ' // current target and for which all dependencies are compiled earl'+
- 'ier.'#013#010+
+ 'such thread.)'#010+
+ ' // To each idle thread a package is assigned which has to be compi'+
+ 'led for the'#010+
+ ' // current target and for which al','l dependencies are compiled ea'+
+ 'rlier.'#010+
' // When no package is available the thread remains idle until anot'+
- 'her thread'#013#010+
- ' // has finished it'#039's ','task. Compilation stops when all packag'+
- 'es are compiled'#013#010+
- ' // or when an error occures.'#013#010+
- ' //'#013#010+
- ' // When ThreadsAmount is not specified (-1), all packages are comp'+
- 'iled on by one.'#013#010+
- ' // Dependencies are compiled recursively. When a pa','ckage is alre'+
- 'ady compiled'#013#010+
+ 'her thread'#010+
+ ' // has finished it'#039's task. Compilation stops when all packages'+
+ ' are compiled'#010+
+ ' // or when an error occures.'#010+
+ ' //'#010+
+ ' ',' // When ThreadsAmount is not specified (-1), all packages are co'+
+ 'mpiled on by one.'#010+
+ ' // Dependencies are compiled recursively. When a package is alread'+
+ 'y compiled'#010+
' // (because some other package was depending on it) the package is'+
- ' skipped.'#013#010+
+ ' skip','ped.'#010+
' // When the last package in the list is compiled, the compilation '+
- 'stops.'#013#010+
- ' Property ThreadsAmount : integer Read FThreadsAmou','nt Write FThre'+
- 'adsAmount;'#013#010+
- ' // paths etc.'#013#010+
- ' Property LocalUnitDir : String Read GetLocalUnitDir Write SetLocal'+
- 'UnitDir;'#013#010+
+ 'stops.'#010+
+ ' Property ThreadsAmount : integer Read FThreadsAmount Write FThread'+
+ 'sAmount;'#010+
+ ' // paths etc.'#010+
+ ' Property LocalUnitDir : String Read GetLocalUnitDir Write',' SetLoc'+
+ 'alUnitDir;'#010+
' Property GlobalUnitDir : String Read GetGlobalUnitDir Write SetGlo'+
- 'balUnitDir;'#013#010+
- ' Property Prefix : String Rea','d FPrefix Write SetPrefix;'#013#010+
- ' Property ZipPrefix : String Read FZipPrefix Write SetZipPrefix;'#013+
- #010+
- ' Property BaseInstallDir : String Read GetBaseInstallDir Write SetB'+
- 'aseInstallDir;'#013#010+
- ' Property UnitInstallDir : String Read GetUnitInstallD','ir Write Se'+
- 'tUnitInstallDir;'#013#010+
+ 'balUnitDir;'#010+
+ ' Property Prefix : String Read GetPrefix Write SetPrefix;'#010+
+ ' Property ZipPrefix : String Read FZipPrefix Write SetZipPrefix;'#010+
+ ' Propert','y BaseInstallDir : String Read GetBaseInstallDir Write Se'+
+ 'tBaseInstallDir;'#010+
+ ' Property UnitInstallDir : String Read GetUnitInstallDir Write SetU'+
+ 'nitInstallDir;'#010+
+ ' Property UnitConfigFilesInstallDir : String Read GetUnitConfigFile'+
+ 'sInstallDir',' Write SetUnitConfigFilesInstallDir;'#010+
' Property BinInstallDir : String Read GetBinInstallDir Write FBinIn'+
- 'stallDir;'#013#010+
+ 'stallDir;'#010+
' Property DocInstallDir : String Read GetDocInstallDir Write FDocIn'+
- 'stallDir;'#013#010+
- ' Property ExamplesInstallDir : String Read Get','ExamplesInstallDir '+
- 'Write FExamplesInstallDir;'#013#010+
+ 'stallDir;'#010+
+ ' Property ExamplesInstallDir : String Re','ad GetExamplesInstallDir '+
+ 'Write FExamplesInstallDir;'#010+
' Property FPDocOutputDir : String Read GetFPDocOutputDir Write FFPD'+
- 'ocOutputDir;'#013#010+
- ' // Command tools. If not set, internal commands will be used.'#013+
- #010+
- ' Property Compiler : String Read GetCo','mpiler Write FCompiler; // '+
- 'Compiler. Defaults to fpc'#013#010+
+ 'ocOutputDir;'#010+
+ ' Property FPUnitSourcePath: String read GetFPUnitSourcePath Write F'+
+ 'FPUnitSourcePath;'#010+
+ ' // Command to','ols. If not set, internal commands will be used.'#010+
+ ' Property Compiler : String Read GetCompiler Write FCompiler; // Co'+
+ 'mpiler. Defaults to fpc'#010+
' Property Copy : String Read FCopy Write FCopy; // copy'+
- ' $(FILES) to $(DEST)'#013#010+
- ' Property Move : String Read FMove Write FMove; // Move'+
- ' $(FILES) to $(DEST)'#013#010+
- ' ',' Property Remove : String Read FRemove Write FRemove; // De'+
- 'lete $(FILES)'#013#010+
+ ' $(FILES) to $(DEST)'#010+
+ ' P','roperty Move : String Read FMove Write FMove; // Mo'+
+ 've $(FILES) to $(DEST)'#010+
+ ' Property Remove : String Read FRemove Write FRemove; // Dele'+
+ 'te $(FILES)'#010+
' Property RemoveDir : String Read FRemoveDir Write FRemoveDir; '+
- ' // Delete $(FILES)'#013#010+
- ' Property RemoveTree : String Read FRemoveTree Write FRemoveTree',';'+
- ' // removes $(DIRECTORY)'#013#010+
+ ' ','// Delete $(FILES)'#010+
+ ' Property RemoveTree : String Read FRemoveTree Write FRemoveTree; '+
+ ' // removes $(DIRECTORY)'#010+
' Property MkDir : String Read FMkDir write FMkDir; // Make'+
- ' $(DIRECTORY)'#013#010+
- ' Property Archive : String Read FArchive Write FArchive; // zip '+
- '$(ARCHIVE) $(FILESORDIRS)'#013#010+
- ' // Misc'#013#010+
- ' Property',' UseEnvironment : Boolean read FUseEnvironment write FUs'+
- 'eEnvironment;'#013#010+
+ ' $(DIRECTORY)'#010+
+ ' Property Archive : String Read FAr','chive Write FArchive; // zi'+
+ 'p $(ARCHIVE) $(FILESORDIRS)'#010+
+ ' // Misc'#010+
+ ' Property UseEnvironment : Boolean read FUseEnvironment write FUseE'+
+ 'nvironment;'#010+
' Property IgnoreInvalidOptions: Boolean read FIgnoreInvalidOptions '+
- 'write FIgnoreInvalidOptions;'#013#010+
- ' Property BuildMode: TBuildMode read FBuildMode write FBuildMode;'#013,
- #010+
- ' // Installation optioms'#013#010+
+ 'write FIgnoreInval','idOptions;'#010+
+ ' Property BuildMode: TBuildMode read FBuildMode write FBuildMode;'#010+
+ ' // Installation optioms'#010+
' Property InstallExamples: Boolean read FInstallExamples write FIns'+
- 'tallExamples;'#013#010+
- ' Property SkipCrossPrograms: boolean read FSkipCrossPrograms write '+
- 'FSkipCrossPrograms;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TBasicDefaults }'#013#010+
- #013#010,
- ' TBasicDefaults = Class(TCustomDefaults)'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TFPCDefaults }'#013#010+
- #013#010+
- ' TFPCDefaults = Class(TCustomDefaults)'#013#010+
- ' public'#013#010+
- ' procedure CompilerDefaults; override;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TBuildEngine }'#013#010+
- #013#010+
- ' TBuildEngine = Class(TComponent)'#013#010+
- ' p','rivate'#013#010+
- ' // general variables'#013#010+
- ' FCompiler : String;'#013#010+
- ' FStartDir : String;'#013#010+
- ' FForceCompile : Boolean;'#013#010+
- ' FListMode : Boolean;'#013#010+
- ' FVerbose : boolean;'#013#010+
- ' FProgressMax : integer;'#013#010+
- ' FProgressCount : integer;'#013#010+
- '{$ifdef HAS_UNI','T_ZIPPER}'#013#010+
- ' FZipFile: TZipper;'#013#010+
- '{$endif HAS_UNIT_ZIPPER}'#013#010+
- ' FExternalPackages : TPackages;'#013#010+
- ' // Events'#013#010+
- ' FOnLog: TLogEvent;'#013#010+
- ' FAfterArchive: TNotifyEvent;'#013#010+
- ' FAfterClean: TNotifyEvent;'#013#010+
- ' FAfterCompile: TNotifyEvent;'#013#010+
- ' ','FAfterInstall: TNotifyEvent;'#013#010+
- ' FAfterManifest: TNotifyEvent;'#013#010+
- ' FBeforeArchive: TNotifyEvent;'#013#010+
- ' FBeforeClean: TNotifyEvent;'#013#010+
- ' FBeforeCompile: TNotifyEvent;'#013#010+
- ' FBeforeInstall: TNotifyEvent;'#013#010+
- ' FBeforeManifest: TNotifyEvent;'#013#010+
- #013,#010+
- ' FCachedlibcPath: string;'#013#010+
- ' FGeneralCriticalSection: TRTLCriticalSection;'#013#010+
- '{$ifdef HAS_UNIT_ZIPPER}'#013#010+
- ' FZipper: TZipper;'#013#010+
- '{$endif HAS_UNIT_ZIPPER}'#013#010+
- '{$ifdef HAS_TAR_SUPPORT}'#013#010+
- ' FTarWriter: TTarWriter;'#013#010+
- '{$endif HAS_TAR_SUPPORT}'#013#010+
- ' ','Protected'#013#010+
- ' Procedure Error(const Msg : String);'#013#010+
- ' Procedure Error(const Fmt : String; const Args : Array of const);'#013+
- #010+
- ' // Internal copy/delete/move/archive/mkdir files'#013#010+
- ' Function SysDirectoryExists(const ADir:string):Boolean;'#013#010,
- ' Function SysFileExists(const AFileName:string):Boolean;'#013#010+
- ' Procedure SysCopyFile(Const Src,Dest : String); virtual;'#013#010+
- ' Procedure SysMoveFile(Const Src,Dest : String); virtual;'#013#010+
- ' Procedure SysDeleteFile(Const AFileName : String);',' virtual;'#013#010+
+ 'tallExamples;'#010+
+ ' Property SkipCrossPrograms: boolean read FSk','ipCrossPrograms writ'+
+ 'e FSkipCrossPrograms;'#010+
+ ' end;'#010+
+ #010+
+ ' { TBasicDefaults }'#010+
+ #010+
+ ' TBasicDefaults = Class(TCustomDefaults)'#010+
+ ' end;'#010+
+ #010+
+ ' { TFPCDefaults }'#010+
+ #010+
+ ' TFPCDefaults = Class(TCustomDefaults)'#010+
+ ' public'#010+
+ ' procedure CompilerDefaults; override;'#010+
+ ' end;'#010,
+ #010+
+ ' { TBuildEngine }'#010+
+ ' TCopyFileProc = procedure(const APackage: TPackage; Const ASourceFil'+
+ 'eName, ADestFileName : String) of object;'#010+
+ #010+
+ ' TBuildEngine = Class(TComponent)'#010+
+ ' private'#010+
+ ' // general variables'#010+
+ ' FCompiler : String;'#010+
+ ' FStartDir',' : String;'#010+
+ ' FForceCompile : Boolean;'#010+
+ ' FListMode : Boolean;'#010+
+ ' FVerbose : boolean;'#010+
+ ' FProgressMax : integer;'#010+
+ ' FProgressCount : integer;'#010+
+ ' FExternalPackages : TPackages;'#010+
+ ' // Events'#010+
+ ' FOnLog: TLogEvent;'#010+
+ ' FNotifyEventColle','ction: TNotifyEventCollection;'#010+
+ ' FOnCopyFile: TCopyFileProc;'#010+
+ ' FOnFinishCopy: TNotifyEvent;'#010+
+ #010+
+ ' FCachedlibcPath: string;'#010+
+ ' FGeneralCriticalSection: TRTLCriticalSection;'#010+
+ '{$ifdef HAS_UNIT_ZIPPER}'#010+
+ ' FZipper: TZipper;'#010+
+ '{$endif HAS_UNIT_','ZIPPER}'#010+
+ '{$ifdef HAS_TAR_SUPPORT}'#010+
+ ' FTarWriter: TTarWriter;'#010+
+ ' FGZFileStream: TGZFileStream;'#010+
+ '{$endif HAS_TAR_SUPPORT}'#010+
+ ' procedure AddFileToArchive(const APackage: TPackage; Const ASource'+
+ 'FileName, ADestFileName : String);'#010+
+ ' procedure F','inishArchive(Sender: TObject);'#010+
+ ' Protected'#010+
+ ' Procedure Error(const Msg : String);'#010+
+ ' Procedure Error(const Fmt : String; const Args : Array of const);'#010+
+ ' // Internal copy/delete/move/archive/mkdir files'#010+
+ ' Function SysDirectoryExists(','const ADir:string):Boolean;'#010+
+ ' Function SysFileExists(const AFileName:string):Boolean;'#010+
+ ' Procedure SysCopyFile(Const Src,Dest : String); virtual;'#010+
+ ' Procedure SysMoveFile(Const Src,Dest : String); virtual;'#010+
+ ' Procedure SysDeleteFile(C','onst AFileName : String); virtual;'#010+
' Procedure SysDeleteDirectory(Const ADirectoryName : String); virtu'+
- 'al;'#013#010+
- ' Procedure SysDeleteTree(Const ADirectoryName : String); virtual;'#013+
- #010+
- ' Procedure SysArchiveFiles(List : TStrings; Const AFileName : Strin'+
- 'g); virtual;'#013#010,
- ' procedure LogIndent;'#013#010+
- ' procedure LogUnIndent;'#013#010+
- ' Procedure EnterDir(ADir : String);'#013#010+
- ' Function GetCompiler : String;'#013#010+
+ 'al;'#010+
+ ' Procedure SysDeleteTree(Const ADirectoryName : String); virtual;'#010+
+ ' Procedure SysArchiveFiles(List : TStrings; Const AFileName',' : Str'+
+ 'ing); virtual;'#010+
+ ' procedure LogIndent;'#010+
+ ' procedure LogUnIndent;'#010+
+ ' Procedure EnterDir(ADir : String);'#010+
+ ' Function GetCompiler : String;'#010+
' Function InstallPackageFiles(APAckage : TPackage; tt : TTargetType'+
- 's; Const Dest : String):Boolean;'#013#010+
- ' Pr','ocedure InstallUnitConfigFile(APAckage : TPackage; Const Dest '+
- ': String);'#013#010+
+ 's; Const Dest : String)',':Boolean;'#010+
+ ' Procedure InstallUnitConfigFile(APAckage : TPackage; Const Dest : '+
+ 'String);'#010+
+ ' function GetUnitConfigFilesInstallDir(ABaseDir: string): String;'#010+
+ #010+
' Function InstallPackageSourceFiles(APAckage : TPackage; stt : TSou'+
- 'rceTypes; ttt : TTargetTypes; Const Dest : String):Boolean;'#013#010+
- ' Function FileNewer(const Src,De','st : String) : Boolean;'#013#010+
+ 'rceTypes; t','tt : TTargetTypes; Const Dest : String):Boolean;'#010+
+ ' Function FileNewer(const Src,Dest : String) : Boolean;'#010+
' Procedure LogSearchPath(APackage: TPackage;const ASearchPathName:s'+
- 'tring;Path:TConditionalStrings; ACPU:TCPU;AOS:TOS);'#013#010+
- ' Function FindFileInPath(APackage: TPackage; Path:TConditionalStrin'+
- 'gs; AFileName:String; ','var FoundPath:String;ACPU:TCPU;AOS:TOS):Boolea'+
- 'n;'#013#010+
- #013#010+
+ 'tring;Path:TConditionalStrings; ACPU:TCPU;AOS:TOS);'#010+
+ ' Functi','on FindFileInPath(APackage: TPackage; Path:TConditionalStr'+
+ 'ings; AFileName:String; var FoundPath:String;ACPU:TCPU;AOS:TOS):Boolea'+
+ 'n;'#010+
+ #010+
' procedure GetDirectoriesFromFilelist(const AFileList, ADirectoryLi'+
- 'st: TStringList);'#013#010+
- ' procedure AddPackageMacrosToDictionary(const APackage: TPackage; A'+
- 'Dictionary: TDictionary);'#013#010+
- ' ',' //package commands'#013#010+
- ' function GetUnitDir(APackage:TPackage):String;'#013#010+
- ' procedure AddDependencyPaths(L: TStrings; DependencyType: TDepende'+
- 'ncyType; ATarget: TTarget);'#013#010+
- ' procedure AddDependencyUnitPaths(L:TStrings;APackage: TPackage',');'+
- #013#010+
- ' Public'#013#010+
- ' Constructor Create(AOwner : TComponent); override;'#013#010+
- ' destructor Destroy;override;'#013#010+
- ' function AddPathPrefix(APackage: TPackage; APath: string): string;'+
- #013#010+
- #013#010+
- ' property Verbose : boolean read FVerbose write FVerbose;'#013#010,
+ 'st: TStringList);'#010+
+ ' procedure AddPac','kageMacrosToDictionary(const APackage: TPackage;'+
+ ' ADictionary: TDictionary);'#010+
+ ' //package commands'#010+
+ ' function GetUnitDir(APackage:TPackage):String;'#010+
+ ' procedure ResolvePackagePaths(APackage:TPackage);'#010+
+ ' procedure AddDependencyPaths(L:',' TStrings; DependencyType: TDepen'+
+ 'dencyType; ATarget: TTarget);'#010+
+ ' procedure AddDependencyUnitPaths(L:TStrings;APackage: TPackage);'#010+
+ ' Public'#010+
+ ' Constructor Create(AOwner : TComponent); override;'#010+
+ ' destructor Destroy;override;'#010+
+ ' functio','n AddPathPrefix(APackage: TPackage; APath: string): strin'+
+ 'g;'#010+
+ #010+
+ ' property Verbose : boolean read FVerbose write FVerbose;'#010+
' Procedure ResolveFileNames(APackage : TPackage; ACPU:TCPU;AOS:TOS;'+
- 'DoChangeDir:boolean=true; WarnIfNotFound:boolean=true);'#013#010+
- #013#010+
- ' // Public Copy/delete/Move/Archive/Mkdir Commands.'#013#010+
- ' Procedure ExecuteCommand(const Cmd,Args : String; c','onst Env: TSt'+
- 'rings = nil; IgnoreError : Boolean = False); virtual;'#013#010+
- ' Procedure CmdCopyFiles(List : TStrings; Const DestDir : String);'#013+
- #010+
- ' Procedure CmdCreateDir(const DestDir : String);'#013#010+
- ' Procedure CmdMoveFiles(List : TStrings; Const',' DestDir : String);'+
- #013#010+
- ' Procedure CmdDeleteFiles(List : TStrings);'#013#010+
- ' Procedure CmdArchiveFiles(List : TStrings; Const ArchiveFile : Str'+
- 'ing);'#013#010+
- ' Procedure CmdRenameFile(SourceName, DestName : String);'#013#010+
- ' Procedure CmdRemoveDirs(List:',' TStrings);'#013#010+
- ' Procedure CmdRemoveTrees(List: TStrings);'#013#010+
- ' Procedure ExecuteCommands(Commands : TCommands; At : TCommandAt; A'+
- 'Package: TPackage = nil);'#013#010+
- ' // Dependency commands'#013#010+
- ' Function DependencyOK(ADependency : TDependency) :',' Boolean;'#013+
- #010+
- ' // Target commands'#013#010+
+ 'DoChangeDir:boolean=true; WarnIfNotFound:boolean','=true);'#010+
+ #010+
+ ' // Public Copy/delete/Move/Archive/Mkdir Commands.'#010+
+ ' Procedure ExecuteCommand(const Cmd,Args : String; const Env: TStri'+
+ 'ngs = nil; IgnoreError : Boolean = False); virtual;'#010+
+ ' procedure CmdCopyFiles(List: TStrings; const DestD','ir: String; AP'+
+ 'ackage: TPackage);'#010+
+ ' Procedure CmdCreateDir(const DestDir : String);'#010+
+ ' Procedure CmdMoveFiles(List : TStrings; Const DestDir : String);'#010+
+ ' Procedure CmdDeleteFiles(List : TStrings);'#010+
+ ' Procedure CmdArchiveFiles(List : TS','trings; Const ArchiveFile : S'+
+ 'tring);'#010+
+ ' Procedure CmdRenameFile(SourceName, DestName : String);'#010+
+ ' Procedure CmdRemoveDirs(List: TStrings);'#010+
+ ' Procedure CmdRemoveTrees(List: TStrings);'#010+
+ ' Procedure ExecuteCommands(Commands : TCommands; ','At : TCommandAt;'+
+ ' APackage: TPackage = nil);'#010+
+ ' // Dependency commands'#010+
+ ' Function DependencyOK(ADependency : TDependency) : Boolean;'#010+
+ ' // Target commands'#010+
' Function GetCompilerCommand(APackage : TPackage; ATarget : TTarge'+
- 't; Env: TStrings) : String;'#013#010+
+ 't; Env: TSt','rings) : String;'#010+
' Function TargetOK(ATarget : TTarget; ACPU: TCPU; AOS: TOS) : Bool'+
- 'ean;'#013#010+
- ' Function TargetInstallOK(','ATarget : TTarget;ACPU:TCPU; AOS : TOS'+
- ') : Boolean;'#013#010+
- ' Function NeedsCompile(APackage:TPackage; ATarget : TTarget) : Boo'+
- 'lean;'#013#010+
+ 'ean;'#010+
+ ' Function TargetInstallOK(ATarget : TTarget;ACPU:TCPU; AOS : TOS) '+
+ ': Boolean;'#010+
+ ' Function NeedsCompile(APackage:TPackage; ATarget : TTarget) : ','B'+
+ 'oolean;'#010+
' Procedure Compile(APackage:TPackage; ATarget : TTarget); virtual;'+
- #013#010+
- ' Procedure MaybeCompile(APackage:TPa','ckage; ATarget: TTarget);'#013+
#010+
+ ' Procedure MaybeCompile(APackage:TPackage; ATarget: TTarget);'#010+
' Procedure CompileDependencies(APackage:TPackage; ATarget: TTarget)'+
- ';'#013#010+
- ' // Package commands'#013#010+
+ ';'#010+
+ ' // Package commands',#010+
'{ Function GetPackageDir(APackage : TPackage; AbsolutePath : Boole'+
- 'an = False) : String;'#013#010+
- ' Function GetUnits','OutputDir(APackage : TPackage; AbsolutePath : '+
- 'Boolean = False) : String;'#013#010+
- ' Function GetBinOutputDir(APackage : TPackage; AbsolutePath : Bool'+
- 'ean = False) : String; }'#013#010+
- ' Function PackageOK(APackage : TPackage) : Boolean; virtual;'#013#010+
- ' ',' Procedure DoBeforeCompile(APackage : TPackage);virtual;'#013#010+
- ' Procedure DoAfterCompile(APackage : TPackage);virtual;'#013#010+
- ' Procedure DoBeforeInstall(APackage : TPackage);virtual;'#013#010+
- ' Procedure DoAfterInstall(APackage : TPackage);virtual;'#013#010+
- ' ',' Procedure DoBeforeArchive(APackage : TPackage);virtual;'#013#010+
- ' Procedure DoAfterArchive(APackage : TPackage);virtual;'#013#010+
- ' Procedure DoBeforeClean(APackage : TPackage);virtual;'#013#010+
- ' Procedure DoAfterClean(APackage : TPackage);virtual;'#013#010+
- ' ',' Function NeedsCompile(APackage : TPackage) : Boolean; virtual;'#013+
- #010+
- ' Procedure Compile(APackage : TPackage);'#013#010+
- ' Procedure MaybeCompile(APackage:TPackage);'#013#010+
- ' Function ReadyToCompile(APackage:TPackage) : Boolean;'#013#010+
- ' Procedure Install(','APackage : TPackage);'#013#010+
- ' Procedure Archive(APackage : TPackage);'#013#010+
- ' Procedure Manifest(APackage : TPackage);'#013#010+
- ' Procedure Clean(APackage : TPackage; AllTargets: boolean);'#013#010+
- ' Procedure Clean(APackage : TPackage; ACPU:TCPU; AOS : TOS)',';'#013#010+
- ' Procedure CompileDependencies(APackage : TPackage);'#013#010+
- ' function CheckDependencies(APackage : TPackage): TCheckDependencyR'+
- 'esult;'#013#010+
- ' Function CheckExternalPackage(Const APackageName : String):TPacka'+
- 'ge;'#013#010+
- ' procedure CreateOutputD','ir(APackage: TPackage);'#013#010+
- ' // Packages commands'#013#010+
- ' Procedure Compile(Packages : TPackages);'#013#010+
- ' Procedure Install(Packages : TPackages);'#013#010+
- ' Procedure ZipInstall(Packages : TPackages);'#013#010+
- ' Procedure Archive(Packages : TPackages);'#013#010+
- ' ',' procedure Manifest(Packages: TPackages);'#013#010+
- ' Procedure Clean(Packages : TPackages; AllTargets: boolean);'#013#010+
- #013#010+
- ' Procedure Log(Level : TVerboseLevel; Msg : String);'#013#010+
+ 'an = False) : String;'#010+
+ ' Function GetUnitsOutputDir(APackage : TPackage; AbsolutePath : Bo'+
+ 'olean = False) : String;'#010+
+ ' Function GetBinOutputDir(APackage : TPackage; A','bsolutePath : Bo'+
+ 'olean = False) : String; }'#010+
+ ' Function PackageOK(APackage : TPackage) : Boolean; virtual;'#010+
+ ' Procedure DoBeforeCompile(APackage : TPackage);virtual;'#010+
+ ' Procedure DoAfterCompile(APackage : TPackage);virtual;'#010+
+ ' Procedur','e DoBeforeInstall(APackage : TPackage);virtual;'#010+
+ ' Procedure DoAfterInstall(APackage : TPackage);virtual;'#010+
+ ' Procedure DoBeforeArchive(APackage : TPackage);virtual;'#010+
+ ' Procedure DoAfterArchive(APackage : TPackage);virtual;'#010+
+ ' Procedure ','DoBeforeClean(APackage : TPackage);virtual;'#010+
+ ' Procedure DoAfterClean(APackage : TPackage);virtual;'#010+
+ ' Function NeedsCompile(APackage : TPackage) : Boolean; virtual;'#010+
+ ' Procedure Compile(APackage : TPackage);'#010+
+ ' Procedure MaybeCompile(','APackage:TPackage);'#010+
+ ' Function ReadyToCompile(APackage:TPackage) : Boolean;'#010+
+ ' Procedure Install(APackage : TPackage; AnArchiveFiles: boolean);'#010+
+ ' Procedure Archive(APackage : TPackage);'#010+
+ ' Procedure PkgList(PkgList: TStrings; APackage',' : TPackage);'#010+
+ ' Procedure Clean(APackage : TPackage; AllTargets: boolean);'#010+
+ ' Procedure Clean(APackage : TPackage; ACPU:TCPU; AOS : TOS);'#010+
+ ' Procedure CompileDependencies(APackage : TPackage);'#010+
+ ' function CheckDependencies(APackage : T','Package; ErrorOnFailure: '+
+ 'boolean): TCheckDependencyResult;'#010+
+ ' Function CheckExternalPackage(Const APackageName : String; ErrorO'+
+ 'nFailure: boolean):TPackage;'#010+
+ ' procedure CreateOutputDir(APackage: TPackage);'#010+
+ ' // Packages commands'#010+
+ ' Pr','ocedure Compile(Packages : TPackages);'#010+
+ ' Procedure Install(Packages : TPackages);'#010+
+ ' Procedure ZipInstall(Packages : TPackages);'#010+
+ ' Procedure Archive(Packages : TPackages);'#010+
+ ' procedure Manifest(Packages: TPackages);'#010+
+ ' procedure PkgL','ist(Packages: TPackages);'#010+
+ ' Procedure Clean(Packages : TPackages; AllTargets: boolean);'#010+
+ #010+
+ ' Procedure Log(Level : TVerboseLevel; Msg : String);'#010+
' Procedure Log(Level : TVerboseLevel; Fmt : String; const Args : Ar'+
- 'ra','y Of Const);'#013#010+
- #013#010+
- ' Property ListMode : Boolean Read FListMode Write FListMode;'#013#010+
+ 'ray Of Const);'#010+
+ #010+
+ ' Pro','perty ListMode : Boolean Read FListMode Write FListMode;'#010+
' Property ForceCompile : Boolean Read FForceCompile Write FForceCom'+
- 'pile;'#013#010+
- ' Property ExternalPackages: TPackages Read FExternalPackages;'#013#010+
- ' Property Sta','rtDir: String Read FStartDir;'#013#010+
- ' // Events'#013#010+
- ' Property BeforeCompile : TNotifyEvent Read FBeforeCompile Write FB'+
- 'eforeCompile;'#013#010+
- ' Property AfterCompile : TNotifyEvent Read FAfterCompile Write FAft'+
- 'erCompile;'#013#010+
- ' Property BeforeInstall ',': TNotifyEvent Read FBeforeInstall Write '+
- 'FBeforeInstall;'#013#010+
- ' Property AfterInstall : TNotifyEvent Read FAfterInstall Write FAft'+
- 'erInstall;'#013#010+
- ' Property BeforeClean : TNotifyEvent Read FBeforeClean Write FBefor'+
- 'eClean;'#013#010+
- ' Property AfterCle','an : TNotifyEvent Read FAfterClean Write FAfter'+
- 'Clean;'#013#010+
- ' Property BeforeArchive : TNotifyEvent Read FBeforeArchive Write FB'+
- 'eforeArchive;'#013#010+
- ' Property AfterArchive : TNotifyEvent Read FAfterArchive Write FAft'+
- 'erArchive;'#013#010+
- ' Property Befor','eManifest : TNotifyEvent Read FBeforeManifest Writ'+
- 'e FBeforeManifest;'#013#010+
- ' Property AfterManifest : TNotifyEvent Read FAfterManifest Write FA'+
- 'fterManifest;'#013#010+
- ' Property OnLog : TLogEvent Read FOnLog Write FOnlog;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TCustomInstal','ler }'#013#010+
- #013#010+
- ' TCustomInstaller = Class(TComponent)'#013#010+
- ' private'#013#010+
- ' FBuildEngine: TBuildEngine;'#013#010+
- ' FPackages: TPackages;'#013#010+
- ' FRunMode: TRunMode;'#013#010+
- ' FListMode : Boolean;'#013#010+
- ' FLogLevels : TVerboseLevels;'#013#010+
- ' FFPMakeOptionsString: string;'#013#010,
- ' FPackageVariantSettings: TStrings;'#013#010+
- ' FPackageVariants: TFPList;'#013#010+
- ' Protected'#013#010+
- ' Procedure Log(Level : TVerboseLevel; Const Msg : String);'#013#010+
- ' Procedure CreatePackages; virtual;'#013#010+
- ' Procedure FreePackages; virtual;'#013#010+
- ' function G','etPackages: TPackages; virtual;'#013#010+
- ' Procedure CheckPackages; virtual;'#013#010+
- ' Procedure CreateBuildEngine; virtual;'#013#010+
- ' Procedure Error(const Msg : String);'#013#010+
- ' Procedure Error(const Fmt : String; Args : Array of const);'#013#010+
- ' Procedure Anal','yzeOptions;'#013#010+
- ' Procedure Usage(const FMT : String; Args : Array of const);'#013#010+
- ' Procedure Compile(Force : Boolean); virtual;'#013#010+
- ' Procedure Clean(AllTargets: boolean); virtual;'#013#010+
- ' Procedure Install; virtual;'#013#010+
- ' Procedure ZipInstall; v','irtual;'#013#010+
- ' Procedure Archive; virtual;'#013#010+
- ' Procedure Manifest; virtual;'#013#010+
- ' Public'#013#010+
- ' Constructor Create(AOwner : TComponent); virtual;'#013#010+
- ' Destructor destroy; override;'#013#010+
- ' Function AddPackage(Const AName : String) : TPackage;'#013#010+
- ' F','unction AddPackageVariant(AName: string; AIsInheritable: boole'+
- 'an): TPackageVariants;'#013#010+
- ' Function Run : Boolean;'#013#010+
- ' Property FPMakeOptionsString: string read FFPMakeOptionsString;'#013+
- #010+
- ' Property BuildEngine : TBuildEngine Read FBuildEngi','ne;'#013#010+
- ' //files in package'#013#010+
- ' Property Packages : TPackages Read GetPackages;'#013#010+
- ' Property RunMode : TRunMode Read FRunMode;'#013#010+
- ' Property ListMode : Boolean Read FListMode;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TFPCInstaller }'#013#010+
- ' TFPCInstaller = class(TCusto','mInstaller)'#013#010+
- ' public'#013#010+
- ' Constructor Create(AOwner : TComponent); override;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TBasicInstaller }'#013#010+
- ' TBasicInstaller = class(TCustomInstaller)'#013#010+
- ' Constructor Create(AOwner : TComponent); override;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TValueItem }'#013,#010+
- #013#010+
- ' TValueItem = Class(TObject)'#013#010+
- ' FValue : String;'#013#010+
- ' Constructor Create(AValue : String);'#013#010+
- ' end;'#013#010+
- #013#010+
- ' { TFunctionItem }'#013#010+
- #013#010+
- ' TFunctionItem = Class(TObject)'#013#010+
- ' FFunc : TReplaceFunction;'#013#010+
- ' Constructor Create(AFunc : TReplaceFunct','ion);'#013#010+
- ' end;'#013#010+
- #013#010+
- '{$ifndef NO_THREADING}'#013#010+
- #013#010+
- ' { TCompileWorkerThread }'#013#010+
- #013#010+
- ' TCompileWorkerThread = class(TThread)'#013#010+
- ' private'#013#010+
- ' FBuildEngine: TBuildEngine;'#013#010+
- ' FCompilationOK: boolean;'#013#010+
- ' FDone: boolean;'#013#010+
- ' FErrorMessage: string;'#013#010+
- ' ',' FNotifyMainThreadEvent: PRTLEvent;'#013#010+
- ' FNotifyStartTask: PRTLEvent;'#013#010+
- ' FPackage: TPackage;'#013#010+
- ' protected'#013#010+
- ' procedure execute; override;'#013#010+
- ' property Done: boolean read FDone;'#013#010+
- ' property APackage: TPackage read FPackage write FPack','age;'#013#010+
- ' property CompilationOK: boolean read FCompilationOK;'#013#010+
- ' property NotifyStartTask: PRTLEvent read FNotifyStartTask;'#013#010+
- ' property ErrorMessage: string read FErrorMessage;'#013#010+
- ' public'#013#010+
- ' constructor Create(ABuildEngine: TBuildEngi','ne; NotifyMainThreadE'+
- 'vent: PRTLEvent); virtual;'#013#010+
- ' destructor Destroy; override;'#013#010+
- ' end;'#013#010+
- #013#010+
- '{$endif NO_THREADING}'#013#010+
- #013#010+
- ' ECollectionError = Class(Exception);'#013#010+
- ' EDictionaryError = Class(Exception);'#013#010+
- ' EInstallerError = Class(Exception);'#013#010+
- #013#010,
- ' TInstallerClass = Class of TCustomInstaller;'#013#010+
- ' TDictionaryClass = Class of TDictionary;'#013#010+
- ' TPackageDictionaryClass = Class of TPackageDictionary;'#013#010+
- #013#010+
- 'Type'#013#010+
- ' TArchiveEvent = Procedure (Const AFileName : String; List : TStrings'+
- ') of Object;',#013#010+
+ 'pile;'#010+
+ ' Property ExternalPackages: TPackages Read FExternalPackages;'#010+
+ ' Property StartDir: String Read FStartD','ir;'#010+
+ ' // Events'#010+
+ ' Property NotifyEventCollection: TNotifyEventCollection read FNotif'+
+ 'yEventCollection;'#010+
+ ' Property OnLog : TLogEvent Read FOnLog Write FOnlog;'#010+
+ ' end;'#010+
+ #010+
+ ' { TCustomInstaller }'#010+
+ #010+
+ ' TCustomInstaller = Class(TComponent)'#010+
+ ' priv','ate'#010+
+ ' FBuildEngine: TBuildEngine;'#010+
+ ' FPackages: TPackages;'#010+
+ ' FRunMode: TRunMode;'#010+
+ ' FListMode : Boolean;'#010+
+ ' FLogLevels : TVerboseLevels;'#010+
+ ' FFPMakeOptionsString: string;'#010+
+ ' FPackageVariantSettings: TStrings;'#010+
+ ' FPackageVariants: T','FPList;'#010+
+ ' FNotifyEventCollection: TNotifyEventCollection;'#010+
+ ' Protected'#010+
+ ' Procedure Log(Level : TVerboseLevel; Const Msg : String);'#010+
+ ' Procedure CreatePackages; virtual;'#010+
+ ' Procedure FreePackages; virtual;'#010+
+ ' function GetPackages: TPac','kages; virtual;'#010+
+ ' Procedure CheckPackages; virtual;'#010+
+ ' Procedure CreateBuildEngine; virtual;'#010+
+ ' Procedure Error(const Msg : String);'#010+
+ ' Procedure Error(const Fmt : String; Args : Array of const);'#010+
+ ' Procedure AnalyzeOptions;'#010+
+ ' Proce','dure Usage(const FMT : String; Args : Array of const);'#010+
+ ' Procedure Compile(Force : Boolean); virtual;'#010+
+ ' Procedure Clean(AllTargets: boolean); virtual;'#010+
+ ' Procedure Install; virtual;'#010+
+ ' Procedure ZipInstall; virtual;'#010+
+ ' Procedure Arch','ive; virtual;'#010+
+ ' Procedure Manifest; virtual;'#010+
+ ' Procedure PkgList; virtual;'#010+
+ ' Public'#010+
+ ' Constructor Create(AOwner : TComponent); virtual;'#010+
+ ' Destructor destroy; override;'#010+
+ ' Function AddPackage(Const AName : String) : TPackage;'#010+
+ ' Fu','nction AddPackageVariant(AName: string; AIsInheritable: boole'+
+ 'an): TPackageVariants;'#010+
+ ' Function Run : Boolean;'#010+
+ ' Property FPMakeOptionsString: string read FFPMakeOptionsString;'#010+
+ ' Property BuildEngine : TBuildEngine Read FBuildEngine;'#010,
+ ' //files in package'#010+
+ ' Property Packages : TPackages Read GetPackages;'#010+
+ ' Property RunMode : TRunMode Read FRunMode;'#010+
+ ' Property ListMode : Boolean Read FListMode;'#010+
+ ' Property NotifyEventCollection : TNotifyEventCollection read FNoti',
+ 'fyEventCollection;'#010+
+ ' end;'#010+
+ #010+
+ ' { TFPCInstaller }'#010+
+ ' TFPCInstaller = class(TCustomInstaller)'#010+
+ ' public'#010+
+ ' Constructor Create(AOwner : TComponent); override;'#010+
+ ' end;'#010+
+ #010+
+ ' { TBasicInstaller }'#010+
+ ' TBasicInstaller = class(TCustomInstaller)'#010+
+ ' Construct','or Create(AOwner : TComponent); override;'#010+
+ ' end;'#010+
+ #010+
+ ' { TValueItem }'#010+
+ #010+
+ ' TValueItem = Class(TObject)'#010+
+ ' FValue : String;'#010+
+ ' Constructor Create(AValue : String);'#010+
+ ' end;'#010+
+ #010+
+ ' { TFunctionItem }'#010+
+ #010+
+ ' TFunctionItem = Class(TObject)'#010+
+ ' FFunc : TRepla','ceFunction;'#010+
+ ' Constructor Create(AFunc : TReplaceFunction);'#010+
+ ' end;'#010+
+ #010+
+ '{$ifndef NO_THREADING}'#010+
+ #010+
+ ' { TCompileWorkerThread }'#010+
+ #010+
+ ' TCompileWorkerThread = class(TThread)'#010+
+ ' private'#010+
+ ' FBuildEngine: TBuildEngine;'#010+
+ ' FCompilationOK: boolean;'#010+
+ ' FDo','ne: boolean;'#010+
+ ' FErrorMessage: string;'#010+
+ ' FNotifyMainThreadEvent: PRTLEvent;'#010+
+ ' FNotifyStartTask: PRTLEvent;'#010+
+ ' FPackage: TPackage;'#010+
+ ' protected'#010+
+ ' procedure execute; override;'#010+
+ ' property Done: boolean read FDone;'#010+
+ ' property APackag','e: TPackage read FPackage write FPackage;'#010+
+ ' property CompilationOK: boolean read FCompilationOK;'#010+
+ ' property NotifyStartTask: PRTLEvent read FNotifyStartTask;'#010+
+ ' property ErrorMessage: string read FErrorMessage;'#010+
+ ' public'#010+
+ ' constructor',' Create(ABuildEngine: TBuildEngine; NotifyMainThreadE'+
+ 'vent: PRTLEvent); virtual;'#010+
+ ' destructor Destroy; override;'#010+
+ ' end;'#010+
+ #010+
+ '{$endif NO_THREADING}'#010+
+ #010+
+ ' ECollectionError = Class(Exception);'#010+
+ ' EDictionaryError = Class(Exception);'#010+
+ ' EInstallerError',' = Class(Exception);'#010+
+ #010+
+ ' TInstallerClass = Class of TCustomInstaller;'#010+
+ ' TDictionaryClass = Class of TDictionary;'#010+
+ ' TPackageDictionaryClass = Class of TPackageDictionary;'#010+
+ #010+
+ 'Type'#010+
+ ' TArchiveEvent = Procedure (Const AFileName : String; List : TSt','rin'+
+ 'gs) of Object;'#010+
' TArchiveProc = Procedure (Const AFileName : String; List : TStrings)'+
- ';'#013#010+
- #013#010+
- 'Var'#013#010+
- ' DictionaryClass : TDictionaryClass = TDictionary;'#013#010+
+ ';'#010+
+ #010+
+ 'Var'#010+
+ ' DictionaryClass : TDictionaryClass = TDictionary;'#010+
' PackageDictionaryClass : TPackageDictionaryClass = TPackageDictionar'+
- 'y;'#013#010+
- ' OnArchiveFiles : TArchiveEven','t = Nil;'#013#010+
- ' ArchiveFilesProc : TArchiveProc = Nil;'#013#010+
- #013#010+
- ' Defaults : TCustomDefaults; // Set by installer.'#013#010+
- ' GlobalDictionary : TDictionary;'#013#010+
- #013#010+
- #013#010+
- 'Function CurrentOS : String;'#013#010+
- 'Function CurrentCPU : String;'#013#010+
- #013#010+
- 'Function Installer(InstallerClas','s: TInstallerClass) : TCustomInstall'+
- 'er; overload;'#013#010+
- 'Function Installer : TCustomInstaller; overload;'#013#010+
- #013#010+
- 'Function OSToString(OS: TOS) : String;'#013#010+
- 'Function OSesToString(OSes: TOSes) : String;'#013#010+
- 'Function CPUToString(CPU: TCPU) : String;'#013#010+
- 'Function',' CPUSToString(CPUS: TCPUS) : String;'#013#010+
- 'Function StringToOS(const S : String) : TOS;'#013#010+
- 'function IsDifferentFromBuild(ACpu: TCPU; AOs: TOs): boolean;'#013#010+
- '//Function StringToOSes(const S : String) : TOSes;'#013#010+
- 'Function StringToCPU(const S : String) : ','TCPU;'#013#010+
- 'Function StringToCPUS(const S : String) : TCPUS;'#013#010+
- 'Function ModeToString(Mode: TCompilerMode) : String;'#013#010+
- 'Function StringToMode(const S : String) : TCompilerMode;'#013#010+
- 'Function MakeTargetString(CPU : TCPU;OS: TOS) : String;'#013#010+
- 'Procedure Stri','ngToCPUOS(const S : String; Var CPU : TCPU; Var OS: TO'+
- 'S);'#013#010+
+ 'y;'#010+
+ ' OnArchiveFiles : T','ArchiveEvent = Nil;'#010+
+ ' ArchiveFilesProc : TArchiveProc = Nil;'#010+
+ #010+
+ ' Defaults : TCustomDefaults; // Set by installer.'#010+
+ ' GlobalDictionary : TDictionary;'#010+
+ #010+
+ #010+
+ 'Function CurrentOS : String;'#010+
+ 'Function CurrentCPU : String;'#010+
+ #010+
+ 'Function Installer(InstallerCla','ss: TInstallerClass) : TCustomInstall'+
+ 'er; overload;'#010+
+ 'Function Installer : TCustomInstaller; overload;'#010+
+ #010+
+ 'Function OSToString(OS: TOS) : String;'#010+
+ 'Function OSesToString(OSes: TOSes) : String;'#010+
+ 'Function CPUToString(CPU: TCPU) : String;'#010+
+ 'Function CPUS','ToString(CPUS: TCPUS) : String;'#010+
+ 'Function StringToOS(const S : String) : TOS;'#010+
+ 'function IsDifferentFromBuild(ACpu: TCPU; AOs: TOs): boolean;'#010+
+ '//Function StringToOSes(const S : String) : TOSes;'#010+
+ 'Function StringToCPU(const S : String) : TCPU;'#010+
+ 'Fun','ction StringToCPUS(const S : String) : TCPUS;'#010+
+ 'Function ModeToString(Mode: TCompilerMode) : String;'#010+
+ 'Function StringToMode(const S : String) : TCompilerMode;'#010+
+ 'Function MakeTargetString(CPU : TCPU;OS: TOS) : String;'#010+
+ 'Procedure StringToCPUOS(cons','t S : String; Var CPU : TCPU; Var OS: TO'+
+ 'S);'#010+
'Function FixPath (const APath : String) : String; inline; deprecated '#039+
- 'Use the overload with AIsDir instead'#039';'#013#010+
- 'Function FixPath (const APath : String; AIsDir : Boolean) : String;'#013+
- #010+
- 'Fu','nction IsRelativePath(const APath : String) : boolean;'#013#010+
- 'Procedure ChangeDir(const APath : String);'#013#010+
- 'Procedure SplitCommand(Const Cmd : String; Var Exe,Options : String);'#013+
- #010+
- 'Procedure AddCustomFpmakeCommandlineOption(const ACommandLineOption, ',
- 'HelpMessage : string);'#013#010+
+ 'Use the overload with AIsDir instead'#039';'#010+
+ 'Function FixPath (const APath : String; AIsDir : Boolean) : String;'#010+
+ 'Function IsRelative','Path(const APath : String) : boolean;'#010+
+ 'Procedure ChangeDir(const APath : String);'#010+
+ 'Procedure SplitCommand(Const Cmd : String; Var Exe,Options : String);'#010+
+ 'Procedure AddCustomFpmakeCommandlineOption(const ACommandLineOption, H'+
+ 'elpMessage : string',');'#010+
'Function GetCustomFpmakeCommandlineOptionValue(const ACommandLineOptio'+
- 'n : string) : string;'#013#010+
+ 'n : string) : string;'#010+
'Function AddProgramExtension(const ExecutableName: string; AOS : TOS) '+
- ': string;'#013#010+
- 'Function GetImportLibraryFilename(const Un','itName: string; AOS : TOS)'+
- ' : string;'#013#010+
- #013#010+
+ ': string;'#010+
+ 'Function GetImportLibraryFilename(const UnitName: string; AOS : T','OS)'+
+ ' : string;'#010+
+ #010+
'procedure SearchFiles(const AFileName: string; Recursive: boolean; var'+
- ' List: TStrings);'#013#010+
+ ' List: TStrings);'#010+
'function GetDefaultLibGCCDir(CPU : TCPU;OS: TOS; var ErrorMessage: str'+
- 'ing): string;'#013#010+
- #013#010+
- 'Implementation'#013#010+
- #013#010+
- 'uses t','ypinfo, rtlconsts;'#013#010+
- #013#010+
- 'type'#013#010+
- ' TUnsortedDuplicatesStringList = class(TStringList)'#013#010+
- ' public'#013#010+
- ' function Add(const S: string): Integer; override;'#013#010+
- ' end;'#013#010+
- #013#010+
- 'var'#013#010+
- ' CustomFpmakeCommandlineOptions: TStrings;'#013#010+
- ' CustomFpMakeCommandlineValues: ','TStrings;'#013#010+
- #013#010+
- '{$ifdef NO_THREADING}'#013#010+
- 'var'#013#010+
- '{$else NO_THREADING}'#013#010+
- 'threadvar'#013#010+
- '{$endif NO_THREADING}'#013#010+
- ' GPathPrefix : string;'#013#010+
- ' GLogPrefix : string;'#013#010+
- #013#010+
- 'ResourceString'#013#010+
- ' SErrInvalidCPU = '#039'Invalid CPU name "%s"'#039';'#013#010+
- ' SErrInvalidOS ',' = '#039'Invalid OS name "%s"'#039';'#013#010+
- ' SErrInvalidMode = '#039'Invalid compiler mode "%s"'#039';'#013#010+
- ' SErrInvalidTarget = '#039'Invalid compiler target "%s"'#039';'#013#010+
+ 'ing): string;'#010+
+ #010+
+ 'Implementation'#010+
+ #010+
+ 'uses typinfo, rtlconsts;'#010+
+ #010+
+ 'const'#010+
+ '{$if','def CREATE_TAR_FILE}'#010+
+ ' ArchiveExtension = '#039'.tar.gz'#039';'#010+
+ '{$else CREATE_TAR_FILE}'#010+
+ ' ArchiveExtension = '#039'.zip'#039';'#010+
+ '{$endif CREATE_TAR_FILE}'#010+
+ #010+
+ '{----------------- from strutils ---------------------}'#010+
+ #010+
+ 'function FindPart(const HelpWilds, inputStr: string','): Integer;'#010+
+ 'var'#010+
+ ' i, J: Integer;'#010+
+ ' Diff: Integer;'#010+
+ 'begin'#010+
+ ' Result:=0;'#010+
+ ' i:=Pos('#039'?'#039',HelpWilds);'#010+
+ ' if (i=0) then'#010+
+ ' Result:=Pos(HelpWilds, inputStr)'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' Diff:=Length(inputStr) - Length(HelpWilds);'#010+
+ ' for i:=0 to Diff do'#010+
+ ' ',' begin'#010+
+ ' for J:=1 to Length(HelpWilds) do'#010+
+ ' if (inputStr[i + J] = HelpWilds[J]) or (HelpWilds[J] = '#039'?'#039+
+ ') then'#010+
+ ' begin'#010+
+ ' if (J=Length(HelpWilds)) then'#010+
+ ' begin'#010+
+ ' Result:=i+1;'#010+
+ ' Exit;'#010+
+ ' ',' end;'#010+
+ ' end'#010+
+ ' else'#010+
+ ' Break;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ 'function isWild(inputStr, Wilds: string; ignoreCase: Boolean): Boolean'+
+ ';'#010+
+ #010+
+ ' function SearchNext(var Wilds: string): Integer;'#010+
+ #010+
+ ' begin'#010+
+ ' Result:=Pos('#039'*'#039', Wilds',');'#010+
+ ' if Result>0 then'#010+
+ ' Wilds:=Copy(Wilds,1,Result - 1);'#010+
+ ' end;'#010+
+ #010+
+ 'var'#010+
+ ' CWild, CinputWord: Integer; { counter for positions }'#010+
+ ' i, LenHelpWilds: Integer;'#010+
+ ' MaxinputWord, MaxWilds: Integer; { Length of inputStr and Wilds }'#010+
+ ' HelpWilds: str','ing;'#010+
+ 'begin'#010+
+ ' if Wilds = inputStr then begin'#010+
+ ' Result:=True;'#010+
+ ' Exit;'#010+
+ ' end;'#010+
+ ' repeat { delete '#039'**'#039', because '#039'**'#039' = '#039'*'#039' }'#010+
+ ' i:=Pos('#039'**'#039', Wilds);'#010+
+ ' if i > 0 then'#010+
+ ' Wilds:=Copy(Wilds, 1, i - 1) + '#039'*'#039' + Copy(Wilds, i + 2, '+
+ 'Maxint);'#010+
+ ' ','until i = 0;'#010+
+ ' if Wilds = '#039'*'#039' then begin { for fast end, if Wilds only '#039+
+ '*'#039' }'#010+
+ ' Result:=True;'#010+
+ ' Exit;'#010+
+ ' end;'#010+
+ ' MaxinputWord:=Length(inputStr);'#010+
+ ' MaxWilds:=Length(Wilds);'#010+
+ ' if ignoreCase then begin { upcase all letters }'#010+
+ ' inputStr:=Ans','iUpperCase(inputStr);'#010+
+ ' Wilds:=AnsiUpperCase(Wilds);'#010+
+ ' end;'#010+
+ ' if (MaxWilds = 0) or (MaxinputWord = 0) then begin'#010+
+ ' Result:=False;'#010+
+ ' Exit;'#010+
+ ' end;'#010+
+ ' CinputWord:=1;'#010+
+ ' CWild:=1;'#010+
+ ' Result:=True;'#010+
+ ' repeat'#010+
+ ' if inputStr[CinputWord] = Wilds','[CWild] then begin { equal letter'+
+ 's }'#010+
+ ' { goto next letter }'#010+
+ ' inc(CWild);'#010+
+ ' inc(CinputWord);'#010+
+ ' Continue;'#010+
+ ' end;'#010+
+ ' if Wilds[CWild] = '#039'?'#039' then begin { equal to '#039'?'#039' }'#010+
+ ' { goto next letter }'#010+
+ ' inc(CWild);'#010+
+ ' inc(C','inputWord);'#010+
+ ' Continue;'#010+
+ ' end;'#010+
+ ' if Wilds[CWild] = '#039'*'#039' then begin { handling of '#039'*'#039' '+
+ '}'#010+
+ ' HelpWilds:=Copy(Wilds, CWild + 1, MaxWilds);'#010+
+ ' i:=SearchNext(HelpWilds);'#010+
+ ' LenHelpWilds:=Length(HelpWilds);'#010+
+ ' if i = 0 then begi','n'#010+
+ ' { no '#039'*'#039' in the rest, compare the ends }'#010+
+ ' if HelpWilds = '#039#039' then Exit; { '#039'*'#039' is the last l'+
+ 'etter }'#010+
+ ' { check the rest for equal Length and no '#039'?'#039' }'#010+
+ ' for i:=0 to LenHelpWilds - 1 do begin'#010+
+ ' if (HelpWilds[','LenHelpWilds - i] <> inputStr[MaxinputWord -'+
+ ' i]) and'#010+
+ ' (HelpWilds[LenHelpWilds - i]<> '#039'?'#039') then'#010+
+ ' begin'#010+
+ ' Result:=False;'#010+
+ ' Exit;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' Exit;'#010+
+ ' end;'#010+
+ ' { handle all t','o the next '#039'*'#039' }'#010+
+ ' inc(CWild, 1 + LenHelpWilds);'#010+
+ ' i:=FindPart(HelpWilds, Copy(inputStr, CinputWord, Maxint));'#010+
+ ' if i= 0 then begin'#010+
+ ' Result:=False;'#010+
+ ' Exit;'#010+
+ ' end;'#010+
+ ' CinputWord:=i + LenHelpWilds;'#010+
+ ' Contin','ue;'#010+
+ ' end;'#010+
+ ' Result:=False;'#010+
+ ' Exit;'#010+
+ ' until (CinputWord > MaxinputWord) or (CWild > MaxWilds);'#010+
+ ' { no completed evaluation }'#010+
+ ' if CinputWord <= MaxinputWord then Result:=False;'#010+
+ ' if (CWild <= MaxWilds) and (Wilds[MaxWilds] <> '#039'*'#039') the','n R'+
+ 'esult:=False;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'type'#010+
+ ' TUnsortedDuplicatesStringList = class(TStringList)'#010+
+ ' public'#010+
+ ' function Add(const S: string): Integer; override;'#010+
+ ' end;'#010+
+ #010+
+ 'var'#010+
+ ' CustomFpmakeCommandlineOptions: TStrings;'#010+
+ ' CustomFpMakeCommandlineValues: TStrin','gs;'#010+
+ #010+
+ '{$ifdef NO_THREADING}'#010+
+ 'var'#010+
+ '{$else NO_THREADING}'#010+
+ 'threadvar'#010+
+ '{$endif NO_THREADING}'#010+
+ ' GPathPrefix : string;'#010+
+ ' GLogPrefix : string;'#010+
+ #010+
+ 'ResourceString'#010+
+ ' SErrInvalidCPU = '#039'Invalid CPU name "%s"'#039';'#010+
+ ' SErrInvalidOS = '#039'Invalid OS nam','e "%s"'#039';'#010+
+ ' SErrInvalidMode = '#039'Invalid compiler mode "%s"'#039';'#010+
+ ' SErrInvalidTarget = '#039'Invalid compiler target "%s"'#039';'#010+
' SErrNameExists = '#039'Name "%s" already exists in the collect'+
- 'ion.'#039';'#013#010+
- ' SErrNoSuchName ',' = '#039'Could not find item with name "%s" in'+
- ' the collection.'#039';'#013#010+
+ 'ion.'#039';'#010+
+ ' SErrNoSuchName = '#039'Could not find it','em with name "%s" in'+
+ ' the collection.'#039';'#010+
' SErrInValidArgument = '#039'Invalid command-line argument at positi'+
- 'on %d: %s'#039';'#013#010+
+ 'on %d: %s'#039';'#010+
' SErrNeedArgument = '#039'Option at position %d (%s) needs an arg'+
- 'ument'#039';'#013#010+
- ' SErrNoPackagesDefined ','= '#039'No action possible: No packages were '+
- 'defined.'#039';'#013#010+
+ 'ument'#039';'#010+
+ ' SErrNoPackagesDefined = '#039'No action possible: No',' packages were '+
+ 'defined.'#039';'#010+
' SErrInstaller = '#039'The installer encountered the following'+
- ' error:'#039';'#013#010+
+ ' error:'#039';'#010+
' SErrDepUnknownTarget = '#039'Unknown target for unit "%s" in depende'+
- 'ncies for %s in package %s'#039';'#013#010+
- ' SErrExternalC','ommandFailed = '#039'External command "%s" failed with'+
- ' exit code %d. Console output:'#039'+LineEnding+'#039'%s'#039';'#013#010+
- ' SErrExtCommandNotFound= '#039'External command "%s" not found'#039';'#013+
- #010+
- ' SErrCreatingDirectory = '#039'Failed to create directory "%s"'#039';'#013+
- #010+
- ' SErrDeletingFil','e = '#039'Failed to delete file "%s"'#039';'#013#010+
- ' SErrRemovingDirectory = '#039'Failed to remove directory "%s"'#039';'#013+
- #010+
- ' SErrMovingFile = '#039'Failed to move file "%s" to "%s"'#039';'#013+
- #010+
- ' SErrCopyingFile = '#039'Failed to copy file "%s" to "%s"'#039';'#013+
- #010+
- ' SErrChange','DirFailed = '#039'Failed to enter directory "%s"'#039';'#013+
- #010+
+ 'ncies for %s in package %s'#039';'#010+
+ ' SErrExternalCommandFailed = '#039'External com','mand "%s" failed with'+
+ ' exit code %d. Console output:'#039'+LineEnding+'#039'%s'#039';'#010+
+ ' SErrExtCommandNotFound= '#039'External command "%s" not found'#039';'#010+
+ ' SErrCreatingDirectory = '#039'Failed to create directory "%s"'#039';'#010+
+ ' SErrDeletingFile = '#039'Failed to delete file',' "%s"'#039';'#010+
+ ' SErrRemovingDirectory = '#039'Failed to remove directory "%s"'#039';'#010+
+ ' SErrMovingFile = '#039'Failed to move file "%s" to "%s"'#039';'#010+
+ ' SErrCopyingFile = '#039'Failed to copy file "%s" to "%s"'#039';'#010+
+ ' SErrChangeDirFailed = '#039'Failed to enter dire','ctory "%s"'#039';'#010+
' SErrInvalidArgumentToSubstitute = '#039'Invalid number of arguments t'+
- 'o Substitute'#039';'#013#010+
+ 'o Substitute'#039';'#010+
' SErrNoArchiveSupport = '#039'This binary contains no archive support'+
- '. Please recompile with archive support'#039';'#013#010,
- ' SErrNoDictionaryItem = '#039'No item called "%s" in the dictionary'#039+
- ';'#013#010+
+ '. Please recompile with archive support'#039';'#010+
+ ' SErrNoDictionaryItem = '#039'No item cal','led "%s" in the dictionary'+
+ #039';'#010+
' SErrNoDictionaryValue = '#039'The item "%s" in the dictionary is not '+
- 'a value'#039';'#013#010+
+ 'a value'#039';'#010+
' SErrNoDictionaryFunc = '#039'The item "%s" in the dictionary is not '+
- 'a function'#039';'#013#010+
- ' SErrInvalidFP','CInfo = '#039'Compiler returns invalid information,'+
- ' check if fpc -iV works'#039';'#013#010+
+ 'a function'#039';'#010+
+ ' SErrInvalidFPCInfo = '#039'Compiler returns invalid info','rmation,'+
+ ' check if fpc -iV works'#039';'#010+
' SErrDependencyNotFound = '#039'Could not find unit directory for depe'+
- 'ndency package "%s"'#039';'#013#010+
+ 'ndency package "%s"'#039';'#010+
' SErrAlreadyInitialized = '#039'Installer can only be initialized once'+
- #039';'#013#010+
- ' SEr','rInvalidState = '#039'Invalid state for target %s'#039';'#013+
- #010+
+ #039';'#010+
+ ' SErrInvalidState = '#039'Invalid state for targ','et %s'#039';'#010+
' SErrCouldNotCompile = '#039'Could not compile target %s from packag'+
- 'e %s'#039';'#013#010+
+ 'e %s'#039';'#010+
' SErrUnsupportedBuildmode = '#039'Package does not support this buildm'+
- 'ode'#039';'#013#010+
- ' SErrPackVarNotExist = '#039'There is no p','ackage variant with the '+
- 'name "%s"'#039';'#013#010+
- #013#010+
+ 'ode'#039';'#010+
+ ' SErrPackVarNotExist = '#039'There is no package variant with the na'+
+ 'me "%s"'#039';'#010+
+ ' SErrEvent','NotSupported = '#039'Unsupported event type'#039';'#010+
+ #010+
' SWarnCircularTargetDependency = '#039'Warning: Circular dependency de'+
- 'tected when compiling target %s with target %s'#039';'#013#010+
+ 'tected when compiling target %s with target %s'#039';'#010+
' SWarnCircularPackageDependency = '#039'Warning: Circular dependency d'+
- 'etected when compil','ing package %s with package %s'#039';'#013#010+
+ 'etected when comp','iling package %s with package %s'#039';'#010+
' SWarnFailedToSetTime = '#039'Warning: Failed to set timestamp on f'+
- 'ile "%s"'#039';'#013#010+
+ 'ile "%s"'#039';'#010+
' SWarnFailedToGetTime = '#039'Warning: Failed to get timestamp from'+
- ' file "%s"'#039';'#013#010+
- ' SWarnAttemptingToCompileNonNeutralTarget = '#039'Wa','rning: Attemptin'+
- 'g to compile non-neutral target %s'#039';'#013#010+
+ ' file "%s"'#039';'#010+
+ ' SWarnAttemptingToCompileNonNeutralTarget = '#039'War','ning: Attemptin'+
+ 'g to compile non-neutral target %s'#039';'#010+
' SWarnSourceFileNotFound = '#039'Warning: Source file "%s" from packa'+
- 'ge %s not found for %s'#039';'#013#010+
+ 'ge %s not found for %s'#039';'#010+
' SWarnIncludeFileNotFound = '#039'Warning: Include file "%s" from pack'+
- 'age %s not found for %s'#039';'#013#010+
- ' ',' SWarnDepUnitNotFound = '#039'Warning: Dependency on unit %s is '+
- 'not supported for %s'#039';'#013#010+
+ 'age %s not found for %s'#039';'#010+
+ ' SWa','rnDepUnitNotFound = '#039'Warning: Dependency on unit %s is '+
+ 'not supported for %s'#039';'#010+
' SWarnTargetDependsOnPackage = '#039'Warning: Target %s of package %s '+
'depends on another package (%s). These kind of dependencies are not pr'+
- 'ocessed'#039';'#013#010+
- ' SWar','nDependOnOtherPlatformPackage = '#039'Warning: Package %s depen'+
- 'ds on package %s which is not available for the %s platform'#039';'#013#010+
+ 'ocessed'#039';'#010+
+ ' SWarnDepen','dOnOtherPlatformPackage = '#039'Warning: Package %s depen'+
+ 'ds on package %s which is not available for the %s platform'#039';'#010+
' SWarnStartCompilingPackage = '#039'Start compiling package %s for tar'+
- 'get %s.'#039';'#013#010+
- ' SWarnCompilingPackagecompleteProgress = ',#039'[%3.0f%%] Compiled pack'+
- 'age %s'#039';'#013#010+
- ' SWarnCompilingPackagecomplete = '#039'Compiled package %s'#039';'#013#010+
+ 'get %s.'#039';'#010+
+ ' SWarnCompilingPackagecompleteProgress = '#039'[%3.0f%','%] Compiled pa'+
+ 'ckage %s'#039';'#010+
+ ' SWarnCompilingPackagecomplete = '#039'Compiled package %s'#039';'#010+
' SWarnSkipPackageTargetProgress = '#039'[%3.0f%%] Skipped package %s w'+
- 'hich has been disabled for target %s'#039';'#013#010+
- ' SWarnSkipPackageTarget = '#039'Skipped packag','e %s which has been di'+
- 'sabled for target %s'#039';'#013#010+
+ 'hich has been disabled for target %s'#039';'#010+
+ ' SWarnSkipPackageTarget = '#039'Skipped package %s which ','has been di'+
+ 'sabled for target %s'#039';'#010+
' SWarnInstallationPackagecomplete = '#039'Installation package %s for '+
- 'target %s succeeded'#039';'#013#010+
+ 'target %s succeeded'#039';'#010+
' SWarnCleanPackagecomplete = '#039'Clean of package %s completed'#039';'+
- #013#010+
- ' SWarnCanNotGetAccessRights = '#039'Warning: ','Failed to copy access-r'+
- 'ights from file %s'#039';'#013#010+
+ #010+
+ ' SWarnCanNotGetAccessRights = '#039'Warning: Failed to copy',' access-r'+
+ 'ights from file %s'#039';'#010+
' SWarnCanNotSetAccessRights = '#039'Warning: Failed to copy access-rig'+
- 'hts to file %s'#039';'#013#010+
+ 'hts to file %s'#039';'#010+
' SWarnCanNotGetFileAge = '#039'Warning: Failed to get FileAge for %s'#039+
- ';'#013#010+
- ' SWarnExtCommandNotFound = '#039'Warning: Exter','nal command "%s" not '+
- 'found but "%s" is older then "%s"'#039';'#013#010+
+ ';'#010+
+ ' SWarnExtCommandNotFound = '#039'Warning: External command "%s" ','not '+
+ 'found but "%s" is older then "%s"'#039';'#010+
' SWarnDuplicatePackage = '#039'Warning: Package %s is already added. U'+
- 'sing the existing package'#039';'#013#010+
- ' SWarngccNotFound = '#039'Could not find libgcc'#039';'#013#010+
- ' SWarngcclibpath = '#039'Warn','ing: Unable to determine the li'+
- 'bgcc path.'#039';'#013#010+
- ' SWarnNoFCLProcessSupport= '#039'No FCL-Process support'#039';'#013#010+
- #013#010+
- ' SInfoPackageAlreadyProcessed = '#039'Package %s is already processed'#039+
- ';'#013#010+
- ' SInfoCompilingTarget = '#039'Compiling target %s'#039';'#013#010+
- ' SInfoExecutingC','ommand = '#039'Executing command "%s %s"'#039';'#013+
- #010+
- ' SInfoCreatingOutputDir = '#039'Creating output dir "%s"'#039';'#013#010+
- ' SInfoInstallingPackage = '#039'Installing package %s'#039';'#013#010+
- ' SInfoArchivingPackage = '#039'Archiving package %s in "%s"'#039';'#013+
+ 'sing the existing package'#039';'#010+
+ ' SWarngccNotFound = '#039'Could not find libgcc'#039';'#010+
+ ' SWarngcclibpath = '#039'Warning: Unable to deter','mine the li'+
+ 'bgcc path.'#039';'#010+
+ ' SWarnNoFCLProcessSupport= '#039'No FCL-Process support'#039';'#010+
+ ' SWarnRetryRemDirectory = '#039'Failed to remove directory "%s". R'+
+ 'etry after a short delay'#039';'#010+
#010+
- ' SInfoCleaningPackage =',' '#039'Cleaning package %s'#039';'#013#010+
+ ' SInfoPackageAlreadyProcessed = '#039'Package %s is already processed'#039+
+ ';'#010,
+ ' SInfoCompilingTarget = '#039'Compiling target %s'#039';'#010+
+ ' SInfoExecutingCommand = '#039'Executing command "%s %s"'#039';'#010+
+ ' SInfoCreatingOutputDir = '#039'Creating output dir "%s"'#039';'#010+
+ ' SInfoInstallingPackage = '#039'Installing package %s'#039';'#010+
+ ' SInfoArchivingPackage',' = '#039'Archiving package %s in "%s"'#039';'#010+
+ ' SInfoCleaningPackage = '#039'Cleaning package %s'#039';'#010+
' SInfoManifestPackage = '#039'Creating manifest for package %s'#039';'+
- #013#010+
- ' SInfoCopyingFile = '#039'Copying file "%s" to "%s"'#039';'#013#010+
- ' SInfoDeletedFile = '#039'Deleted file "%s"'#039';'#013#010+
- ' SInfoRemovedDirectory = '#039'Removed direc','tory "%s"'#039';'#013#010+
+ #010+
+ ' SInfoPkgListPackage = '#039'Adding package %s to the package list'#039+
+ ';'#010+
+ ' SInfoCopyingFile ',' = '#039'Copying file "%s" to "%s"'#039';'#010+
+ ' SInfoDeletedFile = '#039'Deleted file "%s"'#039';'#010+
+ ' SInfoRemovedDirectory = '#039'Removed directory "%s"'#039';'#010+
' SInfoSourceNewerDest = '#039'Source file "%s" (%s) is newer than d'+
- 'estination "%s" (%s).'#039';'#013#010+
- ' SInfoDestDoesNotExist = '#039'Destination file "%s" does not exist.'+
- #039';'#013#010+
- ' SInfoFallbackBuildmode = '#039'Buildmode not supported by package, f',
- 'alling back to one by one unit compilation'#039';'#013#010+
+ 'estination "%s" (%s).'#039';'#010+
+ ' SInfoDes','tDoesNotExist = '#039'Destination file "%s" does not exis'+
+ 't.'#039';'#010+
+ ' SInfoFallbackBuildmode = '#039'Buildmode not supported by package, f'+
+ 'alling back to one by one unit compilation'#039';'#010+
' SInfoFallbackBuildmodeBU= '#039'Buildmode not supported by package, f'+
- 'alling back to compilation using a buildunit'#039';'#013#010+
- #013#010+
+ 'alli','ng back to compilation using a buildunit'#039';'#010+
+ #010+
' SDbgComparingFileTimes = '#039'Comparing file "%s" time "%s" to "%'+
- 's" time "%s"','.'#039';'#013#010+
+ 's" time "%s".'#039';'#010+
' SDbgCompilingDependenciesOfTarget = '#039'Compiling dependencies of t'+
- 'arget %s'#039';'#013#010+
- ' SDbgResolvingSourcesOfTarget = '#039'Resolving filenames of target %s'+
- ' for %s'#039';'#013#010+
+ 'arget %s'#039';'#010+
+ ' SDbgResolvingSourcesOfTarget = '#039'Res','olving filenames of target '+
+ '%s for %s'#039';'#010+
' SDbgResolvedSourceFile = '#039'Resolved source file %s to "%s"'#039+
- ';'#013#010+
- ' SDbgSourceAl','readyResolved = '#039'Source file of %s has been resolv'+
- 'ed earlier'#039';'#013#010+
- ' SDbgResolvedIncludeFile = '#039'Resolved include file %s to "%s"'#039+
- ';'#013#010+
- ' SDbgOutputNotYetAvailable = '#039'Output file %s not available'#039';'#013+
- #010+
- ' SDbgDependencyOnUnit = '#039'Dependency of %','s on unit %s'#039';'+
- #013#010+
+ ';'#010+
+ ' SDbgSourceAlreadyResolved = '#039'Source file of %s has been resolved'+
+ ' earlier'#039';'#010+
+ ' SDbgResolvedIncludeFile = '#039'Resolved include file %s to ','"%s"'#039+
+ ';'#010+
+ ' SDbgOutputNotYetAvailable = '#039'Output file %s not available'#039';'#010+
+ ' SDbgDependencyOnUnit = '#039'Dependency of %s on unit %s'#039';'#010+
' SDbgDependencyUnitRecompiled = '#039'Dependent unit %s is being recom'+
- 'piled'#039';'#013#010+
- ' SDbgMustCompile = '#039'Must compile %s. (%s)'#039';'#013#010+
+ 'piled'#039';'#010+
+ ' SDbgMustCompile = '#039'Must ','compile %s. (%s)'#039';'#010+
' SDbgSkippingTargetWrongCPU = '#039'Skipping target %s, different CPU '+
- '(%s)'#039';'#013#010+
- ' SDbgSkippingTarge','tWrongOS = '#039'Skipping target %s, different OS'+
- ' (%s)'#039';'#013#010+
+ '(%s)'#039';'#010+
+ ' SDbgSkippingTargetWrongOS = '#039'Skipping target %s, different OS ('+
+ '%s)'#039';'#010+
' SDbgTargetIsNotAUnitOrProgram = '#039'Skipping Target %s, not an unit'+
- ' or program'#039';'#013#010+
- ' SDbgConsideringTarget = '#039'Considering target %s'#039';'#013#010+
- ' SDbgConsideringPackage = '#039'Considering packag','e %s'#039';'#013#010+
+ ' or progra','m'#039';'#010+
+ ' SDbgConsideringTarget = '#039'Considering target %s'#039';'#010+
+ ' SDbgConsideringPackage = '#039'Considering package %s'#039';'#010+
' SDbgExternalDependency = '#039'External dependency %s found in "%s'+
- '"'#039';'#013#010+
- ' SDbgBuildEngineArchiving = '#039'Build engine archiving'#039';'#013#010+
+ '"'#039';'#010+
+ ' SDbgBuildEngineArchiving = '#039'Build engine archiving'#039';',#010+
' SDbgBuildEngineGenerateManifests = '#039'Build engine generating mani'+
- 'fests'#039';'#013#010+
- ' SDbgBuildEngineCleaning =',' '#039'Build engine cleaning'#039';'#013#010+
- ' SDbgGenerating = '#039'Generating "%s"'#039';'#013#010+
- ' SDbgLoading = '#039'Loading "%s"'#039';'#013#010+
- ' SDbgFound = '#039'Found'#039';'#013#010+
- ' SDbgNotFound = '#039'Not Found'#039';'#013#010+
- ' SDbgDirectoryExists = '#039'D','irectory "%s" %s'#039';'#013#010+
- ' SDbgFileExists = '#039'File "%s" %s'#039';'#013#010+
- ' SDbgArchivingFile = '#039'Archiving "%s"'#039';'#013#010+
- ' SDbgSearchPath = '#039'Using %s path "%s"'#039';'#013#010+
- ' SDbgEnterDir = '#039'Entering directory "%s"'#039';'#013#010+
- ' SDbgPackage','ChecksumChanged = '#039'Dependent package %s is modified'+
- #039';'#013#010+
- ' SDbgFileDoesNotExist = '#039'File "%s" does not exist'#039';'#013#010+
+ 'fests'#039';'#010+
+ ' SDbgBuildEngineGeneratePkgList = '#039'Build engine generating packag'+
+ 'e list'#039';'#010+
+ ' SDbgBuildEngineCleaning = '#039'Build engine cleaning'#039';'#010+
+ ' SDbgGenerating = '#039'Gene','rating "%s"'#039';'#010+
+ ' SDbgLoading = '#039'Loading "%s"'#039';'#010+
+ ' SDbgFound = '#039'Found'#039';'#010+
+ ' SDbgNotFound = '#039'Not Found'#039';'#010+
+ ' SDbgDirectoryExists = '#039'Directory "%s" %s'#039';'#010+
+ ' SDbgFileExists = '#039'File "%s" %s'#039';'#010+
+ ' ',' SDbgArchivingFile = '#039'Archiving "%s"'#039';'#010+
+ ' SDbgSearchPath = '#039'Using %s path "%s"'#039';'#010+
+ ' SDbgEnterDir = '#039'Entering directory "%s"'#039';'#010+
+ ' SDbgPackageChecksumChanged = '#039'Dependent package %s is modified'#039+
+ ';'#010+
+ ' SDbgFileDoesNot','Exist = '#039'File "%s" does not exist'#039';'#010+
' SDbgDirectoryDoesNotExist = '#039'Directory "%s" does not exist'#039';'+
- #013#010+
- ' SDbgDirectoryNotEmpty = '#039'Directory "%s" is not empty. Wi','ll'+
- ' not remove'#039';'#013#010+
- ' SDbgGenerateBuildUnit = '#039'Generate build-unit %s'#039';'#013#010+
- ' SDbgForcedCompile = '#039'Forced compile'#039';'#013#010+
- ' SDbgOutputDoesNotExist = '#039'Output file does not exist'#039';'#013+
- #010+
- ' SDbgNewerSource = '#039'Source file is newer then',' output '+
- 'file'#039';'#013#010+
- ' SDbgNewerInclude = '#039'The include file %s is newer then o'+
- 'utput file'#039';'#013#010+
+ #010+
+ ' SDbgDirectoryNotEmpty = '#039'Directory "%s" is not empty. Will n'+
+ 'ot remove'#039';'#010+
+ ' SDbgGenerateBuildUnit = '#039'Generate build-unit %s'#039';'#010+
+ ' ','SDbgForcedCompile = '#039'Forced compile'#039';'#010+
+ ' SDbgOutputDoesNotExist = '#039'Output file does not exist'#039';'#010+
+ ' SDbgNewerSource = '#039'Source file is newer then output fi'+
+ 'le'#039';'#010+
+ ' SDbgNewerInclude = '#039'The include file %s is newer the','n'+
+ ' output file'#039';'#010+
' SDbgDependencyRecompiled = '#039'The unit %s where this unit depends'+
- ' on is recompiled'#039';'#013#010+
- ' SDbgPackageDepRecompiled = '#039'The package %s where this ','package'+
- ' depends on is recompiled'#039';'#013#010+
- ' SDbgTargetHasToBeCompiled = '#039'At least one of the targets in the '+
- 'package has to be compiled.'#039';'#013#010+
+ ' on is recompiled'#039';'#010+
+ ' SDbgPackageDepRecompiled = '#039'The package %s where this package d'+
+ 'epends on is recompiled'#039';'#010+
+ ' SDbgTargetHasToBeCompiled = '#039'At least one of',' the targets in th'+
+ 'e package has to be compiled.'#039';'#010+
' SDbgDeletedFile = '#039'Recursively deleted file "%s"'#039';'+
- #013#010+
- ' SDbgRemovedDirectory = '#039'Recursively ','removed directory "%s'+
- '"'#039';'#013#010+
- #013#010+
- #013#010+
- ' // Help messages for usage'#013#010+
- ' SValue = '#039'Value'#039';'#013#010+
- ' SHelpUsage = '#039'Usage: %s command [options]'#039';'#013#010+
+ #010+
+ ' SDbgRemovedDirectory = '#039'Recursively removed directory "%s"'#039+
+ ';'#010+
+ #010+
+ #010+
+ ' // Help messages for usage'#010+
+ ' SValue = '#039'Val','ue'#039';'#010+
+ ' SHelpUsage = '#039'Usage: %s command [options]'#039';'#010+
' SHelpCommand = '#039'Where command is one of the following:'#039+
- ';'#013#010+
- ' SHelpCompile =',' '#039'Compile all units in the package(s).'#039+
- ';'#013#010+
- ' SHelpBuild = '#039'Build all units in the package(s).'#039';'#013+
+ ';'#010+
+ ' SHelpCompile = '#039'Compile all units in the package(s).'#039';'+
+ #010+
+ ' SHelpBuild = '#039'Build all units in the pa','ckage(s).'#039';'+
#010+
' SHelpInstall = '#039'Install all units in the package(s).'#039';'+
- #013#010+
+ #010+
' SHelpClean = '#039'Clean (remove) all units in the package(s'+
- ').'#039';',#013#010+
+ ').'#039';'#010+
' SHelpArchive = '#039'Create archive (zip) with all units in th'+
- 'e package(s).'#039';'#013#010+
- ' SHelpHelp = '#039'This message.'#039';'#013#010+
+ 'e package(s).'#039';'#010+
+ ' SHelpHelp',' = '#039'This message.'#039';'#010+
' SHelpManifest = '#039'Create a manifest suitable for import in '+
- 'repository.'#039';'#013#010+
- ' SHelpZipInstall = '#039'Install',' all units in the package(s) int'+
- 'o an archive.'#039';'#013#010+
+ 'repository.'#039';'#010+
+ ' SHelpPkgList = '#039'Create list of all packages suitable for '+
+ 'FPC installer.'#039';'#010+
+ ' SHelpZipInstall = '#039'Install all units in t','he package(s) int'+
+ 'o an archive.'#039';'#010+
' SHelpCmdOptions = '#039'Where options is one or more of the follo'+
- 'wing:'#039';'#013#010+
- ' SHelpCPU = '#039'Compile for indicated CPU.'#039';'#013#010+
- ' SHelpOS = '#039'Compile for indicated OS'#039';'#013#010+
- ' SHelpT','arget = '#039'Compile for indicated target'#039';'#013#010+
+ 'wing:'#039';'#010+
+ ' SHelpCPU = '#039'Compile for indicated CPU.'#039';'#010+
+ ' SHelpOS = '#039'Compile for indicated OS'#039';'#010+
+ ' SHelpTarget = '#039'Co','mpile for indicated target'#039';'#010+
' SHelpList = '#039'list commands instead of actually executi'+
- 'ng them.'#039';'#013#010+
+ 'ng them.'#039';'#010+
' SHelpPrefix = '#039'Use indicated prefix directory for all co'+
- 'mmands.'#039';'#013#010+
- ' SHelpNoFPCCfg = '#039'Compiler wi','ll not use fpc.cfg'#039';'#013+
- #010+
- ' SHelpBaseInstallDir = '#039'Use indicated directory as base install d'+
- 'ir.'#039';'#013#010+
+ 'mmands.'#039';'#010+
+ ' SHelpNoFPCCfg = '#039'Compiler will not use fpc.cfg'#039';'#010+
+ ' ',' SHelpBaseInstallDir = '#039'Use indicated directory as base install'+
+ ' dir.'#039';'#010+
' SHelpLocalUnitDir = '#039'Use indicated directory as local (user) u'+
- 'nit dir.'#039';'#013#010+
+ 'nit dir.'#039';'#010+
' SHelpGlobalUnitDir = '#039'Use indicated directory as global unit di'+
- 'r','.'#039';'#013#010+
- ' SHelpUnitInstallDir = '#039'Use indicated directory to install units '+
- 'into.'#039';'#013#010+
- ' SHelpCompiler = '#039'Use indicated binary as compiler'#039';'#013+
- #010+
+ 'r.'#039';'#010+
+ ' SHelpUnitInstallDir',' = '#039'Use indicated directory to install unit'+
+ 's into.'#039';'#010+
+ ' SHelpCompiler = '#039'Use indicated binary as compiler'#039';'#010+
' SHelpConfig = '#039'Use indicated config file when compiling.'+
- #039';'#013#010+
- ' SHelpOptions = '#039'Pass',' extra options to the compiler.'#039+
- ';'#013#010+
- ' SHelpVerbose = '#039'Be verbose when working.'#039';'#013#010+
- ' SHelpInstExamples = '#039'Install the example-sources.'#039';'#013#010+
+ #039';'#010+
+ ' SHelpOptions = '#039'Pass extra options to the compile','r.'#039+
+ ';'#010+
+ ' SHelpVerbose = '#039'Be verbose when working.'#039';'#010+
+ ' SHelpInstExamples = '#039'Install the example-sources.'#039';'#010+
' SHelpSkipCrossProgs = '#039'Skip programs when cross-compiling/instal'+
- 'ling'#039';'#013#010+
- ' SHelpIgnoreInvOpt ',' = '#039'Ignore further invalid options.'#039';'#013+
- #010+
+ 'ling'#039';'#010+
+ ' SHelpIgnoreInvOpt = '#039'Ignore further invalid option','s.'#039';'#010+
' sHelpFpdocOutputDir = '#039'Use indicated directory as fpdoc output f'+
- 'older.'#039';'#013#010+
+ 'older.'#039';'#010+
+ ' sHelpFPUnitSrcPath = '#039'Sourcepath to replace in fpunits.cfg on i'+
+ 'nstallation.'#039';'#010+
' sHelpThreads = '#039'Enable the indicated amount of worker thr'+
- 'eads.'#039';'#013#010+
- ' sHelpUseEnvironment = '#039'Use environment to pass o','ptions to comp'+
- 'iler.'#039';'#013#010+
+ 'eads.'#039';'#010+
+ ' sHe','lpUseEnvironment = '#039'Use environment to pass options to comp'+
+ 'iler.'#039';'#010+
' SHelpUseBuildUnit = '#039'Compile package in Build-unit mode.'#039';'+
- #013#010+
+ #010+
' sHelpZipPrefix = '#039'Use indicated prefix for generated archiv'+
- 'es.'#039';'#013#010+
- #013#010+
- #013#010+
- 'Const'#013#010+
- ' // Keys for Defaults file. Do not localize.'#013#010+
- ' KeyCompiler = '#039'Compi','ler'#039';'#013#010+
- ' KeyArchive = '#039'Archive'#039';'#013#010+
- ' KeyCopy = '#039'Copy'#039';'#013#010+
- ' KeyMkDir = '#039'MkDir'#039';'#013#010+
- ' KeyMove = '#039'Move'#039';'#013#010+
- ' KeyRemove = '#039'Remove'#039';'#013#010+
- ' KeyRemoveDir= '#039'RemoveDir'#039';'#013#010+
- ' KeyRemoveTree= '#039'RemoveTree'#039';'#013#010+
- ' KeyOptions = '#039'Options'#039';'#013#010+
- ' KeyCPU ',' = '#039'CPU'#039';'#013#010+
- ' KeyOS = '#039'OS'#039';'#013#010+
- ' KeyMode = '#039'Mode'#039';'#013#010+
- ' KeyPrefix = '#039'Prefix'#039';'#013#010+
- ' KeyTarget = '#039'Target'#039';'#013#010+
- ' KeyNoFPCCfg = '#039'NoFPCCfg'#039';'#013#010+
- ' KeyUseEnv = '#039'UseEnv'#039';'#013#010+
- ' KeyLocalUnitDir = '#039'LocalUnitDir'#039';'#013#010+
- ' KeyGlobalUnitDir = '#039,'GlobalUnitDir'#039';'#013#010+
- ' KeyBaseInstallDir = '#039'BaseInstallDir'#039';'#013#010+
- ' KeyUnitInstallDir = '#039'UnitInstallDir'#039';'#013#010+
- ' KeyBinInstallDir = '#039'BinInstallDir'#039';'#013#010+
- ' KeyDocInstallDir = '#039'DocInstallDir'#039';'#013#010+
- ' KeyExamplesInstallDir = '#039'ExamplesInstallDir',#039';'#013#010+
- ' KeyInstallExamples = '#039'InstallExamples'#039';'#013#010+
- ' KeySkipCrossProdrams = '#039'SkipCrossPrograms'#039';'#013#010+
- ' // Keys for unit config'#013#010+
- ' KeyName = '#039'Name'#039';'#013#010+
- ' KeyVersion = '#039'Version'#039';'#013#010+
- ' KeyChecksum = '#039'Checksum'#039';'#013#010+
- ' KeyNeedLibC = '#039'NeedLibC'#039';'#013#010+
- ' Ke','yDepends = '#039'Depends'#039';'#013#010+
- ' KeyFlags = '#039'Flags'#039';'#013#010+
- ' KeyAddIn = '#039'FPMakeAddIn'#039';'#013#010+
- ' KeySourcePath = '#039'SourcePath'#039';'#013#010+
- ' KeyFPMakeOptions = '#039'FPMakeOptions'#039';'#013#010+
- ' KeyPackageVar = '#039'PackageVariant_'#039';'#013#010+
- #013#010+
- '{*********************************************','**********************'+
- '*********'#013#010+
- ' Helpers'#013#010+
+ 'es.'#039';'#010+
+ #010+
+ #010+
+ 'Const'#010+
+ ' // Keys for Defaults file. D','o not localize.'#010+
+ ' KeyCompiler = '#039'Compiler'#039';'#010+
+ ' KeyArchive = '#039'Archive'#039';'#010+
+ ' KeyCopy = '#039'Copy'#039';'#010+
+ ' KeyMkDir = '#039'MkDir'#039';'#010+
+ ' KeyMove = '#039'Move'#039';'#010+
+ ' KeyRemove = '#039'Remove'#039';'#010+
+ ' KeyRemoveDir= '#039'RemoveDir'#039';'#010+
+ ' KeyRemoveTree= '#039'RemoveTree'#039';'#010+
+ ' KeyOptio','ns = '#039'Options'#039';'#010+
+ ' KeyCPU = '#039'CPU'#039';'#010+
+ ' KeyOS = '#039'OS'#039';'#010+
+ ' KeyMode = '#039'Mode'#039';'#010+
+ ' KeyPrefix = '#039'Prefix'#039';'#010+
+ ' KeyTarget = '#039'Target'#039';'#010+
+ ' KeyNoFPCCfg = '#039'NoFPCCfg'#039';'#010+
+ ' KeyUseEnv = '#039'UseEnv'#039';'#010+
+ ' KeyLocalUnitDir = '#039'LocalUnitDir'#039';'#010+
+ ' KeyG','lobalUnitDir = '#039'GlobalUnitDir'#039';'#010+
+ ' KeyBaseInstallDir = '#039'BaseInstallDir'#039';'#010+
+ ' KeyUnitInstallDir = '#039'UnitInstallDir'#039';'#010+
+ ' KeyBinInstallDir = '#039'BinInstallDir'#039';'#010+
+ ' KeyDocInstallDir = '#039'DocInstallDir'#039';'#010+
+ ' KeyExamplesInstallDir = '#039'Ex','amplesInstallDir'#039';'#010+
+ ' KeyInstallExamples = '#039'InstallExamples'#039';'#010+
+ ' KeySkipCrossProdrams = '#039'SkipCrossPrograms'#039';'#010+
+ ' // Keys for unit config'#010+
+ ' KeyName = '#039'Name'#039';'#010+
+ ' KeyVersion = '#039'Version'#039';'#010+
+ ' KeyChecksum = '#039'Checksum'#039';'#010+
+ ' KeyNeedLibC = '#039'NeedLib','C'#039';'#010+
+ ' KeyDepends = '#039'Depends'#039';'#010+
+ ' KeyFlags = '#039'Flags'#039';'#010+
+ ' KeyAddIn = '#039'FPMakeAddIn'#039';'#010+
+ ' KeySourcePath = '#039'SourcePath'#039';'#010+
+ ' KeyFPMakeOptions = '#039'FPMakeOptions'#039';'#010+
+ ' KeyPackageVar = '#039'PackageVariant_'#039';'#010+
+ #010+
+ '{********************************************','***********************'+
+ '*********'#010+
+ ' Helpers'#010+
'**********************************************************************'+
- '******}'#013#010+
- #013#010+
- '{$ifdef HAS_UNIT_PROCESS}'#013#010+
- 'function ExecuteFPC(Verbose: boolean; const Path: string; ','const ComL'+
+ '******}'#010+
+ #010+
+ '{$ifdef HAS_UNIT_PROCESS}'#010+
+ 'function ExecuteFPC(Verbose: boolean; const Path: string; cons','t ComL'+
'ine: string; const Env: TStrings; ConsoleOutput: TMemoryStream): integ'+
- 'er;'#013#010+
- 'var'#013#010+
- ' P: TProcess;'#013#010+
- ' BytesRead: longint;'#013#010+
- #013#010+
- ' function ReadFromStream(const ReadFromStdErr: boolean): longint;'#013+
- #010+
- #013#010+
- ' const'#013#010+
- ' READ_BYTES = 2048;'#013#010+
- #013#010+
- ' ty','pe'#013#010+
- ' TMessages = (mCompiling, mLinking);'#013#010+
- #013#010+
- ' var'#013#010+
+ 'er;'#010+
+ 'var'#010+
+ ' P: TProcess;'#010+
+ ' BytesRead: longint;'#010+
+ #010+
+ ' function ReadFromStream(const ReadFromStdErr: boolean): longint;'#010+
+ #010+
+ ' const'#010+
+ ' READ_BYTES = 2048;'#010+
+ #010+
+ ' type'#010+
+ ' TMessag','es = (mCompiling, mLinking);'#010+
+ #010+
+ ' var'#010+
' //ifdef the MsgNum so it contains the correct message numbers for '+
- 'each compiler version.'#013#010+
- ' MsgNum : array [TMessages] of integer = (3104, 9015);'#013#010+
- #013#010+
- ' n: longint;'#013#010+
- ' BuffPos: l','ongint;'#013#010+
- ' sLine: string;'#013#010+
- ' ch: char;'#013#010+
- ' msg: TMessages;'#013#010+
- ' ipos: integer;'#013#010+
- ' snum: string;'#013#010+
- ' begin'#013#010+
- ' // make sure we have room'#013#010+
- ' ConsoleOutput.SetSize(BytesRead + READ_BYTES);'#013#010+
- #013#010+
- ' // try reading it'#013#010+
- ' if ReadFromStdE','rr then'#013#010+
- ' n := P.Stderr.Read((ConsoleOutput.Memory + BytesRead)^, READ_BYT'+
- 'ES)'#013#010+
- ' else'#013#010+
- ' n := P.Output.Read((ConsoleOutput.Memory + BytesRead)^, READ_BYT'+
- 'ES);'#013#010+
- ' if n > 0 then'#013#010+
- ' begin'#013#010+
- ' Inc(BytesRead, n);'#013#010+
- #013#010+
- ' sLine ',':= '#039#039';'#013#010+
- ' BuffPos := ConsoleOutput.Position;'#013#010+
- #013#010+
- ' //read lines from the stream'#013#010+
- ' repeat'#013#010+
- ' ConsoleOutput.Read(ch,1);'#013#010+
- #013#010+
- ' if ch in [#10, #13] then'#013#010+
- ' begin'#013#010+
- ' if Verbose then'#013#010+
- ' installer.log','(vlInfo,sLine)'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' for msg := Low(TMessages) to High(TMessages) do'#013#010+
- ' begin'#013#010+
- ' snum := Format('#039'(%d)'#039', [MsgNum[msg]]);'#013#010+
- ' ipos := Pos(snum, sLine);'#013#010+
- ' ',' if ipos = 1 then'#013#010+
+ 'each compiler version.'#010+
+ ' MsgNum : array [TMessages] of integer = (3104, 9015);'#010+
+ #010+
+ ' n,available: longint;'#010+
+ ' BuffPos: longint;'#010+
+ ' ','sLine: string;'#010+
+ ' ch: char;'#010+
+ ' msg: TMessages;'#010+
+ ' ipos: integer;'#010+
+ ' snum: string;'#010+
+ ' begin'#010+
+ #010+
+ ' // try reading it'#010+
+ ' if ReadFromStdErr then'#010+
+ ' begin'#010+
+ ' available:=P.Stderr.NumBytesAvailable;'#010+
+ ' // make sure we have room'#010+
+ ' ',' if (bytesRead + Available > ConsoleOutput.Size) then'#010+
+ ' ConsoleOutput.SetSize(BytesRead + Available);'#010+
+ ' n := P.Stderr.Read((ConsoleOutput.Memory + BytesRead)^, availa'+
+ 'ble);'#010+
+ ' end'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' available:=','P.Output.NumBytesAvailable;'#010+
+ ' // make sure we have room'#010+
+ ' if (bytesRead + Available > ConsoleOutput.Size) then'#010+
+ ' ConsoleOutput.SetSize(BytesRead + Available);'#010+
+ ' n := P.Output.Read((ConsoleOutput.Memory + BytesRead)','^, avai'+
+ 'lable);'#010+
+ ' end;'#010+
+ ' if n > 0 then'#010+
+ ' begin'#010+
+ ' Inc(BytesRead, n);'#010+
+ #010+
+ ' sLine := '#039#039';'#010+
+ ' BuffPos := ConsoleOutput.Position;'#010+
+ #010+
+ ' //read lines from the stream'#010+
+ ' repeat'#010+
+ ' ConsoleOutput.Read(ch,1);'#010+
+ #010+
+ ' if ch in',' [#10, #13] then'#010+
+ ' begin'#010+
+ ' if Verbose then'#010+
+ ' installer.log(vlInfo,sLine)'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' for msg := Low(TMessages) to High(TMessages) do'#010+
+ ' begin'#010+
+ ' snum := Form','at('#039'(%d)'#039', [MsgNum[msg]]);'#010+
+ ' ipos := Pos(snum, sLine);'#010+
+ ' if ipos = 1 then'#010+
' installer.log(vlCommand,'#039' '#039'+ Copy(sLine'+
- ', ipos + Length(snum), Length(sLine) - ipos - Length(snum) + 1));'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' if (LineEnding=#13#10) and (ch=#13)',' and'#013#010+
- ' (ConsoleOutput.Position<BytesRead) then'#013#010+
- ' begin'#013#010+
- ' ConsoleOutput.Read(ch,1);'#013#010+
- ' if ch=#10 then'#013#010+
- ' sLine:='#039#039#013#010+
- ' else'#013#010+
- ' sLine:=ch;'#013#010+
- ' end',#013#010+
- ' else'#013#010+
- ' sLine := '#039#039';'#013#010+
- ' BuffPos := ConsoleOutput.Position;'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' sLine := sLine + ch;'#013#010+
- #013#010+
- ' until ConsoleOutput.Position >= BytesRead;'#013#010+
- #013#010+
- ' ConsoleOutput.Position := BuffP','os;'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' // no data, wait 100 ms'#013#010+
- ' Sleep(100);'#013#010+
- ' end;'#013#010+
- #013#010+
- ' Result := n;'#013#010+
- ' end;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' result := -1;'#013#010+
- ' BytesRead := 0;'#013#010+
- ' P := TProcess.Create(nil);'#013#010+
- ' try'#013#010+
- ' P.CommandLine := Path + '#039' '#039' + C','omLine;'#013#010+
- ' if assigned(Env) then'#013#010+
- ' P.Environment.Assign(Env);'#013#010+
- #013#010+
- ' P.Options := [poUsePipes];'#013#010+
- #013#010+
- ' P.Execute;'#013#010+
- ' while P.Running do'#013#010+
- ' ReadFromStream(false);'#013#010+
- #013#010+
- ' // read last part'#013#010+
- ' repeat'#013#010+
- ' until ReadFromStream(fa','lse)=0;'#013#010+
- #013#010+
- ' // read stderr'#013#010+
- ' // JvdS: Note that this way stderr is added to the end of the stre'+
- 'am. But I'#013#010+
+ ', ipos + Length(snum), Length(sLine) - ipos - Length(snum) + 1));'#010+
+ ' ',' end;'#010+
+ ' end;'#010+
+ ' if (LineEnding=#13#10) and (ch=#13) and'#010+
+ ' (ConsoleOutput.Position<BytesRead) then'#010+
+ ' begin'#010+
+ ' ConsoleOutput.Read(ch,1);'#010+
+ ' if ch=#10 then'#010+
+ ' sLine:='#039,#039#010+
+ ' else'#010+
+ ' sLine:=ch;'#010+
+ ' end'#010+
+ ' else'#010+
+ ' sLine := '#039#039';'#010+
+ ' BuffPos := ConsoleOutput.Position;'#010+
+ ' end'#010+
+ ' else'#010+
+ ' sLine := sLine + ch;'#010+
+ #010+
+ ' until ConsoleOutput.Position',' >= BytesRead;'#010+
+ #010+
+ ' ConsoleOutput.Position := BuffPos;'#010+
+ ' end;'#010+
+ #010+
+ ' Result := n;'#010+
+ ' end;'#010+
+ #010+
+ 'begin'#010+
+ ' result := -1;'#010+
+ ' BytesRead := 0;'#010+
+ ' P := TProcess.Create(nil);'#010+
+ ' try'#010+
+ ' P.CommandLine := Path + '#039' '#039' + ComLine;'#010+
+ ' if assigned(Env) then'#010+
+ ' ',' P.Environment.Assign(Env);'#010+
+ #010+
+ ' P.Options := [poUsePipes];'#010+
+ #010+
+ ' P.Execute;'#010+
+ ' while P.Running do'#010+
+ ' begin'#010+
+ ' // Only call ReadFromStream if Data from corresponding stream'#010+
+ ' // is already available, otherwise, on linux, the',' read call'+
+ #010+
+ ' // is blocking, and thus it is not possible to be sure to hand'+
+ 'le'#010+
+ ' // big data amounts bboth on output and stderr pipes. PM.'#010+
+ ' if P.Output.NumBytesAvailable > 0 then'#010+
+ ' ReadFromStream(false)'#010+
+ ' els','e if P.StdErr.NumBytesAvailable > 0 then'#010+
+ ' ReadFromStream(true)'#010+
+ ' else'#010+
+ ' // no data, wait 100 ms'#010+
+ ' Sleep(100);'#010+
+ ' end;'#010+
+ #010+
+ ' // read last part'#010+
+ ' repeat'#010+
+ ' until ReadFromStream(false)=0;'#010+
+ #010+
+ ' // read stderr'#010+
+ ' ',' // JvdS: Note that this way stderr is added to the end of the st'+
+ 'ream. But I'#010+
' // see no way showing the stderr output at the place it was actual'+
- 'ly written'#013#010+
- ' repeat'#013#010+
- ' until ReadFromStream(true)=0;'#013,#010+
- ' ConsoleOutput.SetSize(BytesRead);'#013#010+
- #013#010+
- ' result := P.ExitStatus;'#013#010+
- ' finally'#013#010+
- ' P.Free;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- '{$endif HAS_UNIT_PROCESS}'#013#010+
- #013#010+
- 'function IsDirectoryEmpty(const directory : string) : boolean;'#013#010+
- 'var'#013#010+
- ' searchRec: TSearchRec;'#013#010+
- ' Searc','hResult: longint;'#013#010+
- 'begin'#013#010+
- ' result := true;'#013#010+
- ' SearchResult := FindFirst(IncludeTrailingPathDelimiter(directory)+Al'+
- 'lFilesMask, faAnyFile+faSymLink, searchRec);'#013#010+
- ' try'#013#010+
- ' while SearchResult=0 do'#013#010+
- ' begin'#013#010+
- ' if (searchRec.Name<>'#039'.',#039') and (searchRec.Name<>'#039'..'#039+
- ') then'#013#010+
- ' begin'#013#010+
- ' result := false;'#013#010+
- ' break;'#013#010+
- ' end;'#013#010+
- ' SearchResult := FindNext(searchRec);'#013#010+
- ' end;'#013#010+
- ' finally'#013#010+
- ' FindClose(searchRec);'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'funct','ion ParsecompilerOutput(M: TMemoryStream; Verbose: boolean): st'+
- 'ring;'#013#010+
- 'type'#013#010+
+ 'ly written'#010+
+ ' repeat'#010+
+ ' until ReadFromStream(true)=0;'#010+
+ ' ConsoleOutput.SetSize(BytesRead);',#010+
+ #010+
+ ' result := P.ExitStatus;'#010+
+ ' finally'#010+
+ ' P.Free;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ '{$endif HAS_UNIT_PROCESS}'#010+
+ #010+
+ 'function IsDirectoryEmpty(const directory : string) : boolean;'#010+
+ 'var'#010+
+ ' searchRec: TSearchRec;'#010+
+ ' SearchResult: longint;'#010+
+ 'begin'#010+
+ ' result := true;'#010+
+ ' Search','Result := FindFirst(IncludeTrailingPathDelimiter(directory)+'+
+ 'AllFilesMask, faAnyFile+faSymLink, searchRec);'#010+
+ ' try'#010+
+ ' while SearchResult=0 do'#010+
+ ' begin'#010+
+ ' if (searchRec.Name<>'#039'.'#039') and (searchRec.Name<>'#039'..'#039+
+ ') then'#010+
+ ' begin'#010+
+ ' ',' result := false;'#010+
+ ' break;'#010+
+ ' end;'#010+
+ ' SearchResult := FindNext(searchRec);'#010+
+ ' end;'#010+
+ ' finally'#010+
+ ' sysutils.FindClose(searchRec);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ 'function ParsecompilerOutput(M: TMemoryStream; Verbose: boolean):',' st'+
+ 'ring;'#010+
+ 'type'#010+
' TParseCompilerOutputState = (cosBeginOfLine, cosSearchColon, cosPars'+
- 'eNumber, cosOther);'#013#010+
- #013#010+
- 'var'#013#010+
- ' presult: pchar;'#013#010+
- ' state: TParseCompilerOutputState;'#013#010+
- ' ch: char',';'#013#010+
- ' eolchar: char;'#013#010+
- 'begin'#013#010+
- ' m.Seek(0, soBeginning);'#013#010+
- ' setlength(Result,M.Size);'#013#010+
- #013#010+
- ' if verbose then'#013#010+
- ' begin'#013#010+
- ' m.Read(Result[1],M.Size);'#013#010+
- ' Exit;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' presult := @Result[1];'#013#010+
- ' eolchar := RightStr(LineEnding,1)[1];'#013,#010+
- ' m.Seek(0,soBeginning);'#013#010+
- ' state := cosBeginOfLine;'#013#010+
- ' while m.Position<m.Size do'#013#010+
- ' begin'#013#010+
- ' ch := char(m.ReadByte);'#013#010+
- ' case state of'#013#010+
- ' cosBeginOfLine:'#013#010+
- ' begin'#013#010+
- ' if ch='#039'('#039' then'#013#010+
- ' state :=',' cosParseNumber'#013#010+
- ' else if ch='#039' '#039' then'#013#010+
- ' begin'#013#010+
- ' presult^ := ch;'#013#010+
- ' inc(presult);'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' presult^ := ch;'#013#010+
- ' ',' inc(presult);'#013#010+
- ' state := cosSearchColon;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' cosParseNumber:'#013#010+
- ' begin'#013#010+
- ' if ch='#039')'#039' then'#013#010+
- ' begin'#013#010+
- ' state := cosOther;'#013#010+
- ' // Omi','t the space behind the number'#013#010+
- ' ch := char(m.ReadByte);'#013#010+
- ' assert(ch='#039' '#039');'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' cosOther:'#013#010+
- ' begin'#013#010+
- ' presult^ := ch;'#013#010+
- ' inc(presult);'#013#010+
- ' ',' if ch=eolchar then'#013#010+
- ' state := cosBeginOfLine;'#013#010+
- ' end;'#013#010+
- ' cosSearchColon:'#013#010+
- ' begin'#013#010+
- ' presult^ := ch;'#013#010+
- ' inc(presult);'#013#010+
- ' if (ch='#039':'#039') or (ch=eolchar) then'#013#010+
- ' state',' := cosBeginOfLine;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' setlength(Result,presult-@result[1]);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Function QuoteXML(S : String) : string;'#013#010+
- #013#010+
- ' Procedure W(Var J : Integer; Var R : String; T : String);'#013#010+
- ' Var'#013#010+
- ' I: integer;'#013#010+
- ' be','gin'#013#010+
- ' If J+Length(T)>Length(R) then'#013#010+
- ' SetLength(R,J+Length(T));'#013#010+
- ' For I:=1 to Length(t) do'#013#010+
- ' begin'#013#010+
- ' R[J]:=T[i];'#013#010+
- ' If I<Length(T) then'#013#010+
- ' Inc(J);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- 'const'#013#010+
- ' QuotStr = '#039'&quot;'#039';'#013#010+
- ' AmpStr ','= '#039'&amp;'#039';'#013#010+
- ' ltStr = '#039'&lt;'#039';'#013#010+
- ' gtStr = '#039'&gt;'#039';'#013#010+
- 'Var'#013#010+
- ' I,J : Integer;'#013#010+
- 'begin'#013#010+
- ' SetLength(Result,Length(S));'#013#010+
- ' J:=0;'#013#010+
- ' For I:=1 to Length(S) do'#013#010+
- ' begin'#013#010+
- ' Inc(J);'#013#010+
- ' case S[i] of'#013#010+
- ' '#039'"'#039': W(j,Result,QuotStr);'#013#010+
- ' '#039'&'#039': W(J,R','esult,AmpStr);'#013#010+
- ' '#039'<'#039': W(J,Result,ltStr);'#013#010+
- ' '#039'>'#039': W(J,Result,gtStr);'#013#010+
+ 'eNumber, cosOther);'#010+
+ #010+
+ 'var'#010+
+ ' presult: pchar;'#010+
+ ' state: TParseCompilerOutputState;'#010+
+ ' ch: char;'#010+
+ ' eolchar: char;'#010+
+ 'begin'#010+
+ ' m.Seek(0, soBeginning);'#010+
+ ' setlength(Resu','lt,M.Size);'#010+
+ #010+
+ ' if verbose then'#010+
+ ' begin'#010+
+ ' m.Read(Result[1],M.Size);'#010+
+ ' Exit;'#010+
+ ' end;'#010+
+ #010+
+ ' presult := @Result[1];'#010+
+ ' eolchar := RightStr(LineEnding,1)[1];'#010+
+ ' m.Seek(0,soBeginning);'#010+
+ ' state := cosBeginOfLine;'#010+
+ ' while m.Position<m.Size do',#010+
+ ' begin'#010+
+ ' ch := char(m.ReadByte);'#010+
+ ' case state of'#010+
+ ' cosBeginOfLine:'#010+
+ ' begin'#010+
+ ' if ch='#039'('#039' then'#010+
+ ' state := cosParseNumber'#010+
+ ' else if ch='#039' '#039' then'#010+
+ ' begin'#010+
+ ' presul','t^ := ch;'#010+
+ ' inc(presult);'#010+
+ ' end'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' presult^ := ch;'#010+
+ ' inc(presult);'#010+
+ ' state := cosSearchColon;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' ','cosParseNumber:'#010+
+ ' begin'#010+
+ ' if ch='#039')'#039' then'#010+
+ ' begin'#010+
+ ' state := cosOther;'#010+
+ ' // Omit the space behind the number'#010+
+ ' ch := char(m.ReadByte);'#010+
+ ' assert(ch='#039' '#039');'#010+
+ ' ',' end;'#010+
+ ' end;'#010+
+ ' cosOther:'#010+
+ ' begin'#010+
+ ' presult^ := ch;'#010+
+ ' inc(presult);'#010+
+ ' if ch=eolchar then'#010+
+ ' state := cosBeginOfLine;'#010+
+ ' end;'#010+
+ ' cosSearchColon:'#010+
+ ' begin'#010+
+ ' ',' presult^ := ch;'#010+
+ ' inc(presult);'#010+
+ ' if (ch='#039':'#039') or (ch=eolchar) then'#010+
+ ' state := cosBeginOfLine;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' setlength(Result,presult-@result[1]);'#010+
+ 'end;'#010+
+ #010+
+ 'Function QuoteXML(S : St','ring) : string;'#010+
+ #010+
+ ' Procedure W(Var J : Integer; Var R : String; T : String);'#010+
+ ' Var'#010+
+ ' I: integer;'#010+
+ ' begin'#010+
+ ' If J+Length(T)>Length(R) then'#010+
+ ' SetLength(R,J+Length(T));'#010+
+ ' For I:=1 to Length(t) do'#010+
+ ' begin'#010+
+ ' R[J]:=T[i];'#010+
+ ' If',' I<Length(T) then'#010+
+ ' Inc(J);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ 'const'#010+
+ ' QuotStr = '#039'&quot;'#039';'#010+
+ ' AmpStr = '#039'&amp;'#039';'#010+
+ ' ltStr = '#039'&lt;'#039';'#010+
+ ' gtStr = '#039'&gt;'#039';'#010+
+ 'Var'#010+
+ ' I,J : Integer;'#010+
+ 'begin'#010+
+ ' SetLength(Result,Length(S));'#010+
+ ' J:=0;'#010+
+ ' For I:=1 to Length(S) do'#010+
+ ' begin'#010,
+ ' Inc(J);'#010+
+ ' case S[i] of'#010+
+ ' '#039'"'#039': W(j,Result,QuotStr);'#010+
+ ' '#039'&'#039': W(J,Result,AmpStr);'#010+
+ ' '#039'<'#039': W(J,Result,ltStr);'#010+
+ ' '#039'>'#039': W(J,Result,gtStr);'#010+
' // Escape whitespace using CharRefs to be consistent with W3 spe'+
- 'c X 3.3.3'#013#010+
- ' #9: w(J,Result,'#039'&#x9;'#039');'#013#010+
- '{ #10: wrtStr('#039'&#xA;'#039');'#013#010+
- ' #13: wrtStr','('#039'&#xD;'#039');}'#013#010+
- ' else'#013#010+
- ' Result[J]:=S[i];'#013#010+
- ' end;'#013#010+
- ' If (J=Length(Result)) and (I<Length(S)) then'#013#010+
- ' SetLength(Result,J+Length(S)-I);'#013#010+
- ' end;'#013#010+
- ' If J<>Length(Result) then'#013#010+
- ' SetLength(Result,J);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function maybequot','ed(const s:string):string;'#013#010+
- 'const'#013#010+
- ' {$IF DEFINED(MSWINDOWS) OR DEFINED(AMIGA) OR DEFINED(MORPHOS)}'#013#010+
+ 'c X 3.3.3'#010+
+ ' #','9: w(J,Result,'#039'&#x9;'#039');'#010+
+ '{ #10: wrtStr('#039'&#xA;'#039');'#010+
+ ' #13: wrtStr('#039'&#xD;'#039');}'#010+
+ ' else'#010+
+ ' Result[J]:=S[i];'#010+
+ ' end;'#010+
+ ' If (J=Length(Result)) and (I<Length(S)) then'#010+
+ ' SetLength(Result,J+Length(S)-I);'#010+
+ ' end;'#010+
+ ' If J<>Length(Resu','lt) then'#010+
+ ' SetLength(Result,J);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function maybequoted(const s:string):string;'#010+
+ 'const'#010+
+ ' {$IF DEFINED(MSWINDOWS) OR DEFINED(AMIGA) OR DEFINED(MORPHOS) OR DEF'+
+ 'INED(AROS)}'#010+
' FORBIDDEN_CHARS = ['#039'!'#039', '#039'@'#039', '#039'#'#039', '#039'$'#039+
- ', '#039'%'#039', '#039'^'#039', '#039'&'#039', '#039'*'#039', '#039'('#039', '#039+
- ')'#039','#013#010+
+ ', '#039'%'#039', '#039'^'#039', '#039'&'#039', '#039'*'#039', '#039'('#039,', '#039+
+ ')'#039','#010+
' '#039'{'#039', '#039'}'#039', '#039#039#039#039', '#039'`'+
- #039', '#039'~'#039'];'#013#010+
- ' {$ELSE}'#013#010+
- ' ',' FORBIDDEN_CHARS = ['#039'!'#039', '#039'@'#039', '#039'#'#039', '#039'$'+
- #039', '#039'%'#039', '#039'^'#039', '#039'&'#039', '#039'*'#039', '#039'('#039', '+
- #039')'#039','#013#010+
+ #039', '#039'~'#039'];'#010+
+ ' {$ELSE}'#010+
+ ' FORBIDDEN_CHARS = ['#039'!'#039', '#039'@'#039', '#039'#'#039', '#039'$'#039+
+ ', '#039'%'#039', '#039'^'#039', '#039'&'#039', '#039'*'#039', '#039'('#039', '#039+
+ ')'#039','#010+
' '#039'{'#039', '#039'}'#039', '#039#039#039#039', '#039':'+
- #039', '#039'\'#039', '#039'`'#039', '#039'~'#039'];'#013#010+
- ' {$ENDIF}'#013#010+
- 'var'#013#010+
- ' s1 : string;'#013#010+
- ' i : integer;'#013#010+
- ' quoted : boolean;'#013#010+
- 'begin'#013#010+
- ' quoted:=false;'#013#010+
- ' s1:='#039'"'#039';'#013#010,
- ' for i:=1 to length(s) do'#013#010+
- ' begin'#013#010+
- ' case s[i] of'#013#010+
- ' '#039'"'#039' :'#013#010+
- ' begin'#013#010+
- ' quoted:=true;'#013#010+
- ' s1:=s1+'#039'\"'#039';'#013#010+
- ' end;'#013#010+
- ' '#039' '#039','#013#010+
- ' #128..#255 :'#013#010+
- ' begin'#013#010+
- ' quoted:=true;'#013#010+
- ' ','s1:=s1+s[i];'#013#010+
- ' end;'#013#010+
- ' else begin'#013#010+
- ' if s[i] in FORBIDDEN_CHARS then'#013#010+
- ' quoted:=True;'#013#010+
- ' s1:=s1+s[i];'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' if quoted then'#013#010+
- ' maybequoted:=s1+'#039'"'#039#013#010+
- ' else'#013#010+
- ' maybequoted:=','s;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure ReadIniFile(Const AFileName: String;L:TStrings);'#013#010+
- 'Var'#013#010+
- ' F : TFileStream;'#013#010+
- ' Line : String;'#013#010+
- ' I,P,PC : Integer;'#013#010+
- 'begin'#013#010+
- ' // On some file systems and when using a large number of parallel ma'+
- 'ke'#013#010+
- ' // processes, the l','ock from the creation of the ini file may not y'+
- 'et'#013#010+
- ' // have been released even though the file has been closed already'#013+
- #010+
- ' F:=TFileStream.Create(AFileName,fmOpenRead or fmShareDenyNone);'#013#010+
- ' Try'#013#010+
- ' L.LoadFromStream(F);'#013#010+
- ' // Fix lines.'#013#010,
- ' For I:=L.Count-1 downto 0 do'#013#010+
- ' begin'#013#010+
- ' Line:=L[I];'#013#010+
- ' P:=Pos('#039'='#039',Line);'#013#010+
- ' PC:=Pos('#039';'#039',Line); // Comment line.'#013#010+
- ' If (P=0) or ((PC<>0) and (PC<P)) then'#013#010+
- ' L.Delete(I)'#013#010+
- ' else'#013#010+
- ' L[i]:','=Trim(System.Copy(Line,1,P-1)+'#039'='#039'+Trim(System'+
- '.Copy(Line,P+1,Length(Line)-P)));'#013#010+
- ' end;'#013#010+
- ' Finally'#013#010+
- ' F.Free;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '// Callback for Sysutils getapplicationname.'#013#010+
- 'Function GetFPMakeName : String;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' Result:='#039'fpmake',#039';'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function CurrentOS : String;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' Result:=OSToString(Defaults.OS);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Function CurrentCPU : String;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' Result:=CPUToString(Defaults.CPU);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Function OSToString(OS: TOS) : String;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' Result',':=LowerCase(GetenumName(TypeInfo(TOS),Ord(OS)));'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Function OSesToString(OSes: TOSes) : String;'#013#010+
- #013#010+
- 'var'#013#010+
- ' i: TOS;'#013#010+
- ' Tmp: String;'#013#010+
- ' First: boolean;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' { can'#039't use SetToString, there are more than 32 OSes }'#013#010+
- ' First:=true;'#013#010,
- ' for i in OSes do'#013#010+
- ' begin'#013#010+
- ' if not First then'#013#010+
- ' Result:=Result+'#039','#039#013#010+
- ' else'#013#010+
- ' First:=false;'#013#010+
- ' Str(i,Tmp);'#013#010+
- ' Result:=Result+Tmp;'#013#010+
- ' end;'#013#010+
- ' Result:=LowerCase(Tmp);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Function CPUToString(CPU: TCPU',') : String;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' Result:=LowerCase(GetenumName(TypeInfo(TCPU),Ord(CPU)));'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Function CPUSToString(CPUS: TCPUS) : String;'#013#010+
- #013#010+
- 'begin'#013#010+
+ #039', '#039'\'#039', '#039'`'#039', '#039'~'#039'];'#010+
+ ' {$ENDIF}'#010+
+ 'var'#010+
+ ' s1 : string;'#010+
+ ' i : int','eger;'#010+
+ ' quoted : boolean;'#010+
+ 'begin'#010+
+ ' quoted:=false;'#010+
+ ' s1:='#039'"'#039';'#010+
+ ' for i:=1 to length(s) do'#010+
+ ' begin'#010+
+ ' case s[i] of'#010+
+ ' '#039'"'#039' :'#010+
+ ' begin'#010+
+ ' quoted:=true;'#010+
+ ' s1:=s1+'#039'\"'#039';'#010+
+ ' end;'#010+
+ ' '#039' '#039','#010+
+ ' #128..#255 :'#010+
+ ' ',' begin'#010+
+ ' quoted:=true;'#010+
+ ' s1:=s1+s[i];'#010+
+ ' end;'#010+
+ ' else begin'#010+
+ ' if s[i] in FORBIDDEN_CHARS then'#010+
+ ' quoted:=True;'#010+
+ ' s1:=s1+s[i];'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' if quoted then'#010+
+ ' maybequo','ted:=s1+'#039'"'#039#010+
+ ' else'#010+
+ ' maybequoted:=s;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure ReadIniFile(Const AFileName: String;L:TStrings);'#010+
+ 'Var'#010+
+ ' F : TFileStream;'#010+
+ ' Line : String;'#010+
+ ' I,P,PC : Integer;'#010+
+ 'begin'#010+
+ ' // On some file systems and when using a large number of parallel m',
+ 'ake'#010+
+ ' // processes, the lock from the creation of the ini file may not yet'+
+ #010+
+ ' // have been released even though the file has been closed already'#010+
+ ' F:=TFileStream.Create(AFileName,fmOpenRead or fmShareDenyNone);'#010+
+ ' Try'#010+
+ ' L.LoadFromStream(F);',#010+
+ ' // Fix lines.'#010+
+ ' For I:=L.Count-1 downto 0 do'#010+
+ ' begin'#010+
+ ' Line:=L[I];'#010+
+ ' P:=Pos('#039'='#039',Line);'#010+
+ ' PC:=Pos('#039';'#039',Line); // Comment line.'#010+
+ ' If (P=0) or ((PC<>0) and (PC<P)) then'#010+
+ ' L.Delete(I)'#010+
+ ' else'#010+
+ ' ',' L[i]:=Trim(System.Copy(Line,1,P-1)+'#039'='#039'+Trim(System'+
+ '.Copy(Line,P+1,Length(Line)-P)));'#010+
+ ' end;'#010+
+ ' Finally'#010+
+ ' F.Free;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '// Callback for Sysutils getapplicationname.'#010+
+ 'Function GetFPMakeName : String;'#010+
+ #010+
+ 'begin'#010+
+ ' Result:='#039'fpmake'#039,';'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function CurrentOS : String;'#010+
+ #010+
+ 'begin'#010+
+ ' Result:=OSToString(Defaults.OS);'#010+
+ 'end;'#010+
+ #010+
+ 'Function CurrentCPU : String;'#010+
+ #010+
+ 'begin'#010+
+ ' Result:=CPUToString(Defaults.CPU);'#010+
+ 'end;'#010+
+ #010+
+ 'Function OSToString(OS: TOS) : String;'#010+
+ #010+
+ 'begin'#010+
+ ' Result:=LowerCase(GetenumN','ame(TypeInfo(TOS),Ord(OS)));'#010+
+ 'end;'#010+
+ #010+
+ 'Function OSesToString(OSes: TOSes) : String;'#010+
+ #010+
+ 'var'#010+
+ ' i: TOS;'#010+
+ ' Tmp: String;'#010+
+ ' First: boolean;'#010+
+ #010+
+ 'begin'#010+
+ ' { can'#039't use SetToString, there are more than 32 OSes }'#010+
+ ' First:=true;'#010+
+ ' Result:='#039#039';'#010+
+ ' for i in OSes do'#010,
+ ' begin'#010+
+ ' if not First then'#010+
+ ' Result:=Result+'#039','#039#010+
+ ' else'#010+
+ ' First:=false;'#010+
+ ' Str(i,Tmp);'#010+
+ ' Result:=Result+Tmp;'#010+
+ ' end;'#010+
+ ' Result:=LowerCase(Result);'#010+
+ 'end;'#010+
+ #010+
+ 'Function CPUToString(CPU: TCPU) : String;'#010+
+ #010+
+ 'begin'#010+
+ ' Result:','=LowerCase(GetenumName(TypeInfo(TCPU),Ord(CPU)));'#010+
+ 'end;'#010+
+ #010+
+ 'Function CPUSToString(CPUS: TCPUS) : String;'#010+
+ #010+
+ 'begin'#010+
' Result:=LowerCase(SetToString(PTypeInfo(TypeInfo(TCPUS)),Integer(CPU'+
- 'S),False));'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Func','tion StringToOS(const S : String) : TOS;'#013#010+
- #013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' I:=GetEnumValue(TypeInfo(TOS),S);'#013#010+
- ' if (I=-1) then'#013#010+
- ' Raise EInstallerError.CreateFmt(SErrInvalidOS,[S]);'#013#010+
- ' Result:=TOS(I);'#013#010+
- 'end;'#013#010+
- #013#010+
- '(*'#013#010+
- 'Function StringToOSes(c','onst S : String) : TOSes;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' Result:=TOSes(StringToSet(PTypeInfo(TypeInfo(TOSes)),S));'#013#010+
- 'end;'#013#010+
- '*)'#013#010+
- #013#010+
- 'function IsDifferentFromBuild(ACpu: TCPU; AOs: TOs): boolean;'#013#010+
- 'begin'#013#010+
- ' result := (AOs<>Defaults.BuildOS) or (ACpu<>Defaults.BuildC','PU);'#013+
- #010+
- 'end;'#013#010+
- #013#010+
- 'Function StringToCPU(const S : String) : TCPU;'#013#010+
- #013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' I:=GetEnumValue(TypeInfo(TCPU),S);'#013#010+
- ' if (I=-1) then'#013#010+
- ' Raise EInstallerError.CreateFmt(SErrInvalidCPU,[S]);'#013#010+
- ' Result:=TCPU(I);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Func','tion StringToCPUS(const S : String) : TCPUS;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' Result:=TCPUS(StringToSet(PTypeInfo(TypeInfo(TCPUS)),S));'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Function ModeToString(Mode: TCompilerMode) : String;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' Result:=LowerCase(GetenumName(TypeInfo(TCompilerMod','e),Ord(Mode)));'+
- #013#010+
- ' Delete(Result,1,2);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Function StringToMode(const S : String) : TCompilerMode;'#013#010+
- #013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' I:=GetEnumValue(TypeInfo(TCompilerMode),S);'#013#010+
- ' if (I=-1) then'#013#010+
- ' Raise EInstallerError.CreateFmt(S','ErrInvalidMode,[S]);'#013#010+
- ' Result:=TCompilerMode(I);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function MakeTargetString(CPU : TCPU;OS: TOS) : String;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' if OS in AllLimit83fsOses then'#013#010+
- ' Result := OSToString(OS)'#013#010+
- ' else'#013#010+
- ' Result:=CPUToString(CPU)+'#039'-'#039'+OSToStri','ng(OS);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Procedure StringToCPUOS(const S : String; Var CPU : TCPU; Var OS: TOS)'+
- ';'#013#010+
- #013#010+
- 'Var'#013#010+
- ' P : integer;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' P:=Pos('#039'-'#039',S);'#013#010+
- ' If (P=0) then'#013#010+
- ' Raise EInstallerError.CreateFmt(SErrInvalidTarget,[S]);'#013#010+
- ' CPU:=StringToCPU(Cop','y(S,1,P-1));'#013#010+
- ' OS:=StringToOs(Copy(S,P+1,Length(S)-P));'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Procedure ResolveDependencies(L : TDependencies; P : TNamedCollection)'+
- ';'#013#010+
- 'Var'#013#010+
- ' I,J : Integer;'#013#010+
- ' C : TDependency;'#013#010+
- 'begin'#013#010+
- ' If Assigned(L) then'#013#010+
- ' For I:=0 to L.Count-1 ','do'#013#010+
- ' begin'#013#010+
- ' C:=L[i];'#013#010+
- ' if C.DependencyType in [depPackage,depUnit] then'#013#010+
- ' begin'#013#010+
- ' J:=P.IndexOfName(C.Value);'#013#010+
- ' If J<>-1 then'#013#010+
- ' C.Target:=P.Items[J];'#013#010+
- ' end;'#013#010+
- ' end;',#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function AddConditionalStrings(APackage: TPackage; Dest : TStrings; Sr'+
- 'c : TConditionalStrings;ACPU:TCPU;AOS:TOS; Const APrefix : String='#039+
- #039') : Integer ;'#013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- ' C : TConditionalString;'#013#010+
- ' D : TPackageDictionary;'#013#010,
- ' S : String;'#013#010+
- 'begin'#013#010+
- ' Result:=0;'#013#010+
- ' D := PackageDictionaryClass.Create(nil);'#013#010+
- ' D.MasterDictionary := APackage.Dictionary;'#013#010+
- ' try'#013#010+
- ' D.AddVariable('#039'CPU'#039',CPUToString(ACPU));'#013#010+
- ' D.AddVariable('#039'OS'#039',OSToString(AOS));'#013#010+
- ' For I:=0 to Src.','Count-1 do'#013#010+
- ' begin'#013#010+
- ' C:=Src[I];'#013#010+
- ' if (ACPU in C.CPUs) and (AOS in C.OSes) then'#013#010+
- ' begin'#013#010+
- ' If (APrefix<>'#039#039') then'#013#010+
- ' S:=APrefix+C.Value'#013#010+
- ' else'#013#010+
- ' S:=C.Value;'#013#010+
- ' ',' S := D.ReplaceStrings(s);'#013#010+
- ' if C is TConditionalDestString then'#013#010+
- ' begin'#013#010+
- ' // If a destination path is given, omit the path of th'+
- 'e sourcefile'#013#010+
- ' if TConditionalDestString(c).DestPath='#039#039' ','then'#013+
+ 'S),False));'#010+
+ 'end;'#010+
+ #010+
+ 'Function StringToOS(const S : String) : TOS;',#010+
+ #010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ #010+
+ 'begin'#010+
+ ' I:=GetEnumValue(TypeInfo(TOS),S);'#010+
+ ' if (I=-1) then'#010+
+ ' Raise EInstallerError.CreateFmt(SErrInvalidOS,[S]);'#010+
+ ' Result:=TOS(I);'#010+
+ 'end;'#010+
+ #010+
+ '(*'#010+
+ 'Function StringToOSes(const S : String) : TOSes;'#010+
+ #010+
+ 'begin'#010+
+ ' Result:=TOSes(Stri','ngToSet(PTypeInfo(TypeInfo(TOSes)),S));'#010+
+ 'end;'#010+
+ '*)'#010+
+ #010+
+ 'function IsDifferentFromBuild(ACpu: TCPU; AOs: TOs): boolean;'#010+
+ 'begin'#010+
+ ' result := (AOs<>Defaults.BuildOS) or (ACpu<>Defaults.BuildCPU);'#010+
+ 'end;'#010+
+ #010+
+ 'Function StringToCPU(const S : String) : TCPU;'#010+
+ #010+
+ 'Var',#010+
+ ' I : Integer;'#010+
+ #010+
+ 'begin'#010+
+ ' I:=GetEnumValue(TypeInfo(TCPU),S);'#010+
+ ' if (I=-1) then'#010+
+ ' Raise EInstallerError.CreateFmt(SErrInvalidCPU,[S]);'#010+
+ ' Result:=TCPU(I);'#010+
+ 'end;'#010+
+ #010+
+ 'Function StringToCPUS(const S : String) : TCPUS;'#010+
+ #010+
+ 'begin'#010+
+ ' Result:=TCPUS(StringToS','et(PTypeInfo(TypeInfo(TCPUS)),S));'#010+
+ 'end;'#010+
+ #010+
+ 'Function ModeToString(Mode: TCompilerMode) : String;'#010+
+ #010+
+ 'begin'#010+
+ ' Result:=LowerCase(GetenumName(TypeInfo(TCompilerMode),Ord(Mode)));'#010+
+ ' Delete(Result,1,2);'#010+
+ 'end;'#010+
+ #010+
+ 'Function StringToMode(const S : String) : ','TCompilerMode;'#010+
+ #010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ #010+
+ 'begin'#010+
+ ' I:=GetEnumValue(TypeInfo(TCompilerMode),S);'#010+
+ ' if (I=-1) then'#010+
+ ' Raise EInstallerError.CreateFmt(SErrInvalidMode,[S]);'#010+
+ ' Result:=TCompilerMode(I);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function MakeTargetString(CPU : TCPU;OS: T','OS;ALimit83: boolean) : St'+
+ 'ring;'#010+
+ #010+
+ 'begin'#010+
+ ' if ALimit83 then'#010+
+ ' Result := OSToString(OS)'#010+
+ ' else'#010+
+ ' Result:=CPUToString(CPU)+'#039'-'#039'+OSToString(OS);'#010+
+ 'end;'#010+
+ #010+
+ 'Function MakeTargetString(CPU : TCPU;OS: TOS) : String;'#010+
+ #010+
+ 'begin'#010+
+ ' Result := MakeTargetString',' (CPU, OS,'#010+
+ ' (Defaults.BuildOS in AllLimit83fsOses) or (OS in AllLimit83'+
+ 'fsOses));'#010+
+ 'end;'#010+
+ #010+
+ 'function MakeZipSuffix(CPU : TCPU;OS: TOS;ALimit83: boolean) : String;'+
+ #010+
+ #010+
+ 'begin'#010+
+ ' case OS of'#010+
+ ' go32v2: result := '#039'dos'#039';'#010+
+ ' watcom: result := '#039,'wat'#039';'#010+
+ ' os2: result := '#039'os2'#039';'#010+
+ ' emx: result := '#039'emx'#039';'#010+
+ ' osNone:'#010+
+ ' begin'#010+
+ ' if ALimit83 then'#010+
+ ' result := '#039'src'#039#010+
+ ' else'#010+
+ ' result := '#039'.source'#039#010+
+ ' end'#010+
+ ' else'#010+
+ ' result := '#039'.'#039' + MakeTargetString(CPU,',' OS, ALimit83);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ 'function MakeZipSuffix(CPU : TCPU;OS: TOS) : String;'#010+
+ #010+
+ 'begin'#010+
+ ' Result := MakeZipSuffix (CPU, OS,'#010+
+ ' (Defaults.BuildOS in AllLimit83fsOses) or (OS in AllLimit83'+
+ 'fsOses));'#010+
+ 'end;'#010+
+ #010+
+ 'Procedure StringToCPUOS(const',' S : String; Var CPU : TCPU; Var OS: TO'+
+ 'S);'#010+
+ #010+
+ 'Var'#010+
+ ' P : integer;'#010+
+ #010+
+ 'begin'#010+
+ ' P:=Pos('#039'-'#039',S);'#010+
+ ' If (P=0) then'#010+
+ ' Raise EInstallerError.CreateFmt(SErrInvalidTarget,[S]);'#010+
+ ' CPU:=StringToCPU(Copy(S,1,P-1));'#010+
+ ' OS:=StringToOs(Copy(S,P+1,Length(S)-P));',#010+
+ 'end;'#010+
+ #010+
#010+
+ 'Procedure ResolveDependencies(L : TDependencies; P : TNamedCollection)'+
+ ';'#010+
+ 'Var'#010+
+ ' I,J : Integer;'#010+
+ ' C : TDependency;'#010+
+ 'begin'#010+
+ ' If Assigned(L) then'#010+
+ ' For I:=0 to L.Count-1 do'#010+
+ ' begin'#010+
+ ' C:=L[i];'#010+
+ ' if C.DependencyType in [de','pPackage,depUnit] then'#010+
+ ' begin'#010+
+ ' J:=P.IndexOfName(C.Value);'#010+
+ ' If J<>-1 then'#010+
+ ' C.Target:=P.Items[J];'#010+
+ ' end;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function AddConditionalStrings(APackage: TPackage; Dest : TStrings;',' '+
+ 'Src : TConditionalStrings;ACPU:TCPU;AOS:TOS; Const APrefix : String='#039+
+ #039') : Integer ;'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ ' C : TConditionalString;'#010+
+ ' D : TPackageDictionary;'#010+
+ ' S : String;'#010+
+ 'begin'#010+
+ ' Result:=0;'#010+
+ ' D := PackageDictionaryClass.Create(nil);'#010+
+ ' D.Mast','erDictionary := APackage.Dictionary;'#010+
+ ' try'#010+
+ ' D.AddVariable('#039'CPU'#039',CPUToString(ACPU));'#010+
+ ' D.AddVariable('#039'OS'#039',OSToString(AOS));'#010+
+ ' For I:=0 to Src.Count-1 do'#010+
+ ' begin'#010+
+ ' C:=Src[I];'#010+
+ ' if (ACPU in C.CPUs) and (AOS in C.OSes) th','en'#010+
+ ' begin'#010+
+ ' If (APrefix<>'#039#039') then'#010+
+ ' S:=APrefix+C.Value'#010+
+ ' else'#010+
+ ' S:=C.Value;'#010+
+ ' S := D.ReplaceStrings(s);'#010+
+ ' if C is TConditionalDestString then'#010+
+ ' begin'#010+
+ ' ',' // If a destination path is given, omit the path of '+
+ 'the sourcefile'#010+
+ ' if TConditionalDestString(c).DestPath='#039#039' then'#010+
' Dest.values[S] := D.ReplaceStrings(IncludeTrailingP'+
- 'athDelimiter(TConditionalDestString(c).DestPath))+S'#013#010+
- ' else'#013#010+
+ 'athDelimiter(TConditionalDestS','tring(c).DestPath))+S'#010+
+ ' else'#010+
' Dest.values[S] := D.ReplaceStrings(IncludeTrailingP'+
- 'athDelimiter(TCondi','tionalDestString(c).DestPath)+APrefix+ExtractFile'+
- 'Name(C.Value));'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' Dest.Add(S);'#013#010+
- ' Inc(Result);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' finally'#013#010+
- ' D.Free;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function File','ListToString(List : TStrings; const APrefix : String) :'+
- ' String;'#013#010+
- 'Var'#013#010+
- ' I : integer;'#013#010+
- ' S : String;'#013#010+
- 'begin'#013#010+
- ' Result:='#039#039';'#013#010+
- ' For I:=0 to List.Count-1 do'#013#010+
- ' begin'#013#010+
- ' If (I>0) then'#013#010+
- ' Result:=Result+'#039' '#039';'#013#010+
- ' S:=APrefix+List[i];',#013#010+
- ' If (Pos('#039' '#039',S)<>0) then'#013#010+
- ' S:='#039'"'#039'+S+'#039'"'#039';'#013#010+
- ' Result:=Result+S;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function FixPath (const APath : String) : String;'#013#010+
- 'begin'#013#010+
- ' Result := FixPath(APath, False);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function FixPath (const APath : Strin','g; AIsDir : Boolean) : String;'#013+
- #010+
- 'Var'#013#010+
- ' P : PChar;'#013#010+
- 'begin'#013#010+
- ' Result:=APath;'#013#010+
- ' If (result<>'#039#039') then'#013#010+
- ' begin'#013#010+
- ' UniqueString(Result);'#013#010+
- ' P:=PChar(Result);'#013#010+
- ' While (P^<>#0) do'#013#010+
- ' begin'#013#010+
- ' If P^ in ['#039'/'#039','#039'\'#039'] then'#013#010,
- ' P^:=PathDelim;'#013#010+
- ' Inc(P);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' if AIsDir and (Result <> '#039#039') then'#013#010+
- ' Result := IncludeTrailingPathDelimiter(Result);;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function IsRelativePath(const APath: String): boolean;'#013#010+
- 'begin'#013#010+
- ' if AP','ath='#039#039' then'#013#010+
- ' result := true'#013#010+
- '{$ifdef unix}'#013#010+
- ' else if APath[1] in AllowDirectorySeparators then'#013#010+
- ' result := false'#013#010+
- '{$else}'#013#010+
- ' else if ExtractFileDrive(APath)<>'#039#039' then'#013#010+
- ' result := false'#013#010+
- '{$endif}'#013#010+
- ' else'#013#010+
- ' result := true;'#013#010+
- 'end;'#013,#010+
- #013#010+
- 'procedure ChangeDir(const APath : String);'#013#010+
- 'begin'#013#010+
- ' if Not SetCurrentDir(APath) then'#013#010+
- ' Raise EInstallerError.CreateFmt(SErrChangeDirFailed,[APath]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure SearchFiles(const AFileName: string; Recursive: boolean; var'+
- ' Li','st: TStrings);'#013#010+
- #013#010+
+ 'athDelimiter(TConditionalDestString(c).DestPath)+APrefix+ExtractFileNa'+
+ 'me(C.Value));'#010+
+ ' end'#010+
+ ' else'#010+
+ ' ',' Dest.Add(S);'#010+
+ ' Inc(Result);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' finally'#010+
+ ' D.Free;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function FileListToString(List : TStrings; const APrefix : String) : S'+
+ 'tring;'#010+
+ 'Var'#010+
+ ' I : integer;'#010+
+ ' S : String;'#010+
+ 'begin'#010+
+ ' Result:='#039#039';'#010+
+ ' Fo','r I:=0 to List.Count-1 do'#010+
+ ' begin'#010+
+ ' If (I>0) then'#010+
+ ' Result:=Result+'#039' '#039';'#010+
+ ' S:=APrefix+List[i];'#010+
+ ' If (Pos('#039' '#039',S)<>0) then'#010+
+ ' S:='#039'"'#039'+S+'#039'"'#039';'#010+
+ ' Result:=Result+S;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function FixPath (const APath : String',') : String;'#010+
+ 'begin'#010+
+ ' Result := FixPath(APath, False);'#010+
+ 'end;'#010+
+ #010+
+ 'function FixPath (const APath : String; AIsDir : Boolean) : String;'#010+
+ 'Var'#010+
+ ' P : PChar;'#010+
+ 'begin'#010+
+ ' Result:=APath;'#010+
+ ' If (result<>'#039#039') then'#010+
+ ' begin'#010+
+ ' UniqueString(Result);'#010+
+ ' P:=PCh','ar(Result);'#010+
+ ' While (P^<>#0) do'#010+
+ ' begin'#010+
+ ' If P^ in ['#039'/'#039','#039'\'#039'] then'#010+
+ ' P^:=PathDelim;'#010+
+ ' Inc(P);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' if AIsDir and (Result <> '#039#039') then'#010+
+ ' Result := IncludeTrailingPathDelimiter(Result);'#010+
+ 'e','nd;'#010+
+ #010+
+ 'function IsRelativePath(const APath: String): boolean;'#010+
+ 'begin'#010+
+ ' if APath='#039#039' then'#010+
+ ' result := true'#010+
+ '{$ifdef unix}'#010+
+ ' else if APath[1] in AllowDirectorySeparators then'#010+
+ ' result := false'#010+
+ '{$else}'#010+
+ ' else if ExtractFileDrive(APath)<>'#039#039' then',#010+
+ ' result := false'#010+
+ '{$endif}'#010+
+ ' else'#010+
+ ' result := true;'#010+
+ 'end;'#010+
+ #010+
+ 'procedure ChangeDir(const APath : String);'#010+
+ 'begin'#010+
+ ' if Not SetCurrentDir(APath) then'#010+
+ ' Raise EInstallerError.CreateFmt(SErrChangeDirFailed,[APath]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure SearchFile','s(const AFileName: string; Recursive: boolean; v'+
+ 'ar List: TStrings);'#010+
+ #010+
' procedure AddRecursiveFiles(const SearchDir, FileMask: string; Recur'+
- 'sive: boolean);'#013#010+
- ' var'#013#010+
- ' Info : TSearchRec;'#013#010+
- ' begin'#013#010+
- ' if FindFirst(SearchDir+AllFilesMask,faAnyFile and faDirectory,Info'+
- ')=0 then'#013#010+
- ' begin'#013#010+
- ' ',' repeat'#013#010+
+ 'sive: boolean);'#010+
+ ' var'#010+
+ ' Info : TSearchRec;'#010+
+ ' begin'#010+
+ ' if FindFirst(SearchDir+AllFilesMask,faAnyFil','e and faDirectory,In'+
+ 'fo)=0 then'#010+
+ ' begin'#010+
+ ' repeat'#010+
' if ((Info.Attr and faDirectory) = faDirectory) and (Info.Nam'+
'e <> '#039'.'#039') and (Info.Name <> '#039'..'#039') and (Recursive) then'+
- #013#010+
- ' AddRecursiveFiles(SearchDir + Info.Name + PathDelim, FileM'+
- 'ask, Recursive);'#013#010+
- ' if ((I','nfo.Attr and faDirectory) <> faDirectory) and IsWild'+
- '(Info.Name, FileMask, FileNameCaseSensitive) then'#013#010+
- ' List.Add(SearchDir + Info.Name);'#013#010+
- ' until FindNext(Info)<>0;'#013#010+
- ' end;'#013#010+
- ' FindClose(Info);'#013#010+
- ' end;'#013#010+
- #013#010+
- 'var'#013#010+
- ' CurrDir,'#013#010,
- ' BasePath: string;'#013#010+
- ' i: integer;'#013#010+
- 'begin'#013#010+
- ' BasePath := ExtractFilePath(ExpandFileName(AFileName));'#013#010+
- ' AddRecursiveFiles(BasePath, ExtractFileName(AFileName), Recursive);'#013+
- #010+
- #013#010+
- ' CurrDir:=GetCurrentDir;'#013#010+
- ' for i := 0 to Pred(List.Count) do'#013#010+
- ' ',' List[i] := ExtractRelativepath(IncludeTrailingPathDelimiter(Curr'+
- 'Dir), List[i]);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Const'#013#010+
- ' WhiteSpace = [#9,#10,#13,'#039' '#039'];'#013#010+
- ' QuoteChars = ['#039#039#039#039','#039'"'#039'];'#013#010+
- #013#010+
- 'procedure SplitCommand(const Cmd : String; var Exe, Options : String);'+
- #013#010+
- #013#010+
- 'Var',#013#010+
- ' I : Integer;'#013#010+
- ' InQuote : Boolean;'#013#010+
- ' LastQuote : Char;'#013#010+
- ' S : String;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' S:=Trim(Cmd);'#013#010+
- ' InQuote:=False;'#013#010+
- ' LastQuote:=#0;'#013#010+
- ' I:=1;'#013#010+
- ' While (I<=Length(S)) and (Inquote or not (S[I] in whiteSpace)) do'#013+
- #010+
- ' begin'#013#010+
- ' If S[i] ','in QuoteChars then'#013#010+
- ' begin'#013#010+
- ' InQuote:=Not (S[i]=LastQuote);'#013#010+
- ' If InQuote then'#013#010+
- ' LastQuote:=S[i]'#013#010+
- ' else'#013#010+
- ' LastQuote:=#0;'#013#010+
- ' end;'#013#010+
- ' Inc(I);'#013#010+
- ' end;'#013#010+
- ' Exe:=Copy(S,1,I-1);'#013#010+
- ' Delete(S,1,I);'#013#010+
- ' Opti','ons:=Trim(S);'#013#010+
- 'end;'#013#010+
- #013#010+
+ #010+
+ ' AddRecursiveFiles(SearchDir + Info.Name + PathDel','im, Fil'+
+ 'eMask, Recursive);'#010+
+ ' if ((Info.Attr and faDirectory) <> faDirectory) and IsWild(I'+
+ 'nfo.Name, FileMask, FileNameCaseSensitive) then'#010+
+ ' List.Add(SearchDir + Info.Name);'#010+
+ ' until FindNext(Info)<>0;'#010+
+ ' end;'#010+
+ ' sysutil','s.FindClose(Info);'#010+
+ ' end;'#010+
+ #010+
+ 'var'#010+
+ ' CurrDir,'#010+
+ ' BasePath: string;'#010+
+ ' i: integer;'#010+
+ 'begin'#010+
+ ' BasePath := ExtractFilePath(ExpandFileName(AFileName));'#010+
+ ' AddRecursiveFiles(BasePath, ExtractFileName(AFileName), Recursive);'#010+
+ #010+
+ ' CurrDir:=GetCurrentDir;'#010+
+ ' f','or i := 0 to Pred(List.Count) do'#010+
+ ' List[i] := ExtractRelativepath(IncludeTrailingPathDelimiter(CurrDi'+
+ 'r), List[i]);'#010+
+ 'end;'#010+
+ #010+
+ 'Const'#010+
+ ' WhiteSpace = [#9,#10,#13,'#039' '#039'];'#010+
+ ' QuoteChars = ['#039#039#039#039','#039'"'#039'];'#010+
+ #010+
+ 'procedure SplitCommand(const Cmd : String; var Exe',', Options : String'+
+ ');'#010+
+ #010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ ' InQuote : Boolean;'#010+
+ ' LastQuote : Char;'#010+
+ ' S : String;'#010+
+ #010+
+ 'begin'#010+
+ ' S:=Trim(Cmd);'#010+
+ ' InQuote:=False;'#010+
+ ' LastQuote:=#0;'#010+
+ ' I:=1;'#010+
+ ' While (I<=Length(S)) and (Inquote or not (S[I] in whiteSpace)) do'#010+
+ ' begin'#010,
+ ' If S[i] in QuoteChars then'#010+
+ ' begin'#010+
+ ' InQuote:=Not (S[i]=LastQuote);'#010+
+ ' If InQuote then'#010+
+ ' LastQuote:=S[i]'#010+
+ ' else'#010+
+ ' LastQuote:=#0;'#010+
+ ' end;'#010+
+ ' Inc(I);'#010+
+ ' end;'#010+
+ ' Exe:=Copy(S,1,I-1);'#010+
+ ' Delete(S,1,I);'#010+
+ ' Opti','ons:=Trim(S);'#010+
+ 'end;'#010+
+ #010+
'procedure AddCustomFpmakeCommandlineOption(const ACommandLineOption, H'+
- 'elpMessage : string);'#013#010+
- 'begin'#013#010+
- ' if not assigned(CustomFpmakeCommandlineOptions) then'#013#010+
- ' CustomFpmakeCommandlineOptions := TStringList.Create;'#013#010+
- ' ','CustomFpmakeCommandlineOptions.Values[ACommandLineOption]:=HelpMes'+
- 'sage;'#013#010+
- 'end;'#013#010+
- #013#010+
+ 'elpMessage : string);'#010+
+ 'begin'#010+
+ ' if not assigned(CustomFpmakeCommandlineOptions) then'#010+
+ ' CustomFpmakeCommandlineOptions := TStringList.Create;'#010+
+ ' CustomF','pmakeCommandlineOptions.Values[ACommandLineOption]:=HelpMes'+
+ 'sage;'#010+
+ 'end;'#010+
+ #010+
'function GetCustomFpmakeCommandlineOptionValue(const ACommandLineOptio'+
- 'n: string): string;'#013#010+
- 'begin'#013#010+
- ' if not assigned(CustomFpMakeCommandlineValues) then'#013#010+
- ' re','sult := '#039#039#013#010+
- ' else'#013#010+
+ 'n: string): string;'#010+
+ 'begin'#010+
+ ' if not assigned(CustomFpMakeCommandlineValues) then'#010+
+ ' result := '#039#039#010+
+ ' ','else'#010+
' result := CustomFpMakeCommandlineValues.Values[ACommandLineOption]'+
- ';'#013#010+
- 'end;'#013#010+
- #013#010+
+ ';'#010+
+ 'end;'#010+
+ #010+
'function AddProgramExtension(const ExecutableName: string; AOS : TOS):'+
- ' string;'#013#010+
- 'begin'#013#010+
- ' if AOS in [Go32v2,Win32,Win64,Wince,OS2,EMX,Watcom','] then'#013#010+
- ' Result:=ExecutableName+ExeExt'#013#010+
- ' else'#013#010+
- ' Result:=ExecutableName;'#013#010+
- 'end;'#013#010+
- #013#010+
+ ' string;'#010+
+ 'begin'#010+
+ ' if AOS in [Go32v2,Win32,Win64,Wince,OS2,EMX,Watcom] then'#010+
+ ' Result:=E','xecutableName+ExeExt'#010+
+ ' else'#010+
+ ' Result:=ExecutableName;'#010+
+ 'end;'#010+
+ #010+
'function GetImportLibraryFilename(const UnitName: string; AOS: TOS): s'+
- 'tring;'#013#010+
- 'begin'#013#010+
- ' if AOS in [go32v2,watcom] then'#013#010+
- ' Result := '#039'libimp'#039'+UnitName'#013#010,
- ' else if AOS in [os2,emx] then'#013#010+
- ' Result := UnitName'#013#010+
- ' else if AOS in [netware,netwlibc,macos] then'#013#010+
- ' Result := '#039'lib'#039'+UnitName'#013#010+
- ' else'#013#010+
- ' Result := '#039'libimp'#039'+UnitName;'#013#010+
- ' Result := Result + LibExt;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Function OptionListToStri','ng(L : TStrings) : String;'#013#010+
- #013#010+
- 'var'#013#010+
- ' I : Integer;'#013#010+
- ' S : String;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' Result:='#039#039';'#013#010+
- ' For I:=0 to L.Count-1 do'#013#010+
- ' begin'#013#010+
- ' If (Result<>'#039#039') then'#013#010+
- ' Result:=Result+'#039' '#039';'#013#010+
- ' S:=L[I];'#013#010+
- ' If (Pos('#039' '#039',S)<>0) or (S='#039#039') then'#013#010+
- ' ',' Result:= Result + '#039'"'#039'+S+'#039'"'#039#013#010+
- ' else'#013#010+
- ' Result:= Result + S;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Function OptionsToStringList(S : String) : TStrings;'#013#010+
- #013#010+
- 'Var'#013#010+
- ' P : Integer;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' Result:=Nil;'#013#010+
- ' If (S='#039#039') then'#013#010+
- ' Exit;'#013#010+
- ' Result:=TStringList.C','reate;'#013#010+
- ' Repeat'#013#010+
- ' P:=Pos('#039' '#039',S);'#013#010+
- ' If P=0 then'#013#010+
- ' P:=Length(S)+1;'#013#010+
- ' Result.Add(Copy(S,1,P-1));'#013#010+
- ' Delete(S,1,P);'#013#010+
- ' S:=Trim(S);'#013#010+
- ' Until Length(S)=0;'#013#010+
- ' If Result.Count=0 then'#013#010+
- ' FreeAndNil(Result);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{$ifdef HA','S_UNIT_PROCESS}'#013#010+
- 'function GetCompilerInfo(const ACompiler,AOptions:string; ReadStdErr: '+
- 'boolean):string;'#013#010+
- 'const'#013#010+
- ' BufSize = 1024;'#013#010+
- 'var'#013#010+
- ' S: TProcess;'#013#010+
- ' Buf: array [0..BufSize - 1] of char;'#013#010+
- ' Count: longint;'#013#010+
- 'begin'#013#010+
- ' S:=TProcess.Create(N','il);'#013#010+
- ' S.Commandline:=ACompiler+'#039' '#039'+AOptions;'#013#010+
- ' S.Options:=[poUsePipes];'#013#010+
- ' S.execute;'#013#010+
- ' Count:=s.output.read(buf,BufSize);'#013#010+
- ' if (count=0) and ReadStdErr then'#013#010+
- ' Count:=s.Stderr.read(buf,BufSize);'#013#010+
- ' S.Free;'#013#010+
- ' SetLength(Result,Count)',';'#013#010+
- ' Move(Buf,Result[1],Count);'#013#010+
- 'end;'#013#010+
- '{$endif HAS_UNIT_PROCESS}'#013#010+
- #013#010+
- 'function GetDefaultLibGCCDir(CPU : TCPU;OS: TOS; var ErrorMessage: str'+
- 'ing): string;'#013#010+
- #013#010+
- ' function Get4thWord(const AString: string): string;'#013#010+
- ' var p: pchar;'#013#010+
- ' spaceco','unt: integer;'#013#010+
- ' StartWord: pchar;'#013#010+
- ' begin'#013#010+
- ' result:='#039#039';'#013#010+
- ' if length(AString)>6 then'#013#010+
- ' begin'#013#010+
- ' p := @AString[1];'#013#010+
- ' spacecount:=0;'#013#010+
- ' StartWord:=nil;'#013#010+
- ' while (not (p^ in [#0,#10,#13])) and ((p^<>'#039' '#039') or (St','a'+
- 'rtWord=nil)) do'#013#010+
- ' begin'#013#010+
- ' if p^='#039' '#039' then'#013#010+
- ' begin'#013#010+
- ' inc(spacecount);'#013#010+
- ' if spacecount=3 then StartWord:=p+1;'#013#010+
- ' end;'#013#010+
- ' inc(p);'#013#010+
- ' end;'#013#010+
- ' if StartWord<>nil then'#013#010+
- ' begin',#013#010+
- ' SetLength(result,p-StartWord);'#013#010+
- ' move(StartWord^,result[1],p-StartWord);'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' result := '#039#039';'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' function GetGccDirArch(const ACpuType, GCCParams: string) : string;'#013+
- #010+
- ' var Ex','ecResult: string;'#013#010+
- ' libgccFilename: string;'#013#010+
- ' GccExecutable: string;'#013#010+
- ' begin'#013#010+
- ' result := '#039#039';'#013#010+
- ' GccExecutable := ExeSearch(AddProgramExtension('#039'gcc'#039', OS),'+
- 'GetEnvironmentVariable('#039'PATH'#039'));'#013#010+
- ' if FileExists(GccExecutable) the','n'#013#010+
- ' begin'#013#010+
- '{$ifdef HAS_UNIT_PROCESS}'#013#010+
+ 'tring;'#010+
+ 'begin'#010+
+ ' if AOS in [go32v2,watcom] then'#010+
+ ' Result := '#039'libimp'#039'+UnitName'#010+
+ ' else if AOS in [os2,emx] the','n'#010+
+ ' Result := UnitName'#010+
+ ' else if AOS in [netware,netwlibc,macos] then'#010+
+ ' Result := '#039'lib'#039'+UnitName'#010+
+ ' else'#010+
+ ' Result := '#039'libimp'#039'+UnitName;'#010+
+ ' Result := Result + LibExt;'#010+
+ 'end;'#010+
+ #010+
+ 'Function OptionListToString(L : TStrings) : String;'#010+
+ #010+
+ 'var'#010+
+ ' I : I','nteger;'#010+
+ ' S : String;'#010+
+ #010+
+ 'begin'#010+
+ ' Result:='#039#039';'#010+
+ ' For I:=0 to L.Count-1 do'#010+
+ ' begin'#010+
+ ' If (Result<>'#039#039') then'#010+
+ ' Result:=Result+'#039' '#039';'#010+
+ ' S:=L[I];'#010+
+ ' If (Pos('#039' '#039',S)<>0) or (S='#039#039') then'#010+
+ ' Result:= Result + '#039'"'#039'+S+'#039'"'#039#010+
+ ' else'#010+
+ ' Result:= ','Result + S;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ 'Function OptionsToStringList(S : String) : TStrings;'#010+
+ #010+
+ 'Var'#010+
+ ' P : Integer;'#010+
+ #010+
+ 'begin'#010+
+ ' Result:=Nil;'#010+
+ ' If (S='#039#039') then'#010+
+ ' Exit;'#010+
+ ' Result:=TStringList.Create;'#010+
+ ' Repeat'#010+
+ ' P:=Pos('#039' '#039',S);'#010+
+ ' If P=0 then'#010+
+ ' P:=Length(S',')+1;'#010+
+ ' Result.Add(Copy(S,1,P-1));'#010+
+ ' Delete(S,1,P);'#010+
+ ' S:=Trim(S);'#010+
+ ' Until Length(S)=0;'#010+
+ ' If Result.Count=0 then'#010+
+ ' FreeAndNil(Result);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{$ifdef HAS_UNIT_PROCESS}'#010+
+ 'function GetCompilerInfo(const ACompiler,AOptions:string; ReadStdE','rr'+
+ ': boolean):string;'#010+
+ 'const'#010+
+ ' BufSize = 1024;'#010+
+ 'var'#010+
+ ' S: TProcess;'#010+
+ ' Buf: array [0..BufSize - 1] of char;'#010+
+ ' Count: longint;'#010+
+ 'begin'#010+
+ ' S:=TProcess.Create(Nil);'#010+
+ ' S.Commandline:=ACompiler+'#039' '#039'+AOptions;'#010+
+ ' S.Options:=[poUsePipes];'#010+
+ ' S.execute;'#010+
+ ' Cou','nt:=s.output.read(buf,BufSize);'#010+
+ ' if (count=0) and ReadStdErr then'#010+
+ ' Count:=s.Stderr.read(buf,BufSize);'#010+
+ ' S.Free;'#010+
+ ' SetLength(Result,Count);'#010+
+ ' Move(Buf,Result[1],Count);'#010+
+ 'end;'#010+
+ '{$endif HAS_UNIT_PROCESS}'#010+
+ #010+
+ 'function GetDefaultLibGCCDir(CPU : T','CPU;OS: TOS; var ErrorMessage: s'+
+ 'tring): string;'#010+
+ #010+
+ ' function Get4thWord(const AString: string): string;'#010+
+ ' var p: pchar;'#010+
+ ' spacecount: integer;'#010+
+ ' StartWord: pchar;'#010+
+ ' begin'#010+
+ ' result:='#039#039';'#010+
+ ' if length(AString)>6 then'#010+
+ ' begin'#010+
+ ' ',' p := @AString[1];'#010+
+ ' spacecount:=0;'#010+
+ ' StartWord:=nil;'#010+
+ ' while (not (p^ in [#0,#10,#13])) and ((p^<>'#039' '#039') or (Star'+
+ 'tWord=nil)) do'#010+
+ ' begin'#010+
+ ' if p^='#039' '#039' then'#010+
+ ' begin'#010+
+ ' inc(spacecount);'#010+
+ ' if spaceco','unt=3 then StartWord:=p+1;'#010+
+ ' end;'#010+
+ ' inc(p);'#010+
+ ' end;'#010+
+ ' if StartWord<>nil then'#010+
+ ' begin'#010+
+ ' SetLength(result,p-StartWord);'#010+
+ ' move(StartWord^,result[1],p-StartWord);'#010+
+ ' end'#010+
+ ' else'#010+
+ ' result :','= '#039#039';'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ ' function GetGccDirArch(const ACpuType, GCCParams: string) : string;'#010+
+ ' var ExecResult: string;'#010+
+ ' libgccFilename: string;'#010+
+ ' GccExecutable: string;'#010+
+ ' begin'#010+
+ ' result := '#039#039';'#010+
+ ' GccExecutable := ExeSearch(Add','ProgramExtension('#039'gcc'#039', OS'+
+ '),Sysutils.GetEnvironmentVariable('#039'PATH'#039'));'#010+
+ ' if FileExists(GccExecutable) then'#010+
+ ' begin'#010+
+ '{$ifdef HAS_UNIT_PROCESS}'#010+
' ExecResult:=GetCompilerInfo(GccExecutable,'#039'-v '#039'+GCCParam'+
- 's, True);'#013#010+
- ' libgccFilename:=Get4thWord(ExecResult);'#013#010+
- ' if libgccFilename='#039#039' then'#013#010+
- ' libgccFilename:=GetCompilerInfo(GccE','xecutable,'#039'--print-l'+
- 'ibgcc-file-name '#039'+GCCParams, False);'#013#010+
- ' result := ExtractFileDir(libgccFilename);'#013#010+
- '{$else HAS_UNIT_PROCESS}'#013#010+
- ' ErrorMessage := SWarnNoFCLProcessSupport;'#013#010+
- '{$endif HAS_UNIT_PROCESS}'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' Erro','rMessage := SWarngccNotFound;'#013#010+
- ' end;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' result := '#039#039';'#013#010+
- ' ErrorMessage:='#039#039';'#013#010+
- ' if OS in [freebsd, openbsd] then'#013#010+
- ' result := '#039'/usr/local/lib'#039#013#010+
- ' else if OS = netbsd then'#013#010+
- ' result := '#039'/usr/pkg/lib'#039#013#010+
- ' else if OS = linux then'#013#010+
- ' ',' case CPU of'#013#010+
+ 's, True);'#010+
+ ' libgccFilename:=','Get4thWord(ExecResult);'#010+
+ ' if libgccFilename='#039#039' then'#010+
+ ' libgccFilename:=GetCompilerInfo(GccExecutable,'#039'--print-lib'+
+ 'gcc-file-name '#039'+GCCParams, False);'#010+
+ ' result := ExtractFileDir(libgccFilename);'#010+
+ '{$else HAS_UNIT_PROCESS}'#010+
+ ' Erro','rMessage := SWarnNoFCLProcessSupport;'#010+
+ '{$endif HAS_UNIT_PROCESS}'#010+
+ ' end'#010+
+ ' else'#010+
+ ' ErrorMessage := SWarngccNotFound;'#010+
+ ' end;'#010+
+ #010+
+ 'begin'#010+
+ ' result := '#039#039';'#010+
+ ' ErrorMessage:='#039#039';'#010+
+ ' if OS in [freebsd, openbsd, dragonfly] then'#010+
+ ' result := '#039'/usr/l','ocal/lib'#039#010+
+ ' else if OS = netbsd then'#010+
+ ' result := '#039'/usr/pkg/lib'#039#010+
+ ' else if OS = linux then'#010+
+ ' case CPU of'#010+
' i386: result := GetGccDirArch('#039'cpui386'#039','#039'-m32'#039+
- ');'#013#010+
+ ');'#010+
' x86_64: result := GetGccDirArch('#039'cpux86_64'#039','#039'-m64'#039+
- ');'#013#010+
- ' powerpc: result := GetGccDirArch('#039'cpupowerpc'#039','#039'-m32'+
- #039');'#013#010+
- ' powerpc64:result := GetGccDirArch','('#039'cpupowerpc64'#039','#039'-'+
- 'm64'#039');'#013#010+
- ' end {case}'#013#010+
- ' else if OS = darwin then'#013#010+
- ' case CPU of'#013#010+
+ ');'#010+
+ ' powerp','c: result := GetGccDirArch('#039'cpupowerpc'#039','#039'-m'+
+ '32'#039');'#010+
+ ' powerpc64:result := GetGccDirArch('#039'cpupowerpc64'#039','#039'-m'+
+ '64'#039');'#010+
+ ' end {case}'#010+
+ ' else if OS = darwin then'#010+
+ ' case CPU of'#010+
' i386: result := GetGccDirArch('#039'cpui386'#039','#039'-arch i'+
- '386'#039');'#013#010+
- ' x86_64: result := GetGccDirArch('#039'cpux86_64'#039','#039'-arch'+
- ' x86_64'#039');'#013#010+
- ' powerpc: r','esult := GetGccDirArch('#039'cpupowerpc'#039','#039'-a'+
- 'rch ppc'#039');'#013#010+
+ '386'#039');'#010+
+ ' ',' x86_64: result := GetGccDirArch('#039'cpux86_64'#039','#039'-ar'+
+ 'ch x86_64'#039');'#010+
+ ' powerpc: result := GetGccDirArch('#039'cpupowerpc'#039','#039'-arc'+
+ 'h ppc'#039');'#010+
' powerpc64:result := GetGccDirArch('#039'cpupowerpc64'#039','#039'-a'+
- 'rch ppc64'#039');'#013#010+
- ' end; {case}'#013#010+
- 'end;'#013#010+
- #013#010+
- 'constructor TPackageVariant.Create(ACollection: TCollection);'#013#010+
- 'begin'#013#010+
- ' inherited Create(ACo','llection);'#013#010+
- ' FTargets := TTargets.Create(TTarget);'#013#010+
- ' FOptions := TStringList.Create;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'destructor TPackageVariant.Destroy;'#013#010+
- 'begin'#013#010+
- ' FOptions.Free;'#013#010+
- ' FTargets.Free;'#013#010+
- ' inherited Destroy;'#013#010+
- 'end;'#013#010+
- #013#010+
- '{ TPackageVariants }'#013#010+
- #013#010+
- 'procedure ','TPackageVariants.SetDefaultPackageVariantName(AValue: stri'+
- 'ng);'#013#010+
- 'begin'#013#010+
- ' if FDefaultPackageVariantName=AValue then Exit;'#013#010+
- ' if not assigned(ItemByName(avalue)) then'#013#010+
- ' raise exception.CreateFmt(SErrPackVarNotExist,[AValue]);'#013#010+
- ' FDefaultPa','ckageVariantName:=AValue;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TPackageVariants.GetActivePackageVariant: TPackageVariant;'#013+
- #010+
- 'begin'#013#010+
- ' result := ItemByName(ActivePackageVariantName) as TPackageVariant;'#013+
- #010+
- 'end;'#013#010+
- #013#010+
- 'function TPackageVariants.GetDefaultPackageVariant:',' TPackageVariant;'+
- #013#010+
- 'begin'#013#010+
- ' result := ItemByName(DefaultPackageVariantName) as TPackageVariant;'#013+
- #010+
- 'end;'#013#010+
- #013#010+
+ 'rch ppc64'#039');'#010+
+ ' end; {case}'#010+
+ 'end;'#010+
+ #010+
+ 'constructor TP','ackageVariant.Create(ACollection: TCollection);'#010+
+ 'begin'#010+
+ ' inherited Create(ACollection);'#010+
+ ' FTargets := TTargets.Create(TTarget);'#010+
+ ' FOptions := TStringList.Create;'#010+
+ ' FIncludePath:=TConditionalStrings.Create(TConditionalString);'#010+
+ ' FSourcePath:=','TConditionalStrings.Create(TConditionalString);'#010+
+ 'end;'#010+
+ #010+
+ 'destructor TPackageVariant.Destroy;'#010+
+ 'begin'#010+
+ ' FOptions.Free;'#010+
+ ' FTargets.Free;'#010+
+ ' FIncludePath.Free;'#010+
+ ' FSourcePath.Free;'#010+
+ ' inherited Destroy;'#010+
+ 'end;'#010+
+ #010+
+ '{ TPackageVariants }'#010+
+ #010+
+ 'procedure TPackageVa','riants.SetDefaultPackageVariantName(AValue: stri'+
+ 'ng);'#010+
+ 'begin'#010+
+ ' if FDefaultPackageVariantName=AValue then Exit;'#010+
+ ' if not assigned(ItemByName(avalue)) then'#010+
+ ' raise exception.CreateFmt(SErrPackVarNotExist,[AValue]);'#010+
+ ' FDefaultPackageVariantNam','e:=AValue;'#010+
+ 'end;'#010+
+ #010+
+ 'function TPackageVariants.GetActivePackageVariant: TPackageVariant;'#010+
+ 'begin'#010+
+ ' result := ItemByName(ActivePackageVariantName) as TPackageVariant;'#010+
+ 'end;'#010+
+ #010+
+ 'function TPackageVariants.GetDefaultPackageVariant: TPackageVariant;'#010+
+ 'begin',#010+
+ ' result := ItemByName(DefaultPackageVariantName) as TPackageVariant;'#010+
+ 'end;'#010+
+ #010+
'procedure TPackageVariants.SetActivePackageVariantName(AValue: string)'+
- ';'#013#010+
- 'begin'#013#010+
- ' if FActivePackageVariantName=AValue then Exit;'#013#010+
- ' if ','not assigned(ItemByName(avalue)) then'#013#010+
- ' raise exception.CreateFmt(SErrPackVarNotExist,[AValue]);'#013#010+
- ' FActivePackageVariantName:=AValue;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TPackageVariants.Add(AName: String): TPackageVariant;'#013#010+
- 'begin'#013#010+
- ' result := self.add a','s TPackageVariant;'#013#010+
- ' result.Name := AName;'#013#010+
- ' if FDefaultPackageVariantName='#039#039' then'#013#010+
- ' FDefaultPackageVariantName:=AName;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{ TConditionalDestStrings }'#013#010+
- #013#010+
+ ';'#010+
+ 'begin'#010+
+ ' if FActivePackageVariantName=AValue then Exit;'#010+
+ ' if not assigned(ItemByName(avalue)',') then'#010+
+ ' raise exception.CreateFmt(SErrPackVarNotExist,[AValue]);'#010+
+ ' FActivePackageVariantName:=AValue;'#010+
+ 'end;'#010+
+ #010+
+ 'function TPackageVariants.Add(AName: String): TPackageVariant;'#010+
+ 'begin'#010+
+ ' result := self.add as TPackageVariant;'#010+
+ ' result.Name := AN','ame;'#010+
+ ' if FDefaultPackageVariantName='#039#039' then'#010+
+ ' FDefaultPackageVariantName:=AName;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{ TConditionalDestStrings }'#010+
+ #010+
'function TConditionalDestStrings.GetConditionalString(Index : Integer)'+
- ': T','ConditionalDestString;'#013#010+
- 'begin'#013#010+
- ' Result:=TConditionalDestString(Items[Index]);'#013#010+
- 'end;'#013#010+
- #013#010+
+ ': TConditionalDestString;'#010+
+ 'begin'#010+
+ ' Result:=TConditi','onalDestString(Items[Index]);'#010+
+ 'end;'#010+
+ #010+
'procedure TConditionalDestStrings.SetConditionalString(Index : Integer'+
- '; AValue: TConditionalDestString);'#013#010+
- 'begin'#013#010+
- ' Items[Index]:=AValue;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'constr','uctor TConditionalDestStrings.Create(AClass: TConditionalDestS'+
- 'tringClass);'#013#010+
- 'begin'#013#010+
- ' inherited Create(AClass);'#013#010+
- 'end;'#013#010+
- #013#010+
+ '; AValue: TConditionalDestString);'#010+
+ 'begin'#010+
+ ' Items[Index]:=AValue;'#010+
+ 'end;'#010+
+ #010+
+ 'constructor TConditionalDestStrings.Create(AClass: TConditional','DestS'+
+ 'tringClass);'#010+
+ 'begin'#010+
+ ' inherited Create(AClass);'#010+
+ 'end;'#010+
+ #010+
'function TConditionalDestStrings.Add(const Value: String; ADestPath: S'+
- 'tring): TConditionalDestString;'#013#010+
- 'begin'#013#010+
- ' Add(Valu','e, AllCPUs, AllOSes, ADestPath);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TConditionalDestStrings.Add(const Value: String; const OSes: '+
- 'TOSes; ADestPath: String): TConditionalDestString;'#013#010+
- 'begin'#013#010+
- ' Add(Value, AllCPUs, OSes, ADestPath);'#013#010+
- 'end;'#013#010+
- #013#010+
- '{$ifdef cpu_only_ove','rloads}'#013#010+
- 'Function TConditionalDestStrings.Add(Const Value : String;const CPUs:T'+
- 'CPUs; ADestPath: String) : TConditionalDestString;inline;'#013#010+
- 'begin'#013#010+
- ' Add(Value, CPUs, AllOSes, ADestPath);'#013#010+
- 'end;'#013#010+
- '{$endif cpu_only_overloads}'#013#010+
- #013#010+
- #013#010+
- 'function TCondi','tionalDestStrings.Add(const Value: String; const CPUs'+
- ': TCPUs; const OSes: TOSes; ADestPath: String): TConditionalDestString'+
- ';'#013#010+
- 'var'#013#010+
- ' ACondString: TConditionalDestString;'#013#010+
- 'begin'#013#010+
- ' ACondString := inherited Add(Value,CPUs,OSes) as TConditiona','lDestS'+
- 'tring;'#013#010+
- ' ACondString.DestPath:=ADestPath;'#013#010+
- 'end;'#013#010+
- #013#010+
- '{ TPackageDictionary }'#013#010+
- #013#010+
+ 'tring): TConditionalDestString;'#010+
+ 'begin'#010+
+ ' Result:=Add(Value, AllCPUs, AllOSes, ADestPath);'#010+
+ 'end;'#010+
+ #010+
+ 'function TConditi','onalDestStrings.Add(const Value: String; const OSes'+
+ ': TOSes; ADestPath: String): TConditionalDestString;'#010+
+ 'begin'#010+
+ ' Result:=Add(Value, AllCPUs, OSes, ADestPath);'#010+
+ 'end;'#010+
+ #010+
+ '{$ifdef cpu_only_overloads}'#010+
+ 'Function TConditionalDestStrings.Add(Const Value',' : String;const CPUs'+
+ ':TCPUs; ADestPath: String) : TConditionalDestString;inline;'#010+
+ 'begin'#010+
+ ' Result:=Add(Value, CPUs, AllOSes, ADestPath);'#010+
+ 'end;'#010+
+ '{$endif cpu_only_overloads}'#010+
+ #010+
+ #010+
+ 'function TConditionalDestStrings.Add(const Value: String; const CPUs: '+
+ 'T','CPUs; const OSes: TOSes; ADestPath: String): TConditionalDestString'+
+ ';'#010+
+ 'var'#010+
+ ' ACondString: TConditionalDestString;'#010+
+ 'begin'#010+
+ ' ACondString := inherited Add(Value,CPUs,OSes) as TConditionalDestStr'+
+ 'ing;'#010+
+ ' ACondString.DestPath:=ADestPath;'#010+
+ ' Result:=AC','ondString;'#010+
+ 'end;'#010+
+ #010+
+ '{ TPackageDictionary }'#010+
+ #010+
'function TPackageDictionary.GetValue(const AName, Args: String): Strin'+
- 'g;'#013#010+
- 'Var'#013#010+
- ' O : TObject;'#013#010+
- ' I : Integer;'#013#010+
- 'begin'#013#010+
- ' I:=Flist.IndexOf(AName);'#013#010+
- ' If (I=-1',') then'#013#010+
- ' begin'#013#010+
- ' if assigned(MasterDictionary) then'#013#010+
- ' result := MasterDictionary.GetValue(AName,Args)'#013#010+
- ' else'#013#010+
- ' result := GlobalDictionary.GetValue(AName,Args);'#013#010+
- ' Exit;'#013#010+
- ' end;'#013#010+
- ' O:=Flist.Objects[I];'#013#010+
- ' If ','O is TValueItem then'#013#010+
- ' Result:=TValueItem(O).FValue'#013#010+
- ' else'#013#010+
- ' Result:=TFunctionItem(O).FFunc(AName,Args);'#013#010+
- 'end;'#013#010+
- #013#010+
- '{$ifndef NO_THREADING}'#013#010+
- #013#010+
- '{ TCompileWorkerThread }'#013#010+
- #013#010+
- 'constructor TCompileWorkerThread.Create(ABuildEngine: TBuildEngin','e; '+
- 'NotifyMainThreadEvent: PRTLEvent);'#013#010+
- 'begin'#013#010+
- ' inherited Create(false);'#013#010+
- ' FNotifyStartTask := RTLEventCreate;'#013#010+
- ' FBuildEngine := ABuildEngine;'#013#010+
- ' FNotifyMainThreadEvent:=NotifyMainThreadEvent;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'destructor TCompileWorkerThread.Dest','roy;'#013#010+
- 'begin'#013#010+
- ' RTLeventdestroy(FNotifyStartTask);'#013#010+
- ' inherited Destroy;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TCompileWorkerThread.execute;'#013#010+
- 'begin'#013#010+
- ' while not Terminated do'#013#010+
- ' begin'#013#010+
- ' FDone:=true;'#013#010+
- ' RTLeventSetEvent(FNotifyMainThreadEvent);'#013#010+
- ' RTLe','ventWaitFor(FNotifyStartTask,500);'#013#010+
- ' if not FDone then'#013#010+
- ' begin'#013#010+
- ' FBuildEngine.log(vlInfo,'#039'Compiling: '#039'+APackage.Name);'#013+
- #010+
- ' FCompilationOK:=false;'#013#010+
- ' try'#013#010+
- ' FBuildEngine.Compile(APackage);'#013#010+
- ' FCompilationOK:=t','rue;'#013#010+
- ' except'#013#010+
- ' on E: Exception do'#013#010+
- ' FErrorMessage := E.Message;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- '{$endif NO_THREADING}'#013#010+
- #013#010+
+ 'g;'#010+
+ 'Var'#010+
+ ' O : TObject;'#010+
+ ' I : Integer;'#010+
+ 'begin'#010+
+ ' I:=Flist.IndexOf(AName);'#010+
+ ' If (I=-1) then'#010+
+ ' begin'#010+
+ ' if assigned(MasterDictiona','ry) then'#010+
+ ' result := MasterDictionary.GetValue(AName,Args)'#010+
+ ' else'#010+
+ ' result := GlobalDictionary.GetValue(AName,Args);'#010+
+ ' Exit;'#010+
+ ' end;'#010+
+ ' O:=Flist.Objects[I];'#010+
+ ' If O is TValueItem then'#010+
+ ' Result:=TValueItem(O).FValue'#010+
+ ' el','se'#010+
+ ' Result:=TFunctionItem(O).FFunc(AName,Args);'#010+
+ 'end;'#010+
+ #010+
+ '{$ifndef NO_THREADING}'#010+
+ #010+
+ '{ TCompileWorkerThread }'#010+
+ #010+
+ 'constructor TCompileWorkerThread.Create(ABuildEngine: TBuildEngine; No'+
+ 'tifyMainThreadEvent: PRTLEvent);'#010+
+ 'begin'#010+
+ ' inherited Create(false',');'#010+
+ ' FNotifyStartTask := RTLEventCreate;'#010+
+ ' FBuildEngine := ABuildEngine;'#010+
+ ' FNotifyMainThreadEvent:=NotifyMainThreadEvent;'#010+
+ 'end;'#010+
+ #010+
+ 'destructor TCompileWorkerThread.Destroy;'#010+
+ 'begin'#010+
+ ' RTLeventdestroy(FNotifyStartTask);'#010+
+ ' inherited Destroy;'#010+
+ 'end;'#010+
+ #010+
+ 'p','rocedure TCompileWorkerThread.execute;'#010+
+ 'begin'#010+
+ ' while not Terminated do'#010+
+ ' begin'#010+
+ ' FDone:=true;'#010+
+ ' RTLeventSetEvent(FNotifyMainThreadEvent);'#010+
+ ' RTLeventWaitFor(FNotifyStartTask,500);'#010+
+ ' if not FDone then'#010+
+ ' begin'#010+
+ ' FBuildEngine.','log(vlInfo,'#039'Compiling: '#039'+APackage.Name);'#010+
+ ' FCompilationOK:=false;'#010+
+ ' try'#010+
+ ' FBuildEngine.Compile(APackage);'#010+
+ ' FCompilationOK:=true;'#010+
+ ' except'#010+
+ ' on E: Exception do'#010+
+ ' FErrorMessage := E.Message;'#010+
+ ' end;'#010+
+ ' ',' end;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ '{$endif NO_THREADING}'#010+
+ #010+
'{*********************************************************************'+
- '*******'#013#010+
- ' ',' TUnsortedDuplicatesStringList'#013#010+
- '**********************************************************************'+
- '******}'#013#010+
- #013#010+
- 'function TUnsortedDuplicatesStringList.Add(const S: string): Integer;'#013+
- #010+
- #013#010+
- 'begin'#013#010+
- ' result := IndexOf(S);'#013#010+
- ' I','f result > -1 then'#013#010+
- ' Case DUplicates of'#013#010+
- ' DupIgnore : Exit;'#013#010+
- ' DupError : Error(SDuplicateString,0)'#013#010+
- ' end;'#013#010+
- ' inherited Add(S);'#013#010+
- 'end;'#013#010+
- #013#010+
+ '*******'#010+
+ ' TUnsortedDuplicatesStringList'#010+
+ '*********************************************************','***********'+
+ '********}'#010+
+ #010+
+ 'function TUnsortedDuplicatesStringList.Add(const S: string): Integer;'#010+
+ #010+
+ 'begin'#010+
+ ' result := IndexOf(S);'#010+
+ ' If result > -1 then'#010+
+ ' Case DUplicates of'#010+
+ ' DupIgnore : Exit;'#010+
+ ' DupError : Error(SDuplicateString,0)'#010+
+ ' e','nd;'#010+
+ ' inherited Add(S);'#010+
+ 'end;'#010+
+ #010+
'{*********************************************************************'+
- '*******'#013#010+
- ' ',' TNamedItem'#013#010+
+ '*******'#010+
+ ' TNamedItem'#010+
'**********************************************************************'+
- '******}'#013#010+
- #013#010+
- 'procedure TNamedItem.SetName(const AValue: String);'#013#010+
- #013#010+
- 'begin'#013#010+
- ' if FName=AValue then exit;'#013#010+
- ' With TNamedCollection(Collecti','on) do'#013#010+
- ' If UniqueNames then'#013#010+
- ' If (IndexOfName(AVAlue)<>-1) then'#013#010+
- ' Raise ECollectionError.CreateFmt(SErrNameExists,[AValue]);'#013+
- #010+
- ' FName:=AValue;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{*********************************************************************',
- '*******'#013#010+
- ' TNamedCollection'#013#010+
+ '******}'#010+
+ #010+
+ 'procedure ','TNamedItem.SetName(const AValue: String);'#010+
+ #010+
+ 'begin'#010+
+ ' if FName=AValue then exit;'#010+
+ ' With TNamedCollection(Collection) do'#010+
+ ' If UniqueNames then'#010+
+ ' If (IndexOfName(AVAlue)<>-1) then'#010+
+ ' Raise ECollectionError.CreateFmt(SErrNameExists,[AV','alue]);'#010+
+ ' FName:=AValue;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{*********************************************************************'+
+ '*******'#010+
+ ' TNamedCollection'#010+
'**********************************************************************'+
- '******}'#013#010+
- #013#010+
- 'function TNamedCollection.GetItem(Index: Integer): TNamedItem;'#013#010+
- 'begin'#013#010+
- ' result := TNamedItem(inheri','ted getItem(index));'#013#010+
- 'end;'#013#010+
- #013#010+
+ '******}'#010+
+ #010+
+ 'fu','nction TNamedCollection.GetItem(Index: Integer): TNamedItem;'#010+
+ 'begin'#010+
+ ' result := TNamedItem(inherited getItem(index));'#010+
+ 'end;'#010+
+ #010+
'procedure TNamedCollection.SetItem(Index: Integer; AValue: TNamedItem)'+
- ';'#013#010+
- 'begin'#013#010+
- ' inherited SetItem(Index, AValue);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TNamedCollection.IndexOfName(const AName: String): Integer;'#013+
- #010+
- #013#010+
- 'begin'#013#010+
- ' Resu','lt:=Count-1;'#013#010+
+ ';'#010+
+ 'begin'#010+
+ ' inherited SetItem(Index, AValue);'#010+
+ 'end',';'#010+
+ #010+
+ 'function TNamedCollection.IndexOfName(const AName: String): Integer;'#010+
+ #010+
+ 'begin'#010+
+ ' Result:=Count-1;'#010+
' While (Result>=0) and (CompareText(TNamedItem(Items[Result]).FName,A'+
- 'Name)<>0) do'#013#010+
- ' Dec(Result);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TNamedCollection.ItemByName(const AName: String): TNamedItem;'+
- #013#010+
- #013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' I:=IndexOf','Name(AName);'#013#010+
- ' If (I=-1) Then'#013#010+
- ' Raise ECollectionError.CreateFmt(SErrNoSuchName,[AName]);'#013#010+
- ' Result:=TNamedItem(Items[i]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{*********************************************************************'+
- '*******'#013#010+
- ' ',' TNamedItemList'#013#010+
+ 'Name)<>0) do'#010+
+ ' Dec(Result);'#010+
+ 'end;'#010+
+ #010+
+ 'function TNamedCollection.ItemByName','(const AName: String): TNamedIte'+
+ 'm;'#010+
+ #010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ #010+
+ 'begin'#010+
+ ' I:=IndexOfName(AName);'#010+
+ ' If (I=-1) Then'#010+
+ ' Raise ECollectionError.CreateFmt(SErrNoSuchName,[AName]);'#010+
+ ' Result:=TNamedItem(Items[i]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{**********************************','*********************************'+
+ '*********'#010+
+ ' TNamedItemList'#010+
'**********************************************************************'+
- '******}'#013#010+
- #013#010+
- 'function TNamedItemList.GetNamedItem(Index : Integer): TNamedItem;'#013+
- #010+
- 'begin'#013#010+
- ' Result:=TNamedItem(Items[Index]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TName','dItemList.SetNamedItem(Index : Integer; const AValue:'+
- ' TNamedItem);'#013#010+
- 'begin'#013#010+
- ' Items[Index]:=AValue;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TNamedItemList.IndexOfName(const AName: String): Integer;'#013+
- #010+
- 'begin'#013#010+
- ' Result:=Count-1;'#013#010+
- ' While (Result>=0) and (CompareTex','t(GetNamedItem(Result).Name,AName'+
- ')<>0) do'#013#010+
- ' Dec(Result);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TNamedItemList.ItemByName(const ANAme: String): TNamedItem;'#013+
- #010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- 'begin'#013#010+
- ' I:=IndexOfName(AName);'#013#010+
- ' If (I=-1) Then'#013#010+
- ' Raise ECollectionError.','CreateFmt(SErrNoSuchName,[AName]);'#013#010+
- ' Result:=TNamedItem(Items[i]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ '******}'#010+
+ #010+
+ 'function TNamedItemList.GetNamedItem(Index : Integer): TNamedItem;'#010+
+ 'begin'#010+
+ ' ',' Result:=TNamedItem(Items[Index]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TNamedItemList.SetNamedItem(Index : Integer; const AValue: T'+
+ 'NamedItem);'#010+
+ 'begin'#010+
+ ' Items[Index]:=AValue;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TNamedItemList.IndexOfName(const AName: String): Integer;'#010+
+ 'begin'#010+
+ ' Resu','lt:=Count-1;'#010+
+ ' While (Result>=0) and (CompareText(GetNamedItem(Result).Name,AName)<'+
+ '>0) do'#010+
+ ' Dec(Result);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TNamedItemList.ItemByName(const ANAme: String): TNamedItem;'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ 'begin'#010+
+ ' I:=IndexOfName(AName);'#010+
+ ' If (I','=-1) Then'#010+
+ ' Raise ECollectionError.CreateFmt(SErrNoSuchName,[AName]);'#010+
+ ' Result:=TNamedItem(Items[i]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
'{*********************************************************************'+
- '*******'#013#010+
- ' TTargets'#013#010+
- '****************************************','****************************'+
- '********}'#013#010+
- #013#010+
- 'function TTargets.GetTargetItem(Index : Integer): TTarget;'#013#010+
- 'begin'#013#010+
- ' Result:=TTarget(Items[Index]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TTargets.GetTarget(const AName : String): TTarget;'#013#010+
- 'begin'#013#010+
- ' Result:=TTarget(It','emByName(AName));'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ '*******'#010+
+ ' TTargets'#010+
+ '**********','**********************************************************'+
+ '********}'#010+
+ #010+
+ 'function TTargets.GetTargetItem(Index : Integer): TTarget;'#010+
+ 'begin'#010+
+ ' Result:=TTarget(Items[Index]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TTargets.GetTarget(const AName : String): TTarget;'#010+
+ 'begin'#010,
+ ' Result:=TTarget(ItemByName(AName));'#010+
+ 'end;'#010+
+ #010+
+ #010+
'procedure TTargets.SetTargetItem(Index : Integer; const AValue: TTarge'+
- 't);'#013#010+
- 'begin'#013#010+
- ' Items[Index]:=AValue;'#013#010+
- 'end;'#013#010+
- #013#010+
+ 't);'#010+
+ 'begin'#010+
+ ' Items[Index]:=AValue;'#010+
+ 'end;'#010+
+ #010+
'function TTargets.AddFPDoc(const AUnitName, AXMLName: String): TTarget'+
- ';'#013#010+
- 'begin'#013#010+
- ' Result:=Add as',' TTarget;'#013#010+
- ' Result.Name:=AUnitName;'#013#010+
- ' Result.XML:=AXMLName;'#013#010+
- ' Result.TargetType:=ttFPDoc;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Function TTargets.AddUnit(Const AUnitName : String) : TTarget;'#013#010+
- 'begin'#013#010+
- ' Result:=AddUnit(AUnitName,AllCPUs,AllOSes);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function T','Targets.AddUnit(Const AUnitName : String;const OSes:TOSes)'+
- ' : TTarget;'#013#010+
- 'begin'#013#010+
- ' Result:=AddUnit(AUnitName,AllCPUs,OSes);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{$ifdef cpu_only_overloads}'#013#010+
+ ';'#010+
+ 'begin'#010+
+ ' Resul','t:=Add as TTarget;'#010+
+ ' Result.Name:=AUnitName;'#010+
+ ' Result.XML:=AXMLName;'#010+
+ ' Result.TargetType:=ttFPDoc;'#010+
+ 'end;'#010+
+ #010+
+ 'Function TTargets.AddUnit(Const AUnitName : String) : TTarget;'#010+
+ 'begin'#010+
+ ' Result:=AddUnit(AUnitName,AllCPUs,AllOSes);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TTar','gets.AddUnit(Const AUnitName : String;const OSes:TOSes)'+
+ ' : TTarget;'#010+
+ 'begin'#010+
+ ' Result:=AddUnit(AUnitName,AllCPUs,OSes);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{$ifdef cpu_only_overloads}'#010+
'Function TTargets.AddUnit(Const AUnitName : String;const CPUs:TCPUs) :'+
- ' TTarget;',#013#010+
- 'begin'#013#010+
- ' Result:=AddUnit(AUnitName,CPUs,AllOSes);'#013#010+
- 'end;'#013#010+
- '{$endif cpu_only_overloads}'#013#010+
- #013#010+
- #013#010+
+ ' TTarget;'#010+
+ 'begin'#010+
+ ' R','esult:=AddUnit(AUnitName,CPUs,AllOSes);'#010+
+ 'end;'#010+
+ '{$endif cpu_only_overloads}'#010+
+ #010+
+ #010+
'Function TTargets.AddUnit(Const AUnitName : String;const CPUs:TCPUs;co'+
- 'nst OSes:TOSes) : TTarget;'#013#010+
- 'begin'#013#010+
- ' Result:=Add as TTarget;'#013#010+
- ' Result.Name:=A','UnitName;'#013#010+
- ' Result.TargetType:=TTUnit;'#013#010+
- ' Result.CPUs:=CPUs;'#013#010+
- ' Result.OSes:=OSes;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'nst OSes:TOSes) : TTarget;'#010+
+ 'begin'#010+
+ ' Result:=Add as TTarget;'#010+
+ ' Result.Name:=AUnitName;'#010+
+ ' Result.T','argetType:=TTUnit;'#010+
+ ' Result.CPUs:=CPUs;'#010+
+ ' Result.OSes:=OSes;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'Function TTargets.AddImplicitUnit(Const AUnitName : String;InstallUnit'+
- ':boolean=true) : TTarget;'#013#010+
- 'begin'#013#010+
- ' Result:=AddImplicitUnit(AUnitName,AllCP','Us,AllOSes,InstallUnit);'#013+
+ ':boolean=true) : TTarget;'#010+
+ 'begin'#010+
+ ' Result:=AddImplicitUnit(AUnitName,AllCPUs,AllOSes,InstallUnit);'#010+
+ 'end;',#010+
+ #010+
#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
'Function TTargets.AddImplicitUnit(Const AUnitName : String;const OSes:'+
- 'TOSes;InstallUnit:boolean=true) : TTarget;'#013#010+
- 'begin'#013#010+
- ' Result:=AddImplicitUnit(AUnitName,AllCPUs,OSes,InstallUnit);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function ','TTargets.AddImplicitUnit(Const AUnitName : String;const CPU'+
- 's:TCPUs;InstallUnit:boolean=true) : TTarget;'#013#010+
- 'begin'#013#010+
- ' Result:=AddImplicitUnit(AUnitName,CPUs,AllOSes,InstallUnit);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TTargets.AddImplicitUnit(Const AUnitName : St','ring;const CPU'+
- 's:TCPUs;const OSes:TOSes;InstallUnit:boolean=true) : TTarget;'#013#010+
- 'begin'#013#010+
- ' Result:=Add as TTarget;'#013#010+
- ' Result.Name:=AUnitName;'#013#010+
- ' Result.CPUs:=CPUs;'#013#010+
- ' Result.OSes:=OSes;'#013#010+
- ' if InstallUnit then'#013#010+
- ' Result.TargetType:=TTImplicitUn','it'#013#010+
- ' else'#013#010+
- ' Result.TargetType:=TTCleanOnlyUnit;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TTargets.AddProgram(Const AProgramName : String) : TTarget;'#013+
- #010+
- 'begin'#013#010+
- ' Result:=AddProgram(AProgramName,AllCPUs,AllOSes);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TTargets.AddProgram(Const AP','rogramName : String;const OSes:'+
- 'TOSes) : TTarget;'#013#010+
- 'begin'#013#010+
- ' Result:=AddProgram(AProgramName,AllCPUs,OSes);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{$ifdef cpu_only_overloads}'#013#010+
+ 'TOSes;InstallUnit:boolean=true) : TTarget;'#010+
+ 'begin'#010+
+ ' Result:=AddImplicitUnit(AUnitName,AllCPUs,OSes,InstallUnit);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TTargets.AddImplicitUnit(Const AUnitNam','e : String;const CPU'+
+ 's:TCPUs;InstallUnit:boolean=true) : TTarget;'#010+
+ 'begin'#010+
+ ' Result:=AddImplicitUnit(AUnitName,CPUs,AllOSes,InstallUnit);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TTargets.AddImplicitUnit(Const AUnitName : String;const CPUs:'+
+ 'TCPUs;const OSes:TOSes;Instal','lUnit:boolean=true) : TTarget;'#010+
+ 'begin'#010+
+ ' Result:=Add as TTarget;'#010+
+ ' Result.Name:=AUnitName;'#010+
+ ' Result.CPUs:=CPUs;'#010+
+ ' Result.OSes:=OSes;'#010+
+ ' if InstallUnit then'#010+
+ ' Result.TargetType:=TTImplicitUnit'#010+
+ ' else'#010+
+ ' Result.TargetType:=TTCleanOnlyUnit;'#010+
+ 'en','d;'#010+
+ #010+
+ #010+
+ 'Function TTargets.AddProgram(Const AProgramName : String) : TTarget;'#010+
+ 'begin'#010+
+ ' Result:=AddProgram(AProgramName,AllCPUs,AllOSes);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TTargets.AddProgram(Const AProgramName : String;const OSes:TO'+
+ 'Ses) : TTarget;'#010+
+ 'begin'#010+
+ ' Result:','=AddProgram(AProgramName,AllCPUs,OSes);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{$ifdef cpu_only_overloads}'#010+
'Function TTargets.AddProgram(Const AProgramName : String;const CPUs:TC'+
- 'PUs) : TTarget;'#013#010+
- 'begin'#013#010,
- ' Result:=AddProgram(AProgramName,CPUs,AllOSes);'#013#010+
- 'end;'#013#010+
- '{$endif cpu_only_overloads}'#013#010+
- #013#010+
- #013#010+
+ 'PUs) : TTarget;'#010+
+ 'begin'#010+
+ ' Result:=AddProgram(AProgramName,CPUs,AllOSes);'#010+
+ 'end;'#010+
+ '{$endif cpu_only_ov','erloads}'#010+
+ #010+
+ #010+
'Function TTargets.AddProgram(Const AProgramName : String;const CPUs:TC'+
- 'PUs;const OSes:TOSes) : TTarget;'#013#010+
- 'begin'#013#010+
- ' Result:=Add as TTarget;'#013#010+
- ' Result.Name',':=AProgramName;'#013#010+
- ' Result.CPUs:=CPUs;'#013#010+
- ' Result.OSes:=OSes;'#013#010+
- ' Result.TargetType:=ttProgram;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TTargets.AddExampleUnit(Const AUnitName : String) : TTarget;'#013+
- #010+
- 'begin'#013#010+
- ' Result:=AddExampleUnit(AUnitName,AllCPUs,AllOSes);'#013#010+
- 'end;',#013#010+
- #013#010+
- #013#010+
+ 'PUs;const OSes:TOSes) : TTarget;'#010+
+ 'begin'#010+
+ ' Result:=Add as TTarget;'#010+
+ ' Result.Name:=AProgramName;'#010+
+ ' Result.CPUs:=CPUs;'#010+
+ ' Result.OSes:=OSes;'#010+
+ ' Result.TargetType:=tt','Program;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TTargets.AddExampleUnit(Const AUnitName : String) : TTarget;'#010+
+ 'begin'#010+
+ ' Result:=AddExampleUnit(AUnitName,AllCPUs,AllOSes);'#010+
+ 'end;'#010+
+ #010+
+ #010+
'Function TTargets.AddExampleUnit(Const AUnitName : String;const OSes:T'+
- 'OSes) : TTarget;'#013#010+
- 'begin'#013#010+
- ' Result:=AddExampleUnit(AUnitName,AllCPUs,OSes);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{$ifdef cpu_only_overloads}'#013#010+
- 'Function TTargets.AddExampleUnit(Const AUnitName ',': String;const CPUs'+
- ':TCPUs) : TTarget;'#013#010+
- 'begin'#013#010+
- ' Result:=AddExampleUnit(AUnitName,CPUs,AllOSes);'#013#010+
- 'end;'#013#010+
- '{$endif cpu_only_overloads}'#013#010+
- #013#010+
- #013#010+
+ 'OSes) : TTarget;'#010+
+ 'b','egin'#010+
+ ' Result:=AddExampleUnit(AUnitName,AllCPUs,OSes);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{$ifdef cpu_only_overloads}'#010+
+ 'Function TTargets.AddExampleUnit(Const AUnitName : String;const CPUs:T'+
+ 'CPUs) : TTarget;'#010+
+ 'begin'#010+
+ ' Result:=AddExampleUnit(AUnitName,CPUs,AllOSes);'#010+
+ 'end;'#010+
+ '{$','endif cpu_only_overloads}'#010+
+ #010+
+ #010+
'Function TTargets.AddExampleUnit(Const AUnitName : String;const CPUs:T'+
- 'CPUs;const OSes:TOSes) : TTarget;'#013,#010+
- 'begin'#013#010+
- ' Result:=Add as TTarget;'#013#010+
- ' Result.Name:=AUnitName;'#013#010+
- ' Result.CPUs:=CPUs;'#013#010+
- ' Result.OSes:=OSes;'#013#010+
- ' Result.TargetType:=ttExampleUnit;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'CPUs;const OSes:TOSes) : TTarget;'#010+
+ 'begin'#010+
+ ' Result:=Add as TTarget;'#010+
+ ' Result.Name:=AUnitName;'#010+
+ ' Result.CPUs:=CPUs;'#010+
+ ' Result.OSes:=OSes;'#010+
+ ' Result','.TargetType:=ttExampleUnit;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'Function TTargets.AddExampleProgram(Const AProgramName : String) : TTa'+
- 'rget;'#013#010+
- 'begin'#013#010+
- ' R','esult:=AddExampleProgram(AProgramName,AllCPUs,AllOSes);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'rget;'#010+
+ 'begin'#010+
+ ' Result:=AddExampleProgram(AProgramName,AllCPUs,AllOSes);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TTargets.AddExampleProgram(Const AProgramName : ','String;cons'+
+ 't OSes:TOSes) : TTarget;'#010+
+ 'begin'#010+
+ ' Result:=AddExampleProgram(AProgramName,AllCPUs,OSes);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{$ifdef cpu_only_overloads}'#010+
'Function TTargets.AddExampleProgram(Const AProgramName : String;const '+
- 'OSes:TOSes) : TTarget;'#013#010+
- 'begin'#013#010+
- ' Result:=AddExampleProgram(AProgramName,AllCPUs,OSes);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{$ifd','ef cpu_only_overloads}'#013#010+
+ 'CPUs:TCPUs) : TTarget;'#010+
+ 'begin'#010+
+ ' Result',':=AddExampleProgram(AProgramName,CPUs,AllOSes);'#010+
+ 'end;'#010+
+ '{$endif cpu_only_overloads}'#010+
+ #010+
+ #010+
'Function TTargets.AddExampleProgram(Const AProgramName : String;const '+
- 'CPUs:TCPUs) : TTarget;'#013#010+
- 'begin'#013#010+
- ' Result:=AddExampleProgram(AProgramName,CPUs,AllOSes);'#013#010+
- 'end;'#013#010+
- '{$endif cpu_only_overloads}'#013#010+
- #013#010+
- #013#010+
- 'Function TTargets.A','ddExampleProgram(Const AProgramName : String;cons'+
- 't CPUs:TCPUs;const OSes:TOSes) : TTarget;'#013#010+
- 'begin'#013#010+
- ' Result:=Add as TTarget;'#013#010+
- ' Result.Name:=AProgramName;'#013#010+
- ' Result.CPUs:=CPUs;'#013#010+
- ' Result.OSes:=OSes;'#013#010+
- ' Result.TargetType:=ttExampleProgram;'#013#010,
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'CPUs:TCPUs;const OSes:TOSes) : TTarget;'#010+
+ 'begin'#010+
+ ' Result:=Add as TTarget;'#010+
+ ' Result.Name:=','AProgramName;'#010+
+ ' Result.CPUs:=CPUs;'#010+
+ ' Result.OSes:=OSes;'#010+
+ ' Result.TargetType:=ttExampleProgram;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'{*********************************************************************'+
- '*******'#013#010+
- ' TSources'#013#010+
- '**********************************************************************'+
- '******}'#013#010+
- #013#010+
- 'function TSources.GetSourceI','tem(Index : Integer): TSource;'#013#010+
- 'begin'#013#010+
- ' Result:=TSource(Items[Index]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ '*******'#010+
+ ' TSources'#010+
+ '*******************','*************************************************'+
+ '********}'#010+
+ #010+
+ 'function TSources.GetSourceItem(Index : Integer): TSource;'#010+
+ 'begin'#010+
+ ' Result:=TSource(Items[Index]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
'procedure TSources.SetSourceItem(Index : Integer; const AValue: TSourc'+
- 'e);'#013#010+
- 'begin'#013#010+
- ' Items[Index]:=AValue;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TSources.AddDoc (const AFiles :',' String) : TSource;'#013#010+
- 'begin'#013#010+
- ' Result:=Add as TSource;'#013#010+
- ' Result.Name:=AFiles;'#013#010+
- ' Result.FSourceType:=stDoc;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TSources.AddDoc(const AFiles: String; AInstallSourcePath: Str'+
- 'ing): TSource;'#013#010+
- 'begin'#013#010+
- ' Result:=Add as TSource;'#013#010+
- ' ',' Result.Name:=AFiles;'#013#010+
- ' Result.FInstallSourcePath:=AInstallSourcePath;'#013#010+
- ' Result.FSourceType:=stDoc;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TSources.AddSrc(const AFiles : String) : TSource;'#013#010+
- 'begin'#013#010+
- ' Result:=Add as TSource;'#013#010+
- ' Result.Name:=AFiles;'#013#010+
- ' Result.','FSourceType:=stSrc;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TSources.AddExample(const AFiles : String) : TSource;'#013#010+
- 'begin'#013#010+
- ' Result:=Add as TSource;'#013#010+
- ' Result.Name:=AFiles;'#013#010+
- ' Result.FSourceType:=stExample;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TSources.AddExample(const AFiles: St','ring; AInstallSourcePat'+
- 'h: String): TSource;'#013#010+
- 'begin'#013#010+
- ' Result:=Add as TSource;'#013#010+
- ' Result.Name:=AFiles;'#013#010+
- ' Result.FInstallSourcePath:=AInstallSourcePath;'#013#010+
- ' Result.FSourceType:=stExample;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TSources.AddTest(const AFiles : St','ring) : TSource;'#013#010+
- 'begin'#013#010+
- ' Result:=Add as TSource;'#013#010+
- ' Result.Name:=AFiles;'#013#010+
- ' Result.FSourceType:=stTest;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'e);'#010+
+ 'b','egin'#010+
+ ' Items[Index]:=AValue;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TSources.AddDoc (const AFiles : String) : TSource;'#010+
+ 'begin'#010+
+ ' Result:=Add as TSource;'#010+
+ ' Result.Name:=AFiles;'#010+
+ ' Result.FSourceType:=stDoc;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TSources.AddDoc(const AFiles: String; AInsta','llSourcePath: S'+
+ 'tring): TSource;'#010+
+ 'begin'#010+
+ ' Result:=Add as TSource;'#010+
+ ' Result.Name:=AFiles;'#010+
+ ' Result.FInstallSourcePath:=AInstallSourcePath;'#010+
+ ' Result.FSourceType:=stDoc;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TSources.AddSrc(const AFiles : String) : TSource;'#010+
+ 'begin'#010+
+ ' R','esult:=Add as TSource;'#010+
+ ' Result.Name:=AFiles;'#010+
+ ' Result.FSourceType:=stSrc;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TSources.AddExample(const AFiles : String) : TSource;'#010+
+ 'begin'#010+
+ ' Result:=Add as TSource;'#010+
+ ' Result.Name:=AFiles;'#010+
+ ' Result.FSourceType:=stExample;'#010+
+ 'end;'#010+
+ #010+
+ 'f','unction TSources.AddExample(const AFiles: String; AInstallSourcePat'+
+ 'h: String): TSource;'#010+
+ 'begin'#010+
+ ' Result:=Add as TSource;'#010+
+ ' Result.Name:=AFiles;'#010+
+ ' Result.FInstallSourcePath:=AInstallSourcePath;'#010+
+ ' Result.FSourceType:=stExample;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function',' TSources.AddTest(const AFiles : String) : TSource;'#010+
+ 'begin'#010+
+ ' Result:=Add as TSource;'#010+
+ ' Result.Name:=AFiles;'#010+
+ ' Result.FSourceType:=stTest;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'procedure TSources.AddDocFiles(const AFileMask: string; Recursive: boo'+
- 'lean; AInstallSourcePath : String = '#039#039');'#013#010+
- 'var'#013#010+
- ' List',' : TStrings;'#013#010+
- ' i: integer;'#013#010+
- 'begin'#013#010+
- ' List := TStringList.Create;'#013#010+
- ' SearchFiles(AFileMask, Recursive, List);'#013#010+
- ' for i:= 0 to Pred(List.Count) do'#013#010+
- ' AddDoc(List[i], AInstallSourcePath);'#013#010+
- ' List.Free;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TSources.AddSrcFi','les(const AFileMask: string; Recursive: b'+
- 'oolean);'#013#010+
- 'var'#013#010+
- ' List : TStrings;'#013#010+
- ' i: integer;'#013#010+
- 'begin'#013#010+
- ' List := TStringList.Create;'#013#010+
- ' SearchFiles(AFileMask, Recursive, List);'#013#010+
- ' for i:= 0 to Pred(List.Count) do'#013#010+
- ' AddSrc(List[i]);'#013#010+
- ' List.Fr','ee;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'lean; AInstallSourcePath :',' String = '#039#039');'#010+
+ 'var'#010+
+ ' List : TStrings;'#010+
+ ' i: integer;'#010+
+ 'begin'#010+
+ ' List := TStringList.Create;'#010+
+ ' SearchFiles(AFileMask, Recursive, List);'#010+
+ ' for i:= 0 to Pred(List.Count) do'#010+
+ ' AddDoc(List[i], AInstallSourcePath);'#010+
+ ' List.Free;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TSo','urces.AddSrcFiles(const AFileMask: string; Recursive: b'+
+ 'oolean);'#010+
+ 'var'#010+
+ ' List : TStrings;'#010+
+ ' i: integer;'#010+
+ 'begin'#010+
+ ' List := TStringList.Create;'#010+
+ ' SearchFiles(AFileMask, Recursive, List);'#010+
+ ' for i:= 0 to Pred(List.Count) do'#010+
+ ' AddSrc(List[i]);'#010+
+ ' Li','st.Free;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'procedure TSources.AddExampleFiles(const AFileMask: string; Recursive:'+
- ' boolean; AInstallSourcePath : String = '#039#039');'#013#010+
- 'var'#013#010+
- ' List : TStrings;'#013#010+
- ' i: integer;'#013#010+
- 'begin'#013#010+
- ' List := TStringList.Create;'#013#010+
- ' SearchFiles(AFileMask, Recurs','ive, List);'#013#010+
- ' for i:= 0 to Pred(List.Count) do'#013#010+
- ' AddExample(List[i], AInstallSourcePath);'#013#010+
- ' List.Free;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ ' boolean; AInstallSourcePath : String = '#039#039');'#010+
+ 'var'#010+
+ ' List : TStrings;'#010+
+ ' i: integer;'#010+
+ 'begin'#010+
+ ' List := TStringList.Create;'#010+
+ ' SearchFiles(AFileMask, Recursive, ','List);'#010+
+ ' for i:= 0 to Pred(List.Count) do'#010+
+ ' AddExample(List[i], AInstallSourcePath);'#010+
+ ' List.Free;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'procedure TSources.AddTestFiles(const AFileMask: string; Recursive: bo'+
- 'olean);'#013#010+
- 'var'#013#010+
- ' List : TStrings;'#013#010+
- ' i: integer;'#013#010+
- 'be','gin'#013#010+
- ' List := TStringList.Create;'#013#010+
- ' SearchFiles(AFileMask, Recursive, List);'#013#010+
- ' for i:= 0 to Pred(List.Count) do'#013#010+
- ' AddTest(List[i]);'#013#010+
- ' List.Free;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'olean);'#010+
+ 'var'#010+
+ ' List : TStrings;'#010+
+ ' i: integer;'#010+
+ 'begin'#010+
+ ' List := TS','tringList.Create;'#010+
+ ' SearchFiles(AFileMask, Recursive, List);'#010+
+ ' for i:= 0 to Pred(List.Count) do'#010+
+ ' AddTest(List[i]);'#010+
+ ' List.Free;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'{*********************************************************************'+
- '*******',#013#010+
- ' TPackage'#013#010+
+ '*******'#010+
+ ' ',' TPackage'#010+
'**********************************************************************'+
- '******}'#013#010+
- #013#010+
- 'constructor TPackage.Create(ACollection: TCollection);'#013#010+
- 'begin'#013#010+
- ' inherited Create(ACollection);'#013#010+
- ' FVersion:=TFPVersio','n.Create;'#013#010+
- ' FTargets:=TTargets.Create(TTarget);'#013#010+
- ' FSources:=TSources.Create(TSource);'#013#010+
- ' FDependencies:=TDependencies.Create(TDependency);'#013#010+
+ '******}'#010+
+ #010+
+ 'constructor TPackage.Create(ACollection: TCollection);'#010+
+ 'begin'#010+
+ ' inherited Create(ACollection);'#010+
+ ' FVersion:=TFPVersion.Create;'#010+
+ ' FTargets:=TTargets.C','reate(TTarget);'#010+
+ ' FSources:=TSources.Create(TSource);'#010+
+ ' FDependencies:=TDependencies.Create(TDependency);'#010+
' FInstallFiles:=TConditionalDestStrings.Create(TConditionalDestString'+
- ');'#013#010+
- ' FCleanFiles:=TConditio','nalStrings.Create(TConditionalString);'#013#010+
- ' FUnitPath:=TConditionalStrings.Create(TConditionalString);'#013#010+
- ' FObjectPath:=TConditionalStrings.Create(TConditionalString);'#013#010+
- ' FIncludePath:=TConditionalStrings.Create(TConditionalString);'#013#010+
- ' FSource','Path:=TConditionalStrings.Create(TConditionalString);'#013#010+
- ' FExamplePath:=TConditionalStrings.Create(TConditionalString);'#013#010+
- ' FTestPath:=TConditionalStrings.Create(TConditionalString);'#013#010+
- ' FCommands:=TCommands.Create(TCommand);'#013#010+
- ' FUnitsOutputDi','r:='#039'units'#039'+PathDelim+'#039'$(target)'#039'+Pat'+
- 'hDelim;'#013#010+
- ' FPackageVariants:=TFPList.Create;'#013#010+
- ' FCPUs:=AllCPUs;'#013#010+
- ' FOSes:=AllOSes;'#013#010+
- ' FInstalledChecksum:=$ffffffff;'#013#010+
- ' FFlags := TStringList.Create;'#013#010+
- ' // Implicit dependency on RTL'#013#010+
- ' FDependencies.Add(',#039'rtl'#039');'#013#010+
- ' FSupportBuildModes:=[bmBuildUnit, bmOneByOne];'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'destructor TPackage.destroy;'#013#010+
- 'var'#013#010+
- ' i: integer;'#013#010+
- 'begin'#013#010+
- ' FreeAndNil(FDictionary);'#013#010+
- ' FreeAndNil(FDependencies);'#013#010+
- ' FreeAndNil(FInstallFiles);'#013#010+
- ' FreeAndNil(FCleanFiles);',#013#010+
- ' FreeAndNil(FIncludePath);'#013#010+
- ' FreeAndNil(FSourcePath);'#013#010+
- ' FreeAndNil(FExamplePath);'#013#010+
- ' FreeAndNil(FTestPath);'#013#010+
- ' FreeAndNil(FCommands);'#013#010+
- ' FreeAndNil(FObjectPath);'#013#010+
- ' FreeAndNil(FUnitPath);'#013#010+
- ' FreeAndNil(FSources);'#013#010+
- ' FreeAndNil(FTargets',');'#013#010+
- ' FreeAndNil(FVersion);'#013#010+
- ' FreeAndNil(FOptions);'#013#010+
- ' FreeAndNil(FFlags);'#013#010+
- ' FreeAndNil(FPackageVariants);'#013#010+
- ' inherited destroy;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TPackage.HaveOptions: Boolean;'#013#010+
- 'begin'#013#010+
- ' Result:=(FOptions<>Nil);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TPac','kage.SetName(const AValue: String);'#013#010+
- 'begin'#013#010+
- ' inherited SetName(AValue);'#013#010+
- ' // RTL should not have any dependencies'#013#010+
- ' if AValue='#039'rtl'#039' then'#013#010+
- ' FDependencies.Clear;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TPackage.GetUnitsOutputDir(ACPU:TCPU; AOS : TOS):Strin','g;'#013+
- #010+
- 'begin'#013#010+
+ ');'#010+
+ ' FCleanFiles:=TConditionalStrings.Create(TConditionalString)',';'#010+
+ ' FUnitPath:=TConditionalStrings.Create(TConditionalString);'#010+
+ ' FObjectPath:=TConditionalStrings.Create(TConditionalString);'#010+
+ ' FIncludePath:=TConditionalStrings.Create(TConditionalString);'#010+
+ ' FSourcePath:=TConditionalStrings.Create(TConditi','onalString);'#010+
+ ' FExamplePath:=TConditionalStrings.Create(TConditionalString);'#010+
+ ' FTestPath:=TConditionalStrings.Create(TConditionalString);'#010+
+ ' FCommands:=TCommands.Create(TCommand);'#010+
+ ' FUnitsOutputDir:='#039'units'#039'+PathDelim+'#039'$(target)'#039'+PathD'+
+ 'elim;'#010+
+ ' ',' FPackageVariants:=TFPList.Create;'#010+
+ ' FCPUs:=AllCPUs;'#010+
+ ' FOSes:=AllOSes;'#010+
+ ' FInstalledChecksum:=$ffffffff;'#010+
+ ' FFlags := TStringList.Create;'#010+
+ ' // Implicit dependency on RTL'#010+
+ ' FDependencies.Add('#039'rtl'#039');'#010+
+ ' FSupportBuildModes:=[bmBuildUnit, bmOneByO','ne];'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'destructor TPackage.destroy;'#010+
+ 'var'#010+
+ ' i: integer;'#010+
+ 'begin'#010+
+ ' FreeAndNil(FDictionary);'#010+
+ ' FreeAndNil(FDependencies);'#010+
+ ' FreeAndNil(FInstallFiles);'#010+
+ ' FreeAndNil(FCleanFiles);'#010+
+ ' FreeAndNil(FIncludePath);'#010+
+ ' FreeAndNil(FSourcePath);'#010+
+ ' FreeAn','dNil(FExamplePath);'#010+
+ ' FreeAndNil(FTestPath);'#010+
+ ' FreeAndNil(FCommands);'#010+
+ ' FreeAndNil(FObjectPath);'#010+
+ ' FreeAndNil(FUnitPath);'#010+
+ ' FreeAndNil(FSources);'#010+
+ ' FreeAndNil(FTargets);'#010+
+ ' FreeAndNil(FVersion);'#010+
+ ' FreeAndNil(FOptions);'#010+
+ ' FreeAndNil(FFlags);'#010,
+ ' FreeAndNil(FPackageVariants);'#010+
+ ' inherited destroy;'#010+
+ 'end;'#010+
+ #010+
+ 'function TPackage.HaveOptions: Boolean;'#010+
+ 'begin'#010+
+ ' Result:=(FOptions<>Nil);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TPackage.SetName(const AValue: String);'#010+
+ 'begin'#010+
+ ' inherited SetName(AValue);'#010+
+ ' // RTL should ','not have any dependencies'#010+
+ ' if AValue='#039'rtl'#039' then'#010+
+ ' FDependencies.Clear;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TPackage.GetUnitsOutputDir(ACPU:TCPU; AOS : TOS):String;'#010+
+ 'begin'#010+
' result:=FixPath(Dictionary.Substitute(FUnitsOutputDir,['#039'CPU'#039','+
- 'CPUToString(ACPU),'#039'OS'#039',OSToString(AOS),'#039'target'#039',MakeTa'+
- 'rgetString(ACPU,AOS)]), False);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TPackage.GetUnitConfigOutputDir(ACPU: TCPU; AOS: TOS): String'+
- ';',#013#010+
- 'begin'#013#010+
- ' result:=FixPath(Dictionary.Substitute('#039'units'#039'+PathDelim+'#039+
- '$(target)'#039'+PathDelim,['#039'CPU'#039',CPUToString(ACPU),'#039'OS'#039','+
- 'OSToString(AOS),'#039'target'#039',MakeTargetString(ACPU,AOS)]), False);'+
- #013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TPackage.InheritPackageVariantsFromDepe','ndency(ADependencyP'+
- 'ackage: TPackage);'#013#010+
- 'var'#013#010+
- ' i: integer;'#013#010+
- ' APackageVariants: TPackageVariants;'#013#010+
- 'begin'#013#010+
- ' for i := 0 to ADependencyPackage.FPackageVariants.Count-1 do'#013#010+
- ' begin'#013#010+
- ' APackageVariants := TPackageVariants(ADependencyPackag','e.FPacka'+
- 'geVariants[i]);'#013#010+
- ' if APackageVariants.IsInheritable then'#013#010+
- ' begin'#013#010+
- ' if not assigned(GetPackageVariantsByName(APackageVariants.Name'+
- ')) then'#013#010+
- ' begin'#013#010+
- ' FPackageVariants.Add(APackageVariants);'#013#010+
- ' ',' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
+ 'CPUToString(ACPU),'#039'OS'#039',O','SToString(AOS),'#039'target'#039',Make'+
+ 'TargetString(ACPU,AOS)]), False);'#010+
+ 'end;'#010+
+ #010+
+ 'function TPackage.GetUnitConfigOutputFilename(ACPU: TCPU; AOS: TOS): S'+
+ 'tring;'#010+
+ 'begin'#010+
+ ' result:=FixPath(Dictionary.Substitute(Name+'#039'-$(target)'#039'+Fpmk'+
+ 'Ext,['#039'CPU'#039',CPUToString(ACPU','),'#039'OS'#039',OSToString(AOS),'#039+
+ 'target'#039',MakeTargetString(ACPU,AOS)]), False);'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TPackage.InheritPackageVariantsFromDependency(ADependencyPac'+
+ 'kage: TPackage);'#010+
+ 'var'#010+
+ ' i: integer;'#010+
+ ' APackageVariants: TPackageVariants;'#010+
+ 'begin'#010+
+ ' for i := 0 to',' ADependencyPackage.FPackageVariants.Count-1 do'#010+
+ ' begin'#010+
+ ' APackageVariants := TPackageVariants(ADependencyPackage.FPackage'+
+ 'Variants[i]);'#010+
+ ' if APackageVariants.IsInheritable then'#010+
+ ' begin'#010+
+ ' if not assigned(GetPackageVaria','ntsByName(APackageVariants.Na'+
+ 'me)) then'#010+
+ ' begin'#010+
+ ' FPackageVariants.Add(APackageVariants);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
'function TPackage.GetPackageVariantsByName(AName: string): TPackageVar'+
- 'iants;'#013#010+
- 'var'#013#010+
- ' i: Integer;'#013#010+
- 'begin'#013#010+
- ' result := nil;'#013#010+
- ' for i := 0 to FPackageVariants.Count-1 do'#013#010+
- ' if SameText(TPackageVariant','s(FPackageVariants.Items[i]).Name, AN'+
- 'ame) then'#013#010+
- ' begin'#013#010+
- ' result := TPackageVariants(FPackageVariants.Items[i]);'#013#010+
- ' break;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TPackage.SetUnitsOutputDir(AValue: string);'#013#010+
- 'begin'#013#010+
- ' if AValue<>'#039#039' then'#013,#010+
- ' FUnitsOutputDir:=IncludeTrailingPathDelimiter(AValue)'#013#010+
- ' else'#013#010+
- ' FUnitsOutputDir:='#039#039';'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TPackage.GetPackageUnitInstallDir(ACPU: TCPU; AOS: TOS): Stri'+
- 'ng;'#013#010+
- 'begin'#013#010+
- ' result:=FixPath(Dictionary.Substitute(FPackageUnitInst','allDir,['#039+
- 'CPU'#039',CPUToString(ACPU),'#039'OS'#039',OSToString(AOS),'#039'target'#039+
- ',MakeTargetString(ACPU,AOS)]), False);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TPackage.SetPackageUnitInstallDir(AValue: string);'#013#010+
- 'begin'#013#010+
- ' if AValue<>'#039#039' then'#013#010+
- ' FPackageUnitInstallDir:=IncludeTrail','ingPathDelimiter(AValue)'#013+
- #010+
- ' else'#013#010+
- ' FPackageUnitInstallDir:='#039#039';'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TPackage.GetBinOutputDir(ACPU:TCPU; AOS : TOS) : String;'#013#010+
- 'begin'#013#010+
- ' Result:='#039'bin'#039'+PathDelim+MakeTargetString(ACPU,AOS);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TPackage.GetCl','eanFiles(List: TStrings; ACPU:TCPU; AOS : TO'+
- 'S);'#013#010+
- 'Var'#013#010+
- ' OB,OU : String;'#013#010+
- ' I : Integer;'#013#010+
- 'begin'#013#010+
- ' OB:=IncludeTrailingPathDelimiter(GetBinOutputDir(ACPU,AOS));'#013#010+
- ' OU:=IncludeTrailingPathDelimiter(GetUnitsOutputDir(ACPU,AOS));'#013#010+
- ' AddCondition','alStrings(Self, List,CleanFiles,ACPU,AOS);'#013#010+
- ' For I:=0 to FTargets.Count-1 do'#013#010+
- ' FTargets.TargetItems[I].GetCleanFiles(List, OU, OB, ACPU, AOS);'#013+
- #010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'iants;'#010+
+ 'var'#010+
+ ' i: Intege','r;'#010+
+ 'begin'#010+
+ ' result := nil;'#010+
+ ' for i := 0 to FPackageVariants.Count-1 do'#010+
+ ' if SameText(TPackageVariants(FPackageVariants.Items[i]).Name, ANam'+
+ 'e) then'#010+
+ ' begin'#010+
+ ' result := TPackageVariants(FPackageVariants.Items[i]);'#010+
+ ' break;'#010+
+ ' ','end;'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TPackage.SetUnitsOutputDir(AValue: string);'#010+
+ 'begin'#010+
+ ' if AValue<>'#039#039' then'#010+
+ ' FUnitsOutputDir:=IncludeTrailingPathDelimiter(AValue)'#010+
+ ' else'#010+
+ ' FUnitsOutputDir:='#039#039';'#010+
+ 'end;'#010+
+ #010+
+ 'function TPackage.GetPackageUnitInstallDir(ACPU: TCP','U; AOS: TOS): St'+
+ 'ring;'#010+
+ 'begin'#010+
+ ' result:=FixPath(Dictionary.Substitute(FPackageUnitInstallDir,['#039'C'+
+ 'PU'#039',CPUToString(ACPU),'#039'OS'#039',OSToString(AOS),'#039'target'#039+
+ ',MakeTargetString(ACPU,AOS)]), False);'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TPackage.SetPackageUnitInstallDir(AValue',': string);'#010+
+ 'begin'#010+
+ ' if AValue<>'#039#039' then'#010+
+ ' FPackageUnitInstallDir:=IncludeTrailingPathDelimiter(AValue)'#010+
+ ' else'#010+
+ ' FPackageUnitInstallDir:='#039#039';'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TPackage.GetBinOutputDir(ACPU:TCPU; AOS : TOS) : String;'#010+
+ 'begin'#010+
+ ' Result:='#039'bin'#039'+Pat','hDelim+MakeTargetString(ACPU,AOS);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TPackage.GetCleanFiles(List: TStrings; ACPU:TCPU; AOS : TOS)'+
+ ';'#010+
+ 'Var'#010+
+ ' OB,OU : String;'#010+
+ ' I : Integer;'#010+
+ 'begin'#010+
+ ' OB:=IncludeTrailingPathDelimiter(GetBinOutputDir(ACPU,AOS));'#010+
+ ' OU:=IncludeTrailin','gPathDelimiter(GetUnitsOutputDir(ACPU,AOS));'#010+
+ ' List.Add(GetUnitConfigOutputFilename(Defaults.CPU,Defaults.OS));'#010+
+ ' AddConditionalStrings(Self, List,CleanFiles,ACPU,AOS);'#010+
+ ' For I:=0 to FTargets.Count-1 do'#010+
+ ' FTargets.TargetItems[I].GetCleanF','iles(List, OU, OB, ACPU, AOS);'#010+
+ 'end;'#010+
+ #010+
+ #010+
'procedure TPackage.GetInstallFiles(List: TStrings;Types : TTargetTypes'+
- ';ACPU:TCPU; ','AOS : TOS);'#013#010+
- 'Var'#013#010+
- ' OB,OU : String;'#013#010+
- ' I : Integer;'#013#010+
- ' T : TTarget;'#013#010+
- 'begin'#013#010+
- ' if Types=[] then'#013#010+
- ' AddConditionalStrings(Self, List,InstallFiles,ACPU,AOS)'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' OB:=IncludeTrailingPathDelimiter(GetBinOutputDir(Defaults.','CPU,'+
- 'Defaults.OS));'#013#010+
+ ';ACPU:TCPU; AOS : TOS);'#010+
+ 'Var'#010+
+ ' OB,OU : String;'#010+
+ ' I : Integer;'#010+
+ ' T : TTarget;'#010+
+ 'begin'#010+
+ ' if Types=[] then'#010+
+ ' AddConditionalStrings(Self,',' List,InstallFiles,ACPU,AOS)'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' OB:=IncludeTrailingPathDelimiter(GetBinOutputDir(Defaults.CPU,De'+
+ 'faults.OS));'#010+
' OU:=IncludeTrailingPathDelimiter(GetUnitsOutputDir(Defaults.CPU,'+
- 'Defaults.OS));'#013#010+
- ' For I:=0 to FTargets.Count-1 do'#013#010+
- ' begin'#013#010+
- ' T:=FTargets.TargetItems[I];'#013#010+
- ' if (T.TargetType in Types) and ','Installer.BuildEngine.Targe'+
- 'tInstallOK(T, ACPU, AOS) then'#013#010+
- ' T.GetInstallFiles(List, OU, OB, ACPU, AOS);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'Defaults.OS));'#010+
+ ' For I:=0 to FTargets','.Count-1 do'#010+
+ ' begin'#010+
+ ' T:=FTargets.TargetItems[I];'#010+
+ ' if (T.TargetType in Types) and Installer.BuildEngine.TargetI'+
+ 'nstallOK(T, ACPU, AOS) then'#010+
+ ' T.GetInstallFiles(List, OU, OB, ACPU, AOS);'#010+
+ ' end;'#010+
+ ' end;'#010,
+ 'end;'#010+
+ #010+
+ #010+
'procedure TPackage.GetInstallSourceFiles(List: TStrings; SourceTypes :'+
- ' TSourceTypes; Target','Types : TTargetTypes);'#013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- ' S : TSource;'#013#010+
- ' T : TTarget;'#013#010+
- 'begin'#013#010+
- ' For I:=0 to FSources.Count-1 do'#013#010+
- ' begin'#013#010+
- ' S:=FSources.SourceItems[I];'#013#010+
- ' if (S.SourceType in SourceTypes) then'#013#010+
- ' S.GetInstallFiles(List',');'#013#010+
- ' end;'#013#010+
- ' For I:=0 to FTargets.Count-1 do'#013#010+
- ' begin'#013#010+
- ' T:=FTargets.TargetItems[I];'#013#010+
- ' if (T.TargetType in TargetTypes) then'#013#010+
- ' T.GetArchiveFiles(List,Defaults.CPU,Defaults.OS);'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TPackage.Ge','tArchiveFiles(List: TStrings; ACPU:TCPU; AOS : '+
- 'TOS);'#013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- 'begin'#013#010+
- ' // Targets only'#013#010+
- ' For I:=0 to FTargets.Count-1 do'#013#010+
- ' FTargets.TargetItems[I].GetArchiveFiles(List,ACPU,AOS);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TPackage.GetArchiveSource','Files(List: TStrings);'#013#010+
- 'var'#013#010+
- ' i : integer;'#013#010+
- 'begin'#013#010+
- ' for i := 0 to Sources.Count-1 do'#013#010+
- ' List.Add(Sources[i].Name);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Function TPackage.GetDescription : string;'#013#010+
- 'Var'#013#010+
- ' FN : String;'#013#010+
- ' L : TStringList;'#013#010+
- 'begin'#013#010+
- ' If (FDescription<>',#039#039') then'#013#010+
- ' Result:=FDescription'#013#010+
- ' else'#013#010+
- ' If (FDescriptionFile<>'#039#039') then'#013#010+
- ' begin'#013#010+
- ' // Always relative to binary name.'#013#010+
- ' FN:=ExtractFilePath(ParamStr(0));'#013#010+
- ' FN:=FN+FDescriptionFile;'#013#010+
- ' If FileExists(FN) ','then'#013#010+
- ' begin'#013#010+
- ' L:=TStringList.Create;'#013#010+
- ' Try'#013#010+
- ' L.LoadFromFile(FN);'#013#010+
- ' Result:=L.Text;'#013#010+
- ' Finally'#013#010+
- ' L.Free;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010,
- 'function TPackage.GetDictionary: TDictionary;'#013#010+
- 'begin'#013#010+
- ' if not assigned(FDictionary) then'#013#010+
- ' FDictionary:=PackageDictionaryClass.Create(Nil);'#013#010+
- ' result := FDictionary;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TPackage.GetVersion : string;'#013#010+
- 'begin'#013#010+
- ' result:=FV','ersion.AsString;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TPackage.SetOptions(const AValue: TStrings);'#013#010+
- 'begin'#013#010+
- ' If (AValue=Nil) or (AValue.Count=0) then'#013#010+
- ' FreeAndNil(Foptions)'#013#010+
- ' else'#013#010+
- ' Options.Assign(AValue);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Procedure TPackage.SetVersion(cons','t V : string);'#013#010+
- 'begin'#013#010+
- ' FVersion.AsString:=V;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TPackage.GetFileName : string;'#013#010+
- 'begin'#013#010+
- ' If (FFileName<>'#039#039') then'#013#010+
- ' Result:=FFileName'#013#010+
- ' else'#013#010+
- ' if not FVersion.Empty then'#013#010+
- ' Result := Name + '#039'-'#039' + FVersion.AsStri','ng'#013#010+
- ' else'#013#010+
- ' Result := Name;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TPackage.GetOptions: TStrings;'#013#010+
- 'begin'#013#010+
- ' If (FOptions=Nil) then'#013#010+
- ' FOptions:=TStringList.Create;'#013#010+
- ' Result:=FOptions;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Procedure TPackage.GetManifest(Manifest : TStrings);'#013#010+
- #013,#010+
- ' procedure AddOSes(const AIndent:string;AOSes:TOSes);'#013#010+
- ' var'#013#010+
- ' IOS : TOS;'#013#010+
- ' begin'#013#010+
- ' if (AOSes=AllOSes) then'#013#010+
- ' exit;'#013#010+
- ' Manifest.Add(AIndent+'#039'<oses>'#039');'#013#010+
- ' for IOS:=low(TOSes) to high(TOSes) do'#013#010+
- ' if IOS in AOSes then'#013#010+
- ' ',' Manifest.Add(Format(AIndent+'#039' <os name="%s"/>'#039',[OSTo'+
- 'String(IOS)]));'#013#010+
- ' Manifest.Add(AIndent+'#039'</oses>'#039');'#013#010+
- ' end;'#013#010+
- #013#010+
- ' procedure AddCPUs(const AIndent:string;ACPUs:TCPUs);'#013#010+
- ' var'#013#010+
- ' ICPU : TCPU;'#013#010+
- ' begin'#013#010+
- ' if (ACPUs=AllCPUs) the','n'#013#010+
- ' exit;'#013#010+
- ' Manifest.Add(AIndent+'#039'<cpus>'#039');'#013#010+
- ' for ICPU:=low(TCPUs) to high(TCPUs) do'#013#010+
- ' if ICPU in ACPUs then'#013#010+
+ ' TSourceTypes; TargetTypes : TTargetTypes);'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ ' S : TSource;'#010+
+ ' T : TTarget;'#010+
+ 'begin'#010+
+ ' For I:=0 to FSources.Count-1 do'#010+
+ ' begin'#010+
+ ' S:=FSources.So','urceItems[I];'#010+
+ ' if (S.SourceType in SourceTypes) then'#010+
+ ' S.GetInstallFiles(List);'#010+
+ ' end;'#010+
+ ' For I:=0 to FTargets.Count-1 do'#010+
+ ' begin'#010+
+ ' T:=FTargets.TargetItems[I];'#010+
+ ' if (T.TargetType in TargetTypes) then'#010+
+ ' T.GetArchi','veFiles(List,Defaults.CPU,Defaults.OS);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TPackage.GetArchiveFiles(List: TStrings; ACPU:TCPU; AOS : TO'+
+ 'S);'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ 'begin'#010+
+ ' // Targets only'#010+
+ ' For I:=0 to FTargets.Count-1 do'#010+
+ ' FTargets.TargetItems[I].GetAr','chiveFiles(List,ACPU,AOS);'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TPackage.GetArchiveSourceFiles(List: TStrings);'#010+
+ 'var'#010+
+ ' i : integer;'#010+
+ 'begin'#010+
+ ' for i := 0 to Sources.Count-1 do'#010+
+ ' List.Add(Sources[i].Name);'#010+
+ 'end;'#010+
+ #010+
+ 'Function TPackage.GetDescription : string;'#010+
+ 'Var'#010+
+ ' FN ',': String;'#010+
+ ' L : TStringList;'#010+
+ 'begin'#010+
+ ' If (FDescription<>'#039#039') then'#010+
+ ' Result:=FDescription'#010+
+ ' else'#010+
+ ' If (FDescriptionFile<>'#039#039') then'#010+
+ ' begin'#010+
+ ' // Always relative to binary name.'#010+
+ ' FN:=ExtractFilePath(ParamStr(0));'#010+
+ ' FN:=','FN+FDescriptionFile;'#010+
+ ' If FileExists(FN) then'#010+
+ ' begin'#010+
+ ' L:=TStringList.Create;'#010+
+ ' Try'#010+
+ ' L.LoadFromFile(FN);'#010+
+ ' Result:=L.Text;'#010+
+ ' Finally'#010+
+ ' L.Free;'#010+
+ ' end',';'#010+
+ ' end;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ 'function TPackage.GetDictionary: TDictionary;'#010+
+ 'begin'#010+
+ ' if not assigned(FDictionary) then'#010+
+ ' FDictionary:=PackageDictionaryClass.Create(Nil);'#010+
+ ' result := FDictionary;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TPackage.GetVersion : st','ring;'#010+
+ 'begin'#010+
+ ' result:=FVersion.AsString;'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TPackage.SetOptions(const AValue: TStrings);'#010+
+ 'begin'#010+
+ ' If (AValue=Nil) or (AValue.Count=0) then'#010+
+ ' FreeAndNil(Foptions)'#010+
+ ' else'#010+
+ ' Options.Assign(AValue);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Procedure TPackage.Set','Version(const V : string);'#010+
+ 'begin'#010+
+ ' FVersion.AsString:=V;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TPackage.GetFileName : string;'#010+
+ 'begin'#010+
+ ' If (FFileName<>'#039#039') then'#010+
+ ' Result:=FFileName'#010+
+ ' else'#010+
+ ' if not FVersion.Empty and not'#010+
+ ' ((Defaults.OS in AllLimit83fsOses) ','or (Defaults.BuildOS in All'+
+ 'Limit83fsOses)) then'#010+
+ ' Result := Name + '#039'-'#039' + FVersion.AsString'#010+
+ ' else'#010+
+ ' Result := ShortName;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TPackage.GetShortName : string;'#010+
+ 'begin'#010+
+ ' if FShortName<>'#039#039' then'#010+
+ ' result := FShortName'#010+
+ ' els','e'#010+
+ ' result := Name;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TPackage.GetOptions: TStrings;'#010+
+ 'begin'#010+
+ ' If (FOptions=Nil) then'#010+
+ ' FOptions:=TStringList.Create;'#010+
+ ' Result:=FOptions;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Procedure TPackage.GetManifest(Manifest : TStrings);'#010+
+ #010+
+ ' procedure AddOSes(const',' AIndent:string;AOSes:TOSes);'#010+
+ ' var'#010+
+ ' IOS : TOS;'#010+
+ ' begin'#010+
+ ' if (AOSes=AllOSes) then'#010+
+ ' exit;'#010+
+ ' Manifest.Add(AIndent+'#039'<oses>'#039');'#010+
+ ' for IOS:=low(TOSes) to high(TOSes) do'#010+
+ ' if IOS in AOSes then'#010+
+ ' Manifest.Add(Format(AIndent+',#039' <os name="%s"/>'#039',[OSToSt'+
+ 'ring(IOS)]));'#010+
+ ' Manifest.Add(AIndent+'#039'</oses>'#039');'#010+
+ ' end;'#010+
+ #010+
+ ' procedure AddCPUs(const AIndent:string;ACPUs:TCPUs);'#010+
+ ' var'#010+
+ ' ICPU : TCPU;'#010+
+ ' begin'#010+
+ ' if (ACPUs=AllCPUs) then'#010+
+ ' exit;'#010+
+ ' Manifest.Add(AIndent+'#039'<cp','us>'#039');'#010+
+ ' for ICPU:=low(TCPUs) to high(TCPUs) do'#010+
+ ' if ICPU in ACPUs then'#010+
' Manifest.Add(Format(AIndent+'#039' <cpu name="%s"/>'#039',[CPUTo'+
- 'String(ICPU)]));'#013#010+
- ' Manifest.Add(AIndent+'#039'</cpus>'#039,');'#013#010+
- ' end;'#013#010+
- #013#010+
- ' function GetXMLVersionString(sMajor, sMinor, sMicro, sBuild: integer'+
- '): string;'#013#010+
- ' begin'#013#010+
- ' Result := '#039'<version'#039';'#013#010+
- ' if sMajor <> -1 then'#013#010+
+ 'String(ICPU)]));'#010+
+ ' Manifest.Add(AIndent+'#039'</cpus>'#039');'#010+
+ ' end;'#010+
+ #010+
+ ' function GetXMLVersionString(sMajor,',' sMinor, sMicro, sBuild: integ'+
+ 'er): string;'#010+
+ ' begin'#010+
+ ' Result := '#039'<version'#039';'#010+
+ ' if sMajor <> -1 then'#010+
' Result := Result + '#039' major="'#039' + IntToStr(sMajor) + '#039'"'+
- #039';'#013#010+
- ' if sMinor <> -1',' then'#013#010+
- ' Result := Result + '#039' minor="'#039' + IntToStr(sMinor) + '#039'"'+
- #039';'#013#010+
- ' if sMicro <> -1 then'#013#010+
+ #039';'#010+
+ ' if sMinor <> -1 then'#010+
+ ' Result := Result + '#039' minor="'#039' + IntToStr(sMin','or) + '#039+
+ '"'#039';'#010+
+ ' if sMicro <> -1 then'#010+
' Result := Result + '#039' micro="'#039' + IntToStr(sMicro) + '#039'"'+
- #039';'#013#010+
- ' if sBuild <> -1 then'#013#010+
- ' Result := Result + '#039' build="'#039' + IntToStr(sBuild) ','+ '#039+
- '"'#039';'#013#010+
- #013#010+
- ' Result := Result + '#039'/>'#039';'#013#010+
- ' end;'#013#010+
- #013#010+
- 'Var'#013#010+
- ' S : String;'#013#010+
- ' i : Integer;'#013#010+
- ' D : TDependency;'#013#010+
- 'begin'#013#010+
- ' With Manifest do'#013#010+
- ' begin'#013#010+
- ' Add(Format('#039'<package name="%s">'#039',[QuoteXml(Name)]));'#013#010+
- #013#010+
- ' Add('#039' '#039' + GetXMLVersionString(FV','ersion.Major,FVersion.Mi'+
- 'nor,FVersion.Micro,FVersion.Build));'#013#010+
- ' AddOSes('#039' '#039',OSes);'#013#010+
- ' AddCPUs('#039' '#039',CPUs);'#013#010+
+ #039';'#010+
+ ' if sBuild <> -1 then'#010+
+ ' Result := Result + '#039' build="'#039' + IntToStr(sBuild) + '#039'"'+
+ #039';'#010+
+ #010+
+ ' Result := Result + '#039'/>'#039';'#010+
+ ' end;'#010+
+ #010+
+ 'Var'#010+
+ ' S : String;',#010+
+ ' i : Integer;'#010+
+ ' D : TDependency;'#010+
+ 'begin'#010+
+ ' With Manifest do'#010+
+ ' begin'#010+
+ ' Add(Format('#039'<package name="%s">'#039',[QuoteXml(Name)]));'#010+
+ #010+
+ ' Add('#039' '#039' + GetXMLVersionString(FVersion.Major,FVersion.Mino'+
+ 'r,FVersion.Micro,FVersion.Build));'#010+
+ ' AddOSes('#039' '#039,',OSes);'#010+
+ ' AddCPUs('#039' '#039',CPUs);'#010+
' Add(Format('#039' <filename>%s</filename>'#039',[QuoteXml(FileName +'+
- ' ZipExt)]));'#013#010+
- ' Add(Format('#039' <author>%s</author>'#039',[QuoteXml(Author',')]));'#013+
- #010+
+ ' ZipExt)]));'#010+
+ ' Add(Format('#039' <author>%s</author>'#039',[QuoteXml(Author)]));'#010+
' Add(Format('#039' <license>%s</license>'#039',[QuoteXml(License)]));'+
- #013#010+
- ' if HomepageURL<>'#039#039' then'#013#010+
+ #010+
+ ' if Home','pageURL<>'#039#039' then'#010+
' Add(Format('#039' <homepageurl>%s</homepageurl>'#039',[QuoteXml(Ho'+
- 'mepageURL)]));'#013#010+
- ' if DownloadURL<>'#039#039' then'#013#010+
- ' Add(Format('#039' <downloadurl>%','s</downloadurl>'#039',[QuoteXml('+
- 'DownloadURL)]));'#013#010+
- ' Add(Format('#039' <email>%s</email>'#039',[QuoteXMl(Email)]));'#013#010+
- ' S:=Description;'#013#010+
- ' If (S<>'#039#039') then'#013#010+
+ 'mepageURL)]));'#010+
+ ' if DownloadURL<>'#039#039' then'#010+
+ ' Add(Format('#039' <downloadurl>%s</downloadurl>'#039',[QuoteXml(Do'+
+ 'wnloadURL)]));'#010+
+ ' Add(Format('#039' <email>%s</email>'#039',[Quot','eXMl(Email)]));'#010+
+ ' S:=Description;'#010+
+ ' If (S<>'#039#039') then'#010+
' Add(Format('#039' <description>%s</description>'#039',[QuoteXML(S)'+
- ']));'#013#010+
- ' If (Dependencies.Count>','0) then'#013#010+
- ' begin'#013#010+
- ' Add('#039' <dependencies>'#039');'#013#010+
- ' for I:=0 to Dependencies.Count-1 do'#013#010+
- ' begin'#013#010+
- ' D:=Dependencies[i];'#013#010+
- ' Add('#039' <dependency>'#039');'#013#010+
- ' Add(Format('#039' <package packagename="%s"/>',#039',[Quote'+
- 'XML(D.Value)]));'#013#010+
- ' if not D.FVersion.Empty then'#013#010+
- ' Add('#039' '#039' + GetXMLVersionString(D.FVersion.Major'+
- ',D.FVersion.Minor,D.FVersion.Micro,D.FVersion.Build));'#013#010+
- ' AddOSes('#039' '#039',D.OSes);'#013#010+
- ' AddCPU','s('#039' '#039',D.CPUs);'#013#010+
- ' Add('#039' </dependency>'#039');'#013#010+
- ' end;'#013#010+
- ' Add('#039' </dependencies>'#039');'#013#010+
- ' end;'#013#010+
- ' Add('#039'</package>'#039');'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
+ ']));'#010+
+ ' If (Dependencies.Count>0) then'#010+
+ ' begin'#010+
+ ' Add('#039' <dependencies>'#039');'#010+
+ ' for I:=0 to Dependencies.Count','-1 do'#010+
+ ' begin'#010+
+ ' D:=Dependencies[i];'#010+
+ ' Add('#039' <dependency>'#039');'#010+
+ ' Add(Format('#039' <package packagename="%s"/>'#039',[Quote'+
+ 'XML(D.Value)]));'#010+
+ ' if not D.FVersion.Empty then'#010+
+ ' Add('#039' '#039' + GetXM','LVersionString(D.FVersion.Maj'+
+ 'or,D.FVersion.Minor,D.FVersion.Micro,D.FVersion.Build));'#010+
+ ' AddOSes('#039' '#039',D.OSes);'#010+
+ ' AddCPUs('#039' '#039',D.CPUs);'#010+
+ ' Add('#039' </dependency>'#039');'#010+
+ ' end;'#010+
+ ' Add('#039' </dependencies>'#039');'#010,
+ ' end;'#010+
+ ' Add('#039'</package>'#039');'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ 'Procedure TPackage.ListPackage(PkgList : TStrings);'#010+
+ #010+
+ ' function GetArchiveName (const APackage: TPackage; ALimit83: boolean'+
+ '): string;'#010+
+ ' begin'#010+
+ '{ Special hack to allow both long and short sourc','e files being recog'+
+ 'nized }'#010+
+ ' if ALimit83 and (Defaults.ZipPrefix = '#039'units-'#039') then'#010+
+ ' result := '#039'u'#039#010+
+ ' else'#010+
+ ' result := Defaults.ZipPrefix;'#010+
+ ' if ALimit83 then'#010+
+ ' result := result + APackage.ShortName'#010+
+ ' else'#010+
+ ' result := r','esult + APackage.Name;'#010+
+ ' result := result + MakeZipSuffix(Defaults.CPU, Defaults.OS, ALimit'+
+ '83);'#010+
+ ' end;'#010+
+ #010+
+ 'Var'#010+
+ ' S : String;'#010+
+ 'begin'#010+
+ '{ if OSes = AllOSes then'#010+
+ ' Exit;}'#010+
+ ' if ((OSes = AllOSes) or (Defaults.OS in OSes)) and'#010+
+ ' ((CPUs = Al','lCPUs) or (Defaults.CPU in CPUs)) or'#010+
+ ' (Defaults.OS = osNone) and (Defaults.CPU = cpuN'+
+ 'one) then'#010+
+ ' begin'#010+
+ ' if Defaults.OS = osNone then'#010+
+ ' PkgList.Add (Format ('#039'# Source %d'#039', [Succ (PkgList.Cou'+
+ 'nt div 2)]))'#010+
+ ' ',' else {if OSes <> AllOSes then}'#010+
+ ' PkgList.Add (Format ('#039'# '#039' + OSToString(Defaults.OS) + '+
+ #039' %d'#039', [Succ (PkgList.Count div 2)]));'#010+
+ ' S := '#039'package='#039' + GetArchiveName (Self, false) + Archive'+
+ 'Extension;'#010+
+ ' if ((ShortName <> Name) or',' (Defaults.ZipPrefix = '#039'units-'#039+
+ ')) and'#010+
+ ' ((Defaults.OS in AllLimit83fsOSes) or (Defaults.OS = osNo'+
+ 'ne)) then'#010+
+ ' S := S + '#039'['#039' + GetArchiveName (Self, true) + ArchiveEx'+
+ 'tension + '#039']'#039';'#010+
+ ' S := S + '#039','#039' + Description;'#010+
+ ' PkgLi','st.Add(S);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
'procedure TPackage.AddPackageVariant(APackageVariant: TPackageVariants'+
- ');'#013#010+
- 'begin'#013#010,
- ' if not assigned(APackageVariant.FMasterPackage) then'#013#010+
- ' APackageVariant.FMasterPackage := Self;'#013#010+
- ' FPackageVariants.Add(APackageVariant);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TPackage.ApplyPackageVariantToCompilerOptions(ACompilerOptio'+
- 'ns: tstrings);'#013#010+
- 'var',#013#010+
- ' i: integer;'#013#010+
- ' PackageVariants: TPackageVariants;'#013#010+
- 'begin'#013#010+
- ' for i := 0 to FPackageVariants.Count-1 do'#013#010+
- ' begin'#013#010+
- ' PackageVariants := TPackageVariants(FPackageVariants.Items[i]);'#013+
- #010+
- ' ACompilerOptions.AddStrings(PackageVariants.Activ','ePackageVariant'+
- '.Options);'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TPackage.SetDefaultPackageVariant;'#013#010+
- 'var'#013#010+
- ' i,j: integer;'#013#010+
- ' PackageVariants: TPackageVariants;'#013#010+
- 'begin'#013#010+
- ' for i := 0 to FPackageVariants.Count-1 do'#013#010+
- ' begin'#013#010+
- ' PackageVariants := TPa','ckageVariants(FPackageVariants.Items[i]);'#013+
+ ');'#010+
+ 'begin'#010+
+ ' if not assigned(APackageVariant.FMasterPackage) then'#010+
+ ' APackageVariant.FMasterPackage := Self;'#010+
+ ' FPackageVariants.Add(APackageVaria','nt);'#010+
+ 'end;'#010+
#010+
+ 'procedure TPackage.ApplyPackageVariantToCompilerOptions(ACompilerOptio'+
+ 'ns: tstrings);'#010+
+ 'var'#010+
+ ' i: integer;'#010+
+ ' PackageVariants: TPackageVariants;'#010+
+ 'begin'#010+
+ ' for i := 0 to FPackageVariants.Count-1 do'#010+
+ ' begin'#010+
+ ' PackageVariants := TPacka','geVariants(FPackageVariants.Items[i]);'#010+
+ ' ACompilerOptions.AddStrings(PackageVariants.ActivePackageVariant.O'+
+ 'ptions);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TPackage.SetDefaultPackageVariant;'#010+
+ 'var'#010+
+ ' i,j: integer;'#010+
+ ' PackageVariants: TPackageVariants;'#010+
+ 'begin',#010+
+ ' for i := 0 to FPackageVariants.Count-1 do'#010+
+ ' begin'#010+
+ ' PackageVariants := TPackageVariants(FPackageVariants.Items[i]);'#010+
' if Installer.FPackageVariantSettings.Values[PackageVariants.Name]<'+
- '>'#039#039' then'#013#010+
- ' PackageVariants.ActivePackageVariantName:= Installer.FPackageVar'+
- 'iantSettings.Values[PackageVariants.Name]'#013#010+
- ' ','else'#013#010+
+ '>'#039#039' then'#010+
+ ' PackageVariants.ActivePackageVar','iantName:= Installer.FPackageV'+
+ 'ariantSettings.Values[PackageVariants.Name]'#010+
+ ' else'#010+
' PackageVariants.ActivePackageVariantName:= PackageVariants.Defau'+
- 'ltPackageVariantName;'#013#010+
+ 'ltPackageVariantName;'#010+
+ ' IncludePath.AddList(PackageVariants.ActivePackageVariant.Incl','ude'+
+ 'Path);'#010+
+ ' SourcePath.AddList(PackageVariants.ActivePackageVariant.SourcePath'+
+ ');'#010+
' Dictionary.AddVariable(PackageVariants.Name,PackageVariants.Active'+
- 'PackageVariantName);'#013#010+
- ' SetUnitsOutputDir(FUnitsOutputDir+'#039'$('#039'+Packag','eVariants.n'+
- 'ame+'#039')'#039');'#013#010+
- ' SetPackageUnitInstallDir(FPackageUnitInstallDir+'#039'$('#039'+Packa'+
- 'geVariants.Name+'#039')'#039');'#013#010+
- ' // Do not add targets f the package is inherited'#013#010+
- ' if PackageVariants.MasterPackage=Self then'#013#010+
- ' for j := 0 to PackageVari','ants.ActivePackageVariant.Targets.cou'+
- 'nt -1 do'#013#010+
+ 'PackageVariantName);'#010+
+ ' SetUnitsOutputDir(IncludeTrailingPathDelimiter(FUnitsOutputDir',')+'+
+ #039'$('#039'+PackageVariants.name+'#039')'#039');'#010+
+ ' SetPackageUnitInstallDir(IncludeTrailingPathDelimiter(FPackageUnit'+
+ 'InstallDir)+'#039'$('#039'+PackageVariants.Name+'#039')'#039');'#010+
+ ' // Do not add targets f the package is inherited'#010+
+ ' if PackageVariants.MasterPackage=Se','lf then'#010+
+ ' for j := 0 to PackageVariants.ActivePackageVariant.Targets.count'+
+ ' -1 do'#010+
' targets.add.assign(PackageVariants.ActivePackageVariant.Target'+
- 's.items[j]);'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TPackage.LoadUnitConfigFromFile(Const AFileName: String);'#013+
- #010+
- 'var'#013#010+
- ' L,L2 : TStrin','gs;'#013#010+
- ' VOS : TOS;'#013#010+
- ' VCPU : TCPU;'#013#010+
- ' i,k : Integer;'#013#010+
- ' DepChecksum : Cardinal;'#013#010+
- ' DepName : String;'#013#010+
- ' D : TDependency;'#013#010+
- ' PackageVariantsStr: string;'#013#010+
- ' PackageVarName: string;'#013#010+
- ' pv: TPackageVariants;'#013#010+
- ' AnIsInheritable: boolean;'#013#010+
- 'begin'#013#010,
- ' L:=TStringList.Create;'#013#010+
- ' Try'#013#010+
- ' ReadIniFile(AFileName,L);'#013#010+
- ' With L do'#013#010+
- ' begin'#013#010+
- ' Version:=Values[KeyVersion];'#013#010+
+ 's.items[j]);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TPackage.LoadUnitConfigFromFile(Const AFileNam','e: String);'#010+
+ 'var'#010+
+ ' L,L2 : TStrings;'#010+
+ ' VOS : TOS;'#010+
+ ' VCPU : TCPU;'#010+
+ ' i,k : Integer;'#010+
+ ' DepChecksum : Cardinal;'#010+
+ ' DepName : String;'#010+
+ ' D : TDependency;'#010+
+ ' PackageVariantsStr: string;'#010+
+ ' PackageVarName: string;'#010+
+ ' pv: TPackageVariants;'#010+
+ ' AnIsInheritab','le: boolean;'#010+
+ 'begin'#010+
+ ' L:=TStringList.Create;'#010+
+ ' Try'#010+
+ ' ReadIniFile(AFileName,L);'#010+
+ ' With L do'#010+
+ ' begin'#010+
+ ' Version:=Values[KeyVersion];'#010+
' InstalledChecksum:=Cardinal(StrToInt64Def(Values[KeyChecksum],'+
- '$ffffffff));'#013#010+
- ' VCPU:=StringToCPU(','Values[KeyCPU]);'#013#010+
- ' VOS:=StringToOS(Values[KeyOS]);'#013#010+
- ' OSes:=[VOS];'#013#010+
- ' CPUs:=[VCPU];'#013#010+
- ' L2:=TStringList.Create;'#013#010+
- ' L2.CommaText:=Values[KeyDepends];'#013#010+
- ' for i:=0 to L2.Count-1 do'#013#010+
- ' begin'#013#010+
- ' ',' DepName:=L2[i];'#013#010+
- ' k:=Pos('#039'|'#039',DepName);'#013#010+
- ' if k>0 then'#013#010+
- ' begin'#013#010+
+ '$ffffffff));'#010+
+ ' VCPU:=','StringToCPU(Values[KeyCPU]);'#010+
+ ' VOS:=StringToOS(Values[KeyOS]);'#010+
+ ' OSes:=[VOS];'#010+
+ ' CPUs:=[VCPU];'#010+
+ ' L2:=TStringList.Create;'#010+
+ ' L2.CommaText:=Values[KeyDepends];'#010+
+ ' for i:=0 to L2.Count-1 do'#010+
+ ' begin'#010+
+ ' ',' DepName:=L2[i];'#010+
+ ' k:=Pos('#039'|'#039',DepName);'#010+
+ ' if k>0 then'#010+
+ ' begin'#010+
' DepChecksum:=StrToInt(Copy(DepName,k+1,Length(DepName)'+
- '-k));'#013#010+
- ' DepName:=Copy(DepName,1,k-1);'#013#010+
- ' e','nd'#013#010+
- ' else'#013#010+
- ' DepChecksum:=$ffffffff;'#013#010+
- ' D:=Dependencies.Add(DepName,CPUs,OSes);'#013#010+
- ' D.RequireChecksum:=DepChecksum;'#013#010+
- ' end;'#013#010+
- ' FreeAndNil(L2);'#013#010+
- ' NeedLibC:=Upcase(Values[KeyNeedL','ibC])='#039'Y'#039';'#013#010+
- ' IsFPMakeAddIn:=Upcase(Values[KeyAddIn])='#039'Y'#039';'#013#010+
- ' Flags.DelimitedText:=Values[KeyFlags];'#013#010+
- #013#010+
- ' i := 1;'#013#010+
- ' repeat'#013#010+
- ' PackageVariantsStr:=Values[KeyPackageVar+inttostr(i)];'#013#010+
- ' if PackageVariantsS','tr<>'#039#039' then'#013#010+
- ' begin'#013#010+
- ' k := pos('#039':'#039',PackageVariantsStr);'#013#010+
- ' if k > 0 then'#013#010+
- ' begin'#013#010+
- ' PackageVarName:=copy(PackageVariantsStr,1,k-1);'#013#010+
- ' if PackageVarName[Length(PackageVa','rName)]='#039'*'#039+
- ' then'#013#010+
- ' begin'#013#010+
- ' SetLength(PackageVarName,Length(PackageVarName)-1);'#013+
- #010+
- ' AnIsInheritable:=true;'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' AnIsInheritable:=fals','e;'#013#010+
- ' PackageVariantsStr:=copy(PackageVariantsStr,k+1,length'+
- '(PackageVariantsStr)-k);'#013#010+
+ '-k));'#010+
+ ' DepName:=Copy(DepName,1,k-1);'#010+
+ ' end',#010+
+ ' else'#010+
+ ' DepChecksum:=$ffffffff;'#010+
+ ' D:=Dependencies.Add(DepName,CPUs,OSes);'#010+
+ ' D.RequireChecksum:=DepChecksum;'#010+
+ ' end;'#010+
+ ' FreeAndNil(L2);'#010+
+ ' NeedLibC:=Upcase(Values[KeyNeedLibC])='#039'Y'#039,';'#010+
+ ' IsFPMakeAddIn:=Upcase(Values[KeyAddIn])='#039'Y'#039';'#010+
+ ' Flags.DelimitedText:=Values[KeyFlags];'#010+
+ #010+
+ ' i := 1;'#010+
+ ' repeat'#010+
+ ' PackageVariantsStr:=Values[KeyPackageVar+inttostr(i)];'#010+
+ ' if PackageVariantsStr<>'#039#039' then'#010+
+ ' ',' begin'#010+
+ ' k := pos('#039':'#039',PackageVariantsStr);'#010+
+ ' if k > 0 then'#010+
+ ' begin'#010+
+ ' PackageVarName:=copy(PackageVariantsStr,1,k-1);'#010+
+ ' if PackageVarName[Length(PackageVarName)]='#039'*'#039' '+
+ 'then'#010+
+ ' ',' begin'#010+
+ ' SetLength(PackageVarName,Length(PackageVarName)-1);'#010+
+ ' AnIsInheritable:=true;'#010+
+ ' end'#010+
+ ' else'#010+
+ ' AnIsInheritable:=false;'#010+
+ ' PackageVa','riantsStr:=copy(PackageVariantsStr,k+1,leng'+
+ 'th(PackageVariantsStr)-k);'#010+
' pv := Installer.AddPackageVariant(PackageVarName, AnIs'+
- 'Inheritable);'#013#010+
- ' AddPackageVariant(pv);'#013#010+
- #013#010+
- ' ',' k := pos('#039','#039',PackageVariantsStr);'#013#010+
- ' while k>0 do'#013#010+
- ' begin'#013#010+
- ' PackageVarName:=copy(PackageVariantsStr,1,k-1);'#013+
+ 'Inheritable);'#010+
+ ' AddPackageVariant(pv);'#010+
#010+
+ ' k := pos('#039','#039',PackageVariantsSt','r);'#010+
+ ' while k>0 do'#010+
+ ' begin'#010+
+ ' PackageVarName:=copy(PackageVariantsStr,1,k-1);'#010+
' PackageVariantsStr:=copy(PackageVariantsStr,k+1,le'+
- 'ngth(Pac','kageVariantsStr)-k);'#013#010+
- ' pv.Add(PackageVarName);'#013#010+
- ' k := pos('#039','#039',PackageVariantsStr);'#013#010+
- ' end;'#013#010+
- ' pv.Add(PackageVariantsStr);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' inc(i',');'#013#010+
- ' until PackageVariantsStr='#039#039';'#013#010+
- #013#010+
- ' end;'#013#010+
- ' Finally'#013#010+
- ' L.Free;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
+ 'ngth(PackageVariantsStr)-k);'#010+
+ ' ',' pv.Add(PackageVarName);'#010+
+ ' k := pos('#039','#039',PackageVariantsStr);'#010+
+ ' end;'#010+
+ ' pv.Add(PackageVariantsStr);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' inc(i);'#010+
+ ' until PackageVariantsStr='#039#039';'#010+
+ #010+
+ ' ',' end;'#010+
+ ' Finally'#010+
+ ' L.Free;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
'procedure TPackage.SaveUnitConfigToStringList(const AStringList: TStri'+
- 'ngs; ACPU: TCPU; AOS: TOS);'#013#010+
- 'Var'#013#010+
- ' Deps : String;'#013#010+
- ' i,j : integer;'#013#010+
- ' D ',': TDependency;'#013#010+
- ' p : TPackage;'#013#010+
- ' PackageVariants : TPackageVariants;'#013#010+
- ' PackageVariantsStr: string;'#013#010+
- 'begin'#013#010+
- ' with AStringList do'#013#010+
- ' begin'#013#010+
- ' Values[KeyName]:=Name;'#013#010+
- ' Values[KeyVersion]:=Version;'#013#010+
- ' // TODO Generate checksu','m based on PPUs'#013#010+
- ' Values[KeyChecksum]:=IntToStr(DateTimeToFileDate(Now));'#013#010+
- ' Values[KeyCPU]:=CPUToString(ACPU);'#013#010+
- ' Values[KeyOS]:=OSToString(AOS);'#013#010+
- ' //Installer;'#013#010+
- ' Values[KeySourcePath]:=IncludeTrailingPathDelimiter(I','ncludeTra'+
- 'ilingPathDelimiter(Installer.BuildEngine.FStartDir)+Directory);'#013#010+
- ' Values[KeyFPMakeOptions]:=trim(Installer.FPMakeOptionsString);'#013+
- #010+
- ' Deps:='#039#039';'#013#010+
- ' for i:=0 to Dependencies.Count-1 do'#013#010+
- ' begin'#013#010+
- ' D:=Dependen','cies[i];'#013#010+
- ' if (ACPU in D.CPUs) and (AOS in D.OSes) then'#013#010+
- ' begin'#013#010+
- ' if Deps<>'#039#039' then'#013#010+
- ' Deps:=Deps+'#039','#039';'#013#010+
- ' Deps:=Deps+D.Value;'#013#010+
- ' P:=TPackage(D.Target);'#013#010+
- ' if ','assigned(P) and (P.InstalledChecksum<>$ffffffff) th'+
- 'en'#013#010+
- ' Deps:=Deps+'#039'|'#039'+IntToStr(P.InstalledChecksum);'#013+
- #010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' Values[KeyDepends]:=Deps;'#013#010+
- ' if Flags.Count>0 then'#013#010+
- ' Values[KeyFlags]:=Fl','ags.DelimitedText;'#013#010+
- ' if NeedLibC then'#013#010+
- ' Values[KeyNeedLibC]:='#039'Y'#039#013#010+
- ' else'#013#010+
- ' Values[KeyNeedLibC]:='#039'N'#039';'#013#010+
- ' if IsFPMakeAddIn then'#013#010+
- ' Values[KeyAddIn]:='#039'Y'#039#013#010+
- ' else'#013#010+
- ' Values[KeyAddIn]:='#039'N'#039';'#013#010+
- ' for i',' := 0 to FPackageVariants.Count-1 do'#013#010+
- ' begin'#013#010+
- ' PackageVariants := TPackageVariants(FPackageVariants.Items[i'+
- ']);'#013#010+
- ' PackageVariantsStr:=PackageVariants.Name;'#013#010+
- ' if PackageVariants.IsInheritable then'#013#010+
- ' ',' PackageVariantsStr:=PackageVariantsStr+'#039'*'#039';'#013#010+
- ' PackageVariantsStr := PackageVariantsStr +'#039':'#039'+Packag'+
- 'eVariants.DefaultPackageVariantName;'#013#010+
- ' for j := 0 to PackageVariants.Count-1 do'#013#010+
- ' if not sametext(PackageVarian','ts.Items[j].Name, PackageVa'+
- 'riants.DefaultPackageVariantName) then'#013#010+
- ' PackageVariantsStr:=PackageVariantsStr+'#039','#039'+Packa'+
- 'geVariants.Items[j].Name;'#013#010+
- ' values[KeyPackageVar+inttostr(i+1)] := PackageVariantsStr;'#013+
- #010+
- ' end;'#013#010,
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
+ 'ngs; ACPU: TCPU; AOS: TOS);'#010+
+ 'Var'#010+
+ ' Deps : String;'#010+
+ ' i,j : integer;'#010+
+ ' D : TDependency;'#010+
+ ' p : TPackage;'#010+
+ ' PackageVariants : TPacka','geVariants;'#010+
+ ' PackageVariantsStr: string;'#010+
+ 'begin'#010+
+ ' with AStringList do'#010+
+ ' begin'#010+
+ ' Values[KeyName]:=Name;'#010+
+ ' Values[KeyVersion]:=Version;'#010+
+ ' // TODO Generate checksum based on PPUs'#010+
+ ' Values[KeyChecksum]:=IntToStr(DateTimeToFile','Date(Now));'#010+
+ ' Values[KeyCPU]:=CPUToString(ACPU);'#010+
+ ' Values[KeyOS]:=OSToString(AOS);'#010+
+ ' //Installer;'#010+
+ ' Values[KeySourcePath]:=IncludeTrailingPathDelimiter(IncludeTrail'+
+ 'ingPathDelimiter(Installer.BuildEngine.FStartDir)+Directory)',';'#010+
+ ' Values[KeyFPMakeOptions]:=trim(Installer.FPMakeOptionsString);'#010+
+ ' Deps:='#039#039';'#010+
+ ' for i:=0 to Dependencies.Count-1 do'#010+
+ ' begin'#010+
+ ' D:=Dependencies[i];'#010+
+ ' if (ACPU in D.CPUs) and (AOS in D.OSes) then'#010+
+ ' ','begin'#010+
+ ' if Deps<>'#039#039' then'#010+
+ ' Deps:=Deps+'#039','#039';'#010+
+ ' Deps:=Deps+D.Value;'#010+
+ ' P:=TPackage(D.Target);'#010+
+ ' if assigned(P) and (P.InstalledChecksum<>$ffffffff) then'+
+ #010+
+ ' Deps:=Deps+'#039'|',#039'+IntToStr(P.InstalledChecksum);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' Values[KeyDepends]:=Deps;'#010+
+ ' if Flags.Count>0 then'#010+
+ ' Values[KeyFlags]:=Flags.DelimitedText;'#010+
+ ' if NeedLibC then'#010+
+ ' Values[KeyNeedLibC]:='#039'Y'#039#010+
+ ' else'#010+
+ ' ',' Values[KeyNeedLibC]:='#039'N'#039';'#010+
+ ' if IsFPMakeAddIn then'#010+
+ ' Values[KeyAddIn]:='#039'Y'#039#010+
+ ' else'#010+
+ ' Values[KeyAddIn]:='#039'N'#039';'#010+
+ ' for i := 0 to FPackageVariants.Count-1 do'#010+
+ ' begin'#010+
+ ' PackageVariants := TPackageVariants(F','PackageVariants.Items'+
+ '[i]);'#010+
+ ' PackageVariantsStr:=PackageVariants.Name;'#010+
+ ' if PackageVariants.IsInheritable then'#010+
+ ' PackageVariantsStr:=PackageVariantsStr+'#039'*'#039';'#010+
+ ' PackageVariantsStr := PackageVariantsStr +'#039':'#039'+P','ack'+
+ 'ageVariants.DefaultPackageVariantName;'#010+
+ ' for j := 0 to PackageVariants.Count-1 do'#010+
+ ' if not sametext(PackageVariants.Items[j].Name, PackageVari'+
+ 'ants.DefaultPackageVariantName) then'#010+
+ ' PackageVariantsStr:=Packag','eVariantsStr+'#039','#039'+Pac'+
+ 'kageVariants.Items[j].Name;'#010+
+ ' values[KeyPackageVar+inttostr(i+1)] := PackageVariantsStr;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
'procedure TPackage.SaveUnitConfigToFile(Const AFileName: String;ACPU:T'+
- 'CPU;AOS:TOS);'#013#010+
- 'Var'#013#010+
- ' F : TFileStream;'#013#010+
- ' L : TStringList;'#013#010+
- 'begin'#013#010+
- ' F:=TFileStream.Create(AFileName,fmCreate or fmShareDenyNone);'#013#010+
- ' L:=TStringList.Cre','ate;'#013#010+
- ' try'#013#010+
- ' SaveUnitConfigToStringList(L,ACPU,AOS);'#013#010+
- ' L.SaveToStream(F);'#013#010+
- ' Finally'#013#010+
- ' L.Free;'#013#010+
- ' F.Free;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- #013#010+
+ 'CPU;AOS:TOS);'#010+
+ 'Var'#010+
+ ' F : T','FileStream;'#010+
+ ' L : TStringList;'#010+
+ 'begin'#010+
+ ' F:=TFileStream.Create(AFileName,fmCreate or fmShareDenyNone);'#010+
+ ' L:=TStringList.Create;'#010+
+ ' try'#010+
+ ' SaveUnitConfigToStringList(L,ACPU,AOS);'#010+
+ ' L.SaveToStream(F);'#010+
+ ' Finally'#010+
+ ' L.Free;'#010+
+ ' F.Free;'#010+
+ ' end;'#010,
+ 'end;'#010+
+ #010+
+ #010+
+ #010+
'{*********************************************************************'+
- '*******'#013#010+
- ' ',' TPackages'#013#010+
+ '*******'#010+
+ ' TPackages'#010+
'**********************************************************************'+
- '******}'#013#010+
- #013#010+
- 'function TPackages.GetPackage(const AName : String): TPackage;'#013#010+
- 'begin'#013#010+
- ' Result:=TPackage(ItemByName(AName))'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TPackages.Get','PackageItem(AIndex : Integer): TPackage;'#013#010+
- 'begin'#013#010+
- ' Result:=TPackage(Items[AIndex]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TPackages.SetPackageItem(AIndex : Integer; const AValue: TPa'+
- 'ckage);'#013#010+
- 'begin'#013#010+
- ' Items[AIndex]:=AValue;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TPackages.AddP','ackage(const AName: String): TPackage;'#013#010+
- 'var'#013#010+
- ' i: integer;'#013#010+
- 'begin'#013#010+
- ' i := IndexOfName(AName);'#013#010+
- ' if i > -1 then'#013#010+
- ' begin'#013#010+
- ' result := PackageItems[i];'#013#010+
- ' Installer.Log(vlWarning,Format(SWarnDuplicatePackage,[AName]))'#013+
- #010+
- ' end'#013#010+
- ' else'#013,#010+
- ' begin'#013#010+
- ' Result:=Add as TPackage;'#013#010+
- ' Result.Name:=AName;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ '******}'#010+
+ #010+
+ 'function TPackages.GetPackage(const',' AName : String): TPackage;'#010+
+ 'begin'#010+
+ ' Result:=TPackage(ItemByName(AName))'#010+
+ 'end;'#010+
+ #010+
+ 'function TPackages.GetPackageItem(AIndex : Integer): TPackage;'#010+
+ 'begin'#010+
+ ' Result:=TPackage(Items[AIndex]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TPackages.SetPackageItem(AIndex : Integer','; const AValue: T'+
+ 'Package);'#010+
+ 'begin'#010+
+ ' Items[AIndex]:=AValue;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TPackages.AddPackage(const AName: String): TPackage;'#010+
+ 'var'#010+
+ ' i: integer;'#010+
+ 'begin'#010+
+ ' i := IndexOfName(AName);'#010+
+ ' if i > -1 then'#010+
+ ' begin'#010+
+ ' result := PackageItems[i];'#010+
+ ' ','Installer.Log(vlWarning,Format(SWarnDuplicatePackage,[AName]))'#010+
+ ' end'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' Result:=Add as TPackage;'#010+
+ ' Result.Name:=AName;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'{*********************************************************************'+
- '*******'#013#010+
- ' TCustomDefaults'#013#010+
- '****************************','****************************************'+
- '********}'#013#010+
- #013#010+
- 'procedure TCustomDefaults.SetCPU(const AValue: TCPU);'#013#010+
- 'begin'#013#010+
- ' FCPU:=AValue;'#013#010+
- ' GlobalDictionary.AddVariable('#039'CPU'#039',CPUToString(FCPU));'#013#010+
- ' RecalcTarget;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TCustomDefaults','.SetOptions(const AValue: TStrings);'#013#010+
- 'begin'#013#010+
- ' If (AValue=Nil) or (AValue.Count=0) then'#013#010+
- ' FreeAndNil(Foptions)'#013#010+
- ' else'#013#010+
- ' Options.Assign(AValue)'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TCustomDefaults.GetBaseInstallDir: String;'#013#010+
- 'begin'#013#010+
- ' If (FBaseInstallD','ir<>'#039#039') then'#013#010+
- ' Result:=FBaseInstallDir'#013#010+
- ' else'#013#010+
- ' if UnixPaths then'#013#010+
+ '*******'#010+
+ ' ',' TCustomDefaults'#010+
+ '**********************************************************************'+
+ '******}'#010+
+ #010+
+ 'procedure TCustomDefaults.SetCPU(const AValue: TCPU);'#010+
+ 'begin'#010+
+ ' FCPU:=AValue;'#010+
+ ' GlobalDictionary.AddVariable('#039'CPU'#039',CPUToStr','ing(FCPU));'#010+
+ ' RecalcTarget;'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TCustomDefaults.SetOptions(const AValue: TStrings);'#010+
+ 'begin'#010+
+ ' If (AValue=Nil) or (AValue.Count=0) then'#010+
+ ' FreeAndNil(Foptions)'#010+
+ ' else'#010+
+ ' Options.Assign(AValue)'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TCustomDefaults.GetB','aseInstallDir: String;'#010+
+ 'begin'#010+
+ ' If (FBaseInstallDir<>'#039#039') then'#010+
+ ' Result:=FBaseInstallDir'#010+
+ ' else'#010+
+ ' if UnixPaths then'#010+
' Result:=Prefix +'#039'lib'#039' + PathDelim + '#039'fpc'#039' + Path'+
- 'Delim + FCompilerVersion + PathDelim'#013#010+
- ' else'#013#010+
- ' Result:=Prefix;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TCustomDefaults.GetBin','InstallDir: String;'#013#010+
- 'begin'#013#010+
- ' If (FBinInstallDir<>'#039#039') then'#013#010+
- ' Result:=FBinInstallDir'#013#010+
- ' else'#013#010+
- ' If UnixPaths then'#013#010+
- ' Result:=Prefix+'#039'bin'#039#013#010+
- ' else'#013#010+
- ' Result:=BaseInstallDir+'#039'bin'#039'+pathdelim+MakeTargetString('+
- 'Defaults.cpu, Default','s.OS);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TCustomDefaults.GetCompiler: String;'#013#010+
- 'begin'#013#010+
- ' If (FCompiler<>'#039#039') then'#013#010+
- ' Result:=FCompiler'#013#010+
- ' else'#013#010+
- ' Result:='#039'fpc'#039';'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TCustomDefaults.GetDocInstallDir: String;'#013#010+
- 'begin'#013#010+
- ' If (FDocInstallDir<','>'#039#039') then'#013#010+
- ' Result:=FDocInstallDir'#013#010+
- ' else'#013#010+
- ' If UnixPaths then'#013#010+
- ' Result:=Prefix+'#039'share'#039'+PathDelim+'#039'doc'#039#013#010+
- ' else'#013#010+
- ' Result:=BaseInstallDir+'#039'docs'#039';'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TCustomDefaults.GetExamplesInstallDir: String;'#013#010+
- 'begin'#013#010+
- ' ','If (FExamplesInstallDir<>'#039#039') then'#013#010+
- ' Result:=FExamplesInstallDir'#013#010+
- ' else'#013#010+
- ' If UnixPaths then'#013#010+
- ' Result:=Prefix+'#039'share'#039'+PathDelim+'#039'doc'#039#013#010+
- ' else'#013#010+
- ' Result:=BaseInstallDir+'#039'examples'#039';'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TCustomDefaults.GetOptions',': TStrings;'#013#010+
- 'begin'#013#010+
- ' If (FOptions=Nil) then'#013#010+
- ' FOptions:=TStringList.Create;'#013#010+
- ' Result:=FOptions;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TCustomDefaults.GetUnitInstallDir: String;'#013#010+
- 'begin'#013#010+
- ' result := FixPath(GlobalDictionary.ReplaceStrings(FUnitInstallDir)',','+
- ' False);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TCustomDefaults.GetLocalUnitDir: String;'#013#010+
- 'begin'#013#010+
- ' Result:=FLocalUnitDir;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TCustomDefaults.GetFPDocOutputDir: String;'#013#010+
- 'begin'#013#010+
- ' If (FFPDocOutputDir<>'#039#039') then'#013#010+
- ' Result:=FixPath(FFPDocOutputDi','r, True)'#013#010+
- ' else'#013#010+
- ' Result:=FixPath('#039'.'#039'+PathDelim+'#039'docs'#039', True);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TCustomDefaults.GetBuildCPU: TCpu;'#013#010+
- 'begin'#013#010+
- ' result := StringToCPU({$I %FPCTARGETCPU%});'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TCustomDefaults.GetBuildOS: TOS;'#013#010+
- 'begin'#013#010+
- ' resul','t := StringToOS({$I %FPCTARGETOS%});'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TCustomDefaults.GetBuildString: String;'#013#010+
- 'begin'#013#010+
- ' result := MakeTargetString(BuildCPU, BuildOS);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TCustomDefaults.GetGlobalUnitDir: String;'#013#010+
- 'begin'#013#010+
- ' If (FGlobalUnitDir','<>'#039#039') then'#013#010+
- ' Result:=FGlobalUnitDir'#013#010+
- ' else'#013#010+
- ' Result:=UnitInstallDir;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomDefaults.SetLocalUnitDir(const AValue: String);'#013#010+
- 'begin'#013#010+
- ' // Use ExpandFileName to support ~/ expansion'#013#010+
- ' if AValue<>'#039#039' then'#013#010+
- ' FLoca','lUnitDir:=IncludeTrailingPathDelimiter(ExpandFileName(AValu'+
- 'e))'#013#010+
- ' else'#013#010+
- ' FLocalUnitDir:='#039#039';'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomDefaults.SetGlobalUnitDir(const AValue: String);'#013#010+
- 'begin'#013#010+
- ' // Use ExpandFileName to support ~/ expansion'#013#010+
- ' if AValue','<>'#039#039' then'#013#010+
+ 'Delim + FCompilerVersion + PathDelim'#010+
+ ' else'#010+
+ ' Result:=Prefix;'#010,
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TCustomDefaults.GetBinInstallDir: String;'#010+
+ 'begin'#010+
+ ' If (FBinInstallDir<>'#039#039') then'#010+
+ ' Result:=FBinInstallDir'#010+
+ ' else'#010+
+ ' If UnixPaths then'#010+
+ ' Result:=Prefix+'#039'bin'#039#010+
+ ' else'#010+
+ ' Result:=BaseInstallDir+'#039'bin'#039'+pathdelim+MakeTarg','etStrin'+
+ 'g(Defaults.cpu, Defaults.OS);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TCustomDefaults.GetCompiler: String;'#010+
+ 'begin'#010+
+ ' If (FCompiler<>'#039#039') then'#010+
+ ' Result:=FCompiler'#010+
+ ' else'#010+
+ ' Result:='#039'fpc'#039';'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TCustomDefaults.GetDocInstallDir: String;'#010+
+ 'begin'#010+
+ ' If (','FDocInstallDir<>'#039#039') then'#010+
+ ' Result:=FDocInstallDir'#010+
+ ' else if (Defaults.BuildOS=freebsd) or (Defaults.BuildOS=dragonfly) t'+
+ 'hen'#010+
+ ' Result:=Prefix+'#039'share'#039'+PathDelim+'#039'doc'#039'+PathDelim+'#039+
+ 'fpc-$(CompilerVersion)'#039'+PathDelim+'#039'$(PackageName)'#039#010+
+ ' else If',' UnixPaths then'#010+
+ ' Result:=Prefix+'#039'share'#039'+PathDelim+'#039'doc'#039'+PathDelim+'#039+
+ 'fpc-$(CompilerVersion)'#039'+PathDelim+'#039'$(PackageName)'#039#010+
+ ' else'#010+
+ ' Result:=BaseInstallDir+'#039'docs'#039'+PathDelim+'#039'$(PackageName'+
+ ')'#039';'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TCustomDefaults.GetExamplesInstall','Dir: String;'#010+
+ 'begin'#010+
+ ' If (FExamplesInstallDir<>'#039#039') then'#010+
+ ' Result:=FExamplesInstallDir'#010+
+ ' else if (Defaults.BuildOS=freebsd) or (Defaults.BuildOS=dragonfly) t'+
+ 'hen'#010+
+ ' Result:=Prefix+'#039'share'#039'+PathDelim+'#039'examples'#039'+PathDe'+
+ 'lim+'#039'fpc-$(CompilerVersio','n)'#039'+PathDelim+'#039'$(PackageName)'#039+
+ '+PathDelim+'#039'examples'#039#010+
+ ' else If UnixPaths then'#010+
+ ' Result:=Prefix+'#039'share'#039'+PathDelim+'#039'doc'#039'+PathDelim+'#039+
+ 'fpc-$(CompilerVersion)'#039'+PathDelim+'#039'$(PackageName)'#039'+PathDel'+
+ 'im+'#039'examples'#039#010+
+ ' else'#010+
+ ' Result:=BaseInstallDir+'#039'ex','amples'#039'+PathDelim+'#039'$(Packa'+
+ 'geName)'#039';'#010+
+ 'end;'#010+
+ #010+
+ 'function TCustomDefaults.GetOptions: TStrings;'#010+
+ 'begin'#010+
+ ' If (FOptions=Nil) then'#010+
+ ' FOptions:=TStringList.Create;'#010+
+ ' Result:=FOptions;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TCustomDefaults.GetPrefix: String;'#010+
+ 'begin'#010+
+ ' // Use ','ExpandFileName to support ~/ expansion'#010+
+ ' if FPrefix<>'#039#039' then'#010+
+ ' Result:=IncludeTrailingPathDelimiter(ExpandFileName(FPrefix))'#010+
+ ' else'#010+
+ ' Result:='#039#039';'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TCustomDefaults.GetUnitInstallDir: String;'#010+
+ 'begin'#010+
+ ' result := FUnitInstallD','ir;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TCustomDefaults.GetUnitConfigFilesInstallDir: String;'#010+
+ 'begin'#010+
+ ' result := FUnitConfigFilesInstallDir;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TCustomDefaults.GetLocalUnitDir: String;'#010+
+ 'begin'#010+
+ ' Result:=FLocalUnitDir;'#010+
+ 'end;'#010+
+ #010+
+ 'function TCustomDefaults.G','etFPDocOutputDir: String;'#010+
+ 'begin'#010+
+ ' If (FFPDocOutputDir<>'#039#039') then'#010+
+ ' Result:=FixPath(FFPDocOutputDir, True)'#010+
+ ' else'#010+
+ ' Result:=FixPath('#039'.'#039'+PathDelim+'#039'docs'#039', True);'#010+
+ 'end;'#010+
+ #010+
+ 'function TCustomDefaults.GetFPUnitSourcePath: String;'#010+
+ 'begin'#010+
+ ' If (FFPUn','itSourcePath='#039#039') or (FFPUnitSourcePath='#039'0'#039')'+
+ ' then'#010+
+ ' result := FFPUnitSourcePath'#010+
+ ' else'#010+
+ ' Result:=FixPath(FFPUnitSourcePath, True);'#010+
+ 'end;'#010+
+ #010+
+ 'function TCustomDefaults.GetBuildCPU: TCpu;'#010+
+ 'begin'#010+
+ ' result := StringToCPU({$I %FPCTARGETCPU%});'#010+
+ 'end;',#010+
+ #010+
+ 'function TCustomDefaults.GetBuildOS: TOS;'#010+
+ 'begin'#010+
+ ' result := StringToOS({$I %FPCTARGETOS%});'#010+
+ 'end;'#010+
+ #010+
+ 'function TCustomDefaults.GetBuildString: String;'#010+
+ 'begin'#010+
+ ' result := MakeTargetString(BuildCPU, BuildOS);'#010+
+ 'end;'#010+
+ #010+
+ 'function TCustomDefaults.GetGl','obalUnitDir: String;'#010+
+ 'begin'#010+
+ ' If (FGlobalUnitDir<>'#039#039') then'#010+
+ ' Result:=FGlobalUnitDir'#010+
+ ' else'#010+
+ ' Result:=UnitInstallDir;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomDefaults.SetLocalUnitDir(const AValue: String);'#010+
+ 'begin'#010+
+ ' // Use ExpandFileName to support ~/ expa','nsion'#010+
+ ' if AValue<>'#039#039' then'#010+
+ ' FLocalUnitDir:=IncludeTrailingPathDelimiter(ExpandFileName(AValue)'+
+ ')'#010+
+ ' else'#010+
+ ' FLocalUnitDir:='#039#039';'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomDefaults.SetGlobalUnitDir(const AValue: String);'#010+
+ 'begin'#010+
+ ' // Use ExpandFileName to suppo','rt ~/ expansion'#010+
+ ' if AValue<>'#039#039' then'#010+
' FGlobalUnitDir:=IncludeTrailingPathDelimiter(ExpandFileName(AValue'+
- '))'#013#010+
- ' else'#013#010+
- ' FGlobalUnitDir:='#039#039';'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TCustomDefaults.IntSetBaseInstallDir(const AValue: String);'#013+
- #010+
- 'begin'#013#010+
- ' if AValue<>'#039#039' then'#013#010+
- ' FBaseInsta','llDir:=IncludeTrailingPathDelimiter(AValue)'#013#010+
- ' else'#013#010+
- ' FBaseInstallDir:='#039#039';'#013#010+
+ '))'#010+
+ ' else'#010+
+ ' FGlobalUnitDir:='#039#039';'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TCustomDefaults.IntSetBaseInstallDir(const AValue: String);'#010+
+ 'begin'#010+
+ ' if AValue<>'#039#039' t','hen'#010+
+ ' FBaseInstallDir:=IncludeTrailingPathDelimiter(AValue)'#010+
+ ' else'#010+
+ ' FBaseInstallDir:='#039#039';'#010+
' GlobalDictionary.AddVariable('#039'baseinstalldir'#039',BaseInstallDir'+
- ');'#013#010+
+ ');'#010+
' GlobalDictionary.AddVariable('#039'bininstalldir'#039',BinInstallDir);'+
- #013#010+
- ' BinInstallDir:='#039#039';'#013#010+
- ' Example','sInstallDir:='#039#039';'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomDefaults.SetBaseInstallDir(const AValue: String);'#013+
- #010+
- 'begin'#013#010+
+ #010+
+ ' BinInstallDir:='#039,#039';'#010+
+ ' ExamplesInstallDir:='#039#039';'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomDefaults.SetBaseInstallDir(const AValue: String);'#010+
+ 'begin'#010+
' // There must be a possibility to skip ExpandFileName. So that the f'+
- 'iles'#013#010+
- ' // can be written into an archive with a relative path.'#013#010+
- ' ','if AValue<>'#039#039' then'#013#010+
- ' // Use ExpandFileName to support ~/ expansion'#013#010+
- ' IntSetBaseInstallDir(ExpandFileName(AValue))'#013#010+
- ' else'#013#010+
- ' IntSetBaseInstallDir(AValue);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomDefaults.SetOS(const AValue: TOS);'#013#010+
- 'begin'#013#010+
- ' FOS:','=AValue;'#013#010+
- ' GlobalDictionary.AddVariable('#039'OS'#039',OSToString(FOS));'#013#010+
- ' Recalctarget;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomDefaults.SetPrefix(const AValue: String);'#013#010+
- 'begin'#013#010+
- ' if FPrefix=AValue then exit;'#013#010+
- ' // Use ExpandFileName to support ~/ expansion'#013#010,
- ' if AValue<>'#039#039' then'#013#010+
- ' FPrefix:=IncludeTrailingPathDelimiter(ExpandFileName(AValue))'#013#010+
- ' else'#013#010+
- ' FPrefix:='#039#039';'#013#010+
- ' GlobalDictionary.AddVariable('#039'prefix'#039',Prefix);'#013#010+
+ 'iles'#010+
+ ' // can be written into an archive with a relative path','.'#010+
+ ' if AValue<>'#039#039' then'#010+
+ ' // Use ExpandFileName to support ~/ expansion'#010+
+ ' IntSetBaseInstallDir(ExpandFileName(AValue))'#010+
+ ' else'#010+
+ ' IntSetBaseInstallDir(AValue);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomDefaults.SetOS(const AValue: TOS);'#010+
+ 'begin'#010+
+ ' FOS:=AValu','e;'#010+
+ ' GlobalDictionary.AddVariable('#039'OS'#039',OSToString(FOS));'#010+
+ ' Recalctarget;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomDefaults.SetPrefix(const AValue: String);'#010+
+ 'begin'#010+
+ ' if FPrefix=AValue then exit;'#010+
+ ' FPrefix:=AValue;'#010+
+ ' GlobalDictionary.AddVariable('#039'prefix'#039',Prefi','x);'#010+
' GlobalDictionary.AddVariable('#039'bininstalldir'#039',BinInstallDir);'+
- #013#010+
- ' BaseInsta','llDir:='#039#039';'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomDefaults.SetTarget(const AValue: String);'#013#010+
- 'Var'#013#010+
- ' P : Integer;'#013#010+
- 'begin'#013#010+
- ' if FTarget<>AValue then'#013#010+
- ' begin'#013#010+
- ' P:=Pos('#039'-'#039',AValue);'#013#010+
- ' If (P<>0) then'#013#010+
- ' begin'#013#010+
- ' FOS:=StringToOS(Sy','stem.Copy(Avalue,P+1,Length(AValue)-P));'+
- #013#010+
- ' GlobalDictionary.AddVariable('#039'OS'#039',OSToString(FOS));'#013+
- #010+
- ' FCPU:=StringToCPU(System.Copy(Avalue,1,P-1));'#013#010+
- ' GlobalDictionary.AddVariable('#039'CPU'#039',CPUToString(FCPU)'+
- ');'#013#010+
- ' end'#013,#010+
- ' else'#013#010+
- ' FOS:=StringToOS(AValue);'#013#010+
- ' FTarget:=AValue;'#013#010+
- ' GlobalDictionary.AddVariable('#039'target'#039',Target);'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TCustomDefaults.SetUnitInstallDir(const AValue: String);'#013+
- #010+
- 'begin'#013#010+
- ' if AValue<>'#039#039' then'#013#010,
- ' FUnitInstallDir:=IncludeTrailingPathDelimiter(AValue)'#013#010+
- ' else'#013#010+
- ' FUnitInstallDir:='#039#039';'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TCustomDefaults.SetZipPrefix(AValue: String);'#013#010+
- 'begin'#013#010+
- ' if FZipPrefix=AValue then Exit;'#013#010+
- ' FZipPrefix:=AValue;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedu','re TCustomDefaults.RecalcTarget;'#013#010+
- 'begin'#013#010+
- ' Ftarget:=MakeTargetString(FCPU,FOS);'#013#010+
- ' GlobalDictionary.AddVariable('#039'target'#039',Target);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TCustomDefaults.CmdLineOptions: String;'#013#010+
- 'begin'#013#010+
- ' If Haveoptions then'#013#010+
- ' Result:=OptionLis','tToString(FOptions);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'constructor TCustomDefaults.Create;'#013#010+
- 'begin'#013#010+
- ' InitDefaults;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomDefaults.InitDefaults;'#013#010+
- 'begin'#013#010+
- '{$ifdef unix}'#013#010+
- ' UnixPaths:=True;'#013#010+
- '{$else}'#013#010+
- ' UnixPaths:=False;'#013#010+
- '{$endif}'#013#010+
- ' FNoFPCCfg:=F','alse;'#013#010+
- ' FCPU:=cpuNone;'#013#010+
- ' FOS:=osNone;'#013#010+
- ' FUnitInstallDir:='#039'$(BaseInstallDir)units/$(target)/$(packagename'+
- ')'#039';'#013#010+
- ' FBuildMode:=bmOneByOne;'#013#010+
- ' FThreadsAmount:=-1;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TCustomDefaults.HaveOptions: Boolean;'#013#010+
- 'begin'#013#010+
- ' Result:=Assig','ned(FOptions);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TCustomDefaults.IsBuildDifferentFromTarget: boolean;'#013#010+
- 'begin'#013#010+
- ' result := IsDifferentFromBuild(CPU,OS);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomDefaults.LocalInit(Const AFileName : String);'#013#010+
- 'Var'#013#010+
- ' FN : String;'#013#010+
- 'begin'#013#010+
- ' ',' FN:=AFileName;'#013#010+
- ' If (FN='#039#039') then'#013#010+
- ' begin'#013#010+
- ' // Environment variable.'#013#010+
- ' FN:=GetEnvironmentVariable('#039'FPMAKECFG'#039');'#013#010+
- ' If (FN<>'#039#039') then'#013#010+
- ' If not FileExists(FN) then'#013#010+
- ' FN:='#039#039';'#013#010+
- ' // User config file fpmake.cfg'#013#010+
- ' If (','FN='#039#039') then'#013#010+
- ' begin'#013#010+
- ' FN:=GetAppConfigFile(False);'#013#010+
- ' If Not FileExists(FN) then'#013#010+
- ' FN:='#039#039';'#013#010+
- ' end;'#013#010+
- ' // Global config file fpmake.cfg'#013#010+
- ' If (FN='#039#039') then'#013#010+
- ' begin'#013#010+
- ' FN:=GetAppConfigFile(True);'#013#010+
- ' If',' Not FileExists(FN) then'#013#010+
- ' FN:='#039#039';'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' If (FN<>'#039#039') and FileExists(FN) then'#013#010+
- ' LoadFromFile(FN);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomDefaults.CompilerDefaults;'#013#010+
- '{$ifdef HAS_UNIT_PROCESS}'#013#010+
- 'var'#013#010+
- ' infoSL : TStringList;'#013#010+
- '{','$endif HAS_UNIT_PROCESS}'#013#010+
- 'begin'#013#010+
- ' if (CPU=cpuNone) or (OS=osNone) or (FCompilerVersion='#039#039') then'#013+
- #010+
- ' begin'#013#010+
- '{$ifdef HAS_UNIT_PROCESS}'#013#010+
- ' // Detect compiler version/target from -i option'#013#010+
- ' infosl:=TStringList.Create;'#013#010+
- ' infosl.','Delimiter:='#039' '#039';'#013#010+
- ' infosl.DelimitedText:=GetCompilerInfo(GetCompiler,'#039'-iVTPTO'#039+
- ', False);'#013#010+
- ' if infosl.Count<>3 then'#013#010+
- ' Raise EInstallerError.Create(SErrInvalidFPCInfo);'#013#010+
- ' if FCompilerVersion='#039#039' then'#013#010+
- ' FCompilerVersi','on:=infosl[0];'#013#010+
- ' if CPU=cpuNone then'#013#010+
- ' CPU:=StringToCPU(infosl[1]);'#013#010+
- ' if OS=osNone then'#013#010+
- ' OS:=StringToOS(infosl[2]);'#013#010+
- '{$else HAS_UNIT_PROCESS}'#013#010+
- ' // Defaults taken from compiler used to build fpmake'#013#010+
- ' if CPU','=cpuNone then'#013#010+
- ' CPU:=StringToCPU({$I %FPCTARGETCPU%});'#013#010+
- ' if OS=osNone then'#013#010+
- ' OS:=StringToOS({$I %FPCTARGETOS%});'#013#010+
- ' if FCompilerVersion='#039#039' then'#013#010+
- ' FCompilerVersion:={$I %FPCVERSION%};'#013#010+
- '{$endif HAS_UNIT_PROCESS}'#013,#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomDefaults.LoadFromFile(Const AFileName: String);'#013#010+
- 'Var'#013#010+
- ' F : TFileStream;'#013#010+
- 'begin'#013#010+
- ' F:=TFileStream.Create(AFileName,fmOpenRead or fmShareDenyNone);'#013#010+
- ' Try'#013#010+
- ' LoadFromStream(F);'#013#010+
- ' Finally'#013#010+
- ' F.Free;'#013,#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomDefaults.SaveToFile(Const AFileName: String);'#013#010+
- 'Var'#013#010+
- ' F : TFileStream;'#013#010+
- 'begin'#013#010+
- ' F:=TFileStream.Create(AFileName,fmCreate or fmShareDenyNone);'#013#010+
- ' Try'#013#010+
- ' SaveToStream(F);'#013#010+
- ' Finally'#013#010+
- ' F.Free;'#013#010+
- ' end;'#013,#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomDefaults.SaveToStream(S : TStream);'#013#010+
- 'Var'#013#010+
- ' L : TStringList;'#013#010+
- 'begin'#013#010+
- ' L:=TStringList.Create;'#013#010+
- ' try'#013#010+
- ' With L do'#013#010+
- ' begin'#013#010+
- ' Values[KeyArchive]:=FArchive;'#013#010+
- ' Values[KeyCompiler]:=FCompiler;'#013#010+
- ' ','Values[KeyCopy]:=FCopy;'#013#010+
- ' Values[KeyMkDir]:=FMkDir;'#013#010+
- ' Values[KeyMove]:=FMove;'#013#010+
- ' Values[KeyOptions]:=CmdLineOptions;'#013#010+
- ' Values[KeyCPU]:=CPUToString(FCPU);'#013#010+
- ' Values[KeyOS]:=OSToString(FOS);'#013#010+
- ' Values[KeyMode]:=Mode','ToString(FMode);'#013#010+
- ' Values[KeyLocalUnitDir]:=FLocalUnitDir;'#013#010+
- ' Values[KeyGlobalUnitDir]:=FGlobalUnitDir;'#013#010+
- ' Values[KeyPrefix]:=FPrefix;'#013#010+
- ' Values[KeyBaseInstallDir]:=FBaseInstallDir;'#013#010+
- ' Values[KeyUnitInstallDir]:=FUnitIn','stallDir;'#013#010+
- ' Values[KeyBinInstallDir]:=FBinInstallDir;'#013#010+
- ' Values[KeyDocInstallDir]:=FDocInstallDir;'#013#010+
- ' Values[KeyExamplesInstallDir]:=FExamplesInstallDir;'#013#010+
- ' Values[KeyRemove]:=FRemove;'#013#010+
- ' Values[KeyRemoveDir]:=FRemoveDi','r;'#013#010+
- ' Values[KeyRemoveTree]:=FRemoveTree;'#013#010+
- ' Values[KeyTarget]:=FTarget;'#013#010+
- ' if FNoFPCCfg then'#013#010+
- ' Values[KeyNoFPCCfg]:='#039'Y'#039';'#013#010+
- ' if FUseEnvironment then'#013#010+
- ' Values[KeyUseEnv]:='#039'Y'#039';'#013#010+
- ' if FInstallExamples then'#013#010+
- ' ',' Values[KeyInstallExamples]:='#039'Y'#039';'#013#010+
- ' if FSkipCrossPrograms then'#013#010+
- ' Values[KeySkipCrossProdrams]:='#039'Y'#039';'#013#010+
- ' end;'#013#010+
- ' L.SaveToStream(S);'#013#010+
- ' Finally'#013#010+
- ' L.Free;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomDefaults.LoadFromStream(S',': TStream);'#013#010+
- 'Var'#013#010+
- ' L : TStrings;'#013#010+
- ' Line : String;'#013#010+
- ' I,P,PC : Integer;'#013#010+
- 'begin'#013#010+
- ' L:=TStringList.Create;'#013#010+
- ' Try'#013#010+
- ' L.LoadFromStream(S);'#013#010+
- ' // Fix lines.'#013#010+
- ' For I:=L.Count-1 downto 0 do'#013#010+
- ' begin'#013#010+
- ' Line:=L[I];'#013#010+
- ' P:=Pos('#039'=',#039',Line);'#013#010+
- ' PC:=Pos('#039';'#039',Line); // Comment line.'#013#010+
- ' If (P=0) or ((PC<>0) and (PC<P)) then'#013#010+
- ' L.Delete(I)'#013#010+
- ' else'#013#010+
+ #010+
+ ' BaseInstallDir:='#039#039';'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomDefaults.SetTarget(const AValue: String);'#010+
+ 'Var'#010+
+ ' P : Integer;'#010+
+ 'begin'#010+
+ ' if FTarget<>AValue then'#010+
+ ' begin'#010+
+ ' P:=Pos('#039'-'#039',AValue)',';'#010+
+ ' If (P<>0) then'#010+
+ ' begin'#010+
+ ' FOS:=StringToOS(System.Copy(Avalue,P+1,Length(AValue)-P));'#010+
+ ' GlobalDictionary.AddVariable('#039'OS'#039',OSToString(FOS));'#010+
+ ' FCPU:=StringToCPU(System.Copy(Avalue,1,P-1));'#010+
+ ' Global','Dictionary.AddVariable('#039'CPU'#039',CPUToString(FCP'+
+ 'U));'#010+
+ ' end'#010+
+ ' else'#010+
+ ' FOS:=StringToOS(AValue);'#010+
+ ' FTarget:=AValue;'#010+
+ ' GlobalDictionary.AddVariable('#039'target'#039',Target);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TCustomDefaults.SetUnitInstallDir(','const AValue: String);'#010+
+ 'begin'#010+
+ ' if AValue<>'#039#039' then'#010+
+ ' FUnitInstallDir:=AValue'#010+
+ ' else'#010+
+ ' FUnitInstallDir:='#039#039';'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomDefaults.SetUnitConfigFilesInstallDir(const AValue: S'+
+ 'tring);'#010+
+ 'begin'#010+
+ ' FUnitConfigFilesInstallDir:=AValue;'#010+
+ 'e','nd;'#010+
+ #010+
+ #010+
+ 'procedure TCustomDefaults.SetZipPrefix(AValue: String);'#010+
+ 'begin'#010+
+ ' if FZipPrefix=AValue then Exit;'#010+
+ ' FZipPrefix:=AValue;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomDefaults.RecalcTarget;'#010+
+ 'begin'#010+
+ ' Ftarget:=MakeTargetString(FCPU,FOS);'#010+
+ ' GlobalDictionary.AddVa','riable('#039'target'#039',Target);'#010+
+ 'end;'#010+
+ #010+
+ 'function TCustomDefaults.CmdLineOptions: String;'#010+
+ 'begin'#010+
+ ' If Haveoptions then'#010+
+ ' Result:=OptionListToString(FOptions);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'constructor TCustomDefaults.Create;'#010+
+ 'begin'#010+
+ ' InitDefaults;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomD','efaults.InitDefaults;'#010+
+ 'begin'#010+
+ '{$ifdef unix}'#010+
+ ' UnixPaths:=True;'#010+
+ '{$else}'#010+
+ ' UnixPaths:=False;'#010+
+ '{$endif}'#010+
+ ' FNoFPCCfg:=False;'#010+
+ ' FCPU:=cpuNone;'#010+
+ ' FOS:=osNone;'#010+
+ ' FUnitInstallDir:='#039'$(baseinstalldir)units/$(target)/$(packagename'+
+ ')'#039';'#010+
+ ' FUnitConfigFilesIn','stallDir:='#039'fpmkinst/$(target)'#039';'#010+
+ ' FBuildMode:=bmOneByOne;'#010+
+ ' FThreadsAmount:=-1;'#010+
+ 'end;'#010+
+ #010+
+ 'function TCustomDefaults.HaveOptions: Boolean;'#010+
+ 'begin'#010+
+ ' Result:=Assigned(FOptions);'#010+
+ 'end;'#010+
+ #010+
+ 'function TCustomDefaults.IsBuildDifferentFromTarget: boolean;'#010+
+ 'beg','in'#010+
+ ' result := IsDifferentFromBuild(CPU,OS);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomDefaults.LocalInit(Const AFileName : String);'#010+
+ 'Var'#010+
+ ' FN : String;'#010+
+ 'begin'#010+
+ ' FN:=AFileName;'#010+
+ ' If (FN='#039#039') then'#010+
+ ' begin'#010+
+ ' // Environment variable.'#010+
+ ' FN:=SysUtils.GetEnviro','nmentVariable('#039'FPMAKECFG'#039');'#010+
+ ' If (FN<>'#039#039') then'#010+
+ ' If not FileExists(FN) then'#010+
+ ' FN:='#039#039';'#010+
+ ' // User config file fpmake.cfg'#010+
+ ' If (FN='#039#039') then'#010+
+ ' begin'#010+
+ ' FN:=GetAppConfigFile(False);'#010+
+ ' If Not FileExists(FN) then'#010+
+ ' ',' FN:='#039#039';'#010+
+ ' end;'#010+
+ ' // Global config file fpmake.cfg'#010+
+ ' If (FN='#039#039') then'#010+
+ ' begin'#010+
+ ' FN:=GetAppConfigFile(True);'#010+
+ ' If Not FileExists(FN) then'#010+
+ ' FN:='#039#039';'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' If (FN<>'#039#039') and FileExists(FN) then'#010+
+ ' LoadFr','omFile(FN);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomDefaults.CompilerDefaults;'#010+
+ '{$ifdef HAS_UNIT_PROCESS}'#010+
+ 'var'#010+
+ ' infoSL : TStringList;'#010+
+ '{$endif HAS_UNIT_PROCESS}'#010+
+ 'begin'#010+
+ ' if (CPU=cpuNone) or ((OS=osNone) and not ExplicitOSNone) or'#010+
+ ' ',' (FCompilerVersi'+
+ 'on='#039#039') then'#010+
+ ' begin'#010+
+ '{$ifdef HAS_UNIT_PROCESS}'#010+
+ ' // Detect compiler version/target from -i option'#010+
+ ' infosl:=TStringList.Create;'#010+
+ ' infosl.Delimiter:='#039' '#039';'#010+
+ ' infosl.DelimitedText:=GetComp','ilerInfo(GetCompiler,'#039'-iVTPTO'+
+ #039', False);'#010+
+ ' if infosl.Count<>3 then'#010+
+ ' Raise EInstallerError.Create(SErrInvalidFPCInfo);'#010+
+ ' if FCompilerVersion='#039#039' then'#010+
+ ' FCompilerVersion:=infosl[0];'#010+
+ ' if CPU=cpuNone then'#010+
+ ' CPU:=St','ringToCPU(infosl[1]);'#010+
+ ' if (OS=osNone) and not ExplicitOSNone then'#010+
+ ' OS:=StringToOS(infosl[2]);'#010+
+ '{$else HAS_UNIT_PROCESS}'#010+
+ ' // Defaults taken from compiler used to build fpmake'#010+
+ ' if CPU=cpuNone then'#010+
+ ' CPU:=StringToCPU','({$I %FPCTARGETCPU%});'#010+
+ ' if (OS=osNone) and not ExplicitOSNone then'#010+
+ ' OS:=StringToOS({$I %FPCTARGETOS%});'#010+
+ ' if FCompilerVersion='#039#039' then'#010+
+ ' FCompilerVersion:={$I %FPCVERSION%};'#010+
+ '{$endif HAS_UNIT_PROCESS}'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'pro','cedure TCustomDefaults.LoadFromFile(Const AFileName: String);'#010+
+ 'Var'#010+
+ ' F : TFileStream;'#010+
+ 'begin'#010+
+ ' F:=TFileStream.Create(AFileName,fmOpenRead or fmShareDenyNone);'#010+
+ ' Try'#010+
+ ' LoadFromStream(F);'#010+
+ ' Finally'#010+
+ ' F.Free;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomD','efaults.SaveToFile(Const AFileName: String);'#010+
+ 'Var'#010+
+ ' F : TFileStream;'#010+
+ 'begin'#010+
+ ' F:=TFileStream.Create(AFileName,fmCreate or fmShareDenyNone);'#010+
+ ' Try'#010+
+ ' SaveToStream(F);'#010+
+ ' Finally'#010+
+ ' F.Free;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomDefaults.SaveToStream(','S : TStream);'#010+
+ 'Var'#010+
+ ' L : TStringList;'#010+
+ 'begin'#010+
+ ' L:=TStringList.Create;'#010+
+ ' try'#010+
+ ' With L do'#010+
+ ' begin'#010+
+ ' Values[KeyArchive]:=FArchive;'#010+
+ ' Values[KeyCompiler]:=FCompiler;'#010+
+ ' Values[KeyCopy]:=FCopy;'#010+
+ ' Values[KeyMkDir]:=FMkDir;'#010+
+ ' ',' Values[KeyMove]:=FMove;'#010+
+ ' Values[KeyOptions]:=CmdLineOptions;'#010+
+ ' Values[KeyCPU]:=CPUToString(FCPU);'#010+
+ ' Values[KeyOS]:=OSToString(FOS);'#010+
+ ' Values[KeyMode]:=ModeToString(FMode);'#010+
+ ' Values[KeyLocalUnitDir]:=FLocalUnitDir;'#010+
+ ' ',' Values[KeyGlobalUnitDir]:=FGlobalUnitDir;'#010+
+ ' Values[KeyPrefix]:=FPrefix;'#010+
+ ' Values[KeyBaseInstallDir]:=FBaseInstallDir;'#010+
+ ' Values[KeyUnitInstallDir]:=FUnitInstallDir;'#010+
+ ' Values[KeyBinInstallDir]:=FBinInstallDir;'#010+
+ ' Values[','KeyDocInstallDir]:=FDocInstallDir;'#010+
+ ' Values[KeyExamplesInstallDir]:=FExamplesInstallDir;'#010+
+ ' Values[KeyRemove]:=FRemove;'#010+
+ ' Values[KeyRemoveDir]:=FRemoveDir;'#010+
+ ' Values[KeyRemoveTree]:=FRemoveTree;'#010+
+ ' Values[KeyTarget]:=FTarge','t;'#010+
+ ' if FNoFPCCfg then'#010+
+ ' Values[KeyNoFPCCfg]:='#039'Y'#039';'#010+
+ ' if FUseEnvironment then'#010+
+ ' Values[KeyUseEnv]:='#039'Y'#039';'#010+
+ ' if FInstallExamples then'#010+
+ ' Values[KeyInstallExamples]:='#039'Y'#039';'#010+
+ ' if FSkipCrossPrograms then'#010+
+ ' Va','lues[KeySkipCrossProdrams]:='#039'Y'#039';'#010+
+ ' end;'#010+
+ ' L.SaveToStream(S);'#010+
+ ' Finally'#010+
+ ' L.Free;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomDefaults.LoadFromStream(S: TStream);'#010+
+ 'Var'#010+
+ ' L : TStrings;'#010+
+ ' Line : String;'#010+
+ ' I,P,PC : Integer;'#010+
+ 'begin'#010+
+ ' L:=TStringList.Cre','ate;'#010+
+ ' Try'#010+
+ ' L.LoadFromStream(S);'#010+
+ ' // Fix lines.'#010+
+ ' For I:=L.Count-1 downto 0 do'#010+
+ ' begin'#010+
+ ' Line:=L[I];'#010+
+ ' P:=Pos('#039'='#039',Line);'#010+
+ ' PC:=Pos('#039';'#039',Line); // Comment line.'#010+
+ ' If (P=0) or ((PC<>0) and (PC<P)) then'#010+
+ ' L.De','lete(I)'#010+
+ ' else'#010+
' L[i]:=Trim(System.Copy(Line,1,P-1)+'#039'='#039'+Trim(System.Cop'+
- 'y(Line,P+1,Length(Line)-P)));'#013#010+
- ' end;'#013#010+
- ' ',' With L do'#013#010+
- ' begin'#013#010+
- ' FArchive:=Values[KeyArchive];'#013#010+
- ' FCompiler:=Values[KeyCompiler];'#013#010+
- ' FCopy:=Values[KeyCopy];'#013#010+
- ' FMkDir:=Values[KeyMkDir];'#013#010+
- ' FMove:=Values[KeyMove];'#013#010+
- ' FRemove:=Values[KeyRemove];'#013#010+
- ' FRe','moveDir:=Values[KeyRemoveDir];'#013#010+
- ' FRemoveTree:=Values[KeyRemoveTree];'#013#010+
- ' Options:=OptionsToStringList(Values[KeyOptions]);'#013#010+
- ' Line:=Values[KeyCPU];'#013#010+
- ' If (Line<>'#039#039') then'#013#010+
- ' FCPU:=StringToCPU(Line);'#013#010+
- ' Line:=Values[','KeyOS];'#013#010+
- ' If (Line<>'#039#039') then'#013#010+
- ' FOS:=StringToOS(Line);'#013#010+
- ' Line:=Values[KeyMode];'#013#010+
- ' If (Line<>'#039#039') then'#013#010+
- ' FMode:=StringToMode(Line);'#013#010+
- ' FTarget:=Values[KeyTarget];'#013#010+
- ' FLocalUnitDir:=Values[KeyLocalUnitDir];'#013,#010+
- ' FGlobalUnitDir:=Values[KeyGlobalUnitDir];'#013#010+
- ' FPrefix:=Values[KeyPrefix];'#013#010+
- ' FBaseInstallDir:=Values[KeyBaseInstallDir];'#013#010+
- ' FUnitInstallDir:=Values[KeyUnitInstallDir];'#013#010+
- ' FBinInstallDir:=Values[KeyBinInstallDir];'#013#010+
- ' ',' FDocInstallDir:=Values[KeyDocInstallDir];'#013#010+
- ' FExamplesInstallDir:=Values[KeyExamplesInstallDir];'#013#010+
- ' FInstallExamples:=(Upcase(Values[KeyInstallExamples])='#039'Y'#039+
- ');'#013#010+
+ 'y(Line,P+1,Length(Line)-P)));'#010+
+ ' end;'#010+
+ ' With L do'#010+
+ ' begin'#010+
+ ' FArchive:=Values[KeyArchive];'#010+
+ ' FCompiler:=Values[KeyCompiler];'#010+
+ ' FCopy:=Value','s[KeyCopy];'#010+
+ ' FMkDir:=Values[KeyMkDir];'#010+
+ ' FMove:=Values[KeyMove];'#010+
+ ' FRemove:=Values[KeyRemove];'#010+
+ ' FRemoveDir:=Values[KeyRemoveDir];'#010+
+ ' FRemoveTree:=Values[KeyRemoveTree];'#010+
+ ' Options:=OptionsToStringList(Values[KeyOptio','ns]);'#010+
+ ' Line:=Values[KeyCPU];'#010+
+ ' If (Line<>'#039#039') then'#010+
+ ' FCPU:=StringToCPU(Line);'#010+
+ ' Line:=Values[KeyOS];'#010+
+ ' If (Line<>'#039#039') then'#010+
+ ' FOS:=StringToOS(Line);'#010+
+ ' Line:=Values[KeyMode];'#010+
+ ' If (Line<>'#039#039') then'#010+
+ ' FMo','de:=StringToMode(Line);'#010+
+ ' FTarget:=Values[KeyTarget];'#010+
+ ' FLocalUnitDir:=Values[KeyLocalUnitDir];'#010+
+ ' FGlobalUnitDir:=Values[KeyGlobalUnitDir];'#010+
+ ' FPrefix:=Values[KeyPrefix];'#010+
+ ' FBaseInstallDir:=Values[KeyBaseInstallDir];'#010+
+ ' ',' FUnitInstallDir:=Values[KeyUnitInstallDir];'#010+
+ ' FBinInstallDir:=Values[KeyBinInstallDir];'#010+
+ ' FDocInstallDir:=Values[KeyDocInstallDir];'#010+
+ ' FExamplesInstallDir:=Values[KeyExamplesInstallDir];'#010+
+ ' FInstallExamples:=(Upcase(Values[K','eyInstallExamples])='#039'Y'#039+
+ ');'#010+
' FSkipCrossPrograms:=(Upcase(Values[KeySkipCrossProdrams])='#039'Y'+
- #039');',#013#010+
- ' FNoFPCCfg:=(Upcase(Values[KeyNoFPCCfg])='#039'Y'#039');'#013#010+
- ' FUseEnvironment:=(Upcase(Values[KeyUseEnv])='#039'Y'#039');'#013#010+
- #013#010+
- ' GlobalDictionary.AddVariable('#039'target'#039',Target);'#013#010+
+ #039');'#010+
+ ' FNoFPCCfg:=(Upcase(Values[KeyNoFPCCfg])='#039'Y'#039');'#010+
+ ' FUseEnvironment:=(Upcase(Values[KeyUseEnv])='#039'Y'#039');'#010+
+ #010+
+ ' GlobalDictionary.AddVariable(',#039'target'#039',Target);'#010+
' GlobalDictionary.AddVariable('#039'baseinstalldir'#039',BaseInstal'+
- 'lDir);'#013#010+
- ' ',' GlobalDictionary.AddVariable('#039'prefix'#039',Prefix);'#013#010+
+ 'lDir);'#010+
+ ' GlobalDictionary.AddVariable('#039'prefix'#039',Prefix);'#010+
' GlobalDictionary.AddVariable('#039'bininstalldir'#039',BinInstallD'+
- 'ir);'#013#010+
- ' end;'#013#010+
- ' Finally'#013#010+
- ' L.Free;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{*****************************************************************','**'+
- '*********'#013#010+
- ' TFPCDefaults'#013#010+
+ 'ir);'#010+
+ ' end;'#010+
+ ' Finally'#010+
+ ' L.Free;'#010,
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{*********************************************************************'+
+ '*******'#010+
+ ' TFPCDefaults'#010+
'**********************************************************************'+
- '******}'#013#010+
- #013#010+
- 'procedure TFPCDefaults.CompilerDefaults;'#013#010+
- 'var'#013#010+
- ' BD : String;'#013#010+
- 'begin'#013#010+
- ' inherited CompilerDefaults;'#013#010+
- #013#010,
- ' // Use the same algorithm as the compiler, see options.pas'#013#010+
- '{$ifdef Unix}'#013#010+
- ' BD:=FixPath(GetEnvironmentVariable('#039'FPCDIR'#039'), False);'#013#010+
- ' if BD='#039#039' then'#013#010+
- ' begin'#013#010+
- ' BD:='#039'/usr/local/lib/fpc/'#039'+FCompilerVersion;'#013#010+
- ' if not DirectoryExist','s(BD) and'#013#010+
+ '******}'#010+
+ #010+
+ 'procedure TFPCDefaults.Comp','ilerDefaults;'#010+
+ 'var'#010+
+ ' BD : String;'#010+
+ 'begin'#010+
+ ' inherited CompilerDefaults;'#010+
+ #010+
+ ' // Use the same algorithm as the compiler, see options.pas'#010+
+ '{$ifdef Unix}'#010+
+ ' BD:=FixPath(GetEnvironmentVariable('#039'FPCDIR'#039'), False);'#010+
+ ' if BD='#039#039' then'#010+
+ ' begin'#010+
+ ' BD:='#039'/u','sr/local/lib/fpc/'#039'+FCompilerVersion;'#010+
+ ' if not DirectoryExists(BD) and'#010+
' DirectoryExists('#039'/usr/lib/fpc/'#039'+FCompilerVersion) the'+
- 'n'#013#010+
- ' BD:='#039'/usr/lib/fpc/'#039'+FCompilerVersion;'#013#010+
- ' end;'#013#010+
- '{$else unix}'#013#010+
- ' BD:=FixPath(GetEnvironmentVariable('#039'FPCDIR'#039'), False);'#013#010+
- ' if BD='#039#039' then'#013#010+
- ' begin'#013#010+
- ' BD',':=ExtractFilePath(FCompiler)+'#039'..'#039';'#013#010+
- ' if not(DirectoryExists(BD+'#039'/units'#039')) and'#013#010+
- ' not(DirectoryExists(BD+'#039'/rtl'#039')) then'#013#010+
- ' BD:=FBaseInstallDir+'#039'..'#039';'#013#010+
- ' end;'#013#010+
- '{$endif unix}'#013#010+
- #013#010+
- ' // Where to install by default'#013#010+
- ' if (FBaseIn','stallDir='#039#039') and (FPrefix='#039#039') then'#013#010+
- ' BaseInstallDir:=BD;'#013#010+
- #013#010+
- ' // Where to find the units by default'#013#010+
- ' if (FGlobalUnitDir='#039#039') then'#013#010+
- ' GlobalUnitDir:=IncludeTrailingPathDelimiter(BD)+'#039'units'#039'+Pa'+
- 'thDelim+Target;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{***************','****************************************************'+
- '*********'#013#010+
- ' TCustomInstaller'#013#010+
+ 'n'#010+
+ ' BD:='#039'/usr/lib/fpc/'#039'+FCompilerVersion;'#010+
+ ' end;'#010+
+ '{$else unix}'#010+
+ ' BD:=FixPath(SysUtils.GetEnvironm','entVariable('#039'FPCDIR'#039'), Fal'+
+ 'se);'#010+
+ ' if BD='#039#039' then'#010+
+ ' begin'#010+
+ ' BD:=ExtractFilePath(FCompiler)+'#039'..'#039';'#010+
+ ' if not(DirectoryExists(BD+'#039'/units'#039')) and'#010+
+ ' not(DirectoryExists(BD+'#039'/rtl'#039')) then'#010+
+ ' BD:=FBaseInstallDir+'#039'..'#039';'#010+
+ ' end;'#010+
+ '{$en','dif unix}'#010+
+ #010+
+ ' // Where to install by default'#010+
+ ' if (FBaseInstallDir='#039#039') and (FPrefix='#039#039') then'#010+
+ ' BaseInstallDir:=BD;'#010+
+ #010+
+ ' // Where to find the units by default'#010+
+ ' if (FGlobalUnitDir='#039#039') then'#010+
+ ' GlobalUnitDir:=IncludeTrailingPathDelimiter(BD)+'#039,'units'#039'+P'+
+ 'athDelim+Target;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{*********************************************************************'+
+ '*******'#010+
+ ' TCustomInstaller'#010+
'**********************************************************************'+
- '******}'#013#010+
- #013#010+
- 'constructor TCustomInstaller.Create(AOwner: TCompo','nent);'#013#010+
- 'begin'#013#010+
- ' FPackageVariantSettings := TStringList.Create;'#013#010+
- ' FPackageVariants := TFPList.Create;'#013#010+
- ' GlobalDictionary:=DictionaryClass.Create(Nil);'#013#010+
- ' AnalyzeOptions;'#013#010+
- ' GlobalDictionary.AddVariable('#039'BaseInstallDir'#039',Defaults.BaseI'+
- 'nstal','lDir);'#013#010+
+ '******}'#010+
+ #010+
+ 'constr','uctor TCustomInstaller.Create(AOwner: TComponent);'#010+
+ 'begin'#010+
+ ' FPackageVariantSettings := TStringList.Create;'#010+
+ ' FPackageVariants := TFPList.Create;'#010+
+ ' GlobalDictionary:=DictionaryClass.Create(Nil);'#010+
+ ' AnalyzeOptions;'#010+
+ ' GlobalDictionary.AddVariabl','e('#039'baseinstalldir'#039',Defaults.Bas'+
+ 'eInstallDir);'#010+
' GlobalDictionary.AddVariable('#039'bininstalldir'#039',Defaults.BinIns'+
- 'tallDir);'#013#010+
- ' GlobalDictionary.AddVariable('#039'Target'#039',Defaults.Target);'#013#010+
+ 'tallDir);'#010+
+ ' GlobalDictionary.AddVariable('#039'Target'#039',Defaults.Target);'#010+
' GlobalDictionary.AddVariable('#039'BuildString'#039',Defaults.BuildStr'+
- 'ing);'#013#010+
- ' GlobalDictionary.AddVariable(',#039'Prefix'#039',Defaults.Prefix);'#013#010+
- ' CreatePackages;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'destructor TCustomInstaller.Destroy;'#013#010+
- 'var'#013#010+
- ' i: integer;'#013#010+
- 'begin'#013#010+
- ' FreePackages;'#013#010+
- ' FreeAndNil(Defaults);'#013#010+
- ' FreeAndNil(GlobalDictionary);'#013#010+
- ' FreeAndNil(FPackageVariantSettings);'#013#010+
- ' f','or i := 0 to FPackageVariants.Count-1 do'#013#010+
- ' begin'#013#010+
- ' if TPackageVariants(FPackageVariants.Items[i]).Owner=Self then'#013+
- #010+
- ' TPackageVariants(FPackageVariants.Items[i]).Free;'#013#010+
- ' end;'#013#010+
- ' FreeAndNil(FPackageVariants);'#013#010+
- ' inherited destroy',';'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TCustomInstaller.GetPackages: TPackages;'#013#010+
- 'begin'#013#010+
- ' result := FPackages;'#013#010+
- 'end;'#013#010+
- #013#010+
+ 'ing',');'#010+
+ ' GlobalDictionary.AddVariable('#039'Prefix'#039',Defaults.Prefix);'#010+
+ ' GlobalDictionary.AddVariable('#039'CompilerVersion'#039',Defaults.Comp'+
+ 'ilerVersion);'#010+
+ ' FNotifyEventCollection := TNotifyEventCollection.create([neaBeforeCo'+
+ 'mpile, neaAfterCompile, neaBefore','Clean, neaAfterClean,'#010+
+ ' neaBeforeIn'+
+ 'stall, neaAfterInstall, neaBeforeArchive, neaAfterArchive,'#010+
+ ' neaBeforeMa'+
+ 'nifest, neaAfterMan','ifest, neaBeforePkgList, neaAfterPkgList,'#010+
+ ' neaBeforeCr'+
+ 'eateBuildEngine, neaAfterCreateBuildengine]);'#010+
+ ' CreatePackages;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'destructor TCustomInstaller.Destroy;'#010+
+ 'var'#010+
+ ' i: integer;'#010+
+ 'be','gin'#010+
+ ' FreePackages;'#010+
+ ' FreeAndNil(Defaults);'#010+
+ ' FreeAndNil(GlobalDictionary);'#010+
+ ' FreeAndNil(FPackageVariantSettings);'#010+
+ ' for i := 0 to FPackageVariants.Count-1 do'#010+
+ ' begin'#010+
+ ' if TPackageVariants(FPackageVariants.Items[i]).Owner=Self then'#010+
+ ' ',' TPackageVariants(FPackageVariants.Items[i]).Free;'#010+
+ ' end;'#010+
+ ' FreeAndNil(FPackageVariants);'#010+
+ ' FreeAndNil(FNotifyEventCollection);'#010+
+ ' inherited destroy;'#010+
+ 'end;'#010+
+ #010+
+ 'function TCustomInstaller.GetPackages: TPackages;'#010+
+ 'begin'#010+
+ ' result := FPackages;'#010+
+ 'end',';'#010+
+ #010+
'procedure TCustomInstaller.Log(Level: TVerboseLevel; Const Msg: String'+
- ');'#013#010+
- 'begin'#013#010+
- ' If Level in FLogLevels then'#013#010+
- ' begin'#013#010+
- ' Writeln(StdO','ut, Msg);'#013#010+
- ' Flush(StdOut);'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomInstaller.CreatePackages;'#013#010+
- 'begin'#013#010+
- ' FPackages:=TPackages.Create(TPackage);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TCustomInstaller.FreePackages;'#013#010+
- 'begin'#013#010+
- ' FreeAndNil(FPackages);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'pro','cedure TCustomInstaller.CreateBuildEngine;'#013#010+
- 'begin'#013#010+
- ' FBuildEngine:=TBuildEngine.Create(Self);'#013#010+
- '// FBuildEngine.Defaults:=Defaults;'#013#010+
- ' FBuildEngine.ListMode:=FListMode;'#013#010+
- ' FBuildEngine.Verbose := (FLogLevels = AllMessages);'#013#010+
- ' FBuildEngine.','OnLog:=@Self.Log;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomInstaller.Error(const Msg: String);'#013#010+
- 'begin'#013#010+
- ' Raise EInstallerError.Create(Msg);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ ');'#010+
+ 'begin'#010+
+ ' If Level in FLogLevels then'#010+
+ ' begin'#010+
+ ' Writeln(StdOut, Msg);'#010+
+ ' Flush(StdOut);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomInstaller.CreatePackages;'#010+
+ 'begin'#010+
+ ' FPacka','ges:=TPackages.Create(TPackage);'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TCustomInstaller.FreePackages;'#010+
+ 'begin'#010+
+ ' FreeAndNil(FPackages);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomInstaller.CreateBuildEngine;'#010+
+ 'begin'#010+
+ ' NotifyEventCollection.CallEvents(neaBeforeCreateBuildEngine, Self);'#010,
+ ' FBuildEngine:=TBuildEngine.Create(Self);'#010+
+ '// FBuildEngine.Defaults:=Defaults;'#010+
+ ' FBuildEngine.ListMode:=FListMode;'#010+
+ ' FBuildEngine.Verbose := (FLogLevels = AllMessages);'#010+
+ ' FBuildEngine.OnLog:=@Self.Log;'#010+
+ ' NotifyEventCollection.CallEvents(ne','aAfterCreateBuildengine, Self);'+
+ #010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomInstaller.Error(const Msg: String);'#010+
+ 'begin'#010+
+ ' Raise EInstallerError.Create(Msg);'#010+
+ 'end;'#010+
+ #010+
+ #010+
'procedure TCustomInstaller.Error(const Fmt: String; Args: array of con'+
- 'st);'#013#010+
- 'begin'#013#010+
- ' Raise EInstallerE','rror.CreateFmt(Fmt,Args);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TCustomInstaller.AddPackage(const AName: String) : TPackage;'#013+
- #010+
- 'begin'#013#010+
- ' result:=Packages.AddPackage(AName);'#013#010+
- 'end;'#013#010+
- #013#010+
+ 'st);'#010+
+ 'begin'#010+
+ ' Raise EInstalle','rError.CreateFmt(Fmt,Args);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TCustomInstaller.AddPackage(const AName: String) : TPackage;'#010+
+ 'begin'#010+
+ ' result:=Packages.AddPackage(AName);'#010+
+ 'end;'#010+
+ #010+
'function TCustomInstaller.AddPackageVariant(AName: string; AIsInherita'+
- 'ble: boo','lean): TPackageVariants;'#013#010+
- 'begin'#013#010+
- ' result := TPackageVariants.Create(TPackageVariant);'#013#010+
- ' result.Name:=AName;'#013#010+
- ' result.FIsInheritable:=AIsInheritable;'#013#010+
- ' FPackageVariants.Add(result);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TCustomInstaller.AnalyzeOptions;'#013#010+
- #013#010,
- ' Function CheckOption(Index : Integer;const Short,Long : String; AddT'+
- 'oOptionString: boolean = true): Boolean;'#013#010+
- ' var'#013#010+
- ' O : String;'#013#010+
- ' begin'#013#010+
- ' O:=Paramstr(Index);'#013#010+
+ 'ble: boolean): ','TPackageVariants;'#010+
+ 'begin'#010+
+ ' result := TPackageVariants.Create(TPackageVariant);'#010+
+ ' result.Name:=AName;'#010+
+ ' result.FIsInheritable:=AIsInheritable;'#010+
+ ' FPackageVariants.Add(result);'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TCustomInstaller.AnalyzeOptions;'#010+
+ #010+
+ ' Function CheckO','ption(Index : Integer;const Short,Long : String; Ad'+
+ 'dToOptionString: boolean = false): Boolean;'#010+
+ ' var'#010+
+ ' O : String;'#010+
+ ' begin'#010+
+ ' O:=Paramstr(Index);'#010+
' Result:=(O='#039'-'#039'+short) or (O='#039'--'#039'+long) or (copy(O,'+
- '1,Length(Long)+3',')=('#039'--'#039'+long+'#039'='#039'));'#013#010+
- ' if AddToOptionString and Result then FFPMakeOptionsString := FFPMa'+
- 'keOptionsString+'#039' '#039'+O;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' Function CheckBuildOptionSetValue(Index: Integer): boolean;'#013#010+
- ' var'#013#010+
- ' O : String;'#013#010+
- ' BuildModeName: string;'#013#010,
- ' P: integer;'#013#010+
- ' begin'#013#010+
- ' O:=Paramstr(Index);'#013#010+
- ' result := O[1]='#039'+'#039';'#013#010+
- ' if result then'#013#010+
- ' begin'#013#010+
- ' P:=Pos('#039'='#039',Paramstr(Index));'#013#010+
- ' If (P=0) then'#013#010+
- ' Error(SErrNeedArgument,[Index,O])'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' ',' BuildModeName:=copy(o,2,P-2);'#013#010+
- ' Delete(O,1,P);'#013#010+
- ' FPackageVariantSettings.Values[BuildModeName] := O;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
+ '1,Length(Long)+3)=('#039'--'#039'+long+'#039'='#039'));'#010+
+ ' ',' if AddToOptionString and Result then'#010+
+ ' FFPMakeOptionsString := FFPMakeOptionsString+'#039' '#039'+O;'#010+
+ ' end;'#010+
+ #010+
+ ' Function CheckBuildOptionSetValue(Index: Integer): boolean;'#010+
+ ' var'#010+
+ ' O : String;'#010+
+ ' BuildModeName: string;'#010+
+ ' P: integer;'#010+
+ ' begin',#010+
+ ' O:=Paramstr(Index);'#010+
+ ' result := O[1]='#039'+'#039';'#010+
+ ' if result then'#010+
+ ' begin'#010+
+ ' P:=Pos('#039'='#039',Paramstr(Index));'#010+
+ ' If (P=0) then'#010+
+ ' Error(SErrNeedArgument,[Index,O])'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' BuildModeName:=copy(o,2,P-2);'#010,
+ ' Delete(O,1,P);'#010+
+ ' FPackageVariantSettings.Values[BuildModeName] := O;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
' Function CheckCustomOption(Index : Integer; out CustOptName: string)'+
- ': Boolean;'#013#010+
- ' ','var'#013#010+
- ' O : String;'#013#010+
- ' i : integer;'#013#010+
- ' begin'#013#010+
- ' result := false;'#013#010+
- ' CustOptName:='#039#039';'#013#010+
- ' O:=Paramstr(Index);'#013#010+
- ' if copy(O,1,2)<>'#039'--'#039' then'#013#010+
- ' Exit;'#013#010+
- ' i := pos('#039'='#039',O);'#013#010+
- ' if i=0 then'#013#010+
- ' Exit;'#013#010+
- ' O:=copy(O,3,i-3);'#013#010+
- ' ',' CustOptName:=O;'#013#010+
- ' Result:=CustomFpmakeCommandlineOptions.IndexOfName(O)>-1;'#013#010+
+ ': Boolean;'#010+
+ ' var'#010+
+ ' O : String;'#010+
+ ' i : integer;'#010+
+ ' beg','in'#010+
+ ' result := false;'#010+
+ ' CustOptName:='#039#039';'#010+
+ ' O:=Paramstr(Index);'#010+
+ ' if copy(O,1,2)<>'#039'--'#039' then'#010+
+ ' Exit;'#010+
+ ' i := pos('#039'='#039',O);'#010+
+ ' if i=0 then'#010+
+ ' Exit;'#010+
+ ' O:=copy(O,3,i-3);'#010+
+ ' CustOptName:=O;'#010+
+ ' Result:=CustomFpmakeCommandlineOpt','ions.IndexOfName(O)>-1;'#010+
' if Result then FFPMakeOptionsString := FFPMakeOptionsString+'#039' '+
- #039'+Paramstr(Index);'#013#010+
- ' end;'#013#010+
- #013#010+
- #013#010+
- ' Function CheckCommand(Index : Integer;const Short,Long : St','ring): '+
- 'Boolean;'#013#010+
- ' var'#013#010+
- ' O : String;'#013#010+
- ' begin'#013#010+
- ' O:=Paramstr(Index);'#013#010+
- ' Result:=(O='#039'-'#039'+short) or (O=long);'#013#010+
- ' end;'#013#010+
- #013#010+
- ' Function OptionArg(Var Index : Integer) : String;'#013#010+
- ' Var'#013#010+
- ' P : Integer;'#013#010+
- ' begin'#013#010+
- ' if (Length(ParamStr(Inde','x))>1) and (Paramstr(Index)[2]<>'#039'-'#039+
- ') then'#013#010+
- ' begin'#013#010+
- ' If Index<ParamCount then'#013#010+
- ' begin'#013#010+
- ' Inc(Index);'#013#010+
- ' Result:=Paramstr(Index);'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' Error(SErrNeedArgument,[Index,ParamStr(Index)]);'#013,#010+
- ' end'#013#010+
- ' else If length(ParamStr(Index))>2 then'#013#010+
- ' begin'#013#010+
- ' P:=Pos('#039'='#039',Paramstr(Index));'#013#010+
- ' If (P=0) then'#013#010+
- ' Error(SErrNeedArgument,[Index,ParamStr(Index)])'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' Result:=Paramstr(Index',');'#013#010+
- ' Delete(Result,1,P);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' function SplitSpaces(var SplitString: string) : string;'#013#010+
- ' var i : integer;'#013#010+
- ' begin'#013#010+
- ' i := pos('#039' '#039',SplitString);'#013#010+
- ' if i > 0 then'#013#010+
- ' begin'#013#010+
- ' result := c','opy(SplitString,1,i-1);'#013#010+
- ' delete(SplitString,1,i);'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' result := SplitString;'#013#010+
- ' SplitString:='#039#039';'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- ' DefaultsFileName : string;'#013#010+
- ' OptString : st','ring;'#013#010+
- ' CustOptName : string;'#013#010+
- 'begin'#013#010+
- ' I:=0;'#013#010+
- ' FListMode:=False;'#013#010+
- ' FLogLevels:=DefaultMessages;'#013#010+
- ' While (I<ParamCount) do'#013#010+
- ' begin'#013#010+
- ' Inc(I);'#013#010+
- ' if CheckOption(I,'#039'v'#039','#039'verbose'#039',false) then'#013#010+
- ' FLogLevels:=AllMessages'#013#010+
- ' else ','if CheckOption(I,'#039'd'#039','#039'debug'#039',false) then'#013+
- #010+
- ' FLogLevels:=AllMessages+[vlDebug]'#013#010+
- ' else if CheckCommand(I,'#039'm'#039','#039'compile'#039') then'#013#010+
- ' FRunMode:=rmCompile'#013#010+
- ' else if CheckCommand(I,'#039'b'#039','#039'build'#039') then'#013#010+
- ' FRunMode:=rmBuild'#013#010+
- ' else if',' CheckCommand(I,'#039'i'#039','#039'install'#039') then'#013#010+
- ' FRunMode:=rmInstall'#013#010+
- ' else if CheckCommand(I,'#039'zi'#039','#039'zipinstall'#039') then'#013+
- #010+
- ' FRunMode:=rmZipInstall'#013#010+
- ' else if CheckCommand(I,'#039'c'#039','#039'clean'#039') then'#013#010+
- ' FRunMode:=rmClean'#013#010+
- ' else if CheckComman','d(I,'#039'dc'#039','#039'distclean'#039') then'#013+
- #010+
- ' FRunMode:=rmDistClean'#013#010+
- ' else if CheckCommand(I,'#039'a'#039','#039'archive'#039') then'#013#010+
- ' FRunMode:=rmarchive'#013#010+
- ' else if CheckCommand(I,'#039'M'#039','#039'manifest'#039') then'#013#010+
- ' FRunMode:=rmManifest'#013#010+
- ' else if CheckOption(I,'#039'h'#039','#039,'help'#039') then'#013#010+
- ' Usage('#039#039',[])'#013#010+
- ' else if Checkoption(I,'#039'C'#039','#039'cpu'#039') then'#013#010+
- ' Defaults.CPU:=StringToCPU(OptionArg(I))'#013#010+
- ' else if Checkoption(I,'#039'O'#039','#039'os'#039') then'#013#010+
- ' Defaults.OS:=StringToOS(OptionArg(I))'#013#010+
- ' else if Checkoption(I,'#039't'#039',',#039'target'#039') then'#013#010+
- ' Defaults.Target:=OptionArg(I)'#013#010+
- ' else if CheckOption(I,'#039'l'#039','#039'list-commands'#039') then'#013+
- #010+
- ' FListMode:=True'#013#010+
- ' else if Checkoption(I,'#039'P'#039','#039'prefix'#039') then'#013#010+
- ' Defaults.Prefix:=OptionArg(I)'#013#010+
- ' else if Checkoption(I,'#039'n',#039','#039'nofpccfg'#039') then'#013#010+
- ' Defaults.NoFPCCfg:=true'#013#010+
- ' else if Checkoption(I,'#039'zp'#039','#039'zipprefix'#039') then'#013#010+
- ' Defaults.ZipPrefix:=OptionArg(I)'#013#010+
- '{$ifdef HAS_UNIT_PROCESS}'#013#010+
- ' else if Checkoption(I,'#039'e'#039','#039'useenv'#039') then'#013#010+
- ' Defaults.UseEnvironm','ent:=true'#013#010+
- '{$endif}'#013#010+
- '{$ifndef NO_THREADING}'#013#010+
- ' else if CheckOption(I,'#039'T'#039','#039'threads'#039') then'#013#010+
- ' Defaults.ThreadsAmount:=StrToIntDef(OptionArg(I),-1)'#013#010+
- '{$endif NO_THREADING}'#013#010+
- ' else if CheckOption(I,'#039'B'#039','#039'baseinstalldir'#039') then'#013+
- #010+
- ' Defau','lts.BaseInstallDir:=OptionArg(I)'#013#010+
- ' else if CheckOption(I,'#039'U'#039','#039'unitinstalldir'#039') then'#013+
- #010+
- ' Defaults.UnitInstallDir:=OptionArg(I)'#013#010+
- ' else if CheckOption(I,'#039'UL'#039','#039'localunitdir'#039') then'#013+
- #010+
- ' Defaults.LocalUnitDir:=OptionArg(I)'#013#010+
- ' else if',' CheckOption(I,'#039'UG'#039','#039'globalunitdir'#039') then'+
- #013#010+
- ' Defaults.GlobalUnitDir:=OptionArg(I)'#013#010+
- ' else if CheckOption(I,'#039'o'#039','#039'options'#039') then'#013#010+
- ' begin'#013#010+
- ' OptString := OptionArg(I);'#013#010+
- ' while OptString <> '#039#039' do'#013#010+
- ' Defaults.Opti','ons.Add(SplitSpaces(OptString));'#013#010+
- ' end'#013#010+
- ' else if CheckOption(I,'#039'r'#039','#039'compiler'#039') then'#013#010+
- ' Defaults.Compiler:=OptionArg(I)'#013#010+
- ' else if CheckOption(I,'#039'f'#039','#039'config'#039') then'#013#010+
- ' DefaultsFileName:=OptionArg(I)'#013#010+
- ' else if CheckOption(','I,'#039'ie'#039','#039'installexamples'#039') th'+
- 'en'#013#010+
- ' Defaults.InstallExamples:=true'#013#010+
- ' else if CheckOption(I,'#039'sp'#039','#039'skipcrossprograms'#039') th'+
- 'en'#013#010+
- ' Defaults.SkipCrossPrograms:=true'#013#010+
- ' else if CheckOption(I,'#039'bu'#039','#039'buildunit'#039') then'#013#010+
- ' Defaults.BuildMo','de:=bmBuildUnit'#013#010+
- ' else if CheckOption(I,'#039'io'#039','#039'ignoreinvalidoption'#039') '+
- 'then'#013#010+
- ' Defaults.IgnoreInvalidOptions:=true'#013#010+
- ' else if CheckOption(I,'#039'd'#039','#039'doc-folder'#039') then'#013#010+
- ' Defaults.FPDocOutputDir:=OptionArg(I)'#013#010+
- ' else if assigned(Cust','omFpmakeCommandlineOptions) and CheckCustom'+
- 'Option(I,CustOptName) then'#013#010+
- ' begin'#013#010+
- ' if not assigned(CustomFpMakeCommandlineValues) then'#013#010+
- ' CustomFpMakeCommandlineValues := TStringList.Create;'#013#010+
- ' CustomFpMakeCommandlineValues','.Values[CustOptName]:=OptionArg(I'+
- ')'#013#010+
- ' end'#013#010+
+ #039'+Paramstr(Index);'#010+
+ ' end;'#010+
+ #010+
+ #010+
+ ' Function CheckCommand(Index : Integer;const Short,Long : String): Bo'+
+ 'olean;'#010+
+ ' var'#010+
+ ' O : String;'#010+
+ ' begin'#010+
+ ' O:=Paramstr','(Index);'#010+
+ ' Result:=(O='#039'-'#039'+short) or (O=long);'#010+
+ ' end;'#010+
+ #010+
+ ' Function OptionArg(Var Index : Integer; AddToOptionString: boolean ='+
+ ' false) : String;'#010+
+ ' Var'#010+
+ ' P : Integer;'#010+
+ ' begin'#010+
+ ' if (Length(ParamStr(Index))>1) and (Paramstr(Index)[2]<>'#039'-'#039+
+ ') ','then'#010+
+ ' begin'#010+
+ ' If Index<ParamCount then'#010+
+ ' begin'#010+
+ ' Inc(Index);'#010+
+ ' Result:=Paramstr(Index);'#010+
+ ' if AddToOptionString then'#010+
+ ' FFPMakeOptionsString := FFPMakeOptionsString+'#039' '#039'+Res'+
+ 'ult;'#010+
+ ' end'#010+
+ ' else'#010+
+ ' ',' Error(SErrNeedArgument,[Index,ParamStr(Index)]);'#010+
+ ' end'#010+
+ ' else If length(ParamStr(Index))>2 then'#010+
+ ' begin'#010+
+ ' P:=Pos('#039'='#039',Paramstr(Index));'#010+
+ ' If (P=0) then'#010+
+ ' Error(SErrNeedArgument,[Index,ParamStr(Index)])'#010+
+ ' el','se'#010+
+ ' begin'#010+
+ ' Result:=Paramstr(Index);'#010+
+ ' Delete(Result,1,P);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ ' function SplitSpaces(var SplitString: string) : string;'#010+
+ ' var i : integer;'#010+
+ ' begin'#010+
+ ' i := pos('#039' '#039',SplitString);'#010+
+ ' if i > 0 t','hen'#010+
+ ' begin'#010+
+ ' result := copy(SplitString,1,i-1);'#010+
+ ' delete(SplitString,1,i);'#010+
+ ' end'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' result := SplitString;'#010+
+ ' SplitString:='#039#039';'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ ' DefaultsFileName : st','ring;'#010+
+ ' OptString : string;'#010+
+ ' CustOptName : string;'#010+
+ 'begin'#010+
+ ' I:=0;'#010+
+ ' FListMode:=False;'#010+
+ ' FLogLevels:=DefaultMessages;'#010+
+ ' While (I<ParamCount) do'#010+
+ ' begin'#010+
+ ' Inc(I);'#010+
+ ' if CheckOption(I,'#039'v'#039','#039'verbose'#039') then'#010+
+ ' FLogLevels:=AllMessages'#010+
+ ' ','else if CheckOption(I,'#039'd'#039','#039'debug'#039') then'#010+
+ ' FLogLevels:=AllMessages+[vlDebug]'#010+
+ ' else if CheckCommand(I,'#039'm'#039','#039'compile'#039') then'#010+
+ ' FRunMode:=rmCompile'#010+
+ ' else if CheckCommand(I,'#039'b'#039','#039'build'#039') then'#010+
+ ' FRunMode:=rmBuild'#010+
+ ' else if CheckC','ommand(I,'#039'i'#039','#039'install'#039') then'#010+
+ ' FRunMode:=rmInstall'#010+
+ ' else if CheckCommand(I,'#039'zi'#039','#039'zipinstall'#039') then'#010+
+ ' FRunMode:=rmZipInstall'#010+
+ ' else if CheckCommand(I,'#039'c'#039','#039'clean'#039') then'#010+
+ ' FRunMode:=rmClean'#010+
+ ' else if CheckCommand(I,'#039'dc'#039','#039'dis','tclean'#039') then'#010+
+ ' FRunMode:=rmDistClean'#010+
+ ' else if CheckCommand(I,'#039'a'#039','#039'archive'#039') then'#010+
+ ' FRunMode:=rmarchive'#010+
+ ' else if CheckCommand(I,'#039'M'#039','#039'manifest'#039') then'#010+
+ ' FRunMode:=rmManifest'#010+
+ ' else if CheckCommand(I,'#039'l'#039','#039'pkglist'#039') then'#010+
+ ' ',' FRunMode:=rmPkgList'#010+
+ ' else if CheckOption(I,'#039'h'#039','#039'help'#039') then'#010+
+ ' Usage('#039#039',[])'#010+
+ ' else if Checkoption(I,'#039'C'#039','#039'cpu'#039') then'#010+
+ ' Defaults.CPU:=StringToCPU(OptionArg(I))'#010+
+ ' else if Checkoption(I,'#039'O'#039','#039'os'#039') then'#010+
+ ' begin'#010+
+ ' Defaul','ts.OS:=StringToOS(OptionArg(I));'#010+
+ ' Defaults.ExplicitOSNone := OptionArg(I) = OSToString(osNone);'#010+
+ ' end'#010+
+ ' else if Checkoption(I,'#039't'#039','#039'target'#039') then'#010+
+ ' Defaults.Target:=OptionArg(I)'#010+
+ ' else if CheckOption(I,'#039'l'#039','#039'list-commands'#039')',' then'#010+
+ ' FListMode:=True'#010+
+ ' else if Checkoption(I,'#039'P'#039','#039'prefix'#039') then'#010+
+ ' Defaults.Prefix:=OptionArg(I)'#010+
+ ' else if Checkoption(I,'#039'n'#039','#039'nofpccfg'#039') then'#010+
+ ' Defaults.NoFPCCfg:=true'#010+
+ ' else if Checkoption(I,'#039'zp'#039','#039'zipprefix'#039') then'#010+
+ ' ',' Defaults.ZipPrefix:=OptionArg(I)'#010+
+ '{$ifdef HAS_UNIT_PROCESS}'#010+
+ ' else if Checkoption(I,'#039'e'#039','#039'useenv'#039') then'#010+
+ ' Defaults.UseEnvironment:=true'#010+
+ '{$endif}'#010+
+ '{$ifndef NO_THREADING}'#010+
+ ' else if CheckOption(I,'#039'T'#039','#039'threads'#039') then'#010+
+ ' Defaults.Thread','sAmount:=StrToIntDef(OptionArg(I),-1)'#010+
+ '{$endif NO_THREADING}'#010+
+ ' else if CheckOption(I,'#039'B'#039','#039'baseinstalldir'#039') then'#010+
+ ' Defaults.BaseInstallDir:=OptionArg(I)'#010+
+ ' else if CheckOption(I,'#039'U'#039','#039'unitinstalldir'#039') then'#010+
+ ' Defaults.UnitInstallDir:','=OptionArg(I)'#010+
+ ' else if CheckOption(I,'#039'UL'#039','#039'localunitdir'#039') then'#010+
+ ' Defaults.LocalUnitDir:=OptionArg(I)'#010+
+ ' else if CheckOption(I,'#039'UG'#039','#039'globalunitdir'#039') then'#010+
+ ' Defaults.GlobalUnitDir:=OptionArg(I)'#010+
+ ' else if CheckOption(I,'#039'o'#039','#039'optio','ns'#039', true) then'#010+
+ ' begin'#010+
+ ' OptString := OptionArg(I, true);'#010+
+ ' while OptString <> '#039#039' do'#010+
+ ' Defaults.Options.Add(SplitSpaces(OptString));'#010+
+ ' end'#010+
+ ' else if CheckOption(I,'#039'r'#039','#039'compiler'#039') then'#010+
+ ' Defaults.Compiler:=','OptionArg(I)'#010+
+ ' else if CheckOption(I,'#039'f'#039','#039'config'#039') then'#010+
+ ' DefaultsFileName:=OptionArg(I)'#010+
+ ' else if CheckOption(I,'#039'ie'#039','#039'installexamples'#039') then'+
+ #010+
+ ' Defaults.InstallExamples:=true'#010+
+ ' else if CheckOption(I,'#039'sp'#039','#039'skipcrossprograms'#039') t',
+ 'hen'#010+
+ ' Defaults.SkipCrossPrograms:=true'#010+
+ ' else if CheckOption(I,'#039'bu'#039','#039'buildunit'#039') then'#010+
+ ' Defaults.BuildMode:=bmBuildUnit'#010+
+ ' else if CheckOption(I,'#039'io'#039','#039'ignoreinvalidoption'#039', '+
+ 'true) then'#010+
+ ' Defaults.IgnoreInvalidOptions:=true'#010+
+ ' ',' else if CheckOption(I,'#039'd'#039','#039'doc-folder'#039') then'#010+
+ ' Defaults.FPDocOutputDir:=OptionArg(I)'#010+
+ ' else if CheckOption(I,'#039'fsp'#039','#039'fpunitsrcpath'#039') then'#010+
+ ' Defaults.FPUnitSourcePath:=OptionArg(I)'#010+
+ ' else if assigned(CustomFpmakeCommandlineOption','s) and CheckCustom'+
+ 'Option(I,CustOptName) then'#010+
+ ' begin'#010+
+ ' if not assigned(CustomFpMakeCommandlineValues) then'#010+
+ ' CustomFpMakeCommandlineValues := TStringList.Create;'#010+
+ ' CustomFpMakeCommandlineValues.Values[CustOptName]:=OptionA','rg(I'+
+ ', true)'#010+
+ ' end'#010+
' else if (not CheckBuildOptionSetValue(I)) and (not Defaults.Ignore'+
- 'InvalidOptions) then'#013#010+
- ' begin'#013#010+
- ' Usage(SErrInValidArgument,[I,ParamStr(I)]);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' If DefaultsFi','leName<>'#039#039' then'#013#010+
- ' Defaults.LocalInit(DefaultsFileName);'#013#010+
- ' Defaults.CompilerDefaults;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'InvalidOptions) then'#010+
+ ' begin'#010+
+ ' Usage(SErrInValidArgument,[I,ParamStr(I)]);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' If DefaultsFileName<>'#039#039' then'#010+
+ ' Defaults.L','ocalInit(DefaultsFileName);'#010+
+ ' Defaults.CompilerDefaults;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'procedure TCustomInstaller.Usage(const FMT: String; Args: array of con'+
- 'st);'#013#010+
- #013#010+
- ' Procedure LogCmd(const LC,Msg : String);'#013#010+
- ' begin'#013#010+
- ' Log(v','lInfo,Format('#039' %-12s %s'#039',[LC,MSG]));'#013#010+
- ' end;'#013#010+
- #013#010+
- ' Procedure LogOption(const C,LC,Msg : String);'#013#010+
- ' begin'#013#010+
- ' Log(vlInfo,Format('#039' -%s --%-16s %s'#039',[C,LC,MSG]));'#013#010+
- ' end;'#013#010+
- #013#010+
- ' Procedure LogArgOption(const C,LC,Msg : String);'#013#010+
- ' begin'#013#010+
- ' if t','rim(c)='#039#039' then'#013#010+
- ' Log(vlInfo,Format('#039' --%-20s %s'#039',[LC+'#039'='#039'+SValu'+
- 'e,MSG]))'#013#010+
- ' else'#013#010+
+ 'st);'#010+
+ #010+
+ ' Procedure LogCmd(const LC,Msg : String);'#010+
+ ' begin'#010+
+ ' Log(vlInfo,Format('#039' %-12s %s'#039',[LC,MSG]));'#010+
+ ' e','nd;'#010+
+ #010+
+ ' Procedure LogOption(const C,LC,Msg : String);'#010+
+ ' begin'#010+
+ ' Log(vlInfo,Format('#039' -%s --%-16s %s'#039',[C,LC,MSG]));'#010+
+ ' end;'#010+
+ #010+
+ ' Procedure LogArgOption(const C,LC,Msg : String);'#010+
+ ' begin'#010+
+ ' if trim(c)='#039#039' then'#010+
+ ' Log(vlInfo,Format('#039' --%-20','s %s'#039',[LC+'#039'='#039'+SVa'+
+ 'lue,MSG]))'#010+
+ ' else'#010+
' Log(vlInfo,Format('#039' -%s --%-20s %s'#039',[C,LC+'#039'='#039'+SV'+
- 'alue,MSG]));'#013#010+
- ' end;'#013#010+
- #013#010+
- 'var'#013#010+
- ' i: Integer;'#013#010+
- 'begin'#013#010+
- ' // Force the Usage to be displayed'#013#010+
- ' Inclu','de(FLogLevels,vlInfo);'#013#010+
- ' If (FMT<>'#039#039') then'#013#010+
- ' Log(vlInfo,Format(Fmt,Args));'#013#010+
- ' Log(vlInfo,Format(SHelpUsage,[Paramstr(0)]));'#013#010+
- ' Log(vlInfo,SHelpCommand);'#013#010+
- ' LogCmd('#039'compile'#039',SHelpCompile);'#013#010+
- ' LogCmd('#039'build'#039',SHelpBuild);'#013#010+
- ' LogCmd('#039'instal','l'#039',SHelpInstall);'#013#010+
- ' LogCmd('#039'clean'#039',SHelpClean);'#013#010+
- ' LogCmd('#039'archive'#039',SHelpArchive);'#013#010+
- ' LogCmd('#039'manifest'#039',SHelpManifest);'#013#010+
- ' LogCmd('#039'zipinstall'#039',SHelpZipInstall);'#013#010+
- ' Log(vlInfo,SHelpCmdOptions);'#013#010+
- ' LogOption('#039'h'#039','#039'help'#039',SHelpHelp);'#013#010+
- ' LogOpti','on('#039'l'#039','#039'list-commands'#039',SHelpList);'#013#010+
- ' LogOption('#039'n'#039','#039'nofpccfg'#039',SHelpNoFPCCfg);'#013#010+
- ' LogOption('#039'v'#039','#039'verbose'#039',SHelpVerbose);'#013#010+
- '{$ifdef HAS_UNIT_PROCESS}'#013#010+
- ' LogOption('#039'e'#039', '#039'useenv'#039', sHelpUseEnvironment);'#013#010+
- '{$endif}'#013#010+
- ' LogOption('#039'ie'#039','#039'installexampl','es'#039',SHelpInstExamples'+
- ');'#013#010+
- ' LogOption('#039'bu'#039','#039'buildunit'#039',SHelpUseBuildUnit);'#013#010+
+ 'alue,MSG]));'#010+
+ ' end;'#010+
+ #010+
+ 'var'#010+
+ ' i: Integer;'#010+
+ 'begin'#010+
+ ' // Force the Usage to be displayed'#010+
+ ' Include(FLogLevels,vlInfo);'#010+
+ ' If (FMT<>'#039#039') then'#010+
+ ' Log(vlInfo,Fo','rmat(Fmt,Args));'#010+
+ ' Log(vlInfo,Format(SHelpUsage,[Paramstr(0)]));'#010+
+ ' Log(vlInfo,SHelpCommand);'#010+
+ ' LogCmd('#039'compile'#039',SHelpCompile);'#010+
+ ' LogCmd('#039'build'#039',SHelpBuild);'#010+
+ ' LogCmd('#039'install'#039',SHelpInstall);'#010+
+ ' LogCmd('#039'clean'#039',SHelpClean);'#010+
+ ' LogCmd('#039'archive'#039',','SHelpArchive);'#010+
+ ' LogCmd('#039'manifest'#039',SHelpManifest);'#010+
+ ' LogCmd('#039'zipinstall'#039',SHelpZipInstall);'#010+
+ ' LogCmd('#039'pkglist'#039',SHelpPkgList);'#010+
+ ' Log(vlInfo,SHelpCmdOptions);'#010+
+ ' LogOption('#039'h'#039','#039'help'#039',SHelpHelp);'#010+
+ ' LogOption('#039'l'#039','#039'list-commands'#039',SHelpList);'#010+
+ ' Log','Option('#039'n'#039','#039'nofpccfg'#039',SHelpNoFPCCfg);'#010+
+ ' LogOption('#039'v'#039','#039'verbose'#039',SHelpVerbose);'#010+
+ '{$ifdef HAS_UNIT_PROCESS}'#010+
+ ' LogOption('#039'e'#039', '#039'useenv'#039', sHelpUseEnvironment);'#010+
+ '{$endif}'#010+
+ ' LogOption('#039'ie'#039','#039'installexamples'#039',SHelpInstExamples);'+
+ #010+
+ ' LogOption('#039'bu'#039','#039'buil','dunit'#039',SHelpUseBuildUnit);'#010+
' LogOption('#039'sp'#039','#039'skipcrossprograms'#039',SHelpSkipCrossPro'+
- 'gs);'#013#010+
- ' LogArgOption('#039'C'#039','#039'cpu'#039',SHelpCPU);'#013#010+
- ' LogArgOption('#039'O'#039','#039'os'#039',SHelpOS);'#013#010+
- ' LogArgOption('#039't'#039','#039'target'#039',SHelp','Target);'#013#010+
- ' LogArgOption('#039'P'#039','#039'prefix'#039',SHelpPrefix);'#013#010+
+ 'gs);'#010+
+ ' LogOption('#039'io'#039','#039'ignoreinvalidoption'#039',SHelpIgnoreInvO'+
+ 'pt);'#010+
+ ' LogArgOption('#039'C'#039','#039'cpu'#039',SHelpCPU);'#010+
+ ' LogArgOption('#039'O'#039','#039'os'#039',SHelpOS);'#010+
+ ' LogArgOption('#039't'#039','#039'targe','t'#039',SHelpTarget);'#010+
+ ' LogArgOption('#039'P'#039','#039'prefix'#039',SHelpPrefix);'#010+
' LogArgOption('#039'B'#039','#039'baseinstalldir'#039',SHelpBaseInstalldi'+
- 'r);'#013#010+
+ 'r);'#010+
' LogArgOption('#039'UL'#039','#039'localunitdir'#039',SHelpLocalUnitdir);'+
- #013#010+
+ #010+
' LogArgOption('#039'UG'#039','#039'globalunitdir'#039',SHelpGlobalUnitdir'+
- ');'#013#010+
- ' LogArgOption','('#039'U'#039','#039'unitinstalldir'#039',SHelpUnitInstall'+
- 'Dir);'#013#010+
- ' LogArgOption('#039'r'#039','#039'compiler'#039',SHelpCompiler);'#013#010+
- ' LogArgOption('#039'f'#039','#039'config'#039',SHelpConfig);'#013#010+
- ' LogArgOption('#039'o'#039','#039'options'#039',SHelpOptions);'#013#010+
- ' LogArgOption('#039'io'#039','#039'ignoreinvalidoption'#039',SHelpIgnoreI'+
- 'nvOpt)',';'#013#010+
+ ');'#010+
+ ' LogArgOpt','ion('#039'U'#039','#039'unitinstalldir'#039',SHelpUnitInstall'+
+ 'Dir);'#010+
+ ' LogArgOption('#039'r'#039','#039'compiler'#039',SHelpCompiler);'#010+
+ ' LogArgOption('#039'f'#039','#039'config'#039',SHelpConfig);'#010+
+ ' LogArgOption('#039'o'#039','#039'options'#039',SHelpOptions);'#010+
' LogArgOption('#039'd'#039', '#039'doc-folder'#039', sHelpFpdocOutputDir)'+
- ';'#013#010+
- ' LogArgOption('#039'zp'#039', '#039'zipprefix'#039', sHelpZipPrefix);'#013+
- #010+
- '{$ifndef NO_THREADING}'#013#010+
- ' LogArgOption('#039'T'#039', '#039'threads'#039', sHelpThreads);'#013#010+
- '{$endif NO_THREADING}'#013#010+
- ' if assigned(CustomFpmakeCommandl','ineOptions) then for i := 0 to Cu'+
- 'stomFpmakeCommandlineOptions.Count-1 do'#013#010+
+ ';'#010+
+ ' Log','ArgOption('#039'fsp'#039', '#039'fpunitsrcpath'#039', sHelpFPUnitSr'+
+ 'cPath);'#010+
+ ' LogArgOption('#039'zp'#039', '#039'zipprefix'#039', sHelpZipPrefix);'#010+
+ '{$ifndef NO_THREADING}'#010+
+ ' LogArgOption('#039'T'#039', '#039'threads'#039', sHelpThreads);'#010+
+ '{$endif NO_THREADING}'#010+
+ ' if assigned(CustomFpmakeCommandlineOption','s) then for i := 0 to Cu'+
+ 'stomFpmakeCommandlineOptions.Count-1 do'#010+
' LogArgOption('#039' '#039',CustomFpmakeCommandlineOptions.Names[i],C'+
- 'ustomFpmakeCommandlineOptions.ValueFromIndex[i]);'#013#010+
- ' Log(vlInfo,'#039#039');'#013#010+
- ' If (FMT<>'#039#039') then'#013#010+
- ' halt(1)'#013,#010+
- ' else'#013#010+
- ' halt(0);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomInstaller.Compile(Force: Boolean);'#013#010+
- 'begin'#013#010+
- ' FBuildEngine.ForceCompile:=Force;'#013#010+
- ' FBuildEngine.Compile(Packages);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomInstaller.Clean(AllTargets: boolean);'#013#010+
- 'begin'#013#010+
- ' ','BuildEngine.Clean(Packages, AllTargets);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomInstaller.Install;'#013#010+
- 'begin'#013#010+
- ' BuildEngine.Install(Packages);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TCustomInstaller.ZipInstall;'#013#010+
- 'begin'#013#010+
- ' BuildEngine.ZipInstall(Packages);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedur','e TCustomInstaller.Archive;'#013#010+
- 'begin'#013#010+
- ' // Force generation of manifest.xml, this is required for the reposi'+
- 'tory'#013#010+
- ' BuildEngine.Manifest(Packages);'#013#010+
- ' BuildEngine.Archive(Packages);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomInstaller.Manifest;'#013#010+
- 'begin'#013#010+
- ' Bu','ildEngine.Manifest(Packages);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCustomInstaller.CheckPackages;'#013#010+
- 'begin'#013#010+
- ' If (Packages.Count=0) then'#013#010+
- ' Error(SErrNoPackagesDefined);'#013#010+
- ' // Check for other obvious errors ?'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TCustomInstaller.Run : Boo','lean;'#013#010+
- 'begin'#013#010+
- ' Result:=True;'#013#010+
- ' try'#013#010+
- ' CheckPackages;'#013#010+
- ' CreateBuildEngine;'#013#010+
- ' Case RunMode of'#013#010+
- ' rmCompile : Compile(False);'#013#010+
- ' rmBuild : Compile(True);'#013#010+
- ' rmInstall : Install;'#013#010+
- ' rmZipInstall : ZipInstall;'#013#010+
- ' ','rmArchive : Archive;'#013#010+
- ' rmClean : Clean(False);'#013#010+
- ' rmDistClean: Clean(True);'#013#010+
- ' rmManifest : Manifest;'#013#010+
- ' end;'#013#010+
- ' except'#013#010+
- ' On E : Exception do'#013#010+
- ' begin'#013#010+
- ' Log(vlError,SErrInstaller);'#013#010+
- ' Log(vlError,E.Message)',';'#013#010+
- ' Result:=False;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' // Force returning an exitcode to the shell'#013#010+
- ' if not Result then'#013#010+
- ' ExitCode:=1;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'ustomFpmakeCommandlineOptions.ValueFromIndex[i]);'#010+
+ ' Log(vlInfo,'#039#039');'#010+
+ ' If (FMT<>'#039#039') then'#010+
+ ' halt(1)'#010+
+ ' else'#010+
+ ' ha','lt(0);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomInstaller.Compile(Force: Boolean);'#010+
+ 'begin'#010+
+ ' FNotifyEventCollection.CallEvents(neaBeforeCompile, Self);'#010+
+ ' FBuildEngine.ForceCompile:=Force;'#010+
+ ' FBuildEngine.Compile(Packages);'#010+
+ ' FNotifyEventCollection.CallEvents(n','eaAfterCompile, Self);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomInstaller.Clean(AllTargets: boolean);'#010+
+ 'begin'#010+
+ ' NotifyEventCollection.CallEvents(neaBeforeClean, Self);'#010+
+ ' BuildEngine.Clean(Packages, AllTargets);'#010+
+ ' NotifyEventCollection.CallEvents(neaAfterClean',', Self);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomInstaller.Install;'#010+
+ 'begin'#010+
+ ' NotifyEventCollection.CallEvents(neaBeforeInstall, self);'#010+
+ ' BuildEngine.Install(Packages);'#010+
+ ' NotifyEventCollection.CallEvents(neaAfterInstall, self);'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TCustomInstall','er.ZipInstall;'#010+
+ 'begin'#010+
+ ' NotifyEventCollection.CallEvents(neaBeforeInstall, self);'#010+
+ ' BuildEngine.ZipInstall(Packages);'#010+
+ ' NotifyEventCollection.CallEvents(neaAfterInstall, self);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomInstaller.Archive;'#010+
+ 'begin'#010+
+ ' // Force gene','ration of manifest.xml, this is required for the repo'+
+ 'sitory'#010+
+ ' BuildEngine.Manifest(Packages);'#010+
+ ' NotifyEventCollection.CallEvents(neaBeforeArchive, self);'#010+
+ ' BuildEngine.Archive(Packages);'#010+
+ ' NotifyEventCollection.CallEvents(neaAfterArchive, s','elf);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomInstaller.Manifest;'#010+
+ 'begin'#010+
+ ' NotifyEventCollection.CallEvents(neaBeforeManifest, self);'#010+
+ ' BuildEngine.Manifest(Packages);'#010+
+ ' NotifyEventCollection.CallEvents(neaAfterManifest, self);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomInsta','ller.PkgList;'#010+
+ 'begin'#010+
+ ' NotifyEventCollection.CallEvents(neaBeforePkgList, self);'#010+
+ ' BuildEngine.PkgList(Packages);'#010+
+ ' NotifyEventCollection.CallEvents(neaAfterPkgList, self);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TCustomInstaller.CheckPackages;'#010+
+ 'begin'#010+
+ ' If (Package','s.Count=0) then'#010+
+ ' Error(SErrNoPackagesDefined);'#010+
+ ' // Check for other obvious errors ?'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TCustomInstaller.Run : Boolean;'#010+
+ 'begin'#010+
+ ' Result:=True;'#010+
+ ' try'#010+
+ ' CheckPackages;'#010+
+ ' CreateBuildEngine;'#010+
+ ' Case RunMode of'#010+
+ ' rmCompil','e : Compile(False);'#010+
+ ' rmBuild : Compile(True);'#010+
+ ' rmInstall : Install;'#010+
+ ' rmZipInstall : ZipInstall;'#010+
+ ' rmArchive : Archive;'#010+
+ ' rmClean : Clean(False);'#010+
+ ' rmDistClean: Clean(True);'#010+
+ ' rmManifest : Manifest;'#010+
+ ' ','rmPkgList : PkgList;'#010+
+ ' end;'#010+
+ ' except'#010+
+ ' On E : Exception do'#010+
+ ' begin'#010+
+ ' Log(vlError,SErrInstaller);'#010+
+ ' Log(vlError,E.Message);'#010+
+ ' Result:=False;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' // Force returning an exitcode to the shell'#010+
+ ' if not Result ','then'#010+
+ ' ExitCode:=1;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'{*********************************************************************'+
- '*******'#013#010+
- ' ',' TFPCInstaller'#013#010+
+ '*******'#010+
+ ' TFPCInstaller'#010+
'**********************************************************************'+
- '******}'#013#010+
- #013#010+
- 'constructor TFPCInstaller.Create(AOwner: TComponent);'#013#010+
- 'begin'#013#010+
- ' if assigned(Defaults) then'#013#010+
- ' Error(SErrAlreadyInitialized);'#013#010+
- ' D','efaults:=TFPCDefaults.Create;'#013#010+
- ' inherited Create(AOwner);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{*********************************************************************'+
- '*******'#013#010+
- ' TBasicInstaller'#013#010+
- '*****************************************','***************************'+
- '********}'#013#010+
- #013#010+
- 'constructor TBasicInstaller.Create(AOwner: TComponent);'#013#010+
- 'begin'#013#010+
- ' if assigned(Defaults) then'#013#010+
- ' Error(SErrAlreadyInitialized);'#013#010+
- ' Defaults:=TBasicDefaults.Create;'#013#010+
- ' inherited Create(AOwner);'#013#010+
- 'end;'#013,#010+
- #013#010+
- #013#010+
- '{*********************************************************************'+
- '*******'#013#010+
- ' TBuildEngine'#013#010+
+ '******}'#010+
+ #010+
+ 'construc','tor TFPCInstaller.Create(AOwner: TComponent);'#010+
+ 'begin'#010+
+ ' if assigned(Defaults) then'#010+
+ ' Error(SErrAlreadyInitialized);'#010+
+ ' Defaults:=TFPCDefaults.Create;'#010+
+ ' inherited Create(AOwner);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{*******************************************************','************'+
+ '*********'#010+
+ ' TBasicInstaller'#010+
'**********************************************************************'+
- '******}'#013#010+
- #013#010+
- 'constructor TBuildEngine.Cre','ate(AOwner: TComponent);'#013#010+
- 'begin'#013#010+
- ' inherited Create(AOwner);'#013#010+
- ' // Maybe this should be the current directory ?'#013#010+
- ' // Or have it as a command-line option.'#013#010+
+ '******}'#010+
+ #010+
+ 'constructor TBasicInstaller.Create(AOwner: TComponent);'#010+
+ 'begin'#010+
+ ' if assigned(Defaults) then',#010+
+ ' Error(SErrAlreadyInitialized);'#010+
+ ' Defaults:=TBasicDefaults.Create;'#010+
+ ' inherited Create(AOwner);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{*********************************************************************'+
+ '*******'#010+
+ ' TBuildEngine'#010+
+ '**********','**********************************************************'+
+ '********}'#010+
+ #010+
+ 'constructor TBuildEngine.Create(AOwner: TComponent);'#010+
+ 'begin'#010+
+ ' inherited Create(AOwner);'#010+
+ ' // Maybe this should be the current directory ?'#010+
+ ' // Or have it as a command-line ','option.'#010+
' // Would allow to put all '#039'installers'#039' in one dir and call t'+
- 'hem'#013#010+
- ' // With --start','-dir=/path/to/sources.'#013#010+
- ' FStartDir:=includeTrailingPathDelimiter(GetCurrentDir);'#013#010+
- ' FExternalPackages:=TPackages.Create(TPackage);'#013#010+
- #013#010+
- '{$ifndef NO_THREADING}'#013#010+
- ' InitCriticalSection(FGeneralCriticalSection);'#013#010+
- '{$endif NO_THREADING}'#013#010+
- 'end;'#013#010+
- #013#010+
- #013,#010+
- 'destructor TBuildEngine.Destroy;'#013#010+
- 'begin'#013#010+
- ' FreeAndNil(FExternalPackages);'#013#010+
- #013#010+
- '{$ifndef NO_THREADING}'#013#010+
- ' DoneCriticalsection(FGeneralCriticalSection);'#013#010+
- '{$endif NO_THREADING}'#013#010+
- #013#010+
- ' inherited Destroy;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.Error(con','st Msg: String);'#013#010+
- 'begin'#013#010+
- ' Raise EInstallerError.Create(Msg);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'hem'#010+
+ ' // With --start-dir=/path/to/sources.'#010+
+ ' FStartDir:=includeTrailingPathDelimiter(GetCurrentDir);'#010+
+ ' FExternalPackages:=TPackages.Create(TPackage);'#010+
+ ' FNotifyEventColle','ction := TNotifyEventCollection.create([neaAfterC'+
+ 'ompile, neaBeforeCompile, neaAfterInstall, neaBeforeInstall,'#010+
+ ' neaAfterCle'+
+ 'an, neaBeforeClean, neaAfterArchive, neaBeforeArchive,'#010+
+ ' ',' neaAfterM'+
+ 'anifest, neaBeforeManifest, neaAfterPkgList, neaBeforePkgList]);'#010+
+ '{$ifndef NO_THREADING}'#010+
+ ' InitCriticalSection(FGeneralCriticalSection);'#010+
+ '{$endif NO_THREADING}'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'destructor T','BuildEngine.Destroy;'#010+
+ 'begin'#010+
+ ' FreeAndNil(FExternalPackages);'#010+
+ ' FreeAndNil(FNotifyEventCollection);'#010+
+ #010+
+ '{$ifndef NO_THREADING}'#010+
+ ' DoneCriticalsection(FGeneralCriticalSection);'#010+
+ '{$endif NO_THREADING}'#010+
+ #010+
+ ' inherited Destroy;'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TBuildEngi','ne.AddFileToArchive(const APackage: TPackage; co'+
+ 'nst ASourceFileName, ADestFileName: String);'#010+
+ #010+
+ ' function GetArchiveName: string;'#010+
+ ' begin'#010+
+ ' result := Defaults.ZipPrefix;'#010+
+ ' if Defaults.BuildOS in AllLimit83fsOses then'#010+
+ ' result := resu','lt + APackage.ShortName'#010+
+ ' else'#010+
+ ' result := result + APackage.Name;'#010+
+ ' result := result + MakeZipSuffix(Defaults.CPU, Defaults.OS);'#010+
+ ' end;'#010+
+ #010+
+ '{$ifdef UNIX}'#010+
+ 'var'#010+
+ ' FileStat: stat;'#010+
+ '{$endif UNIX}'#010+
+ 'begin'#010+
+ '{$ifdef CREATE_TAR_FILE}'#010+
+ ' {$ifdef HAS','_TAR_SUPPORT}'#010+
+ ' if not assigned(FTarWriter) then'#010+
+ ' begin'#010+
+ ' FGZFileStream := TGZFileStream.create(GetArchiveName + ArchiveEx'+
+ 'tension, gzopenwrite);'#010+
+ ' try'#010+
+ ' FTarWriter := TTarWriter.Create(FGZFileStream);'#010+
+ ' FTarWriter.Per','missions := [tpReadByOwner, tpWriteByOwner, tp'+
+ 'ReadByGroup, tpReadByOther];'#010+
+ ' FTarWriter.UserName := '#039'root'#039';'#010+
+ ' FTarWriter.GroupName := '#039'root'#039';'#010+
+ ' except'#010+
+ ' FGZFileStream.Free;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ '{$ifdef unix}'#010+
+ ' if (FpSta','t(ASourceFileName, FileStat) = 0) and (FileStat.st_mode a'+
+ 'nd S_IXUSR = S_IXUSR) then'#010+
+ ' begin'#010+
+ ' FTarWriter.Permissions := FTarWriter.Permissions + [tpExecuteByGro'+
+ 'up];'#010+
+ ' FTarWriter.Permissions := FTarWriter.Permissions + [tpExecuteByOwn'+
+ 'e','r];'#010+
+ ' FTarWriter.Permissions := FTarWriter.Permissions + [tpExecuteByOth'+
+ 'er];'#010+
+ ' end'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' FTarWriter.Permissions := FTarWriter.Permissions - [tpExecuteByGro'+
+ 'up];'#010+
+ ' FTarWriter.Permissions := FTarWriter.Permissions - [tpExe','cuteByO'+
+ 'wner];'#010+
+ ' FTarWriter.Permissions := FTarWriter.Permissions - [tpExecuteByOth'+
+ 'er];'#010+
+ ' end;'#010+
+ '{$endif unix}'#010+
+ ' FTarWriter.AddFile(ASourceFileName, ADestFileName);'#010+
+ ' {$endif HAS_TAR_SUPPORT}'#010+
+ '{$else CREATE_TAR_FILE}'#010+
+ ' {$ifdef HAS_UNIT_ZIPP','ER}'#010+
+ ' if not assigned(FZipper) then'#010+
+ ' begin'#010+
+ ' FZipper := TZipper.Create;'#010+
+ ' FZipper.FileName := GetArchiveName + ArchiveExtension;'#010+
+ ' end;'#010+
+ #010+
+ ' FZipper.Entries.AddFileEntry(ASourceFileName, ADestFileName);'#010+
+ ' {$endif HAS_UNIT_ZIPPER}',#010+
+ '{$ENDIF CREATE_TAR_FILE}'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TBuildEngine.FinishArchive(Sender: TObject);'#010+
+ 'begin'#010+
+ ' {$ifdef HAS_TAR_SUPPORT}'#010+
+ ' if assigned(FTarWriter) then'#010+
+ ' begin'#010+
+ ' FreeAndNil(FTarWriter);'#010+
+ ' FGZFileStream.Free;'#010+
+ ' end;'#010+
+ ' {$endif HAS_','TAR_SUPPORT}'#010+
+ ' {$ifdef HAS_UNIT_ZIPPER}'#010+
+ ' if assigned(FZipper) then'#010+
+ ' begin'#010+
+ ' try'#010+
+ ' FZipper.ZipAllFiles;'#010+
+ ' FZipper.Clear;'#010+
+ ' finally'#010+
+ ' FreeAndNil(FZipper);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' {$endif HAS_UNIT_ZIPPER}'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'pro','cedure TBuildEngine.Error(const Msg: String);'#010+
+ 'begin'#010+
+ ' Raise EInstallerError.Create(Msg);'#010+
+ 'end;'#010+
+ #010+
+ #010+
'procedure TBuildEngine.Error(const Fmt: String; const Args: array of c'+
- 'onst);'#013#010+
- 'begin'#013#010+
- ' Raise EInstallerError.CreateFmt(Fmt,Args);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.Exe','cuteCommand(const Cmd,Args : String; const'+
- ' Env: TStrings = nil; IgnoreError : Boolean = False);'#013#010+
- 'Var'#013#010+
- ' E : Integer;'#013#010+
- ' cmdLine: string;'#013#010+
- ' ConsoleOutput: TMemoryStream;'#013#010+
- ' s: string;'#013#010+
- 'begin'#013#010+
- ' Log(vlInfo,SInfoExecutingCommand,[Cmd,Args]);'#013,#010+
- ' if ListMode then'#013#010+
- ' Log(vlCommand,'#039'%s %s'#039',[Cmd,Args])'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
+ 'onst);'#010+
+ 'begin'#010+
+ ' Raise EInstallerError.CreateFmt(Fmt,Args);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure',' TBuildEngine.ExecuteCommand(const Cmd,Args : String; const'+
+ ' Env: TStrings = nil; IgnoreError : Boolean = False);'#010+
+ 'Var'#010+
+ ' E : Integer;'#010+
+ ' cmdLine: string;'#010+
+ ' ConsoleOutput: TMemoryStream;'#010+
+ ' s: string;'#010+
+ 'begin'#010+
+ ' Log(vlInfo,SInfoExecutingCommand,[Cm','d,Args]);'#010+
+ ' if ListMode then'#010+
+ ' Log(vlCommand,'#039'%s %s'#039',[Cmd,Args])'#010+
+ ' else'#010+
+ ' begin'#010+
' // We should check cmd for spaces, and move all after first spac'+
- 'e to args.'#013#010+
- ' ConsoleOutput := TMemoryStream.Create;'#013#010+
- ' try'#013#010+
- ' {$ifdef HAS_UN','IT_PROCESS}'#013#010+
- ' E:=ExecuteFPC(Verbose, cmd, args, env, ConsoleOutput);'#013#010+
- ' {$else}'#013#010+
- ' E:=ExecuteProcess(cmd,args);'#013#010+
- ' {$endif}'#013#010+
- ' If (E<>0) and (not IgnoreError) then'#013#010+
- ' begin'#013#010+
- ' if trim(Args)<>',#039#039' then'#013#010+
- ' cmdLine := cmd + '#039' '#039' + trim(args)'#013#010+
- ' else'#013#010+
- ' cmdline := cmd;'#013#010+
- ' s := ParsecompilerOutput(ConsoleOutput,Verbose);'#013#010+
- ' Error(SErrExternalCommandFailed,[cmdLine,E,s]);'#013#010+
- ' ','end;'#013#010+
- ' finally'#013#010+
- ' ConsoleOutput.Free;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TBuildEngine.SysDirectoryExists(const ADir:string):Boolean;'#013+
- #010+
- 'begin'#013#010+
- ' result:=SysUtils.DirectoryExists(ADir);'#013#010+
- ' if result then'#013#010+
- ' Log(vlDebug,SDbg','DirectoryExists,[ADir,SDbgFound])'#013#010+
- ' else'#013#010+
- ' Log(vlDebug,SDbgDirectoryExists,[ADir,SDbgNotFound]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TBuildEngine.SysFileExists(const AFileName:string):Boolean;'#013+
- #010+
- 'begin'#013#010+
- ' result:=SysUtils.FileExists(AFileName);'#013#010+
- ' if res','ult then'#013#010+
- ' Log(vlDebug,SDbgFileExists,[AFileName,SDbgFound])'#013#010+
- ' else'#013#010+
- ' Log(vlDebug,SDbgFileExists,[AFileName,SDbgNotFound]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.SysCopyFile(Const Src,Dest : String);'#013#010+
- 'Var'#013#010+
- ' D,S : String;'#013#010+
- ' Fin,FOut : T','FileStream;'#013#010+
- ' Count : Int64;'#013#010+
- ' A : Integer;'#013#010+
- '{$ifdef UNIX}'#013#010+
- ' FileStat: stat;'#013#010+
- '{$endif UNIX}'#013#010+
- 'begin'#013#010+
- ' Log(vlInfo,SInfoCopyingFile,[Src,Dest]);'#013#010+
- ' FIn:=TFileStream.Create(Src,fmopenRead or fmShareDenyNone);'#013#010+
- ' Try'#013#010+
- ' D:=IncludeTrailingP','athDelimiter(Dest);'#013#010+
- ' If DirectoryExists(D) then'#013#010+
- ' S:=D+ExtractFileName(Src)'#013#010+
- ' else'#013#010+
- ' S:=Dest;'#013#010+
- ' FOut:=TFileStream.Create(S,fmCreate or fmShareDenyNone);'#013#010+
- ' Try'#013#010+
- ' Count:=Fout.CopyFrom(FIn,0);'#013#010+
- ' If (Count<>Fin.','Size) then'#013#010+
- ' Error(SErrCopyingFile,[Src,S]);'#013#010+
- ' Finally'#013#010+
- ' FreeAndNil(Fout);'#013#010+
- ' end;'#013#010+
- ' A:=FileGetDate(FIn.Handle);'#013#010+
- ' If (A=-1) then'#013#010+
- ' log(vlWarning,SWarnFailedToGetTime,[Src])'#013#010+
- ' else'#013#010+
- ' if FileSetDate(S,A)<>','0 then'#013#010+
- ' Log(vlWarning,SWarnFailedToSetTime,[S]);'#013#010+
- '{$ifdef UNIX}'#013#010+
+ 'e to args.'#010+
+ ' ConsoleOutput := TMemoryStream.Create;'#010+
+ ' try'#010+
+ ' {$ifdef HAS_','UNIT_PROCESS}'#010+
+ ' E:=ExecuteFPC(Verbose, cmd, args, env, ConsoleOutput);'#010+
+ ' {$else}'#010+
+ ' E:=ExecuteProcess(cmd,args);'#010+
+ ' {$endif}'#010+
+ ' If (E<>0) and (not IgnoreError) then'#010+
+ ' begin'#010+
+ ' if trim(Args)<>'#039#039' th','en'#010+
+ ' cmdLine := cmd + '#039' '#039' + trim(args)'#010+
+ ' else'#010+
+ ' cmdline := cmd;'#010+
+ ' s := ParsecompilerOutput(ConsoleOutput,Verbose);'#010+
+ ' Error(SErrExternalCommandFailed,[cmdLine,E,s]);'#010+
+ ' end;'#010+
+ ' ','finally'#010+
+ ' ConsoleOutput.Free;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TBuildEngine.SysDirectoryExists(const ADir:string):Boolean;'#010+
+ 'begin'#010+
+ ' result:=SysUtils.DirectoryExists(ADir);'#010+
+ ' if result then'#010+
+ ' Log(vlDebug,SDbgDirectoryExists,[ADir,S','DbgFound])'#010+
+ ' else'#010+
+ ' Log(vlDebug,SDbgDirectoryExists,[ADir,SDbgNotFound]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TBuildEngine.SysFileExists(const AFileName:string):Boolean;'#010+
+ 'begin'#010+
+ ' result:=SysUtils.FileExists(AFileName);'#010+
+ ' if result then'#010+
+ ' Log(vlDebug,SDbgFil','eExists,[AFileName,SDbgFound])'#010+
+ ' else'#010+
+ ' Log(vlDebug,SDbgFileExists,[AFileName,SDbgNotFound]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.SysCopyFile(Const Src,Dest : String);'#010+
+ 'Var'#010+
+ ' D,S : String;'#010+
+ ' Fin,FOut : TFileStream;'#010+
+ ' Count : Int64;'#010+
+ ' A : Integer',';'#010+
+ '{$ifdef UNIX}'#010+
+ ' FileStat: stat;'#010+
+ '{$endif UNIX}'#010+
+ 'begin'#010+
+ ' Log(vlInfo,SInfoCopyingFile,[Src,Dest]);'#010+
+ ' FIn:=TFileStream.Create(Src,fmopenRead or fmShareDenyNone);'#010+
+ ' Try'#010+
+ ' D:=IncludeTrailingPathDelimiter(Dest);'#010+
+ ' If DirectoryExists(D) then'#010+
+ ' ',' S:=D+ExtractFileName(Src)'#010+
+ ' else'#010+
+ ' S:=Dest;'#010+
+ ' FOut:=TFileStream.Create(S,fmCreate or fmShareDenyNone);'#010+
+ ' Try'#010+
+ ' Count:=Fout.CopyFrom(FIn,0);'#010+
+ ' If (Count<>Fin.Size) then'#010+
+ ' Error(SErrCopyingFile,[Src,S]);'#010+
+ ' Final','ly'#010+
+ ' FreeAndNil(Fout);'#010+
+ ' end;'#010+
+ ' A:=FileGetDate(FIn.Handle);'#010+
+ ' If (A=-1) then'#010+
+ ' log(vlWarning,SWarnFailedToGetTime,[Src])'#010+
+ ' else'#010+
+ ' if FileSetDate(S,A)<>0 then'#010+
+ ' Log(vlWarning,SWarnFailedToSetTime,[S]);'#010+
+ '{$ifdef UNIX}',#010+
' // Copy the file-access rights on Unix, especially the executable-'+
- 'bit'#013#010+
- ' if FpStat(Src,FileStat) <> 0 then'#013#010+
- ' Log(vlWarning,SWarnCanNotGetAccessRights,[Src])',#013#010+
- ' else'#013#010+
- ' if FpChmod(s,FileStat.st_mode) <> 0 then'#013#010+
- ' Log(vlWarning,SWarnCanNotSetAccessRights,[S]);'#013#010+
- '{$endif UNIX}'#013#010+
- ' finally'#013#010+
- ' FreeAndNil(Fin);'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.SysMoveFile(Const Src,Dest : String',');'#013#010+
- 'Var'#013#010+
- ' S : String;'#013#010+
- 'begin'#013#010+
- ' If DirectoryExists(IncludeTrailingPathDelimiter(Dest)) then'#013#010+
- ' S:=IncludeTrailingPathDelimiter(Dest)+ExtractFileName(Src)'#013#010+
- ' else'#013#010+
- ' S:=Dest;'#013#010+
- ' If Not RenameFile(Src,S) then'#013#010+
- ' begin'#013#010+
- ' Try'#013#010+
- ' ',' SysCopyFile(Src,S);'#013#010+
- ' SysDeleteFile(Src);'#013#010+
- ' Except'#013#010+
- ' On E : Exception Do'#013#010+
- ' Error(SErrMovingFile,[Src,S]);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.SysDeleteFile(Const AFileName : String);'#013#010+
- 'begin',#013#010+
- ' if not FileExists(AFileName) then'#013#010+
- ' Log(vldebug,SDbgFileDoesNotExist,[AFileName])'#013#010+
- ' else If Not DeleteFile(AFileName) then'#013#010+
- ' Error(SErrDeletingFile,[AFileName])'#013#010+
- ' else'#013#010+
- ' Log(vlInfo,SInfoDeletedFile,[AFileName]);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'proc','edure TBuildEngine.SysDeleteDirectory(Const ADirectoryName: Stri'+
- 'ng);'#013#010+
- 'begin'#013#010+
- ' if not DirectoryExists(ADirectoryName) then'#013#010+
- ' Log(vldebug,SDbgDirectoryDoesNotExist,[ADirectoryName])'#013#010+
- ' else if not IsDirectoryEmpty(ADirectoryName) then'#013#010+
- ' ',' Log(vldebug,SDbgDirectoryNotEmpty,[ADirectoryName])'#013#010+
- ' else If Not RemoveDir(ADirectoryName) then'#013#010+
- ' Error(SErrRemovingDirectory,[ADirectoryName])'#013#010+
- ' else'#013#010+
- ' Log(vlInfo,SInfoRemovedDirectory,[ADirectoryName]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBu','ildEngine.SysDeleteTree(Const ADirectoryName: String);'#013+
- #010+
- #013#010+
- ' function IntRemoveTree(const ADirectoryName: String) : boolean;'#013#010+
- ' var'#013#010+
- ' searchRec: TSearchRec;'#013#010+
- ' SearchResult: longint;'#013#010+
- ' s: string;'#013#010+
- ' begin'#013#010+
- ' result := true;'#013#010+
- ' Se','archResult := FindFirst(IncludeTrailingPathDelimiter(ADirector'+
- 'yName)+AllFilesMask, faAnyFile+faSymLink, searchRec);'#013#010+
- ' try'#013#010+
- ' while SearchResult=0 do'#013#010+
- ' begin'#013#010+
- ' if (searchRec.Name<>'#039'.'#039') and (searchRec.Name<>'#039'.'+
- '.'#039') then'#013#010,
- ' begin'#013#010+
+ 'bit'#010+
+ ' if FpStat(Src,FileStat) <> 0 then'#010+
+ ' Log(vlWarning,SWarnCanNotGetAccessRights,[Src])'#010+
+ ' else'#010+
+ ' if FpChmod(s,FileStat.st_mode) <> 0 then'#010+
+ ' Log(vlWar','ning,SWarnCanNotSetAccessRights,[S]);'#010+
+ '{$endif UNIX}'#010+
+ ' finally'#010+
+ ' FreeAndNil(Fin);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.SysMoveFile(Const Src,Dest : String);'#010+
+ 'Var'#010+
+ ' S : String;'#010+
+ 'begin'#010+
+ ' If DirectoryExists(IncludeTrailingPathDelimiter(Dest)) t','hen'#010+
+ ' S:=IncludeTrailingPathDelimiter(Dest)+ExtractFileName(Src)'#010+
+ ' else'#010+
+ ' S:=Dest;'#010+
+ ' If Not RenameFile(Src,S) then'#010+
+ ' begin'#010+
+ ' Try'#010+
+ ' SysCopyFile(Src,S);'#010+
+ ' SysDeleteFile(Src);'#010+
+ ' Except'#010+
+ ' On E : Exception Do'#010+
+ ' ',' Error(SErrMovingFile,[Src,S]);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.SysDeleteFile(Const AFileName : String);'#010+
+ 'begin'#010+
+ ' if not FileExists(AFileName) then'#010+
+ ' Log(vldebug,SDbgFileDoesNotExist,[AFileName])'#010+
+ ' else If Not SysUti','ls.DeleteFile(AFileName) then'#010+
+ ' Error(SErrDeletingFile,[AFileName])'#010+
+ ' else'#010+
+ ' Log(vlInfo,SInfoDeletedFile,[AFileName]);'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TBuildEngine.SysDeleteDirectory(Const ADirectoryName: String'+
+ ');'#010+
+ 'begin'#010+
+ ' if not DirectoryExists(ADirect','oryName) then'#010+
+ ' Log(vldebug,SDbgDirectoryDoesNotExist,[ADirectoryName])'#010+
+ ' else if not IsDirectoryEmpty(ADirectoryName) then'#010+
+ ' Log(vldebug,SDbgDirectoryNotEmpty,[ADirectoryName])'#010+
+ ' else If Not RemoveDir(ADirectoryName) then'#010+
+ ' Error(SEr','rRemovingDirectory,[ADirectoryName])'#010+
+ ' else'#010+
+ ' Log(vlInfo,SInfoRemovedDirectory,[ADirectoryName]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.SysDeleteTree(Const ADirectoryName: String);'#010+
+ #010+
+ ' function IntRemoveTree(const ADirectoryName: String) : boolean',';'#010+
+ '{$ifdef MSWINDOWS}'#010+
+ ' { pulling in shellapi with all it dependent units and packages makes'+
+ ' things too'#010+
+ ' complicated so just add the constants here }'#010+
+ ' const'#010+
+ ' FO_DELETE = $0003;'#010+
+ ' FOF_SILENT = $0004;'#010+
+ ' ','FOF_NOCONFIRMATION = $0010;'#010+
+ '{$endif MSWINDOWS}'#010+
+ ' var'#010+
+ ' i: integer;'#010+
+ '{$ifdef MSWINDOWS}'#010+
+ ' SHFileOpStruct: TSHFileOpStruct;'#010+
+ ' DirBuf: array[0..MAX_PATH+1] of TCHAR;'#010+
+ '{$else MSWINDOWS}'#010+
+ ' searchRec: TSearchRec;'#010+
+ ' SearchResult: lon','gint;'#010+
+ ' s: string;'#010+
+ '{$endif MSWINDOWS}'#010+
+ #010+
+ ' begin'#010+
+ ' result := true;'#010+
+ '{$ifdef MSWINDOWS}'#010+
+ ' try'#010+
+ ' FillChar(SHFileOpStruct, Sizeof(SHFileOpStruct), 0);'#010+
+ ' FillChar(DirBuf, Sizeof(DirBuf), 0);'#010+
+ ' StrPCopy(DirBuf, ADirectoryName);'#010+
+ ' ',' with SHFileOpStruct do'#010+
+ ' begin'#010+
+ ' pFrom := @DirBuf;'#010+
+ ' wFunc := FO_DELETE;'#010+
+ ' fFlags := FOF_NOCONFIRMATION or FOF_SILENT;'#010+
+ ' end;'#010+
+ ' Result := SHFileOperation(SHFileOpStruct) = 0;'#010+
+ ' except'#010+
+ ' Result := Fals','e;'#010+
+ ' end;'#010+
+ '{$else MSWINDOWS}'#010+
+ ' SearchResult := FindFirst(IncludeTrailingPathDelimiter(ADirectoryN'+
+ 'ame)+AllFilesMask, faAnyFile+faSymLink, searchRec);'#010+
+ ' try'#010+
+ ' while SearchResult=0 do'#010+
+ ' begin'#010+
+ ' if (searchRec.Name<>'#039'.'#039') a','nd (searchRec.Name<>'#039+
+ '..'#039') then'#010+
+ ' begin'#010+
' s := IncludeTrailingPathDelimiter(ADirectoryName)+searc'+
- 'hRec.Name;'#013#010+
- ' if (searchRec.Attr and faDirectory)=faDirectory then'#013+
- #010+
- ' begin'#013#010+
- ' if not IntRemoveTree(s) th','en'#013#010+
- ' result := false;'#013#010+
- ' end'#013#010+
- ' else if not DeleteFile(s) then'#013#010+
- ' result := False'#013#010+
- ' else'#013#010+
- ' log(vldebug, SDbgDeletedFile, [s]);'#013#010+
- ' end;'#013#010,
- ' SearchResult := FindNext(searchRec);'#013#010+
- ' end;'#013#010+
- ' finally'#013#010+
- ' FindClose(searchRec);'#013#010+
- ' end;'#013#010+
- ' if not RemoveDir(ADirectoryName) then'#013#010+
- ' result := false'#013#010+
- ' else'#013#010+
- ' log(vldebug, SDbgRemovedDirectory, [ADirecto','ryName]);'#013#010+
- ' end;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' if not DirectoryExists(ADirectoryName) then'#013#010+
- ' Log(vldebug,SDbgDirectoryDoesNotExist,[ADirectoryName])'#013#010+
- ' else If Not IntRemoveTree(ADirectoryName) then'#013#010+
- ' Error(SErrRemovingDirectory,[ADirectoryName])'#013#010+
- ' e','lse'#013#010+
- ' Log(vlInfo,SInfoRemovedDirectory,[ADirectoryName]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.SysArchiveFiles(List: TStrings;Const AFileName:'+
- ' String);'#013#010+
- 'begin'#013#010+
+ 'hRec.Name;'#010+
+ ' if (searchRec.Attr and faDirectory)=faDirectory then'#010+
+ ' begin'#010+
+ ' ',' if not IntRemoveTree(s) then'#010+
+ ' result := false;'#010+
+ ' end'#010+
+ ' else if not DeleteFile(s) then'#010+
+ ' result := False'#010+
+ ' else'#010+
+ ' log(vldebug, SDbgDeletedFile, [s]);',#010+
+ ' end;'#010+
+ ' SearchResult := FindNext(searchRec);'#010+
+ ' end;'#010+
+ ' finally'#010+
+ ' FindClose(searchRec);'#010+
+ ' end;'#010+
+ #010+
+ ' // There were reports of RemoveDir failing due to locking-problems'+
+ '. To solve'#010+
+ ' // these the RemoveDir is ','tried three times, with a delay of 5 s'+
+ 'econds. See'#010+
+ ' // bug 21868'#010+
+ ' i := 2;'#010+
+ ' result := RemoveDir(ADirectoryName);'#010+
+ '{$endif WINDOWS}'#010+
+ #010+
+ ' while not result and (i>0) do'#010+
+ ' begin'#010+
+ ' log(vlWarning, SWarnRetryRemDirectory, [ADirecto','ryName]);'#010+
+ ' sleep(5000);'#010+
+ ' dec(i);'#010+
+ ' result := RemoveDir(ADirectoryName);'#010+
+ ' end;'#010+
+ #010+
+ ' if result then'#010+
+ ' log(vldebug, SDbgRemovedDirectory, [ADirectoryName]);'#010+
+ ' end;'#010+
+ #010+
+ 'begin'#010+
+ ' if not DirectoryExists(ADirectoryName) th','en'#010+
+ ' Log(vldebug,SDbgDirectoryDoesNotExist,[ADirectoryName])'#010+
+ ' else If Not IntRemoveTree(ADirectoryName) then'#010+
+ ' Error(SErrRemovingDirectory,[ADirectoryName])'#010+
+ ' else'#010+
+ ' Log(vlInfo,SInfoRemovedDirectory,[ADirectoryName]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedur','e TBuildEngine.SysArchiveFiles(List: TStrings;Const AFileNam'+
+ 'e: String);'#010+
+ 'begin'#010+
' If Not (Assigned(OnArchivefiles) or Assigned(ArchiveFilesProc)) then'+
- #013#010+
- ' Rais','e EInstallerError.Create(SErrNoArchiveSupport);'#013#010+
- ' If Assigned(ArchiveFilesProc) then'#013#010+
- ' ArchiveFilesProc(AFileName,List)'#013#010+
- ' else'#013#010+
- ' OnArchiveFiles(AFileName,List);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.LogIndent;'#013#010+
- 'begin'#013#010+
- ' GLogPrefix:=GLog','Prefix+'#039' '#039';'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.LogUnIndent;'#013#010+
- 'begin'#013#010+
- ' Delete(GLogPrefix,1,2);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.Log(Level: TVerboseLevel; Msg: String);'#013#010+
- 'begin'#013#010+
- ' If Assigned(FOnLog) then'#013#010+
- ' begin'#013#010+
- ' if Level in [vlInfo',',vlDebug] then'#013#010+
- ' FOnLog(Level,GLogPrefix+Msg)'#013#010+
- ' else'#013#010+
- ' FOnLog(Level,Msg);'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.Log(Level: TVerboseLevel; Fmt: String;const Arg'+
- 's: array of const);'#013#010+
- 'begin'#013#010+
- ' Log(Level,Format(Fmt,Args)',');'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.EnterDir(ADir: String);'#013#010+
- 'Var'#013#010+
- ' D : String;'#013#010+
- 'begin'#013#010+
- ' D:=FStartDir;'#013#010+
- ' D:=D+ADir;'#013#010+
- ' Log(vlDebug,SDbgEnterDir,[D]);'#013#010+
- ' If Not SetCurrentDir(D) then'#013#010+
- ' Error(SErrChangeDirFailed,[D]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedu','re TBuildEngine.CmdCopyFiles(List: TStrings; Const DestDir: S'+
- 'tring);'#013#010+
- #013#010+
- 'Var'#013#010+
- ' Args : String;'#013#010+
- ' I : Integer;'#013#010+
- ' DestFileName : String;'#013#010+
- 'begin'#013#010+
- ' // When the files should be written to an archive, add them'#013#010+
- ' if assigned(FZipper) then'#013#010+
- ' ','begin'#013#010+
- ' For I:=0 to List.Count-1 do'#013#010+
- ' if List.Names[i]<>'#039#039' then'#013#010+
- ' begin'#013#010+
- ' if IsRelativePath(list.ValueFromIndex[i]) then'#013#010+
- ' DestFileName:=DestDir+list.ValueFromIndex[i]'#013#010+
- ' else'#013#010+
- ' ',' DestFileName:=list.ValueFromIndex[i];'#013#010+
- ' FZipper.Entries.AddFileEntry(List.names[i], DestFileName);'+
- #013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' FZipper.Entries.AddFileEntry(List[i], DestDir+ExtractFileNam'+
- 'e(List[i]));'#013#010+
- ' Exit',';'#013#010+
- ' end;'#013#010+
- ' {$ifdef HAS_TAR_SUPPORT}'#013#010+
- ' if assigned(FTarWriter) then'#013#010+
- ' begin'#013#010+
- ' For I:=0 to List.Count-1 do'#013#010+
- ' if List.Names[i]<>'#039#039' then'#013#010+
- ' begin'#013#010+
- ' if IsRelativePath(list.ValueFromIndex[i]) then'#013#010+
- ' ',' DestFileName:=DestDir+list.ValueFromIndex[i]'#013#010+
- ' else'#013#010+
- ' DestFileName:=list.ValueFromIndex[i];'#013#010+
- ' FTarWriter.AddFile(List.names[i], DestFileName);'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' FTarWriter.AddFil','e(List[i], DestDir+ExtractFileName(List[i'+
- ']));'#013#010+
- ' Exit;'#013#010+
- ' end;'#013#010+
- ' {$endif HAS_TAR_SUPPORT}'#013#010+
- #013#010+
- ' // Copy the files to their new location on disk'#013#010+
- ' CmdCreateDir(DestDir);'#013#010+
- ' If (Defaults.Copy<>'#039#039') then'#013#010+
- ' begin'#013#010+
- ' Args:=FileListT','oString(List,'#039#039');'#013#010+
- ' Args:=Args+'#039' '#039'+DestDir;'#013#010+
- ' ExecuteCommand(Defaults.Copy,Args);'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' For I:=0 to List.Count-1 do'#013#010+
- ' if List.Names[i]<>'#039#039' then'#013#010+
- ' begin'#013#010+
- ' if IsRelativePath(list.ValueFromIndex[i',']) then'#013#010+
- ' DestFileName:=DestDir+list.ValueFromIndex[i]'#013#010+
- ' else'#013#010+
- ' DestFileName:=list.ValueFromIndex[i];'#013#010+
- ' CmdCreateDir(ExtractFilePath(DestFileName));'#013#010+
- ' SysCopyFile(List.names[i],DestFileName)'#013,#010+
- ' end'#013#010+
- ' else'#013#010+
- ' SysCopyFile(List[i],DestDir);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.CmdCreateDir(const DestDir: String);'#013#010+
- 'begin'#013#010+
- ' If (Defaults.MkDir<>'#039#039') then'#013#010+
- ' ExecuteCommand(Defaults.MkDir,DestDir)'#013#010+
- ' else'#013#010+
- ' If not Fo','rceDirectories(DestDir) then'#013#010+
- ' Error(SErrCreatingDirectory,[DestDir]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.CmdMoveFiles(List: TStrings; Const DestDir: Str'+
- 'ing);'#013#010+
- 'Var'#013#010+
- ' Args : String;'#013#010+
- ' I : Integer;'#013#010+
- 'begin'#013#010+
- ' CmdCreateDir(DestDir);'#013#010+
- ' If',' (Defaults.Move<>'#039#039') then'#013#010+
- ' begin'#013#010+
- ' Args:=FileListToString(List,'#039#039');'#013#010+
- ' Args:=Args+'#039' '#039'+DestDir;'#013#010+
- ' ExecuteCommand(Defaults.Move,Args);'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' For I:=0 to List.Count-1 do'#013#010+
- ' SysMoveFile(List[i],DestDir);'#013#010+
- 'e','nd;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.CmdDeleteFiles(List: TStrings);'#013#010+
- 'Var'#013#010+
- ' Args : String;'#013#010+
- ' I : Integer;'#013#010+
- 'begin'#013#010+
- ' If (Defaults.Remove<>'#039#039') then'#013#010+
- ' begin'#013#010+
- ' Args:=FileListToString(List,'#039#039');'#013#010+
- ' ExecuteCommand(Defaults.Remove,Args);'#013#010,
- ' end'#013#010+
- ' else'#013#010+
- ' For I:=0 to List.Count-1 do'#013#010+
- ' SysDeleteFile(List[i]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.CmdArchiveFiles(List: TStrings; Const ArchiveFi'+
- 'le: String);'#013#010+
- 'Var'#013#010+
- ' S,C,O : String;'#013#010+
- 'begin'#013#010+
- ' If (Defaults.Archive='#039#039') then'#013#010+
- ' ',' SysArchiveFiles(List,ArchiveFile)'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' S:=FileListToString(List,'#039#039');'#013#010+
- ' SplitCommand(Defaults.Archive,C,O);'#013#010+
- ' If (O='#039#039') then'#013#010+
- ' O:=ArchiveFile+'#039' '#039'+S'#013#010+
- ' else'#013#010+
- ' O:=GlobalDictionary.Substitute(','O,['#039'ARCHIVE'#039',ArchiveF'+
- 'ile,'#039'FILESORDIRS'#039']);'#013#010+
- ' ExecuteCommand(C,O);'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TBuildEngine.CmdRenameFile(SourceName, DestName: String);'#013+
- #010+
- 'var'#013#010+
- ' Args: string;'#013#010+
- 'begin'#013#010+
- ' If (Defaults.Move<>'#039#039') then'#013#010+
- ' begin'#013#010+
- ' Args:','=SourceName;'#013#010+
- ' Args:=Args+'#039' '#039'+DestName;'#013#010+
- ' ExecuteCommand(Defaults.Move,Args);'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' SysMoveFile(SourceName,DestName);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TBuildEngine.CmdRemoveDirs(List: TStrings);'#013#010+
- 'Var'#013#010+
- ' Args : String;'#013#010+
- ' I : Int','eger;'#013#010+
- 'begin'#013#010+
- ' If (Defaults.RemoveDir<>'#039#039') then'#013#010+
- ' begin'#013#010+
- ' Args:=FileListToString(List,'#039#039');'#013#010+
- ' ExecuteCommand(Defaults.RemoveDir,Args);'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' For I:=0 to List.Count-1 do'#013#010+
- ' SysDeleteDirectory(List[i]);'#013#010+
- 'end;'#013,#010+
- #013#010+
- 'procedure TBuildEngine.CmdRemoveTrees(List: TStrings);'#013#010+
- 'Var'#013#010+
- ' Args : String;'#013#010+
- ' I : Integer;'#013#010+
- 'begin'#013#010+
- ' If (Defaults.RemoveTree<>'#039#039') then'#013#010+
- ' begin'#013#010+
- ' Args:=FileListToString(List,'#039#039');'#013#010+
- ' ExecuteCommand(Defaults.RemoveTree,Args);',#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' For I:=0 to List.Count-1 do'#013#010+
- ' SysDeleteTree(List[i]);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Function TBuildEngine.FileNewer(const Src,Dest : String) : Boolean;'#013+
- #010+
- #013#010+
- 'Var'#013#010+
- ' DS,DD : Longint;'#013#010+
- ' D1,D2 : TDateTime;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' DS:=FileAge(Src);'#013#010+
- ' ',' { Return false if file not found or not accessible }'#013#010+
- ' if DS=-1 then'#013#010+
- ' begin'#013#010+
- ' Log(vlWarning,SWarnCanNotGetFileAge,[Src]);'#013#010+
- ' Result:=false;'#013#010+
- ' exit;'#013#010+
- ' end;'#013#010+
- ' DD:=FileAge(Dest);'#013#010+
- ' D1:=FileDateToDateTime(DS);'#013#010+
- ' D2:=Fi','leDateToDateTime(DD);'#013#010+
+ #010+
+ ' Raise EInstallerError.Create(SErrNoArchiveSupport);'#010+
+ ' If Assigned(ArchiveFilesProc) the','n'#010+
+ ' ArchiveFilesProc(AFileName,List)'#010+
+ ' else'#010+
+ ' OnArchiveFiles(AFileName,List);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.LogIndent;'#010+
+ 'begin'#010+
+ ' GLogPrefix:=GLogPrefix+'#039' '#039';'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.LogUnIndent;'#010+
+ 'begin'#010+
+ ' Delete(GLogPrefix,1,2);'#010+
+ 'end;'#010,
+ #010+
+ #010+
+ 'procedure TBuildEngine.Log(Level: TVerboseLevel; Msg: String);'#010+
+ 'begin'#010+
+ ' If Assigned(FOnLog) then'#010+
+ ' begin'#010+
+ ' if Level in [vlInfo,vlDebug] then'#010+
+ ' FOnLog(Level,GLogPrefix+Msg)'#010+
+ ' else'#010+
+ ' FOnLog(Level,Msg);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'p','rocedure TBuildEngine.Log(Level: TVerboseLevel; Fmt: String;const A'+
+ 'rgs: array of const);'#010+
+ 'begin'#010+
+ ' Log(Level,Format(Fmt,Args));'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.EnterDir(ADir: String);'#010+
+ 'Var'#010+
+ ' D : String;'#010+
+ 'begin'#010+
+ ' D:=FStartDir;'#010+
+ ' D:=D+ADir;'#010+
+ ' Log(v','lDebug,SDbgEnterDir,[D]);'#010+
+ ' If Not SetCurrentDir(D) then'#010+
+ ' Error(SErrChangeDirFailed,[D]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.CmdCopyFiles(List: TStrings; Const DestDir: Str'+
+ 'ing; APackage : TPackage);'#010+
+ #010+
+ 'Var'#010+
+ ' Args : String;'#010+
+ ' I : Integer;'#010+
+ ' Dest','FileName : String;'#010+
+ 'begin'#010+
+ ' // When the files should be written to an archive, add them'#010+
+ ' if assigned(FOnCopyFile) then'#010+
+ ' begin'#010+
+ ' For I:=0 to List.Count-1 do'#010+
+ ' if List.Names[i]<>'#039#039' then'#010+
+ ' begin'#010+
+ ' if IsRelativePa','th(list.ValueFromIndex[i]) then'#010+
+ ' DestFileName:=DestDir+list.ValueFromIndex[i]'#010+
+ ' else'#010+
+ ' DestFileName:=list.ValueFromIndex[i];'#010+
+ ' FOnCopyFile(APackage, AddPathPrefix(APackage, List.Names[i'+
+ ']), DestFi','leName);'#010+
+ ' end'#010+
+ ' else'#010+
+ ' FOnCopyFile(APackage, AddPathPrefix(APackage, List[i]), Dest'+
+ 'Dir+ExtractFileName(List[i]));'#010+
+ ' Exit;'#010+
+ ' end;'#010+
+ #010+
+ ' // Copy the files to their new location on disk'#010+
+ ' CmdCreateDir(DestDir);'#010+
+ ' If (','Defaults.Copy<>'#039#039') then'#010+
+ ' begin'#010+
+ ' Args:=FileListToString(List, IncludeTrailingPathDelimiter(GPathP'+
+ 'refix));'#010+
+ ' Args:=Args+'#039' '#039'+DestDir;'#010+
+ ' ExecuteCommand(Defaults.Copy,Args);'#010+
+ ' end'#010+
+ ' else'#010+
+ ' For I:=0 to List.Count-1 do'#010+
+ ' if',' List.Names[i]<>'#039#039' then'#010+
+ ' begin'#010+
+ ' if IsRelativePath(list.ValueFromIndex[i]) then'#010+
+ ' DestFileName:=DestDir+list.ValueFromIndex[i]'#010+
+ ' else'#010+
+ ' DestFileName:=list.ValueFromIndex[i];'#010+
+ ' CmdCreateDir(','ExtractFilePath(DestFileName));'#010+
+ ' SysCopyFile(AddPathPrefix(APackage, List.Names[i]),DestFileN'+
+ 'ame)'#010+
+ ' end'#010+
+ ' else'#010+
+ ' SysCopyFile(AddPathPrefix(APackage, List[i]), DestDir);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.CmdCreateDir(con','st DestDir: String);'#010+
+ 'begin'#010+
+ ' If (Defaults.MkDir<>'#039#039') then'#010+
+ ' ExecuteCommand(Defaults.MkDir,DestDir)'#010+
+ ' else'#010+
+ ' If not ForceDirectories(DestDir) then'#010+
+ ' Error(SErrCreatingDirectory,[DestDir]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.CmdMoveFiles(L','ist: TStrings; Const DestDir: S'+
+ 'tring);'#010+
+ 'Var'#010+
+ ' Args : String;'#010+
+ ' I : Integer;'#010+
+ 'begin'#010+
+ ' CmdCreateDir(DestDir);'#010+
+ ' If (Defaults.Move<>'#039#039') then'#010+
+ ' begin'#010+
+ ' Args:=FileListToString(List,'#039#039');'#010+
+ ' Args:=Args+'#039' '#039'+DestDir;'#010+
+ ' ExecuteCommand(Defa','ults.Move,Args);'#010+
+ ' end'#010+
+ ' else'#010+
+ ' For I:=0 to List.Count-1 do'#010+
+ ' SysMoveFile(List[i],DestDir);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.CmdDeleteFiles(List: TStrings);'#010+
+ 'Var'#010+
+ ' Args : String;'#010+
+ ' I : Integer;'#010+
+ 'begin'#010+
+ ' If (Defaults.Remove<>'#039#039') then'#010+
+ ' ','begin'#010+
+ ' Args:=FileListToString(List,'#039#039');'#010+
+ ' ExecuteCommand(Defaults.Remove,Args);'#010+
+ ' end'#010+
+ ' else'#010+
+ ' For I:=0 to List.Count-1 do'#010+
+ ' SysDeleteFile(List[i]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.CmdArchiveFiles(List: TStrings; Const Archiv','e'+
+ 'File: String);'#010+
+ 'Var'#010+
+ ' S,C,O : String;'#010+
+ 'begin'#010+
+ ' If (Defaults.Archive='#039#039') then'#010+
+ ' SysArchiveFiles(List,ArchiveFile)'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' S:=FileListToString(List,IncludeTrailingPathDelimiter(GPathPrefi'+
+ 'x));'#010+
+ ' SplitCommand(Defaults.Archiv','e,C,O);'#010+
+ ' If (O='#039#039') then'#010+
+ ' O:=ArchiveFile+'#039' '#039'+S'#010+
+ ' else'#010+
+ ' O:=GlobalDictionary.Substitute(O,['#039'ARCHIVE'#039',ArchiveFil'+
+ 'e,'#039'FILESORDIRS'#039']);'#010+
+ ' ExecuteCommand(C,O);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TBuildEngine.CmdRenameFile(SourceName,',' DestName: String);'#010+
+ 'var'#010+
+ ' Args: string;'#010+
+ 'begin'#010+
+ ' If (Defaults.Move<>'#039#039') then'#010+
+ ' begin'#010+
+ ' Args:=SourceName;'#010+
+ ' Args:=Args+'#039' '#039'+DestName;'#010+
+ ' ExecuteCommand(Defaults.Move,Args);'#010+
+ ' end'#010+
+ ' else'#010+
+ ' SysMoveFile(SourceName,DestName);'#010+
+ 'end;',#010+
+ #010+
+ 'procedure TBuildEngine.CmdRemoveDirs(List: TStrings);'#010+
+ 'Var'#010+
+ ' Args : String;'#010+
+ ' I : Integer;'#010+
+ 'begin'#010+
+ ' If (Defaults.RemoveDir<>'#039#039') then'#010+
+ ' begin'#010+
+ ' Args:=FileListToString(List,'#039#039');'#010+
+ ' ExecuteCommand(Defaults.RemoveDir,Args);'#010+
+ ' end'#010+
+ ' e','lse'#010+
+ ' For I:=0 to List.Count-1 do'#010+
+ ' SysDeleteDirectory(List[i]);'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TBuildEngine.CmdRemoveTrees(List: TStrings);'#010+
+ 'Var'#010+
+ ' Args : String;'#010+
+ ' I : Integer;'#010+
+ 'begin'#010+
+ ' If (Defaults.RemoveTree<>'#039#039') then'#010+
+ ' begin'#010+
+ ' Args:=FileList','ToString(List,'#039#039');'#010+
+ ' ExecuteCommand(Defaults.RemoveTree,Args);'#010+
+ ' end'#010+
+ ' else'#010+
+ ' For I:=0 to List.Count-1 do'#010+
+ ' SysDeleteTree(List[i]);'#010+
+ 'end;'#010+
+ #010+
+ 'Function TBuildEngine.FileNewer(const Src,Dest : String) : Boolean;'#010+
+ #010+
+ 'Var'#010+
+ ' DS,DD : Longint',';'#010+
+ ' D1,D2 : TDateTime;'#010+
+ #010+
+ 'begin'#010+
+ ' DS:=FileAge(Src);'#010+
+ ' { Return false if file not found or not accessible }'#010+
+ ' if DS=-1 then'#010+
+ ' begin'#010+
+ ' Log(vlWarning,SWarnCanNotGetFileAge,[Src]);'#010+
+ ' Result:=false;'#010+
+ ' exit;'#010+
+ ' end;'#010+
+ ' DD:=FileAge(Des','t);'#010+
+ ' D1:=FileDateToDateTime(DS);'#010+
+ ' D2:=FileDateToDateTime(DD);'#010+
' Log(vlDebug,SDbgComparingFileTimes,[Src,DateTimeToStr(D1),Dest,DateT'+
- 'imeToStr(D2)]);'#013#010+
- ' Result:=D1>D2;'#013#010+
- ' If Result then'#013#010+
- ' Log(vlInfo,SInfoSourceNewerDest,[Src,DateTimeToStr(D1),Dest,DateTi'+
- 'meToStr(D2)]);'#013#010+
- 'end;'#013#010+
- #013#010,
- #013#010+
+ 'imeToStr(D2)]);'#010+
+ ' Result:=D1>D2;'#010+
+ ' If Result then'#010+
+ ' Log(vlInfo,SInfoSourceNewerDest,[Src,DateTimeToStr(D','1),Dest,Date'+
+ 'TimeToStr(D2)]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
'procedure TBuildEngine.ExecuteCommands(Commands: TCommands; At: TComma'+
- 'ndAt; APackage: TPackage);'#013#010+
- 'Var'#013#010+
- ' C : TCommand;'#013#010+
- ' I : Integer;'#013#010+
- ' Cmd,O : String;'#013#010+
- ' E : Boolean;'#013#010+
- ' ADictionary: TDictionary;'#013#010+
- ' SourceFile, DestFile: string;'#013#010+
- 'begin',#013#010+
- ' For I:=0 to Commands.Count-1 do'#013#010+
- ' begin'#013#010+
- ' C:=Commands.CommandItems[i];'#013#010+
- ' if (C.At=At) then'#013#010+
- ' begin'#013#010+
- ' E:=True;'#013#010+
- #013#010+
- ' if assigned(APackage) then'#013#010+
- ' ADictionary := APackage.Dictionary'#013#010+
- ' ',' else'#013#010+
- ' ADictionary := GlobalDictionary;'#013#010+
- ' SourceFile := ADictionary.ReplaceStrings(C.SourceFile);'#013#010+
- ' DestFile := ADictionary.ReplaceStrings(C.DestFile);'#013#010+
- ' if IsRelativePath(SourceFile) then'#013#010+
- ' ',' SourceFile := AddPathPrefix(APackage,SourceFile);'#013#010+
- ' if IsRelativePath(DestFile) then'#013#010+
- ' DestFile := AddPathPrefix(APackage,DestFile);'#013#010+
- #013#010+
- ' Cmd:=C.Command;'#013#010+
- ' If (ExtractFilePath(Cmd)='#039#039') then'#013#010+
- ' ',' Cmd:=ExeSearch(Cmd,GetEnvironmentvariable('#039'PATH'#039')'+
- ');'#013#010+
- #013#010+
- ' If (SourceFile<>'#039#039') and (DestFile<>'#039#039') then'#013+
- #010+
- ' begin'#013#010+
- ' if not FileExists(DestFile) then'#013#010+
- ' Log(vlInfo,SInfoDestDoesNotExist,[DestFile])',#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' E:=FileNewer(SourceFile, DestFile);'#013#010+
- ' if E and (cmd = '#039#039') then'#013#010+
- ' begin'#013#010+
+ 'ndAt; APackage: TPackage);'#010+
+ 'Var'#010+
+ ' C : TCommand;'#010+
+ ' I : Integer;'#010+
+ ' Cmd,O : String;'#010+
+ ' E : Boolean;'#010+
+ ' ADictionary: TDictionary;'#010+
+ ' SourceFil','e, DestFile: string;'#010+
+ 'begin'#010+
+ ' For I:=0 to Commands.Count-1 do'#010+
+ ' begin'#010+
+ ' C:=Commands.CommandItems[i];'#010+
+ ' if (C.At=At) then'#010+
+ ' begin'#010+
+ ' E:=True;'#010+
+ #010+
+ ' if assigned(APackage) then'#010+
+ ' ADictionary := APackage.Dic','tionary'#010+
+ ' else'#010+
+ ' ADictionary := GlobalDictionary;'#010+
+ ' SourceFile := ADictionary.ReplaceStrings(C.SourceFile);'#010+
+ ' DestFile := ADictionary.ReplaceStrings(C.DestFile);'#010+
+ ' if IsRelativePath(SourceFile) then',#010+
+ ' SourceFile := AddPathPrefix(APackage,SourceFile);'#010+
+ ' if IsRelativePath(DestFile) then'#010+
+ ' DestFile := AddPathPrefix(APackage,DestFile);'#010+
+ #010+
+ ' Cmd:=C.Command;'#010+
+ ' If (ExtractFilePath(Cmd)='#039#039') then'#010+
+ ' ',' Cmd:=ExeSearch(Cmd,SysUtils.GetEnvironmentvariable('#039'P'+
+ 'ATH'#039'));'#010+
+ #010+
+ ' If (SourceFile<>'#039#039') and (DestFile<>'#039#039') then'#010+
+ ' begin'#010+
+ ' if not FileExists(DestFile) then'#010+
+ ' Log(vlInfo,SInfoDestDoesNotExist,[D','estFile])'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' E:=FileNewer(SourceFile, DestFile);'#010+
+ ' if E and (cmd = '#039#039') then'#010+
+ ' begin'#010+
' log(vlWarning,SWarnExtCommandNotFound,[C.Command,Des'+
- 'tFile',',SourceFile]);'#013#010+
- ' E := False;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' If E then'#013#010+
- ' begin'#013#010+
- ' if Cmd = '#039#039' then'#013#010+
- ' error(SErrExtCommandNotFound,[C.Command]);'#013#010+
- #013,#010+
- ' If Assigned(C.BeforeCommand) then'#013#010+
- ' C.BeforeCommand(C);'#013#010+
+ 'tF','ile,SourceFile]);'#010+
+ ' E := False;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' If E then'#010+
+ ' begin'#010+
+ ' if Cmd = '#039#039' then'#010+
+ ' error(SErrExtCommandNotFound,[C.Command]);'#010+
+ #010+
+ ' ',' If Assigned(C.BeforeCommand) then'#010+
+ ' C.BeforeCommand(C);'#010+
' O:=ADictionary.Substitute(C.CmdLineOptions,['#039'SOURCE'#039+
- ',SourceFile,'#039'DEST'#039',DestFile]);'#013#010+
- #013#010+
- ' Log(vlCommand,SInfoExecutingCommand,[Cmd,O]);'#013#010,
- ' ExecuteCommand(Cmd,O,nil,C.IgnoreResult);'#013#010+
- ' If Assigned(C.AfterCommand) then'#013#010+
- ' C.AfterCommand(C);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.LogSearchPath(APackage: TPacka','ge; const ASear'+
- 'chPathName: string; Path: TConditionalStrings; ACPU: TCPU; AOS: TOS);'#013+
- #010+
- 'var'#013#010+
- ' S : String;'#013#010+
- ' I : Integer;'#013#010+
- ' C : TConditionalString;'#013#010+
- 'begin'#013#010+
- ' S:='#039#039';'#013#010+
- ' for i:=0 to Path.Count-1 do'#013#010+
- ' begin'#013#010+
- ' C:=Path[I];'#013#010+
- ' if (ACP','U in C.CPUs) and (AOS in C.OSes) then'#013#010+
- ' begin'#013#010+
- ' if S<>'#039#039' then'#013#010+
- ' S:=S+PathSeparator;'#013#010+
- ' S:=S+APackage.Dictionary.ReplaceStrings(C.Value)'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' if S<>'#039#039' then'#013#010+
- ' Log(vlDebug,SDbgSearchP','ath,[ASearchPathName,S]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TBuildEngine.FindFileInPath(APackage: TPackage; Path:TConditi'+
- 'onalStrings; AFileName:String; var FoundPath:String;ACPU:TCPU;AOS:TOS)'+
- ':Boolean;'#013#010+
- 'var'#013#010+
- ' I : Integer;'#013#010+
- ' C : TConditionalString;'#013#010+
- 'begi','n'#013#010+
- ' Result:=false;'#013#010+
- ' for i:=0 to Path.Count-1 do'#013#010+
- ' begin'#013#010+
- ' C:=Path[I];'#013#010+
- ' if (ACPU in C.CPUs) and (AOS in C.OSes) then'#013#010+
- ' begin'#013#010+
+ ',SourceFile,'#039'DEST'#039',DestFile]);'#010+
+ #010+
+ ' Log(vlCommand,SInfoExecutingCommand,[Cmd,O]);'#010+
+ ' ','ExecuteCommand(Cmd,O,nil,C.IgnoreResult);'#010+
+ ' If Assigned(C.AfterCommand) then'#010+
+ ' C.AfterCommand(C);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.LogSearchPath(APackage: TPackage; const ASearch'+
+ 'Path','Name: string; Path: TConditionalStrings; ACPU: TCPU; AOS: TOS);'#010+
+ 'var'#010+
+ ' S : String;'#010+
+ ' I : Integer;'#010+
+ ' C : TConditionalString;'#010+
+ 'begin'#010+
+ ' S:='#039#039';'#010+
+ ' for i:=0 to Path.Count-1 do'#010+
+ ' begin'#010+
+ ' C:=Path[I];'#010+
+ ' if (ACPU in C.CPUs) and (AOS in C.OSes',') then'#010+
+ ' begin'#010+
+ ' if S<>'#039#039' then'#010+
+ ' S:=S+PathSeparator;'#010+
+ ' S:=S+APackage.Dictionary.ReplaceStrings(C.Value)'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' if S<>'#039#039' then'#010+
+ ' Log(vlDebug,SDbgSearchPath,[ASearchPathName,S]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Functi','on TBuildEngine.FindFileInPath(APackage: TPackage; Path:TCondi'+
+ 'tionalStrings; AFileName:String; var FoundPath:String;ACPU:TCPU;AOS:TO'+
+ 'S):Boolean;'#010+
+ 'var'#010+
+ ' I : Integer;'#010+
+ ' C : TConditionalString;'#010+
+ 'begin'#010+
+ ' Result:=false;'#010+
+ ' for i:=0 to Path.Count-1 d','o'#010+
+ ' begin'#010+
+ ' C:=Path[I];'#010+
+ ' if (ACPU in C.CPUs) and (AOS in C.OSes) then'#010+
+ ' begin'#010+
' FoundPath:=IncludeTrailingPathDelimiter(APackage.Dictionary.'+
- 'ReplaceStrings(C.Valu','e));'#013#010+
- ' if FileExists(AddPathPrefix(APackage,FoundPath+AFileName)) t'+
- 'hen'#013#010+
- ' begin'#013#010+
- ' result:=true;'#013#010+
- ' exit;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' FoundPath:='#039#039';'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TBuildEngine','.GetDirectoriesFromFilelist(const AFileList, A'+
- 'DirectoryList: TStringList);'#013#010+
- 'var'#013#010+
- ' i: integer;'#013#010+
- 'begin'#013#010+
- ' ADirectoryList.Sorted:=true;'#013#010+
- ' ADirectoryList.Duplicates:=dupIgnore;'#013#010+
- ' for i := 0 to AFileList.Count-1 do'#013#010+
- ' ADirectoryList.Add(Ext','ractFileDir(AFileList.Strings[i]));'#013#010+
- 'end;'#013#010+
- #013#010+
+ 'ReplaceStrings(C.Value));'#010+
+ ' if FileExists(AddPathPrefix(APackage,Fo','undPath+AFileName))'+
+ ' then'#010+
+ ' begin'#010+
+ ' result:=true;'#010+
+ ' exit;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' FoundPath:='#039#039';'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TBuildEngine.GetDirectoriesFromFilelist(const AFileList, ADi'+
+ 'rectoryList: TStr','ingList);'#010+
+ 'var'#010+
+ ' i: integer;'#010+
+ ' s: string;'#010+
+ 'begin'#010+
+ ' ADirectoryList.Sorted:=true;'#010+
+ ' ADirectoryList.Duplicates:=dupIgnore;'#010+
+ ' for i := 0 to AFileList.Count-1 do'#010+
+ ' begin'#010+
+ ' s := ExtractFileDir(AFileList.Strings[i]);'#010+
+ ' if s <> '#039#039' then'#010+
+ ' ',' ADirectoryList.Add(s);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
'procedure TBuildEngine.AddPackageMacrosToDictionary(const APackage: TP'+
- 'ackage; ADictionary: TDictionary);'#013#010+
- 'begin'#013#010+
+ 'ackage; ADictionary: TDictionary);'#010+
+ 'begin'#010+
' APackage.Dictionary.AddVariable('#039'UNITSOUTPUTDIR'#039',AddPathPref'+
- 'ix(APackage,APackage','.GetUnitsOutputDir(Defaults.CPU,Defaults.OS)));'#013+
- #010+
+ 'ix(APackage,APackage.GetU','nitsOutputDir(Defaults.CPU,Defaults.OS)));'#010+
' APackage.Dictionary.AddVariable('#039'BINOUTPUTDIR'#039',AddPathPrefix'+
- '(APackage,APackage.GetBinOutputDir(Defaults.CPU,Defaults.OS)));'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Procedure TBuildEngine.ResolveFileNames(APackage : TPack','age; ACPU:TC'+
- 'PU;AOS:TOS;DoChangeDir:boolean=true; WarnIfNotFound:boolean=true);'#013+
- #010+
- #013#010+
- ' procedure FindMainSource(T:TTarget);'#013#010+
- ' var'#013#010+
- ' SD,SF : String;'#013#010+
- ' begin'#013#010+
+ '(APackage,APackage.GetBinOutputDir(Defaults.CPU,Defaults.OS)));'#010+
+ ' APackage.Dictionary.AddVariable('#039'PACKAGEVERSION'#039',APackage.Ve'+
+ 'rsion);'#010+
+ ' ',' APackage.Dictionary.AddVariable('#039'PACKAGEDIRECTORY'#039',APackag'+
+ 'e.Directory);'#010+
+ ' APackage.Dictionary.AddVariable('#039'PackageName'#039',APackage.Name)'+
+ ';'#010+
+ 'end;'#010+
+ #010+
+ 'Procedure TBuildEngine.ResolveFileNames(APackage : TPackage; ACPU:TCPU'+
+ ';AOS:TOS;DoChangeDir:boolea','n=true; WarnIfNotFound:boolean=true);'#010+
+ #010+
+ ' procedure FindMainSource(T:TTarget);'#010+
+ ' var'#010+
+ ' SD,SF : String;'#010+
+ ' begin'#010+
' LogSearchPath(APackage,'#039'package source'#039',APackage.SourcePat'+
- 'h,ACPU,AOS);'#013#010+
- ' ','SD:=APackage.Dictionary.ReplaceStrings(T.Directory);'#013#010+
- ' SF:=APackage.Dictionary.ReplaceStrings(T.SourceFileName);'#013#010+
- ' if SD='#039#039' then'#013#010+
- ' FindFileInPath(APackage,APackage.SourcePath,SF,SD,ACPU,AOS);'#013+
- #010+
- ' if SD<>'#039#039' then'#013#010+
- ' SD:=Includ','eTrailingPathDelimiter(SD);'#013#010+
- ' T.FTargetSourceFileName:=SD+SF;'#013#010+
+ 'h,ACPU,AOS);'#010+
+ ' SD:=APackage.Dictionary.ReplaceStrings(T.Directo','ry);'#010+
+ ' SF:=APackage.Dictionary.ReplaceStrings(T.SourceFileName);'#010+
+ ' if SD='#039#039' then'#010+
+ ' FindFileInPath(APackage,APackage.SourcePath,SF,SD,ACPU,AOS);'#010+
+ ' if SD<>'#039#039' then'#010+
+ ' SD:=IncludeTrailingPathDelimiter(SD);'#010+
+ ' T.FTargetSourceFileNa','me:=SD+SF;'#010+
' if FileExists(AddPathPrefix(APackage,T.TargetSourceFileName)) then'+
- #013#010+
+ #010+
' Log(vlDebug,SDbgResolvedSourceFile,[T.SourceFileName,T.TargetSou'+
- 'rceFileName])'#013#010+
- ' else'#013#010+
- ' b','egin'#013#010+
- ' if WarnIfNotFound then'#013#010+
- ' Log(vlWarning,SWarnSourceFileNotFound,[T.SourceFileName,APac'+
- 'kage.Name,MakeTargetString(ACPU,AOS)]);'#013#010+
- ' APackage.FAllFilesResolved:=false;'#013#010+
- ' T.FTargetSourceFileName:='#039#039';'#013#010+
- ' end',';'#013#010+
- ' end;'#013#010+
- #013#010+
- ' procedure FindIncludeSources(T:TTarget);'#013#010+
- ' var'#013#010+
- ' SD,SF : String;'#013#010+
- ' D : TDependency;'#013#010+
- ' j : integer;'#013#010+
- ' begin'#013#010+
+ 'rceFileName])'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' if WarnIfNotFound then'#010+
+ ' Log(vlWarnin','g,SWarnSourceFileNotFound,[T.SourceFileName,AP'+
+ 'ackage.Name,MakeTargetString(ACPU,AOS)]);'#010+
+ ' APackage.FAllFilesResolved:=false;'#010+
+ ' T.FTargetSourceFileName:='#039#039';'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ ' procedure FindIncludeSources(T:TTarget);'#010+
+ ' var'#010+
+ ' ','SD,SF : String;'#010+
+ ' D : TDependency;'#010+
+ ' j : integer;'#010+
+ ' begin'#010+
' LogSearchPath(APackage,'#039'target include'#039',T.IncludePath,ACPU'+
- ',AOS);'#013#010+
- ' LogSearchPath(APackage,'#039'package',' include'#039',APackage.Includ'+
- 'ePath,ACPU,AOS);'#013#010+
- ' for j:=0 to T.Dependencies.Count-1 do'#013#010+
- ' begin'#013#010+
- ' D:=T.Dependencies[j];'#013#010+
- ' if (D.DependencyType=depInclude) then'#013#010+
- ' begin'#013#010+
- ' if D.TargetFileName<>'#039#039' then'#013#010+
- ' ',' Log(vlDebug,SDbgSourceAlreadyResolved,[D.Value])'#013#010+
- ' else if (ACPU in D.CPUs) and (AOS in D.OSes) then'#013#010+
- ' begin'#013#010+
- ' if ExtractFilePath(D.Value)='#039#039' then'#013#010+
- ' begin'#013#010+
- ' ',' SF:=APAckage.Dictionary.ReplaceStrings(D.Value);'+
- #013#010+
- ' SD:='#039#039';'#013#010+
- ' // first check the target specific path'#013#010+
+ ',AOS);'#010+
+ ' LogSearchPath(APackage,'#039'package include'#039',APackage.IncludeP'+
+ 'ath,ACPU,AOS);'#010+
+ ' for j:=0 to T.Dependencies.','Count-1 do'#010+
+ ' begin'#010+
+ ' D:=T.Dependencies[j];'#010+
+ ' if (D.DependencyType=depInclude) then'#010+
+ ' begin'#010+
+ ' if D.TargetFileName<>'#039#039' then'#010+
+ ' Log(vlDebug,SDbgSourceAlreadyResolved,[D.Value])'#010+
+ ' else if (','ACPU in D.CPUs) and (AOS in D.OSes) then'#010+
+ ' begin'#010+
+ ' if ExtractFilePath(D.Value)='#039#039' then'#010+
+ ' begin'#010+
+ ' SF:=APAckage.Dictionary.ReplaceStrings(D.Value);'#010+
+ ' SD:='#039#039';'#010+
+ ' ',' // first check the target specific path'#010+
' if not FindFileInPath(APackage, T.IncludePath,SF,S'+
- 'D,ACPU,AOS) then'#013#010+
- ' ',' FindFileInPath(APackage, APackage.IncludePath,'+
- 'SF,SD,ACPU,AOS);'#013#010+
- ' if SD<>'#039#039' then'#013#010+
- ' SD:=IncludeTrailingPathDelimiter(SD);'#013#010+
- ' D.TargetFileName:=SD+SF;'#013#010+
- ' ','end'#013#010+
- ' else'#013#010+
- ' D.TargetFileName:=D.Value;'#013#010+
- ' if FileExists(AddPathPrefix(APackage,D.TargetFileName)'+
- ') then'#013#010+
+ 'D,ACPU,AOS) then'#010+
+ ' FindFileInPath(APackage, APackage.IncludePath,SF'+
+ ',SD,ACPU,AOS);'#010+
+ ' ',' if SD<>'#039#039' then'#010+
+ ' SD:=IncludeTrailingPathDelimiter(SD);'#010+
+ ' D.TargetFileName:=SD+SF;'#010+
+ ' end'#010+
+ ' else'#010+
+ ' D.TargetFileName:=D.Value;'#010+
+ ' if File','Exists(AddPathPrefix(APackage,D.TargetFileNam'+
+ 'e)) then'#010+
' Log(vlDebug,SDbgResolvedIncludeFile,[D.Value,D.Targe'+
- 'tFileName])'#013#010+
- ' ',' else'#013#010+
- ' begin'#013#010+
- ' if WarnIfNotFound then'#013#010+
- ' Log(vlWarning,SWarnIncludeFileNotFound,[D.Value,'+
- ' APackage.Name, MakeTargetString(ACPU,AOS)]);'#013#010+
- ' APackage.FAllFiles','Resolved:=false;'#013#010+
- ' D.TargetFileName:='#039#039';'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' procedure FindExampleSource(T:TTarget);'#013#010+
- ' var'#013#010+
- ' SD,SF : String;'#013#010+
- ' begin'#013#010+
- ' LogSearchPat','h(APackage,'#039'package example'#039',APackage.Exampl'+
- 'ePath,ACPU,AOS);'#013#010+
- ' SD:=APackage.Dictionary.ReplaceStrings(T.Directory);'#013#010+
- ' SF:=APackage.Dictionary.ReplaceStrings(T.SourceFileName);'#013#010+
- ' if SD='#039#039' then'#013#010+
- ' FindFileInPath(APackage, APackag','e.ExamplePath,SF,SD,ACPU,AOS);'+
- #013#010+
- ' if SD<>'#039#039' then'#013#010+
- ' SD:=IncludeTrailingPathDelimiter(SD);'#013#010+
- ' T.FTargetSourceFileName:=SD+SF;'#013#010+
+ 'tFileName])'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' if WarnIfNotFound then'#010+
+ ' ',' Log(vlWarning,SWarnIncludeFileNotFound,[D.Valu'+
+ 'e, APackage.Name, MakeTargetString(ACPU,AOS)]);'#010+
+ ' APackage.FAllFilesResolved:=false;'#010+
+ ' D.TargetFileName:='#039#039';'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' ',' end;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ ' procedure FindExampleSource(T:TTarget);'#010+
+ ' var'#010+
+ ' SD,SF : String;'#010+
+ ' begin'#010+
+ ' LogSearchPath(APackage,'#039'package example'#039',APackage.ExampleP'+
+ 'ath,ACPU,AOS);'#010+
+ ' SD:=APackage.Dictionary.ReplaceStrings(T.Director','y);'#010+
+ ' SF:=APackage.Dictionary.ReplaceStrings(T.SourceFileName);'#010+
+ ' if SD='#039#039' then'#010+
+ ' FindFileInPath(APackage, APackage.ExamplePath,SF,SD,ACPU,AOS);'#010+
+ ' if SD<>'#039#039' then'#010+
+ ' SD:=IncludeTrailingPathDelimiter(SD);'#010+
+ ' T.FTargetSourceFileN','ame:=SD+SF;'#010+
' if FileExists(AddPathPrefix(APackage,T.TargetSourceFileName)) then'+
- #013#010+
- ' Log(vlDebug,SDbgResolvedSour','ceFile,[T.SourceFileName,T.TargetS'+
- 'ourceFileName])'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' if WarnIfNotFound then'#013#010+
- ' Log(vlWarning,SWarnSourceFileNotFound,[T.SourceFileName, APa'+
- 'ckage.Name, MakeTargetString(ACPU,AOS)]);'#013#010+
- ' T.FTargetSour','ceFileName:='#039#039';'#013#010+
- ' APackage.FAllFilesResolved:=false;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- 'var'#013#010+
- ' T : TTarget;'#013#010+
- ' i : Integer;'#013#010+
- 'begin'#013#010+
- ' if not((ACPU in APackage.CPUs) and (AOS in APackage.OSes)) then'#013#010+
- ' exit;'#013#010+
- ' if APackage.FAllFilesResolved the','n'#013#010+
- ' Exit;'#013#010+
- ' APackage.FAllFilesResolved:=true;'#013#010+
- ' try'#013#010+
- ' if DoChangeDir and (APackage.Directory<>'#039#039') then'#013#010+
- ' GPathPrefix := APackage.Directory;'#013#010+
- ' APackage.Dictionary.AddVariable('#039'CPU'#039',CPUToString(ACPU));'#013+
- #010+
- ' APackage.Dictionary','.AddVariable('#039'OS'#039',OSToString(AOS));'#013+
- #010+
- ' For I:=0 to APackage.Targets.Count-1 do'#013#010+
- ' begin'#013#010+
- ' T:=APackage.FTargets.TargetItems[I];'#013#010+
- ' if (ACPU in T.CPUs) and (AOS in T.OSes) then'#013#010+
- ' begin'#013#010+
- ' // Debug informa','tion'#013#010+
+ #010+
+ ' Log(vlDebug,SDbgResolvedSourceFile,[T.SourceFileName,T.TargetSou'+
+ 'rceFileName])'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' if WarnIfNotFound then'#010+
+ ' Log(vlWarni','ng,SWarnSourceFileNotFound,[T.SourceFileName, A'+
+ 'Package.Name, MakeTargetString(ACPU,AOS)]);'#010+
+ ' T.FTargetSourceFileName:='#039#039';'#010+
+ ' APackage.FAllFilesResolved:=false;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ 'var'#010+
+ ' T : TTarget;'#010+
+ ' i : Integer;'#010+
+ 'begin'#010+
+ ' if not((','ACPU in APackage.CPUs) and (AOS in APackage.OSes)) then'#010+
+ ' exit;'#010+
+ ' if APackage.FAllFilesResolved then'#010+
+ ' Exit;'#010+
+ ' APackage.FAllFilesResolved:=true;'#010+
+ ' try'#010+
+ ' if DoChangeDir and (APackage.Directory<>'#039#039') then'#010+
+ ' GPathPrefix := APackage.Di','rectory;'#010+
+ ' APackage.Dictionary.AddVariable('#039'CPU'#039',CPUToString(ACPU));'#010+
+ ' APackage.Dictionary.AddVariable('#039'OS'#039',OSToString(AOS));'#010+
+ ' For I:=0 to APackage.Targets.Count-1 do'#010+
+ ' begin'#010+
+ ' T:=APackage.FTargets.TargetItems[I];'#010+
+ ' i','f (ACPU in T.CPUs) and (AOS in T.OSes) then'#010+
+ ' begin'#010+
+ ' // Debug information'#010+
' Log(vlDebug,SDbgResolvingSourcesOfTarget,[T.Name,MakeTarge'+
- 'tString(ACPU,AOS)]);'#013#010+
- ' LogIndent;'#013#010+
- #013#010+
- ' case T.TargetType of'#013#010+
- ' ttProgram,'#013#010+
- ' ttUnit,'#013#010+
- ' ttImplicitUnit :'#013#010+
- ' ',' begin'#013#010+
- ' if T.FTargetSourceFileName<>'#039#039' then'#013#010+
- ' Log(vlDebug,SDbgSourceAlreadyResolved,[T.Name])'#013+
- #010+
- ' else'#013#010+
- ' FindMainSource(T);'#013#010+
- ' if T.Depende','ncies.Count>0 then'#013#010+
- ' FindIncludeSources(T);'#013#010+
- ' end;'#013#010+
- ' ttExampleUnit,'#013#010+
- ' ttExampleProgram :'#013#010+
- ' begin'#013#010+
- ' if T.FTargetSourceFileName<>'#039#039' then'#013#010+
- ' ',' Log(vlDebug,SDbgSourceAlreadyResolved,[T.Name])'#013+
- #010+
- ' else'#013#010+
- ' FindExampleSource(T);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' LogUnIndent;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' finally'#013#010+
- ' If Do','ChangeDir and (APackage.Directory<>'#039#039') then'#013#010+
- ' GPathPrefix := '#039#039';'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TBuildEngine.GetUnitDir(APackage:TPackage):String;'#013#010+
- 'begin'#013#010+
- ' if APackage.UnitDir='#039#039' then'#013#010+
- ' begin'#013#010+
- ' // Retrieve Full directory name whe','re to find the units.'#013#010+
- ' // The search order is:'#013#010+
- ' // - Package in this fpmake.pp'#013#010+
- ' // - LocalUnitDir'#013#010+
- ' // - GlobalUnitDir'#013#010+
+ 'tString(ACPU,AOS)]);'#010+
+ ' LogIndent;'#010+
+ #010+
+ ' case T.TargetType of',#010+
+ ' ttProgram,'#010+
+ ' ttUnit,'#010+
+ ' ttImplicitUnit :'#010+
+ ' begin'#010+
+ ' if T.FTargetSourceFileName<>'#039#039' then'#010+
+ ' Log(vlDebug,SDbgSourceAlreadyResolved,[T.Name])'#010+
+ ' ',' else'#010+
+ ' FindMainSource(T);'#010+
+ ' if T.Dependencies.Count>0 then'#010+
+ ' FindIncludeSources(T);'#010+
+ ' end;'#010+
+ ' ttExampleUnit,'#010+
+ ' ttExampleProgram :'#010+
+ ' begi','n'#010+
+ ' if T.FTargetSourceFileName<>'#039#039' then'#010+
+ ' Log(vlDebug,SDbgSourceAlreadyResolved,[T.Name])'#010+
+ ' else'#010+
+ ' FindExampleSource(T);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ ' ','LogUnIndent;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' finally'#010+
+ ' If DoChangeDir and (APackage.Directory<>'#039#039') then'#010+
+ ' GPathPrefix := '#039#039';'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.ResolvePackagePaths(APackage:TPackage);'#010+
+ #010+
+ ' procedure ResolveUnitConfigFilena','meForBasePath(ABasePath: string);'+
+ #010+
+ ' var'#010+
+ ' IsPackageSourceLocation: boolean;'#010+
+ ' ASubDir: string;'#010+
+ ' AnUnitConfigFilename: string;'#010+
+ ' PackageBaseDir: string;'#010+
+ ' begin'#010+
+ ' if APackage.State=tsNotFound then'#010+
+ ' // When the state is tsNotF','ound, the package is not part of th'+
+ 'is fpmake, and only the package-name is known.'#010+
+ ' // In this case search for the package-name.'#010+
+ ' // This is not right for packages where the package-name and dir'+
+ 'ectory name of the source-files are'#010+
+ ' ',' // not the same. We don'#039't have a better option, though.'#010+
+ ' ASubDir:=APackage.Name'#010+
+ ' else'#010+
+ ' ASubDir:=APackage.Directory;'#010+
+ #010+
+ ' IsPackageSourceLocation:=FileExists(IncludeTrailingPathDelimiter(I'+
+ 'ncludeTrailingPathDelimiter(ABasePa','th)+ASubDir)+FPMakePPFile);'#010+
+ ' if IsPackageSourceLocation then'#010+
+ ' begin'#010+
+ ' PackageBaseDir:=IncludeTrailingPathDelimiter(IncludeTrailingPa'+
+ 'thDelimiter(ABasePath)+ASubDir);'#010+
+ ' AnUnitConfigFileName:=PackageBaseDir+APackage.GetUnit','ConfigO'+
+ 'utputFilename(Defaults.CPU,Defaults.OS);'#010+
+ ' PackageBaseDir:=IncludeTrailingPathDelimiter(PackageBaseDir+AP'+
+ 'ackage.GetUnitsOutputDir(defaults.CPU, Defaults.OS));'#010+
+ ' end'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' PackageBaseDir:=IncludeTraili','ngPathDelimiter(IncludeTrailing'+
+ 'PathDelimiter(ABasePath));'#010+
+ ' AnUnitConfigFileName:=IncludeTrailingPathDelimiter(GetUnitConf'+
+ 'igFilesInstallDir(ABasePath))+APackage.Name+FpmkExt;'#010+
+ ' PackageBaseDir:=IncludeTrailingPathDelimiter(Includ','eTrailing'+
+ 'PathDelimiter(ABasePath)+APackage.GetUnitsOutputDir(Defaults.CPU, Defa'+
+ 'ults.OS))+APackage.Name;'#010+
+ ' end;'#010+
+ #010+
+ ' if (PackageBaseDir<>'#039#039') and SysDirectoryExists(PackageBaseDi'+
+ 'r) then'#010+
+ ' begin'#010+
+ ' APackage.UnitDir:=PackageBaseDir',';'#010+
+ ' if IsPackageSourceLocation then'#010+
+ ' // Set the state to tsNoCompile and not tsCompiled. Because '+
+ 'packages'#010+
+ ' // in the tsCompiled state trigger a rebuild of packages tha'+
+ 't depend'#010+
+ ' // on it.'#010+
+ ' APackage.F','TargetState:=tsNoCompile'#010+
+ ' else if not (APackage.FTargetState in [tsCompiled, tsNoCompile'+
+ ']) then'#010+
+ ' APackage.FTargetState:=tsInstalled;'#010+
+ ' AnUnitConfigFilename:=APackage.Dictionary.ReplaceStrings(AnUni'+
+ 'tConfigFilename);'#010+
+ ' ',' if FileExists(AnUnitConfigFilename) then'#010+
+ ' APackage.UnitConfigFileName:=AnUnitConfigFilename;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ 'begin'#010+
+ ' if APackage.UnitDir='#039#039' then'#010+
+ ' begin'#010+
+ ' // Retrieve Full directory name where to find the units.'#010+
+ ' ',' // The search order is:'#010+
+ ' // - Package in this fpmake.pp'#010+
+ ' // - LocalUnitDir'#010+
+ ' // - GlobalUnitDir'#010+
' if (APackage.State in [tsCompiled, tsNoCompile, tsInstalled]) th'+
- 'en'#013#010+
- ' begin'#013#010+
- ' ',' APackage.UnitDir:=IncludeTrailingPathDelimiter(FStartDir)+'+
- 'IncludeTrailingPathDelimiter(APackage.Directory)+APackage.GetUnitsOutp'+
- 'utDir(Defaults.CPU,Defaults.OS);'#013#010+
- ' end;'#013#010+
- ' if (APackage.UnitDir='#039#039') and'#013#010+
- ' (Defaults.Loca','lUnitDir<>'#039#039') then'#013#010+
- ' begin'#013#010+
- ' APackage.UnitDir:=IncludeTrailingPathDelimiter(Defaults.Loca'+
- 'lUnitDir)+APackage.Name+PathDelim+APackage.GetPackageUnitInstallDir(de'+
- 'faults.CPU, Defaults.OS);'#013#010+
- ' if not SysDirectoryExists(AP','ackage.UnitDir) then'#013#010+
- ' APackage.UnitDir:='#039#039';'#013#010+
- ' end;'#013#010+
- ' if APackage.UnitDir='#039#039' then'#013#010+
- ' begin'#013#010+
- ' APackage.UnitDir:=IncludeTrailingPathDelimiter(Defaults.Glob'+
- 'alUnitDir)+APackage.Name+PathDelim+APackage.GetPa','ckageUnitInstallDir'+
- '(defaults.CPU, Defaults.OS);'#013#010+
- ' if not SysDirectoryExists(APackage.UnitDir) then'#013#010+
- ' APackage.UnitDir:=DirNotFound;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' if (APackage.UnitDir<>DirNotFound) then'#013#010+
- ' begin'#013#010+
- ' ',' if FileExists(IncludeTrailingPathDelimiter(APackage.UnitDi'+
- 'r)+FPMakePPFile) then'#013#010+
- ' begin'#013#010+
- ' // The package is not installed, but the source-path is '+
- 'detected.'#013#010+
- ' // It is an external package so it is imposs','ible to co'+
- 'mpile it, so'#013#010+
- ' // assume that it has been compiled earlier.'#013#010+
- ' APackage.UnitDir := IncludeTrailingPathDelimiter(APackag'+
- 'e.UnitDir) + APackage.GetUnitsOutputDir(Defaults.CPU,Defaults.OS);'#013+
- #010+
- ' // I','f the unit-directory does not exist, you know for '+
- 'sure that'#013#010+
- ' // the package is not compiled'#013#010+
- ' if not SysDirectoryExists(APackage.UnitDir) then'#013#010+
- ' APackage.UnitDir:=DirNotFound'#013#010+
- ' else'#013#010+
- ' ',' // Set the state to tsNoCompile and not tsCompiled. '+
- 'Because packages'#013#010+
- ' // in the tsCompiled state trigger a rebuild of packag'+
- 'es that depend'#013#010+
- ' // on it.'#013#010+
- ' APackage.FTargetState:=tsNo','Compile;'#013#010+
- ' end'#013#010+
- ' else if not (APackage.FTargetState in [tsCompiled, tsNoCompi'+
- 'le]) then'#013#010+
- ' begin'#013#010+
- ' APackage.FTargetState:=tsInstalled;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' // Special error',' marker to prevent searches in case of error'#013#010+
- ' if APackage.UnitDir=DirNotFound then'#013#010+
- ' Result:='#039#039#013#010+
- ' else'#013#010+
- ' Result:=APackage.UnitDir;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.AddDependencyPaths(L: TStrings; DependencyType:'+
- ' TDependencyType; A','Target: TTarget);'#013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- ' D : TDependency;'#013#010+
- ' SD : String;'#013#010+
- 'begin'#013#010+
- ' For I:=0 to ATarget.Dependencies.Count-1 do'#013#010+
- ' begin'#013#010+
- ' D:=ATarget.Dependencies[i];'#013#010+
- ' if (D.DependencyType=DependencyType) and'#013#010+
- ' (Defaul','ts.CPU in D.CPUs) and (Defaults.OS in D.OSes) then'#013+
- #010+
- ' begin'#013#010+
+ 'en'#010+
+ ' ResolveUnitConfigFilenameForBasePath(FStartDi','r);'#010+
+ ' if (APackage.UnitDir='#039#039') and'#010+
+ ' (Defaults.LocalUnitDir<>'#039#039') then'#010+
+ ' ResolveUnitConfigFilenameForBasePath(Defaults.LocalUnitDir);'#010+
+ ' if (APackage.UnitDir='#039#039') and'#010+
+ ' (Defaults.GlobalUnitDir<>'#039#039') then'#010+
+ ' Reso','lveUnitConfigFilenameForBasePath(Defaults.GlobalUnitDir)'+
+ ';'#010+
+ #010+
+ ' if (APackage.UnitDir='#039#039') then'#010+
+ ' APackage.UnitDir:=DirNotFound;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TBuildEngine.GetUnitDir(APackage:TPackage):String;'#010+
+ 'begin'#010+
+ ' ResolvePackagePaths(AP','ackage);'#010+
+ ' // Special error marker to prevent searches in case of error'#010+
+ ' if APackage.UnitDir=DirNotFound then'#010+
+ ' Result:='#039#039#010+
+ ' else'#010+
+ ' Result:=APackage.UnitDir;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.AddDependencyPaths(L: TStrings; DependencyType:',
+ ' TDependencyType; ATarget: TTarget);'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ ' D : TDependency;'#010+
+ ' SD : String;'#010+
+ 'begin'#010+
+ ' For I:=0 to ATarget.Dependencies.Count-1 do'#010+
+ ' begin'#010+
+ ' D:=ATarget.Dependencies[i];'#010+
+ ' if (D.DependencyType=DependencyType) and'#010+
+ ' ',' (Defaults.CPU in D.CPUs) and (Defaults.OS in D.OSes) then'#010+
+ ' begin'#010+
' SD:=ExcludeTrailingPathDelimiter(ExtractFilePath(D.TargetFil'+
- 'eName));'#013#010+
- ' if SD<>'#039#039' then'#013#010+
- ' L.Add(SD);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure',' TBuildEngine.AddDependencyUnitPaths(L:TStrings;APackage: T'+
- 'Package);'#013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- ' P : TPackage;'#013#010+
- ' D : TDependency;'#013#010+
- ' S : String;'#013#010+
- 'begin'#013#010+
- ' For I:=0 to APackage.Dependencies.Count-1 do'#013#010+
- ' begin'#013#010+
- ' D:=APackage.Dependencies[','i];'#013#010+
- ' if (D.DependencyType=depPackage) and'#013#010+
- ' (Defaults.CPU in D.CPUs) and (Defaults.OS in D.OSes) then'#013+
- #010+
- ' begin'#013#010+
- ' P:=TPackage(D.Target);'#013#010+
- ' If Assigned(P) then'#013#010+
- ' begin'#013#010+
- ' // Already',' processed?'#013#010+
- ' S:=GetUnitDir(P);'#013#010+
- ' if L.IndexOf(S)=-1 then'#013#010+
- ' begin'#013#010+
- ' // Add this package and then dependencies'#013#010+
- ' L.Add(S);'#013#010+
- ' AddDependencyUnitPaths(L',',P);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
+ 'eName));'#010+
+ ' if SD<>'#039#039' then'#010+
+ ' L.Add(SD);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure ','TBuildEngine.AddDependencyUnitPaths(L:TStrings;APackage: T'+
+ 'Package);'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ ' P : TPackage;'#010+
+ ' D : TDependency;'#010+
+ ' S : String;'#010+
+ 'begin'#010+
+ ' For I:=0 to APackage.Dependencies.Count-1 do'#010+
+ ' begin'#010+
+ ' D:=APackage.Dependencies[i];'#010+
+ ' ','if (D.DependencyType=depPackage) and'#010+
+ ' (Defaults.CPU in D.CPUs) and (Defaults.OS in D.OSes) then'#010+
+ ' begin'#010+
+ ' P:=TPackage(D.Target);'#010+
+ ' If Assigned(P) then'#010+
+ ' begin'#010+
+ ' // Already processed?'#010+
+ ' ',' S:=GetUnitDir(P);'#010+
+ ' if L.IndexOf(S)=-1 then'#010+
+ ' begin'#010+
+ ' // Add this package and then dependencies'#010+
+ ' L.Add(S);'#010+
+ ' AddDependencyUnitPaths(L,P);'#010+
+ ' en','d;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
'function TBuildEngine.AddPathPrefix(APackage: TPackage; APath: string)'+
- ': string;'#013#010+
- 'begin'#013#010+
- ' if IsRelativePath(APath) and (GPathPrefix<>'#039#039') then'#013#010+
- ' result := Inclu','deTrailingPathDelimiter(GPathPrefix) + APath'#013#010+
- ' else'#013#010+
- ' result := APath;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ ': string;'#010+
+ 'begin'#010+
+ ' if IsRelativePath(APath) and (GPathPrefix<>'#039#039') then'#010+
+ ' result := IncludeTrailingPathDelimiter(GPathPref','ix) + APath'#010+
+ ' else'#010+
+ ' result := APath;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'Function TBuildEngine.GetCompilerCommand(APackage : TPackage; ATarget '+
- ': TTarget; Env: TStrings) : String;'#013#010+
- 'Var'#013#010+
- ' L : TUnsortedDuplicatesStringList;'#013#010+
- ' Ar','gs : TStringList;'#013#010+
- ' s : string;'#013#010+
- ' ErrS: string;'#013#010+
- ' i : Integer;'#013#010+
- 'begin'#013#010+
- ' if ATarget.TargetSourceFileName = '#039#039' then'#013#010+
- ' Error(SErrCouldNotCompile,[ATarget.Name, APackage.Name]);'#013#010+
- #013#010+
- ' Args:=TStringList.Create;'#013#010+
- ' Args.Duplicates:=dupIgnor','e;'#013#010+
- #013#010+
- ' Result := '#039#039';'#013#010+
- #013#010+
- ' //compiler configuration'#013#010+
- ' if Defaults.NoFPCCfg then'#013#010+
- ' Args.Add('#039'-n'#039');'#013#010+
- #013#010+
- ' // Target OS'#013#010+
- ' Args.Add('#039'-T'#039'+OSToString(Defaults.OS));'#013#010+
- #013#010+
- ' // Target CPU.'#013#010+
- ' // This setting is only applicable when '#039'fpc'#039' is used ','as c'+
- 'ompiler-executable.'#013#010+
- ' if ExtractFileName(GetCompiler) = '#039'fpc'#039' then'#013#010+
- ' Args.Add('#039'-P'#039'+CPUToString(Defaults.CPU));'#013#010+
- #013#010+
- ' // Compile mode'#013#010+
- ' If ATarget.Mode<>cmFPC then'#013#010+
- ' Args.Add('#039'-M'#039'+ModeToString(ATarget.Mode))'#013#010+
- ' else If Defaults.Mo','de<>cmFPC then'#013#010+
- ' Args.Add('#039'-M'#039'+ModeToString(Defaults.Mode));'#013#010+
- ' // Output file paths'#013#010+
- ' If ATarget.TargetType in ProgramTargets then'#013#010+
+ ': TTarget; Env: TStrings) : String;'#010+
+ 'Var'#010+
+ ' L : TUnsortedDuplicatesStringList;'#010+
+ ' Args : TStringList;'#010+
+ ' s : string;'#010+
+ ' ErrS: st','ring;'#010+
+ ' i : Integer;'#010+
+ 'begin'#010+
+ ' if ATarget.TargetSourceFileName = '#039#039' then'#010+
+ ' Error(SErrCouldNotCompile,[ATarget.Name, APackage.Name]);'#010+
+ #010+
+ ' Args:=TStringList.Create;'#010+
+ ' Args.Duplicates:=dupIgnore;'#010+
+ #010+
+ ' Result := '#039#039';'#010+
+ #010+
+ ' //compiler configuration'#010+
+ ' i','f Defaults.NoFPCCfg then'#010+
+ ' Args.Add('#039'-n'#039');'#010+
+ #010+
+ ' // Target OS'#010+
+ ' Args.Add('#039'-T'#039'+OSToString(Defaults.OS));'#010+
+ #010+
+ ' // Target CPU.'#010+
+ ' // This setting is only applicable when '#039'fpc'#039' is used as com'+
+ 'piler-executable.'#010+
+ ' if ExtractFileName(GetCompiler) = '#039'fp','c'#039' then'#010+
+ ' Args.Add('#039'-P'#039'+CPUToString(Defaults.CPU));'#010+
+ #010+
+ ' // Compile mode'#010+
+ ' If ATarget.Mode<>cmFPC then'#010+
+ ' Args.Add('#039'-M'#039'+ModeToString(ATarget.Mode))'#010+
+ ' else If Defaults.Mode<>cmFPC then'#010+
+ ' Args.Add('#039'-M'#039'+ModeToString(Defaults.Mode));'#010+
+ ' // Ou','tput file paths'#010+
+ ' If ATarget.TargetType in ProgramTargets then'#010+
' Args.Add('#039'-FE'#039'+AddPathPrefix(APackage,APackage.GetBinOutpu'+
- 'tDir(Defaults.CPU,Defaults.OS)));'#013#010+
- ' Args','.Add('#039'-FU'#039'+AddPathPrefix(APackage,APackage.GetUnitsOut'+
- 'putDir(Defaults.CPU,Defaults.OS)));'#013#010+
- ' // Object Path'#013#010+
- ' L:=TUnsortedDuplicatesStringList.Create;'#013#010+
- ' L.Duplicates:=dupIgnore;'#013#010+
- ' AddConditionalStrings(APackage, L,APackage.ObjectPath,Def','aults.CPU'+
- ',Defaults.OS);'#013#010+
- ' AddConditionalStrings(APackage, L,ATarget.ObjectPath,Defaults.CPU,De'+
- 'faults.OS);'#013#010+
- ' for i:=0 to L.Count-1 do'#013#010+
- ' Args.Add('#039'-Fo'#039'+AddPathPrefix(APackage,L[i]));'#013#010+
- ' FreeAndNil(L);'#013#010+
- ' // Unit Dirs'#013#010+
- ' L:=TUnsortedDupli','catesStringList.Create;'#013#010+
- ' L.Duplicates:=dupIgnore;'#013#010+
- ' AddDependencyUnitPaths(L,APackage);'#013#010+
- ' AddDependencyPaths(L,depUnit,ATarget);'#013#010+
+ 'tDir(Defaults.CPU,Defaults.OS)));'#010+
+ ' Args.Add('#039'-FU'#039'+AddPathPrefix(APackage,APackage.GetUnitsOutpu'+
+ 'tDir(Defaults.CPU,D','efaults.OS)));'#010+
+ ' // Object Path'#010+
+ ' L:=TUnsortedDuplicatesStringList.Create;'#010+
+ ' L.Duplicates:=dupIgnore;'#010+
+ ' AddConditionalStrings(APackage, L,APackage.ObjectPath,Defaults.CPU,D'+
+ 'efaults.OS);'#010+
+ ' AddConditionalStrings(APackage, L,ATarget.ObjectPath,','Defaults.CPU,'+
+ 'Defaults.OS);'#010+
+ ' for i:=0 to L.Count-1 do'#010+
+ ' Args.Add('#039'-Fo'#039'+AddPathPrefix(APackage,L[i]));'#010+
+ ' FreeAndNil(L);'#010+
+ ' // Unit Dirs'#010+
+ ' L:=TUnsortedDuplicatesStringList.Create;'#010+
+ ' L.Duplicates:=dupIgnore;'#010+
+ ' AddDependencyUnitPaths(L,APackag','e);'#010+
+ ' AddDependencyPaths(L,depUnit,ATarget);'#010+
' AddConditionalStrings(APackage, L,APackage.UnitPath,Defaults.CPU,Def'+
- 'aults.OS);'#013#010+
- ' AddConditionalStrings(','APackage, L,ATarget.UnitPath,Defaults.CPU,De'+
- 'faults.OS);'#013#010+
- ' for i:=0 to L.Count-1 do'#013#010+
- ' Args.Add('#039'-Fu'#039'+AddPathPrefix(APackage,L[i]));'#013#010+
- ' FreeAndNil(L);'#013#010+
- ' // Include Path'#013#010+
- ' L:=TUnsortedDuplicatesStringList.Create;'#013#010+
- ' L.Duplicates:=dupIgno','re;'#013#010+
- ' AddDependencyPaths(L,depInclude,ATarget);'#013#010+
- ' AddConditionalStrings(APackage, L,APackage.IncludePath,Defaults.CPU,'+
- 'Defaults.OS);'#013#010+
+ 'aults.OS);'#010+
+ ' AddConditionalStrings(APackage, L,ATarget.UnitPath,Defaults.CPU,Defa'+
+ 'ults.OS);'#010+
+ ' for i:=0 to L.Count-1 do'#010+
+ ' Arg','s.Add('#039'-Fu'#039'+AddPathPrefix(APackage,L[i]));'#010+
+ ' FreeAndNil(L);'#010+
+ ' // Include Path'#010+
+ ' L:=TUnsortedDuplicatesStringList.Create;'#010+
+ ' L.Duplicates:=dupIgnore;'#010+
+ ' AddDependencyPaths(L,depInclude,ATarget);'#010+
+ ' AddConditionalStrings(APackage, L,APackage.Inc','ludePath,Defaults.CP'+
+ 'U,Defaults.OS);'#010+
' AddConditionalStrings(APackage, L,ATarget.IncludePath,Defaults.CPU,D'+
- 'efaults.OS);'#013#010+
- ' for i:=0 to L.Count','-1 do'#013#010+
- ' Args.Add('#039'-Fi'#039'+AddPathPrefix(APackage,L[i]));'#013#010+
- ' FreeAndNil(L);'#013#010+
- #013#010+
- ' // libc-linker path'#013#010+
- ' if APackage.NeedLibC then'#013#010+
- ' begin'#013#010+
- ' if FCachedlibcPath='#039#039' then'#013#010+
- ' begin'#013#010+
- ' s:=GetDefaultLibGCCDir(Defaults.CPU, Defaults.OS',',ErrS);'#013#010+
- ' if s='#039#039' then'#013#010+
- ' Log(vlWarning, SWarngcclibpath +'#039' '#039'+ErrS)'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- '{$ifndef NO_THREADING}'#013#010+
- ' EnterCriticalsection(FGeneralCriticalSection);'#013#010+
- ' try'#013#010+
- '{$endif NO_THREADING}'#013#010+
- ' FCached','libcPath:=s;'#013#010+
- '{$ifndef NO_THREADING}'#013#010+
- ' finally'#013#010+
- ' LeaveCriticalsection(FGeneralCriticalSection);'#013#010+
- ' end;'#013#010+
- '{$endif NO_THREADING}'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' Args.Add('#039'-Fl'#039'+FCachedlibcPath);'#013#010+
- ' end;'#013#010+
- #013#010+
- ' // Custom ','Options'#013#010+
- ' If (Defaults.HaveOptions) then'#013#010+
- ' Args.AddStrings(Defaults.Options);'#013#010+
- #013#010+
- ' APackage.ApplyPackageVariantToCompilerOptions(Args);'#013#010+
- #013#010+
- ' If (APackage.HaveOptions) then'#013#010+
- ' Args.AddStrings(APackage.Options);'#013#010+
- ' If (ATarget.HaveOptio','ns) then'#013#010+
- ' Args.AddStrings(ATarget.Options);'#013#010+
- #013#010+
- ' {$ifdef HAS_UNIT_PROCESS}'#013#010+
- ' // Force the compiler-output to be easy parseable'#013#010+
- ' if not Verbose then'#013#010+
- ' args.Add('#039'-viq'#039');'#013#010+
- ' {$endif}'#013#010+
- #013#010+
- ' // Convert to string'#013#010+
- ' Result:='#039#039';'#013#010+
- ' for i:','=0 to Args.Count-1 do'#013#010+
- ' Result:=Result+'#039' '#039'+maybequoted(Args[i]);'#013#010+
- ' Delete(result,1,1);'#013#010+
- #013#010+
- ' if Defaults.UseEnvironment and assigned(Env) then'#013#010+
- ' begin'#013#010+
- ' env.Values['#039'FPCEXTCMD'#039'] := Result;'#013#010+
- ' result := '#039'!FPCEXTCMD'#039';'#013#010+
- ' // ','Make sure that this process'#039' environment variables are '+
- 'passed to the'#013#010+
- ' // compiler'#039's environment'#013#010+
- ' for i := 0 to GetEnvironmentVariableCount-1 do'#013#010+
- ' env.Add(GetEnvironmentString(i));'#013#010+
- ' end;'#013#010+
- #013#010+
- ' // Add Filename to compile',#013#010+
+ 'efaults.OS);'#010+
+ ' for i:=0 to L.Count-1 do'#010+
+ ' Args.Add('#039'-Fi'#039'+AddPathPrefix(APackage,L[i]));'#010+
+ ' FreeAndNil(L);'#010+
+ #010+
+ ' // libc-linker path'#010+
+ ' if',' APackage.NeedLibC then'#010+
+ ' begin'#010+
+ ' if FCachedlibcPath='#039#039' then'#010+
+ ' begin'#010+
+ ' s:=GetDefaultLibGCCDir(Defaults.CPU, Defaults.OS,ErrS);'#010+
+ ' if s='#039#039' then'#010+
+ ' Log(vlWarning, SWarngcclibpath +'#039' '#039'+ErrS)'#010+
+ ' else'#010+
+ ' begin'#010+
+ '{$ifnde','f NO_THREADING}'#010+
+ ' EnterCriticalsection(FGeneralCriticalSection);'#010+
+ ' try'#010+
+ '{$endif NO_THREADING}'#010+
+ ' FCachedlibcPath:=s;'#010+
+ '{$ifndef NO_THREADING}'#010+
+ ' finally'#010+
+ ' LeaveCriticalsection(FGeneralCriticalSection);'#010+
+ ' e','nd;'#010+
+ '{$endif NO_THREADING}'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ ' Args.Add('#039'-Fl'#039'+FCachedlibcPath);'#010+
+ ' end;'#010+
+ #010+
+ ' // Custom Options'#010+
+ ' If (Defaults.HaveOptions) then'#010+
+ ' Args.AddStrings(Defaults.Options);'#010+
+ #010+
+ ' APackage.ApplyPackageVariantToCompilerOptions(A','rgs);'#010+
+ #010+
+ ' If (APackage.HaveOptions) then'#010+
+ ' Args.AddStrings(APackage.Options);'#010+
+ ' If (ATarget.HaveOptions) then'#010+
+ ' Args.AddStrings(ATarget.Options);'#010+
+ #010+
+ ' {$ifdef HAS_UNIT_PROCESS}'#010+
+ ' // Force the compiler-output to be easy parseable'#010+
+ ' if not V','erbose then'#010+
+ ' args.Add('#039'-viq'#039');'#010+
+ ' {$endif}'#010+
+ #010+
+ ' // Convert to string'#010+
+ ' Result:='#039#039';'#010+
+ ' for i:=0 to Args.Count-1 do'#010+
+ ' Result:=Result+'#039' '#039'+maybequoted(APackage.Dictionary.Replace'+
+ 'Strings(Args[i]));'#010+
+ ' Delete(result,1,1);'#010+
+ #010+
+ ' if Defaults.UseEnviro','nment and assigned(Env) then'#010+
+ ' begin'#010+
+ ' env.Values['#039'FPCEXTCMD'#039'] := Result;'#010+
+ ' result := '#039'!FPCEXTCMD'#039';'#010+
+ ' // Make sure that this process'#039' environment variables are pa'+
+ 'ssed to the'#010+
+ ' // compiler'#039's environment'#010+
+ ' for i := 0 to ','GetEnvironmentVariableCount-1 do'#010+
+ ' env.Add(GetEnvironmentString(i));'#010+
+ ' end;'#010+
+ #010+
+ ' // Add Filename to compile'#010+
' result := result + '#039' '#039' + AddPathPrefix(APackage,ATarget.Targ'+
- 'etSourceFileName);'#013#010+
- #013#010+
- ' Args.Free;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TBuildEngine.GetCompiler : String;'#013#010+
- 'Var'#013#010+
- ' S : String;'#013#010+
- 'begin'#013#010+
- ' // Cache in FCompiler for speed.'#013#010+
- ' If (FCompiler='#039#039') th','en'#013#010+
- ' begin'#013#010+
- ' FCompiler:=Defaults.Compiler;'#013#010+
- ' If (ExtractFilePath(FCompiler)='#039#039') then'#013#010+
- ' begin'#013#010+
- ' S:=ExeSearch(FCompiler,GetEnvironmentVariable('#039'PATH'#039'));'#013+
- #010+
- ' If (S<>'#039#039') then'#013#010+
- ' FCompiler:=S;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010,
- ' Result:=FCompiler;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.CreateOutputDir(APackage: TPackage);'#013#010+
- 'Var'#013#010+
- ' D : String;'#013#010+
- ' i: integer;'#013#010+
- 'begin'#013#010+
- ' //create a units directory'#013#010+
+ 'etSourceFileName);'#010+
+ #010+
+ ' Args.Free;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TBuildEngine.Ge','tCompiler : String;'#010+
+ 'Var'#010+
+ ' S : String;'#010+
+ 'begin'#010+
+ ' // Cache in FCompiler for speed.'#010+
+ ' If (FCompiler='#039#039') then'#010+
+ ' begin'#010+
+ ' FCompiler:=Defaults.Compiler;'#010+
+ ' If (ExtractFilePath(FCompiler)='#039#039') then'#010+
+ ' begin'#010+
+ ' S:=ExeSearch(FCompiler,SysUtil','s.GetEnvironmentVariable('#039'PA'+
+ 'TH'#039'));'#010+
+ ' If (S<>'#039#039') then'#010+
+ ' FCompiler:=S;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' Result:=FCompiler;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.CreateOutputDir(APackage: TPackage);'#010+
+ 'Var'#010+
+ ' D : String;'#010+
+ ' i: integer;'#010+
+ 'begin'#010+
+ ' //create a u','nits directory'#010+
' D:=AddPathPrefix(APackage,APackage.GetUnitsOutputDir(Defaults.CPU,De'+
- 'fault','s.OS));'#013#010+
- ' If not SysDirectoryExists(D) then'#013#010+
- ' begin'#013#010+
- ' Log(vlInfo,SInfoCreatingOutputDir,[D]);'#013#010+
- ' CmdCreateDir(D);'#013#010+
- ' end;'#013#010+
- #013#010+
- ' //also create a bin directory for programtargets'#013#010+
- ' For i := 0 to Pred(APackage.Targets.Count) do'#013,#010+
- ' begin'#013#010+
+ 'faults.OS));'#010+
+ ' If not SysDirectoryExists(D) then'#010+
+ ' begin'#010+
+ ' Log(vlInfo,SInfoCreatingOutputDir,[D]);'#010+
+ ' CmdCreateDir(D);'#010+
+ ' end;'#010+
+ #010+
+ ' //also create a',' bin directory for programtargets'#010+
+ ' For i := 0 to Pred(APackage.Targets.Count) do'#010+
+ ' begin'#010+
' if APackage.Targets.TargetItems[i].TargetType in (ProgramTargets'+
- '-[ttExampleProgram]) then'#013#010+
- ' begin'#013#010+
- ' D:=AddPathPrefix(APackage,APackage.GetBinOutputDir(Defaults.'+
- 'CPU,Defaults.OS));'#013#010+
- ' If not SysDirect','oryExists(D) then'#013#010+
- ' begin'#013#010+
- ' Log(vlInfo,SInfoCreatingOutputDir,[D]);'#013#010+
- ' CmdCreateDir(D);'#013#010+
- ' end;'#013#010+
- ' //do not continue loop, directory is made anyway'#013#010+
- ' break;'#013#010+
- ' end;'#013#010+
- ' e','nd;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ '-[ttExampleProgram]) then'#010+
+ ' begin'#010+
+ ' D:=AddPathPrefix(APackage,AP','ackage.GetBinOutputDir(Default'+
+ 's.CPU,Defaults.OS));'#010+
+ ' If not SysDirectoryExists(D) then'#010+
+ ' begin'#010+
+ ' Log(vlInfo,SInfoCreatingOutputDir,[D]);'#010+
+ ' CmdCreateDir(D);'#010+
+ ' end;'#010+
+ ' //do not contin','ue loop, directory is made anyway'#010+
+ ' break;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'Function TBuildEngine.DependencyOK(ADependency : TDependency) : Boolea'+
- 'n;'#013#010+
- 'begin'#013#010+
+ 'n;'#010+
+ 'begin'#010+
' Result:=(Defaults.CPU in ADependency.CPUs) and (Defaults.OS in ADepe'+
- 'ndency.OSes);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TBuildEngine.TargetOK(ATarget: TTarget; AC','PU: TCPU; AOS: TO'+
- 'S): Boolean;'#013#010+
- 'begin'#013#010+
- ' if Defaults.SkipCrossPrograms and'#013#010+
- ' (ATarget.TargetType in ProgramTargets) and'#013#010+
- ' IsDifferentFromBuild(ACPU, AOS) then'#013#010+
- ' result := False'#013#010+
- ' else'#013#010+
- ' Result:=(ACPU in ATarget.CPUs) and (AOS ','in ATarget.OSes);'#013#010+
- 'end;'#013#010+
- #013#010+
+ 'ndency.OSes',');'#010+
+ 'end;'#010+
+ #010+
+ 'function TBuildEngine.TargetOK(ATarget: TTarget; ACPU: TCPU; AOS: TOS)'+
+ ': Boolean;'#010+
+ 'begin'#010+
+ ' if Defaults.SkipCrossPrograms and'#010+
+ ' (ATarget.TargetType in ProgramTargets) and'#010+
+ ' IsDifferentFromBuild(ACPU, AOS) then'#010+
+ ' result := Fals','e'#010+
+ ' else'#010+
+ ' Result:=(ACPU in ATarget.CPUs) and (AOS in ATarget.OSes);'#010+
+ 'end;'#010+
+ #010+
'function TBuildEngine.TargetInstallOK(ATarget: TTarget; ACPU: TCPU; AO'+
- 'S: TOS): Boolean;'#013#010+
- 'begin'#013#010+
- ' result := TargetOK(ATarget, ACPU, AOS) and ATarget.Install;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TBuildEngine.PackageOK(APackage : T','Package) : Boolean;'#013#010+
- 'begin'#013#010+
+ 'S: TOS): Boolean;'#010+
+ 'begin'#010+
+ ' result := TargetOK(ATarget, ACPU, AOS) and ATarget.Install;'#010+
+ 'end;'#010+
+ #010+
+ #010,
+ 'Function TBuildEngine.PackageOK(APackage : TPackage) : Boolean;'#010+
+ 'begin'#010+
' Result:=(Defaults.CPU in APackage.CPUs) and (Defaults.OS in APackage'+
- '.OSes);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.DoBeforeCompile(APackage: TPackage);'#013#010+
- 'begin'#013#010+
- ' ExecuteCommands(APackage.Commands,caBeforeCompile);'#013#010,
- ' If Assigned(APackage.BeforeCompile) then'#013#010+
- ' APackage.BeforeCompile(APackage);'#013#010+
- ' If Assigned(APackage.BeforeCompileProc) then'#013#010+
- ' APackage.BeforeCompileProc(APackage);'#013#010+
- ' // It could be that files that weren'#039't found before are availabl',
- 'e now.'#013#010+
- ' ResolveFileNames(APackage,Defaults.CPU,Defaults.OS,false,true);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.DoAfterCompile(APackage: TPackage);'#013#010+
- 'begin'#013#010+
- ' If Assigned(APackage.AfterCompile) then'#013#010+
- ' APackage.AfterCompile(APackage);'#013#010+
- ' If As','signed(APackage.AfterCompileProc) then'#013#010+
- ' APackage.AfterCompileProc(APackage);'#013#010+
- ' ExecuteCommands(APackage.Commands,caAfterCompile);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ '.OSes);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.DoBeforeCompile(APackage: TPackage);'#010+
+ 'begin'#010+
+ ' ExecuteCommands(A','Package.Commands,caBeforeCompile);'#010+
+ ' If Assigned(APackage.BeforeCompile) then'#010+
+ ' APackage.BeforeCompile(APackage);'#010+
+ ' If Assigned(APackage.BeforeCompileProc) then'#010+
+ ' APackage.BeforeCompileProc(APackage);'#010+
+ ' // It could be that files that we','ren'#039't found before are availa'+
+ 'ble now.'#010+
+ ' ResolveFileNames(APackage,Defaults.CPU,Defaults.OS,false,true);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.DoAfterCompile(APackage: TPackage);'#010+
+ 'begin'#010+
+ ' If Assigned(APackage.AfterCompile) then'#010+
+ ' APackage.AfterComp','ile(APackage);'#010+
+ ' If Assigned(APackage.AfterCompileProc) then'#010+
+ ' APackage.AfterCompileProc(APackage);'#010+
+ ' ExecuteCommands(APackage.Commands,caAfterCompile);'#010+
+ 'end;'#010+
+ #010+
+ #010+
'Function TBuildEngine.NeedsCompile(APackage:TPackage;ATarget: TTarget)'+
- ': Boolean;'#013#010+
- 'Var'#013#010+
- ' I : I','nteger;'#013#010+
- ' D : TDependency;'#013#010+
- ' T : TTarget;'#013#010+
- ' OD,OFN,TFN : String;'#013#010+
- ' CompileReason: String;'#013#010+
- 'begin'#013#010+
- ' Result:=False;'#013#010+
- #013#010+
- ' // Forced recompile?'#013#010+
- ' if FForceCompile then'#013#010+
- ' begin'#013#010+
- ' Result:=true;'#013#010+
- ' CompileReason:=SDbgForcedCompile;'#013#010,
- ' end;'#013#010+
- #013#010+
- ' // For now examples are not compiled at all'#013#010+
- ' if ATarget.TargetType in [ttExampleUnit, ttExampleProgram] then'#013#010+
- ' Exit;'#013#010+
- #013#010+
+ ': Boolea','n;'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ ' D : TDependency;'#010+
+ ' T : TTarget;'#010+
+ ' OD,OFN,TFN : String;'#010+
+ ' CompileReason: String;'#010+
+ 'begin'#010+
+ ' Result:=False;'#010+
+ #010+
+ ' // Forced recompile?'#010+
+ ' if FForceCompile then'#010+
+ ' begin'#010+
+ ' Result:=true;'#010+
+ ' CompileReason:=SDbgForcedCompile;',#010+
+ ' end;'#010+
+ #010+
+ ' // For now examples are not compiled at all'#010+
+ ' if ATarget.TargetType in [ttExampleUnit, ttExampleProgram] then'#010+
+ ' Exit;'#010+
+ #010+
' // Files which should not be compiled on this target can not trigger'+
- ' a compile.'#013#010+
- ' if not TargetOK(','ATarget, Defaults.CPU, Defaults.OS) then'#013#010+
- ' Exit;'#013#010+
- #013#010+
- ' // Check output file'#013#010+
- ' if not result then'#013#010+
- ' begin'#013#010+
- ' if ATarget.TargetType in ProgramTargets then'#013#010+
- ' OD:=APackage.GetBinOutputDir(Defaults.CPU,Defaults.OS)'#013#010+
- ' else'#013#010,
- ' OD:=APackage.GetUnitsOutputDir(Defaults.CPU,Defaults.OS);'#013#010+
- ' If (OD<>'#039#039') then'#013#010+
- ' OD:=IncludeTrailingPathDelimiter(OD);'#013#010+
+ ' a compile.'#010+
+ ' if not TargetOK(ATarge','t, Defaults.CPU, Defaults.OS) then'#010+
+ ' Exit;'#010+
+ #010+
+ ' // Check output file'#010+
+ ' if not result then'#010+
+ ' begin'#010+
+ ' if ATarget.TargetType in ProgramTargets then'#010+
+ ' OD:=APackage.GetBinOutputDir(Defaults.CPU,Defaults.OS)'#010+
+ ' else'#010+
+ ' OD:=APa','ckage.GetUnitsOutputDir(Defaults.CPU,Defaults.OS);'#010+
+ ' If (OD<>'#039#039') then'#010+
+ ' OD:=IncludeTrailingPathDelimiter(OD);'#010+
' OFN:=AddPathPrefix(APackage, OD+ATarget.GetOutPutFileName(Defaul'+
- 'ts.OS));'#013#010+
- ' Result:=Not File','Exists(OFN);'#013#010+
- ' if Result then'#013#010+
- ' begin'#013#010+
- ' CompileReason:=SDbgOutputDoesNotExist;'#013#010+
- ' Log(vlDebug,SDbgOutputNotYetAvailable,[OFN]);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' // Check main source'#013#010+
- ' If not Result then'#013#010+
- ' begin'#013#010+
- ' ',' TFN := AddPathPrefix(APackage,ATarget.TargetSourceFileName);'#013+
- #010+
- ' if FileExists(TFN) then'#013#010+
- ' Result:=FileNewer(TFN,OFN);'#013#010+
- ' if Result then'#013#010+
- ' CompileReason:=SDbgNewerSource;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' // Check unit and include depe','ndencies'#013#010+
- ' If not Result then'#013#010+
- ' begin'#013#010+
+ 'ts.OS));'#010+
+ ' Result:=Not FileExists(OFN);'#010+
+ ' ','if Result then'#010+
+ ' begin'#010+
+ ' CompileReason:=SDbgOutputDoesNotExist;'#010+
+ ' Log(vlDebug,SDbgOutputNotYetAvailable,[OFN]);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ ' // Check main source, only if the TargetSourceFileName is found'#010+
+ ' If not Result and (','ATarget.TargetSourceFileName<>'#039#039') then'#010+
+ ' begin'#010+
+ ' TFN := AddPathPrefix(APackage,ATarget.TargetSourceFileName);'#010+
+ ' if FileExists(TFN) then'#010+
+ ' Result:=FileNewer(TFN,OFN);'#010+
+ ' if Result then'#010+
+ ' CompileReason:=SDbgNewerSourc','e;'#010+
+ ' end;'#010+
+ #010+
+ ' // Check unit and include dependencies'#010+
+ ' If not Result then'#010+
+ ' begin'#010+
' ResolveDependencies(ATarget.Dependencies,ATarget.Collection as T'+
- 'Targets);'#013#010+
- ' I:=0;'#013#010+
- ' for i:=0 to ATarget.Dependencies.Count-1 do'#013#010+
- ' begin'#013#010+
- ' D:=ATarget.Dependencies[i];',#013#010+
+ 'Targets);'#010+
+ ' I:=0;'#010+
+ ' for i:=0 to ATarget.Dependencies.Count-1 do'#010+
+ ' begin',#010+
+ ' D:=ATarget.Dependencies[i];'#010+
' if (Defaults.CPU in D.CPUs) and (Defaults.OS in D.OSes) then'+
- #013#010+
- ' begin'#013#010+
- ' case D.DependencyType of'#013#010+
- ' depUnit :'#013#010+
- ' begin'#013#010+
- ' T:=TTarget(D.Target);'#013#010+
- ' ',' If (T=Nil) then'#013#010+
+ #010+
+ ' begin'#010+
+ ' case D.DependencyType of'#010+
+ ' depUnit :'#010+
+ ' begin'#010+
+ ' T:=','TTarget(D.Target);'#010+
+ ' If (T=Nil) then'#010+
' Error(SErrDepUnknownTarget,[D.Value, ATarget.Nam'+
- 'e, APackage.Name]);'#013#010+
+ 'e, APackage.Name]);'#010+
' // If a dependent package is compiled we always ne'+
- 'ed to recompile'#013#010+
- ' Log(vldebug, SDbg','DependencyOnUnit, [ATarget.Name'+
- ',T.Name]);'#013#010+
- ' Result:=(T.State=tsCompiled);'#013#010+
- ' if Result then'#013#010+
- ' begin'#013#010+
- ' Log(vldebug, SDbgDependencyUnitRecompiled, [T.Na'+
- 'me]);'#013#010+
- ' ',' CompileReason:=Format(SDbgDependencyRecompiled'+
- ',[T.Name]);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' depInclude :'#013#010+
- ' begin'#013#010+
- ' if D.TargetFileName<>'#039#039' then'#013#010+
- ' ',' begin'#013#010+
+ 'ed to recompile'#010+
+ ' ',' Log(vldebug, SDbgDependencyOnUnit, [ATarget.Name'+
+ ',T.Name]);'#010+
+ ' Result:=(T.State=tsCompiled);'#010+
+ ' if Result then'#010+
+ ' begin'#010+
+ ' Log(vldebug, SDbgDependencyUnitReco','mpiled, [T.'+
+ 'Name]);'#010+
+ ' CompileReason:=Format(SDbgDependencyRecompiled,['+
+ 'T.Name]);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' depInclude :'#010+
+ ' begin'#010+
+ ' if D.TargetFileNam','e<>'#039#039' then'#010+
+ ' begin'#010+
' TFN:=AddPathPrefix(APackage,D.TargetFileName);'+
- #013#010+
- ' Result:=FileNewer(TFN,OFN);'#013#010+
- ' if result then'#013#010+
- ' CompileReason:=Format(SDbg','NewerInclude,[D.'+
- 'TargetFileName]);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' depPackage :'#013#010+
- ' begin'#013#010+
+ #010+
+ ' Result:=FileNewer(TFN,OFN);'#010+
+ ' if result then'#010+
+ ' CompileReason',':=Format(SDbgNewerInclude,[D.'+
+ 'TargetFileName]);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' depPackage :'#010+
+ ' begin'#010+
' log(vlWarning,SWarnTargetDependsOnPackage,[ATarget'+
- '.Name, APackage.Name, d.Valu','e]);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' if result then'#013#010+
- ' break;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' if result then'#013#010+
- ' Log(vlDebug,SDbgMustCompile,[ATarget.Name, CompileReason]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013,#010+
- 'procedure TBuildEngine.Compile(APackage: TPackage; ATarget: TTarget);'#013+
- #010+
- 'Var'#013#010+
- ' S : String;'#013#010+
- ' Env : TStrings;'#013#010+
- 'begin'#013#010+
- ' Log(vlInfo,SInfoCompilingTarget,[ATarget.Name]);'#013#010+
- ' LogIndent;'#013#010+
- ' ExecuteCommands(ATarget.Commands,caBeforeCompile);'#013#010+
- ' ','If Assigned(ATarget.BeforeCompile) then'#013#010+
- ' ATarget.BeforeCompile(ATarget);'#013#010+
- #013#010+
+ '.Name, APackage.Name',', d.Value]);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' if result then'#010+
+ ' break;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ ' if result then'#010+
+ ' Log(vlDebug,SDbgMustCompile,[ATarget.Name, CompileReason]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'proce','dure TBuildEngine.Compile(APackage: TPackage; ATarget: TTarget)'+
+ ';'#010+
+ 'Var'#010+
+ ' S : String;'#010+
+ ' Env : TStrings;'#010+
+ 'begin'#010+
+ ' Log(vlInfo,SInfoCompilingTarget,[ATarget.Name]);'#010+
+ ' LogIndent;'#010+
+ ' ExecuteCommands(ATarget.Commands,caBeforeCompile);'#010+
+ ' If Assigned(AT','arget.BeforeCompile) then'#010+
+ ' ATarget.BeforeCompile(ATarget);'#010+
+ #010+
' if (APackage.BuildMode=bmBuildUnit) and not (ATarget.TargetType in ['+
- 'ttProgram,ttExampleProgram]) then'#013#010+
- ' begin'#013#010+
- ' APackage.FBUTarget.Dependencies.AddUni','t(ATarget.Name).FTargetF'+
- 'ileName:=ATarget.TargetSourceFileName;'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' if Defaults.UseEnvironment then'#013#010+
- ' begin'#013#010+
- ' Env := TStringList.Create;'#013#010+
- ' try'#013#010+
- ' S:=GetCompilerCommand(APackag','e,ATarget,Env);'#013#010+
- ' ExecuteCommand(GetCompiler,S,Env);'#013#010+
- ' finally'#013#010+
- ' Env.Free;'#013#010+
- ' end;'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' S:=GetCompilerCommand(APackage,ATarget,Env);'#013#010+
- ' ExecuteComm','and(GetCompiler,S,nil);'#013#010+
- ' end;'#013#010+
- ' If Assigned(ATarget.AfterCompile) then'#013#010+
- ' ATarget.AfterCompile(ATarget);'#013#010+
- ' ExecuteCommands(ATarget.Commands,caAfterCompile);'#013#010+
- ' end;'#013#010+
- ' LogUnIndent;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine','.CompileDependencies(APackage:TPackage; ATarge'+
- 't: TTarget);'#013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- ' T : TTarget;'#013#010+
- ' D : TDependency;'#013#010+
- 'begin'#013#010+
+ 'ttProgram,ttExampleProgram]) then'#010+
+ ' begin'#010+
+ ' APackage.FBUTarget.Dependencies.AddUnit(ATarget.Name).FTa','rgetF'+
+ 'ileName:=ATarget.TargetSourceFileName;'#010+
+ ' end'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' if Defaults.UseEnvironment then'#010+
+ ' begin'#010+
+ ' Env := TStringList.Create;'#010+
+ ' try'#010+
+ ' S:=GetCompilerCommand(APackage,ATarget,Env);'#010+
+ ' ',' ExecuteCommand(GetCompiler,S,Env);'#010+
+ ' finally'#010+
+ ' Env.Free;'#010+
+ ' end;'#010+
+ ' end'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' S:=GetCompilerCommand(APackage,ATarget,Env);'#010+
+ ' ExecuteCommand(GetCompiler,S,nil);'#010+
+ ' end;',#010+
+ ' If Assigned(ATarget.AfterCompile) then'#010+
+ ' ATarget.AfterCompile(ATarget);'#010+
+ ' ExecuteCommands(ATarget.Commands,caAfterCompile);'#010+
+ ' end;'#010+
+ ' LogUnIndent;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.CompileDependencies(APackage:TPackage; ATarge','t'+
+ ': TTarget);'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ ' T : TTarget;'#010+
+ ' D : TDependency;'#010+
+ 'begin'#010+
' Log(vlDebug, Format(SDbgCompilingDependenciesOfTarget, [ATarget.Name'+
- ']));'#013#010+
- ' LogIndent;'#013#010+
- ' For I:=0 to ATarget.Depe','ndencies.Count-1 do'#013#010+
- ' begin'#013#010+
- ' D:=ATarget.Dependencies[i];'#013#010+
- ' if (D.DependencyType=depPackage) then'#013#010+
+ ']));'#010+
+ ' LogIndent;'#010+
+ ' For I:=0 to ATarget.Dependencies.Count-1 do'#010+
+ ' begin'#010+
+ ' D:=ATarget.Depende','ncies[i];'#010+
+ ' if (D.DependencyType=depPackage) then'#010+
' log(vlWarning,SWarnTargetDependsOnPackage,[ATarget.Name, APack'+
- 'age.Name, d.Value])'#013#010+
- ' else if (D.DependencyType=depUn','it) and'#013#010+
- ' (Defaults.CPU in D.CPUs) and (Defaults.OS in D.OSes) then'#013+
- #010+
- ' begin'#013#010+
- ' T:=TTarget(D.Target);'#013#010+
- ' if Assigned(T) and (T<>ATarget) then'#013#010+
- ' begin'#013#010+
- ' if TargetOK(T, Defaults.CPU, Defau','lts.OS) then'#013#010+
- ' begin'#013#010+
- ' // We don'#039't need to compile implicit units, they'+
- ' are only'#013#010+
- ' // used for dependency checking'#013#010+
- ' if (T.TargetType<>ttImplicitUnit) then'#013#010+
- ' ',' begin'#013#010+
- ' case T.State of'#013#010+
- ' tsNeutral :'#013#010+
- ' MaybeCompile(APackage,T);'#013#010+
- ' tsConsidering :'#013#010+
- ' Log(vlWarning,SWarnCircularTargetD','ependenc'+
- 'y,[ATarget.Name,T.Name]);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end'#013#010+
- ' else'#013#010+
+ 'age.Name, d.Value])'#010+
+ ' else if (D.DependencyType=depUnit) and'#010+
+ ' (Defaults.CPU in D.CPUs) and (Defaults.OS ','in D.OSes) then'#010+
+ ' begin'#010+
+ ' T:=TTarget(D.Target);'#010+
+ ' if Assigned(T) and (T<>ATarget) then'#010+
+ ' begin'#010+
+ ' if TargetOK(T, Defaults.CPU, Defaults.OS) then'#010+
+ ' begin'#010+
+ ' // We don'#039't ','need to compile implicit units, th'+
+ 'ey are only'#010+
+ ' // used for dependency checking'#010+
+ ' if (T.TargetType<>ttImplicitUnit) then'#010+
+ ' begin'#010+
+ ' case T.State of'#010+
+ ' ',' tsNeutral :'#010+
+ ' MaybeCompile(APackage,T);'#010+
+ ' tsConsidering :'#010+
+ ' Log(vlWarning,SWarnCircularTargetDependency,'+
+ '[ATarget.Name,T.Name]);'#010+
+ ' end;'#010+
+ ' ',' end;'#010+
+ ' end'#010+
+ ' else'#010+
' Log(vlWarning, Format(SWarnDepUnitNotFound, [T.Name, M'+
- 'akeTargetString(Defaults.CPU,Defaults.OS',')]));'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' Error(SErrDepUnknownTarget,[D.Value, ATarget.Name, APackag'+
- 'e.Name]);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' LogUnIndent;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.MaybeCompile(APackage: TPackage; ATarget: TTar',
- 'get);'#013#010+
- 'begin'#013#010+
- ' if ATarget.State<>tsNeutral then'#013#010+
- ' Error(SErrInvalidState,[ATarget.Name]);'#013#010+
- ' Log(vlDebug, Format(SDbgConsideringTarget, [ATarget.Name]));'#013#010+
- ' LogIndent;'#013#010+
- ' ATarget.FTargetState:=tsConsidering;'#013#010+
- ' ResolveDependencies(ATarg','et.Dependencies,ATarget.Collection as TTa'+
- 'rgets);'#013#010+
- ' CompileDependencies(APackage, ATarget);'#013#010+
- ' if NeedsCompile(APackage, ATarget) then'#013#010+
- ' begin'#013#010+
- ' Compile(APackage,ATarget);'#013#010+
- ' ATarget.FTargetState:=tsCompiled;'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' ',' ATarget.FTargetState:=tsNoCompile;'#013#010+
- ' LogUnIndent;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TBuildEngine.NeedsCompile(APackage: TPackage): Boolean;'#013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- ' P : TPackage;'#013#010+
- ' D : TDependency;'#013#010+
- ' CompileReason: string;'#013#010+
- 'begin'#013#010+
- ' Result:=False;'#013#010,
- #013#010+
- ' // Forced recompile?'#013#010+
- ' if FForceCompile then'#013#010+
- ' begin'#013#010+
- ' Result:=true;'#013#010+
- ' CompileReason:=SDbgForcedCompile;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' // Recompile because of Package Dependencies?'#013#010+
- ' if not Result then'#013#010+
- ' begin'#013#010+
- ' I:=0;'#013#010+
- ' For I',':=0 to APackage.Dependencies.Count-1 do'#013#010+
- ' begin'#013#010+
- ' D:=APackage.Dependencies[i];'#013#010+
- ' if (D.DependencyType=depPackage) and'#013#010+
+ 'akeTargetString(Defaults.CPU,Defaults.OS)]));'#010+
+ ' end'#010+
+ ' else'#010+
+ ' Error(SErrDepUnknownTarget,[D.V','alue, ATarget.Name, APack'+
+ 'age.Name]);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' LogUnIndent;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.MaybeCompile(APackage: TPackage; ATarget: TTarg'+
+ 'et);'#010+
+ 'begin'#010+
+ ' if ATarget.State<>tsNeutral then'#010+
+ ' Error(SErrInvalidState,[ATarget.Name]);',#010+
+ ' Log(vlDebug, Format(SDbgConsideringTarget, [ATarget.Name]));'#010+
+ ' LogIndent;'#010+
+ ' ATarget.FTargetState:=tsConsidering;'#010+
+ ' ResolveDependencies(ATarget.Dependencies,ATarget.Collection as TTarg'+
+ 'ets);'#010+
+ ' CompileDependencies(APackage, ATarget);'#010+
+ ' if N','eedsCompile(APackage, ATarget) then'#010+
+ ' begin'#010+
+ ' Compile(APackage,ATarget);'#010+
+ ' ATarget.FTargetState:=tsCompiled;'#010+
+ ' end'#010+
+ ' else'#010+
+ ' ATarget.FTargetState:=tsNoCompile;'#010+
+ ' LogUnIndent;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TBuildEngine.NeedsCompile(APackage: ','TPackage): Boolean;'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ ' P : TPackage;'#010+
+ ' D : TDependency;'#010+
+ ' CompileReason: string;'#010+
+ 'begin'#010+
+ ' Result:=False;'#010+
+ #010+
+ ' // Forced recompile?'#010+
+ ' if FForceCompile then'#010+
+ ' begin'#010+
+ ' Result:=true;'#010+
+ ' CompileReason:=SDbgForcedCompile;'#010+
+ ' ','end;'#010+
+ #010+
+ ' // Recompile because of Package Dependencies?'#010+
+ ' if not Result then'#010+
+ ' begin'#010+
+ ' I:=0;'#010+
+ ' For I:=0 to APackage.Dependencies.Count-1 do'#010+
+ ' begin'#010+
+ ' D:=APackage.Dependencies[i];'#010+
+ ' if (D.DependencyType=dep','Package) and'#010+
' (Defaults.CPU in D.CPUs) and (Defaults.OS in D.OSes) the'+
- 'n'#013#010+
- ' begin'#013#010,
- ' P:=TPackage(D.Target);'#013#010+
- ' if Assigned(P) then'#013#010+
- ' begin'#013#010+
- ' Result:=(P.State=tsCompiled);'#013#010+
- ' if Result then'#013#010+
- ' begin'#013#010+
- ' break;'#013,#010+
+ 'n'#010+
+ ' begin'#010+
+ ' P:=TPackage(D.Target);'#010+
+ ' if Assigned(P) then'#010+
+ ' begin'#010+
+ ' Result:=(P.State=tsCo','mpiled);'#010+
+ ' if Result then'#010+
+ ' begin'#010+
+ ' break;'#010+
' CompileReason:=Format(SDbgPackageDepRecompiled,[P'+
- '.Name]);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' // Recompile a Target of this package?'#013#010+
- ' If Not Result then'#013,#010+
- ' begin'#013#010+
- ' GPathPrefix := APackage.Directory;'#013#010+
- ' try'#013#010+
- ' for i:=0 to APackage.Targets.Count-1 do'#013#010+
- ' begin'#013#010+
- ' Result:=NeedsCompile(APackage,APackage.Targets.TargetItems'+
- '[i]);'#013#010+
- ' if Result then'#013#010+
- ' ',' begin'#013#010+
- ' break;'#013#010+
+ '.Name]);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' en','d;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ ' // Recompile a Target of this package?'#010+
+ ' If Not Result then'#010+
+ ' begin'#010+
+ ' GPathPrefix := APackage.Directory;'#010+
+ ' try'#010+
+ ' for i:=0 to APackage.Targets.Count-1 do'#010+
+ ' begin'#010+
+ ' Result:=NeedsC','ompile(APackage,APackage.Targets.TargetIte'+
+ 'ms[i]);'#010+
+ ' if Result then'#010+
+ ' begin'#010+
+ ' break;'#010+
' CompileReason:=Format(SDbgTargetHasToBeCompiled,[APackag'+
- 'e.Targets.TargetItems[i].Name]);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' Finally'#013#010+
- ' GPathPrefix := '#039#039';'#013#010+
- ' end;'#013#010+
- ' en','d;'#013#010+
- #013#010+
- ' if result then'#013#010+
- ' Log(vlDebug,SDbgMustCompile,[APackage.Name, CompileReason]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'e.Targets.TargetItems[i].Name]);'#010+
+ ' end;'#010,
+ ' end;'#010+
+ ' Finally'#010+
+ ' GPathPrefix := '#039#039';'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ ' if result then'#010+
+ ' Log(vlDebug,SDbgMustCompile,[APackage.Name, CompileReason]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
'function TBuildEngine.CheckExternalPackage(Const APackageName : String'+
- '):TPackage;'#013#010+
- 'var'#013#010+
- ' S : String;'#013#010+
- ' F : String;'#013#010+
- ' I : Integer;'#013#010+
- 'begin'#013,#010+
- ' // Already checked?'#013#010+
- ' I:=ExternalPackages.IndexOfName(APackageName);'#013#010+
- ' if I<>-1 then'#013#010+
- ' begin'#013#010+
- ' result:=ExternalPackages.PackageItems[I];'#013#010+
- ' exit;'#013#010+
- ' end;'#013#010+
- ' // Create new external package'#013#010+
- ' Result:=ExternalPackages.AddPa','ckage(APackageName);'#013#010+
- ' Result.FTargetState:=tsNotFound;'#013#010+
- ' // Load unit config'#013#010+
- ' S:=GetUnitDir(Result);'#013#010+
- ' if S<>'#039#039' then'#013#010+
- ' begin'#013#010+
- ' Log(vldebug, SDbgExternalDependency, [APackageName,S]);'#013#010+
- ' // Load unit config if it exists'#013#010+
- ' ',' F:=IncludeTrailingPathDelimiter(S)+UnitConfigFile;'#013#010+
- ' if FileExists(F) then'#013#010+
- ' begin'#013#010+
- ' Log(vlDebug, Format(SDbgLoading, [F]));'#013#010+
- ' Result.LoadUnitConfigFromFile(F);'#013#010+
- ' result.SetDefaultPackageVariant;'#013#010,
+ '; Er','rorOnFailure: boolean):TPackage;'#010+
+ 'var'#010+
+ ' S : String;'#010+
+ ' F : String;'#010+
+ ' I : Integer;'#010+
+ 'begin'#010+
+ ' // Already checked?'#010+
+ ' I:=ExternalPackages.IndexOfName(APackageName);'#010+
+ ' if I<>-1 then'#010+
+ ' begin'#010+
+ ' result:=ExternalPackages.PackageItems[I];'#010+
+ ' exi','t;'#010+
+ ' end;'#010+
+ ' // Create new external package'#010+
+ ' Result:=ExternalPackages.AddPackage(APackageName);'#010+
+ ' Result.FTargetState:=tsNotFound;'#010+
+ ' // Load unit config'#010+
+ ' S:=GetUnitDir(Result);'#010+
+ ' if S<>'#039#039' then'#010+
+ ' begin'#010+
+ ' Log(vldebug, SDbgExternalDep','endency, [APackageName,S]);'#010+
+ ' // Load unit config if it exists'#010+
+ ' F:=result.UnitConfigFileName;'#010+
+ ' if (F<>'#039#039') then'#010+
+ ' begin'#010+
+ ' Log(vlDebug, Format(SDbgLoading, [F]));'#010+
+ ' Result.LoadUnitConfigFromFile(F);'#010+
+ ' ',' result.SetDefaultPackageVariant;'#010+
' result.UnitDir:=result.UnitDir+Result.GetPackageUnitInstallD'+
- 'ir(Defaults.CPU, Defaults.OS);'#013#010+
- ' end;'#013#010+
- ' // Check recursive implicit dependencies'#013#010+
- ' CompileDependencies(Result);'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' Error(SErrDependenc','yNotFound,[APackageName]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.CompileDependencies(APackage: TPackage);'#013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- ' P : TPackage;'#013#010+
- ' D : TDependency;'#013#010+
- 'begin'#013#010+
- ' For I:=0 to APackage.Dependencies.Count-1 do'#013#010+
- ' begin'#013#010+
- ' D:=APac','kage.Dependencies[i];'#013#010+
- ' if (D.DependencyType=depPackage) and'#013#010+
- ' (Defaults.CPU in D.CPUs) and (Defaults.OS in D.OSes) then'#013+
- #010+
- ' begin'#013#010+
- ' P:=TPackage(D.Target);'#013#010+
- ' If Assigned(P) then'#013#010+
- ' begin'#013#010+
- ' ',' if (Defaults.CPU in P.CPUs) and (Defaults.OS in P.OSes'+
- ') then'#013#010+
- ' begin'#013#010+
- ' case P.State of'#013#010+
- ' tsNeutral :'#013#010+
- ' MaybeCompile(P);'#013#010+
- ' tsConsidering :'#013#010+
- ' ',' Log(vlWarning,SWarnCircularPackageDependency,['+
- 'APackage.Name,P.Name]);'#013#010+
- ' end;'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' Log(vlWarning,SWarnDependOnOtherPlatformPackage,[APack'+
- 'age.Name, D.Va','lue, MakeTargetString(Defaults.CPU, Defaults.OS)]);'#013+
- #010+
- ' end'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' D.Target:=CheckExternalPackage(D.Value);'#013#010+
- ' P:=TPackage(D.Target);'#013#010+
- ' end;'#013#010+
- ' if (D.Require','Checksum<>$ffffffff) and'#013#010+
- ' (P.InstalledChecksum<>$ffffffff) and'#013#010+
- ' (P.InstalledChecksum<>D.RequireChecksum) then'#013#010+
- ' Log(vlDebug,SDbgPackageChecksumChanged,[P.Name]);'#013#010+
- ' APackage.InheritPackageVariant','sFromDependency(P);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TBuildEngine.CheckDependencies(APackage: TPackage): TCheckDep'+
- 'endencyResult;'#013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- ' P : TPackage;'#013#010+
- ' D : TDependency;'#013#010+
- 'begin'#013#010+
- ' result := cdAvailable;'#013#010+
- ' For I:=0',' to APackage.Dependencies.Count-1 do'#013#010+
- ' begin'#013#010+
- ' D:=APackage.Dependencies[i];'#013#010+
- ' if (D.DependencyType=depPackage) and'#013#010+
- ' (Defaults.CPU in D.CPUs) and (Defaults.OS in D.OSes) then'#013+
- #010+
- ' begin'#013#010+
- ' P:=TPackage(D.Targ','et);'#013#010+
- ' If Assigned(P) then'#013#010+
- ' begin'#013#010+
+ 'ir(Defaults.CPU, Defaults.OS);'#010+
+ ' end;'#010+
+ ' // Check recursive implicit dependencies'#010+
+ ' CompileDependencies(Result);'#010+
+ ' end'#010,
+ ' else if ErrorOnFailure then'#010+
+ ' Error(SErrDependencyNotFound,[APackageName]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.CompileDependencies(APackage: TPackage);'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ ' P : TPackage;'#010+
+ ' D : TDependency;'#010+
+ 'begin'#010+
+ ' For I:=0 to APackage.Depend','encies.Count-1 do'#010+
+ ' begin'#010+
+ ' D:=APackage.Dependencies[i];'#010+
+ ' if (D.DependencyType=depPackage) and'#010+
+ ' (Defaults.CPU in D.CPUs) and (Defaults.OS in D.OSes) then'#010+
+ ' begin'#010+
+ ' P:=TPackage(D.Target);'#010+
+ ' If Assigne','d(P) then'#010+
+ ' begin'#010+
' if (Defaults.CPU in P.CPUs) and (Defaults.OS in P.OSes) '+
- 'then'#013#010+
- ' begin'#013#010+
- ' case P.State of'#013#010+
- ' tsNeutral :'#013#010+
- ' ',' result := cdNotYetAvailable;'#013#010+
- ' tsConsidering :'#013#010+
+ 'then'#010+
+ ' begin'#010+
+ ' case P.State of'#010+
+ ' tsNeutral :'#010+
+ ' MaybeCompile(P);'#010+
+ ' ',' tsConsidering :'#010+
' Log(vlWarning,SWarnCircularPackageDependency,[AP'+
- 'ackage.Name,P.Name]);'#013#010+
- ' end;'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' ',' Log(vlWarning,SWarnDependOnOtherPlatformPackage,[APa'+
- 'ckage.Name, D.Value, MakeTargetString(Defaults.CPU, Defaults.OS)]);'#013+
- #010+
- ' end'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' D.Target:=CheckExternalPackage(D.Value);'#013#010+
- ' ',' P:=TPackage(D.Target);'#013#010+
- ' end;'#013#010+
- ' if (D.RequireChecksum<>$ffffffff) and'#013#010+
- ' (P.InstalledChecksum<>$ffffffff) and'#013#010+
- ' (P.InstalledChecksum<>D.RequireChecksum) then'#013#010+
- ' Log(vlDebug,SDbgP','ackageChecksumChanged,[P.Name]);'#013#010+
- ' APackage.InheritPackageVariantsFromDependency(P);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.Compile(APackage: TPackage);'#013#010+
- 'Var'#013#010+
- ' T : TTarget;'#013#010+
- ' I : Integer;'#013#010+
- ' Cmd: string;'#013#010+
- ' cmd','Opts: string;'#013#010+
- ' sFPDocFormat: string;'#013#010+
- ' IFPDocFormat: TFPDocFormat;'#013#010+
- ' d: integer;'#013#010+
- ' UC: string;'#013#010+
- ' dep: TDependency;'#013#010+
- ' RegenerateUnitconfigFile: boolean;'#013#010+
- ' BUName: string;'#013#010+
- #013#010+
- ' procedure CompileBuildUnit;'#013#010+
- ' var'#013#010+
- ' I: Integer;'#013#010+
- ' ','T: TTarget;'#013#010+
- ' L: TStrings;'#013#010+
- ' F: Text;'#013#010+
- #013#010+
- ' begin'#013#010+
- ' if (APackage.FBUTarget.Dependencies.Count>0) then'#013#010+
- ' begin'#013#010+
+ 'ackage.Name,P.Name]);'#010+
+ ' end;'#010+
+ ' end'#010+
+ ' else'#010+
+ ' Log(vlWarning,SWarnDependOnOtherPlatformPack','age,[APa'+
+ 'ckage.Name, D.Value, MakeTargetString(Defaults.CPU, Defaults.OS)]);'#010+
+ ' end'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' D.Target:=CheckExternalPackage(D.Value, true);'#010+
+ ' P:=TPackage(D.Target);'#010+
+ ' end;'#010,
+ ' if (D.RequireChecksum<>$ffffffff) and'#010+
+ ' (P.InstalledChecksum<>$ffffffff) and'#010+
+ ' (P.InstalledChecksum<>D.RequireChecksum) then'#010+
+ ' Log(vlDebug,SDbgPackageChecksumChanged,[P.Name]);'#010+
+ ' APackage.In','heritPackageVariantsFromDependency(P);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ 'function TBuildEngine.CheckDependencies(APackage: TPackage; ErrorOnFai'+
+ 'lure: boolean): TCheckDependencyResult;'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ ' P : TPackage;'#010+
+ ' D : TDependency;'#010+
+ 'begin'#010+
+ ' r','esult := cdAvailable;'#010+
+ ' For I:=0 to APackage.Dependencies.Count-1 do'#010+
+ ' begin'#010+
+ ' D:=APackage.Dependencies[i];'#010+
+ ' if (D.DependencyType=depPackage) and'#010+
+ ' (Defaults.CPU in D.CPUs) and (Defaults.OS in D.OSes) then'#010+
+ ' begin'#010+
+ ' ',' P:=TPackage(D.Target);'#010+
+ ' If Assigned(P) then'#010+
+ ' begin'#010+
+ ' if (Defaults.CPU in P.CPUs) and (Defaults.OS in P.OSes) '+
+ 'then'#010+
+ ' begin'#010+
+ ' case P.State of'#010+
+ ' tsNeutral ',':'#010+
+ ' result := cdNotYetAvailable;'#010+
+ ' tsConsidering :'#010+
+ ' Log(vlWarning,SWarnCircularPackageDependency,[AP'+
+ 'ackage.Name,P.Name]);'#010+
+ ' end;'#010+
+ ' end'#010+
+ ' el','se'#010+
+ ' Log(vlWarning,SWarnDependOnOtherPlatformPackage,[APack'+
+ 'age.Name, D.Value, MakeTargetString(Defaults.CPU, Defaults.OS)]);'#010+
+ ' end'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' D.Target:=CheckExternalPackage(D.Value',', ErrorOnFailure'+
+ ');'#010+
+ ' P:=TPackage(D.Target);'#010+
+ ' end;'#010+
+ ' if (D.RequireChecksum<>$ffffffff) and'#010+
+ ' (P.InstalledChecksum<>$ffffffff) and'#010+
+ ' (P.InstalledChecksum<>D.RequireChecksum) then'#010+
+ ' ',' Log(vlDebug,SDbgPackageChecksumChanged,[P.Name]);'#010+
+ ' APackage.InheritPackageVariantsFromDependency(P);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.Compile(APackage: TPackage);'#010+
+ 'Var'#010+
+ ' T : TTarget;'#010+
+ ' I : Integer;'#010+
+ ' Cmd: string',';'#010+
+ ' cmdOpts: string;'#010+
+ ' sFPDocFormat: string;'#010+
+ ' IFPDocFormat: TFPDocFormat;'#010+
+ ' d: integer;'#010+
+ ' UC: string;'#010+
+ ' dep: TDependency;'#010+
+ ' RegenerateUnitconfigFile: boolean;'#010+
+ ' BUName: string;'#010+
+ #010+
+ ' procedure CompileBuildUnit;'#010+
+ ' var'#010+
+ ' I: Integer;'#010+
+ ' T: TT','arget;'#010+
+ ' L: TStrings;'#010+
+ ' F: Text;'#010+
+ #010+
+ ' begin'#010+
+ ' if (APackage.FBUTarget.Dependencies.Count>0) then'#010+
+ ' begin'#010+
' Log(vldebug, Format(SDbgGenerateBuildUnit, [APackage.FBUTarget'+
- '.Name]));'#013#010+
- ' system.Assign(F,AddPathPref','ix(APackage,APackage.FBUTarget.FT'+
- 'argetSourceFileName));'#013#010+
- ' Rewrite(F);'#013#010+
+ '.Name]));'#010+
+ ' system.Assign(F,AddPathPrefix(APackage,A','Package.FBUTarget.FT'+
+ 'argetSourceFileName));'#010+
+ ' Rewrite(F);'#010+
' writeln(F,'#039'unit '#039' + APackage.FBUTarget.Name +'#039';'#039+
- ');'#013#010+
- ' writeln(F,'#039'interface'#039');'#013#010+
- ' writeln(F,'#039'uses'#039');'#013#010+
- ' for i := 0 to APackage.FBUTarget.','Dependencies.Count-1 do'#013+
- #010+
- ' begin'#013#010+
- ' if i<>0 then'#013#010+
- ' write(F,'#039','#039');'#013#010+
+ ');'#010+
+ ' writeln(F,'#039'interface'#039');'#010+
+ ' writeln(F,'#039'uses'#039');'#010+
+ ' for i := 0 to APackage.FBUTarget.Dependencies.Count','-1 do'#010+
+ ' begin'#010+
+ ' if i<>0 then'#010+
+ ' write(F,'#039','#039');'#010+
' writeln(F,APackage.FBUTarget.Dependencies.Dependencies[i].'+
- 'Value);'#013#010+
- ' end;'#013#010+
- ' writeln(F,'#039';'#039');'#013#010+
- ' writeln(F,'#039'impl','ementation'#039');'#013#010+
- ' writeln(F,'#039'end.'#039');'#013#010+
- #013#010+
- ' system.close(F);'#013#010+
- #013#010+
- ' APackage.FBuildMode:=bmOneByOne;'#013#010+
- ' try'#013#010+
- ' Compile(APackage,APackage.FBUTarget);'#013#010+
- ' finally'#013#010+
- ' // Delete temporary build-unit files',#013#010+
- ' L := TStringList.Create;'#013#010+
- ' try'#013#010+
+ 'Value);'#010+
+ ' end;'#010+
+ ' writeln(F,'#039';'#039');'#010+
+ ' writeln(F,'#039'implementation'#039');'#010+
+ ' wri','teln(F,'#039'end.'#039');'#010+
+ #010+
+ ' system.close(F);'#010+
+ #010+
+ ' APackage.FBuildMode:=bmOneByOne;'#010+
+ ' try'#010+
+ ' Compile(APackage,APackage.FBUTarget);'#010+
+ ' finally'#010+
+ ' // Delete temporary build-unit files'#010+
+ ' L := TStringList.Create',';'#010+
+ ' try'#010+
' APackage.FBUTarget.GetCleanFiles(L,IncludeTrailingPathDeli'+
'miter(AddPathPrefix(APackage,APackage.GetUnitsOutputDir(Defaults.CPU,D'+
- 'efaults.OS))),'#039#039',Defaults.CPU,Defaults.OS);'#013#010+
- ' ',' L.Add(AddPathPrefix(APackage,APackage.FBUTarget.SourceFi'+
- 'leName));'#013#010+
- ' CmdDeleteFiles(L);'#013#010+
- ' finally'#013#010+
- ' L.Free;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' For I:=0 to APackage.Targets.Count-1 do'#013#010+
- ' ',' begin'#013#010+
- ' T:=APackage.Targets.TargetItems[i];'#013#010+
+ 'efaults.OS))),'#039#039',Defaults.CPU,Defaults.OS);'#010+
+ ' L.Add(AddPathPrefix(APackage',',APackage.FBUTarget.SourceFi'+
+ 'leName));'#010+
+ ' CmdDeleteFiles(L);'#010+
+ ' finally'#010+
+ ' L.Free;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ ' For I:=0 to APackage.Targets.Count-1 do'#010+
+ ' begin'#010+
+ ' T:=APackage.Targets.TargetIte','ms[i];'#010+
' if (T.TargetType = ttUnit) and (TargetOK(T, Defaults.CPU, Defa'+
- 'ults.OS)) then'#013#010+
- ' begin'#013#010+
- ' If Assigned(T.AfterCompile) then'#013#010+
- ' T.AfterCompile(T);'#013#010+
- ' ',' ExecuteCommands(T.Commands,caAfterCompile);'#013#010+
- ' end'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' procedure ProcessCompileTarget;'#013#010+
- ' begin'#013#010+
- ' if TargetOK(T, Defaults.CPU, Defaults.OS) then'#013#010+
- ' begin'#013#010+
- ' if T.State=tsNeutral then'#013#010+
- ' ',' MaybeCompile(APackage,T);'#013#010+
- ' // If a target is compiled, re-generate the UnitConfigFile'#013+
- #010+
- ' if T.FTargetState<>tsNoCompile then'#013#010+
- ' RegenerateUnitconfigFile:= True;'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' if not(','Defaults.CPU in T.CPUs) then'#013#010+
- ' Log(vldebug, Format(SDbgSkippingTargetWrongCPU, [T.Name, CPU'+
- 'sToString(T.CPUs)]));'#013#010+
- ' if not(Defaults.OS in T.OSes) then'#013#010+
+ 'ults.OS)) then'#010+
+ ' begin'#010+
+ ' If Assigned(T.AfterCompile) then'#010+
+ ' T.AfterCompile(T);'#010+
+ ' ExecuteCommands(T.Commands,caAfterCompile)',';'#010+
+ ' end'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ ' procedure ProcessCompileTarget;'#010+
+ ' begin'#010+
+ ' if TargetOK(T, Defaults.CPU, Defaults.OS) then'#010+
+ ' begin'#010+
+ ' if T.State=tsNeutral then'#010+
+ ' MaybeCompile(APackage,T);'#010+
+ ' // If a target is comp','iled, re-generate the UnitConfigFile'#010+
+ ' if T.FTargetState<>tsNoCompile then'#010+
+ ' RegenerateUnitconfigFile:= True;'#010+
+ ' end'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' if not(Defaults.CPU in T.CPUs) then'#010+
+ ' Log(vldebug, Format(SDbgSkippin','gTargetWrongCPU, [T.Name, C'+
+ 'PUsToString(T.CPUs)]));'#010+
+ ' if not(Defaults.OS in T.OSes) then'#010+
' Log(vldebug, Format(SDbgSkippingTargetWrongOS, [T.Name, OSes'+
- 'ToS','tring(T.OSes)]));'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- 'begin'#013#010+
- ' cmdOpts := '#039#039';'#013#010+
- #013#010+
- ' log(vlWarning,SWarnStartCompilingPackage,[APackage.Name, Defaults.Ta'+
- 'rget]);'#013#010+
- #013#010+
- ' case Defaults.BuildMode of'#013#010+
- ' bmOneByOne: begin'#013#010+
- ' if (bmOneByOne in ','APackage.SupportBuildModes) the'+
- 'n'#013#010+
- ' APackage.FBuildMode:=bmOneByOne'#013#010+
+ 'ToString(T.OSes)]));'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ 'begin'#010+
+ ' cmdOpts := '#039#039';'#010+
+ #010+
+ ' log(vlWarn','ing,SWarnStartCompilingPackage,[APackage.Name, Defaults.'+
+ 'Target]);'#010+
+ #010+
+ ' case Defaults.BuildMode of'#010+
+ ' bmOneByOne: begin'#010+
+ ' if (bmOneByOne in APackage.SupportBuildModes) then'#010+
+ ' APackage.FBuildMode:=bmOneByOn','e'#010+
' else if bmBuildUnit in APackage.SupportBuildModes t'+
- 'hen'#013#010+
- ' begin'#013#010+
- ' log(vlInfo,SInfoFallbackBu','ildmodeBU);'#013#010+
- ' APackage.FBuildMode:=bmBuildUnit;'#013#010+
- ' end'#013#010+
- ' else'#013#010+
+ 'hen'#010+
+ ' begin'#010+
+ ' log(vlInfo,SInfoFallbackBuildmodeBU);'#010+
+ ' APackage.FBuildMode:=bmBuildUnit;'#010+
+ ' ',' end'#010+
+ ' else'#010+
' raise exception.create(SErrUnsupportedBuildmode);'+
- #013#010+
- ' end;'#013#010+
- ' bmBuildUnit: begin'#013,#010+
+ #010+
+ ' end;'#010+
+ ' bmBuildUnit: begin'#010+
' // When bmBuildUnit is supported by the package use'+
- ' a buildunit.'#013#010+
- ' // Unless there is only one target and bmOneByOne i'+
- 's also supported'#013#010+
- ' if (bmBuildUnit in APackage.SupportBuildModes) ','an'+
- 'd'#013#010+
+ ' a buildunit.'#010+
+ ' ',' // Unless there is only one target and bmOneByOne'+
+ ' is also supported'#010+
+ ' if (bmBuildUnit in APackage.SupportBuildModes) and'#010+
' not ((APackage.Targets.Count=1) and (bmOneByOne '+
- 'in APackage.SupportBuildModes)) then'#013#010+
- ' APackage.FBuildMode:=bmBuildUnit'#013#010+
+ 'in APackage.SupportBuil','dModes)) then'#010+
+ ' APackage.FBuildMode:=bmBuildUnit'#010+
' else if bmOneByOne in APackage.SupportBuildModes th'+
- 'en',#013#010+
- ' begin'#013#010+
- ' log(vlInfo,SInfoFallbackBuildmode);'#013#010+
- ' APackage.FBuildMode:=bmOneByOne'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' raise exception.create','(SErrUnsupportedBuildmode'+
- ');'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' GPathPrefix:=APackage.Directory;'#013#010+
- ' Try'#013#010+
- ' CreateOutputDir(APackage);'#013#010+
- ' AddPackageMacrosToDictionary(APackage, APackage.Dictionary);'#013#010+
- ' DoBeforeCompile(APackage);'#013#010+
- ' R','egenerateUnitconfigFile:=False;'#013#010+
- ' if APackage.BuildMode=bmBuildUnit then'#013#010+
- ' begin'#013#010+
- ' APackage.FBUTargets := TTargets.Create(TTarget);'#013#010+
- ' if Defaults.OS in AllLimit83fsOses then'#013#010+
- ' BUName := '#039'BUnit.pp'#039#013#010+
- ' els','e'#013#010+
- ' BUName := '#039'BuildUnit_'#039'+StringReplace(APackage.Name,'#039+
- '-'#039','#039'_'#039',[rfReplaceAll])+'#039'.pp'#039';'#013#010+
- ' APackage.FBUTarget := APackage.FBUTargets.AddUnit(BUName);'#013+
+ 'en'#010+
+ ' begin'#010+
+ ' log(vlInfo,SInfoFallbackBuildmode);'#010+
+ ' ',' APackage.FBuildMode:=bmOneByOne'#010+
+ ' end'#010+
+ ' else'#010+
+ ' raise exception.create(SErrUnsupportedBuildmode);'+
#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ ' GPathPrefix:=APackage.Directory;'#010+
+ ' Try'#010+
+ ' Cre','ateOutputDir(APackage);'#010+
+ ' AddPackageMacrosToDictionary(APackage, APackage.Dictionary);'#010+
+ ' DoBeforeCompile(APackage);'#010+
+ ' RegenerateUnitconfigFile:=False;'#010+
+ ' if APackage.BuildMode=bmBuildUnit then'#010+
+ ' begin'#010+
+ ' APackage.FBUTargets ',':= TTargets.Create(TTarget);'#010+
+ ' if (Defaults.BuildOS in AllLimit83fsOses) or'#010+
+ ' (Defaults.OS in AllLimit83fsOses) then'#010+
+ ' BUName := '#039'BUnit.pp'#039#010+
+ ' else'#010+
+ ' BUName := '#039'BuildUnit_'#039'+StringReplace(APackage.Name,'#039+
+ '-'#039,','#039'_'#039',[rfReplaceAll])+'#039'.pp'#039';'#010+
+ ' APackage.FBUTarget := APackage.FBUTargets.AddUnit(BUName);'#010+
' APackage.FBUTarget.FTargetSourceFileName := APackage.FBUTarget'+
- '.Sourc','eFileName;'#013#010+
- ' end;'#013#010+
- ' For I:=0 to APackage.Targets.Count-1 do'#013#010+
- ' begin'#013#010+
- ' T:=APackage.Targets.TargetItems[i];'#013#010+
- ' case T.TargetType of'#013#010+
- ' ttUnit:'#013#010+
- ' begin'#013#010+
- ' ProcessCompileTarget;'#013#010+
- ' end;',#013#010+
- ' ttProgram:'#013#010+
- ' begin // do nothing, are compiled later'#013#010+
- ' end;'#013#010+
- ' ttFPDoc:'#013#010+
- ' begin'#013#010+
- ' for d := 0 to T.Dependencies.Count - 1 do'#013#010+
- ' begin'#013#010+
- ' dep := TDependency(T.Depende','ncies[d]);'#013#010+
- #013#010+
- ' //add unit dependencies'#013#010+
- ' if dep.DependencyType = depUnit then'#013#010+
+ '.SourceFileName;'#010+
+ ' end;'#010+
+ ' For I:=0 to APackage.Targets.Count-1 do'#010+
+ ' ',' begin'#010+
+ ' T:=APackage.Targets.TargetItems[i];'#010+
+ ' case T.TargetType of'#010+
+ ' ttUnit:'#010+
+ ' begin'#010+
+ ' ProcessCompileTarget;'#010+
+ ' end;'#010+
+ ' ttProgram:'#010+
+ ' begin // do nothing, are compiled later'#010+
+ ' ',' end;'#010+
+ ' ttFPDoc:'#010+
+ ' begin'#010+
+ ' for d := 0 to T.Dependencies.Count - 1 do'#010+
+ ' begin'#010+
+ ' dep := TDependency(T.Dependencies[d]);'#010+
+ #010+
+ ' //add unit dependencies'#010+
+ ' if dep.DependencyType ','= depUnit then'#010+
' cmdOpts := cmdOpts + '#039' --input='#039' + AddPathPref'+
- 'ix(APackage,dep.Value);'#013#010+
- ' end;'#013#010+
- #013#010+
- ' //check if a doc','umentation target is given'#013#010+
+ 'ix(APackage,dep.Value);'#010+
+ ' end;'#010+
+ #010+
+ ' //check if a documentation target is given'#010+
' cmdOpts := cmdOpts + '#039' --input='#039' + AddPathPrefix(A'+
- 'Package,T.Directory + T.Name + T.Extension) + '#039' --descr='#039'+ T.X'+
- 'ML;'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' log(vldebug, SDbgTargetIsNotAUnitOrProgram,[','T.Name]);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' if APackage.BuildMode=bmBuildUnit then'#013#010+
- ' CompileBuildUnit;'#013#010+
- #013#010+
- ' FreeAndNil(APackage.FBUTarget);'#013#010+
- #013#010+
- ' For I:=0 to APackage.Targets.Count-1 do'#013#010+
- ' begin'#013#010+
- ' T:=APackage.Targets.Targe','tItems[i];'#013#010+
- ' if T.TargetType=ttProgram then'#013#010+
- ' begin'#013#010+
- ' ProcessCompileTarget;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' if RegenerateUnitconfigFile then'#013#010+
- ' begin'#013#010+
- ' UC:=IncludeTrailingPathDelimiter(AddPathPrefix(','APackage,APac'+
- 'kage.GetUnitConfigOutputDir(Defaults.CPU,Defaults.OS)))+UnitConfigFile'+
- ';'#013#010+
- ' Log(vlInfo, Format(SDbgGenerating, [UC]));'#013#010+
- ' APackage.SaveUnitConfigToFile(UC,Defaults.CPU,Defaults.OS);'#013+
- #010+
- ' end;'#013#010+
- #013#010+
- ' //compile docum','entation, because options were found'#013#010+
- ' if cmdOpts <> '#039#039' then'#013#010+
- ' begin'#013#010+
- ' //append package name'#013#010+
- ' cmdOpts := cmdOpts + '#039' --package='#039' + APackage.Name;'#013#010+
- #013#010+
- ' for IFPDocFormat:=Low(TFPDocFormat) to High(TFPDocFormat) do'#013+
- #010+
- ' ','begin'#013#010+
- ' if IFPDocFormat in APackage.FPDocFormat then'#013#010+
- ' begin'#013#010+
- ' //prepend output format'#013#010+
- ' case IFPDocFormat of'#013#010+
- ' ffHtml: sFPDocFormat := '#039'--format=html --output='#039+
- ' + AddPathPrefix(APackage,Defau','lts.FPDocOutputDir);'#013#010+
+ 'Pack','age,T.Directory + T.Name + T.Extension) + '#039' --descr='#039'+ T'+
+ '.XML;'#010+
+ ' end'#010+
+ ' else'#010+
+ ' log(vldebug, SDbgTargetIsNotAUnitOrProgram,[T.Name]);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ ' if APackage.BuildMode=bmBuildUnit then'#010+
+ ' CompileBuildU','nit;'#010+
+ #010+
+ ' FreeAndNil(APackage.FBUTarget);'#010+
+ #010+
+ ' For I:=0 to APackage.Targets.Count-1 do'#010+
+ ' begin'#010+
+ ' T:=APackage.Targets.TargetItems[i];'#010+
+ ' if T.TargetType=ttProgram then'#010+
+ ' begin'#010+
+ ' ProcessCompileTarget;'#010+
+ ' ',' end;'#010+
+ ' end;'#010+
+ #010+
+ ' if RegenerateUnitconfigFile then'#010+
+ ' begin'#010+
+ ' UC:=AddPathPrefix(APackage, APackage.GetUnitConfigOutputFilena'+
+ 'me(Defaults.CPU,Defaults.OS));'#010+
+ ' Log(vlInfo, Format(SDbgGenerating, [UC]));'#010+
+ ' APackage.Sav','eUnitConfigToFile(UC,Defaults.CPU,Defaults.OS);'#010+
+ ' end;'#010+
+ #010+
+ ' //compile documentation, because options were found'#010+
+ ' if cmdOpts <> '#039#039' then'#010+
+ ' begin'#010+
+ ' //append package name'#010+
+ ' cmdOpts := cmdOpts + '#039' --package='#039' + APackage.Name;'#010+
+ #010+
+ ' ',' for IFPDocFormat:=Low(TFPDocFormat) to High(TFPDocFormat) do'#010+
+ ' begin'#010+
+ ' if IFPDocFormat in APackage.FPDocFormat then'#010+
+ ' begin'#010+
+ ' //prepend output format'#010+
+ ' case IFPDocFormat of'#010+
+ ' ffHtml: sFPDo','cFormat := '#039'--format=html --output'+
+ '='#039' + AddPathPrefix(APackage,Defaults.FPDocOutputDir);'#010+
' ffHtm: sFPDocFormat := '#039'--format=htm --output='#039+
- ' + AddPathPrefix(APackage,Defaults.FPDocOutputDir);'#013#010+
- ' ffXHtml: sFPDocFormat := '#039'--format=xhtml --output='+
- #039' + AddPathPrefix(APackage,Default','s.FPDocOutputDir);'#013#010+
+ ' + AddPathPrefix(APackage,Defaults.FPDocOutputDir);'#010+
+ ' ffXHtml: sFPDocForm','at := '#039'--format=xhtml --outpu'+
+ 't='#039' + AddPathPrefix(APackage,Defaults.FPDocOutputDir);'#010+
' ffLaTex: sFPDocFormat := '#039'--format=latex --output='+
#039' + AddPathPrefix(APackage,Defaults.FPDocOutputDir) + APackage.Name '+
- '+ '#039'.tex'#039';'#013#010+
- ' ffXMLStruct: sFPDocFormat := '#039'--format=xml-struct --ou'+
- 'tput='#039' + ','AddPathPrefix(APackage,Defaults.FPDocOutputDir);'#013#010+
+ '+ '#039'.tex'#039';'#010+
+ ' ','ffXMLStruct: sFPDocFormat := '#039'--format=xml-struct --'+
+ 'output='#039' + AddPathPrefix(APackage,Defaults.FPDocOutputDir);'#010+
' ffChm: sFPDocFormat := '#039'--format=chm --output='#039+
- ' + AddPathPrefix(APackage,Defaults.FPDocOutputDir) + APackage.Name + '#039+
- '.chm'#039';'#013#010+
- ' end;'#013#010+
- #013#010+
- ' //execute fpdoc'#013#010+
- ' ',' Cmd:=ExeSearch('#039'fpdoc'#039',GetEnvironmentvariable('#039+
- 'PATH'#039'));'#013#010+
- ' if Cmd = '#039#039' then Cmd := '#039'fpdoc'#039';'#013#010+
- ' ExecuteProcess(Cmd, sFPDocFormat + cmdOpts);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' DoAfterCompile(APackage);'#013#010+
- ' Fina','lly'#013#010+
- ' GPathPrefix:='#039#039';'#013#010+
- ' end;'#013#010+
- ' inc(FProgressCount);'#013#010+
- ' if FProgressMax>0 then'#013#010+
+ ' + AddPathPrefix(APackage,Defaults.FPDocOutputDir) + APackage.N','ame +'+
+ ' '#039'.chm'#039';'#010+
+ ' end;'#010+
+ #010+
+ ' //execute fpdoc'#010+
+ ' Cmd:=ExeSearch('#039'fpdoc'#039',SysUtils.GetEnvironmentvariab'+
+ 'le('#039'PATH'#039'));'#010+
+ ' if Cmd = '#039#039' then Cmd := '#039'fpdoc'#039';'#010+
+ ' ExecuteProcess(Cmd, sFPDocFormat + cmdOpts);'#010+
+ ' end',';'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ ' DoAfterCompile(APackage);'#010+
+ ' Finally'#010+
+ ' GPathPrefix:='#039#039';'#010+
+ ' end;'#010+
+ ' inc(FProgressCount);'#010+
+ ' if FProgressMax>0 then'#010+
' log(vlWarning,SWarnCompilingPackagecompleteProgress,[(FProgressCou'+
- 'nt)/FProgressMax * 100, APackage.Name])'#013#010+
- ' else'#013#010+
- ' log(vlWarning,SWarnCompilingPack','agecomplete,[APackage.Name]);'#013+
- #010+
- 'end;'#013#010+
- #013#010+
- 'procedure TBuildEngine.MaybeCompile(APackage: TPackage);'#013#010+
- 'begin'#013#010+
- ' if ReadyToCompile(APackage) then'#013#010+
- ' begin'#013#010+
- ' Compile(APackage);'#013#010+
- ' APackage.FTargetState:=tsCompiled;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'fun','ction TBuildEngine.ReadyToCompile(APackage: TPackage) : Boolean;'#013+
- #010+
- 'begin'#013#010+
- ' result := False;'#013#010+
- ' if APackage.State in [tsCompiled, tsNoCompile] then'#013#010+
- ' begin'#013#010+
- ' Log(vlInfo,SInfoPackageAlreadyProcessed,[APackage.Name]);'#013#010+
- ' Exit;'#013#010+
- ' ',' end;'#013#010+
- ' if APackage.State<>tsNeutral then'#013#010+
- ' Error(SErrInvalidState,[APackage.Name]);'#013#010+
- ' Log(vlDebug,SDbgConsideringPackage,[APackage.Name]);'#013#010+
- ' LogIndent;'#013#010+
- ' if Defaults.ThreadsAmount=-1 then'#013#010+
- ' APackage.FTargetState:=tsConsidering;'#013#010,
+ 'nt)/FProgressMax * 100, APackag','e.Name])'#010+
+ ' else'#010+
+ ' log(vlWarning,SWarnCompilingPackagecomplete,[APackage.Name]);'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TBuildEngine.MaybeCompile(APackage: TPackage);'#010+
+ 'begin'#010+
+ ' if ReadyToCompile(APackage) then'#010+
+ ' begin'#010+
+ ' Compile(APackage);'#010+
+ ' APackage.FTar','getState:=tsCompiled;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ 'function TBuildEngine.ReadyToCompile(APackage: TPackage) : Boolean;'#010+
+ 'begin'#010+
+ ' result := False;'#010+
+ ' if APackage.State in [tsCompiled, tsNoCompile] then'#010+
+ ' begin'#010+
+ ' Log(vlInfo,SInfoPackageAlreadyProcessed,','[APackage.Name]);'#010+
+ ' Exit;'#010+
+ ' end;'#010+
+ ' if APackage.State<>tsNeutral then'#010+
+ ' Error(SErrInvalidState,[APackage.Name]);'#010+
+ ' Log(vlDebug,SDbgConsideringPackage,[APackage.Name]);'#010+
+ ' LogIndent;'#010+
+ ' if Defaults.ThreadsAmount=-1 then'#010+
+ ' APackage.FTa','rgetState:=tsConsidering;'#010+
' ResolveDependencies(APackage.Dependencies,(APackage.Collection as TP'+
- 'ackages));'#013#010+
+ 'ackages));'#010+
' // When multiple threads are used, delay the compilation of the pack'+
- 'age when'#013#010+
- ' // there are unsolved dependencies. When no threads are used, compil'+
- 'e all'#013#010+
- ' ',' // dependencies.'#013#010+
- ' if Defaults.ThreadsAmount=-1 then'#013#010+
- ' CompileDependencies(APackage)'#013#010+
- ' else if CheckDependencies(APackage)=cdNotYetAvailable then'#013#010+
- ' begin'#013#010+
- ' log(vlInfo,'#039'Delaying package '#039'+apackage.name);'#013#010+
- ' result := False;',#013#010+
- ' Exit;'#013#010+
- ' end;'#013#010+
- ' APackage.SetDefaultPackageVariant;'#013#010+
- #013#010+
- ' ResolveFileNames(APackage,Defaults.CPU,Defaults.OS,True,False);'#013#010+
- ' If NeedsCompile(APackage) then'#013#010+
- ' result := True'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' APackage.FTargetState:=tsNoCo','mpile;'#013#010+
- ' inc(FProgressCount);'#013#010+
- ' end;'#013#010+
- ' LogUnIndent;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'age when'#010+
+ ' // there are unsolved dependencies. When no threads ','are used, comp'+
+ 'ile all'#010+
+ ' // dependencies.'#010+
+ ' if Defaults.ThreadsAmount=-1 then'#010+
+ ' CompileDependencies(APackage)'#010+
+ ' else if CheckDependencies(APackage, true)=cdNotYetAvailable then'#010+
+ ' begin'#010+
+ ' log(vlInfo,'#039'Delaying package '#039'+apackage.name);',#010+
+ ' result := False;'#010+
+ ' Exit;'#010+
+ ' end;'#010+
+ ' APackage.SetDefaultPackageVariant;'#010+
+ #010+
+ ' ResolveFileNames(APackage,Defaults.CPU,Defaults.OS,True,False);'#010+
+ ' If NeedsCompile(APackage) then'#010+
+ ' result := True'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' APackage.FTarget','State:=tsNoCompile;'#010+
+ ' inc(FProgressCount);'#010+
+ ' end;'#010+
+ ' LogUnIndent;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'Function TBuildEngine.InstallPackageFiles(APAckage : TPackage; tt : TT'+
- 'argetTypes; Const Dest : String):Boolean;'#013#010+
- 'Var'#013#010+
- ' List : TStringList;'#013#010+
- 'begin'#013#010+
- ' Result:=False;'#013#010+
- ' ','List:=TStringList.Create;'#013#010+
- ' Try'#013#010+
- ' APackage.GetInstallFiles(List,tt,Defaults.CPU, Defaults.OS);'#013#010+
- ' if (List.Count>0) then'#013#010+
- ' begin'#013#010+
- ' Result:=True;'#013#010+
- ' CmdCopyFiles(List,Dest);'#013#010+
- ' end;'#013#010+
- ' Finally'#013#010+
- ' List.Free;'#013#010+
- ' e','nd;'#013#010+
- 'end;'#013#010+
- #013#010+
+ 'argetTypes; Const Dest : String):Boolean;'#010+
+ 'Var'#010+
+ ' List : TStringList;'#010+
+ 'begin'#010+
+ ' Result:=False;'#010+
+ ' ',' List:=TStringList.Create;'#010+
+ ' Try'#010+
+ ' APackage.GetInstallFiles(List,tt,Defaults.CPU, Defaults.OS);'#010+
+ ' if (List.Count>0) then'#010+
+ ' begin'#010+
+ ' Result:=True;'#010+
+ ' CmdCopyFiles(List,Dest,APackage);'#010+
+ ' end;'#010+
+ ' Finally'#010+
+ ' List.Free;'#010+
+ ' e','nd;'#010+
+ 'end;'#010+
+ #010+
+ 'function TBuildEngine.GetUnitConfigFilesInstallDir(ABaseDir: string): '+
+ 'String;'#010+
+ 'begin'#010+
+ ' result := FixPath(ABaseDir)+Defaults.UnitConfigFilesInstallDir;'#010+
+ 'end;'#010+
+ #010+
'procedure TBuildEngine.InstallUnitConfigFile(APAckage: TPackage; const'+
- ' Dest: String);'#013#010+
- 'Var'#013#010+
- ' List : TStringList;'#013#010+
- 'begin'#013#010+
- ' List:=TStringList.Create;'#013#010+
- ' Try'#013#010+
- ' List.add(IncludeTrailingPathDelimiter(APackage.GetUnitConfigOutpu',
- 'tDir(Defaults.CPU,Defaults.OS))+UnitConfigFile);'#013#010+
- ' CmdCopyFiles(List,Dest);'#013#010+
- ' Finally'#013#010+
- ' List.Free;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
+ ' Des','t: String);'#010+
+ 'Var'#010+
+ ' List : TStringList;'#010+
+ ' ConfigFileName: String;'#010+
+ ' ConfigFileContent: TStrings;'#010+
+ ' Index: integer;'#010+
+ 'begin'#010+
+ ' ConfigFileName:=APackage.GetUnitConfigOutputFilename(Defaults.CPU,De'+
+ 'faults.OS);'#010+
+ ' List:=TStringList.Create;'#010+
+ ' Try'#010+
+ ' i','f Defaults.FPUnitSourcePath<>'#039#039' then'#010+
+ ' begin'#010+
+ ' ConfigFileContent := TStringList.Create;'#010+
+ ' try'#010+
+ ' ConfigFileContent.LoadFromFile(AddPathPrefix(APAckage, Confi'+
+ 'gFileName));'#010+
+ ' if Defaults.FPUnitSourcePath='#039'0'#039' then',#010+
+ ' begin'#010+
+ ' Index := ConfigFileContent.IndexOfName(KeySourcePath);'#010+
+ ' if Index > -1 then'#010+
+ ' ConfigFileContent.Delete(Index)'#010+
+ ' end'#010+
+ ' else'#010+
+ ' ConfigFileContent.Values[Key','SourcePath] := Defaults.FPUn'+
+ 'itSourcePath;'#010+
+ ' ConfigFileContent.SaveToFile(AddPathPrefix(APAckage, ConfigF'+
+ 'ileName));'#010+
+ ' finally'#010+
+ ' ConfigFileContent.Free;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' List.Values[ConfigFileName] := APAckage','.Name + FpmkExt;'#010+
+ ' CmdCopyFiles(List,Dest,APackage);'#010+
+ ' Finally'#010+
+ ' List.Free;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
'function TBuildEngine.InstallPackageSourceFiles(APAckage : TPackage; s'+
- 'tt : TSourceTypes; ttt : TTargetTypes; Const De','st : String): Boolean'+
- ';'#013#010+
- 'Var'#013#010+
- ' List : TStringList;'#013#010+
- 'begin'#013#010+
- ' Result:=False;'#013#010+
- ' List:=TStringList.Create;'#013#010+
- ' Try'#013#010+
- ' APackage.GetInstallSourceFiles(List,stt,ttt);'#013#010+
- ' if (List.Count>0) then'#013#010+
- ' begin'#013#010+
- ' Result:=True;'#013#010+
- ' CmdC','opyFiles(List,Dest);'#013#010+
- ' end;'#013#010+
- ' Finally'#013#010+
- ' List.Free;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.DoBeforeInstall(APackage: TPackage);'#013#010+
- 'begin'#013#010+
- ' ExecuteCommands(APackage.Commands,caBeforeInstall);'#013#010+
- ' If Assigned(APackage.BeforeInstall) ','then'#013#010+
- ' APackage.BeforeInstall(APackage);'#013#010+
- ' If Assigned(APackage.BeforeInstallProc) then'#013#010+
- ' APackage.BeforeInstallProc(APackage);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.DoAfterInstall(APackage: TPackage);'#013#010+
- 'begin'#013#010+
- ' If Assigned(APackage.Afte','rInstall) then'#013#010+
- ' APackage.AfterInstall(APackage);'#013#010+
- ' If Assigned(APackage.AfterInstallProc) then'#013#010+
- ' APackage.AfterInstallProc(APackage);'#013#010+
- ' ExecuteCommands(APackage.Commands,caAfterInstall);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.Install(AP','ackage: TPackage);'#013#010+
- 'Var'#013#010+
- ' UC,D : String;'#013#010+
- ' B : Boolean;'#013#010+
- 'begin'#013#010+
- ' If (Apackage.State<>tsCompiled) then'#013#010+
- ' MaybeCompile(APackage);'#013#010+
- ' try'#013#010+
- ' Log(vlCommand,SInfoInstallingPackage,[APackage.Name]);'#013#010+
- ' If (APackage.Directory<>'#039#039') then'#013#010,
- ' EnterDir(APackage.Directory);'#013#010+
- ' DoBeforeInstall(APackage);'#013#010+
- ' // units'#013#010+
- ' B:=false;'#013#010+
- ' GlobalDictionary.AddVariable('#039'PackageName'#039',APackage.Name);'+
- #013#010+
- ' GlobalDictionary.AddVariable('#039'unitinstalldir'#039',Defaults.Uni'+
- 'tInstallDir);'#013#010+
- ' ',' GlobalDictionary.AddVariable('#039'packageunitinstalldir'#039',APa'+
- 'ckage.GetPackageUnitInstallDir(Defaults.CPU,Defaults.OS));'#013#010+
- #013#010+
- ' D:=IncludeTrailingPathDelimiter(Defaults.BaseInstallDir);'#013#010+
- ' // This is to install the TPackage.Installfiles, whi','ch are not r'+
- 'elated to any'#013#010+
- ' // target'#013#010+
- ' if InstallPackageFiles(APackage,[],D) then'#013#010+
- ' B:=true;'#013#010+
- ' D:=IncludeTrailingPathDelimiter(Defaults.UnitInstallDir)+APackage.'+
- 'GetPackageUnitInstallDir(Defaults.CPU,Defaults.OS);'#013#010+
- ' if Inst','allPackageFiles(APackage,[ttUnit, ttImplicitUnit],D) then'+
- #013#010+
- ' B:=true;'#013#010+
+ 'tt : TSourceTypes; ttt : TTargetTypes; Const Dest : String): Boolean;'#010+
+ 'Var'#010+
+ ' L','ist : TStringList;'#010+
+ 'begin'#010+
+ ' Result:=False;'#010+
+ ' List:=TStringList.Create;'#010+
+ ' Try'#010+
+ ' APackage.GetInstallSourceFiles(List,stt,ttt);'#010+
+ ' if (List.Count>0) then'#010+
+ ' begin'#010+
+ ' Result:=True;'#010+
+ ' CmdCopyFiles(List,Dest,APackage);'#010+
+ ' end;'#010,
+ ' Finally'#010+
+ ' List.Free;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.DoBeforeInstall(APackage: TPackage);'#010+
+ 'begin'#010+
+ ' ExecuteCommands(APackage.Commands,caBeforeInstall);'#010+
+ ' If Assigned(APackage.BeforeInstall) then'#010+
+ ' APackage.BeforeInstall(APackage);'#010,
+ ' If Assigned(APackage.BeforeInstallProc) then'#010+
+ ' APackage.BeforeInstallProc(APackage);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.DoAfterInstall(APackage: TPackage);'#010+
+ 'begin'#010+
+ ' If Assigned(APackage.AfterInstall) then'#010+
+ ' APackage.AfterInstall(APackage);'#010,
+ ' If Assigned(APackage.AfterInstallProc) then'#010+
+ ' APackage.AfterInstallProc(APackage);'#010+
+ ' ExecuteCommands(APackage.Commands,caAfterInstall);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.Install(APackage: TPackage; AnArchiveFiles: boo'+
+ 'lean);'#010+
+ 'Var'#010+
+ ' UC,D : Str','ing;'#010+
+ ' B : Boolean;'#010+
+ 'begin'#010+
+ ' If (Apackage.State<>tsCompiled) then'#010+
+ ' MaybeCompile(APackage);'#010+
+ ' Log(vlCommand,SInfoInstallingPackage,[APackage.Name]);'#010+
+ ' if AnArchiveFiles then'#010+
+ ' FinishArchive(APackage);'#010+
+ ' try'#010+
+ ' If (APackage.Directory<>'#039#039,') then'#010+
+ ' GPathPrefix := APackage.Directory;'#010+
+ ' if AnArchiveFiles then'#010+
+ ' begin'#010+
+ ' FOnCopyFile:=@AddFileToArchive;'#010+
+ ' FOnFinishCopy:=@FinishArchive;'#010+
+ ' end;'#010+
+ ' DoBeforeInstall(APackage);'#010+
+ ' // units'#010+
+ ' B:=false;'#010+
+ ' A','ddPackageMacrosToDictionary(APackage, APackage.Dictionary);'#010+
+ ' GlobalDictionary.AddVariable('#039'unitinstalldir'#039', FixPath(APa'+
+ 'ckage.Dictionary.ReplaceStrings(Defaults.UnitInstallDir), False));'#010+
+ ' GlobalDictionary.AddVariable('#039'packageunitinstal','ldir'#039',APa'+
+ 'ckage.GetPackageUnitInstallDir(Defaults.CPU,Defaults.OS));'#010+
+ #010+
+ ' D:=FixPath(Defaults.Prefix,true);'#010+
+ ' // This is to install the TPackage.Installfiles, which are not rel'+
+ 'ated to any'#010+
+ ' // target'#010+
+ ' if InstallPackageFiles(APackage,[','],D) then'#010+
+ ' B:=true;'#010+
+ ' D:=FixPath(APackage.Dictionary.ReplaceStrings(Defaults.UnitInstall'+
+ 'Dir), True)+APackage.GetPackageUnitInstallDir(Defaults.CPU,Defaults.OS'+
+ ');'#010+
+ ' if InstallPackageFiles(APackage,[ttUnit, ttImplicitUnit],D) then'#010+
+ ' ',' B:=true;'#010+
' // By default do not install the examples. Maybe add an option for'+
- ' this later'#013#010+
- ' //if InstallPackageFiles(APAckage,ttExampleUnit,D) then'#013#010+
- ' // B:=true;'#013#010+
- ' ',' // Unit (dependency) configuration if there were units installed'+
- #013#010+
- ' D:=IncludeTrailingPathDelimiter(Defaults.UnitInstallDir);'#013#010+
- ' if B then'#013#010+
- ' InstallUnitConfigFile(APackage,D);'#013#010+
- ' // Programs'#013#010+
- ' D:=IncludeTrailingPathDelimiter(','Defaults.BinInstallDir);'#013#010+
- ' InstallPackageFiles(APAckage,[ttProgram],D);'#013#010+
- ' //InstallPackageFiles(APAckage,ttExampleProgram,D);'#013#010+
- ' // Documentation'#013#010+
- ' D:=IncludeTrailingPathDelimiter(Defaults.DocInstallDir)+'#039'fpc-'#039+
- '+APackage.FileName+','PathDelim;'#013#010+
- ' InstallPackageSourceFiles(APackage,[stDoc],[],D);'#013#010+
- ' // Examples'#013#010+
- ' if Defaults.InstallExamples then'#013#010+
- ' begin'#013#010+
- ' D:=IncludeTrailingPathDelimiter(Defaults.ExamplesInstallDir)+'#039+
- 'fpc-'#039'+APackage.FileName+PathDelim+'#039,'examples'#039'+PathDelim;'#013+
- #010+
- ' InstallPackageSourceFiles(APackage,[stExample],[ttExampleProgr'+
- 'am,ttExampleUnit],D);'#013#010+
- ' end;'#013#010+
- ' // Done.'#013#010+
- ' APackage.FTargetState:=tsInstalled;'#013#010+
- ' DoAfterInstall(APackage);'#013#010+
- ' Finally'#013#010+
- ' If (APackage','.Directory<>'#039#039') then'#013#010+
- ' EnterDir('#039#039');'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.DoBeforeArchive(APackage: TPackage);'#013#010+
- 'begin'#013#010+
- ' ExecuteCommands(APackage.Commands,caBeforeArchive);'#013#010+
- ' If Assigned(APackage.BeforeArchive) then'#013#010+
- ' APackage','.BeforeArchive(APackage);'#013#010+
- ' If Assigned(APackage.BeforeArchiveProc) then'#013#010+
- ' APackage.BeforeArchiveProc(APackage);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.DoAfterArchive(APackage: TPackage);'#013#010+
- 'begin'#013#010+
- ' If Assigned(APackage.AfterArchive) then'#013#010+
- ' ',' APackage.AfterArchive(APackage);'#013#010+
- ' If Assigned(APackage.AfterArchiveProc) then'#013#010+
- ' APackage.AfterArchiveProc(APackage);'#013#010+
- ' ExecuteCommands(APackage.Commands,caAfterArchive);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.Archive(APackage: TPackage);',#013#010+
- 'Var'#013#010+
- ' L : TStringList;'#013#010+
- ' A : String;'#013#010+
- ' i: integer;'#013#010+
- ' ICPU : TCPU;'#013#010+
- ' IOS : TOS;'#013#010+
- 'begin'#013#010+
- ' A:=FStartDir+ APackage.FileName + ZipExt;'#013#010+
- ' Log(vlInfo,SInfoArchivingPackage,[APackage.Name,A]);'#013#010+
- ' try'#013#010+
- ' If (APackage.Directory<>'#039#039') then'#013,#010+
- ' EnterDir(APackage.Directory);'#013#010+
- ' DoBeforeArchive(Apackage);'#013#010+
- ' L:=TStringList.Create;'#013#010+
- ' L.Sorted:=true;'#013#010+
- ' L.Duplicates:=dupIgnore;'#013#010+
- ' Try'#013#010+
- ' // Add fpmake.pp & manifest.xml always'#013#010+
- ' L.Add(FPMakePPFile);'#013#010+
- ' L.','Add(ManifestFile);'#013#010+
- ' //get all files from all targets'#013#010+
- ' for ICPU:=Low(TCPU) to high(TCPU) do'#013#010+
- ' for IOS:=Low(TOS) to high(TOS) do'#013#010+
- ' if OSCPUSupported[IOS,ICPU] then'#013#010+
- ' begin'#013#010+
- ' // Make sure tha','t the package is resolved for each tar'+
- 'gbet'#013#010+
- ' APackage.FAllFilesResolved:=false;'#013#010+
- ' ResolveFileNames(APackage,ICPU,IOS,false);'#013#010+
- ' APackage.GetArchiveFiles(L, ICPU, IOS);'#013#010+
- ' end;'#013#010+
- ' //from so','urces'#013#010+
- ' APackage.GetArchiveSourceFiles(L);'#013#010+
- #013#010+
- ' //show all files'#013#010+
- ' for i := 0 to L.Count-1 do'#013#010+
- ' Log(vlDebug, Format(SDbgArchivingFile, [L[i]]));'#013#010+
- #013#010+
- '{$ifdef HAS_UNIT_ZIPPER}'#013#010+
- ' if not Assigned(ArchiveFilesProc) then'#013,#010+
- ' begin'#013#010+
- ' FZipFile := TZipper.Create;'#013#010+
- ' FZipFile.ZipFiles(A, L);'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- '{$endif HAS_UNIT_ZIPPER}'#013#010+
- ' CmdArchiveFiles(L,A);'#013#010+
- ' Finally'#013#010+
- ' L.Free;'#013#010+
- #013#010+
- '{$ifdef HAS_UNIT_ZIPPER}'#013#010+
- ' if no','t Assigned(ArchiveFilesProc) then'#013#010+
- ' FreeAndNil(FZipFile);'#013#010+
- '{$endif HAS_UNIT_ZIPPER}'#013#010+
- ' end;'#013#010+
- ' DoAfterArchive(Apackage);'#013#010+
- ' Finally'#013#010+
- ' If (APackage.Directory<>'#039#039') then'#013#010+
- ' EnterDir('#039#039');'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEng','ine.DoBeforeClean(APackage: TPackage);'#013#010+
- 'begin'#013#010+
- ' ExecuteCommands(APackage.Commands,caBeforeClean);'#013#010+
- ' If Assigned(APackage.BeforeClean) then'#013#010+
- ' APackage.BeforeClean(APackage);'#013#010+
- ' If Assigned(APackage.BeforeCleanProc) then'#013#010+
- ' APackage.Be','foreCleanProc(APackage);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.DoAfterClean(APackage: TPackage);'#013#010+
- 'begin'#013#010+
- ' If Assigned(APackage.AfterClean) then'#013#010+
- ' APackage.AfterClean(APackage);'#013#010+
- ' If Assigned(APackage.AfterInstallProc) then'#013#010+
- ' APackage.Af','terCleanProc(APackage);'#013#010+
- ' ExecuteCommands(APackage.Commands,caAfterClean);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.Clean(APackage: TPackage; AllTargets: boolean);'+
- #013#010+
- 'var'#013#010+
- ' ACPU: TCpu;'#013#010+
- ' AOS: TOS;'#013#010+
- ' DirectoryList : TStringList;'#013#010+
- 'begin'#013#010+
- ' Log(vlI','nfo,SInfoCleaningPackage,[APackage.Name]);'#013#010+
- ' try'#013#010+
- ' If (APackage.Directory<>'#039#039') then'#013#010+
- ' EnterDir(APackage.Directory);'#013#010+
- ' DoBeforeClean(Apackage);'#013#010+
- ' AddPackageMacrosToDictionary(APackage, APackage.Dictionary);'#013#010+
- ' if AllTargets ','then'#013#010+
- ' begin'#013#010+
+ ' this later'#010+
+ ' //if InstallPackageFiles(APAckage,ttExampleUnit,D) then'#010+
+ ' // B:=true;'#010+
+ ' // Unit (dependency) configuration if there were units installed'#010,
+ ' D:=FixPath(APackage.Dictionary.ReplaceStrings(GetUnitConfigFilesIn'+
+ 'stallDir(Defaults.BaseInstallDir)), True);'#010+
+ ' if B then'#010+
+ ' InstallUnitConfigFile(APackage,D);'#010+
+ ' // Programs'#010+
+ ' D:=IncludeTrailingPathDelimiter(Defaults.BinInstallD','ir);'#010+
+ ' InstallPackageFiles(APAckage,[ttProgram],D);'#010+
+ ' //InstallPackageFiles(APAckage,ttExampleProgram,D);'#010+
+ ' // Documentation'#010+
+ ' D:=FixPath(APackage.Dictionary.ReplaceStrings(Defaults.DocInstallD'+
+ 'ir), True);'#010+
+ ' InstallPackageSourceFil','es(APackage,[stDoc],[],D);'#010+
+ ' // Examples'#010+
+ ' if Defaults.InstallExamples then'#010+
+ ' begin'#010+
+ ' D:=FixPath(APackage.Dictionary.ReplaceStrings(Defaults.Example'+
+ 'sInstallDir), True);'#010+
+ ' InstallPackageSourceFiles(APackage,[stExample],[t','tExamplePro'+
+ 'gram,ttExampleUnit],D);'#010+
+ ' end;'#010+
+ ' // Done.'#010+
+ ' APackage.FTargetState:=tsInstalled;'#010+
+ ' DoAfterInstall(APackage);'#010+
+ ' if AnArchiveFiles then'#010+
+ ' begin'#010+
+ ' FOnCopyFile:=nil;'#010+
+ ' FOnFinishCopy:=nil;'#010+
+ ' end;'#010+
+ ' Finally'#010+
+ ' ',' If (APackage.Directory<>'#039#039') then'#010+
+ ' GPathPrefix := '#039#039';'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.DoBeforeArchive(APackage: TPackage);'#010+
+ 'begin'#010+
+ ' ExecuteCommands(APackage.Commands,caBeforeArchive);'#010+
+ ' If Assigned(APackage.BeforeArchive) then'#010+
+ ' ',' APackage.BeforeArchive(APackage);'#010+
+ ' If Assigned(APackage.BeforeArchiveProc) then'#010+
+ ' APackage.BeforeArchiveProc(APackage);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.DoAfterArchive(APackage: TPackage);'#010+
+ 'begin'#010+
+ ' If Assigned(APackage.AfterArchive) then'#010+
+ ' ',' APackage.AfterArchive(APackage);'#010+
+ ' If Assigned(APackage.AfterArchiveProc) then'#010+
+ ' APackage.AfterArchiveProc(APackage);'#010+
+ ' ExecuteCommands(APackage.Commands,caAfterArchive);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.Archive(APackage: TPackage);'#010+
+ 'Var'#010+
+ ' ',' L : TStringList;'#010+
+ ' A : String;'#010+
+ ' i: integer;'#010+
+ ' ICPU : TCPU;'#010+
+ ' IOS : TOS;'#010+
+ '{$ifdef HAS_UNIT_ZIPPER}'#010+
+ ' ZipFile: TZipper;'#010+
+ '{$endif HAS_UNIT_ZIPPER}'#010+
+ 'begin'#010+
+ ' A:=Defaults.ZipPrefix + APackage.FileName + MakeZipSuffix(cpuNone, o'+
+ 'sNone) + ZipExt;'#010+
+ ' ','Log(vlInfo,SInfoArchivingPackage,[APackage.Name,A]);'#010+
+ ' try'#010+
+ ' If (APackage.Directory<>'#039#039') then'#010+
+ ' GPathPrefix := APackage.Directory;'#010+
+ ' DoBeforeArchive(Apackage);'#010+
+ ' AddPackageMacrosToDictionary(APackage, APackage.Dictionary);'#010+
+ ' L:=','TStringList.Create;'#010+
+ ' L.Sorted:=true;'#010+
+ ' L.Duplicates:=dupIgnore;'#010+
+ ' Try'#010+
+ ' // Add fpmake.pp & manifest.xml always'#010+
+ ' L.Add(FPMakePPFile);'#010+
+ ' L.Add(ManifestFile);'#010+
+ ' //get all files from all targets'#010+
+ ' for ICPU:=Low(TCPU)',' to high(TCPU) do'#010+
+ ' for IOS:=Low(TOS) to high(TOS) do'#010+
+ ' if OSCPUSupported[IOS,ICPU] then'#010+
+ ' begin'#010+
+ ' // Make sure that the package is resolved for each targb'+
+ 'et'#010+
+ ' APackage.FAllFilesResolved:=fals','e;'#010+
+ ' ResolveFileNames(APackage,ICPU,IOS,false);'#010+
+ ' APackage.GetArchiveFiles(L, ICPU, IOS);'#010+
+ ' end;'#010+
+ ' //from sources'#010+
+ ' APackage.GetArchiveSourceFiles(L);'#010+
+ #010+
+ ' //show all files'#010+
+ ' for i := 0 to L.C','ount-1 do'#010+
+ ' Log(vlDebug, Format(SDbgArchivingFile, [L[i]]));'#010+
+ #010+
+ '{$ifdef HAS_UNIT_ZIPPER}'#010+
+ ' if not Assigned(ArchiveFilesProc) then'#010+
+ ' begin'#010+
+ ' ZipFile := TZipper.Create;'#010+
+ ' try'#010+
+ ' ZipFile.FileName:=A;'#010+
+ ' ',' A := APackage.Dictionary.ReplaceStrings(Defaults.FPrefix'+
+ ');'#010+
+ ' if A <> '#039#039' then'#010+
+ ' A:=IncludeTrailingPathDelimiter(A);'#010+
+ ' for i := 0 to L.Count-1 do'#010+
+ ' begin'#010+
+ ' ZipFile.Entries.AddF','ileEntry(AddPathPrefix(APackage,'+
+ ' L[i]), A+L[i]);'#010+
+ ' end;'#010+
+ ' ZipFile.ZipAllFiles;'#010+
+ ' finally'#010+
+ ' ZipFile.Free;'#010+
+ ' end;'#010+
+ ' end'#010+
+ ' else'#010+
+ '{$endif HAS_UNIT_ZIPPER}'#010+
+ ' CmdArchiveFiles(L,A);'#010+
+ ' ',' Finally'#010+
+ ' L.Free;'#010+
+ ' end;'#010+
+ ' DoAfterArchive(Apackage);'#010+
+ ' Finally'#010+
+ ' If (APackage.Directory<>'#039#039') then'#010+
+ ' GPathPrefix := '#039#039';'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.DoBeforeClean(APackage: TPackage);'#010+
+ 'begin'#010+
+ ' ExecuteCommands(APackage.','Commands,caBeforeClean);'#010+
+ ' If Assigned(APackage.BeforeClean) then'#010+
+ ' APackage.BeforeClean(APackage);'#010+
+ ' If Assigned(APackage.BeforeCleanProc) then'#010+
+ ' APackage.BeforeCleanProc(APackage);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.DoAfterClean(APackage: ','TPackage);'#010+
+ 'begin'#010+
+ ' If Assigned(APackage.AfterClean) then'#010+
+ ' APackage.AfterClean(APackage);'#010+
+ ' If Assigned(APackage.AfterInstallProc) then'#010+
+ ' APackage.AfterCleanProc(APackage);'#010+
+ ' ExecuteCommands(APackage.Commands,caAfterClean);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'proce','dure TBuildEngine.Clean(APackage: TPackage; AllTargets: boolean'+
+ ');'#010+
+ 'var'#010+
+ ' ACPU: TCpu;'#010+
+ ' AOS: TOS;'#010+
+ ' DirectoryList : TStringList;'#010+
+ 'begin'#010+
+ ' Log(vlInfo,SInfoCleaningPackage,[APackage.Name]);'#010+
+ ' try'#010+
+ ' If (APackage.Directory<>'#039#039') then'#010+
+ ' EnterD','ir(APackage.Directory);'#010+
+ ' // Check for inherited options (packagevariants) from other packag'+
+ 'es'#010+
+ ' ResolveDependencies(APackage.Dependencies, (APackage.Collection as'+
+ ' TPackages));'#010+
+ ' CheckDependencies(APackage, False);'#010+
+ ' APackage.SetDef','aultPackageVariant;'#010+
+ ' DoBeforeClean(Apackage);'#010+
+ ' AddPackageMacrosToDictionary(APackage, APackage.Dictionary);'#010+
+ ' if AllTargets then'#010+
+ ' begin'#010+
' // Remove the unit-and bin-directories completely. This is saf'+
- 'er in case of files'#013#010+
- ' // being renamed and such. See also bug 19655'#013#010+
- ' DirectoryList := TStringList.Create;'#013#010+
- ' try'#013#010+
- ' for AC','PU:=low(TCpu) to high(TCpu) do if ACPU<>cpuNone then'+
- #013#010+
- ' for AOS:=low(TOS) to high(TOS) do if AOS<>osNone then'#013#010+
- ' begin'#013#010+
- ' if OSCPUSupported[AOS,ACPU] then'#013#010+
- ' begin'#013#010+
- ' Dir','ectoryList.Add(ExtractFileDir(APackage.GetUni'+
- 'tsOutputDir(ACPU,AOS)));'#013#010+
- ' DirectoryList.Add(ExtractFileDir(APackage.GetBinOu'+
- 'tputDir(ACPU,AOS)));'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' CmdRemoveTrees(Director','yList);'#013#010+
- ' finally'#013#010+
- ' DirectoryList.Free;'#013#010+
- ' end;'#013#010+
- '{ for ACPU:=low(TCpu) to high(TCpu) do'#013#010+
- ' for AOS:=low(TOS) to high(TOS) do'#013#010+
- ' begin'#013#010+
- ' if FileExists(APackage.GetUnitsOutputDir(ACP','U,AOS)) or'+
- #013#010+
- ' FileExists(APackage.GetBinOutputDir(ACPU,AOS)) then'#013+
- #010+
- ' Clean(APackage,ACPU,AOS);'#013#010+
- ' end;}'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' Clean(APackage, Defaults.CPU, Defaults.OS);'#013#010+
- ' DoAfterClean(Apackag','e);'#013#010+
- ' Finally'#013#010+
- ' If (APackage.Directory<>'#039#039') then'#013#010+
- ' EnterDir('#039#039');'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
+ 'er in case of files'#010+
+ ' ',' // being renamed and such. See also bug 19655'#010+
+ ' DirectoryList := TStringList.Create;'#010+
+ ' try'#010+
+ ' for ACPU:=low(TCpu) to high(TCpu) do if ACPU<>cpuNone then'#010+
+ ' for AOS:=low(TOS) to high(TOS) do if AOS<>osNone ','then'#010+
+ ' begin'#010+
+ ' if OSCPUSupported[AOS,ACPU] then'#010+
+ ' begin'#010+
+ ' // First perform a normal clean, to be sure that a'+
+ 'll files'#010+
+ ' // which are not in the units- or bin-dir a','re cl'+
+ 'eaned. (like'#010+
+ ' // the .fpm file)'#010+
+ ' Clean(APackage, ACPU, AOS);'#010+
+ ' DirectoryList.Add(ExtractFileDir(APackage.GetUnits'+
+ 'OutputDir(ACPU,AOS)));'#010+
+ ' DirectoryList.Add(Extra','ctFileDir(APackage.GetBin'+
+ 'OutputDir(ACPU,AOS)));'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' CmdRemoveTrees(DirectoryList);'#010+
+ ' finally'#010+
+ ' DirectoryList.Free;'#010+
+ ' end;'#010+
+ ' end'#010+
+ ' else'#010+
+ ' Clean(APackage, Defaults.','CPU, Defaults.OS);'#010+
+ ' DoAfterClean(Apackage);'#010+
+ ' Finally'#010+
+ ' If (APackage.Directory<>'#039#039') then'#010+
+ ' EnterDir('#039#039');'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
'procedure TBuildEngine.Clean(APackage: TPackage; ACPU: TCPU; AOS: TOS)'+
- ';'#013#010+
- 'Var'#013#010+
- ' List : TStringList;'#013#010+
- ' DirectoryList : TStringList;'#013#010+
- 'begin'#013#010+
- ' List:=T','StringList.Create;'#013#010+
- ' try'#013#010+
- ' List.Add(APackage.GetUnitsOutputDir(ACPU,AOS) + PathDelim + UnitCo'+
- 'nfigFile);'#013#010+
- ' APackage.GetCleanFiles(List,ACPU,AOS);'#013#010+
- ' if (List.Count>0) then'#013#010+
- ' begin'#013#010+
- ' CmdDeleteFiles(List);'#013#010+
- ' DirectoryLi','st := TStringList.Create;'#013#010+
- ' try'#013#010+
- ' GetDirectoriesFromFilelist(List,DirectoryList);'#013#010+
- ' CmdRemoveDirs(DirectoryList);'#013#010+
- #013#010+
- ' DirectoryList.Clear;'#013#010+
- ' if DirectoryExists(APackage.GetBinOutputDir(ACPU,AOS)) then'#013+
- #010+
- ' ',' DirectoryList.Add(APackage.GetBinOutputDir(ACPU,AOS));'#013+
- #010+
- ' if DirectoryExists(APackage.GetUnitsOutputDir(ACPU,AOS)) then'#013+
- #010+
- ' DirectoryList.Add(APackage.GetUnitsOutputDir(ACPU,AOS));'#013+
- #010+
- ' CmdRemoveDirs(DirectoryList);'#013#010+
- #013,#010+
- ' DirectoryList.Clear;'#013#010+
+ ';'#010+
+ 'Var'#010+
+ ' List : TStringList;'#010+
+ ' DirectoryList',' : TStringList;'#010+
+ 'begin'#010+
+ ' List:=TStringList.Create;'#010+
+ ' try'#010+
+ ' List.Add(APackage.GetUnitConfigOutputFilename(ACPU,AOS));'#010+
+ ' APackage.GetCleanFiles(List,ACPU,AOS);'#010+
+ ' if (List.Count>0) then'#010+
+ ' begin'#010+
+ ' CmdDeleteFiles(List);'#010+
+ ' Direct','oryList := TStringList.Create;'#010+
+ ' try'#010+
+ ' GetDirectoriesFromFilelist(List,DirectoryList);'#010+
+ ' CmdRemoveDirs(DirectoryList);'#010+
+ #010+
+ ' DirectoryList.Clear;'#010+
+ ' if DirectoryExists(APackage.GetBinOutputDir(ACPU,AOS)) then'#010+
+ ' ',' DirectoryList.Add(APackage.GetBinOutputDir(ACPU,AOS));'#010+
+ ' if DirectoryExists(APackage.GetUnitsOutputDir(ACPU,AOS)) then'#010+
+ ' DirectoryList.Add(APackage.GetUnitsOutputDir(ACPU,AOS));'#010+
+ ' CmdRemoveDirs(DirectoryList);'#010+
+ #010+
+ ' ',' DirectoryList.Clear;'#010+
' if DirectoryExists(ExtractFileDir(APackage.GetBinOutputDir(ACP'+
- 'U,AOS))) then'#013#010+
+ 'U,AOS))) then'#010+
' DirectoryList.Add(ExtractFileDir(APackage.GetBinOutputDir(AC'+
- 'PU,AOS)));'#013#010+
- ' if DirectoryExists(ExtractFileDir(','APackage.GetUnitsOutputDir'+
- '(ACPU,AOS))) then'#013#010+
+ 'PU,AOS)));'#010+
+ ' if DirectoryExists(ExtractFileDir(APackage.G','etUnitsOutputDir'+
+ '(ACPU,AOS))) then'#010+
' DirectoryList.Add(ExtractFileDir(APackage.GetUnitsOutputDir('+
- 'ACPU,AOS)));'#013#010+
- ' CmdRemoveDirs(DirectoryList);'#013#010+
- ' finally'#013#010+
- ' DirectoryList.Free;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' Fi','nally'#013#010+
- ' List.Free;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Procedure TBuildEngine.Manifest(APackage : TPackage);'#013#010+
- 'Var'#013#010+
- ' L : TStrings;'#013#010+
- ' PD,'#013#010+
- ' MF : String;'#013#010+
- 'begin'#013#010+
- ' L:=TStringList.Create;'#013#010+
- ' Try'#013#010+
- ' Log(vlInfo, Format(SInfoManifestPackage,[APackage.Name]','));'#013#010+
- ' PD:=APackage.Directory;'#013#010+
- ' if PD<>'#039#039' then'#013#010+
- ' PD:=IncludeTrailingPathDelimiter(PD);'#013#010+
- ' MF:=PD+ManifestFile;'#013#010+
- ' Log(vlDebug, Format(SDbgGenerating, [MF]));'#013#010+
- ' L.Add('#039'<?xml version="1.0"?>'#039');'#013#010+
- ' L.Add('#039'<packages>'#039');'#013#010+
- ' ',' APackage.GetManifest(L);'#013#010+
- ' L.Add('#039'</packages>'#039');'#013#010+
- ' L.SaveToFile(MF);'#013#010+
- ' Finally'#013#010+
- ' L.Free;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.Compile(Packages: TPackages);'#013#010+
- #013#010+
- ' function IsReadyToCompile(APackage:TPackage): boolean;'#013#010+
- ' begin',#013#010+
- ' result := False;'#013#010+
- ' if not APackage.FProcessing and (APackage.State=tsNeutral) then'#013+
- #010+
- ' begin'#013#010+
- ' if PackageOK(APackage) then'#013#010+
- ' result := ReadyToCompile(APackage)'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' inc(FPro','gressCount);'#013#010+
+ 'ACPU,AOS)));'#010+
+ ' CmdRemoveDirs(DirectoryList);'#010+
+ ' finally'#010+
+ ' DirectoryList.Free;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' Finally'#010+
+ ' List.Fr','ee;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Procedure TBuildEngine.PkgList(PkgList: TStrings; APackage : TPackage)'+
+ ';'#010+
+ 'begin'#010+
+ ' Log(vlInfo, Format(SInfoPkgListPackage,[APackage.Name]));'#010+
+ ' APackage.ListPackage(PkgList);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.Compile(Packages: TPa','ckages);'#010+
+ #010+
+ ' function IsReadyToCompile(APackage:TPackage): boolean;'#010+
+ ' begin'#010+
+ ' result := False;'#010+
+ ' if not APackage.FProcessing and (APackage.State=tsNeutral) then'#010+
+ ' begin'#010+
+ ' if PackageOK(APackage) then'#010+
+ ' result := ReadyToC','ompile(APackage)'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' inc(FProgressCount);'#010+
' log(vlWarning,SWarnSkipPackageTargetProgress,[(FProgressCo'+
- 'unt)/FProgressMax * 100, APackage.Name, Defaults.Target]);'#013#010+
- ' APackage.FTargetState:=tsNoCompile;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- 'Var'#013#010+
- ' I ',': integer;'#013#010+
- '{$ifndef NO_THREADING}'#013#010+
- ' Thr : Integer;'#013#010+
- ' Finished : boolean;'#013#010+
- ' ErrorState: boolean;'#013#010+
- ' ErrorMessage: string;'#013#010+
- ' NotifyThreadWaiting : PRTLEvent;'#013#010+
- ' Threads : array of TCompileWorkerThread;'#013#010+
- '{$endif NO_THREADING}'#013#010+
- ' P : TPack','age;'#013#010+
- #013#010+
- '{$ifndef NO_THREADING}'#013#010+
- ' procedure ProcessThreadResult(ATHread: TCompileWorkerThread);'#013#010+
- ' var'#013#010+
- ' StartI: integer;'#013#010+
- ' CompilePackage: TPackage;'#013#010+
- ' PackageAvailable: boolean;'#013#010+
- ' begin'#013#010+
- ' if AThread.Done then'#013#010+
- ' begin'#013#010+
- ' ',' if assigned(AThread.APackage) then'#013#010+
- ' begin'#013#010+
- ' // The thread has completed compiling the package'#013#010+
- ' if AThread.CompilationOK then'#013#010+
- ' AThread.APackage.FTargetState:=tsCompiled'#013#010+
- ' else //',' A problem occured, stop the compilation'#013#010+
- ' begin'#013#010+
- ' ErrorState:=true;'#013#010+
- ' ErrorMessage:=AThread.ErrorMessage;'#013#010+
- ' Finished:=true;'#013#010+
- ' end;'#013#010+
- ' AThread.APackage := nil;'#013#010+
- ' ',' end;'#013#010+
- ' StartI := I;'#013#010+
- #013#010+
- ' CompilePackage := nil;'#013#010+
- ' PackageAvailable:=false;'#013#010+
- ' repeat'#013#010+
- ' if IsReadyToCompile(Packages.PackageItems[i]) then'#013#010+
- ' CompilePackage := Packages.PackageItems[i];'#013#010+
- ' ',' if not (Packages.PackageItems[i].State in [tsCompiled, tsNoC'+
- 'ompile]) then'#013#010+
- ' PackageAvailable:=true;'#013#010+
- ' inc(I);'#013#010+
- ' if I=packages.Count then'#013#010+
- ' i := 0;'#013#010+
- ' until Assigned(CompilePackage) or (I=StartI);'#013#010+
- ' ',' if Assigned(CompilePackage) then'#013#010+
- ' begin'#013#010+
- ' // Instruct thread to compile package'#013#010+
- ' AThread.APackage := CompilePackage;'#013#010+
- ' AThread.APackage.FProcessing := true;'#013#010+
- ' AThread.FDone:=False;'#013#010+
- ' ',' RTLeventSetEvent(AThread.NotifyStartTask);'#013#010+
- ' end;'#013#010+
- ' if not PackageAvailable then'#013#010+
- ' Finished := True;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- '{$endif NO_THREADING}'#013#010+
- #013#010+
- 'begin'#013#010+
- ' If Assigned(BeforeCompile) then'#013#010+
- ' BeforeCompile(Sel','f);'#013#010+
- ' FProgressMax:=Packages.Count;'#013#010+
- ' FProgressCount:=0;'#013#010+
- #013#010+
- ' if Defaults.ThreadsAmount<0 then'#013#010+
- ' begin'#013#010+
- ' // Do not use any threading to compile the packages'#013#010+
- ' For I:=0 to Packages.Count-1 do'#013#010+
- ' begin'#013#010+
- ' P:=Packa','ges.PackageItems[i];'#013#010+
- ' If PackageOK(P) then'#013#010+
- ' MaybeCompile(P)'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' inc(FProgressCount);'#013#010+
+ 'unt)/FProgressMax * 100, APackage.Name, Defaults.Target]);'#010+
+ ' APackage.FTargetStat','e:=tsNoCompile;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ 'Var'#010+
+ ' I : integer;'#010+
+ '{$ifndef NO_THREADING}'#010+
+ ' Thr : Integer;'#010+
+ ' Finished : boolean;'#010+
+ ' ErrorState: boolean;'#010+
+ ' ErrorMessage: string;'#010+
+ ' NotifyThreadWaiting : PRTLEvent;'#010+
+ ' Threads : array of TCompi','leWorkerThread;'#010+
+ '{$endif NO_THREADING}'#010+
+ ' P : TPackage;'#010+
+ #010+
+ '{$ifndef NO_THREADING}'#010+
+ ' procedure ProcessThreadResult(ATHread: TCompileWorkerThread);'#010+
+ ' var'#010+
+ ' StartI: integer;'#010+
+ ' CompilePackage: TPackage;'#010+
+ ' PackageAvailable: boolean;'#010+
+ ' begin'#010+
+ ' ',' if AThread.Done then'#010+
+ ' begin'#010+
+ ' if assigned(AThread.APackage) then'#010+
+ ' begin'#010+
+ ' // The thread has completed compiling the package'#010+
+ ' if AThread.CompilationOK then'#010+
+ ' AThread.APackage.FTargetStat','e:=tsCompiled'#010+
+ ' else // A problem occured, stop the compilation'#010+
+ ' begin'#010+
+ ' ErrorState:=true;'#010+
+ ' ErrorMessage:=AThread.ErrorMessage;'#010+
+ ' Finished:=true;'#010+
+ ' end;'#010+
+ ' ATh','read.APackage := nil;'#010+
+ ' end;'#010+
+ ' StartI := I;'#010+
+ #010+
+ ' CompilePackage := nil;'#010+
+ ' PackageAvailable:=false;'#010+
+ ' repeat'#010+
+ ' if IsReadyToCompile(Packages.PackageItems[i]) then'#010+
+ ' CompilePackage := Packages.Packag','eItems[i];'#010+
+ ' if not (Packages.PackageItems[i].State in [tsCompiled, tsNoCom'+
+ 'pile]) then'#010+
+ ' PackageAvailable:=true;'#010+
+ ' inc(I);'#010+
+ ' if I=packages.Count then'#010+
+ ' i := 0;'#010+
+ ' until Assigned(CompilePackage) or (I=S','tartI);'#010+
+ ' if Assigned(CompilePackage) then'#010+
+ ' begin'#010+
+ ' // Instruct thread to compile package'#010+
+ ' AThread.APackage := CompilePackage;'#010+
+ ' AThread.APackage.FProcessing := true;'#010+
+ ' AThread.FDone:=False;'#010+
+ ' ',' RTLeventSetEvent(AThread.NotifyStartTask);'#010+
+ ' end;'#010+
+ ' if not PackageAvailable then'#010+
+ ' Finished := True;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ #010+
+ '{$endif NO_THREADING}'#010+
+ #010+
+ 'begin'#010+
+ ' NotifyEventCollection.CallEvents(neaBeforeCompile, Self);'#010,
+ ' FProgressMax:=Packages.Count;'#010+
+ ' FProgressCount:=0;'#010+
+ #010+
+ ' if Defaults.ThreadsAmount<0 then'#010+
+ ' begin'#010+
+ ' // Do not use any threading to compile the packages'#010+
+ ' For I:=0 to Packages.Count-1 do'#010+
+ ' begin'#010+
+ ' P:=Packages.PackageIt','ems[i];'#010+
+ ' If PackageOK(P) then'#010+
+ ' MaybeCompile(P)'#010+
+ ' else'#010+
+ ' begin'#010+
+ ' inc(FProgressCount);'#010+
' log(vlWarning,SWarnSkipPackageTargetProgress,[(FProgressCo'+
- 'unt)/FProgressMax ','* 100, P.Name, Defaults.Target]);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- '{$ifndef NO_THREADING}'#013#010+
- ' // Use worker-threads to compile the packages'#013#010+
- ' ErrorState := False;'#013#010+
- ' Finished := False;'#013#010+
- ' I := 0;'#013,#010+
- ' // This event is set by the worker-threads to notify the main/th'+
- 'is thread'#013#010+
- ' // that a package finished it'#039's task.'#013#010+
- ' NotifyThreadWaiting := RTLEventCreate;'#013#010+
- ' SetLength(Threads,Defaults.ThreadsAmount);'#013#010+
- ' // Create a','ll worker-threads'#013#010+
- ' for Thr:=0 to Defaults.ThreadsAmount-1 do'#013#010+
+ 'unt)/FProgressMax * 100, P.Name, Defa','ults.Target]);'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' end'#010+
+ ' else'#010+
+ ' begin'#010+
+ '{$ifndef NO_THREADING}'#010+
+ ' // Use worker-threads to compile the packages'#010+
+ ' ErrorState := False;'#010+
+ ' Finished := False;'#010+
+ ' I := 0;'#010+
+ ' // This event is set by',' the worker-threads to notify the main/'+
+ 'this thread'#010+
+ ' // that a package finished it'#039's task.'#010+
+ ' NotifyThreadWaiting := RTLEventCreate;'#010+
+ ' SetLength(Threads,Defaults.ThreadsAmount);'#010+
+ ' // Create all worker-threads'#010+
+ ' for Thr:=0',' to Defaults.ThreadsAmount-1 do'#010+
' Threads[Thr] := TCompileWorkerThread.Create(self,NotifyThreadW'+
- 'aiting);'#013#010+
- ' try'#013#010+
+ 'aiting);'#010+
+ ' try'#010+
' // When a thread notifies this thread that it is ready, loop o'+
- 'n all'#013#010+
- ' ',' // threads to check their state and if possible assign a new'+
- ' package'#013#010+
- ' // to them to compile.'#013#010+
- ' while not Finished do'#013#010+
- ' begin'#013#010+
- ' RTLeventWaitFor(NotifyThreadWaiting);'#013#010+
- ' for Thr:=0 to Defaults.','ThreadsAmount-1 do if not Finishe'+
- 'd then'#013#010+
- ' ProcessThreadResult(Threads[Thr]);'#013#010+
- ' end;'#013#010+
+ 'n all'#010+
+ ' // threads to check their state and',' if possible assign a new'+
+ ' package'#010+
+ ' // to them to compile.'#010+
+ ' while not Finished do'#010+
+ ' begin'#010+
+ ' RTLeventWaitFor(NotifyThreadWaiting);'#010+
+ ' for Thr:=0 to Defaults.ThreadsAmount-1 do if not Finished '+
+ 'then'#010+
+ ' ',' ProcessThreadResult(Threads[Thr]);'#010+
+ ' end;'#010+
' // Compilation finished or aborted. Wait for all threads to en'+
- 'd.'#013#010+
- ' for thr:=0 to Defaults.ThreadsAmount-1 do'#013#010+
- ' ',' begin'#013#010+
- ' Threads[Thr].Terminate;'#013#010+
- ' RTLeventSetEvent(Threads[Thr].NotifyStartTask);'#013#010+
- ' Threads[Thr].WaitFor;'#013#010+
- ' end;'#013#010+
- ' finally'#013#010+
- ' RTLeventdestroy(NotifyThreadWaiting);'#013#010+
- ' for thr:=0 t','o Defaults.ThreadsAmount-1 do'#013#010+
- ' Threads[Thr].Free;'#013#010+
- ' end;'#013#010+
- ' if ErrorState then'#013#010+
- ' raise Exception.Create(ErrorMessage);'#013#010+
- '{$endif NO_THREADING}'#013#010+
- ' end;'#013#010+
- ' If Assigned(AfterCompile) then'#013#010+
- ' AfterCompile(Self);'#013#010+
- 'end;'#013#010,
- #013#010+
- #013#010+
- 'procedure TBuildEngine.Install(Packages: TPackages);'#013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- ' P : TPackage;'#013#010+
- 'begin'#013#010+
- ' If Assigned(BeforeInstall) then'#013#010+
- ' BeforeInstall(Self);'#013#010+
- ' For I:=0 to Packages.Count-1 do'#013#010+
- ' begin'#013#010+
- ' P:=Packages.PackageItems','[i];'#013#010+
- ' If PackageOK(P) then'#013#010+
- ' begin'#013#010+
- ' Install(P);'#013#010+
+ 'd.'#010+
+ ' for thr:=0 to Defaults.ThreadsAmount-1 do'#010+
+ ' begin'#010+
+ ' Threads[Thr].Terminate;'#010+
+ ' ',' RTLeventSetEvent(Threads[Thr].NotifyStartTask);'#010+
+ ' Threads[Thr].WaitFor;'#010+
+ ' end;'#010+
+ ' finally'#010+
+ ' RTLeventdestroy(NotifyThreadWaiting);'#010+
+ ' for thr:=0 to Defaults.ThreadsAmount-1 do'#010+
+ ' Threads[Thr].Fre','e;'#010+
+ ' end;'#010+
+ ' if ErrorState then'#010+
+ ' raise Exception.Create(ErrorMessage);'#010+
+ '{$endif NO_THREADING}'#010+
+ ' end;'#010+
+ ' NotifyEventCollection.CallEvents(neaAfterCompile, Self);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.Install(Packages: TPackages);'#010+
+ 'Var'#010+
+ ' I :',' Integer;'#010+
+ ' P : TPackage;'#010+
+ 'begin'#010+
+ ' NotifyEventCollection.CallEvents(neaBeforeInstall, Self);'#010+
+ ' For I:=0 to Packages.Count-1 do'#010+
+ ' begin'#010+
+ ' P:=Packages.PackageItems[i];'#010+
+ ' If PackageOK(P) then'#010+
+ ' begin'#010+
+ ' Install(P, False);',#010+
' log(vlWarning, SWarnInstallationPackagecomplete, [P.Name, De'+
- 'faults.Target]);'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' log(vlWarning,SWarnSkipPackageTarget,[P.Name, D','efaults.Targe'+
- 't]);'#013#010+
- ' end;'#013#010+
- ' If Assigned(AfterInstall) then'#013#010+
- ' AfterInstall(Self);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TBuildEngine.ZipInstall(Packages: TPackages);'#013#010+
- #013#010+
- ' procedure CreateZipFile;'#013#010+
- ' var'#013#010+
- ' I : Integer;'#013#010+
- ' P : TPackage;'#013#010+
- ' begin'#013#010+
- ' ','FZipper := TZipper.Create;'#013#010+
- ' try'#013#010+
- ' For I:=0 to Packages.Count-1 do'#013#010+
- ' begin'#013#010+
- ' P:=Packages.PackageItems[i];'#013#010+
- ' If PackageOK(P) then'#013#010+
- ' begin'#013#010+
- ' FZipper.FileName := Defaults.ZipPrefix + P.N','ame + '#039+
- '.'#039' + MakeTargetString(Defaults.CPU,Defaults.OS) +'#039'.zip'#039';'#013+
- #010+
- ' Install(P);'#013#010+
- ' FZipper.ZipAllFiles;'#013#010+
- ' FZipper.Clear;'#013#010+
- ' log(vlWarning, SWarnInstallationPackagecomplete, [P.Name'+
- ', Defaults.T','arget]);'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' log(vlWarning,SWarnSkipPackageTarget,[P.Name, Defaults.Tar'+
- 'get]);'#013#010+
- ' end;'#013#010+
- ' finally'#013#010+
- ' FZipper.Free;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- #013#010+
- ' {$ifdef HAS_TAR_SUPPORT}'#013#010+
- ' procedure CreateTarFi','le;'#013#010+
- ' var'#013#010+
- ' I : Integer;'#013#010+
- ' P : TPackage;'#013#010+
- ' S : TGZFileStream;'#013#010+
- ' begin;'#013#010+
- ' For I:=0 to Packages.Count-1 do'#013#010+
- ' begin'#013#010+
- ' P:=Packages.PackageItems[i];'#013#010+
- ' If PackageOK(P) then'#013#010+
- ' begin'#013#010+
- ' S := TGZFi','leStream.create(Defaults.ZipPrefix + P.Name + '+
- #039'.'#039' + MakeTargetString(Defaults.CPU,Defaults.OS) +'#039'.tar.gz'#039+
- ', gzopenwrite);'#013#010+
- ' try'#013#010+
- ' FTarWriter := TTarWriter.Create(S);'#013#010+
- ' FTarWriter.Permissions := [tpReadByO','wner, tpWriteByOwn'+
- 'er, tpReadByGroup, tpReadByOther];'#013#010+
- ' FTarWriter.UserName := '#039'root'#039';'#013#010+
- ' FTarWriter.GroupName := '#039'root'#039';'#013#010+
- ' try'#013#010+
- ' Install(P);'#013#010+
- ' log(vlWarning, SWarnInstallat','ionPackagecomplete, [P.'+
- 'Name, Defaults.Target]);'#013#010+
- ' finally'#013#010+
- ' FTarWriter.Free;'#013#010+
- ' end;'#013#010+
- ' finally'#013#010+
- ' S.Free;'#013#010+
- ' end;'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' log(vlWarning',',SWarnSkipPackageTarget,[P.Name, Defaults.Tar'+
- 'get]);'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- ' {$endif HAS_TAR_SUPPORT}'#013#010+
- #013#010+
- 'begin'#013#010+
- ' If Assigned(BeforeInstall) then'#013#010+
- ' BeforeInstall(Self);'#013#010+
- #013#010+
- ' Defaults.IntSetBaseInstallDir('#039'lib/fpc/'#039' + Defaults.FCompile'+
- 'rVers','ion+ '#039'/'#039');'#013#010+
- #013#010+
- ' {$ifdef unix}'#013#010+
- ' {$ifdef HAS_TAR_SUPPORT}'#013#010+
- ' CreateTarFile;'#013#010+
- ' {$else HAS_TAR_SUPPORT}'#013#010+
- ' CreateZipFile;'#013#010+
- ' {$endif HAS_TAR_SUPPORT}'#013#010+
- ' {$else unix}'#013#010+
- ' CreateZipFile;'#013#010+
- ' {$endif unix}'#013#010+
- #013#010+
- ' If Assigned(AfterInstall) then'#013#010+
- ' ',' AfterInstall(Self);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.Archive(Packages: TPackages);'#013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- ' P : TPackage;'#013#010+
- 'begin'#013#010+
- ' If Assigned(BeforeArchive) then'#013#010+
- ' BeforeArchive(Self);'#013#010+
- ' Log(vlDebug, SDbgBuildEngineArchiving);'#013#010+
- ' For',' I:=0 to Packages.Count-1 do'#013#010+
- ' begin'#013#010+
- ' P:=Packages.PackageItems[i];'#013#010+
- ' Archive(P);'#013#010+
- ' end;'#013#010+
- ' If Assigned(AfterArchive) then'#013#010+
- ' AfterArchive(Self);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.Manifest(Packages: TPackages);'#013#010+
- 'Var'#013#010+
- ' I :',' Integer;'#013#010+
- ' P : TPackage;'#013#010+
- 'begin'#013#010+
- ' If Assigned(BeforeManifest) then'#013#010+
- ' BeforeManifest(Self);'#013#010+
- ' Log(vlDebug, SDbgBuildEngineGenerateManifests);'#013#010+
- ' For I:=0 to Packages.Count-1 do'#013#010+
- ' begin'#013#010+
- ' P:=Packages.PackageItems[i];'#013#010+
- ' Man','ifest(P);'#013#010+
- ' end;'#013#010+
- ' If Assigned(AfterManifest) then'#013#010+
- ' AfterManifest(Self);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TBuildEngine.Clean(Packages: TPackages; AllTargets: boolean)'+
- ';'#013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- ' P : TPackage;'#013#010+
- 'begin'#013#010+
- ' If Assigned(BeforeClean) the','n'#013#010+
- ' BeforeClean(Self);'#013#010+
- ' Log(vldebug, SDbgBuildEngineCleaning);'#013#010+
- ' For I:=0 to Packages.Count-1 do'#013#010+
- ' begin'#013#010+
- ' P:=Packages.PackageItems[i];'#013#010+
- ' If AllTargets or PackageOK(P) then'#013#010+
- ' Clean(P, AllTargets);'#013#010+
- ' log(vlWarn','ing, SWarnCleanPackagecomplete, [P.Name]);'#013#010+
- ' end;'#013#010+
- ' If Assigned(AfterClean) then'#013#010+
- ' AfterClean(Self);'#013#010+
- 'end;'#013#010+
- #013#010+
+ 'faults.Target]);'#010+
+ ' end'#010+
+ ' else'#010+
+ ' log(vlWarning,SWarnSkipPackageTarget,[P.Name, Defaults.Target]'+
+ ');'#010+
+ ' end;'#010+
+ ' NotifyEventCollection.CallEvents(neaAfterInst','all, Self);'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TBuildEngine.ZipInstall(Packages: TPackages);'#010+
+ #010+
+ 'var'#010+
+ ' I : Integer;'#010+
+ ' P : TPackage;'#010+
+ #010+
+ 'begin'#010+
+ ' NotifyEventCollection.CallEvents(neaBeforeInstall, Self);'#010+
+ #010+
+ ' if Defaults.UnixPaths then'#010+
+ ' Defaults.IntSetBaseInstallDir','('#039'lib/fpc/'#039' + Defaults.FCom'+
+ 'pilerVersion+ '#039'/'#039')'#010+
+ ' else'#010+
+ ' Defaults.IntSetBaseInstallDir('#039#039');'#010+
+ #010+
+ ' try'#010+
+ ' For I:=0 to Packages.Count-1 do'#010+
+ ' begin'#010+
+ ' P:=Packages.PackageItems[i];'#010+
+ ' If PackageOK(P) then'#010+
+ ' begin'#010+
+ ' ',' Install(P, True);'#010+
+ ' log(vlWarning, SWarnInstallationPackagecomplete, [P.Name, '+
+ 'Defaults.Target]);'#010+
+ ' end'#010+
+ ' else'#010+
+ ' log(vlWarning,SWarnSkipPackageTarget,[P.Name, Defaults.Targe'+
+ 't]);'#010+
+ ' end;'#010+
+ ' finally'#010+
+ ' Finis','hArchive(P);'#010+
+ ' end;'#010+
+ #010+
+ ' NotifyEventCollection.CallEvents(neaAfterInstall, Self);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.Archive(Packages: TPackages);'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ ' P : TPackage;'#010+
+ 'begin'#010+
+ ' NotifyEventCollection.CallEvents(neaBeforeArchive, Self);',#010+
+ ' Log(vlDebug, SDbgBuildEngineArchiving);'#010+
+ ' For I:=0 to Packages.Count-1 do'#010+
+ ' begin'#010+
+ ' P:=Packages.PackageItems[i];'#010+
+ ' Archive(P);'#010+
+ ' end;'#010+
+ ' NotifyEventCollection.CallEvents(neaAfterArchive, Self);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.Ma','nifest(Packages: TPackages);'#010+
+ 'Var'#010+
+ ' L : TStrings;'#010+
+ ' I : Integer;'#010+
+ ' P : TPackage;'#010+
+ 'begin'#010+
+ ' NotifyEventCollection.CallEvents(neaBeforeManifest, Self);'#010+
+ ' Log(vlDebug, SDbgBuildEngineGenerateManifests);'#010+
+ #010+
+ ' L:=TStringList.Create;'#010+
+ ' Try'#010+
+ ' Log(vlD','ebug, Format(SDbgGenerating, [ManifestFile]));'#010+
+ ' L.Add('#039'<?xml version="1.0"?>'#039');'#010+
+ ' L.Add('#039'<packages>'#039');'#010+
+ ' For I:=0 to Packages.Count-1 do'#010+
+ ' begin'#010+
+ ' P:=Packages.PackageItems[i];'#010+
+ ' Log(vlInfo, Format(SInfoManifestPackage',',[P.Name]));'#010+
+ ' P.GetManifest(L);'#010+
+ ' end;'#010+
+ ' L.Add('#039'</packages>'#039');'#010+
+ ' L.SaveToFile(ManifestFile);'#010+
+ ' Finally'#010+
+ ' L.Free;'#010+
+ ' end;'#010+
+ #010+
+ ' NotifyEventCollection.CallEvents(neaAfterManifest, Self);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TBuildEngine.PkgList(Pack','ages: TPackages);'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ ' P : TPackage;'#010+
+ ' L : TStrings;'#010+
+ ' PKGL : String;'#010+
+ 'begin'#010+
+ ' L:=TStringList.Create;'#010+
+ ' NotifyEventCollection.CallEvents(neaBeforePkgList, Self);'#010+
+ ' Log(vlDebug, SDbgBuildEngineGeneratePkgList);'#010+
+ '{ Consider only',' the target OS, because the installer would be run th'+
+ 'ere }'#010+
+ ' if Defaults.OS in AllLimit83fsOSes then'#010+
+ ' PKGL := PkgListFileBase + OSToString (Defaults.OS) + PkgListFileEx'+
+ 't'#010+
+ ' else if Defaults.OS = osNone then'#010+
+ ' PKGL := PkgListFileBase + '#039,'src'#039' + PkgListFileExt'#010+
+ ' else'#010+
+ ' PKGL := PkgListFileBase + CPUToString (Defaults.CPU) + '#039'-'#039' '+
+ '+'#010+
+ ' OSToString (Defaults.OS) + PkgLis'+
+ 'tFileExt;'#010+
+ #010+
+ ' Try'#010+
+ ' Log(vlDebug, Format(SDbgGenerating, [PKGL]));'#010+
+ #010+
+ ' For ','I:=0 to Packages.Count-1 do'#010+
+ ' begin'#010+
+ ' P:=Packages.PackageItems[i];'#010+
+ ' PkgList(L, P);'#010+
+ ' end;'#010+
+ #010+
+ ' L.SaveToFile(PKGL);'#010+
+ ' Finally'#010+
+ ' L.Free;'#010+
+ ' end;'#010+
+ #010+
+ ' NotifyEventCollection.CallEvents(neaAfterPkgList, Self);'#010+
+ 'end;'#010+
+ #010+
+ 'procedure',' TBuildEngine.Clean(Packages: TPackages; AllTargets: boolea'+
+ 'n);'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ ' P : TPackage;'#010+
+ 'begin'#010+
+ ' NotifyEventCollection.CallEvents(neaBeforeClean, Self);'#010+
+ ' Log(vldebug, SDbgBuildEngineCleaning);'#010+
+ ' For I:=0 to Packages.Count-1 do'#010+
+ ' ',' begin'#010+
+ ' P:=Packages.PackageItems[i];'#010+
+ ' If AllTargets or PackageOK(P) then'#010+
+ ' Clean(P, AllTargets);'#010+
+ ' log(vlWarning, SWarnCleanPackagecomplete, [P.Name]);'#010+
+ ' end;'#010+
+ ' NotifyEventCollection.CallEvents(neaAfterClean, Self);'#010+
+ 'en','d;'#010+
+ #010+
'{*********************************************************************'+
- '*******'#013#010+
- ' TFPVersion'#013#010+
- '*','*******************************************************************'+
- '********}'#013#010+
- #013#010+
- 'function TFPVersion.GetAsString: String;'#013#010+
- 'begin'#013#010+
- ' if Empty then'#013#010+
- ' Result:='#039'<none>'#039#013#010+
- ' else'#013#010+
- ' begin'#013#010+
- ' Result := '#039#039';'#013#010+
- ' if Major <> -1 then'#013#010+
- ' Resul','t := Result + IntToStr(Major);'#013#010+
- ' if Minor <> -1 then'#013#010+
- ' Result := Result + '#039'.'#039' + IntToStr(Minor);'#013#010+
- ' if Micro <> -1 then'#013#010+
- ' Result := Result + '#039'.'#039' + IntToStr(Micro);'#013#010+
- ' if Build <> -1 then'#013#010+
- ' Result := Result + '#039'-'#039' + Int','ToStr(Build);'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TFPVersion.GetEmpty: Boolean;'#013#010+
- 'begin'#013#010+
- ' Result:=(Major=0) and (Minor=0) and (Micro=0) and (Build=0);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TFPVersion.SetAsString(const AValue: String);'#013#010+
- #013#010+
- ' Function NextDigit(sep : Char','; var V : string) : integer;'#013#010+
- ' Var'#013#010+
- ' P : Integer;'#013#010+
- ' begin'#013#010+
- ' P:=Pos(Sep,V);'#013#010+
- ' If (P=0) then'#013#010+
- ' P:=Length(V)+1;'#013#010+
- ' Result:=StrToIntDef(Copy(V,1,P-1),-1);'#013#010+
- ' If Result<>-1 then'#013#010+
- ' Delete(V,1,P);'#013#010+
- ' end;'#013#010+
- #013#010+
- 'Var'#013#010+
- ' V : Str','ing;'#013#010+
- 'begin'#013#010+
- ' Clear;'#013#010+
- ' // Special support for empty version string'#013#010+
- ' if (AValue='#039#039') or (AValue='#039'<none>'#039') then'#013#010+
- ' exit;'#013#010+
- ' V:=AValue;'#013#010+
- ' Major:=NextDigit('#039'.'#039',V);'#013#010+
- ' Minor:=NextDigit('#039'.'#039',V);'#013#010+
- ' Micro:=NextDigit('#039'-'#039',V);'#013#010+
- ' Build:=NextDigi','t(#0,V);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TFPVersion.Clear;'#013#010+
- 'begin'#013#010+
- ' Micro:=-1;'#013#010+
- ' Major:=-1;'#013#010+
- ' Minor:=-1;'#013#010+
- ' Build:=-1;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TFPVersion.Assign(Source: TPersistent);'#013#010+
- 'Var'#013#010+
- ' V : TFPVersion;'#013#010+
- 'begin'#013#010+
- ' if Source is TFPVersion then'#013#010+
- ' begi','n'#013#010+
- ' V:=Source as TFPVersion;'#013#010+
- ' Major:=V.Major;'#013#010+
- ' Minor:=V.Minor;'#013#010+
- ' Micro:=V.Micro;'#013#010+
- ' Build:=V.Build;'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' inherited Assign(Source);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TFPVersion.CompareVersion(AVersion: TFPVersion): Integer;'#013,
- #010+
- 'begin'#013#010+
- ' Result:=Major-AVersion.Major;'#013#010+
- ' If (Result=0) then'#013#010+
- ' begin'#013#010+
- ' Result:=Minor-AVersion.Minor;'#013#010+
- ' if (Result=0) then'#013#010+
- ' begin'#013#010+
- ' Result:=Micro-AVersion.Micro;'#013#010+
- ' If (Result=0) then'#013#010+
- ' Resul','t:=Build-AVersion.Build;'#013#010+
- ' end;'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TFPVersion.SameVersion(AVersion: TFPVersion): Boolean;'#013#010+
- 'begin'#013#010+
- ' Result:=CompareVersion(AVersion)=0;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{************************************************************','*******'+
- '*********'#013#010+
- ' TTarget'#013#010+
+ '*******'#010+
+ ' TFPVersion'#010+
+ '**********************************************************************'+
+ '******}'#010+
+ #010+
+ 'function TFPVersion.GetAsString: Stri','ng;'#010+
+ 'begin'#010+
+ ' if Empty then'#010+
+ ' Result:='#039'<none>'#039#010+
+ ' else'#010+
+ ' begin'#010+
+ ' Result := '#039#039';'#010+
+ ' if Major <> -1 then'#010+
+ ' Result := Result + IntToStr(Major);'#010+
+ ' if Minor <> -1 then'#010+
+ ' Result := Result + '#039'.'#039' + IntToStr(Minor);'#010+
+ ' if Micro <> -1 the','n'#010+
+ ' Result := Result + '#039'.'#039' + IntToStr(Micro);'#010+
+ ' if Build <> -1 then'#010+
+ ' Result := Result + '#039'-'#039' + IntToStr(Build);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ 'function TFPVersion.GetEmpty: Boolean;'#010+
+ 'begin'#010+
+ ' Result:=(Major=0) and (Minor=0) and (Micro=0) and (Build=','0);'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TFPVersion.SetAsString(const AValue: String);'#010+
+ #010+
+ ' Function NextDigit(sep : Char; var V : string) : integer;'#010+
+ ' Var'#010+
+ ' P : Integer;'#010+
+ ' begin'#010+
+ ' P:=Pos(Sep,V);'#010+
+ ' If (P=0) then'#010+
+ ' P:=Length(V)+1;'#010+
+ ' Result:=StrToIntDef','(Copy(V,1,P-1),-1);'#010+
+ ' If Result<>-1 then'#010+
+ ' Delete(V,1,P);'#010+
+ ' end;'#010+
+ #010+
+ 'Var'#010+
+ ' V : String;'#010+
+ 'begin'#010+
+ ' Clear;'#010+
+ ' // Special support for empty version string'#010+
+ ' if (AValue='#039#039') or (AValue='#039'<none>'#039') then'#010+
+ ' exit;'#010+
+ ' V:=AValue;'#010+
+ ' Major:=NextDigit('#039'.'#039',','V);'#010+
+ ' Minor:=NextDigit('#039'.'#039',V);'#010+
+ ' Micro:=NextDigit('#039'-'#039',V);'#010+
+ ' Build:=NextDigit(#0,V);'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TFPVersion.Clear;'#010+
+ 'begin'#010+
+ ' Micro:=-1;'#010+
+ ' Major:=-1;'#010+
+ ' Minor:=-1;'#010+
+ ' Build:=-1;'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TFPVersion.Assign(Source: TPersistent);'#010+
+ 'Var'#010+
+ ' V ',': TFPVersion;'#010+
+ 'begin'#010+
+ ' if Source is TFPVersion then'#010+
+ ' begin'#010+
+ ' V:=Source as TFPVersion;'#010+
+ ' Major:=V.Major;'#010+
+ ' Minor:=V.Minor;'#010+
+ ' Micro:=V.Micro;'#010+
+ ' Build:=V.Build;'#010+
+ ' end'#010+
+ ' else'#010+
+ ' inherited Assign(Source);'#010+
+ 'end;'#010+
+ #010+
+ 'function TFPVersion','.CompareVersion(AVersion: TFPVersion): Integer;'#010+
+ 'begin'#010+
+ ' Result:=Major-AVersion.Major;'#010+
+ ' If (Result=0) then'#010+
+ ' begin'#010+
+ ' Result:=Minor-AVersion.Minor;'#010+
+ ' if (Result=0) then'#010+
+ ' begin'#010+
+ ' Result:=Micro-AVersion.Micro;'#010+
+ ' ',' If (Result=0) then'#010+
+ ' Result:=Build-AVersion.Build;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ 'function TFPVersion.SameVersion(AVersion: TFPVersion): Boolean;'#010+
+ 'begin'#010+
+ ' Result:=CompareVersion(AVersion)=0;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{*********************************','**********************************'+
+ '*********'#010+
+ ' TTarget'#010+
'**********************************************************************'+
- '******}'#013#010+
- #013#010+
- 'constructor TTarget.Create(ACollection: TCollection);'#013#010+
- 'begin'#013#010+
- ' inherited Create(ACollection);'#013#010+
- ' F','Install:=True;'#013#010+
- ' FCPUs:=AllCPUs;'#013#010+
- ' FOSes:=AllOSes;'#013#010+
- ' FUnitPath:=TConditionalStrings.Create(TConditionalString);'#013#010+
- ' FIncludePath:=TConditionalStrings.Create(TConditionalString);'#013#010+
- ' FObjectPath:=TConditionalStrings.Create(TConditionalStrin','g);'#013#010+
- ' FDependencies:=TDependencies.Create(TDependency);'#013#010+
- ' FCommands:=TCommands.Create(TCommand);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'destructor TTarget.Destroy;'#013#010+
- 'begin'#013#010+
- ' FreeAndNil(FUnitPath);'#013#010+
- ' FreeAndNil(FObjectPath);'#013#010+
- ' FreeAndNil(FIncludePath);'#013#010+
- ' FreeAndNi','l(FDependencies);'#013#010+
- ' FreeAndNil(FCommands);'#013#010+
- ' FreeAndNil(Foptions);'#013#010+
- ' inherited Destroy;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TTarget.AssignTo(Dest: TPersistent);'#013#010+
- 'var'#013#010+
- ' DestTarget: TTarget;'#013#010+
- 'begin'#013#010+
- ' if Dest is TTarget then'#013#010+
- ' begin'#013#010+
- ' DestTarget := ','TTarget(Dest);'#013#010+
- ' DestTarget.Dependencies.Assign(Dependencies);'#013#010+
- ' DestTarget.Commands.Assign(Commands);'#013#010+
- ' DestTarget.FTargetState := FTargetState;'#013#010+
- ' DestTarget.TargetType := TargetType;'#013#010+
- ' DestTarget.CPUs := CPUs;'#013#010+
- ' DestTarg','et.OSes := OSes;'#013#010+
- ' DestTarget.Mode := Mode;'#013#010+
- ' DestTarget.Options := Options;'#013#010+
- ' DestTarget.Name := Name;'#013#010+
- ' DestTarget.Extension:= Extension;'#013#010+
- ' DestTarget.FPCTarget := FPCTarget;'#013#010+
- ' DestTarget.FileType := FileType;'#013#010+
- ' Dest','Target.Directory := Directory;'#013#010+
- ' DestTarget.ResourceStrings := ResourceStrings;'#013#010+
- ' DestTarget.Install := Install;'#013#010+
- ' DestTarget.FTargetSourceFileName := fTargetSourceFileName;'#013#010+
- ' DestTarget.ObjectPath.Assign(ObjectPath);'#013#010+
- ' DestT','arget.UnitPath.Assign(UnitPath);'#013#010+
- ' DestTarget.IncludePath.Assign(IncludePath);'#013#010+
- ' DestTarget.FXML := FXML;'#013#010+
- ' DestTarget.AfterCompile := AfterCompile;'#013#010+
- ' DestTarget.BeforeCompile := BeforeCompile;'#013#010+
- ' DestTarget.BeforeClean := Bef','oreCompile;'#013#010+
- ' DestTarget.AfterClean := AfterClean;'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' inherited AssignTo(Dest);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TTarget.GetOptions: TStrings;'#013#010+
- 'begin'#013#010+
- ' If Foptions=Nil then'#013#010+
- ' FOptions:=TStringList.Create;'#013#010+
- ' Result:=FOptions;'#013#010+
- 'en','d;'#013#010+
- #013#010+
- 'function TTarget.GetImportLibFileName(AOS : TOS) : String;'#013#010+
- 'begin'#013#010+
- ' result := GetImportLibraryFilename(Name,AOS);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TTarget.GetUnitLibFileName(AOS : TOS): String;'#013#010+
- 'begin'#013#010+
- ' if AOS in [atari,netwlibc,go32v2,watcom,wdos','x,msdos] then'#013#010+
- ' Result := Name+LibExt'#013#010+
- ' else if AOS in [java] then'#013#010+
- ' Result:=Name+'#039'.jar'#039#013#010+
- ' else if AOS in [macos] then'#013#010+
- ' Result:=Name+'#039'Lib'#039#013#010+
- ' else'#013#010+
- ' Result:='#039'libp'#039'+Name+LibExt;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TTarget.SetOptions(const AVal','ue: TStrings);'#013#010+
- 'begin'#013#010+
- ' If (AValue=Nil) or (AValue.Count=0) then'#013#010+
- ' FreeAndNil(FOptions)'#013#010+
- ' else'#013#010+
- ' Options.Assign(AValue);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TTarget.GetSourceFileName: String;'#013#010+
- 'begin'#013#010+
- ' Result:=Name+FExtension;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TTa','rget.GetUnitFileName: String;'#013#010+
- 'begin'#013#010+
- ' Result:=Name+UnitExt;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TTarget.GetObjectFileName: String;'#013#010+
- 'begin'#013#010+
- ' Result:=Name+ObjExt;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TTarget.GetRSTFileName: String;'#013#010+
- 'begin'#013#010+
- ' Result:=Name+RSText;'#013#010+
- 'end;'#013#010+
- #013#010,
- #013#010+
- 'function TTarget.GetRSJFileName: String;'#013#010+
- 'begin'#013#010+
- ' Result:=Name+RSJext;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TTarget.GetProgramFileName(AOS : TOS): String;'#013#010+
- 'begin'#013#010+
- ' result := AddProgramExtension(Name, AOS);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TTarget.GetProgramDebugFile','Name(AOS: TOS): String;'#013#010+
- 'begin'#013#010+
- ' result := Name + DbgExt;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TTarget.GetOutputFileName(AOs: TOS): String;'#013#010+
- 'begin'#013#010+
- ' if TargetType in UnitTargets then'#013#010+
- ' Result:=GetUnitFileName'#013#010+
- ' else'#013#010+
- ' Result:=GetProgramFileName(AOs',');'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TTarget.HaveOptions: Boolean;'#013#010+
- 'begin'#013#010+
- ' Result:=(FOptions<>Nil);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TTarget.SetName(const AValue: String);'#013#010+
- 'Var'#013#010+
- ' D,N,E : String;'#013#010+
- 'begin'#013#010+
- ' N:=FixPath(AValue, False);'#013#010+
- ' D:=ExtractFilePath(N);'#013#010+
- ' E:=E','xtractFileExt(N);'#013#010+
- ' N:=ExtractFileName(N);'#013#010+
- ' inherited SetName(Copy(N,1,Length(N)-Length(E)));'#013#010+
- ' FExtension:=E;'#013#010+
- ' FDirectory:=D;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TTarget.SetXML(const AValue: string);'#013#010+
- 'begin'#013#010+
- ' FXML:=FixPath(AValue, False);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'p','rocedure TTarget.GetCleanFiles(List: TStrings; const APrefixU, APre'+
- 'fixB : String; ACPU: TCPU; AOS : TOS);'#013#010+
- 'begin'#013#010+
- ' If not(ACPU in CPUs) or not(AOS in OSes) then'#013#010+
- ' exit;'#013#010+
- ' List.Add(APrefixU + ObjectFileName);'#013#010+
- ' If (TargetType in [ttUni','t,ttImplicitUnit,ttExampleUnit, ttCleanOnl'+
- 'yUnit]) then'#013#010+
- ' begin'#013#010+
- ' List.Add(APrefixU + UnitFileName);'#013#010+
- ' if (AOS in AllSmartLinkLibraryOSes) and FileExists(APrefixU + Ge'+
- 'tUnitLibFileName(AOS)) then'#013#010+
- ' List.Add(APrefixU + GetU','nitLibFileName(AOS));'#013#010+
+ '******}'#010+
+ #010+
+ 'constructor TTarget.Create(ACollection: TCollection);'#010+
+ 'begin'#010+
+ ' inherited Crea','te(ACollection);'#010+
+ ' FInstall:=True;'#010+
+ ' FCPUs:=AllCPUs;'#010+
+ ' FOSes:=AllOSes;'#010+
+ ' FUnitPath:=TConditionalStrings.Create(TConditionalString);'#010+
+ ' FIncludePath:=TConditionalStrings.Create(TConditionalString);'#010+
+ ' FObjectPath:=TConditionalStrings.Create(TC','onditionalString);'#010+
+ ' FDependencies:=TDependencies.Create(TDependency);'#010+
+ ' FCommands:=TCommands.Create(TCommand);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'destructor TTarget.Destroy;'#010+
+ 'begin'#010+
+ ' FreeAndNil(FUnitPath);'#010+
+ ' FreeAndNil(FObjectPath);'#010+
+ ' FreeAndNil(FIncludePath);'#010+
+ ' FreeA','ndNil(FDependencies);'#010+
+ ' FreeAndNil(FCommands);'#010+
+ ' FreeAndNil(Foptions);'#010+
+ ' inherited Destroy;'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TTarget.AssignTo(Dest: TPersistent);'#010+
+ 'var'#010+
+ ' DestTarget: TTarget;'#010+
+ 'begin'#010+
+ ' if Dest is TTarget then'#010+
+ ' begin'#010+
+ ' DestTarget := TTarget(','Dest);'#010+
+ ' DestTarget.Dependencies.Assign(Dependencies);'#010+
+ ' DestTarget.Commands.Assign(Commands);'#010+
+ ' DestTarget.FTargetState := FTargetState;'#010+
+ ' DestTarget.TargetType := TargetType;'#010+
+ ' DestTarget.CPUs := CPUs;'#010+
+ ' DestTarget.OSes := OSe','s;'#010+
+ ' DestTarget.Mode := Mode;'#010+
+ ' DestTarget.Options := Options;'#010+
+ ' DestTarget.Name := Name;'#010+
+ ' DestTarget.Extension:= Extension;'#010+
+ ' DestTarget.FPCTarget := FPCTarget;'#010+
+ ' DestTarget.FileType := FileType;'#010+
+ ' DestTarget.Directory := D','irectory;'#010+
+ ' DestTarget.ResourceStrings := ResourceStrings;'#010+
+ ' DestTarget.Install := Install;'#010+
+ ' DestTarget.FTargetSourceFileName := fTargetSourceFileName;'#010+
+ ' DestTarget.ObjectPath.Assign(ObjectPath);'#010+
+ ' DestTarget.UnitPath.Assign(Unit','Path);'#010+
+ ' DestTarget.IncludePath.Assign(IncludePath);'#010+
+ ' DestTarget.FXML := FXML;'#010+
+ ' DestTarget.AfterCompile := AfterCompile;'#010+
+ ' DestTarget.BeforeCompile := BeforeCompile;'#010+
+ ' DestTarget.BeforeClean := BeforeCompile;'#010+
+ ' DestTarget.Afte','rClean := AfterClean;'#010+
+ ' end'#010+
+ ' else'#010+
+ ' inherited AssignTo(Dest);'#010+
+ 'end;'#010+
+ #010+
+ 'function TTarget.GetOptions: TStrings;'#010+
+ 'begin'#010+
+ ' If Foptions=Nil then'#010+
+ ' FOptions:=TStringList.Create;'#010+
+ ' Result:=FOptions;'#010+
+ 'end;'#010+
+ #010+
+ 'function TTarget.GetImportLibFileName(A','OS : TOS) : String;'#010+
+ 'begin'#010+
+ ' result := GetImportLibraryFilename(Name,AOS);'#010+
+ 'end;'#010+
+ #010+
+ 'function TTarget.GetUnitLibFileName(AOS : TOS): String;'#010+
+ 'begin'#010+
+ ' if AOS in [atari,netwlibc,go32v2,watcom,wdosx,msdos] then'#010+
+ ' Result := Name+LibExt'#010+
+ ' else if AO','S in [java] then'#010+
+ ' Result:=Name+'#039'.jar'#039#010+
+ ' else if AOS in [macos] then'#010+
+ ' Result:=Name+'#039'Lib'#039#010+
+ ' else'#010+
+ ' Result:='#039'libp'#039'+Name+LibExt;'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TTarget.SetOptions(const AValue: TStrings);'#010+
+ 'begin'#010+
+ ' If (AValue=Nil) or (AValue.Count=0) the','n'#010+
+ ' FreeAndNil(FOptions)'#010+
+ ' else'#010+
+ ' Options.Assign(AValue);'#010+
+ 'end;'#010+
+ #010+
+ 'function TTarget.GetSourceFileName: String;'#010+
+ 'begin'#010+
+ ' Result:=Name+FExtension;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TTarget.GetUnitFileName: String;'#010+
+ 'begin'#010+
+ ' Result:=Name+UnitExt;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function ','TTarget.GetObjectFileName: String;'#010+
+ 'begin'#010+
+ ' Result:=Name+ObjExt;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TTarget.GetRSTFileName: String;'#010+
+ 'begin'#010+
+ ' Result:=Name+RSText;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TTarget.GetRSJFileName: String;'#010+
+ 'begin'#010+
+ ' Result:=Name+RSJext;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TTarge','t.GetProgramFileName(AOS : TOS): String;'#010+
+ 'begin'#010+
+ ' result := AddProgramExtension(Name, AOS);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TTarget.GetProgramDebugFileName(AOS: TOS): String;'#010+
+ 'begin'#010+
+ ' result := Name + DbgExt;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TTarget.GetOutputFileName(AOs: TO','S): String;'#010+
+ 'begin'#010+
+ ' if TargetType in UnitTargets then'#010+
+ ' Result:=GetUnitFileName'#010+
+ ' else'#010+
+ ' Result:=GetProgramFileName(AOs);'#010+
+ 'end;'#010+
+ #010+
+ 'function TTarget.HaveOptions: Boolean;'#010+
+ 'begin'#010+
+ ' Result:=(FOptions<>Nil);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TTarget.SetName(con','st AValue: String);'#010+
+ 'Var'#010+
+ ' D,N,E : String;'#010+
+ 'begin'#010+
+ ' N:=FixPath(AValue, False);'#010+
+ ' D:=ExtractFilePath(N);'#010+
+ ' E:=ExtractFileExt(N);'#010+
+ ' N:=ExtractFileName(N);'#010+
+ ' inherited SetName(Copy(N,1,Length(N)-Length(E)));'#010+
+ ' FExtension:=E;'#010+
+ ' FDirectory:=D;'#010+
+ 'end',';'#010+
+ #010+
+ 'procedure TTarget.SetXML(const AValue: string);'#010+
+ 'begin'#010+
+ ' FXML:=FixPath(AValue, False);'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TTarget.GetCleanFiles(List: TStrings; const APrefixU, APrefi'+
+ 'xB : String; ACPU: TCPU; AOS : TOS);'#010+
+ 'begin'#010+
+ ' If not(ACPU in CPUs) or not(AO','S in OSes) then'#010+
+ ' exit;'#010+
+ ' List.Add(APrefixU + ObjectFileName);'#010+
+ ' If (TargetType in [ttUnit,ttImplicitUnit,ttExampleUnit, ttCleanOnlyU'+
+ 'nit]) then'#010+
+ ' begin'#010+
+ ' List.Add(APrefixU + UnitFileName);'#010+
+ ' if (AOS in AllSmartLinkLibraryOSes) a','nd FileExists(APrefixU + '+
+ 'GetUnitLibFileName(AOS)) then'#010+
+ ' List.Add(APrefixU + GetUnitLibFileName(AOS));'#010+
' if (AOS in AllImportLibraryOSes) and FileExists(APrefixU + GetIm'+
- 'portLibFilename(AOS)) then'#013#010+
- ' List.Add(APrefixU + GetImportLibFilename(AOS));'#013#010+
- ' end'#013#010+
- ' else If (TargetType in [ttProgram,ttExampleProgram]',') then'#013#010+
- ' begin'#013#010+
- ' List.Add(APrefixB + GetProgramFileName(AOS));'#013#010+
- ' if FileExists(APrefixB + GetProgramDebugFileName(AOS)) then'#013#010+
- ' List.Add(APrefixB + GetProgramDebugFileName(AOS));'#013#010+
- ' end;'#013#010+
- ' If ResourceStrings then'#013#010+
- ' begin'#013,#010+
- ' // choose between 2 possible resource files'#013#010+
- ' if FileExists(APrefixU + RSJFileName) then'#013#010+
- ' List.Add(APrefixU + RSJFileName)'#013#010+
- ' else'#013#010+
- ' List.Add(APrefixU + RSTFileName);'#013#010+
- ' end;'#013#010+
- ' // Maybe add later ? AddCond','itionalStrings(List,CleanFiles);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'portLibFilename(AOS)) then'#010+
+ ' List.Add(APrefixU + GetImp','ortLibFilename(AOS));'#010+
+ ' end'#010+
+ ' else If (TargetType in [ttProgram,ttExampleProgram]) then'#010+
+ ' begin'#010+
+ ' List.Add(APrefixB + GetProgramFileName(AOS));'#010+
+ ' if FileExists(APrefixB + GetProgramDebugFileName(AOS)) then'#010+
+ ' List.Add(APrefixB + ','GetProgramDebugFileName(AOS));'#010+
+ ' end;'#010+
+ ' If ResourceStrings then'#010+
+ ' begin'#010+
+ ' // choose between 2 possible resource files'#010+
+ ' if FileExists(APrefixU + RSJFileName) then'#010+
+ ' List.Add(APrefixU + RSJFileName)'#010+
+ ' else'#010+
+ ' List.','Add(APrefixU + RSTFileName);'#010+
+ ' end;'#010+
+ ' // Maybe add later ? AddConditionalStrings(List,CleanFiles);'#010+
+ 'end;'#010+
+ #010+
+ #010+
'procedure TTarget.GetInstallFiles(List: TStrings; const APrefixU, APre'+
- 'fixB: String; ACPU: TCPU; AOS : TOS);'#013#010+
- 'begin'#013#010+
- ' If Not (TargetType in [ttProgram,ttExampleProgram]) and FileExists(A'+
- 'PrefixU + ','ObjectFileName) then'#013#010+
- ' // The compiler does not create an objectfile for all programs.'#013+
- #010+
- ' List.Add(APrefixU + ObjectFileName);'#013#010+
- ' If (TargetType in [ttUnit,ttImplicitUnit,ttExampleUnit]) then'#013#010+
- ' begin'#013#010+
- ' List.Add(APrefixU + UnitFil','eName);'#013#010+
- ' if (AOS in AllSmartLinkLibraryOSes) and FileExists(APrefixU + GetU'+
- 'nitLibFileName(AOS)) then'#013#010+
- ' List.Add(APrefixU + GetUnitLibFileName(AOS));'#013#010+
- ' if (AOS in AllImportLibraryOSes) and FileExists(APrefixU + GetImpo'+
- 'rtLibFilena','me(AOS)) then'#013#010+
- ' List.Add(APrefixU + GetImportLibFilename(AOS));'#013#010+
- ' end'#013#010+
- ' else If (TargetType in [ttProgram,ttExampleProgram]) then'#013#010+
- ' List.Add(APrefixB + GetProgramFileName(AOS));'#013#010+
- ' If ResourceStrings then'#013#010+
- ' begin'#013#010+
- ' // ch','oose between 2 possible resource files'#013#010+
- ' if FileExists(APrefixU + RSJFileName) then'#013#010+
- ' List.Add(APrefixU + RSJFileName)'#013#010+
- ' else'#013#010+
- ' List.Add(APrefixU + RSTFileName);'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TTarget.GetArchiveFiles','(List: TStrings; ACPU: TCPU; AOS : '+
- 'TOS);'#013#010+
- 'var'#013#010+
- ' i : integer;'#013#010+
- ' D : TDependency;'#013#010+
- 'begin'#013#010+
- ' If not(ACPU in CPUs) or not(AOS in OSes) then'#013#010+
- ' exit;'#013#010+
- ' // Main source'#013#010+
- ' if TargetSourceFileName<>'#039#039' then'#013#010+
- ' List.Add(TargetSourceFileName);'#013,#010+
- ' // Includes'#013#010+
- ' for i:=0 to Dependencies.Count-1 do'#013#010+
- ' begin'#013#010+
- ' D:=Dependencies[i];'#013#010+
- ' if (D.DependencyType=depInclude) and'#013#010+
- ' (D.TargetFileName<>'#039#039') then'#013#010+
- ' List.Add(D.TargetFileName);'#013#010+
- ' end;'#013#010+
- ' // FPDoc files'#013#010,
- ' if XML <> '#039#039' then'#013#010+
- ' begin'#013#010+
- ' List.Add(Directory + Name + Extension);'#013#010+
- ' List.Add(XML);'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{*********************************************************************'+
- '*******'#013#010+
- ' TSource'#013#010+
- '******','**************************************************************'+
- '********}'#013#010+
- #013#010+
- 'function TSource.GetInstallSourcePath: string;'#013#010+
- 'begin'#013#010+
- ' if FInstallSourcePath<>'#039#039' then'#013#010+
- ' result := FInstallSourcePath'#013#010+
- ' else if SourceType=stExample then'#013#010+
- ' r','esult := '#039'examples'#039#013#010+
- ' else'#013#010+
- ' result := '#039#039';'#013#010+
- 'end;'#013#010+
- #013#010+
- 'constructor TSource.Create(ACollection: TCollection);'#013#010+
- 'begin'#013#010+
- ' inherited Create(ACollection);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'destructor TSource.Destroy;'#013#010+
- 'begin'#013#010+
- ' inherited Destroy;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TS','ource.GetInstallFiles(List: TStrings);'#013#010+
- 'begin'#013#010+
- ' if InstallSourcePath<>'#039#039' then'#013#010+
- ' list.Values[name] := (IncludeTrailingPathDelimiter(InstallSourcePa'+
- 'th)+ExtractFileName(Name))'#013#010+
- ' else'#013#010+
- ' list.add(Name);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{**********************','*********************************************'+
- '*********'#013#010+
- ' TCommands'#013#010+
+ 'fixB: String; ACPU: TCPU; AOS : TOS);'#010+
+ 'var'#010+
+ ' UnitsDir : string',';'#010+
+ 'begin'#010+
+ ' UnitsDir := Installer.BuildEngine.AddPathPrefix(nil, APrefixU);'#010+
+ ' If Not (TargetType in [ttProgram,ttExampleProgram]) and FileExists(U'+
+ 'nitsDir + ObjectFileName) then'#010+
+ ' // The compiler does not create an objectfile for all program','s.'#010+
+ ' List.Add(APrefixU + ObjectFileName);'#010+
+ ' If (TargetType in [ttUnit,ttImplicitUnit,ttExampleUnit]) then'#010+
+ ' begin'#010+
+ ' List.Add(APrefixU + UnitFileName);'#010+
+ ' if (AOS in AllSmartLinkLibraryOSes) and FileExists(UnitsDir + Ge'+
+ 'tUnitLibFil','eName(AOS)) then'#010+
+ ' List.Add(APrefixU + GetUnitLibFileName(AOS));'#010+
+ ' if (AOS in AllImportLibraryOSes) and FileExists(UnitsDir + GetIm'+
+ 'portLibFilename(AOS)) then'#010+
+ ' List.Add(APrefixU + GetImportLibFilename(AOS));'#010+
+ ' end'#010+
+ ' else I','f (TargetType in [ttProgram,ttExampleProgram]) then'#010+
+ ' List.Add(APrefixB + GetProgramFileName(AOS));'#010+
+ ' If ResourceStrings then'#010+
+ ' begin'#010+
+ ' // choose between 2 possible resource files'#010+
+ ' if FileExists(UnitsDir + RSJFileName) then'#010+
+ ' ',' List.Add(APrefixU + RSJFileName)'#010+
+ ' else'#010+
+ ' List.Add(APrefixU + RSTFileName);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TTarget.GetArchiveFiles(List: TStrings; ACPU: TCPU; AOS : TO'+
+ 'S);'#010+
+ 'var'#010+
+ ' i : integer;'#010+
+ ' D : TDependency;'#010+
+ 'begin'#010+
+ ' If not(ACPU i','n CPUs) or not(AOS in OSes) then'#010+
+ ' exit;'#010+
+ ' // Main source'#010+
+ ' if TargetSourceFileName<>'#039#039' then'#010+
+ ' List.Add(TargetSourceFileName);'#010+
+ ' // Includes'#010+
+ ' for i:=0 to Dependencies.Count-1 do'#010+
+ ' begin'#010+
+ ' D:=Dependencies[i];'#010+
+ ' if (D.Dependenc','yType=depInclude) and'#010+
+ ' (D.TargetFileName<>'#039#039') then'#010+
+ ' List.Add(D.TargetFileName);'#010+
+ ' end;'#010+
+ ' // FPDoc files'#010+
+ ' if XML <> '#039#039' then'#010+
+ ' begin'#010+
+ ' List.Add(Directory + Name + Extension);'#010+
+ ' List.Add(XML);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{*************','******************************************************'+
+ '*********'#010+
+ ' TSource'#010+
'**********************************************************************'+
- '******}'#013#010+
- #013#010+
- 'function TCommands.GetCommand(const Dest : String): TComman','d;'#013#010+
- 'begin'#013#010+
- ' Result:=TCommand(ItemByName(Dest));'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TCommands.GetCommandItem(Index : Integer): TCommand;'#013#010+
- 'begin'#013#010+
- ' Result:=TCommand(Items[Index]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TCommands.SetCommandItem(Index : Integer; const AValue: T','C'+
- 'ommand);'#013#010+
- 'begin'#013#010+
- ' Items[Index]:=AValue;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TCommands.AddCommand(const Cmd: String) : TCommand;'#013#010+
- 'begin'#013#010+
- ' Result:=AddCommand(fdefaultAt,Cmd,'#039#039','#039#039','#039#039');'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TCommands.AddCommand(const Cmd, Options: String): T','Command;'+
- #013#010+
- 'begin'#013#010+
- ' Result:=AddCommand(fdefaultAt,Cmd,Options,'#039#039','#039#039');'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ '******}'#010+
+ #010+
+ 'function TSource.GetInstallSourcePath: string;'#010+
+ 'begin'#010+
+ ' i','f FInstallSourcePath<>'#039#039' then'#010+
+ ' result := FInstallSourcePath'#010+
+ ' else if SourceType=stExample then'#010+
+ ' result := '#039'examples'#039#010+
+ ' else'#010+
+ ' result := '#039#039';'#010+
+ 'end;'#010+
+ #010+
+ 'constructor TSource.Create(ACollection: TCollection);'#010+
+ 'begin'#010+
+ ' inherited Create(AColle','ction);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'destructor TSource.Destroy;'#010+
+ 'begin'#010+
+ ' inherited Destroy;'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TSource.GetInstallFiles(List: TStrings);'#010+
+ 'begin'#010+
+ ' if InstallSourcePath<>'#039#039' then'#010+
+ ' list.Values[name] := (IncludeTrailingPathDelimiter(InstallSourcePa'+
+ 'th)+E','xtractFileName(Name))'#010+
+ ' else'#010+
+ ' list.add(Name);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{*********************************************************************'+
+ '*******'#010+
+ ' TCommands'#010+
+ '***************************************************************','*****'+
+ '********}'#010+
+ #010+
+ 'function TCommands.GetCommand(const Dest : String): TCommand;'#010+
+ 'begin'#010+
+ ' Result:=TCommand(ItemByName(Dest));'#010+
+ 'end;'#010+
+ #010+
+ 'function TCommands.GetCommandItem(Index : Integer): TCommand;'#010+
+ 'begin'#010+
+ ' Result:=TCommand(Items[Index]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'pro','cedure TCommands.SetCommandItem(Index : Integer; const AValue: TC'+
+ 'ommand);'#010+
+ 'begin'#010+
+ ' Items[Index]:=AValue;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TCommands.AddCommand(const Cmd: String) : TCommand;'#010+
+ 'begin'#010+
+ ' Result:=AddCommand(fdefaultAt,Cmd,'#039#039','#039#039','#039#039');'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function',' TCommands.AddCommand(const Cmd, Options: String): TCommand;'+
+ #010+
+ 'begin'#010+
+ ' Result:=AddCommand(fdefaultAt,Cmd,Options,'#039#039','#039#039');'#010+
+ 'end;'#010+
+ #010+
+ #010+
'function TCommands.AddCommand(const Cmd, Options, Dest, Source: String'+
- ' ): TCommand;'#013#010+
- 'begin'#013#010+
- ' Result:=AddCommand(fdefaultAt,Cmd,options,Dest,Source);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013,#010+
+ ' ): TCommand;'#010+
+ 'begin'#010+
+ ' Result:=AddCommand(fde','faultAt,Cmd,options,Dest,Source);'#010+
+ 'end;'#010+
+ #010+
+ #010+
'Function TCommands.AddCommand(At: TCommandAt; const Cmd: String) : TCo'+
- 'mmand;'#013#010+
- 'begin'#013#010+
- ' Result:=AddCommand(At,Cmd,'#039#039','#039#039','#039#039');'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TCommands.AddCommand(At: TCommandAt; const Cmd, Options: Stri'+
- 'ng ): TCommand;'#013#010+
- 'begin'#013#010+
- ' Result:','=AddCommand(At,Cmd,Options,'#039#039','#039#039');'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'mmand;'#010+
+ 'begin'#010+
+ ' Result:=AddCommand(At,Cmd,'#039#039','#039#039','#039#039');'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TCommands.AddCommand(At: TCommandAt; const Cmd, Options: Stri',
+ 'ng ): TCommand;'#010+
+ 'begin'#010+
+ ' Result:=AddCommand(At,Cmd,Options,'#039#039','#039#039');'#010+
+ 'end;'#010+
+ #010+
+ #010+
'function TCommands.AddCommand(At: TCommandAt; const Cmd, Options, Dest'+
- ', Source: String): TCommand;'#013#010+
- 'begin'#013#010+
- ' Result:=Add as TCommand;'#013#010+
- ' Result.Command:=Cmd;'#013#010+
- ' If (Options<>'#039#039') then'#013#010+
- ' Result','.ParseOptions(Options);'#013#010+
- ' Result.At:=At;'#013#010+
- ' Result.SourceFile:=Source;'#013#010+
- ' Result.DestFile:=Dest;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ ', Source: String): TCommand;'#010+
+ 'begin'#010+
+ ' Result:=Add as TCommand;'#010+
+ ' Result.Command:=Cmd;'#010+
+ ' If (Optio','ns<>'#039#039') then'#010+
+ ' Result.ParseOptions(Options);'#010+
+ ' Result.At:=At;'#010+
+ ' Result.SourceFile:=Source;'#010+
+ ' Result.DestFile:=Dest;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'{*********************************************************************'+
- '*******'#013#010+
- ' TConditionalString'#013#010+
- '*****','***************************************************************'+
- '********}'#013#010+
- #013#010+
- 'Constructor TConditionalString.Create;'#013#010+
- 'begin'#013#010+
- ' inherited Create;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ '*******'#010+
+ ' TCondition','alString'#010+
+ '**********************************************************************'+
+ '******}'#010+
+ #010+
+ 'Constructor TConditionalString.Create;'#010+
+ 'begin'#010+
+ ' inherited Create;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'{*********************************************************************'+
- '*******'#013#010+
- ' ',' TConditionalStrings'#013#010+
+ '*******'#010+
+ ' ',' TConditionalStrings'#010+
'**********************************************************************'+
- '******}'#013#010+
- #013#010+
+ '******}'#010+
+ #010+
'Constructor TConditionalStrings.Create(AClass:TConditionalStringClass)'+
- ';'#013#010+
- 'begin'#013#010+
- ' inherited Create;'#013#010+
- ' FCSClass:=AClas','s;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ ';'#010+
+ 'begin'#010+
+ ' inherited Create;'#010+
+ ' FCSClass:=AClass',';'#010+
+ 'end;'#010+
+ #010+
+ #010+
'function TConditionalStrings.GetConditionalString(Index : Integer): TC'+
- 'onditionalString;'#013#010+
- 'begin'#013#010+
- ' Result:=TConditionalString(Items[Index]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'onditionalString;'#010+
+ 'begin'#010+
+ ' Result:=TConditionalString(Items[Index]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
'procedure TConditionalStrings.SetConditionalString(Index : Integer; co'+
- 'nst A','Value: TConditionalString);'#013#010+
- 'begin'#013#010+
- ' Items[Index]:=AValue;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'nst AValue: TCon','ditionalString);'#010+
+ 'begin'#010+
+ ' Items[Index]:=AValue;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'Function TConditionalStrings.Add(Const Value : String) : TConditionalS'+
- 'tring;'#013#010+
- 'begin'#013#010+
- ' result:=Add(Value,AllCPUs,AllOSes);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{$ifdef cpu_only_overloads}'#013#010+
- 'Functi','on TConditionalStrings.Add(Const Value : String;const CPUs:TCP'+
- 'Us) : TConditionalString;'#013#010+
- 'begin'#013#010+
- ' result:=Add(Value,CPUs,AllOSes);'#013#010+
- 'end;'#013#010+
- '{$endif cpu_only_overloads}'#013#010+
- #013#010+
- #013#010+
- 'Function TConditionalStrings.Add(Const Value : String;const OSes:TOSe',
- 's) : TConditionalString;'#013#010+
- 'begin'#013#010+
- ' result:=Add(Value,AllCPUs,OSes);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 'tring;'#010+
+ 'begin'#010+
+ ' result:=Add(Value,AllCPUs,AllOSes);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{$ifdef cpu_only_overloads}'#010+
+ 'Function TConditionalStrings.A','dd(Const Value : String;const CPUs:TCP'+
+ 'Us) : TConditionalString;'#010+
+ 'begin'#010+
+ ' result:=Add(Value,CPUs,AllOSes);'#010+
+ 'end;'#010+
+ '{$endif cpu_only_overloads}'#010+
+ #010+
+ #010+
+ 'Function TConditionalStrings.Add(Const Value : String;const OSes:TOSes'+
+ ') : TConditionalString;'#010+
+ 'begin'#010,
+ ' result:=Add(Value,AllCPUs,OSes);'#010+
+ 'end;'#010+
+ #010+
+ #010+
'Function TConditionalStrings.Add(Const Value : String;const CPUs:TCPUs'+
- ';const OSes:TOSes) : TConditionalString;'#013#010+
- 'begin'#013#010+
- ' Result:=FCSClass.Create;'#013#010+
- ' Result.Value',':=Value;'#013#010+
- ' Result.OSes:=OSes;'#013#010+
- ' Result.CPUs:=CPUs;'#013#010+
- ' inherited Add(Result);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ ';const OSes:TOSes) : TConditionalString;'#010+
+ 'begin'#010+
+ ' Result:=FCSClass.Create;'#010+
+ ' Result.Value:=Value;'#010+
+ ' Result.OSes:=OSes;'#010+
+ ' Result.C','PUs:=CPUs;'#010+
+ ' inherited Add(Result);'#010+
+ 'end;'#010+
+ #010+
+ #010+
'{*********************************************************************'+
- '*******'#013#010+
- ' TDependency'#013#010+
- '**************************','******************************************'+
- '********}'#013#010+
- #013#010+
- 'Constructor TDependency.Create;'#013#010+
- 'begin'#013#010+
- ' inherited Create;'#013#010+
- ' FVersion:=TFPVersion.Create;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Destructor TDependency.Destroy;'#013#010+
- 'begin'#013#010+
- ' FreeAndNil(FVersion);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Functio','n TDependency.GetVersion : string;'#013#010+
- 'begin'#013#010+
- ' result:=FVersion.AsString;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Procedure TDependency.SetVersion(const V : string);'#013#010+
- 'begin'#013#010+
- ' FVersion.AsString:=V;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{*************************************************************','******'+
- '*********'#013#010+
- ' TDependencies'#013#010+
+ '*******'#010+
+ ' TDependency'#010+
'**********************************************************************'+
- '******}'#013#010+
- #013#010+
- 'function TDependencies.GetDependency(Index : Integer): TDependency;'#013+
- #010+
- 'begin'#013#010+
- ' Result:=TDependen','cy(Items[Index]);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TDependencies.SetDependency(Index : Integer; const AValue: T'+
- 'Dependency);'#013#010+
- 'begin'#013#010+
- ' Items[Index]:=AValue;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TDependencies.Add(Const Value : String) : TDependency;'#013#010+
- 'begin'#013#010+
- ' result:=Add','(Value,AllCPUs,AllOSes);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{$ifdef cpu_only_overloads}'#013#010+
- 'Function TDependencies.Add(Const Value : String;const CPUs:TCPUs) : TD'+
- 'ependency;'#013#010+
- 'begin'#013#010+
- ' result:=Add(Value,CPUs,AllOSes);'#013#010+
- 'end;'#013#010+
- '{$endif cpu_only_overloads}'#013#010+
- #013#010+
- #013#010+
- 'Function TD','ependencies.Add(Const Value : String;const OSes:TOSes) : '+
- 'TDependency;'#013#010+
- 'begin'#013#010+
- ' result:=Add(Value,AllCPUs,OSes);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ '*****','*}'#010+
+ #010+
+ 'Constructor TDependency.Create;'#010+
+ 'begin'#010+
+ ' inherited Create;'#010+
+ ' FVersion:=TFPVersion.Create;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Destructor TDependency.Destroy;'#010+
+ 'begin'#010+
+ ' FreeAndNil(FVersion);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TDependency.GetVersion : string;'#010+
+ 'begin'#010+
+ ' result:=FVersion.AsSt','ring;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Procedure TDependency.SetVersion(const V : string);'#010+
+ 'begin'#010+
+ ' FVersion.AsString:=V;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{*********************************************************************'+
+ '*******'#010+
+ ' TDependencies'#010+
+ '**************','******************************************************'+
+ '********}'#010+
+ #010+
+ 'function TDependencies.GetDependency(Index : Integer): TDependency;'#010+
+ 'begin'#010+
+ ' Result:=TDependency(Items[Index]);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TDependencies.SetDependency(Index : Integer; co','nst AValue:'+
+ ' TDependency);'#010+
+ 'begin'#010+
+ ' Items[Index]:=AValue;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TDependencies.Add(Const Value : String) : TDependency;'#010+
+ 'begin'#010+
+ ' result:=Add(Value,AllCPUs,AllOSes);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{$ifdef cpu_only_overloads}'#010+
+ 'Function TDependencies.Add(Const V','alue : String;const CPUs:TCPUs) : '+
+ 'TDependency;'#010+
+ 'begin'#010+
+ ' result:=Add(Value,CPUs,AllOSes);'#010+
+ 'end;'#010+
+ '{$endif cpu_only_overloads}'#010+
+ #010+
+ #010+
+ 'Function TDependencies.Add(Const Value : String;const OSes:TOSes) : TD'+
+ 'ependency;'#010+
+ 'begin'#010+
+ ' result:=Add(Value,AllCPUs,OS','es);'#010+
+ 'end;'#010+
+ #010+
+ #010+
'Function TDependencies.Add(Const Value : String;const CPUs:TCPUs;const'+
- ' OSes:TOSes) : TDependency;'#013#010+
- 'begin'#013#010+
- ' Result:=','inherited Add(Value,CPUs,OSes) as TDependency;'#013#010+
- ' Result.Target:=nil;'#013#010+
- ' Result.FDependencyType:=depPackage;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TDependencies.AddUnit(Const Value : String) : TDependency;'#013+
- #010+
- 'begin'#013#010+
- ' result:=AddUnit(Value,AllCPUs,AllOSes);'#013#010+
- 'e','nd;'#013#010+
- #013#010+
- #013#010+
- '{$ifdef cpu_only_overloads}'#013#010+
+ ' OSes:TOSes) : TDependency;'#010+
+ 'begin'#010+
+ ' Result:=inherited Add(Value,CPUs,OSes) as TDependency;'#010+
+ ' Result.Target:=nil;'#010+
+ ' Result.FDependencyType:=depPackage;'#010+
+ 'end;'#010+
+ #010+
+ #010,
+ 'Function TDependencies.AddUnit(Const Value : String) : TDependency;'#010+
+ 'begin'#010+
+ ' result:=AddUnit(Value,AllCPUs,AllOSes);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{$ifdef cpu_only_overloads}'#010+
'Function TDependencies.AddUnit(Const Value : String;const CPUs:TCPUs) '+
- ': TDependency;'#013#010+
- 'begin'#013#010+
- ' result:=AddUnit(Value,CPUs,AllOSes);'#013#010+
- 'end;'#013#010+
- '{$endif cpu_only_overloads}'#013#010+
- #013#010+
- #013#010+
- 'Function TDependencies.AddUnit','(Const Value : String;const OSes:TOSes'+
- ') : TDependency;'#013#010+
- 'begin'#013#010+
- ' result:=AddUnit(Value,AllCPUs,OSes);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TDependencies.AddUnit(Const Value : String;const CPUs:TCPUs;c'+
- 'onst OSes:TOSes) : TDependency;'#013#010+
- 'begin'#013#010+
- ' Result:=inherit','ed Add(Value,CPUs,OSes) as TDependency;'#013#010+
- ' Result.Target:=nil;'#013#010+
- ' Result.FDependencyType:=depUnit;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TDependencies.AddInclude(Const Value : String) : TDependency;'+
- #013#010+
- 'begin'#013#010+
- ' result:=AddInclude(Value,AllCPUs,AllOSes);'#013#010+
- 'end;'#013,#010+
- #013#010+
- #013#010+
- '{$ifdef cpu_only_overloads}'#013#010+
- 'Function TDependencies.AddInclude(Const Value : String;const CPUs:TCPU'+
- 's) : TDependency;'#013#010+
- 'begin'#013#010+
- ' result:=AddInclude(Value,CPUs,AllOSes);'#013#010+
- 'end;'#013#010+
- '{$endif cpu_only_overloads}'#013#010+
- #013#010+
- #013#010+
- 'Function TDependencies.AddIn','clude(Const Value : String;const OSes:TO'+
- 'Ses) : TDependency;'#013#010+
- 'begin'#013#010+
- ' result:=AddInclude(Value,AllCPUs,OSes);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ ': TDependency;'#010+
+ 'begi','n'#010+
+ ' result:=AddUnit(Value,CPUs,AllOSes);'#010+
+ 'end;'#010+
+ '{$endif cpu_only_overloads}'#010+
+ #010+
+ #010+
+ 'Function TDependencies.AddUnit(Const Value : String;const OSes:TOSes) '+
+ ': TDependency;'#010+
+ 'begin'#010+
+ ' result:=AddUnit(Value,AllCPUs,OSes);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TDependencies.AddU','nit(Const Value : String;const CPUs:TCPUs'+
+ ';const OSes:TOSes) : TDependency;'#010+
+ 'begin'#010+
+ ' Result:=inherited Add(Value,CPUs,OSes) as TDependency;'#010+
+ ' Result.Target:=nil;'#010+
+ ' Result.FDependencyType:=depUnit;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TDependencies.AddInclude(Cons','t Value : String) : TDependenc'+
+ 'y;'#010+
+ 'begin'#010+
+ ' result:=AddInclude(Value,AllCPUs,AllOSes);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ '{$ifdef cpu_only_overloads}'#010+
'Function TDependencies.AddInclude(Const Value : String;const CPUs:TCPU'+
- 's;const OSes:TOSes) : TDependency;'#013#010+
- 'Var'#013#010+
- ' N : St','ring;'#013#010+
- 'begin'#013#010+
- ' N:=FixPath(Value, False);'#013#010+
- ' if ExtractFileExt(N)='#039#039' then'#013#010+
- ' ChangeFileExt(N,IncExt);'#013#010+
- ' Result:=inherited Add(N,CPUs,OSes) as TDependency;'#013#010+
- ' Result.FDependencyType:=depInclude;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- '{*******************************','************************************'+
- '*********'#013#010+
- ' TValueItem'#013#010+
- '**********************************************************************'+
- '******}'#013#010+
- #013#010+
- 'constructor TValueItem.Create(AValue: String);'#013#010+
- 'begin'#013#010+
- ' FValue:=AVal','ue;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ 's) : TDependency;'#010+
+ 'begin'#010+
+ ' result:=AddInclude(Value,','CPUs,AllOSes);'#010+
+ 'end;'#010+
+ '{$endif cpu_only_overloads}'#010+
+ #010+
+ #010+
+ 'Function TDependencies.AddInclude(Const Value : String;const OSes:TOSe'+
+ 's) : TDependency;'#010+
+ 'begin'#010+
+ ' result:=AddInclude(Value,AllCPUs,OSes);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TDependencies.AddInclude(Const Value :',' String;const CPUs:TC'+
+ 'PUs;const OSes:TOSes) : TDependency;'#010+
+ 'Var'#010+
+ ' N : String;'#010+
+ 'begin'#010+
+ ' N:=FixPath(Value, False);'#010+
+ ' if ExtractFileExt(N)='#039#039' then'#010+
+ ' ChangeFileExt(N,IncExt);'#010+
+ ' Result:=inherited Add(N,CPUs,OSes) as TDependency;'#010+
+ ' Result.FDepende','ncyType:=depInclude;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'{*********************************************************************'+
- '*******'#013#010+
- ' TFunctionItem'#013#010+
+ '*******'#010+
+ ' TValueItem'#010+
'**********************************************************************'+
- '******}'#013#010+
- #013#010+
- 'constructor TFunctio','nItem.Create(AFunc: TReplaceFunction);'#013#010+
- 'begin'#013#010+
- ' FFunc:=AFunc;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
+ '******}'#010+
+ #010+
+ 'constructor T','ValueItem.Create(AValue: String);'#010+
+ 'begin'#010+
+ ' FValue:=AValue;'#010+
+ 'end;'#010+
+ #010+
+ #010+
'{*********************************************************************'+
- '*******'#013#010+
- ' TDictionary'#013#010+
- '*****************************************','***************************'+
- '********}'#013#010+
- #013#010+
- 'constructor TDictionary.Create(AOwner: TComponent);'#013#010+
- 'begin'#013#010+
- ' inherited Create(AOwner);'#013#010+
- ' FList:=TStringList.Create;'#013#010+
- ' FList.Sorted:=True;'#013#010+
- ' FList.Duplicates:=dupError;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'destructor TDicti','onary.Destroy;'#013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- 'begin'#013#010+
- ' For I:=0 to Flist.Count-1 do'#013#010+
- ' FList.Objects[i].Free;'#013#010+
- ' FreeAndNil(FList);'#013#010+
- ' inherited Destroy;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TDictionary.AddVariable(const AName, Value: String);'#013#010+
- 'Var'#013#010+
- ' I : Integer',';'#013#010+
- 'begin'#013#010+
- ' I:=Flist.IndexOf(AName);'#013#010+
- ' If I=-1 then'#013#010+
- ' I:=FList.Add(Aname)'#013#010+
- ' else'#013#010+
- ' Flist.Objects[i].Free;'#013#010+
- ' Flist.Objects[i]:=TValueItem.Create(Value);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TDictionary.AddFunction(const AName: String; FReplacement:',' '+
- 'TReplaceFunction);'#013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- 'begin'#013#010+
- ' I:=Flist.IndexOf(AName);'#013#010+
- ' If I=-1 then'#013#010+
- ' I:=Flist.Add(AName)'#013#010+
- ' else'#013#010+
- ' Flist.Objects[i].Free;'#013#010+
- ' Flist.Objects[i]:=TFunctionItem.Create(FReplacement);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'procedure TDictiona','ry.RemoveItem(const AName: String);'#013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- 'begin'#013#010+
- ' I:=Flist.IndexOf(AName);'#013#010+
- ' If (I<>-1) then'#013#010+
- ' begin'#013#010+
- ' FList.Objects[i].Free;'#013#010+
- ' FList.Delete(I);'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TDictionary.GetValue(AName: String): S','tring;'#013#010+
- 'begin'#013#010+
- ' Result:=GetValue(AName,'#039#039');'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TDictionary.GetValue(const AName,Args: String): String;'#013#010+
- 'Var'#013#010+
- ' O : TObject;'#013#010+
- ' I : Integer;'#013#010+
- 'begin'#013#010+
- ' I:=Flist.IndexOf(AName);'#013#010+
- ' If (I=-1) then'#013#010+
- ' Raise EDictionaryError.C','reateFmt(SErrNoDictionaryItem,[AName]);'#013+
- #010+
- ' O:=Flist.Objects[I];'#013#010+
- ' If O is TValueItem then'#013#010+
- ' Result:=TValueItem(O).FValue'#013#010+
- ' else'#013#010+
- ' Result:=TFunctionItem(O).FFunc(AName,Args);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TDictionary.ReplaceStrings(Const ASour','ce: String): String;'#013+
- #010+
- 'Var'#013#010+
- ' S,FN,FV : String;'#013#010+
- ' P: Integer;'#013#010+
- 'begin'#013#010+
- ' Result:='#039#039';'#013#010+
- ' S:=ASource;'#013#010+
- ' P:=Pos('#039'$('#039',S);'#013#010+
- ' While (P<>0) do'#013#010+
- ' begin'#013#010+
- ' Result:=Result+Copy(S,1,P-1);'#013#010+
- ' Delete(S,1,P+1);'#013#010+
- ' P:=Pos('#039')'#039',S);'#013#010+
- ' FN',':=Copy(S,1,P-1);'#013#010+
- ' Delete(S,1,P);'#013#010+
- ' P:=Pos('#039' '#039',FN);'#013#010+
- ' If (P<>0) then // function arguments ?'#013#010+
- ' begin'#013#010+
- ' FV:=FN;'#013#010+
- ' FN:=Copy(FN,1,P);'#013#010+
- ' System.Delete(FV,1,P);'#013#010+
- ' end'#013#010+
- ' else'#013#010+
- ' FV:='#039#039';',#013#010+
- ' Result:=Result+GetValue(FN,FV);'#013#010+
- ' P:=Pos('#039'$('#039',S);'#013#010+
- ' end;'#013#010+
- ' Result:=Result+S;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function TDictionary.Substitute(Const Source : String; Macros : Array '+
- 'of string) : String;'#013#010+
- 'Var'#013#010+
- ' I : Integer;'#013#010+
- 'begin'#013#010+
- ' I:=0;'#013#010+
- ' Whil','e I<High(Macros) do'#013#010+
- ' begin'#013#010+
- ' AddVariable(Macros[i],Macros[I+1]);'#013#010+
- ' Inc(I,2);'#013#010+
- ' end;'#013#010+
- ' Result:=ReplaceStrings(Source);'#013#010+
- ' While I<High(Macros) do'#013#010+
- ' begin'#013#010+
- ' RemoveItem(Macros[i]);'#013#010+
- ' Inc(I,2);'#013#010+
- ' end;'#013#010+
- 'end;'#013#010+
- #013#010,
+ '*******'#010+
+ ' TFunctionItem'#010+
+ '*****************************************************','***************'+
+ '********}'#010+
+ #010+
+ 'constructor TFunctionItem.Create(AFunc: TReplaceFunction);'#010+
+ 'begin'#010+
+ ' FFunc:=AFunc;'#010+
+ 'end;'#010+
+ #010+
'{*********************************************************************'+
- '*******'#013#010+
- ' Default Instances'#013#010+
+ '*******'#010+
+ ' TNotifyEventItem'#010+
+ '*****','***************************************************************'+
+ '********}'#010+
+ #010+
+ 'procedure TNotifyEventItem.CallEvent(Sender: TObject);'#010+
+ 'begin'#010+
+ ' if assigned(OnEvent) then'#010+
+ ' OnEvent(Sender);'#010+
+ ' if assigned(OnProcEvent) then'#010+
+ ' OnProcEvent(sender);',#010+
+ 'end;'#010+
+ #010+
+ '{*********************************************************************'+
+ '*******'#010+
+ ' TNotifyEventCollection'#010+
+ '**********************************************************************'+
+ '******}'#010+
+ #010+
+ 'constructor TNotifyEventCo','llection.create(ASupportedActionSet: TNoti'+
+ 'fyEventActionSet);'#010+
+ 'begin'#010+
+ ' FSupportedActionSet:=ASupportedActionSet;'#010+
+ ' inherited create(TNotifyEventItem);'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TNotifyEventCollection.AppendEvent(AnAction: TNotifyEventAct'+
+ 'ion; AnEvent: T','NotifyEvent);'#010+
+ 'var'#010+
+ ' item: TNotifyEventItem;'#010+
+ 'begin'#010+
+ ' if not (AnAction in FSupportedActionSet) then'#010+
+ ' raise Exception.Create(SErrEventNotSupported);'#010+
+ ' item := TNotifyEventItem(add);'#010+
+ ' item.OnEvent:=AnEvent;'#010+
+ ' item.OnAction:=AnAction;'#010+
+ 'end;'#010+
+ #010,
+ 'procedure TNotifyEventCollection.AppendProcEvent(AnAction: TNotifyEven'+
+ 'tAction; AnProcEvent: TNotifyProcEvent);'#010+
+ 'var'#010+
+ ' item: TNotifyEventItem;'#010+
+ 'begin'#010+
+ ' if not (AnAction in FSupportedActionSet) then'#010+
+ ' raise Exception.Create(SErrEventNotSuppor','ted);'#010+
+ ' item := TNotifyEventItem(add);'#010+
+ ' item.OnProcEvent:=AnProcEvent;'#010+
+ ' item.OnAction:=AnAction;'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TNotifyEventCollection.CallEvents(AnAction: TNotifyEventActi'+
+ 'on; Sender: TObject);'#010+
+ 'var'#010+
+ ' i: integer;'#010+
+ ' item: TNotifyEventItem;',#010+
+ 'begin'#010+
+ ' for i := 0 to Count-1 do'#010+
+ ' begin'#010+
+ ' item := TNotifyEventItem(Items[i]);'#010+
+ ' if item.OnAction=AnAction then'#010+
+ ' item.CallEvent(Sender);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ '{*********************************************************************',
+ '*******'#010+
+ ' TDictionary'#010+
'**********************************************************************'+
- '******}'#013#010+
- #013#010+
- 'var'#013#010+
- ' DefInstaller : TCusto','mInstaller;'#013#010+
- #013#010+
+ '******}'#010+
+ #010+
+ 'constructor TDictionary.Create(AOwner: TComponent);'#010+
+ 'begin'#010+
+ ' inherited Create(AOwner);'#010+
+ ' FList:=TStringList.C','reate;'#010+
+ ' FList.Sorted:=True;'#010+
+ ' FList.Duplicates:=dupError;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'destructor TDictionary.Destroy;'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ 'begin'#010+
+ ' For I:=0 to Flist.Count-1 do'#010+
+ ' FList.Objects[i].Free;'#010+
+ ' FreeAndNil(FList);'#010+
+ ' inherited Destroy;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure ','TDictionary.AddVariable(const AName, Value: String);'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ 'begin'#010+
+ ' I:=Flist.IndexOf(AName);'#010+
+ ' If I=-1 then'#010+
+ ' I:=FList.Add(Aname)'#010+
+ ' else'#010+
+ ' Flist.Objects[i].Free;'#010+
+ ' Flist.Objects[i]:=TValueItem.Create(Value);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure',' TDictionary.AddFunction(const AName: String; FReplacement:'+
+ ' TReplaceFunction);'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ 'begin'#010+
+ ' I:=Flist.IndexOf(AName);'#010+
+ ' If I=-1 then'#010+
+ ' I:=Flist.Add(AName)'#010+
+ ' else'#010+
+ ' Flist.Objects[i].Free;'#010+
+ ' Flist.Objects[i]:=TFunctionItem.Cr','eate(FReplacement);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'procedure TDictionary.RemoveItem(const AName: String);'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ 'begin'#010+
+ ' I:=Flist.IndexOf(AName);'#010+
+ ' If (I<>-1) then'#010+
+ ' begin'#010+
+ ' FList.Objects[i].Free;'#010+
+ ' FList.Delete(I);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TDict','ionary.GetValue(AName: String): String;'#010+
+ 'begin'#010+
+ ' Result:=GetValue(AName,'#039#039');'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TDictionary.GetValue(const AName,Args: String): String;'#010+
+ 'Var'#010+
+ ' O : TObject;'#010+
+ ' I : Integer;'#010+
+ 'begin'#010+
+ ' I:=Flist.IndexOf(AName);'#010+
+ ' If (I=-1) then'#010+
+ ' Rais','e EDictionaryError.CreateFmt(SErrNoDictionaryItem,[AName]);'#010+
+ ' O:=Flist.Objects[I];'#010+
+ ' If O is TValueItem then'#010+
+ ' Result:=TValueItem(O).FValue'#010+
+ ' else'#010+
+ ' Result:=TFunctionItem(O).FFunc(AName,Args);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TDictionary.ReplaceStrings(','Const ASource: String; Const Max'+
+ 'Depth: Integer = 10): String;'#010+
+ 'Var'#010+
+ ' S,FN,FV : String;'#010+
+ ' P: Integer;'#010+
+ 'begin'#010+
+ ' Result:='#039#039';'#010+
+ ' S:=ASource;'#010+
+ ' P:=Pos('#039'$('#039',S);'#010+
+ ' While (P<>0) do'#010+
+ ' begin'#010+
+ ' Result:=Result+Copy(S,1,P-1);'#010+
+ ' Delete(S,1,P+1);'#010+
+ ' ',' P:=Pos('#039')'#039',S);'#010+
+ ' FN:=Copy(S,1,P-1);'#010+
+ ' Delete(S,1,P);'#010+
+ ' P:=Pos('#039' '#039',FN);'#010+
+ ' If (P<>0) then // function arguments ?'#010+
+ ' begin'#010+
+ ' FV:=FN;'#010+
+ ' FN:=Copy(FN,1,P);'#010+
+ ' System.Delete(FV,1,P);'#010+
+ ' end'#010+
+ ' el','se'#010+
+ ' FV:='#039#039';'#010+
+ ' if MaxDepth > 0 then'#010+
+ ' Result:=Result+ReplaceStrings(GetValue(FN,FV), MaxDepth-1)'#010+
+ ' else'#010+
+ ' Result:=Result+GetValue(FN,FV);'#010+
+ ' P:=Pos('#039'$('#039',S);'#010+
+ ' end;'#010+
+ ' Result:=Result+S;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function TDictiona','ry.Substitute(Const Source : String; Macros : Arra'+
+ 'y of string) : String;'#010+
+ 'Var'#010+
+ ' I : Integer;'#010+
+ 'begin'#010+
+ ' I:=0;'#010+
+ ' While I<High(Macros) do'#010+
+ ' begin'#010+
+ ' AddVariable(Macros[i],Macros[I+1]);'#010+
+ ' Inc(I,2);'#010+
+ ' end;'#010+
+ ' Result:=ReplaceStrings(Source',');'#010+
+ ' While I<High(Macros) do'#010+
+ ' begin'#010+
+ ' RemoveItem(Macros[i]);'#010+
+ ' Inc(I,2);'#010+
+ ' end;'#010+
+ 'end;'#010+
+ #010+
+ '{*********************************************************************'+
+ '*******'#010+
+ ' Default Instances'#010+
+ '************','********************************************************'+
+ '********}'#010+
+ #010+
+ 'var'#010+
+ ' DefInstaller : TCustomInstaller;'#010+
+ #010+
'Function Installer(InstallerClass: TInstallerClass): TCustomInstaller;'+
- #013#010+
- 'begin'#013#010+
- ' If Not Assigned(DefInstaller) then'#013#010+
- ' DefInstaller:=InstallerClass.Create(Nil);'#013#010+
- ' Result:=DefInstaller;'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'Function Installer: TCusto','mInstaller;'#013#010+
- 'begin'#013#010+
- ' Result := Installer(TFPCInstaller);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- #013#010+
- '{ TCommand }'#013#010+
- #013#010+
- 'function TCommand.GetOptions: TStrings;'#013#010+
- 'begin'#013#010+
- ' If (FOptions=Nil) then'#013#010+
- ' FOptions:=TStringList.Create;'#013#010+
- ' Result:=FOptions;'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TComm','and.SetOptions(const Value: TStrings);'#013#010+
- 'begin'#013#010+
- ' If (Value=Nil) or (Value.Count=0) then'#013#010+
- ' FreeAndNil(FOptions)'#013#010+
- ' else'#013#010+
- ' Options.Assign(Value);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'destructor TCommand.Destroy;'#013#010+
- 'begin'#013#010+
- ' FreeAndNil(FOptions);'#013#010+
- ' inherited Destroy',';'#013#010+
- 'end;'#013#010+
- #013#010+
- 'function TCommand.HaveOptions: Boolean;'#013#010+
- 'begin'#013#010+
- ' Result:=(FOptions<>Nil);'#013#010+
- 'end;'#013#010+
- #013#010+
- #013#010+
- 'function TCommand.CmdLineOptions: String;'#013#010+
- 'begin'#013#010+
- ' If HaveOptions then'#013#010+
- ' Result:=OptionListToString(Options);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'procedure TCommand.P','arseOptions(S: String);'#013#010+
- #013#010+
- 'begin'#013#010+
- ' Options:=OptionsToStringList(S);'#013#010+
- 'end;'#013#010+
- #013#010+
- 'Initialization'#013#010+
- ' OnGetApplicationName:=@GetFPMakeName;'#013#010+
- ' CustomFpmakeCommandlineOptions:=nil;'#013#010+
- ' CustomFpMakeCommandlineValues:=nil;'#013#010+
- #013#010+
- 'Finalization'#013#010+
- ' FreeAndN','il(CustomFpMakeCommandlineValues);'#013#010+
- ' FreeAndNil(CustomFpmakeCommandlineOptions);'#013#010+
- ' FreeAndNil(DefInstaller);'#013#010+
- ' FreeAndNil(GlobalDictionary);'#013#010+
- ' FreeAndNil(Defaults);'#013#010+
- 'end.'#013#010
+ #010+
+ 'begin'#010+
+ ' If Not Assigned(DefInstaller) then'#010+
+ ' begin'#010+
+ ' try',#010+
+ ' DefInstaller:=InstallerClass.Create(Nil);'#010+
+ ' except'#010+
+ ' On E : Exception do'#010+
+ ' begin'#010+
+ ' if IsConsole then'#010+
+ ' begin'#010+
+ ' WriteLn(SErrInstaller);'#010+
+ ' WriteLn(E.Message);'#010+
+ ' ',' halt(1);'#010+
+ ' end'#010+
+ ' else'#010+
+ ' raise;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' end;'#010+
+ ' Result:=DefInstaller;'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'Function Installer: TCustomInstaller;'#010+
+ 'begin'#010+
+ ' Result := Installer(TFPCInstaller);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ #010+
+ '{ TComman','d }'#010+
+ #010+
+ 'function TCommand.GetOptions: TStrings;'#010+
+ 'begin'#010+
+ ' If (FOptions=Nil) then'#010+
+ ' FOptions:=TStringList.Create;'#010+
+ ' Result:=FOptions;'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TCommand.SetOptions(const Value: TStrings);'#010+
+ 'begin'#010+
+ ' If (Value=Nil) or (Value.Count=0) then'#010+
+ ' ',' FreeAndNil(FOptions)'#010+
+ ' else'#010+
+ ' Options.Assign(Value);'#010+
+ 'end;'#010+
+ #010+
+ 'destructor TCommand.Destroy;'#010+
+ 'begin'#010+
+ ' FreeAndNil(FOptions);'#010+
+ ' inherited Destroy;'#010+
+ 'end;'#010+
+ #010+
+ 'function TCommand.HaveOptions: Boolean;'#010+
+ 'begin'#010+
+ ' Result:=(FOptions<>Nil);'#010+
+ 'end;'#010+
+ #010+
+ #010+
+ 'function TCo','mmand.CmdLineOptions: String;'#010+
+ 'begin'#010+
+ ' If HaveOptions then'#010+
+ ' Result:=OptionListToString(Options);'#010+
+ 'end;'#010+
+ #010+
+ 'procedure TCommand.ParseOptions(S: String);'#010+
+ #010+
+ 'begin'#010+
+ ' Options:=OptionsToStringList(S);'#010+
+ 'end;'#010+
+ #010+
+ 'Initialization'#010+
+ ' OnGetApplicationName:=@Get','FPMakeName;'#010+
+ ' CustomFpmakeCommandlineOptions:=nil;'#010+
+ ' CustomFpMakeCommandlineValues:=nil;'#010+
+ #010+
+ 'Finalization'#010+
+ ' FreeAndNil(CustomFpMakeCommandlineValues);'#010+
+ ' FreeAndNil(CustomFpmakeCommandlineOptions);'#010+
+ ' FreeAndNil(DefInstaller);'#010+
+ ' FreeAndNil(Globa','lDictionary);'#010+
+ ' FreeAndNil(Defaults);'#010+
+ 'end.'#010+
+ #010
);
diff --git a/packages/fppkg/src/pkgcommands.pp b/packages/fppkg/src/pkgcommands.pp
index 9fc1bbea27..3af49eaa5e 100644
--- a/packages/fppkg/src/pkgcommands.pp
+++ b/packages/fppkg/src/pkgcommands.pp
@@ -5,7 +5,7 @@ unit pkgcommands;
interface
uses
- Classes, SysUtils,pkghandler;
+ Classes, SysUtils, pkghandler, fpmkunit;
implementation
@@ -16,6 +16,7 @@ uses
pkgoptions,
pkgdownload,
pkgrepos,
+ fpxmlrep,
fprepos;
type
@@ -82,6 +83,13 @@ type
Procedure Execute;override;
end;
+ { TCommandUnInstall }
+
+ TCommandUnInstall = Class(TPackagehandler)
+ Public
+ Procedure Execute;override;
+ end;
+
{ TCommandClean }
TCommandClean = Class(TPackagehandler)
@@ -120,6 +128,43 @@ type
var
DependenciesDepth: integer;
+{ TCommandUnInstall }
+
+procedure TCommandUnInstall.Execute;
+var
+ AvailP: TFPPackage;
+ APackage: TFPPackage;
+begin
+ if PackageName<>'' then
+ begin
+ if (PackageName=CmdLinePackageName) then
+ begin
+ ExecuteAction(PackageName,'unzip');
+ end
+ else if (PackageName<>CurrentDirPackageName) then
+ begin
+ AvailP:=AvailableRepository.FindPackage(PackageName);
+ if not assigned(AvailP) then
+ begin
+ APackage := InstalledRepository.FindPackage(PackageName);
+ if assigned(APackage) and (APackage.SourcePath<>'') then
+ begin
+ AvailP := AvailableRepository.AddPackage(PackageName);
+ AvailP.Assign(APackage);
+ // The package won't be recompiled, but should be handled as such.
+ AvailP.RecompileBroken:=true;
+ end
+ else
+ begin
+ // The package is not available locally, download and unzip it.
+ ExecuteAction(PackageName,'unzip');
+ end;
+ end;
+ end;
+ end;
+ ExecuteAction(PackageName,'fpmakeuninstall');
+end;
+
{ TCommandListSettings }
procedure TCommandListSettings.Execute;
@@ -279,9 +324,64 @@ end;
procedure TCommandInstall.Execute;
+
var
- UFN,S : String;
+ S : String;
P : TFPPackage;
+
+ function GetUnitConfigFilename: string;
+ begin
+ if P.RecompileBroken then
+ begin
+ // If the package is recompiled, the installation-location is dependent on where
+ // the package was installed originally.
+ if P.InstalledLocally then
+ Result:=CompilerOptions.LocalUnitDir
+ else
+ Result:=CompilerOptions.GlobalUnitDir;
+ // Setting RecompileBroken to false is in a strict sense not needed. But it is better
+ // to clean this temporary flag, to avoid problems with changes in the future
+ P.RecompileBroken := false;
+ AvailableRepository.FindPackage(P.Name).RecompileBroken:=false;
+ end
+ else
+ begin
+ if (IsSuperUser or GlobalOptions.InstallGlobal) then
+ Result:=CompilerOptions.GlobalUnitDir
+ else
+ Result:=CompilerOptions.LocalUnitDir;
+ end;
+ Result:=IncludeTrailingPathDelimiter(Result)+S+PathDelim+UnitConfigFileName;
+ end;
+
+ function GetFpmFilename: string;
+ begin
+ if P.RecompileBroken then
+ begin
+ // If the package is recompiled, the installation-location is dependent on where
+ // the package was installed originally.
+ if P.InstalledLocally then
+ Result:=CompilerOptions.LocalInstallDir
+ else
+ Result:=CompilerOptions.GlobalInstallDir;
+ // Setting RecompileBroken to false is in a strict sense not needed. But it is better
+ // to clean this temporary flag, to avoid problems with changes in the future
+ P.RecompileBroken := false;
+ AvailableRepository.FindPackage(P.Name).RecompileBroken:=false;
+ end
+ else
+ begin
+ if (IsSuperUser or GlobalOptions.InstallGlobal) then
+ Result:=CompilerOptions.GlobalInstallDir
+ else
+ Result:=CompilerOptions.LocalInstallDir;
+ end;
+ Result:=IncludeTrailingPathDelimiter(Result)+'fpmkinst'+PathDelim+CompilerOptions.CompilerTarget+PathDelim+s+FpmkExt;
+ end;
+
+
+var
+ UFN : String;
begin
if PackageName<>'' then
begin
@@ -301,27 +401,13 @@ begin
P:=InstalledRepository.FindPackage(S);
if not assigned(P) then
P:=InstalledRepository.AddPackage(S);
- if P.RecompileBroken then
- begin
- // If the package is recompiled, the installation-location is dependent on where
- // the package was installed originally.
- if P.InstalledLocally then
- UFN:=CompilerOptions.LocalUnitDir
- else
- UFN:=CompilerOptions.GlobalUnitDir;
- // Setting RecompileBroken to false is in a strict sense not needed. But it is better
- // to clean this temporary flag, to avoid problems with changes in the future
- P.RecompileBroken := false;
- AvailableRepository.FindPackage(P.Name).RecompileBroken:=false;
- end
- else
- begin
- if (IsSuperUser or GlobalOptions.InstallGlobal) then
- UFN:=CompilerOptions.GlobalUnitDir
- else
- UFN:=CompilerOptions.LocalUnitDir;
- end;
- UFN:=IncludeTrailingPathDelimiter(UFN)+S+PathDelim+UnitConfigFileName;
+
+ UFN:=GetFpmFilename;
+ // If there is no fpm-file, search for an (obsolete, pre-2.7.x)
+ // fpunits.cfg-file
+ if not FileExists(ufn) then
+ UFN:=GetUnitConfigFilename;
+
P.LoadUnitConfigFromFile(UFN);
if P.IsFPMakeAddIn then
AddFPMakeAddIn(P);
@@ -351,65 +437,93 @@ var
P,
InstalledP,
AvailP : TFPPackage;
+ PackNr: integer;
+ ManifestPackages : TFPPackages;
+ X : TFPXMLRepositoryHandler;
L : TStringList;
status : string;
- FreeManifest : boolean;
begin
if PackageName='' then
Error(SErrNoPackageSpecified);
- FreeManifest:=false;
+ ManifestPackages:=nil;
// Load dependencies for local packages
if (PackageName=CmdLinePackageName) or (PackageName=CurrentDirPackageName) then
begin
ExecuteAction(PackageName,'fpmakemanifest');
- P:=LoadManifestFromFile(ManifestFileName);
- FreeManifest:=true;
+ ManifestPackages:=TFPPackages.Create(TFPPackage);
+ X:=TFPXMLRepositoryHandler.Create;
+ try
+ X.LoadFromXml(ManifestPackages,ManifestFileName);
+ finally
+ X.Free;
+ end;
+ if ManifestPackages.Count>0 then
+ begin
+ PackNr:=0;
+ P := ManifestPackages[PackNr];
+ end
+ else
+ begin
+ ManifestPackages.Free;
+ Error(SErrManifestNoSinglePackage,[ManifestFileName]);
+ end;
end
else
P:=AvailableRepository.PackageByName(PackageName);
- // Find and List dependencies
+
MissingDependency:=nil;
- L:=TStringList.Create;
- for i:=0 to P.Dependencies.Count-1 do
+ while assigned(P) do
begin
- D:=P.Dependencies[i];
- if (CompilerOptions.CompilerOS in D.OSes) and
- (CompilerOptions.CompilerCPU in D.CPUs) then
+ // Find and List dependencies
+ L:=TStringList.Create;
+ for i:=0 to P.Dependencies.Count-1 do
begin
- InstalledP:=InstalledRepository.FindPackage(D.PackageName);
- // Need installation?
- if not assigned(InstalledP) or
- (InstalledP.Version.CompareVersion(D.MinVersion)<0) then
+ D:=P.Dependencies[i];
+ if not ((CompilerOptions.CompilerOS in D.OSes) and (CompilerOptions.CompilerCPU in D.CPUs)) then
+ Log(llDebug,SDbgPackageDependencyOtherTarget,[D.PackageName,MakeTargetString(CompilerOptions.CompilerCPU,CompilerOptions.CompilerOS)])
+ // Skip dependencies that are available within the fpmake-file itself
+ else if not (assigned(ManifestPackages) and assigned(ManifestPackages.FindPackage(D.PackageName))) then
begin
- AvailP:=AvailableRepository.FindPackage(D.PackageName);
- if not assigned(AvailP) or
- (AvailP.Version.CompareVersion(D.MinVersion)<0) then
+ InstalledP:=InstalledRepository.FindPackage(D.PackageName);
+ // Need installation?
+ if not assigned(InstalledP) or
+ (InstalledP.Version.CompareVersion(D.MinVersion)<0) then
begin
- status:='Not Available!';
- MissingDependency:=D;
+ AvailP:=AvailableRepository.FindPackage(D.PackageName);
+ if not assigned(AvailP) or
+ (AvailP.Version.CompareVersion(D.MinVersion)<0) then
+ begin
+ status:='Not Available!';
+ MissingDependency:=D;
+ end
+ else
+ begin
+ status:='Updating';
+ L.Add(D.PackageName);
+ end;
end
else
begin
- status:='Updating';
- L.Add(D.PackageName);
+ if PackageIsBroken(InstalledP, True) then
+ begin
+ status:='Broken, recompiling';
+ L.Add(D.PackageName);
+ end
+ else
+ status:='OK';
end;
+ Log(llInfo,SLogPackageDependency,
+ [D.PackageName,D.MinVersion.AsString,PackageInstalledVersionStr(D.PackageName),
+ PackageAvailableVersionStr(D.PackageName),status])
end
- else
- begin
- if PackageIsBroken(InstalledP, True) then
- begin
- status:='Broken, recompiling';
- L.Add(D.PackageName);
- end
- else
- status:='OK';
- end;
- Log(llInfo,SLogPackageDependency,
- [D.PackageName,D.MinVersion.AsString,PackageInstalledVersionStr(D.PackageName),
- PackageAvailableVersionStr(D.PackageName),status]);
+ end;
+ if assigned(ManifestPackages) and (PackNr<ManifestPackages.Count-1) then
+ begin
+ inc(PackNr);
+ P := ManifestPackages[PackNr]
end
else
- Log(llDebug,SDbgPackageDependencyOtherTarget,[D.PackageName,MakeTargetString(CompilerOptions.CompilerCPU,CompilerOptions.CompilerOS)]);
+ p := nil;
end;
// Give error on first missing dependency
if assigned(MissingDependency) then
@@ -429,8 +543,8 @@ begin
pkgglobals.Log(llProgres,SProgrDependenciesInstalled);
end;
FreeAndNil(L);
- if FreeManifest then
- FreeAndNil(P);
+ if assigned(ManifestPackages) then
+ ManifestPackages.Free;
end;
@@ -465,6 +579,7 @@ initialization
RegisterPkgHandler('compile',TCommandCompile);
RegisterPkgHandler('build',TCommandBuild);
RegisterPkgHandler('install',TCommandInstall);
+ RegisterPkgHandler('uninstall',TCommandUnInstall);
RegisterPkgHandler('clean',TCommandClean);
RegisterPkgHandler('archive',TCommandArchive);
RegisterPkgHandler('installdependencies',TCommandInstallDependencies);
diff --git a/packages/fppkg/src/pkgfpmake.pp b/packages/fppkg/src/pkgfpmake.pp
index 645b61aa0e..3bde08344d 100644
--- a/packages/fppkg/src/pkgfpmake.pp
+++ b/packages/fppkg/src/pkgfpmake.pp
@@ -15,7 +15,8 @@ uses
pkgoptions,
pkgglobals,
pkgmessages,
- pkgrepos;
+ pkgrepos,
+ fpxmlrep;
type
{ TFPMakeCompiler }
@@ -57,6 +58,12 @@ type
Procedure Execute;override;
end;
+ { TFPMakeRunnerUnInstall }
+
+ TFPMakeRunnerUnInstall = Class(TFPMakeRunner)
+ Public
+ Procedure Execute;override;
+ end;
{ TFPMakeRunnerClean }
@@ -269,6 +276,29 @@ Var
AddOption(Name+'='+Value);
end;
+ procedure ObtainSupportedTargetsFromManifest(p:TFPPackage);
+ var
+ X : TFPXMLRepositoryHandler;
+ ManifestPackages : TFPPackages;
+ i: integer;
+ begin
+ p.OSes:=[];
+ p.CPUs:=[];
+ ManifestPackages:=TFPPackages.Create(TFPPackage);
+ X:=TFPXMLRepositoryHandler.Create;
+ try
+ X.LoadFromXml(ManifestPackages,ManifestFileName);
+ for i := 0 to ManifestPackages.Count-1 do
+ begin
+ p.OSes:=p.OSes+ManifestPackages[i].OSes;
+ p.CPUs:=p.CPUs+ManifestPackages[i].CPUs;
+ end;
+ finally
+ X.Free;
+ ManifestPackages.Free;
+ end;
+ end;
+
begin
OOptions:='';
// Does the current package support this CPU-OS?
@@ -276,12 +306,7 @@ begin
begin
P:=AvailableRepository.PackageByName(PackageName);
if (PackageName=CurrentDirPackageName) and (FileExists(ManifestFileName)) then
- begin
- ManifestPackage:=LoadManifestFromFile(ManifestFileName);
- P.OSes:=ManifestPackage.OSes;
- P.CPUs:=ManifestPackage.CPUs;
- ManifestPackage.Free;
- end;
+ ObtainSupportedTargetsFromManifest(p);
end
else
P:=nil;
@@ -308,30 +333,33 @@ begin
end
else
begin
- AddOption('--nofpccfg');
- AddOption('--compiler='+CompilerOptions.Compiler);
- AddOption('--cpu='+CPUToString(CompilerOptions.CompilerCPU));
- AddOption('--os='+OSToString(CompilerOptions.CompilerOS));
if CompilerOptions.HasOptions then
AddOption('--options='+CompilerOptions.Options.DelimitedText);
- if IsSuperUser or GlobalOptions.InstallGlobal then
- begin
- CondAddOption('--prefix',CompilerOptions.GlobalPrefix);
- CondAddOption('--baseinstalldir',CompilerOptions.GlobalInstallDir);
- end
- else
- begin
- CondAddOption('--prefix',CompilerOptions.LocalPrefix);
- CondAddOption('--baseinstalldir',CompilerOptions.LocalInstallDir);
- end;
- CondAddOption('--localunitdir',CompilerOptions.LocalUnitDir);
- CondAddOption('--globalunitdir',CompilerOptions.GlobalUnitDir);
+
if GlobalOptions.CustomFPMakeOptions<>'' then
begin
AddOption('--ignoreinvalidoption');
AddOption(GlobalOptions.CustomFPMakeOptions);
end;
end;
+
+ AddOption('--nofpccfg');
+ AddOption('--compiler='+CompilerOptions.Compiler);
+ AddOption('--cpu='+CPUToString(CompilerOptions.CompilerCPU));
+ AddOption('--os='+OSToString(CompilerOptions.CompilerOS));
+ if IsSuperUser or GlobalOptions.InstallGlobal then
+ begin
+ CondAddOption('--prefix',CompilerOptions.GlobalPrefix);
+ CondAddOption('--baseinstalldir',CompilerOptions.GlobalInstallDir);
+ end
+ else
+ begin
+ CondAddOption('--prefix',CompilerOptions.LocalPrefix);
+ CondAddOption('--baseinstalldir',CompilerOptions.LocalInstallDir);
+ end;
+ CondAddOption('--localunitdir',CompilerOptions.LocalInstallDir);
+ CondAddOption('--globalunitdir',CompilerOptions.GlobalInstallDir);
+
{ Run FPMake }
FPMakeBin:='fpmake'+ExeExt;
SetCurrentDir(PackageBuildPath(P));
@@ -359,6 +387,12 @@ begin
end;
+procedure TFPMakeRunnerUnInstall.Execute;
+begin
+ RunFPMake('uninstall');
+end;
+
+
procedure TFPMakeRunnerClean.Execute;
begin
RunFPMake('clean');
@@ -382,6 +416,7 @@ initialization
RegisterPkgHandler('fpmakecompile',TFPMakeRunnerCompile);
RegisterPkgHandler('fpmakebuild',TFPMakeRunnerBuild);
RegisterPkgHandler('fpmakeinstall',TFPMakeRunnerInstall);
+ RegisterPkgHandler('fpmakeuninstall',TFPMakeRunnerUnInstall);
RegisterPkgHandler('fpmakeclean',TFPMakeRunnerClean);
RegisterPkgHandler('fpmakemanifest',TFPMakeRunnerManifest);
RegisterPkgHandler('fpmakearchive',TFPMakeRunnerArchive);
diff --git a/packages/fppkg/src/pkgrepos.pp b/packages/fppkg/src/pkgrepos.pp
index 62df53fa9d..28cd80f38b 100644
--- a/packages/fppkg/src/pkgrepos.pp
+++ b/packages/fppkg/src/pkgrepos.pp
@@ -154,7 +154,10 @@ begin
else
CurrentRemoteRepositoryURL:=GlobalOptions.RemoteRepository;
end;
- Result:=CurrentRemoteRepositoryURL+AFileName;
+ result := CurrentRemoteRepositoryURL;
+ if result[length(result)]<>'/' then
+ result := result + '/';
+ Result:=Result+CompilerOptions.CompilerVersion+'/'+AFileName;
end;
@@ -265,16 +268,48 @@ procedure FindInstalledPackages(ACompilerOptions:TCompilerOptions;showdups:boole
FindClose(SR);
end;
+ function CheckInstallDir(AInstallDir:string; const Local: boolean):boolean;
+ var
+ SR : TSearchRec;
+ P : TFPPackage;
+ UF : String;
+ begin
+ Result:=false;
+ AInstallDir:=IncludeTrailingPathDelimiter(AInstallDir)+'fpmkinst'+PathDelim+ACompilerOptions.CompilerTarget+PathDelim;
+ if FindFirst(IncludeTrailingPathDelimiter(AInstallDir)+PathDelim+'*'+FpmkExt,faDirectory,SR)=0 then
+ begin
+ log(llDebug,SLogFindInstalledPackages,[AInstallDir]);
+ repeat
+ if ((SR.Attr and faDirectory)=0) then
+ begin
+ // Try new .fpm-file
+ UF:=AInstallDir+SR.Name;
+ P:=AddInstalledPackage(ChangeFileExt(SR.Name,''),UF,Local);
+ P.LoadUnitConfigFromFile(UF);
+ if P.IsFPMakeAddIn then
+ AddFPMakeAddIn(P);
+ end;
+ until FindNext(SR)<>0;
+ end;
+ FindClose(SR);
+ end;
+
begin
if assigned(InstalledRepository) then
InstalledRepository.Free;
InstalledRepository:=GetDefaultRepositoryClass.Create(nil);
// First scan the global directory
// The local directory will overwrite the versions
- if ACompilerOptions.GlobalUnitDir<>'' then
- CheckUnitDir(ACompilerOptions.GlobalUnitDir, False);
- if ACompilerOptions.LocalUnitDir<>'' then
+ if ACompilerOptions.GlobalInstallDir<>'' then
+ begin
+ CheckUnitDir(ACompilerOptions.GlobalUnitDir, False);
+ CheckInstallDir(ACompilerOptions.GlobalInstallDir, False);
+ end;
+ if ACompilerOptions.LocalInstallDir<>'' then
+ begin
CheckUnitDir(ACompilerOptions.LocalUnitDir, True);
+ CheckInstallDir(ACompilerOptions.LocalInstallDir, True);
+ end;
end;
diff --git a/packages/fuse/Makefile b/packages/fuse/Makefile
index 9308b195be..eafd7deeb1 100644
--- a/packages/fuse/Makefile
+++ b/packages/fuse/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fuse
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fuse/Makefile.fpc b/packages/fuse/Makefile.fpc
index f41058f616..25b717b351 100644
--- a/packages/fuse/Makefile.fpc
+++ b/packages/fuse/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fuse
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fuse/Makefile.fpc.fpcmake b/packages/fuse/Makefile.fpc.fpcmake
index 9c3f3d146b..7d89c884d7 100644
--- a/packages/fuse/Makefile.fpc.fpcmake
+++ b/packages/fuse/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fuse
-version=2.7.1
+version=3.1.1
[target]
units=fuse
diff --git a/packages/fv/Makefile b/packages/fv/Makefile
index 0ea2ea38d0..35ec5cc9ae 100644
--- a/packages/fv/Makefile
+++ b/packages/fv/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fv
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fv/Makefile.fpc b/packages/fv/Makefile.fpc
index a7b1e25c89..d1b0d7d593 100644
--- a/packages/fv/Makefile.fpc
+++ b/packages/fv/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fv
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/fv/Makefile.fpc.fpcmake b/packages/fv/Makefile.fpc.fpcmake
index a0e7787c1b..48d797b38f 100644
--- a/packages/fv/Makefile.fpc.fpcmake
+++ b/packages/fv/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fv
-version=2.7.1
+version=3.1.1
[target]
units=buildfv
diff --git a/packages/fv/examples/Makefile b/packages/fv/examples/Makefile
index e65c86b9ea..ea1c7a3079 100644
--- a/packages/fv/examples/Makefile
+++ b/packages/fv/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=testapp
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=testapp
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=testapp
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=testapp
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=testapp
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=testapp
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=testapp
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=testapp
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=testapp
endif
@@ -610,6 +625,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=../src
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=../src
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=../src
endif
@@ -697,6 +715,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=../src
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=../src
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=../src
endif
@@ -751,6 +772,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_INCLUDEDIR+=../src
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_INCLUDEDIR+=../src
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_INCLUDEDIR+=../src
endif
@@ -1005,6 +1029,12 @@ 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=
@@ -1050,6 +1080,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1609,6 +1644,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FV=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
+REQUIRE_PACKAGES_FV=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1870,6 +1914,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FV=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
+REQUIRE_PACKAGES_FV=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2032,6 +2085,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FV=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
+REQUIRE_PACKAGES_FV=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2447,7 +2509,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2477,17 +2539,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/fv/fpmake.pp b/packages/fv/fpmake.pp
index ce804401fe..b7a03fade0 100644
--- a/packages/fv/fpmake.pp
+++ b/packages/fv/fpmake.pp
@@ -16,11 +16,11 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Leon De Boer and Pierre Mueller';
P.License := 'LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
- P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,win32,win64,os2,emx,netware,netwlibc,go32v2,morphos,aix];
+ P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,win32,win64,os2,emx,netware,netwlibc,go32v2,aix,dragonfly]+AllAmigaLikeOSes;
P.Email := '';
P.Description := 'Free Vision, a portable Turbo Vision clone.';
P.NeedLibC:= false;
@@ -29,6 +29,9 @@ begin
P.IncludePath.Add('src');
P.Dependencies.add('rtl-console');
P.Dependencies.add('rtl-extra');
+ P.Dependencies.add('morphunits',[morphos]);
+ P.Dependencies.add('arosunits',[aros]);
+ P.Dependencies.add('amunits',[amiga]);
T:=P.Targets.AddUnit('app.pas');
with T.Dependencies do
diff --git a/packages/fv/src/amismsg.inc b/packages/fv/src/amismsg.inc
index d790698e34..7b16a8eec1 100644
--- a/packages/fv/src/amismsg.inc
+++ b/packages/fv/src/amismsg.inc
@@ -102,6 +102,14 @@ begin
LastYSize:=height;
PollSystemEvent:=true;
end;
+ end else if Video.HasActiveWindow then begin
+ SystemEvent.typ:=SysSetFocus;
+ PutSystemEvent(SystemEvent);
+ PollSystemEvent:=true;
+ end else if Video.HasInactiveWindow then begin
+ SystemEvent.typ:=SysReleaseFocus;
+ PutSystemEvent(SystemEvent);
+ PollSystemEvent:=true;
end;
- end;
+ end;
end;
diff --git a/packages/fv/src/app.pas b/packages/fv/src/app.pas
index 876a6ddd01..46791d89a1 100644
--- a/packages/fv/src/app.pas
+++ b/packages/fv/src/app.pas
@@ -947,8 +947,14 @@ BEGIN
Drivers.GetMouseEvent(Event); { Load mouse event }
If (Event.What = evNothing) Then
begin
+{$IFNDEF HASAMIGA}
+ { due to isses with the event handling in FV itself,
+ we skip this here, and let the IDE to handle it
+ directly on Amiga-like systems. The FV itself cannot
+ handle the System Events anyway. (KB) }
Drivers.GetSystemEvent(Event); { Load system event }
If (Event.What = evNothing) Then
+{$ENDIF}
Idle; { Idle if no event }
end;
End;
diff --git a/packages/fv/src/asciitab.pas b/packages/fv/src/asciitab.pas
index dd5ee33ff3..b109e33247 100644
--- a/packages/fv/src/asciitab.pas
+++ b/packages/fv/src/asciitab.pas
@@ -306,7 +306,7 @@ end;
procedure TASCIIChart.HandleEvent(var Event:TEvent);
begin
- writeln(stderr,'ascii cmd',event.what, ' ', event.command);
+ {writeln(stderr,'ascii cmd',event.what, ' ', event.command);}
if (Event.what=evCommand) and
(Event.Command = AsciiTableCommandBase) then
begin
diff --git a/packages/fv/src/drivers.pas b/packages/fv/src/drivers.pas
index 87c00a3d4b..3977112739 100644
--- a/packages/fv/src/drivers.pas
+++ b/packages/fv/src/drivers.pas
@@ -94,7 +94,7 @@ USES
{$ENDIF}
{$IFDEF OS_AMIGA}
- doslib,
+ dos, amigados,
{$ENDIF}
video,
@@ -718,7 +718,9 @@ VAR
EventQueue : Array [0..EventQSize - 1] Of TEvent; { Event queue }
EventQLast : RECORD END; { Simple end marker }
StartupScreenMode : TVideoMode;
-
+ {$ifdef OS_AMIGA}
+ StartupTicks: Int64; // ticks at Startup for GetDOSTicks
+ {$endif}
{---------------------------------------------------------------------------}
{ GetDosTicks (18.2 Hz) }
{---------------------------------------------------------------------------}
@@ -769,8 +771,7 @@ var
{$ENDIF}
{$IFDEF OS_AMIGA}
begin
-{$WARNING FIXME: dummy implementation}
- GetDosTicks:=-1;
+ GetDosTicks:= ((dos.GetMsCount div 55) - StartupTicks) and $7FFFFFFF;
end;
{$ENDIF OS_AMIGA}
@@ -824,7 +825,8 @@ end;
{$IFDEF OS_AMIGA}
begin
{ AmigaOS Delay() wait's argument in 1/50 seconds }
- DOSLib.Delay(2);
+ { DOSDelay(2); // the old solution... }
+ Keyboard.WaitForSystemEvent(150);
end;
{$ENDIF OS_AMIGA}
@@ -1583,6 +1585,9 @@ END;
{ UNIT INITIALIZATION ROUTINE }
{***************************************************************************}
BEGIN
+{$IFDEF OS_AMIGA}
+ StartupTicks := (dos.GetMsCount div 55);
+{$ENDIF}
ButtonCount := DetectMouse; { Detect mouse }
DetectVideo; { Detect video }
{ InitKeyboard;}
diff --git a/packages/fv/src/platform.inc b/packages/fv/src/platform.inc
index abdaacb6ca..268528b8f2 100644
--- a/packages/fv/src/platform.inc
+++ b/packages/fv/src/platform.inc
@@ -420,6 +420,12 @@ FOR FPC THESE ARE THE TRANSLATIONS
{$ENDIF}
{$ENDIF}
+{ AROS has AmigaOS API, so define OS_AMIGA }
+{$IFDEF AROS}
+ {$UNDEF OS_DOS}
+ {$DEFINE OS_AMIGA}
+{$ENDIF}
+
{---------------------------------------------------------------------------}
{ FPC ATARI COMPILER changes op system and CPU type - Updated 27Aug98 LdB }
{---------------------------------------------------------------------------}
diff --git a/packages/fv/src/stddlg.pas b/packages/fv/src/stddlg.pas
index fe68432b6c..948916b82d 100644
--- a/packages/fv/src/stddlg.pas
+++ b/packages/fv/src/stddlg.pas
@@ -1292,7 +1292,11 @@ end;
function RelativePath(var S: PathStr): Boolean;
begin
S := LTrim(RTrim(S));
+ {$ifdef HASAMIGA}
+ RelativePath := Pos(DriveSeparator, S) = 0;
+ {$ELSE}
RelativePath := not ((S <> '') and ((S[1] = DirSeparator) or (S[2] = ':')));
+ {$ENDIF}
end;
{ try to reduce the length of S+dir as a file path+pattern }
@@ -1671,10 +1675,14 @@ var
{$ifdef Unix}
if Path=DirSeparator then Root:=true;
{$else}
+ {$ifdef HASAMIGA}
+ if Length(Path) > 0 then Root := Path[Length(Path)] = DriveSeparator;
+ {$else}
if (length(Path)=3) and (Upcase(Path[1]) in['A'..'Z']) and
(Path[2]=':') and (Path[3]=DirSeparator) then
Root:=true;
{$endif}
+ {$endif}
if (Root=false) and (copy(Path,length(Path),1)=DirSeparator) then
NormalizeDir:=copy(Path,1,length(Path)-1)
else
@@ -2165,7 +2173,12 @@ begin
CurDir := ''
else begin
CurDir := DirInput^.Data^;
- if (CurDir[Length(CurDir)] <> DirSeparator) then
+
+ if (CurDir[Length(CurDir)] <> DirSeparator)
+ {$IFDEF HASAMIGA}
+ and (CurDir[Length(CurDir)] <> DriveSeparator)
+ {$endif}
+ then
CurDir := CurDir + DirSeparator;
end;
end;
@@ -2391,7 +2404,11 @@ begin
ExtractDir := '';
Exit;
end;
- if D[Byte(D[0])] <> DirSeparator then
+ if (D[Byte(D[0])] <> DirSeparator)
+ {$ifdef HASAMIGA}
+ and (D[Byte(D[0])] <> DriveSeparator)
+ {$endif}
+ then
D := D + DirSeparator;
ExtractDir := D;
end;
@@ -2474,7 +2491,11 @@ begin
{$ifdef Unix}
Is:=(S=DirSeparator); { handle root }
{$else}
+ {$ifdef HASAMIGA}
+ Is := (Length(S) > 0) and (S[Length(S)] = DriveSeparator);
+ {$else}
Is:=(length(S)=3) and (Upcase(S[1]) in['A'..'Z']) and (S[2]=':') and (S[3]=DirSeparator);
+ {$endif}
{ handle root dirs }
{$endif}
if Is=false then
@@ -2714,7 +2735,11 @@ begin
if (i = 0) then
AFile := AFile + D1
else AFile := AFile + Copy(D1,Succ(i),Length(D1)-i);
- if AFile[Length(AFile)] <> DirSeparator then
+ if (AFile[Length(AFile)] <> DirSeparator)
+ {$ifdef HASAMIGA}
+ and (AFile[Length(AFile)] <> DriveSeparator)
+ {$endif}
+ then
AFile := AFile + DirSeparator;
if Length(AFile)+Length(N1)+Length(E1) <= MaxLen then
AFile := AFile + N1 + E1
diff --git a/packages/fv/src/sysmsg.pas b/packages/fv/src/sysmsg.pas
index 4ed731f105..010b0f26b4 100644
--- a/packages/fv/src/sysmsg.pas
+++ b/packages/fv/src/sysmsg.pas
@@ -90,6 +90,10 @@ implementation
{$i amismsg.inc}
{$define HAS_SYSMSG}
{$endif morphos}
+{$ifdef aros}
+{$i amismsg.inc}
+{$define HAS_SYSMSG}
+{$endif aros}
{$ifdef HAS_SYSMSG}
diff --git a/packages/gdbint/Makefile b/packages/gdbint/Makefile
index b56fe82fb5..84c3fe3525 100644
--- a/packages/gdbint/Makefile
+++ b/packages/gdbint/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=gdbint
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/gdbint/Makefile.fpc b/packages/gdbint/Makefile.fpc
index 7342f5c973..587fc685cb 100644
--- a/packages/gdbint/Makefile.fpc
+++ b/packages/gdbint/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=gdbint
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/gdbint/Makefile.fpc.fpcmake b/packages/gdbint/Makefile.fpc.fpcmake
index f65f340a9b..e3c694fd00 100644
--- a/packages/gdbint/Makefile.fpc.fpcmake
+++ b/packages/gdbint/Makefile.fpc.fpcmake
@@ -5,7 +5,7 @@
[package]
name=gdbint
-version=2.7.1
+version=3.1.1
[target]
units=gdbint gdbcon
diff --git a/packages/gdbint/fpmake.pp b/packages/gdbint/fpmake.pp
index 7270a8f6cc..0dfcf08719 100644
--- a/packages/gdbint/fpmake.pp
+++ b/packages/gdbint/fpmake.pp
@@ -16,7 +16,7 @@ var
P : TPackage;
GdbLibDir, GdbLibFile: string;
GdbLibFound: boolean;
- GdbVerTarget: TTarget;
+ GdbintTarget, GdbVerTarget: TTarget;
begin
P := Sender as TPackage;
// Search for a libgdb file.
@@ -60,17 +60,31 @@ begin
end;
GdbVerTarget:=TTarget(p.Targets.ItemByName('gdbver'));
+ GdbintTarget:=TTarget(p.Targets.ItemByName('gdbint'));
if GdbLibFound then
Installer.BuildEngine.Log(vlCommand,'File libgdb.a found ('+GdbLibFile+')')
else
Installer.BuildEngine.Log(vlCommand,'File libgdb.a not found');
- // When we're cross-compiling, running the gdbver executable to detect the
- // gdb-version is not possible, unless a i386-win32 to i386-go32v2 compilation
- // is performed.
- if GdbLibFound and
- (not Defaults.IsBuildDifferentFromTarget
- or ((Defaults.CPU=i386) and (Defaults.OS=go32v2) and (Defaults.BuildOS=win32) and (Defaults.BuildCPU=i386))) then
+ if GdbLibFound then
+ begin
+ // Detect if gdblib.inc is available
+ if FileExists(GDBLibDir+PathDelim+'gdblib.inc') then
+ begin
+ P.Options.Add('-dUSE_GDBLIBINC');
+ P.Options.Add('-Fi'+GdbLibDir);
+ P.Options.Add('-Fl'+GdbLibDir);
+ // No need to use gdbver in this case
+ p.Targets.Delete(GdbVerTarget.Index);
+ Installer.BuildEngine.Log(vlCommand,'Using gdblib.inc include file')
+ end
+ // When we're cross-compiling, running the gdbver executable to detect the
+ // gdb-version is not possible, unless a i386-win32 to
+ // i386-go32v2 compilation is performed.
+ else if (not Defaults.IsBuildDifferentFromTarget
+ or ((Defaults.CPU=i386) and (Defaults.OS=go32v2) and
+ (Defaults.BuildOS=win32) and (Defaults.BuildCPU=i386))
+ ) then
begin
P.Options.Add('-Fl'+GdbLibDir);
Installer.BuildEngine.CreateOutputDir(p);
@@ -81,6 +95,8 @@ begin
AddProgramExtension('gdbver',Defaults.BuildOS),'-o ' +
Installer.BuildEngine.AddPathPrefix(p,'src'+PathDelim+'gdbver.inc'));
+ with GdbintTarget.Dependencies do
+ AddInclude('gdbver.inc');
// Pass -dUSE_MINGW_GDB to the compiler when a MinGW gdb is used
if FileExists(GdbLibDir+PathDelim+MinGWGdbLibName) then
begin
@@ -91,13 +107,7 @@ begin
begin
Installer.BuildEngine.Log(vlCommand,'Using GDB')
end;
- // Detect if gdblib.inc is available
- if FileExists(GDBLibDir+PathDelim+'gdblib.inc') then
- begin
- P.Options.Add('-dUSE_GDBLIBINC');
- P.Options.Add('-Fi'+GdbLibDir);
- Installer.BuildEngine.Log(vlCommand,'Using gdblib.inc include file')
- end;
+ end
end
else
begin
@@ -108,10 +118,12 @@ begin
L := TStringList.Create;
try
if P.Directory<>'' then
- L.values[Installer.BuildEngine.AddPathPrefix(P,'src')+DirectorySeparator+'gdbver_nogdb.inc'] := IncludeTrailingPathDelimiter(P.Directory) +'src'+DirectorySeparator+'gdbver.inc'
+ L.values['src'+DirectorySeparator+'gdbver_nogdb.inc'] := IncludeTrailingPathDelimiter(P.Directory) +'src'+DirectorySeparator+'gdbver.inc'
else
- L.values[Installer.BuildEngine.AddPathPrefix(P,'src')+DirectorySeparator+'gdbver_nogdb.inc'] := 'src'+DirectorySeparator+'gdbver.inc';
- Installer.BuildEngine.cmdcopyfiles(L, Installer.BuildEngine.StartDir);
+ L.values['src'+DirectorySeparator+'gdbver_nogdb.inc'] := 'src'+DirectorySeparator+'gdbver.inc';
+ Installer.BuildEngine.cmdcopyfiles(L, Installer.BuildEngine.StartDir, nil);
+ with GdbintTarget.Dependencies do
+ AddInclude('gdbver.inc');
finally
L.Free;
end;
@@ -142,8 +154,9 @@ begin
With Installer do
begin
P:=AddPackage('gdbint');
+ P.ShortName:='gdb';
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library : Cygnus, header: Peter Vreman';
P.License := 'Library: GPL2 or later, header: LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
@@ -154,7 +167,7 @@ begin
// file within the BeforeCompile event.
P.SupportBuildModes:= [bmOneByOne];
- P.OSes:=[beos,haiku,freebsd,netbsd,openbsd,linux,win32,win64,go32v2];
+ P.OSes:=[aix,beos,haiku,freebsd,netbsd,openbsd,linux,win32,win64,go32v2,dragonfly];
P.SourcePath.Add('src');
P.IncludePath.Add('src');
@@ -162,7 +175,8 @@ begin
P.BeforeCompileProc:=@BeforeCompile_gdbint;
P.AfterCompileProc:=@AfterCompile_gdbint;
- p.Targets.AddProgram('src'+PathDelim+'gdbver.pp');
+ T := p.Targets.AddProgram('src'+PathDelim+'gdbver.pp');
+ T.Install := false;
//
// NOTE: the gdbver.inc dependancies gives warnings because the makefile.fpc
// does a "cp src/gdbver_nogdb.inc src/gdbver.inc" to create it
@@ -173,13 +187,10 @@ begin
AddUnit('gdbint');
end;
T:=P.Targets.AddUnit('gdbint.pp');
- with T.Dependencies do
- begin
- AddInclude('gdbver.inc');
- end;
- P.ExamplePath.add('tests');
+ P.ExamplePath.add('examples');
P.Targets.AddExampleProgram('testgdb.pp');
- P.Targets.AddExampleProgram('simify.pp');
+ P.Targets.AddExampleProgram('symify.pp');
+ P.Targets.AddExampleUnit('mingw.pas');
end;
end;
diff --git a/packages/gdbint/gen-gdblib-inc.sh b/packages/gdbint/gen-gdblib-inc.sh
index 6d533a1053..5d402fee1b 100755
--- a/packages/gdbint/gen-gdblib-inc.sh
+++ b/packages/gdbint/gen-gdblib-inc.sh
@@ -145,6 +145,13 @@ if [ "${1#libdir=}" != "$1" ]; then
echo "libdir is set to \"$libdir\""
opt_handled=1
fi
+
+if [ "${1//=/ }" != "$1" ]; then
+ # Some variable set explicitly
+ echo "Evaluating $1"
+ export $1
+ opt_handled=1
+fi
}
# Try to handle all command line options
@@ -188,7 +195,7 @@ cat > gdb_get_stdin.c <<EOF
FILE * gdb_get_stdin (void);
FILE *
-gdb_get_stdin ()
+gdb_get_stdin (void)
{
return stdin;
}
@@ -380,6 +387,15 @@ END {
chmod u+x ./copy-libs.sh
# For later
+# Check if mingw executable contains
+# __cpu_features_init function
+has_cpu_features_init=`objdump -t gdb.exe | grep cpu_features_init `
+if [ "X$has_cpu_features_init" == "X" ] ; then
+ mingw_no_cpu_features_init=1
+else
+ mingw_no_cpu_features_init=0
+fi
+
echo Creating ./gdblib.inc file
# Generate gdblib.inc file
cat comp-cmd.log |${AWK} -v gdbcvs=${gdbcvs} \
@@ -387,6 +403,7 @@ cat comp-cmd.log |${AWK} -v gdbcvs=${gdbcvs} \
-v gdbversion=${gdbversion} -v forcestatic=${forcestatic} \
-v force64bitcoreaddr=${force64bitcoreaddr} \
-v has_get_stdin=${has_get_stdin} \
+ -v mingw_no_cpu_features_init=${mingw_no_cpu_features_init} \
-v add_libgdb=${add_libgdb} '
BEGIN {
use_mingw=0;
@@ -467,6 +484,9 @@ END {
print "{$undef NotImplemented}"
if ( use_mingw == 1 ) {
print "{$define USE_MINGW_GDB}"
+ if ( mingw_no_cpu_features_init == 1 ) {
+ print "{$define DISABLE_CPU_FEATURES_INIT}"
+ }
}
if ( has_get_stdin == 1 ) {
print "{$define LIBGDB_HAS_GET_STDIN}"
diff --git a/packages/gdbint/src/gdbint.pp b/packages/gdbint/src/gdbint.pp
index e69e9a238a..396d23dc89 100644
--- a/packages/gdbint/src/gdbint.pp
+++ b/packages/gdbint/src/gdbint.pp
@@ -59,6 +59,30 @@ interface
{$undef GDB_VERSION_RECOGNIZED}
+{ 7.9.x }
+{$ifdef GDB_V709}
+ {$info using gdb 7.9.x}
+ {$define GDB_VERSION_RECOGNIZED}
+ {$define GDB_VER_GE_709}
+{$endif}
+
+{$ifdef GDB_VER_GE_709}
+ {$define GDB_VER_GE_708}
+{$endif}
+
+{ 7.8.x }
+{$ifdef GDB_V708}
+ {$info using gdb 7.8.x}
+ {$define GDB_VERSION_RECOGNIZED}
+ {$define GDB_VER_GE_708}
+{$endif}
+
+{$ifdef GDB_VER_GE_708}
+ {$define USE_CATCH_EXCEPTIONS}
+ {$define USE_LOCAL_SET_GDB_DATA_DIRECTORY}
+ {$define GDB_VER_GE_707}
+{$endif}
+
{ 7.7.x }
{$ifdef GDB_V707}
{$info using gdb 7.7.x}
@@ -78,6 +102,7 @@ interface
{$endif}
{$ifdef GDB_VER_GE_706}
+ {$define GDB_UI_FILE_HAS_FSEEK}
{$define GDB_VER_GE_705}
{$endif}
@@ -227,7 +252,7 @@ interface
{$define GDB_USES_BP_LOCATION}
{$define GDB_NEEDS_NO_ERROR_INIT}
{$define GDB_USES_EXPAT_LIB}
- {$define GDB_HAS_DEBUG_FILE_DIRECTORY}
+ {Official 6.6 release doesn't have GDB_HAS_DEBUG_FILE_DIRECTORY}
{$endif def GDB_V606}
{ 6.5.x }
@@ -366,6 +391,41 @@ interface
{$LINKLIB gcc}
{$endif linux}
+{$ifdef dragonfly}
+{$ifdef NotImplemented}
+ {$linklib kvm}
+ {$undef NotImplemented}
+ {$LINKLIB libgdb.a}
+ {$ifdef GDB_HAS_SIM}
+ {$LINKLIB libsim.a}
+ {$endif GDB_HAS_SIM}
+ {$LINKLIB libbfd.a}
+ {$LINKLIB libreadline.a}
+ {$LINKLIB libopcodes.a}
+ {$LINKLIB libhistory.a}
+ {$LINKLIB libiberty.a}
+ {$LINKLIB libgnu.a}
+ {$LINKLIB ncurses}
+ {$LINKLIB z}
+ {$LINKLIB m}
+ {$LINKLIB iberty}
+ {$ifndef GDB_DISABLE_INTL}
+ {$LINKLIB intl}
+ {$endif ndef GDB_DISABLE_INTL}
+ {$ifdef GDB_USES_LIBDECNUMBER}
+ {$LINKLIB decnumber}
+ {$endif GDB_USES_LIBDECNUMBER}
+ {$ifdef GDB_USES_EXPAT_LIB}
+ {$LINKLIB expat}
+ {$endif GDB_USES_EXPAT_LIB}
+ {$ifdef GDB_USES_LIBPYTHON}
+ {$LINKLIB python}
+ {$endif GDB_USES_LIBPYTHON}
+{$endif NotImplemented}
+ {$LINKLIB c}
+ {$LINKLIB gcc}
+{$endif freebsd}
+
{$ifdef freebsd}
{$ifdef NotImplemented}
{$ifdef FreeBSD5} //5.4+ ?
@@ -631,6 +691,11 @@ interface
{$LINKLIB gcc}
{$endif beos}
+{$ifdef aix}
+ { AIX linker requires more precise external/public separation }
+ {$define NEED_EXTERNAL_CVAR}
+ {$undef NotImplemented}
+{$endif aix}
{$ifdef go32v2}
{$define supportexceptions}
@@ -710,6 +775,9 @@ type
{$ifdef GDB_V6}
ui_file_read_ftype = function (stream : pui_file; buffer : pchar; len : longint):longint;cdecl;
{$endif}
+ {$ifdef GDB_UI_FILE_HAS_FSEEK}
+ ui_file_fseek_ftype = function (stream : pui_file; offset : longint{clong}; whence : longint {cint}) : longint{cint};cdecl;
+ {$endif GDB_UI_FILE_HAS_FSEEK}
ui_file = record
magic : plongint;
@@ -726,6 +794,9 @@ type
to_isatty : ui_file_isatty_ftype;
to_rewind : ui_file_rewind_ftype;
to_put : ui_file_put_ftype;
+ {$ifdef GDB_UI_FILE_HAS_FSEEK}
+ to_fseek : ui_file_fseek_ftype;
+ {$endif GDB_UI_FILE_HAS_FSEEK}
to_data : pointer;
end;
@@ -901,6 +972,8 @@ var
var
cli_uiout : ui_out;cvar;external;
current_uiout : ui_out;cvar;external;
+ { out local copy for catch_exceptions call }
+ our_uiout : ui_out;
{$endif GDB_NO_UIOUT}
function cli_out_new (stream : pui_file):ui_out;cdecl;external;
{$endif GDB_V6}
@@ -1217,6 +1290,8 @@ type
explicit_line : longint;
{ New field added in GDB 7.5 version }
probe : pointer;{struct probe *probe; }
+ { New field added in GDB 7.8? version }
+ objfile : pointer; { struct objfile * }
end;
symtabs_and_lines = record
@@ -1672,7 +1747,8 @@ var
{ external variables }
error_return : jmp_buf;cvar;public;
quit_return : jmp_buf;cvar;public;
- deprecated_query_hook : pointer;cvar;public;
+ deprecated_query_hook : pointer;cvar;
+{$ifdef NEED_EXTERNAL_CVAR}external;{$else}public;{$endif}
{$ifndef GDB_HAS_OBSERVER_NOTIFY_BREAKPOINT_CREATED}
{$ifdef GDB_HAS_DEPRECATED_CBPH}
@@ -2879,6 +2955,16 @@ end;
var
top_level_val : longint;
+{$ifdef USE_CATCH_EXCEPTIONS}
+function catch_exceptions(uiout : ui_out; func : pointer; command : pchar; mask : longint) : longint;cdecl;external;
+
+function gdbint_execute_command(uiout : ui_out; command : pchar) : longint;cdecl;
+begin
+ gdbint_execute_command:=1;
+ execute_command(command,1);
+ gdbint_execute_command:=0;
+end;
+{$else not USE_CATCH_EXCEPTIONS}
function catch_command_errors(func : pointer; command : pchar; from_tty,mask : longint) : longint;cdecl;external;
function gdbint_execute_command(command : pchar; from_tty : longint) : longint;cdecl;
@@ -2887,6 +2973,7 @@ begin
execute_command(command,from_tty);
gdbint_execute_command:=0;
end;
+{$endif not USE_CATCH_EXCEPTIONS}
{$ifdef cpui386}
type
@@ -2988,8 +3075,12 @@ begin
begin
quit_return:=error_return;
mask:=longint($ffffffff);
+{$ifdef USE_CATCH_EXCEPTIONS}
+ catch_exceptions(our_uiout, @gdbint_execute_command,@command,mask);
+{$else i.e. not USE_CATCH_EXCEPTIONS}
catch_command_errors(@gdbint_execute_command,@command,
1,mask);
+{$endif not def USE_CATCH_EXCEPTIONS}
{$ifdef go32v2}
reload_fs;
{$endif go32v2}
@@ -3429,6 +3520,7 @@ begin
{$ifdef GDB_NO_UIOUT}
cli_uiout := cli_out_new (gdb_stdout);
current_uiout:=cli_uiout;
+ our_uiout:=cli_uiout;
{$endif GDB_NO_UIOUT}
{$endif GDB_NEEDS_INTERPRETER_SETUP}
{$ifdef supportexceptions}
@@ -3490,6 +3582,15 @@ var
debug_file_directory : pchar; cvar; external;
{$endif GDB_HAS_DEBUG_FILE_DIRECTORY}
+{$ifdef USE_LOCAL_SET_GDB_DATA_DIRECTORY}
+{ Avoid loading of main.o object by providing a
+ stripped down version of relocate_gdb_directory function }
+procedure set_gdb_data_directory(path : pchar); cdecl; public;
+begin
+ gdb_datadir:=path;
+end;
+{$endif USE_LOCAL_SET_GDB_DATA_DIRECTORY}
+
begin
{$ifdef GDB_HAS_SYSROOT}
gdb_sysrootc := #0;
diff --git a/packages/gdbm/Makefile b/packages/gdbm/Makefile
index 6595d293e3..f2d46496fc 100644
--- a/packages/gdbm/Makefile
+++ b/packages/gdbm/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=gdbm
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/gdbm/Makefile.fpc b/packages/gdbm/Makefile.fpc
index 0425e1da14..6073bef09e 100644
--- a/packages/gdbm/Makefile.fpc
+++ b/packages/gdbm/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=gdbm
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/gdbm/Makefile.fpc.fpcmake b/packages/gdbm/Makefile.fpc.fpcmake
index 094390ca4a..6d5bb32a0c 100644
--- a/packages/gdbm/Makefile.fpc.fpcmake
+++ b/packages/gdbm/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=gdbm
-version=2.7.1
+version=3.1.1
[target]
units=gdbm
diff --git a/packages/gdbm/examples/Makefile b/packages/gdbm/examples/Makefile
index cfd4d3381c..2f4edbb6c1 100644
--- a/packages/gdbm/examples/Makefile
+++ b/packages/gdbm/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=testgdbm testgdbm2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=testgdbm testgdbm2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=testgdbm testgdbm2
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=testgdbm testgdbm2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=testgdbm testgdbm2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=testgdbm testgdbm2
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=testgdbm testgdbm2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=testgdbm testgdbm2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=testgdbm testgdbm2
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GDBM=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
+REQUIRE_PACKAGES_GDBM=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GDBM=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
+REQUIRE_PACKAGES_GDBM=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GDBM=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
+REQUIRE_PACKAGES_GDBM=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/gdbm/fpmake.pp b/packages/gdbm/fpmake.pp
index 33d842cfd4..8ad57d0b3c 100644
--- a/packages/gdbm/fpmake.pp
+++ b/packages/gdbm/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: GNU, header: Michael van Canneyt';
P.License := 'Library: GPL2 (or later?), header: LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/ggi/Makefile b/packages/ggi/Makefile
index 8641718baf..320d191fd7 100644
--- a/packages/ggi/Makefile
+++ b/packages/ggi/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=ggi
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/ggi/Makefile.fpc b/packages/ggi/Makefile.fpc
index 10c8a7eab7..6e391e6e19 100644
--- a/packages/ggi/Makefile.fpc
+++ b/packages/ggi/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=ggi
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/ggi/Makefile.fpc.fpcmake b/packages/ggi/Makefile.fpc.fpcmake
index 4817fafad4..def95c8555 100644
--- a/packages/ggi/Makefile.fpc.fpcmake
+++ b/packages/ggi/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=ggi
-version=2.7.1
+version=3.1.1
[target]
units=gii ggi ggi2d
diff --git a/packages/ggi/examples/Makefile b/packages/ggi/examples/Makefile
index 021385b52f..8a533ff5a7 100644
--- a/packages/ggi/examples/Makefile
+++ b/packages/ggi/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=ggi1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=ggi1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=ggi1
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=ggi1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=ggi1
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=ggi1
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=ggi1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=ggi1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=ggi1
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GGI=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
+REQUIRE_PACKAGES_GGI=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GGI=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
+REQUIRE_PACKAGES_GGI=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GGI=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
+REQUIRE_PACKAGES_GGI=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/ggi/fpmake.pp b/packages/ggi/fpmake.pp
index 736a68592b..775ad4e309 100644
--- a/packages/ggi/fpmake.pp
+++ b/packages/ggi/fpmake.pp
@@ -16,14 +16,14 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: ?, header: Sebastian Guenther';
P.License := 'Library: ?, header: LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
P.Email := '';
P.Description := 'a project that aims to develop a reliable, stable and fast graphics system that works everywhere.';
P.NeedLibC:= true; // true for headers that indirectly link to libc?
- P.OSes := [beos,haiku,freebsd,solaris,netbsd,openbsd,linux];
+ P.OSes := [beos,haiku,freebsd,solaris,netbsd,openbsd,linux,dragonfly];
// note that this package may be severely outdated. Header copyright
// lists 1999, and ggi itself is still developed, and major releases
diff --git a/packages/gmp/Makefile b/packages/gmp/Makefile
index 56bea5a402..edeb9a8629 100644
--- a/packages/gmp/Makefile
+++ b/packages/gmp/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=gmp
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/gmp/Makefile.fpc b/packages/gmp/Makefile.fpc
index 7e63a97713..60f6edf034 100644
--- a/packages/gmp/Makefile.fpc
+++ b/packages/gmp/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=gmp
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/gmp/Makefile.fpc.fpcmake b/packages/gmp/Makefile.fpc.fpcmake
index c54be4d59a..fd554ece65 100644
--- a/packages/gmp/Makefile.fpc.fpcmake
+++ b/packages/gmp/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=gmp
-version=2.7.1
+version=3.1.1
[target]
units=gmp
diff --git a/packages/gmp/examples/Makefile b/packages/gmp/examples/Makefile
index e2245bc034..d6735907f7 100644
--- a/packages/gmp/examples/Makefile
+++ b/packages/gmp/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=gmp_accept_test gmp_testcase pidigits_example pidigits_example2 printf_example printf_example2 scanf_example scanf_example2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=gmp_accept_test gmp_testcase pidigits_example pidigits_example2 printf_example printf_example2 scanf_example scanf_example2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=gmp_accept_test gmp_testcase pidigits_example pidigits_example2 printf_example printf_example2 scanf_example scanf_example2
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-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),x86_64-dragonfly)
+override TARGET_PROGRAMS+=gmp_accept_test gmp_testcase pidigits_example pidigits_example2 printf_example printf_example2 scanf_example scanf_example2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=gmp_accept_test gmp_testcase pidigits_example pidigits_example2 printf_example printf_example2 scanf_example scanf_example2
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=gmp_accept_test gmp_testcase pidigits_example pidigits_example2 printf_example printf_example2 scanf_example scanf_example2
endif
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
override TARGET_PROGRAMS+=gmp_accept_test gmp_testcase pidigits_example pidigits_example2 printf_example printf_example2 scanf_example scanf_example2
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GMP=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
+REQUIRE_PACKAGES_GMP=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GMP=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
+REQUIRE_PACKAGES_GMP=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GMP=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
+REQUIRE_PACKAGES_GMP=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/gmp/fpmake.pp b/packages/gmp/fpmake.pp
index c1f7825e09..d7840ef57b 100644
--- a/packages/gmp/fpmake.pp
+++ b/packages/gmp/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'FreePascal development team';
P.License := 'LGPL with modification, ';
diff --git a/packages/gnome1/Makefile b/packages/gnome1/Makefile
index a87421a0bc..912ffe3bfe 100644
--- a/packages/gnome1/Makefile
+++ b/packages/gnome1/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=gnome1
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/gnome1/Makefile.fpc b/packages/gnome1/Makefile.fpc
index 58c5b63479..5fc3533bd4 100644
--- a/packages/gnome1/Makefile.fpc
+++ b/packages/gnome1/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=gnome1
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/gnome1/Makefile.fpc.fpcmake b/packages/gnome1/Makefile.fpc.fpcmake
index 7c842167c7..cb20b2f476 100644
--- a/packages/gnome1/Makefile.fpc.fpcmake
+++ b/packages/gnome1/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=gnome1
-version=2.7.1
+version=3.1.1
[require]
libc=y
diff --git a/packages/gnome1/fpmake.pp b/packages/gnome1/fpmake.pp
index 9d1d24948d..0330f80075 100644
--- a/packages/gnome1/fpmake.pp
+++ b/packages/gnome1/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes:=AllUnixOSes-[darwin,iphonesim,Android];
if Defaults.CPU<>arm then
P.OSes := P.OSes + [darwin];
diff --git a/packages/graph/Makefile b/packages/graph/Makefile
index 89f8cfeb34..b63391f57e 100644
--- a/packages/graph/Makefile
+++ b/packages/graph/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=graph
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/graph/Makefile.fpc b/packages/graph/Makefile.fpc
index 90af5678b4..d4f854361c 100644
--- a/packages/graph/Makefile.fpc
+++ b/packages/graph/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=graph
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/graph/Makefile.fpc.fpcmake b/packages/graph/Makefile.fpc.fpcmake
index 6d2e23bc42..b31197d6e1 100644
--- a/packages/graph/Makefile.fpc.fpcmake
+++ b/packages/graph/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=graph
-version=2.7.1
+version=3.1.1
[require]
libc=y
diff --git a/packages/graph/fpmake.pp b/packages/graph/fpmake.pp
index 0f737c8d4d..330ffd0963 100644
--- a/packages/graph/fpmake.pp
+++ b/packages/graph/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('graph');
+ P.ShortName:='grph';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'FPC team';
P.License := 'LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/gtk1/Makefile b/packages/gtk1/Makefile
index d6d1a059e6..1287f63e52 100644
--- a/packages/gtk1/Makefile
+++ b/packages/gtk1/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=gtk1
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/gtk1/Makefile.fpc b/packages/gtk1/Makefile.fpc
index 677523776d..d8db5751a2 100644
--- a/packages/gtk1/Makefile.fpc
+++ b/packages/gtk1/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=gtk1
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/gtk1/Makefile.fpc.fpcmake b/packages/gtk1/Makefile.fpc.fpcmake
index 3e0a917811..9409921f0a 100644
--- a/packages/gtk1/Makefile.fpc.fpcmake
+++ b/packages/gtk1/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=gtk1
-version=2.7.1
+version=3.1.1
[require]
libc=y
diff --git a/packages/gtk1/examples/Makefile b/packages/gtk1/examples/Makefile
index eba2759a08..69816a3cde 100644
--- a/packages/gtk1/examples/Makefile
+++ b/packages/gtk1/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=tutorial
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=tutorial
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=tutorial
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=tutorial
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=tutorial
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=tutorial
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=tutorial
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=tutorial
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=tutorial
endif
@@ -610,6 +625,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=entry notebook scribble clist ttt_test pixmap list progressbar filesel statusbar toolbar rulers spinbutton gtkgldemo
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=entry notebook scribble clist ttt_test pixmap list progressbar filesel statusbar toolbar rulers spinbutton gtkgldemo
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=entry notebook scribble clist ttt_test pixmap list progressbar filesel statusbar toolbar rulers spinbutton gtkgldemo
endif
@@ -697,6 +715,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=entry notebook scribble clist ttt_test pixmap list progressbar filesel statusbar toolbar rulers spinbutton gtkgldemo
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=entry notebook scribble clist ttt_test pixmap list progressbar filesel statusbar toolbar rulers spinbutton gtkgldemo
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=entry notebook scribble clist ttt_test pixmap list progressbar filesel statusbar toolbar rulers spinbutton gtkgldemo
endif
@@ -751,6 +772,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=entry notebook scribble clist ttt_test pixmap list progressbar filesel statusbar toolbar rulers spinbutton gtkgldemo
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=entry notebook scribble clist ttt_test pixmap list progressbar filesel statusbar toolbar rulers spinbutton gtkgldemo
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=entry notebook scribble clist ttt_test pixmap list progressbar filesel statusbar toolbar rulers spinbutton gtkgldemo
endif
@@ -832,6 +856,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=tictactoe
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=tictactoe
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=tictactoe
endif
@@ -919,6 +946,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=tictactoe
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=tictactoe
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=tictactoe
endif
@@ -973,6 +1003,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=tictactoe
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=tictactoe
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=tictactoe
endif
@@ -1228,6 +1261,12 @@ 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=
@@ -1273,6 +1312,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1832,6 +1876,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK1=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
+REQUIRE_PACKAGES_GTK1=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2093,6 +2146,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK1=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
+REQUIRE_PACKAGES_GTK1=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2255,6 +2317,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK1=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
+REQUIRE_PACKAGES_GTK1=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2670,7 +2741,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2700,17 +2771,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
@@ -3128,6 +3205,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_TUTORIAL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_TUTORIAL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_TUTORIAL=1
endif
@@ -3215,6 +3295,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_TUTORIAL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_TUTORIAL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_TUTORIAL=1
endif
@@ -3269,6 +3352,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
TARGET_DIRS_TUTORIAL=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_TUTORIAL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_TUTORIAL=1
endif
diff --git a/packages/gtk1/examples/tutorial/Makefile b/packages/gtk1/examples/tutorial/Makefile
index 3c4adf8782..0039adb4c0 100644
--- a/packages/gtk1/examples/tutorial/Makefile
+++ b/packages/gtk1/examples/tutorial/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -562,6 +568,12 @@ 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=
@@ -607,6 +619,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1166,6 +1183,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK1=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
+REQUIRE_PACKAGES_GTK1=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1427,6 +1453,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK1=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
+REQUIRE_PACKAGES_GTK1=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1589,6 +1624,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK1=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
+REQUIRE_PACKAGES_GTK1=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2004,7 +2048,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2034,17 +2078,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
diff --git a/packages/gtk1/fpmake.pp b/packages/gtk1/fpmake.pp
index 3a93284f2e..e012284d11 100644
--- a/packages/gtk1/fpmake.pp
+++ b/packages/gtk1/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: Peter Mattis, Spencer Kimball and Josh MacDonald, header: Peter Vreman';
P.License := 'Library: LGPL2.1, header: LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/gtk1/src/gtkgl/Makefile b/packages/gtk1/src/gtkgl/Makefile
index 10c8f13d11..235d838020 100644
--- a/packages/gtk1/src/gtkgl/Makefile
+++ b/packages/gtk1/src/gtkgl/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=gtkglarea
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=gtkglarea
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=gtkglarea
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=gtkglarea
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=gtkglarea
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=gtkglarea
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=gtkglarea
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=gtkglarea
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=gtkglarea
endif
@@ -612,6 +627,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_EXAMPLES+=gtkgldemo
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_EXAMPLES+=gtkgldemo
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_EXAMPLES+=gtkgldemo
endif
@@ -699,6 +717,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_EXAMPLES+=gtkgldemo
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_EXAMPLES+=gtkgldemo
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_EXAMPLES+=gtkgldemo
endif
@@ -753,6 +774,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_EXAMPLES+=gtkgldemo
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_EXAMPLES+=gtkgldemo
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_EXAMPLES+=gtkgldemo
endif
@@ -1010,6 +1034,12 @@ 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=
@@ -1055,6 +1085,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1614,6 +1649,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_OPENGL=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
+REQUIRE_PACKAGES_OPENGL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1875,6 +1919,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_OPENGL=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
+REQUIRE_PACKAGES_OPENGL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2037,6 +2090,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_OPENGL=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
+REQUIRE_PACKAGES_OPENGL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2452,7 +2514,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2482,17 +2544,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/gtk2/Makefile b/packages/gtk2/Makefile
index 9ed1bcd539..3438e04f05 100644
--- a/packages/gtk2/Makefile
+++ b/packages/gtk2/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=gtk2
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/gtk2/Makefile.fpc b/packages/gtk2/Makefile.fpc
index 294c5af6a3..2e69a11f30 100644
--- a/packages/gtk2/Makefile.fpc
+++ b/packages/gtk2/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=gtk2
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/gtk2/Makefile.fpc.fpcmake b/packages/gtk2/Makefile.fpc.fpcmake
index 7cfd89fa68..b58b68c5c1 100644
--- a/packages/gtk2/Makefile.fpc.fpcmake
+++ b/packages/gtk2/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=gtk2
-version=2.7.1
+version=3.1.1
[require]
libc=y
diff --git a/packages/gtk2/examples/Makefile b/packages/gtk2/examples/Makefile
index 1bfae86374..eec5ceb918 100644
--- a/packages/gtk2/examples/Makefile
+++ b/packages/gtk2/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=helloworld helloworld2 gtk_demo gettingstarted plugins scribble_simple gtkglext
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=helloworld helloworld2 gtk_demo gettingstarted plugins scribble_simple gtkglext
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=helloworld helloworld2 gtk_demo gettingstarted plugins scribble_simple gtkglext
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=helloworld helloworld2 gtk_demo gettingstarted plugins scribble_simple gtkglext
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=helloworld helloworld2 gtk_demo gettingstarted plugins scribble_simple gtkglext
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=helloworld helloworld2 gtk_demo gettingstarted plugins scribble_simple gtkglext
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=helloworld helloworld2 gtk_demo gettingstarted plugins scribble_simple gtkglext
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=helloworld helloworld2 gtk_demo gettingstarted plugins scribble_simple gtkglext
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=helloworld helloworld2 gtk_demo gettingstarted plugins scribble_simple gtkglext
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1411,6 +1437,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=1
REQUIRE_PACKAGES_OPENGL=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
+REQUIRE_PACKAGES_GTK2=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1701,6 +1737,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=1
REQUIRE_PACKAGES_OPENGL=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
+REQUIRE_PACKAGES_GTK2=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1881,6 +1927,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=1
REQUIRE_PACKAGES_OPENGL=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
+REQUIRE_PACKAGES_GTK2=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2338,7 +2394,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2368,17 +2424,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2774,6 +2836,15 @@ TARGET_DIRS_PLUGINS=1
TARGET_DIRS_SCRIBBLE_SIMPLE=1
TARGET_DIRS_GTKGLEXT=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+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),m68k-linux)
TARGET_DIRS_HELLOWORLD=1
TARGET_DIRS_HELLOWORLD2=1
@@ -3035,6 +3106,15 @@ TARGET_DIRS_PLUGINS=1
TARGET_DIRS_SCRIBBLE_SIMPLE=1
TARGET_DIRS_GTKGLEXT=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+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),arm-linux)
TARGET_DIRS_HELLOWORLD=1
TARGET_DIRS_HELLOWORLD2=1
@@ -3197,6 +3277,15 @@ TARGET_DIRS_PLUGINS=1
TARGET_DIRS_SCRIBBLE_SIMPLE=1
TARGET_DIRS_GTKGLEXT=1
endif
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
TARGET_DIRS_HELLOWORLD=1
TARGET_DIRS_HELLOWORLD2=1
diff --git a/packages/gtk2/examples/filechooser/Makefile b/packages/gtk2/examples/filechooser/Makefile
index ecd99cecaa..9a3fe0d4a4 100644
--- a/packages/gtk2/examples/filechooser/Makefile
+++ b/packages/gtk2/examples/filechooser/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=simple glade
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=simple glade
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=simple glade
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=simple glade
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=simple glade
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=simple glade
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=simple glade
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=simple glade
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=simple glade
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/gtk2/examples/gettingstarted/Makefile b/packages/gtk2/examples/gettingstarted/Makefile
index 9473071a15..7705d1dbfb 100644
--- a/packages/gtk2/examples/gettingstarted/Makefile
+++ b/packages/gtk2/examples/gettingstarted/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=gettingstarted
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=gettingstarted
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=gettingstarted
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=gettingstarted
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=gettingstarted
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=gettingstarted
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=gettingstarted
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=gettingstarted
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=gettingstarted
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/gtk2/examples/gtk_demo/Makefile b/packages/gtk2/examples/gtk_demo/Makefile
index d38f61b86b..f5a42426b3 100644
--- a/packages/gtk2/examples/gtk_demo/Makefile
+++ b/packages/gtk2/examples/gtk_demo/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=gtk_demo
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=gtk_demo
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=gtk_demo
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=gtk_demo
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=gtk_demo
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=gtk_demo
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=gtk_demo
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=gtk_demo
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=gtk_demo
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/gtk2/examples/gtk_demo/drawingarea.inc b/packages/gtk2/examples/gtk_demo/drawingarea.inc
index 8fc06b14d4..a43e1752b6 100644
--- a/packages/gtk2/examples/gtk_demo/drawingarea.inc
+++ b/packages/gtk2/examples/gtk_demo/drawingarea.inc
@@ -38,7 +38,7 @@ begin
(* Initialize the pixmap to white *)
gdk_draw_rectangle (da_pixmap,
widget^.style^.white_gc,
- gTRUE,
+ gint(gTRUE),
0, 0,
widget^.allocation.width,
widget^.allocation.height);
@@ -85,7 +85,7 @@ begin
(* Paint to the pixmap, where we store our state *)
gdk_draw_rectangle (da_pixmap,
widget^.style^.black_gc,
- gTRUE,
+ gint(gTRUE),
update_rect.x, update_rect.y,
update_rect.width, update_rect.height);
@@ -199,7 +199,7 @@ begin
*)
gdk_draw_rectangle (da^.window,
gc,
- gTRUE,
+ gint(gTRUE),
i, j,
CHECK_SIZE,
CHECK_SIZE);
diff --git a/packages/gtk2/examples/gtkglext/Makefile b/packages/gtk2/examples/gtkglext/Makefile
index 4ca8bd064f..eec29ce841 100644
--- a/packages/gtk2/examples/gtkglext/Makefile
+++ b/packages/gtk2/examples/gtkglext/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=gears
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=gears
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=gears
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=gears
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=gears
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=gears
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=gears
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=gears
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=gears
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1411,6 +1437,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=1
REQUIRE_PACKAGES_OPENGL=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
+REQUIRE_PACKAGES_GTK2=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1701,6 +1737,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=1
REQUIRE_PACKAGES_OPENGL=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
+REQUIRE_PACKAGES_GTK2=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1881,6 +1927,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=1
REQUIRE_PACKAGES_OPENGL=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
+REQUIRE_PACKAGES_GTK2=1
+REQUIRE_PACKAGES_OPENGL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2338,7 +2394,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2368,17 +2424,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/gtk2/examples/helloworld/Makefile b/packages/gtk2/examples/helloworld/Makefile
index 3a931c8016..94deb52ff4 100644
--- a/packages/gtk2/examples/helloworld/Makefile
+++ b/packages/gtk2/examples/helloworld/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=helloworld
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=helloworld
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=helloworld
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=helloworld
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=helloworld
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=helloworld
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=helloworld
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=helloworld
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=helloworld
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/gtk2/examples/helloworld/helloworld.pas b/packages/gtk2/examples/helloworld/helloworld.pas
index b929707fa1..b55f61e0fe 100644
--- a/packages/gtk2/examples/helloworld/helloworld.pas
+++ b/packages/gtk2/examples/helloworld/helloworld.pas
@@ -12,7 +12,7 @@ begin
g_print ('Hello World'#13#10);
end;
-function delete_event( Widget: PGtkWidget; Event: PGdkEvent; Data: gpointer):gint; cdecl;
+function delete_event( Widget: PGtkWidget; Event: PGdkEvent; Data: gpointer):gboolean; cdecl;
begin
(* If you return FALSE in the "delete_event" signal handler,
* GTK will emit the "destroy" signal. Returning TRUE means
diff --git a/packages/gtk2/examples/helloworld2/Makefile b/packages/gtk2/examples/helloworld2/Makefile
index e83b5afd95..d0ec1c895c 100644
--- a/packages/gtk2/examples/helloworld2/Makefile
+++ b/packages/gtk2/examples/helloworld2/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=helloworld2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=helloworld2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=helloworld2
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=helloworld2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=helloworld2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=helloworld2
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=helloworld2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=helloworld2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=helloworld2
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/gtk2/examples/plugins/Makefile b/packages/gtk2/examples/plugins/Makefile
index a101b37219..a8e5df2fc4 100644
--- a/packages/gtk2/examples/plugins/Makefile
+++ b/packages/gtk2/examples/plugins/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=plugin main
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=plugin main
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=plugin main
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=plugin main
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=plugin main
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=plugin main
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=plugin main
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=plugin main
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=plugin main
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/gtk2/examples/scribble_simple/Makefile b/packages/gtk2/examples/scribble_simple/Makefile
index 88f5ee9f29..5bb3c1cf0a 100644
--- a/packages/gtk2/examples/scribble_simple/Makefile
+++ b/packages/gtk2/examples/scribble_simple/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=scribble_simple
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=scribble_simple
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=scribble_simple
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=scribble_simple
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=scribble_simple
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=scribble_simple
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=scribble_simple
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=scribble_simple
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=scribble_simple
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_GTK2=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
+REQUIRE_PACKAGES_GTK2=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/gtk2/examples/scribble_simple/scribble_simple.pas b/packages/gtk2/examples/scribble_simple/scribble_simple.pas
index 7f43717689..a7472fac73 100644
--- a/packages/gtk2/examples/scribble_simple/scribble_simple.pas
+++ b/packages/gtk2/examples/scribble_simple/scribble_simple.pas
@@ -24,7 +24,7 @@ begin
-1);
gdk_draw_rectangle (pixmap,
widget^.style^.white_gc,
- gTRUE,
+ gint(gTRUE),
0, 0,
widget^.allocation.width,
widget^.allocation.height);
@@ -61,7 +61,7 @@ begin
gdk_draw_rectangle (pixmap,
widget^.style^.black_gc,
- gTRUE,
+ gint(gTRUE),
update_rect.x, update_rect.y,
update_rect.width, update_rect.height);
@@ -86,7 +86,7 @@ var
state : TGdkModifierType;
begin
- if event^.is_hint = gTRUE then
+ if event^.is_hint = gint(gTRUE) then
gdk_window_get_pointer (event^.window, @x, @y, @state)
else begin
x := round (event^.x);
diff --git a/packages/gtk2/fpmake.pp b/packages/gtk2/fpmake.pp
index e694b9ef9c..b87f01b30f 100644
--- a/packages/gtk2/fpmake.pp
+++ b/packages/gtk2/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SupportBuildModes := [bmOneByOne];
P.OSes:=AllUnixOSes+[Win32,Win64]-[darwin,iphonesim,Android];
if Defaults.CPU<>arm then
diff --git a/packages/hash/Makefile b/packages/hash/Makefile
index c9de7ca946..75840cbd6c 100644
--- a/packages/hash/Makefile
+++ b/packages/hash/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-03-19 rev 27188]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -326,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=hash
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -602,6 +602,12 @@ 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=
@@ -647,6 +653,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1068,6 +1079,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1155,6 +1169,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1375,7 +1392,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1405,17 +1422,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -1762,12 +1785,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -1783,15 +1804,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -1811,17 +1832,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/hash/Makefile.fpc b/packages/hash/Makefile.fpc
index 366f1c2154..3b631c86bc 100644
--- a/packages/hash/Makefile.fpc
+++ b/packages/hash/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=hash
-version=2.7.1
+version=3.1.1
[require]
packages=rtl
@@ -67,15 +67,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -100,18 +100,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/hash/Makefile.fpc.fpcmake b/packages/hash/Makefile.fpc.fpcmake
index 8319f110e6..7000c918d1 100644
--- a/packages/hash/Makefile.fpc.fpcmake
+++ b/packages/hash/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=hash
-version=2.7.1
+version=3.1.1
[require]
packages=rtl-objpas
diff --git a/packages/hash/examples/Makefile b/packages/hash/examples/Makefile
index 339b65d12a..4d3d81175e 100644
--- a/packages/hash/examples/Makefile
+++ b/packages/hash/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,226 +326,235 @@ FPCFPMAKE=$(FPC)
endif
endif
ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i386-android)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),arm-android)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),mips-linux)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),jvm-java)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),jvm-android)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override TARGET_PROGRAMS+=mdtest crctest sha1test
+override TARGET_PROGRAMS+=mdtest crctest sha1test md5performancetest sha1performancetest
endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1180,302 +1206,776 @@ else
TAROPT=vz
TAREXT=.tar.gz
endif
-override REQUIRE_PACKAGES=rtl hash
+override REQUIRE_PACKAGES=rtl hash rtl-extra rtl-objpas
ifeq ($(FULL_TARGET),i386-linux)
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),i386-go32v2)
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),i386-win32)
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),i386-os2)
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),i386-freebsd)
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),i386-beos)
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),i386-haiku)
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),i386-netbsd)
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),i386-solaris)
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),i386-qnx)
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),i386-netware)
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),i386-openbsd)
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),i386-wdosx)
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),i386-darwin)
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),i386-emx)
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),i386-watcom)
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),i386-netwlibc)
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),i386-wince)
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),i386-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),i386-symbian)
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),i386-nativent)
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),i386-iphonesim)
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),i386-android)
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),i386-aros)
+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),m68k-linux)
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),m68k-freebsd)
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),m68k-netbsd)
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),m68k-amiga)
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),m68k-atari)
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),m68k-openbsd)
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),m68k-palmos)
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),m68k-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),powerpc-linux)
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),powerpc-netbsd)
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),powerpc-amiga)
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),powerpc-macos)
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),powerpc-darwin)
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),powerpc-morphos)
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),powerpc-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),powerpc-wii)
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),powerpc-aix)
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),sparc-linux)
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),sparc-netbsd)
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),sparc-solaris)
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),sparc-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),x86_64-linux)
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),x86_64-freebsd)
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),x86_64-netbsd)
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),x86_64-solaris)
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),x86_64-openbsd)
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),x86_64-darwin)
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),x86_64-win64)
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),x86_64-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),x86_64-dragonfly)
+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),arm-linux)
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),arm-palmos)
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),arm-darwin)
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),arm-wince)
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),arm-gba)
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),arm-nds)
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),arm-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),arm-symbian)
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),arm-android)
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),powerpc64-linux)
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),powerpc64-darwin)
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),powerpc64-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),powerpc64-aix)
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),avr-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),armeb-linux)
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),armeb-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),mips-linux)
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),mipsel-linux)
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),mipsel-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),mipsel-android)
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),jvm-java)
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),jvm-android)
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),i8086-msdos)
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))))))
@@ -1553,6 +2053,234 @@ ifdef UNITDIR_FPMAKE_HASH
override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_HASH)
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_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
+ifdef REQUIRE_PACKAGES_RTL-EXTRA
+PACKAGEDIR_RTL-EXTRA:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl-extra/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_RTL-EXTRA),)
+ifneq ($(wildcard $(PACKAGEDIR_RTL-EXTRA)/units/$(TARGETSUFFIX)),)
+UNITDIR_RTL-EXTRA=$(PACKAGEDIR_RTL-EXTRA)/units/$(TARGETSUFFIX)
+else
+UNITDIR_RTL-EXTRA=$(PACKAGEDIR_RTL-EXTRA)
+endif
+ifneq ($(wildcard $(PACKAGEDIR_RTL-EXTRA)/units/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_RTL-EXTRA=$(PACKAGEDIR_RTL-EXTRA)/units/$(SOURCESUFFIX)
+else
+ifneq ($(wildcard $(PACKAGEDIR_RTL-EXTRA)/units_bs/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_RTL-EXTRA=$(PACKAGEDIR_RTL-EXTRA)/units_bs/$(SOURCESUFFIX)
+else
+UNITDIR_FPMAKE_RTL-EXTRA=$(PACKAGEDIR_RTL-EXTRA)
+endif
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_RTL-EXTRA)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_RTL-EXTRA) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL-EXTRA)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_RTL-EXTRA=
+UNITDIR_RTL-EXTRA:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl-extra/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_RTL-EXTRA),)
+UNITDIR_RTL-EXTRA:=$(firstword $(UNITDIR_RTL-EXTRA))
+else
+UNITDIR_RTL-EXTRA=
+endif
+endif
+ifdef UNITDIR_RTL-EXTRA
+override COMPILER_UNITDIR+=$(UNITDIR_RTL-EXTRA)
+endif
+ifdef UNITDIR_FPMAKE_RTL-EXTRA
+override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL-EXTRA)
+endif
+endif
+ifdef REQUIRE_PACKAGES_RTL-OBJPAS
+PACKAGEDIR_RTL-OBJPAS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl-objpas/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_RTL-OBJPAS),)
+ifneq ($(wildcard $(PACKAGEDIR_RTL-OBJPAS)/units/$(TARGETSUFFIX)),)
+UNITDIR_RTL-OBJPAS=$(PACKAGEDIR_RTL-OBJPAS)/units/$(TARGETSUFFIX)
+else
+UNITDIR_RTL-OBJPAS=$(PACKAGEDIR_RTL-OBJPAS)
+endif
+ifneq ($(wildcard $(PACKAGEDIR_RTL-OBJPAS)/units/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_RTL-OBJPAS=$(PACKAGEDIR_RTL-OBJPAS)/units/$(SOURCESUFFIX)
+else
+ifneq ($(wildcard $(PACKAGEDIR_RTL-OBJPAS)/units_bs/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_RTL-OBJPAS=$(PACKAGEDIR_RTL-OBJPAS)/units_bs/$(SOURCESUFFIX)
+else
+UNITDIR_FPMAKE_RTL-OBJPAS=$(PACKAGEDIR_RTL-OBJPAS)
+endif
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_RTL-OBJPAS)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_RTL-OBJPAS) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL-OBJPAS)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_RTL-OBJPAS=
+UNITDIR_RTL-OBJPAS:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl-objpas/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_RTL-OBJPAS),)
+UNITDIR_RTL-OBJPAS:=$(firstword $(UNITDIR_RTL-OBJPAS))
+else
+UNITDIR_RTL-OBJPAS=
+endif
+endif
+ifdef UNITDIR_RTL-OBJPAS
+override COMPILER_UNITDIR+=$(UNITDIR_RTL-OBJPAS)
+endif
+ifdef UNITDIR_FPMAKE_RTL-OBJPAS
+override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_RTL-OBJPAS)
+endif
+endif
ifndef NOCPUDEF
override FPCOPTDEF=$(ARCH)
endif
@@ -1666,7 +2394,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1696,17 +2424,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/hash/examples/Makefile.fpc b/packages/hash/examples/Makefile.fpc
index 285ac70250..ecccce3a57 100644
--- a/packages/hash/examples/Makefile.fpc
+++ b/packages/hash/examples/Makefile.fpc
@@ -3,10 +3,10 @@
#
[target]
-programs=mdtest crctest sha1test
+programs=mdtest crctest sha1test md5performancetest sha1performancetest
[require]
-packages=hash
+packages=hash rtl-extra rtl-objpas
[install]
fpcpackage=y
diff --git a/packages/hash/examples/md5performancetest.pas b/packages/hash/examples/md5performancetest.pas
new file mode 100644
index 0000000000..d935c32ad0
--- /dev/null
+++ b/packages/hash/examples/md5performancetest.pas
@@ -0,0 +1,29 @@
+program md5performancetest;
+
+{$mode objfpc}{$H+}
+
+uses
+ {$IFDEF UNIX}{$IFDEF UseCThreads}
+ cthreads,
+ {$ENDIF}{$ENDIF}
+ SysUtils,Classes,md5,dateutils;
+
+var
+ StartTime: TDateTime;
+ EndTime: TDateTime;
+ i: integer;
+ s,ss: string;
+begin
+ writeln('MD5 of a million "a" symbols');
+ Writeln('x86 only: compile md5 unit with -dMD5SLOW to use unoptimized original version');
+ SetLength(s, 1000000);
+ for i := 1 to 1000000 do s[i] := 'a';
+
+ StartTime:=now;
+ for i := 0 to 1000 do
+ ss := LowerCase(MDPrint(MDString(s, MD_VERSION_5)));
+ EndTime:=now;
+ writeln('Performance test finished. Elapsed time:');
+ writeln(TimeToStr(EndTime-StartTime));
+end.
+
diff --git a/packages/hash/examples/mdtest.pas b/packages/hash/examples/mdtest.pas
index 5864a3b7cb..5e9210ad5d 100644
--- a/packages/hash/examples/mdtest.pas
+++ b/packages/hash/examples/mdtest.pas
@@ -1,8 +1,8 @@
{
This file is part of the Free Pascal packages.
- Copyright (c) 1999-2000 by the Free Pascal development team
+ Copyright (c) 1999-2014 by the Free Pascal development team
- Tests the MD5 program.
+ Tests MD2, MD4 and MD5 hashes.
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
@@ -15,10 +15,10 @@
program mdtest;
-{$h+}
+{$mode objfpc}{$h+}
uses
- md5;
+ SysUtils, md5;
const
Suite: array[1..7] of string = (
@@ -60,31 +60,57 @@ const
'57edf4a22be3c955ac49da2e2107b67a')
);
-procedure performTest(const Ver: TMDVersion);
+function performTest(const Ver: TMDVersion; const Verbose: boolean): boolean;
+// Runs test and returns success or failure
var
I: Integer;
S: String;
begin
+ result := false;
for I := Low(Suite) to High(Suite) do
begin
S := LowerCase(MDPrint(MDString(Suite[I], Ver)));
if S = Results[Ver, I] then
- Write('passed ') else
- Write('failed ');
- WriteLn(' "', Suite[I], '" = ', S);
+ result := true;
+ if Verbose then WriteLn(' "', Suite[I], '" = ', S);
end;
end;
+var
+ i: integer;
begin
+ i:=0;
Writeln('Executing RFC 1319 test suite ...');
- performTest(MD_VERSION_2);
+ if performTest(MD_VERSION_2,true) then
+ Write('RFC 1319 test suite passed ')
+ else
+ begin
+ Write('RFC 1319 test suite failed ');
+ i:=i or 1;
+ end;
+ Writeln;
Writeln;
Writeln('Executing RFC 1320 test suite ...');
- performTest(MD_VERSION_4);
+ if performTest(MD_VERSION_4,true) then
+ Write('RFC 1320 test suite passed ')
+ else
+ begin
+ Write('RFC 1320 test suite failed ');
+ i:=i or 2;
+ end;
+ Writeln;
Writeln;
Writeln('Executing RFC 1321 test suite ...');
- performTest(MD_VERSION_5);
+ if performTest(MD_VERSION_5,true) then
+ Write('RFC 1321 test suite passed ')
+ else
+ begin
+ Write('RFC 1321 test suite failed ');
+ i:=i or 4;
+ end;
+ Writeln;
Writeln;
+ halt(i); //halt with error code 0 if everything ok
end.
diff --git a/packages/hash/examples/sha1performancetest.pas b/packages/hash/examples/sha1performancetest.pas
new file mode 100644
index 0000000000..5bd0b0d463
--- /dev/null
+++ b/packages/hash/examples/sha1performancetest.pas
@@ -0,0 +1,29 @@
+program sha1performancetest;
+
+{$mode objfpc}{$H+}
+
+uses
+ {$IFDEF UNIX}{$IFDEF UseCThreads}
+ cthreads,
+ {$ENDIF}{$ENDIF}
+ SysUtils,Classes,sha1,dateutils;
+
+var
+ StartTime: TDateTime;
+ EndTime: TDateTime;
+ i: integer;
+ s,ss: string;
+begin
+ writeln('MD5 of a million "a" symbols');
+ Writeln('compile sha unit with -dSHA1SLOW to use unoptimized original version');
+ SetLength(s, 1000000);
+ for i := 1 to 1000000 do s[i] := 'a';
+
+ StartTime:=now;
+ for i := 0 to 1000 do
+ ss := LowerCase(SHA1Print(SHA1string(s)));
+ EndTime:=now;
+ writeln('Performance test finished. Elapsed time:');
+ writeln(TimeToStr(EndTime-StartTime));
+end.
+
diff --git a/packages/hash/examples/sha1test.pp b/packages/hash/examples/sha1test.pp
index c3340d66ef..4b0ec92295 100644
--- a/packages/hash/examples/sha1test.pp
+++ b/packages/hash/examples/sha1test.pp
@@ -1,23 +1,24 @@
program sha1test;
{$mode objfpc}{$h+}
-uses sha1;
+uses SysUtils, sha1;
+function performTest: cardinal;
+// Runs test and returns result code (0=success)
var
- code: cardinal;
s, sdig: string;
i: integer;
ctx: TSHA1Context;
d: TSHA1Digest;
begin
- code := 0;
+ result := 0;
sdig := SHA1Print(SHA1String('abc'));
if sdig <> 'a9993e364706816aba3e25717850c26c9cd0d89d' then
- code := code or 1;
-
+ result := result or 1;
+
sdig := SHA1Print(SHA1String('abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'));
if sdig <> '84983e441c3bd26ebaae4aa1f95129e5e54670f1' then
- code := code or 2;
+ result := result or 2;
// SHA-1 of a million 'a' symbols
SetLength(s, 1000);
@@ -28,11 +29,21 @@ begin
SHA1Final(ctx, d);
sdig := SHA1Print(d);
if sdig <> '34aa973cd4c4daa4f61eeb2bdbad27316534016f' then
- code := code or 4;
+ result := result or 4;
+end;
+
+var
+ StartTime, EndTime: TDateTime;
+ code: cardinal;
+begin
+ writeln('Performing basic SHA-1 test...');
+ code:=performTest;
if code = 0 then
writeln('Basic SHA-1 tests passed')
else
+ begin
writeln('SHA-1 tests failed: ', code);
- Halt(code);
-end. \ No newline at end of file
+ end;
+ Halt(code);
+end.
diff --git a/packages/hash/fpmake.pp b/packages/hash/fpmake.pp
index b4c32885c7..4fca2be5d2 100644
--- a/packages/hash/fpmake.pp
+++ b/packages/hash/fpmake.pp
@@ -26,20 +26,22 @@ begin
P.OSes:=P.OSes-[embedded];
P.Dependencies.Add('rtl-objpas');
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
T:=P.Targets.AddUnit('src/md5.pp');
T:=P.Targets.AddUnit('src/sha1.pp');
T:=P.Targets.AddUnit('src/crc.pas');
T:=P.Targets.AddUnit('src/ntlm.pas');
T:=P.Targets.AddUnit('src/uuid.pas');
- T:=P.Targets.AddUnit('src/hmac.pas');
+ T:=P.Targets.AddUnit('src/hmac.pp');
T:=P.Targets.AddUnit('src/unixcrypt.pas');
T.OSes:=[Linux];
T:=P.Targets.AddExampleunit('examples/mdtest.pas');
T:=P.Targets.AddExampleunit('examples/crctest.pas');
T:=P.Targets.AddExampleunit('examples/sha1test.pp');
- T:=P.Targets.AddExampleunit('examples/hmd5.pas');
- T:=P.Targets.AddExampleunit('examples/hsha1.pas');
+ T:=P.Targets.AddExampleunit('examples/hmd5.pp');
+ T:=P.Targets.AddExampleunit('examples/hsha1.pp');
+ T:=P.Targets.AddExampleunit('examples/md5performancetest.pas');
+ T:=P.Targets.AddExampleunit('examples/sha1performancetest.pas');
// md5.ref
{$ifndef ALLPACKAGES}
Run;
diff --git a/packages/hash/src/md5.pp b/packages/hash/src/md5.pp
index 6c0ea9be08..3f50acd3dc 100644
--- a/packages/hash/src/md5.pp
+++ b/packages/hash/src/md5.pp
@@ -1,6 +1,6 @@
{
This file is part of the Free Pascal packages.
- Copyright (c) 1999-2006 by the Free Pascal development team
+ Copyright (c) 1999-2014 by the Free Pascal development team
Implements a MD2 digest algorithm (RFC 1319)
Implements a MD4 digest algorithm (RFC 1320)
@@ -15,6 +15,13 @@
**********************************************************************}
+// Define to use original MD5 code on i386 processors.
+// Undefine to use original implementation.
+{ the assembler implementation does not work on Darwin }
+{$ifdef darwin}
+{$DEFINE MD5PASCAL}
+{$endif darwin}
+
unit md5;
{$mode objfpc}
@@ -298,6 +305,110 @@ begin
end;
+{$IF (NOT(DEFINED(MD5PASCAL))) and (DEFINED(CPUI386)) }
+{$i md5i386.inc}
+{$ENDIF}
+{$IF (NOT(DEFINED(MD5PASCAL))) and (DEFINED(CPUX86_64)) }
+{$OPTIMIZATION USERBP} //PEEPHOLE
+procedure MD5Transform(var Context: TMDContext; Buffer: Pointer);
+type
+ TBlock = array[0..15] of Cardinal;
+ PBlock = ^TBlock;
+var
+ a, b, c, d: Cardinal;
+ //Block: array[0..15] of Cardinal absolute Buffer;
+ Block: PBlock absolute Buffer;
+begin
+ //Invert(Buffer, @Block, 64);
+ a := Context.State[0];
+ b := Context.State[1];
+ c := Context.State[2];
+ d := Context.State[3];
+
+{$push}
+{$r-,q-}
+
+ // Round 1
+ a := b + roldword(dword(a + ((b and c) or ((not b) and d)) + Block^[0] + $d76aa478), 7);
+ d := a + roldword(dword(d + ((a and b) or ((not a) and c)) + Block^[1] + $e8c7b756), 12);
+ c := d + roldword(dword(c + ((d and a) or ((not d) and b)) + Block^[2] + $242070db), 17);
+ b := c + roldword(dword(b + ((c and d) or ((not c) and a)) + Block^[3] + $c1bdceee), 22);
+ a := b + roldword(dword(a + ((b and c) or ((not b) and d)) + Block^[4] + $f57c0faf), 7);
+ d := a + roldword(dword(d + ((a and b) or ((not a) and c)) + Block^[5] + $4787c62a), 12);
+ c := d + roldword(dword(c + ((d and a) or ((not d) and b)) + Block^[6] + $a8304613), 17);
+ b := c + roldword(dword(b + ((c and d) or ((not c) and a)) + Block^[7] + $fd469501), 22);
+ a := b + roldword(dword(a + ((b and c) or ((not b) and d)) + Block^[8] + $698098d8), 7);
+ d := a + roldword(dword(d + ((a and b) or ((not a) and c)) + Block^[9] + $8b44f7af), 12);
+ c := d + roldword(dword(c + ((d and a) or ((not d) and b)) + Block^[10] + $ffff5bb1), 17);
+ b := c + roldword(dword(b + ((c and d) or ((not c) and a)) + Block^[11] + $895cd7be), 22);
+ a := b + roldword(dword(a + ((b and c) or ((not b) and d)) + Block^[12] + $6b901122), 7);
+ d := a + roldword(dword(d + ((a and b) or ((not a) and c)) + Block^[13] + $fd987193), 12);
+ c := d + roldword(dword(c + ((d and a) or ((not d) and b)) + Block^[14] + $a679438e), 17);
+ b := c + roldword(dword(b + ((c and d) or ((not c) and a)) + Block^[15] + $49b40821), 22);
+ // Round 2
+ a := b + roldword(dword(a + ((b and d) or (c and (not d))) + Block^[1] + $f61e2562), 5);
+ d := a + roldword(dword(d + ((a and c) or (b and (not c))) + Block^[6] + $c040b340), 9);
+ c := d + roldword(dword(c + ((d and b) or (a and (not b))) + Block^[11] + $265e5a51), 14);
+ b := c + roldword(dword(b + ((c and a) or (d and (not a))) + Block^[0] + $e9b6c7aa), 20);
+ a := b + roldword(dword(a + ((b and d) or (c and (not d))) + Block^[5] + $d62f105d), 5);
+ d := a + roldword(dword(d + ((a and c) or (b and (not c))) + Block^[10] + $02441453), 9);
+ c := d + roldword(dword(c + ((d and b) or (a and (not b))) + Block^[15] + $d8a1e681), 14);
+ b := c + roldword(dword(b + ((c and a) or (d and (not a))) + Block^[4] + $e7d3fbc8), 20);
+ a := b + roldword(dword(a + ((b and d) or (c and (not d))) + Block^[9] + $21e1cde6), 5);
+ d := a + roldword(dword(d + ((a and c) or (b and (not c))) + Block^[14] + $c33707d6), 9);
+ c := d + roldword(dword(c + ((d and b) or (a and (not b))) + Block^[3] + $f4d50d87), 14);
+ b := c + roldword(dword(b + ((c and a) or (d and (not a))) + Block^[8] + $455a14ed), 20);
+ a := b + roldword(dword(a + ((b and d) or (c and (not d))) + Block^[13] + $a9e3e905), 5);
+ d := a + roldword(dword(d + ((a and c) or (b and (not c))) + Block^[2] + $fcefa3f8), 9);
+ c := d + roldword(dword(c + ((d and b) or (a and (not b))) + Block^[7] + $676f02d9), 14);
+ b := c + roldword(dword(b + ((c and a) or (d and (not a))) + Block^[12] + $8d2a4c8a), 20);
+ // Round 3
+ a := b + roldword(dword(a + (b xor c xor d) + Block^[5] + $fffa3942), 4);
+ d := a + roldword(dword(d + (a xor b xor c) + Block^[8] + $8771f681), 11);
+ c := d + roldword(dword(c + (d xor a xor b) + Block^[11] + $6d9d6122), 16);
+ b := c + roldword(dword(b + (c xor d xor a) + Block^[14] + $fde5380c), 23);
+ a := b + roldword(dword(a + (b xor c xor d) + Block^[1] + $a4beea44), 4);
+ d := a + roldword(dword(d + (a xor b xor c) + Block^[4] + $4bdecfa9), 11);
+ c := d + roldword(dword(c + (d xor a xor b) + Block^[7] + $f6bb4b60), 16);
+ b := c + roldword(dword(b + (c xor d xor a) + Block^[10] + $bebfbc70), 23);
+ a := b + roldword(dword(a + (b xor c xor d) + Block^[13] + $289b7ec6), 4);
+ d := a + roldword(dword(d + (a xor b xor c) + Block^[0] + $eaa127fa), 11);
+ c := d + roldword(dword(c + (d xor a xor b) + Block^[3] + $d4ef3085), 16);
+ b := c + roldword(dword(b + (c xor d xor a) + Block^[6] + $04881d05), 23);
+ a := b + roldword(dword(a + (b xor c xor d) + Block^[9] + $d9d4d039), 4);
+ d := a + roldword(dword(d + (a xor b xor c) + Block^[12] + $e6db99e5), 11);
+ c := d + roldword(dword(c + (d xor a xor b) + Block^[15] + $1fa27cf8), 16);
+ b := c + roldword(dword(b + (c xor d xor a) + Block^[2] + $c4ac5665), 23);
+ // Round 4
+ a := b + roldword(dword(a + (c xor (b or (not d))) + Block^[0] + $f4292244), 6);
+ d := a + roldword(dword(d + (b xor (a or (not c))) + Block^[7] + $432aff97), 10);
+ c := d + roldword(dword(c + (a xor (d or (not b))) + Block^[14] + $ab9423a7), 15);
+ b := c + roldword(dword(b + (d xor (c or (not a))) + Block^[5] + $fc93a039), 21);
+ a := b + roldword(dword(a + (c xor (b or (not d))) + Block^[12] + $655b59c3), 6);
+ d := a + roldword(dword(d + (b xor (a or (not c))) + Block^[3] + $8f0ccc92), 10);
+ c := d + roldword(dword(c + (a xor (d or (not b))) + Block^[10] + $ffeff47d), 15);
+ b := c + roldword(dword(b + (d xor (c or (not a))) + Block^[1] + $85845dd1), 21);
+ a := b + roldword(dword(a + (c xor (b or (not d))) + Block^[8] + $6fa87e4f), 6);
+ d := a + roldword(dword(d + (b xor (a or (not c))) + Block^[15] + $fe2ce6e0), 10);
+ c := d + roldword(dword(c + (a xor (d or (not b))) + Block^[6] + $a3014314), 15);
+ b := c + roldword(dword(b + (d xor (c or (not a))) + Block^[13] + $4e0811a1), 21);
+ a := b + roldword(dword(a + (c xor (b or (not d))) + Block^[4] + $f7537e82), 6);
+ d := a + roldword(dword(d + (b xor (a or (not c))) + Block^[11] + $bd3af235), 10);
+ c := d + roldword(dword(c + (a xor (d or (not b))) + Block^[2] + $2ad7d2bb), 15);
+ b := c + roldword(dword(b + (d xor (c or (not a))) + Block^[9] + $eb86d391), 21);
+
+
+ inc(Context.State[0],a);
+ inc(Context.State[1],b);
+ inc(Context.State[2],c);
+ inc(Context.State[3],d);
+{$pop}
+ inc(Context.Length,64);
+end;
+{$OPTIMIZATION DEFAULT}
+{$ENDIF}
+{$IF DEFINED(MD5PASCAL) or (NOT ((DEFINED(CPUX86_64)) or (DEFINED(CPUI386))))}
+// Original version
procedure MD5Transform(var Context: TMDContext; Buffer: Pointer);
{$push}
@@ -372,6 +483,7 @@ begin
{$pop}
inc(Context.Length,64);
end;
+{$ENDIF}
procedure MDInit(out Context: TMDContext; const Version: TMDVersion);
diff --git a/packages/hash/src/md5i386.inc b/packages/hash/src/md5i386.inc
new file mode 100644
index 0000000000..261b13eca1
--- /dev/null
+++ b/packages/hash/src/md5i386.inc
@@ -0,0 +1,747 @@
+// i386 assembler optimized version
+procedure MD5Transform(var Context: TMDContext; Buffer: Pointer);assembler;
+var
+ pContext: ^TMDContext;
+ pBuffer: Pointer;
+ a, b, c, d: Cardinal;
+ //Block: array[0..15] of Cardinal;
+{$asmmode intel}
+asm
+ push EAX
+ push EBX
+ push ECX
+ push EDX
+ push ESI
+ push EDI
+ push EBP
+
+ mov pContext, eax
+ mov pBuffer, edx
+
+ mov ESI, pContext
+ mov ebp, edx
+
+// A := Context.State[0];
+ mov EAX, [ESI+12+4*0]
+// B := Context.State[1];
+ mov EBX, [ESI+12+4*1]
+// C := Context.State[2];
+ mov ECX, [ESI+12+4*2]
+// D := Context.State[3];
+ mov EDX, [ESI+12+4*3]
+// Round 1
+//EAX := EBX + roldword(dword(EAX + ((EBX and ECX) or ((not EBX) and EDX)) + Data[0] + $d76aa478), 7);
+ mov ESI, ECX
+ add EAX, $d76aa478
+ xor ESI, EDX
+ add EAX, [ebp + 4*0]
+ and ESI, EBX
+ xor ESI, EDX
+ add EAX, ESI
+ rol EAX, 7
+ add EAX, EBX
+
+//EDX := EAX + roldword(dword(EDX + ((EAX and EBX) or ((not EAX) and ECX)) + Data[1] + $e8c7b756), 12);
+ mov ESI, EBX
+ add EDX, $e8c7b756
+ xor ESI, ECX
+ add EDX, [ebp + 4*1]
+ and ESI, EAX
+ xor ESI, ECX
+ add EDX, ESI
+ rol EDX, 12
+ add EDX, EAX
+
+//ECX := EDX + roldword(dword(ECX + ((EDX and EAX) or ((not EDX) and EBX)) + Data[2] + $242070db), 17);
+ mov ESI, EAX
+ add ECX, $242070db
+ xor ESI, EBX
+ add ECX, [ebp + 4*2]
+ and ESI, EDX
+ xor ESI, EBX
+ add ECX, ESI
+ rol ECX, 17
+ add ECX, EDX
+
+//EBX := ECX + roldword(dword(EBX + ((ECX and EDX) or ((not ECX) and EAX)) + Data[3] + $c1bdceee), 22);
+ mov ESI, EDX
+ add EBX, $c1bdceee
+ xor ESI, EAX
+ add EBX, [ebp + 4*3]
+ and ESI, ECX
+ xor ESI, EAX
+ add EBX, ESI
+ rol EBX, 22
+ add EBX, ECX
+
+//EAX := EBX + roldword(dword(EAX + ((EBX and ECX) or ((not EBX) and EDX)) + Data[4] + $f57c0faf), 7);
+ mov ESI, ECX
+ add EAX, $f57c0faf
+ xor ESI, EDX
+ add EAX, [ebp + 4*4]
+ and ESI, EBX
+ xor ESI, EDX
+ add EAX, ESI
+ rol EAX, 7
+ add EAX, EBX
+
+//EDX := EAX + roldword(dword(EDX + ((EAX and EBX) or ((not EAX) and ECX)) + Data[5] + $4787c62a), 12);
+ mov ESI, EBX
+ add EDX, $4787c62a
+ xor ESI, ECX
+ add EDX, [ebp + 4*5]
+ and ESI, EAX
+ xor ESI, ECX
+ add EDX, ESI
+ rol EDX, 12
+ add EDX, EAX
+
+//ECX := EDX + roldword(dword(ECX + ((EDX and EAX) or ((not EDX) and EBX)) + Data[6] + $a8304613), 17);
+ mov ESI, EAX
+ add ECX, $a8304613
+ xor ESI, EBX
+ add ECX, [ebp + 4*6]
+ and ESI, EDX
+ xor ESI, EBX
+ add ECX, ESI
+ rol ECX, 17
+ add ECX, EDX
+
+//EBX := ECX + roldword(dword(EBX + ((ECX and EDX) or ((not ECX) and EAX)) + Data[7] + $fd469501), 22);
+ mov ESI, EDX
+ add EBX, $fd469501
+ xor ESI, EAX
+ add EBX, [ebp + 4*7]
+ and ESI, ECX
+ xor ESI, EAX
+ add EBX, ESI
+ rol EBX, 22
+ add EBX, ECX
+
+//EAX := EBX + roldword(dword(EAX + ((EBX and ECX) or ((not EBX) and EDX)) + Data[8] + $698098d8), 7);
+ mov ESI, ECX
+ add EAX, $698098d8
+ xor ESI, EDX
+ add EAX, [ebp + 4*8]
+ and ESI, EBX
+ xor ESI, EDX
+ add EAX, ESI
+ rol EAX, 7
+ add EAX, EBX
+
+//EDX := EAX + roldword(dword(EDX + ((EAX and EBX) or ((not EAX) and ECX)) + Data[9] + $8b44f7af), 12);
+ mov ESI, EBX
+ add EDX, $8b44f7af
+ xor ESI, ECX
+ add EDX, [ebp + 4*9]
+ and ESI, EAX
+ xor ESI, ECX
+ add EDX, ESI
+ rol EDX, 12
+ add EDX, EAX
+
+//ECX := EDX + roldword(dword(ECX + ((EDX and EAX) or ((not EDX) and EBX)) + Data[10] + $ffff5bb1), 17);
+ mov ESI, EAX
+ add ECX, $ffff5bb1
+ xor ESI, EBX
+ add ECX, [ebp + 4*10]
+ and ESI, EDX
+ xor ESI, EBX
+ add ECX, ESI
+ rol ECX, 17
+ add ECX, EDX
+
+//EBX := ECX + roldword(dword(EBX + ((ECX and EDX) or ((not ECX) and EAX)) + Data[11] + $895cd7be), 22);
+ mov ESI, EDX
+ add EBX, $895cd7be
+ xor ESI, EAX
+ add EBX, [ebp + 4*11]
+ and ESI, ECX
+ xor ESI, EAX
+ add EBX, ESI
+ rol EBX, 22
+ add EBX, ECX
+
+//EAX := EBX + roldword(dword(EAX + ((EBX and ECX) or ((not EBX) and EDX)) + Data[12] + $6b901122), 7);
+ mov ESI, ECX
+ add EAX, $6b901122
+ xor ESI, EDX
+ add EAX, [ebp + 4*12]
+ and ESI, EBX
+ xor ESI, EDX
+ add EAX, ESI
+ rol EAX, 7
+ add EAX, EBX
+
+//EDX := EAX + roldword(dword(EDX + ((EAX and EBX) or ((not EAX) and ECX)) + Data[13] + $fd987193), 12);
+ mov ESI, EBX
+ add EDX, $fd987193
+ xor ESI, ECX
+ add EDX, [ebp + 4*13]
+ and ESI, EAX
+ xor ESI, ECX
+ add EDX, ESI
+ rol EDX, 12
+ add EDX, EAX
+
+//ECX := EDX + roldword(dword(ECX + ((EDX and EAX) or ((not EDX) and EBX)) + Data[14] + $a679438e), 17);
+ mov ESI, EAX
+ add ECX, $a679438e
+ xor ESI, EBX
+ add ECX, [ebp + 4*14]
+ and ESI, EDX
+ xor ESI, EBX
+ add ECX, ESI
+ rol ECX, 17
+ add ECX, EDX
+
+//EBX := ECX + roldword(dword(EBX + ((ECX and EDX) or ((not ECX) and EAX)) + Data[15] + $49b40821), 22);
+ mov ESI, EDX
+ add EBX, $49b40821
+ xor ESI, EAX
+ add EBX, [ebp + 4*15]
+ and ESI, ECX
+ xor ESI, EAX
+ add EBX, ESI
+ rol EBX, 22
+ add EBX, ECX
+
+// Round 2
+//EAX := EBX + roldword(dword(EAX + ((EBX and EDX) or (ECX and (not EDX))) + Data[1] + $f61e2562), 5);
+ mov ESI, EBX
+ add EAX, $f61e2562
+ xor ESI, ECX
+ add EAX, [ebp + 4*1]
+ and ESI, EDX
+ xor ESI, ECX
+ add EAX, ESI
+ rol EAX, 5
+ add EAX, EBX
+
+//EDX := EAX + roldword(dword(EDX + ((EAX and ECX) or (EBX and (not ECX))) + Data[6] + $c040b340), 9);
+ mov ESI, EAX
+ add EDX, $c040b340
+ xor ESI, EBX
+ add EDX, [ebp + 4*6]
+ and ESI, ECX
+ xor ESI, EBX
+ add EDX, ESI
+ rol EDX, 9
+ add EDX, EAX
+
+//ECX := EDX + roldword(dword(ECX + ((EDX and EBX) or (EAX and (not EBX))) + Data[11] + $265e5a51), 14);
+ mov ESI, EDX
+ add ECX, $265e5a51
+ xor ESI, EAX
+ add ECX, [ebp + 4*11]
+ and ESI, EBX
+ xor ESI, EAX
+ add ECX, ESI
+ rol ECX, 14
+ add ECX, EDX
+
+//EBX := ECX + roldword(dword(EBX + ((ECX and EAX) or (EDX and (not EAX))) + Data[0] + $e9b6c7aa), 20);
+ mov ESI, ECX
+ add EBX, $e9b6c7aa
+ xor ESI, EDX
+ add EBX, [ebp + 4*0]
+ and ESI, EAX
+ xor ESI, EDX
+ add EBX, ESI
+ rol EBX, 20
+ add EBX, ECX
+
+//EAX := EBX + roldword(dword(EAX + ((EBX and EDX) or (ECX and (not EDX))) + Data[5] + $d62f105d), 5);
+ mov ESI, EBX
+ add EAX, $d62f105d
+ xor ESI, ECX
+ add EAX, [ebp + 4*5]
+ and ESI, EDX
+ xor ESI, ECX
+ add EAX, ESI
+ rol EAX, 5
+ add EAX, EBX
+
+//EDX := EAX + roldword(dword(EDX + ((EAX and ECX) or (EBX and (not ECX))) + Data[10] + $02441453), 9);
+ mov ESI, EAX
+ add EDX, $02441453
+ xor ESI, EBX
+ add EDX, [ebp + 4*10]
+ and ESI, ECX
+ xor ESI, EBX
+ add EDX, ESI
+ rol EDX, 9
+ add EDX, EAX
+
+//ECX := EDX + roldword(dword(ECX + ((EDX and EBX) or (EAX and (not EBX))) + Data[15] + $d8a1e681), 14);
+ mov ESI, EDX
+ add ECX, $d8a1e681
+ xor ESI, EAX
+ add ECX, [ebp + 4*15]
+ and ESI, EBX
+ xor ESI, EAX
+ add ECX, ESI
+ rol ECX, 14
+ add ECX, EDX
+
+//EBX := ECX + roldword(dword(EBX + ((ECX and EAX) or (EDX and (not EAX))) + Data[4] + $e7d3fbc8), 20);
+ mov ESI, ECX
+ add EBX, $e7d3fbc8
+ xor ESI, EDX
+ add EBX, [ebp + 4*4]
+ and ESI, EAX
+ xor ESI, EDX
+ add EBX, ESI
+ rol EBX, 20
+ add EBX, ECX
+
+//EAX := EBX + roldword(dword(EAX + ((EBX and EDX) or (ECX and (not EDX))) + Data[9] + $21e1cde6), 5);
+ mov ESI, EBX
+ add EAX, $21e1cde6
+ xor ESI, ECX
+ add EAX, [ebp + 4*9]
+ and ESI, EDX
+ xor ESI, ECX
+ add EAX, ESI
+ rol EAX, 5
+ add EAX, EBX
+
+//EDX := EAX + roldword(dword(EDX + ((EAX and ECX) or (EBX and (not ECX))) + Data[14] + $c33707d6), 9);
+ mov ESI, EAX
+ add EDX, $c33707d6
+ xor ESI, EBX
+ add EDX, [ebp + 4*14]
+ and ESI, ECX
+ xor ESI, EBX
+ add EDX, ESI
+ rol EDX, 9
+ add EDX, EAX
+
+//ECX := EDX + roldword(dword(ECX + ((EDX and EBX) or (EAX and (not EBX))) + Data[3] + $f4d50d87), 14);
+ mov ESI, EDX
+ add ECX, $f4d50d87
+ xor ESI, EAX
+ add ECX, [ebp + 4*3]
+ and ESI, EBX
+ xor ESI, EAX
+ add ECX, ESI
+ rol ECX, 14
+ add ECX, EDX
+
+//EBX := ECX + roldword(dword(EBX + ((ECX and EAX) or (EDX and (not EAX))) + Data[8] + $455a14ed), 20);
+ mov ESI, ECX
+ add EBX, $455a14ed
+ xor ESI, EDX
+ add EBX, [ebp + 4*8]
+ and ESI, EAX
+ xor ESI, EDX
+ add EBX, ESI
+ rol EBX, 20
+ add EBX, ECX
+
+//EAX := EBX + roldword(dword(EAX + ((EBX and EDX) or (ECX and (not EDX))) + Data[13] + $a9e3e905), 5);
+ mov ESI, EBX
+ add EAX, $a9e3e905
+ xor ESI, ECX
+ add EAX, [ebp + 4*13]
+ and ESI, EDX
+ xor ESI, ECX
+ add EAX, ESI
+ rol EAX, 5
+ add EAX, EBX
+
+//EDX := EAX + roldword(dword(EDX + ((EAX and ECX) or (EBX and (not ECX))) + Data[2] + $fcefa3f8), 9);
+ mov ESI, EAX
+ add EDX, $fcefa3f8
+ xor ESI, EBX
+ add EDX, [ebp + 4*2]
+ and ESI, ECX
+ xor ESI, EBX
+ add EDX, ESI
+ rol EDX, 9
+ add EDX, EAX
+
+//ECX := EDX + roldword(dword(ECX + ((EDX and EBX) or (EAX and (not EBX))) + Data[7] + $676f02d9), 14);
+ mov ESI, EDX
+ add ECX, $676f02d9
+ xor ESI, EAX
+ add ECX, [ebp + 4*7]
+ and ESI, EBX
+ xor ESI, EAX
+ add ECX, ESI
+ rol ECX, 14
+ add ECX, EDX
+
+//EBX := ECX + roldword(dword(EBX + ((ECX and EAX) or (EDX and (not EAX))) + Data[12] + $8d2a4c8a), 20);
+ mov ESI, ECX
+ add EBX, $8d2a4c8a
+ xor ESI, EDX
+ add EBX, [ebp + 4*12]
+ and ESI, EAX
+ xor ESI, EDX
+ add EBX, ESI
+ rol EBX, 20
+ add EBX, ECX
+
+// Round 3
+//EAX := EBX + roldword(dword(EAX + (EBX xor ECX xor EDX) + Data[5] + $fffa3942), 4);
+ mov ESI, EBX
+ add EAX, $fffa3942
+ xor ESI, ECX
+ add EAX, [ebp + 4*5]
+ xor ESI, EDX
+ add EAX, ESI
+ rol EAX, 4
+ add EAX, EBX
+
+//EDX := EAX + roldword(dword(EDX + (EAX xor EBX xor ECX) + Data[8] + $8771f681), 11);
+ mov ESI, EAX
+ add EDX, $8771f681
+ xor ESI, EBX
+ add EDX, [ebp + 4*8]
+ xor ESI, ECX
+ add EDX, ESI
+ rol EDX, 11
+ add EDX, EAX
+
+//ECX := EDX + roldword(dword(ECX + (EDX xor EAX xor EBX) + Data[11] + $6d9d6122), 16);
+ mov ESI, EDX
+ add ECX, $6d9d6122
+ xor ESI, EAX
+ add ECX, [ebp + 4*11]
+ xor ESI, EBX
+ add ECX, ESI
+ rol ECX, 16
+ add ECX, EDX
+
+//EBX := ECX + roldword(dword(EBX + (ECX xor EDX xor EAX) + Data[14] + $fde5380c), 23);
+ mov ESI, ECX
+ add EBX, $fde5380c
+ xor ESI, EDX
+ add EBX, [ebp + 4*14]
+ xor ESI, EAX
+ add EBX, ESI
+ rol EBX, 23
+ add EBX, ECX
+
+//EAX := EBX + roldword(dword(EAX + (EBX xor ECX xor EDX) + Data[1] + $a4beea44), 4);
+ mov ESI, EBX
+ add EAX, $a4beea44
+ xor ESI, ECX
+ add EAX, [ebp + 4*1]
+ xor ESI, EDX
+ add EAX, ESI
+ rol EAX, 4
+ add EAX, EBX
+
+//EDX := EAX + roldword(dword(EDX + (EAX xor EBX xor ECX) + Data[4] + $4bdecfa9), 11);
+ mov ESI, EAX
+ add EDX, $4bdecfa9
+ xor ESI, EBX
+ add EDX, [ebp + 4*4]
+ xor ESI, ECX
+ add EDX, ESI
+ rol EDX, 11
+ add EDX, EAX
+
+//ECX := EDX + roldword(dword(ECX + (EDX xor EAX xor EBX) + Data[7] + $f6bb4b60), 16);
+ mov ESI, EDX
+ add ECX, $f6bb4b60
+ xor ESI, EAX
+ add ECX, [ebp + 4*7]
+ xor ESI, EBX
+ add ECX, ESI
+ rol ECX, 16
+ add ECX, EDX
+
+//EBX := ECX + roldword(dword(EBX + (ECX xor EDX xor EAX) + Data[10] + $bebfbc70), 23);
+ mov ESI, ECX
+ add EBX, $bebfbc70
+ xor ESI, EDX
+ add EBX, [ebp + 4*10]
+ xor ESI, EAX
+ add EBX, ESI
+ rol EBX, 23
+ add EBX, ECX
+
+//EAX := EBX + roldword(dword(EAX + (EBX xor ECX xor EDX) + Data[13] + $289b7ec6), 4);
+ mov ESI, EBX
+ add EAX, $289b7ec6
+ xor ESI, ECX
+ add EAX, [ebp + 4*13]
+ xor ESI, EDX
+ add EAX, ESI
+ rol EAX, 4
+ add EAX, EBX
+
+//EDX := EAX + roldword(dword(EDX + (EAX xor EBX xor ECX) + Data[0] + $eaa127fa), 11);
+ mov ESI, EAX
+ add EDX, $eaa127fa
+ xor ESI, EBX
+ add EDX, [ebp + 4*0]
+ xor ESI, ECX
+ add EDX, ESI
+ rol EDX, 11
+ add EDX, EAX
+
+//ECX := EDX + roldword(dword(ECX + (EDX xor EAX xor EBX) + Data[3] + $d4ef3085), 16);
+ mov ESI, EDX
+ add ECX, $d4ef3085
+ xor ESI, EAX
+ add ECX, [ebp + 4*3]
+ xor ESI, EBX
+ add ECX, ESI
+ rol ECX, 16
+ add ECX, EDX
+
+//EBX := ECX + roldword(dword(EBX + (ECX xor EDX xor EAX) + Data[6] + $04881d05), 23);
+ mov ESI, ECX
+ add EBX, $04881d05
+ xor ESI, EDX
+ add EBX, [ebp + 4*6]
+ xor ESI, EAX
+ add EBX, ESI
+ rol EBX, 23
+ add EBX, ECX
+
+//EAX := EBX + roldword(dword(EAX + (EBX xor ECX xor EDX) + Data[9] + $d9d4d039), 4);
+ mov ESI, EBX
+ add EAX, $d9d4d039
+ xor ESI, ECX
+ add EAX, [ebp + 4*9]
+ xor ESI, EDX
+ add EAX, ESI
+ rol EAX, 4
+ add EAX, EBX
+
+//EDX := EAX + roldword(dword(EDX + (EAX xor EBX xor ECX) + Data[12] + $e6db99e5), 11);
+ mov ESI, EAX
+ add EDX, $e6db99e5
+ xor ESI, EBX
+ add EDX, [ebp + 4*12]
+ xor ESI, ECX
+ add EDX, ESI
+ rol EDX, 11
+ add EDX, EAX
+
+//ECX := EDX + roldword(dword(ECX + (EDX xor EAX xor EBX) + Data[15] + $1fa27cf8), 16);
+ mov ESI, EDX
+ add ECX, $1fa27cf8
+ xor ESI, EAX
+ add ECX, [ebp + 4*15]
+ xor ESI, EBX
+ add ECX, ESI
+ rol ECX, 16
+ add ECX, EDX
+
+//EBX := ECX + roldword(dword(EBX + (ECX xor EDX xor EAX) + Data[2] + $c4ac5665), 23);
+ mov ESI, ECX
+ add EBX, $c4ac5665
+ xor ESI, EDX
+ add EBX, [ebp + 4*2]
+ xor ESI, EAX
+ add EBX, ESI
+ rol EBX, 23
+ add EBX, ECX
+
+// Round 4
+//EAX := EBX + roldword(dword(EAX + (ECX xor (EBX or (not EDX))) + Data[0] + $f4292244), 6);
+ mov ESI, EDX
+ add EAX, $f4292244
+ not ESI
+ add EAX, [ebp + 4*0]
+ or ESI, EBX
+ xor ESI, ECX
+ add EAX, ESI
+ rol EAX, 6
+ add EAX, EBX
+
+//EDX := EAX + roldword(dword(EDX + (EBX xor (EAX or (not ECX))) + Data[7] + $432aff97), 10);
+ mov ESI, ECX
+ add EDX, $432aff97
+ not ESI
+ add EDX, [ebp + 4*7]
+ or ESI, EAX
+ xor ESI, EBX
+ add EDX, ESI
+ rol EDX, 10
+ add EDX, EAX
+
+//ECX := EDX + roldword(dword(ECX + (EAX xor (EDX or (not EBX))) + Data[14] + $ab9423a7), 15);
+ mov ESI, EBX
+ add ECX, $ab9423a7
+ not ESI
+ add ECX, [ebp + 4*14]
+ or ESI, EDX
+ xor ESI, EAX
+ add ECX, ESI
+ rol ECX, 15
+ add ECX, EDX
+
+//EBX := ECX + roldword(dword(EBX + (EDX xor (ECX or (not EAX))) + Data[5] + $fc93a039), 21);
+ mov ESI, EAX
+ add EBX, $fc93a039
+ not ESI
+ add EBX, [ebp + 4*5]
+ or ESI, ECX
+ xor ESI, EDX
+ add EBX, ESI
+ rol EBX, 21
+ add EBX, ECX
+
+//EAX := EBX + roldword(dword(EAX + (ECX xor (EBX or (not EDX))) + Data[12] + $655b59c3), 6);
+ mov ESI, EDX
+ add EAX, $655b59c3
+ not ESI
+ add EAX, [ebp + 4*12]
+ or ESI, EBX
+ xor ESI, ECX
+ add EAX, ESI
+ rol EAX, 6
+ add EAX, EBX
+
+//EDX := EAX + roldword(dword(EDX + (EBX xor (EAX or (not ECX))) + Data[3] + $8f0ccc92), 10);
+ mov ESI, ECX
+ add EDX, $8f0ccc92
+ not ESI
+ add EDX, [ebp + 4*3]
+ or ESI, EAX
+ xor ESI, EBX
+ add EDX, ESI
+ rol EDX, 10
+ add EDX, EAX
+
+//ECX := EDX + roldword(dword(ECX + (EAX xor (EDX or (not EBX))) + Data[10] + $ffeff47d), 15);
+ mov ESI, EBX
+ add ECX, $ffeff47d
+ not ESI
+ add ECX, [ebp + 4*10]
+ or ESI, EDX
+ xor ESI, EAX
+ add ECX, ESI
+ rol ECX, 15
+ add ECX, EDX
+
+//EBX := ECX + roldword(dword(EBX + (EDX xor (ECX or (not EAX))) + Data[1] + $85845dd1), 21);
+ mov ESI, EAX
+ add EBX, $85845dd1
+ not ESI
+ add EBX, [ebp + 4*1]
+ or ESI, ECX
+ xor ESI, EDX
+ add EBX, ESI
+ rol EBX, 21
+ add EBX, ECX
+
+//EAX := EBX + roldword(dword(EAX + (ECX xor (EBX or (not EDX))) + Data[8] + $6fa87e4f), 6);
+ mov ESI, EDX
+ add EAX, $6fa87e4f
+ not ESI
+ add EAX, [ebp + 4*8]
+ or ESI, EBX
+ xor ESI, ECX
+ add EAX, ESI
+ rol EAX, 6
+ add EAX, EBX
+
+//EDX := EAX + roldword(dword(EDX + (EBX xor (EAX or (not ECX))) + Data[15] + $fe2ce6e0), 10);
+ mov ESI, ECX
+ add EDX, $fe2ce6e0
+ not ESI
+ add EDX, [ebp + 4*15]
+ or ESI, EAX
+ xor ESI, EBX
+ add EDX, ESI
+ rol EDX, 10
+ add EDX, EAX
+
+//ECX := EDX + roldword(dword(ECX + (EAX xor (EDX or (not EBX))) + Data[6] + $a3014314), 15);
+ mov ESI, EBX
+ add ECX, $a3014314
+ not ESI
+ add ECX, [ebp + 4*6]
+ or ESI, EDX
+ xor ESI, EAX
+ add ECX, ESI
+ rol ECX, 15
+ add ECX, EDX
+
+//EBX := ECX + roldword(dword(EBX + (EDX xor (ECX or (not EAX))) + Data[13] + $4e0811a1), 21);
+ mov ESI, EAX
+ add EBX, $4e0811a1
+ not ESI
+ add EBX, [ebp + 4*13]
+ or ESI, ECX
+ xor ESI, EDX
+ add EBX, ESI
+ rol EBX, 21
+ add EBX, ECX
+
+//EAX := EBX + roldword(dword(EAX + (ECX xor (EBX or (not EDX))) + Data[4] + $f7537e82), 6);
+ mov ESI, EDX
+ add EAX, $f7537e82
+ not ESI
+ add EAX, [ebp + 4*4]
+ or ESI, EBX
+ xor ESI, ECX
+ add EAX, ESI
+ rol EAX, 6
+ add EAX, EBX
+
+//EDX := EAX + roldword(dword(EDX + (EBX xor (EAX or (not ECX))) + Data[11] + $bd3af235), 10);
+ mov ESI, ECX
+ add EDX, $bd3af235
+ not ESI
+ add EDX, [ebp + 4*11]
+ or ESI, EAX
+ xor ESI, EBX
+ add EDX, ESI
+ rol EDX, 10
+ add EDX, EAX
+
+//ECX := EDX + roldword(dword(ECX + (EAX xor (EDX or (not EBX))) + Data[2] + $2ad7d2bb), 15);
+ mov ESI, EBX
+ add ECX, $2ad7d2bb
+ not ESI
+ add ECX, [ebp + 4*2]
+ or ESI, EDX
+ xor ESI, EAX
+ add ECX, ESI
+ rol ECX, 15
+ add ECX, EDX
+
+//EBX := ECX + roldword(dword(EBX + (EDX xor (ECX or (not EAX))) + Data[9] + $eb86d391), 21);
+ mov ESI, EAX
+ add EBX, $eb86d391
+ not ESI
+ add EBX, [ebp + 4*9]
+ or ESI, ECX
+ xor ESI, EDX
+ add EBX, ESI
+ rol EBX, 21
+ add EBX, ECX
+
+
+ pop EBP
+
+ mov EDI, [pContext{.State}]
+// Inc(Context.State[0], A);
+ add [EDI+12+4*0], EAX
+// Inc(Context.State[1], B);
+ add [EDI+12+4*1], EBX
+// Inc(Context.State[2], C);
+ add [EDI+12+4*2], ECX
+// Inc(Context.State[3], D);
+ add [EDI+12+4*3], EDX
+
+//Inc(Context.Length,64);
+ add dword ptr [EDI+104],64
+ adc dword ptr [EDI+108],0
+
+ pop EDI
+ pop ESI
+ pop EDX
+ pop ECX
+ pop EBX
+ pop EAX
+end;
diff --git a/packages/hash/src/sha1.pp b/packages/hash/src/sha1.pp
index f4aa34c27c..81b9391997 100644
--- a/packages/hash/src/sha1.pp
+++ b/packages/hash/src/sha1.pp
@@ -1,6 +1,6 @@
{
This file is part of the Free Pascal packages.
- Copyright (c) 2009 by the Free Pascal development team
+ Copyright (c) 2009-2014 by the Free Pascal development team
Implements a SHA-1 digest algorithm (RFC 3174)
@@ -13,6 +13,13 @@
**********************************************************************}
+// Normally, if an optimized version is available for OS/CPU, that will be used
+// Define to use existing unoptimized implementation
+{ the assembler implementation does not work on darwin }
+{$ifdef darwin}
+{$DEFINE SHA1PASCAL}
+{$endif darwin}
+
unit sha1;
{$mode objfpc}{$h+}
@@ -77,6 +84,12 @@ const
K60 = $8F1BBCDC;
K80 = $CA62C1D6;
+{$IF (NOT(DEFINED(SHA1PASCAL))) and (DEFINED(CPU386)) }
+// Use assembler version if we have a suitable CPU as well
+// Define SHA1PASCAL to force use of original reference code
+{$i sha1i386.inc}
+{$ELSE}
+// Use original version if asked for, or when we have no optimized assembler version
procedure SHA1Transform(var ctx: TSHA1Context; Buf: Pointer);
var
A, B, C, D, E, T: Cardinal;
@@ -144,6 +157,7 @@ begin
{$pop}
Inc(ctx.Length,64);
end;
+{$ENDIF}
procedure SHA1Update(var ctx: TSHA1Context; const Buf; BufLen: PtrUInt);
var
@@ -303,4 +317,4 @@ begin
end;
end.
-k \ No newline at end of file
+k
diff --git a/packages/hash/src/sha1i386.inc b/packages/hash/src/sha1i386.inc
new file mode 100644
index 0000000000..b8e7b90951
--- /dev/null
+++ b/packages/hash/src/sha1i386.inc
@@ -0,0 +1,1951 @@
+procedure SHA1Transform(var ctx: TSHA1Context; const Buf: Pointer);assembler;
+var
+ pctx:^TSHA1Context;
+ pbuf:pointer;
+ A, B, C, D, E, T: Cardinal;
+ Data: array[0..15] of Cardinal;
+
+{$asmmode intel}
+asm
+ push EAX
+ push EBX
+ push ECX
+ push EDX
+ push ESI
+ push EDI
+ push EBP
+
+ mov pctx, eax
+ mov pbuf, edx
+
+// Invert(Buf, @Data, 64);
+//Beginning of Invert
+ mov eax, edx//[pbuf]
+ mov ebx, [eax+0]
+ bswap ebx
+ mov [data+0], ebx
+ mov ebx, [eax+4]
+ bswap ebx
+ mov [data+4], ebx
+ mov ebx, [eax+8]
+ bswap ebx
+ mov [data+8], ebx
+ mov ebx, [eax+12]
+ bswap ebx
+ mov [data+12], ebx
+ mov ebx, [eax+16]
+ bswap ebx
+ mov [data+16], ebx
+ mov ebx, [eax+20]
+ bswap ebx
+ mov [data+20], ebx
+ mov ebx, [eax+24]
+ bswap ebx
+ mov [data+24], ebx
+ mov ebx, [eax+28]
+ bswap ebx
+ mov [data+28], ebx
+ mov ebx, [eax+32]
+ bswap ebx
+ mov [data+32], ebx
+ mov ebx, [eax+36]
+ bswap ebx
+ mov [data+36], ebx
+ mov ebx, [eax+40]
+ bswap ebx
+ mov [data+40], ebx
+ mov ebx, [eax+44]
+ bswap ebx
+ mov [data+44], ebx
+ mov ebx, [eax+48]
+ bswap ebx
+ mov [data+48], ebx
+ mov ebx, [eax+52]
+ bswap ebx
+ mov [data+52], ebx
+ mov ebx, [eax+56]
+ bswap ebx
+ mov [data+56], ebx
+ mov ebx, [eax+60]
+ bswap ebx
+ mov [data+60], ebx
+//End of Invert
+
+// A := ctx.State[0];
+ mov EDI, pctx{.State}
+ mov EAX, [EDI]
+// B := ctx.State[1];
+ mov EBX, [EDI+4]
+// C := ctx.State[2];
+ mov ECX, [EDI+8]
+// D := ctx.State[3];
+ mov EDX, [EDI+12]
+// E := ctx.State[4];
+ mov ESI, [EDI+16]
+//i=0
+//* T := (EBX and ECX) or (not EBX and EDX) + K20 + ESI;
+ mov EDI, ECX
+ xor EDI, EDX
+ and EDI, EBX
+ xor EDI, EDX
+ add EDI, K20
+ add EDI, ESI
+//* EBX := rordword(EBX, 2);
+ ror EBX, 2
+//* ESI := T + roldword(EAX, 5) + Data[0];
+ mov ESI, EAX
+ rol ESI, 5
+ add ESI, EDI
+ add ESI, [esp+96-96+4*7+4*0]
+//* Data[0] := roldword(Data[0] xor Data[2] xor Data[8] xor Data[13], 1);
+ mov EDI, [esp+96-96+4*7+4*0]
+ xor EDI, [esp+96-96+4*7+4*2]
+ xor EDI, [esp+96-96+4*7+4*8]
+ xor EDI, [esp+96-96+4*7+4*13]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*0], EDI
+
+//i=1
+//* T := (EAX and EBX) or (not EAX and ECX) + K20 + EDX;
+ mov EDI, EBX
+ xor EDI, ECX
+ and EDI, EAX
+ xor EDI, ECX
+ add EDI, K20
+ add EDI, EDX
+//* EAX := rordword(EAX, 2);
+ ror EAX, 2
+//* EDX := T + roldword(ESI, 5) + Data[1];
+ mov EDX, ESI
+ rol EDX, 5
+ add EDX, EDI
+ add EDX, [esp+96-96+4*7+4*1]
+//* Data[1] := roldword(Data[1] xor Data[3] xor Data[9] xor Data[14], 1);
+ mov EDI, [esp+96-96+4*7+4*1]
+ xor EDI, [esp+96-96+4*7+4*3]
+ xor EDI, [esp+96-96+4*7+4*9]
+ xor EDI, [esp+96-96+4*7+4*14]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*1], EDI
+
+//i=2
+//* T := (ESI and EAX) or (not ESI and EBX) + K20 + ECX;
+ mov EDI, EAX
+ xor EDI, EBX
+ and EDI, ESI
+ xor EDI, EBX
+ add EDI, K20
+ add EDI, ECX
+//* ESI := rordword(ESI, 2);
+ ror ESI, 2
+//* ECX := T + roldword(EDX, 5) + Data[2];
+ mov ECX, EDX
+ rol ECX, 5
+ add ECX, EDI
+ add ECX, [esp+96-96+4*7+4*2]
+//* Data[2] := roldword(Data[2] xor Data[4] xor Data[10] xor Data[15], 1);
+ mov EDI, [esp+96-96+4*7+4*2]
+ xor EDI, [esp+96-96+4*7+4*4]
+ xor EDI, [esp+96-96+4*7+4*10]
+ xor EDI, [esp+96-96+4*7+4*15]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*2], EDI
+
+//i=3
+//* T := (EDX and ESI) or (not EDX and EAX) + K20 + EBX;
+ mov EDI, ESI
+ xor EDI, EAX
+ and EDI, EDX
+ xor EDI, EAX
+ add EDI, K20
+ add EDI, EBX
+//* EDX := rordword(EDX, 2);
+ ror EDX, 2
+//* EBX := T + roldword(ECX, 5) + Data[3];
+ mov EBX, ECX
+ rol EBX, 5
+ add EBX, EDI
+ add EBX, [esp+96-96+4*7+4*3]
+//* Data[3] := roldword(Data[3] xor Data[5] xor Data[11] xor Data[0], 1);
+ mov EDI, [esp+96-96+4*7+4*3]
+ xor EDI, [esp+96-96+4*7+4*5]
+ xor EDI, [esp+96-96+4*7+4*11]
+ xor EDI, [esp+96-96+4*7+4*0]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*3], EDI
+
+//i=4
+//* T := (ECX and EDX) or (not ECX and ESI) + K20 + EAX;
+ mov EDI, EDX
+ xor EDI, ESI
+ and EDI, ECX
+ xor EDI, ESI
+ add EDI, K20
+ add EDI, EAX
+//* ECX := rordword(ECX, 2);
+ ror ECX, 2
+//* EAX := T + roldword(EBX, 5) + Data[4];
+ mov EAX, EBX
+ rol EAX, 5
+ add EAX, EDI
+ add EAX, [esp+96-96+4*7+4*4]
+//* Data[4] := roldword(Data[4] xor Data[6] xor Data[12] xor Data[1], 1);
+ mov EDI, [esp+96-96+4*7+4*4]
+ xor EDI, [esp+96-96+4*7+4*6]
+ xor EDI, [esp+96-96+4*7+4*12]
+ xor EDI, [esp+96-96+4*7+4*1]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*4], EDI
+
+//i=5
+//* T := (EBX and ECX) or (not EBX and EDX) + K20 + ESI;
+ mov EDI, ECX
+ xor EDI, EDX
+ and EDI, EBX
+ xor EDI, EDX
+ add EDI, K20
+ add EDI, ESI
+//* EBX := rordword(EBX, 2);
+ ror EBX, 2
+//* ESI := T + roldword(EAX, 5) + Data[5];
+ mov ESI, EAX
+ rol ESI, 5
+ add ESI, EDI
+ add ESI, [esp+96-96+4*7+4*5]
+//* Data[5] := roldword(Data[5] xor Data[7] xor Data[13] xor Data[2], 1);
+ mov EDI, [esp+96-96+4*7+4*5]
+ xor EDI, [esp+96-96+4*7+4*7]
+ xor EDI, [esp+96-96+4*7+4*13]
+ xor EDI, [esp+96-96+4*7+4*2]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*5], EDI
+
+//i=6
+//* T := (EAX and EBX) or (not EAX and ECX) + K20 + EDX;
+ mov EDI, EBX
+ xor EDI, ECX
+ and EDI, EAX
+ xor EDI, ECX
+ add EDI, K20
+ add EDI, EDX
+//* EAX := rordword(EAX, 2);
+ ror EAX, 2
+//* EDX := T + roldword(ESI, 5) + Data[6];
+ mov EDX, ESI
+ rol EDX, 5
+ add EDX, EDI
+ add EDX, [esp+96-96+4*7+4*6]
+//* Data[6] := roldword(Data[6] xor Data[8] xor Data[14] xor Data[3], 1);
+ mov EDI, [esp+96-96+4*7+4*6]
+ xor EDI, [esp+96-96+4*7+4*8]
+ xor EDI, [esp+96-96+4*7+4*14]
+ xor EDI, [esp+96-96+4*7+4*3]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*6], EDI
+
+//i=7
+//* T := (ESI and EAX) or (not ESI and EBX) + K20 + ECX;
+ mov EDI, EAX
+ xor EDI, EBX
+ and EDI, ESI
+ xor EDI, EBX
+ add EDI, K20
+ add EDI, ECX
+//* ESI := rordword(ESI, 2);
+ ror ESI, 2
+//* ECX := T + roldword(EDX, 5) + Data[7];
+ mov ECX, EDX
+ rol ECX, 5
+ add ECX, EDI
+ add ECX, [esp+96-96+4*7+4*7]
+//* Data[7] := roldword(Data[7] xor Data[9] xor Data[15] xor Data[4], 1);
+ mov EDI, [esp+96-96+4*7+4*7]
+ xor EDI, [esp+96-96+4*7+4*9]
+ xor EDI, [esp+96-96+4*7+4*15]
+ xor EDI, [esp+96-96+4*7+4*4]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*7], EDI
+
+//i=8
+//* T := (EDX and ESI) or (not EDX and EAX) + K20 + EBX;
+ mov EDI, ESI
+ xor EDI, EAX
+ and EDI, EDX
+ xor EDI, EAX
+ add EDI, K20
+ add EDI, EBX
+//* EDX := rordword(EDX, 2);
+ ror EDX, 2
+//* EBX := T + roldword(ECX, 5) + Data[8];
+ mov EBX, ECX
+ rol EBX, 5
+ add EBX, EDI
+ add EBX, [esp+96-96+4*7+4*8]
+//* Data[8] := roldword(Data[8] xor Data[10] xor Data[0] xor Data[5], 1);
+ mov EDI, [esp+96-96+4*7+4*8]
+ xor EDI, [esp+96-96+4*7+4*10]
+ xor EDI, [esp+96-96+4*7+4*0]
+ xor EDI, [esp+96-96+4*7+4*5]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*8], EDI
+
+//i=9
+//* T := (ECX and EDX) or (not ECX and ESI) + K20 + EAX;
+ mov EDI, EDX
+ xor EDI, ESI
+ and EDI, ECX
+ xor EDI, ESI
+ add EDI, K20
+ add EDI, EAX
+//* ECX := rordword(ECX, 2);
+ ror ECX, 2
+//* EAX := T + roldword(EBX, 5) + Data[9];
+ mov EAX, EBX
+ rol EAX, 5
+ add EAX, EDI
+ add EAX, [esp+96-96+4*7+4*9]
+//* Data[9] := roldword(Data[9] xor Data[11] xor Data[1] xor Data[6], 1);
+ mov EDI, [esp+96-96+4*7+4*9]
+ xor EDI, [esp+96-96+4*7+4*11]
+ xor EDI, [esp+96-96+4*7+4*1]
+ xor EDI, [esp+96-96+4*7+4*6]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*9], EDI
+
+//i=10
+//* T := (EBX and ECX) or (not EBX and EDX) + K20 + ESI;
+ mov EDI, ECX
+ xor EDI, EDX
+ and EDI, EBX
+ xor EDI, EDX
+ add EDI, K20
+ add EDI, ESI
+//* EBX := rordword(EBX, 2);
+ ror EBX, 2
+//* ESI := T + roldword(EAX, 5) + Data[10];
+ mov ESI, EAX
+ rol ESI, 5
+ add ESI, EDI
+ add ESI, [esp+96-96+4*7+4*10]
+//* Data[10] := roldword(Data[10] xor Data[12] xor Data[2] xor Data[7], 1);
+ mov EDI, [esp+96-96+4*7+4*10]
+ xor EDI, [esp+96-96+4*7+4*12]
+ xor EDI, [esp+96-96+4*7+4*2]
+ xor EDI, [esp+96-96+4*7+4*7]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*10], EDI
+
+//i=11
+//* T := (EAX and EBX) or (not EAX and ECX) + K20 + EDX;
+ mov EDI, EBX
+ xor EDI, ECX
+ and EDI, EAX
+ xor EDI, ECX
+ add EDI, K20
+ add EDI, EDX
+//* EAX := rordword(EAX, 2);
+ ror EAX, 2
+//* EDX := T + roldword(ESI, 5) + Data[11];
+ mov EDX, ESI
+ rol EDX, 5
+ add EDX, EDI
+ add EDX, [esp+96-96+4*7+4*11]
+//* Data[11] := roldword(Data[11] xor Data[13] xor Data[3] xor Data[8], 1);
+ mov EDI, [esp+96-96+4*7+4*11]
+ xor EDI, [esp+96-96+4*7+4*13]
+ xor EDI, [esp+96-96+4*7+4*3]
+ xor EDI, [esp+96-96+4*7+4*8]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*11], EDI
+
+//i=12
+//* T := (ESI and EAX) or (not ESI and EBX) + K20 + ECX;
+ mov EDI, EAX
+ xor EDI, EBX
+ and EDI, ESI
+ xor EDI, EBX
+ add EDI, K20
+ add EDI, ECX
+//* ESI := rordword(ESI, 2);
+ ror ESI, 2
+//* ECX := T + roldword(EDX, 5) + Data[12];
+ mov ECX, EDX
+ rol ECX, 5
+ add ECX, EDI
+ add ECX, [esp+96-96+4*7+4*12]
+//* Data[12] := roldword(Data[12] xor Data[14] xor Data[4] xor Data[9], 1);
+ mov EDI, [esp+96-96+4*7+4*12]
+ xor EDI, [esp+96-96+4*7+4*14]
+ xor EDI, [esp+96-96+4*7+4*4]
+ xor EDI, [esp+96-96+4*7+4*9]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*12], EDI
+
+//i=13
+//* T := (EDX and ESI) or (not EDX and EAX) + K20 + EBX;
+ mov EDI, ESI
+ xor EDI, EAX
+ and EDI, EDX
+ xor EDI, EAX
+ add EDI, K20
+ add EDI, EBX
+//* EDX := rordword(EDX, 2);
+ ror EDX, 2
+//* EBX := T + roldword(ECX, 5) + Data[13];
+ mov EBX, ECX
+ rol EBX, 5
+ add EBX, EDI
+ add EBX, [esp+96-96+4*7+4*13]
+//* Data[13] := roldword(Data[13] xor Data[15] xor Data[5] xor Data[10], 1);
+ mov EDI, [esp+96-96+4*7+4*13]
+ xor EDI, [esp+96-96+4*7+4*15]
+ xor EDI, [esp+96-96+4*7+4*5]
+ xor EDI, [esp+96-96+4*7+4*10]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*13], EDI
+
+//i=14
+//* T := (ECX and EDX) or (not ECX and ESI) + K20 + EAX;
+ mov EDI, EDX
+ xor EDI, ESI
+ and EDI, ECX
+ xor EDI, ESI
+ add EDI, K20
+ add EDI, EAX
+//* ECX := rordword(ECX, 2);
+ ror ECX, 2
+//* EAX := T + roldword(EBX, 5) + Data[14];
+ mov EAX, EBX
+ rol EAX, 5
+ add EAX, EDI
+ add EAX, [esp+96-96+4*7+4*14]
+//* Data[14] := roldword(Data[14] xor Data[0] xor Data[6] xor Data[11], 1);
+ mov EDI, [esp+96-96+4*7+4*14]
+ xor EDI, [esp+96-96+4*7+4*0]
+ xor EDI, [esp+96-96+4*7+4*6]
+ xor EDI, [esp+96-96+4*7+4*11]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*14], EDI
+
+//i=15
+//* T := (EBX and ECX) or (not EBX and EDX) + K20 + ESI;
+ mov EDI, ECX
+ xor EDI, EDX
+ and EDI, EBX
+ xor EDI, EDX
+ add EDI, K20
+ add EDI, ESI
+//* EBX := rordword(EBX, 2);
+ ror EBX, 2
+//* ESI := T + roldword(EAX, 5) + Data[15];
+ mov ESI, EAX
+ rol ESI, 5
+ add ESI, EDI
+ add ESI, [esp+96-96+4*7+4*15]
+//* Data[15] := roldword(Data[15] xor Data[1] xor Data[7] xor Data[12], 1);
+ mov EDI, [esp+96-96+4*7+4*15]
+ xor EDI, [esp+96-96+4*7+4*1]
+ xor EDI, [esp+96-96+4*7+4*7]
+ xor EDI, [esp+96-96+4*7+4*12]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*15], EDI
+
+//i=16
+//* T := (EAX and EBX) or (not EAX and ECX) + K20 + EDX;
+ mov EDI, EBX
+ xor EDI, ECX
+ and EDI, EAX
+ xor EDI, ECX
+ add EDI, K20
+ add EDI, EDX
+//* EAX := rordword(EAX, 2);
+ ror EAX, 2
+//* EDX := T + roldword(ESI, 5) + Data[0];
+ mov EDX, ESI
+ rol EDX, 5
+ add EDX, EDI
+ add EDX, [esp+96-96+4*7+4*0]
+//* Data[0] := roldword(Data[0] xor Data[2] xor Data[8] xor Data[13], 1);
+ mov EDI, [esp+96-96+4*7+4*0]
+ xor EDI, [esp+96-96+4*7+4*2]
+ xor EDI, [esp+96-96+4*7+4*8]
+ xor EDI, [esp+96-96+4*7+4*13]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*0], EDI
+
+//i=17
+//* T := (ESI and EAX) or (not ESI and EBX) + K20 + ECX;
+ mov EDI, EAX
+ xor EDI, EBX
+ and EDI, ESI
+ xor EDI, EBX
+ add EDI, K20
+ add EDI, ECX
+//* ESI := rordword(ESI, 2);
+ ror ESI, 2
+//* ECX := T + roldword(EDX, 5) + Data[1];
+ mov ECX, EDX
+ rol ECX, 5
+ add ECX, EDI
+ add ECX, [esp+96-96+4*7+4*1]
+//* Data[1] := roldword(Data[1] xor Data[3] xor Data[9] xor Data[14], 1);
+ mov EDI, [esp+96-96+4*7+4*1]
+ xor EDI, [esp+96-96+4*7+4*3]
+ xor EDI, [esp+96-96+4*7+4*9]
+ xor EDI, [esp+96-96+4*7+4*14]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*1], EDI
+
+//i=18
+//* T := (EDX and ESI) or (not EDX and EAX) + K20 + EBX;
+ mov EDI, ESI
+ xor EDI, EAX
+ and EDI, EDX
+ xor EDI, EAX
+ add EDI, K20
+ add EDI, EBX
+//* EDX := rordword(EDX, 2);
+ ror EDX, 2
+//* EBX := T + roldword(ECX, 5) + Data[2];
+ mov EBX, ECX
+ rol EBX, 5
+ add EBX, EDI
+ add EBX, [esp+96-96+4*7+4*2]
+//* Data[2] := roldword(Data[2] xor Data[4] xor Data[10] xor Data[15], 1);
+ mov EDI, [esp+96-96+4*7+4*2]
+ xor EDI, [esp+96-96+4*7+4*4]
+ xor EDI, [esp+96-96+4*7+4*10]
+ xor EDI, [esp+96-96+4*7+4*15]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*2], EDI
+
+//i=19
+//* T := (ECX and EDX) or (not ECX and ESI) + K20 + EAX;
+ mov EDI, EDX
+ xor EDI, ESI
+ and EDI, ECX
+ xor EDI, ESI
+ add EDI, K20
+ add EDI, EAX
+//* ECX := rordword(ECX, 2);
+ ror ECX, 2
+//* EAX := T + roldword(EBX, 5) + Data[3];
+ mov EAX, EBX
+ rol EAX, 5
+ add EAX, EDI
+ add EAX, [esp+96-96+4*7+4*3]
+//* Data[3] := roldword(Data[3] xor Data[5] xor Data[11] xor Data[0], 1);
+ mov EDI, [esp+96-96+4*7+4*3]
+ xor EDI, [esp+96-96+4*7+4*5]
+ xor EDI, [esp+96-96+4*7+4*11]
+ xor EDI, [esp+96-96+4*7+4*0]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*3], EDI
+
+//i=20
+//* T := (EBX xor ECX xor EDX) + K40 + ESI;
+ mov EDI, EBX
+ xor EDI, ECX
+ xor EDI, EDX
+ add EDI, K40
+ add EDI, ESI
+//* EBX := rordword(EBX, 2);
+ ror EBX, 2
+//* ESI := T + roldword(EAX, 5) + Data[4];
+ mov ESI, EAX
+ rol ESI, 5
+ add ESI, EDI
+ add ESI, [esp+96-96+4*7+4*4]
+//* Data[4] := roldword(Data[4] xor Data[6] xor Data[12] xor Data[1], 1);
+ mov EDI, [esp+96-96+4*7+4*4]
+ xor EDI, [esp+96-96+4*7+4*6]
+ xor EDI, [esp+96-96+4*7+4*12]
+ xor EDI, [esp+96-96+4*7+4*1]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*4], EDI
+
+//i=21
+//* T := (EAX xor EBX xor ECX) + K40 + EDX;
+ mov EDI, EAX
+ xor EDI, EBX
+ xor EDI, ECX
+ add EDI, K40
+ add EDI, EDX
+//* EAX := rordword(EAX, 2);
+ ror EAX, 2
+//* EDX := T + roldword(ESI, 5) + Data[5];
+ mov EDX, ESI
+ rol EDX, 5
+ add EDX, EDI
+ add EDX, [esp+96-96+4*7+4*5]
+//* Data[5] := roldword(Data[5] xor Data[7] xor Data[13] xor Data[2], 1);
+ mov EDI, [esp+96-96+4*7+4*5]
+ xor EDI, [esp+96-96+4*7+4*7]
+ xor EDI, [esp+96-96+4*7+4*13]
+ xor EDI, [esp+96-96+4*7+4*2]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*5], EDI
+
+//i=22
+//* T := (ESI xor EAX xor EBX) + K40 + ECX;
+ mov EDI, ESI
+ xor EDI, EAX
+ xor EDI, EBX
+ add EDI, K40
+ add EDI, ECX
+//* ESI := rordword(ESI, 2);
+ ror ESI, 2
+//* ECX := T + roldword(EDX, 5) + Data[6];
+ mov ECX, EDX
+ rol ECX, 5
+ add ECX, EDI
+ add ECX, [esp+96-96+4*7+4*6]
+//* Data[6] := roldword(Data[6] xor Data[8] xor Data[14] xor Data[3], 1);
+ mov EDI, [esp+96-96+4*7+4*6]
+ xor EDI, [esp+96-96+4*7+4*8]
+ xor EDI, [esp+96-96+4*7+4*14]
+ xor EDI, [esp+96-96+4*7+4*3]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*6], EDI
+
+//i=23
+//* T := (EDX xor ESI xor EAX) + K40 + EBX;
+ mov EDI, EDX
+ xor EDI, ESI
+ xor EDI, EAX
+ add EDI, K40
+ add EDI, EBX
+//* EDX := rordword(EDX, 2);
+ ror EDX, 2
+//* EBX := T + roldword(ECX, 5) + Data[7];
+ mov EBX, ECX
+ rol EBX, 5
+ add EBX, EDI
+ add EBX, [esp+96-96+4*7+4*7]
+//* Data[7] := roldword(Data[7] xor Data[9] xor Data[15] xor Data[4], 1);
+ mov EDI, [esp+96-96+4*7+4*7]
+ xor EDI, [esp+96-96+4*7+4*9]
+ xor EDI, [esp+96-96+4*7+4*15]
+ xor EDI, [esp+96-96+4*7+4*4]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*7], EDI
+
+//i=24
+//* T := (ECX xor EDX xor ESI) + K40 + EAX;
+ mov EDI, ECX
+ xor EDI, EDX
+ xor EDI, ESI
+ add EDI, K40
+ add EDI, EAX
+//* ECX := rordword(ECX, 2);
+ ror ECX, 2
+//* EAX := T + roldword(EBX, 5) + Data[8];
+ mov EAX, EBX
+ rol EAX, 5
+ add EAX, EDI
+ add EAX, [esp+96-96+4*7+4*8]
+//* Data[8] := roldword(Data[8] xor Data[10] xor Data[0] xor Data[5], 1);
+ mov EDI, [esp+96-96+4*7+4*8]
+ xor EDI, [esp+96-96+4*7+4*10]
+ xor EDI, [esp+96-96+4*7+4*0]
+ xor EDI, [esp+96-96+4*7+4*5]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*8], EDI
+
+//i=25
+//* T := (EBX xor ECX xor EDX) + K40 + ESI;
+ mov EDI, EBX
+ xor EDI, ECX
+ xor EDI, EDX
+ add EDI, K40
+ add EDI, ESI
+//* EBX := rordword(EBX, 2);
+ ror EBX, 2
+//* ESI := T + roldword(EAX, 5) + Data[9];
+ mov ESI, EAX
+ rol ESI, 5
+ add ESI, EDI
+ add ESI, [esp+96-96+4*7+4*9]
+//* Data[9] := roldword(Data[9] xor Data[11] xor Data[1] xor Data[6], 1);
+ mov EDI, [esp+96-96+4*7+4*9]
+ xor EDI, [esp+96-96+4*7+4*11]
+ xor EDI, [esp+96-96+4*7+4*1]
+ xor EDI, [esp+96-96+4*7+4*6]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*9], EDI
+
+//i=26
+//* T := (EAX xor EBX xor ECX) + K40 + EDX;
+ mov EDI, EAX
+ xor EDI, EBX
+ xor EDI, ECX
+ add EDI, K40
+ add EDI, EDX
+//* EAX := rordword(EAX, 2);
+ ror EAX, 2
+//* EDX := T + roldword(ESI, 5) + Data[10];
+ mov EDX, ESI
+ rol EDX, 5
+ add EDX, EDI
+ add EDX, [esp+96-96+4*7+4*10]
+//* Data[10] := roldword(Data[10] xor Data[12] xor Data[2] xor Data[7], 1);
+ mov EDI, [esp+96-96+4*7+4*10]
+ xor EDI, [esp+96-96+4*7+4*12]
+ xor EDI, [esp+96-96+4*7+4*2]
+ xor EDI, [esp+96-96+4*7+4*7]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*10], EDI
+
+//i=27
+//* T := (ESI xor EAX xor EBX) + K40 + ECX;
+ mov EDI, ESI
+ xor EDI, EAX
+ xor EDI, EBX
+ add EDI, K40
+ add EDI, ECX
+//* ESI := rordword(ESI, 2);
+ ror ESI, 2
+//* ECX := T + roldword(EDX, 5) + Data[11];
+ mov ECX, EDX
+ rol ECX, 5
+ add ECX, EDI
+ add ECX, [esp+96-96+4*7+4*11]
+//* Data[11] := roldword(Data[11] xor Data[13] xor Data[3] xor Data[8], 1);
+ mov EDI, [esp+96-96+4*7+4*11]
+ xor EDI, [esp+96-96+4*7+4*13]
+ xor EDI, [esp+96-96+4*7+4*3]
+ xor EDI, [esp+96-96+4*7+4*8]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*11], EDI
+
+//i=28
+//* T := (EDX xor ESI xor EAX) + K40 + EBX;
+ mov EDI, EDX
+ xor EDI, ESI
+ xor EDI, EAX
+ add EDI, K40
+ add EDI, EBX
+//* EDX := rordword(EDX, 2);
+ ror EDX, 2
+//* EBX := T + roldword(ECX, 5) + Data[12];
+ mov EBX, ECX
+ rol EBX, 5
+ add EBX, EDI
+ add EBX, [esp+96-96+4*7+4*12]
+//* Data[12] := roldword(Data[12] xor Data[14] xor Data[4] xor Data[9], 1);
+ mov EDI, [esp+96-96+4*7+4*12]
+ xor EDI, [esp+96-96+4*7+4*14]
+ xor EDI, [esp+96-96+4*7+4*4]
+ xor EDI, [esp+96-96+4*7+4*9]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*12], EDI
+
+//i=29
+//* T := (ECX xor EDX xor ESI) + K40 + EAX;
+ mov EDI, ECX
+ xor EDI, EDX
+ xor EDI, ESI
+ add EDI, K40
+ add EDI, EAX
+//* ECX := rordword(ECX, 2);
+ ror ECX, 2
+//* EAX := T + roldword(EBX, 5) + Data[13];
+ mov EAX, EBX
+ rol EAX, 5
+ add EAX, EDI
+ add EAX, [esp+96-96+4*7+4*13]
+//* Data[13] := roldword(Data[13] xor Data[15] xor Data[5] xor Data[10], 1);
+ mov EDI, [esp+96-96+4*7+4*13]
+ xor EDI, [esp+96-96+4*7+4*15]
+ xor EDI, [esp+96-96+4*7+4*5]
+ xor EDI, [esp+96-96+4*7+4*10]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*13], EDI
+
+//i=30
+//* T := (EBX xor ECX xor EDX) + K40 + ESI;
+ mov EDI, EBX
+ xor EDI, ECX
+ xor EDI, EDX
+ add EDI, K40
+ add EDI, ESI
+//* EBX := rordword(EBX, 2);
+ ror EBX, 2
+//* ESI := T + roldword(EAX, 5) + Data[14];
+ mov ESI, EAX
+ rol ESI, 5
+ add ESI, EDI
+ add ESI, [esp+96-96+4*7+4*14]
+//* Data[14] := roldword(Data[14] xor Data[0] xor Data[6] xor Data[11], 1);
+ mov EDI, [esp+96-96+4*7+4*14]
+ xor EDI, [esp+96-96+4*7+4*0]
+ xor EDI, [esp+96-96+4*7+4*6]
+ xor EDI, [esp+96-96+4*7+4*11]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*14], EDI
+
+//i=31
+//* T := (EAX xor EBX xor ECX) + K40 + EDX;
+ mov EDI, EAX
+ xor EDI, EBX
+ xor EDI, ECX
+ add EDI, K40
+ add EDI, EDX
+//* EAX := rordword(EAX, 2);
+ ror EAX, 2
+//* EDX := T + roldword(ESI, 5) + Data[15];
+ mov EDX, ESI
+ rol EDX, 5
+ add EDX, EDI
+ add EDX, [esp+96-96+4*7+4*15]
+//* Data[15] := roldword(Data[15] xor Data[1] xor Data[7] xor Data[12], 1);
+ mov EDI, [esp+96-96+4*7+4*15]
+ xor EDI, [esp+96-96+4*7+4*1]
+ xor EDI, [esp+96-96+4*7+4*7]
+ xor EDI, [esp+96-96+4*7+4*12]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*15], EDI
+
+//i=32
+//* T := (ESI xor EAX xor EBX) + K40 + ECX;
+ mov EDI, ESI
+ xor EDI, EAX
+ xor EDI, EBX
+ add EDI, K40
+ add EDI, ECX
+//* ESI := rordword(ESI, 2);
+ ror ESI, 2
+//* ECX := T + roldword(EDX, 5) + Data[0];
+ mov ECX, EDX
+ rol ECX, 5
+ add ECX, EDI
+ add ECX, [esp+96-96+4*7+4*0]
+//* Data[0] := roldword(Data[0] xor Data[2] xor Data[8] xor Data[13], 1);
+ mov EDI, [esp+96-96+4*7+4*0]
+ xor EDI, [esp+96-96+4*7+4*2]
+ xor EDI, [esp+96-96+4*7+4*8]
+ xor EDI, [esp+96-96+4*7+4*13]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*0], EDI
+
+//i=33
+//* T := (EDX xor ESI xor EAX) + K40 + EBX;
+ mov EDI, EDX
+ xor EDI, ESI
+ xor EDI, EAX
+ add EDI, K40
+ add EDI, EBX
+//* EDX := rordword(EDX, 2);
+ ror EDX, 2
+//* EBX := T + roldword(ECX, 5) + Data[1];
+ mov EBX, ECX
+ rol EBX, 5
+ add EBX, EDI
+ add EBX, [esp+96-96+4*7+4*1]
+//* Data[1] := roldword(Data[1] xor Data[3] xor Data[9] xor Data[14], 1);
+ mov EDI, [esp+96-96+4*7+4*1]
+ xor EDI, [esp+96-96+4*7+4*3]
+ xor EDI, [esp+96-96+4*7+4*9]
+ xor EDI, [esp+96-96+4*7+4*14]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*1], EDI
+
+//i=34
+//* T := (ECX xor EDX xor ESI) + K40 + EAX;
+ mov EDI, ECX
+ xor EDI, EDX
+ xor EDI, ESI
+ add EDI, K40
+ add EDI, EAX
+//* ECX := rordword(ECX, 2);
+ ror ECX, 2
+//* EAX := T + roldword(EBX, 5) + Data[2];
+ mov EAX, EBX
+ rol EAX, 5
+ add EAX, EDI
+ add EAX, [esp+96-96+4*7+4*2]
+//* Data[2] := roldword(Data[2] xor Data[4] xor Data[10] xor Data[15], 1);
+ mov EDI, [esp+96-96+4*7+4*2]
+ xor EDI, [esp+96-96+4*7+4*4]
+ xor EDI, [esp+96-96+4*7+4*10]
+ xor EDI, [esp+96-96+4*7+4*15]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*2], EDI
+
+//i=35
+//* T := (EBX xor ECX xor EDX) + K40 + ESI;
+ mov EDI, EBX
+ xor EDI, ECX
+ xor EDI, EDX
+ add EDI, K40
+ add EDI, ESI
+//* EBX := rordword(EBX, 2);
+ ror EBX, 2
+//* ESI := T + roldword(EAX, 5) + Data[3];
+ mov ESI, EAX
+ rol ESI, 5
+ add ESI, EDI
+ add ESI, [esp+96-96+4*7+4*3]
+//* Data[3] := roldword(Data[3] xor Data[5] xor Data[11] xor Data[0], 1);
+ mov EDI, [esp+96-96+4*7+4*3]
+ xor EDI, [esp+96-96+4*7+4*5]
+ xor EDI, [esp+96-96+4*7+4*11]
+ xor EDI, [esp+96-96+4*7+4*0]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*3], EDI
+
+//i=36
+//* T := (EAX xor EBX xor ECX) + K40 + EDX;
+ mov EDI, EAX
+ xor EDI, EBX
+ xor EDI, ECX
+ add EDI, K40
+ add EDI, EDX
+//* EAX := rordword(EAX, 2);
+ ror EAX, 2
+//* EDX := T + roldword(ESI, 5) + Data[4];
+ mov EDX, ESI
+ rol EDX, 5
+ add EDX, EDI
+ add EDX, [esp+96-96+4*7+4*4]
+//* Data[4] := roldword(Data[4] xor Data[6] xor Data[12] xor Data[1], 1);
+ mov EDI, [esp+96-96+4*7+4*4]
+ xor EDI, [esp+96-96+4*7+4*6]
+ xor EDI, [esp+96-96+4*7+4*12]
+ xor EDI, [esp+96-96+4*7+4*1]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*4], EDI
+
+//i=37
+//* T := (ESI xor EAX xor EBX) + K40 + ECX;
+ mov EDI, ESI
+ xor EDI, EAX
+ xor EDI, EBX
+ add EDI, K40
+ add EDI, ECX
+//* ESI := rordword(ESI, 2);
+ ror ESI, 2
+//* ECX := T + roldword(EDX, 5) + Data[5];
+ mov ECX, EDX
+ rol ECX, 5
+ add ECX, EDI
+ add ECX, [esp+96-96+4*7+4*5]
+//* Data[5] := roldword(Data[5] xor Data[7] xor Data[13] xor Data[2], 1);
+ mov EDI, [esp+96-96+4*7+4*5]
+ xor EDI, [esp+96-96+4*7+4*7]
+ xor EDI, [esp+96-96+4*7+4*13]
+ xor EDI, [esp+96-96+4*7+4*2]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*5], EDI
+
+//i=38
+//* T := (EDX xor ESI xor EAX) + K40 + EBX;
+ mov EDI, EDX
+ xor EDI, ESI
+ xor EDI, EAX
+ add EDI, K40
+ add EDI, EBX
+//* EDX := rordword(EDX, 2);
+ ror EDX, 2
+//* EBX := T + roldword(ECX, 5) + Data[6];
+ mov EBX, ECX
+ rol EBX, 5
+ add EBX, EDI
+ add EBX, [esp+96-96+4*7+4*6]
+//* Data[6] := roldword(Data[6] xor Data[8] xor Data[14] xor Data[3], 1);
+ mov EDI, [esp+96-96+4*7+4*6]
+ xor EDI, [esp+96-96+4*7+4*8]
+ xor EDI, [esp+96-96+4*7+4*14]
+ xor EDI, [esp+96-96+4*7+4*3]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*6], EDI
+
+//i=39
+//* T := (ECX xor EDX xor ESI) + K40 + EAX;
+ mov EDI, ECX
+ xor EDI, EDX
+ xor EDI, ESI
+ add EDI, K40
+ add EDI, EAX
+//* ECX := rordword(ECX, 2);
+ ror ECX, 2
+//* EAX := T + roldword(EBX, 5) + Data[7];
+ mov EAX, EBX
+ rol EAX, 5
+ add EAX, EDI
+ add EAX, [esp+96-96+4*7+4*7]
+//* Data[7] := roldword(Data[7] xor Data[9] xor Data[15] xor Data[4], 1);
+ mov EDI, [esp+96-96+4*7+4*7]
+ xor EDI, [esp+96-96+4*7+4*9]
+ xor EDI, [esp+96-96+4*7+4*15]
+ xor EDI, [esp+96-96+4*7+4*4]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*7], EDI
+
+//i=40
+//* T := (EBX and ECX) or (EBX and EDX) or (ECX and EDX) + K60 + ESI;
+ mov EDI, ECX
+ mov EBP, ECX
+ or EDI, EDX
+ and EBP, EDX
+ and EDI, EBX
+ or EDI, EBP
+ add EDI, K60
+ add EDI, ESI
+//* EBX := rordword(EBX, 2);
+ ror EBX, 2
+//* ESI := T + roldword(EAX, 5) + Data[8];
+ mov ESI, EAX
+ rol ESI, 5
+ add ESI, EDI
+ add ESI, [esp+96-96+4*7+4*8]
+//* Data[8] := roldword(Data[8] xor Data[10] xor Data[0] xor Data[5], 1);
+ mov EDI, [esp+96-96+4*7+4*8]
+ xor EDI, [esp+96-96+4*7+4*10]
+ xor EDI, [esp+96-96+4*7+4*0]
+ xor EDI, [esp+96-96+4*7+4*5]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*8], EDI
+
+//i=41
+//* T := (EAX and EBX) or (EAX and ECX) or (EBX and ECX) + K60 + EDX;
+ mov EDI, EBX
+ mov EBP, EBX
+ or EDI, ECX
+ and EBP, ECX
+ and EDI, EAX
+ or EDI, EBP
+ add EDI, K60
+ add EDI, EDX
+//* EAX := rordword(EAX, 2);
+ ror EAX, 2
+//* EDX := T + roldword(ESI, 5) + Data[9];
+ mov EDX, ESI
+ rol EDX, 5
+ add EDX, EDI
+ add EDX, [esp+96-96+4*7+4*9]
+//* Data[9] := roldword(Data[9] xor Data[11] xor Data[1] xor Data[6], 1);
+ mov EDI, [esp+96-96+4*7+4*9]
+ xor EDI, [esp+96-96+4*7+4*11]
+ xor EDI, [esp+96-96+4*7+4*1]
+ xor EDI, [esp+96-96+4*7+4*6]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*9], EDI
+
+//i=42
+//* T := (ESI and EAX) or (ESI and EBX) or (EAX and EBX) + K60 + ECX;
+ mov EDI, EAX
+ mov EBP, EAX
+ or EDI, EBX
+ and EBP, EBX
+ and EDI, ESI
+ or EDI, EBP
+ add EDI, K60
+ add EDI, ECX
+//* ESI := rordword(ESI, 2);
+ ror ESI, 2
+//* ECX := T + roldword(EDX, 5) + Data[10];
+ mov ECX, EDX
+ rol ECX, 5
+ add ECX, EDI
+ add ECX, [esp+96-96+4*7+4*10]
+//* Data[10] := roldword(Data[10] xor Data[12] xor Data[2] xor Data[7], 1);
+ mov EDI, [esp+96-96+4*7+4*10]
+ xor EDI, [esp+96-96+4*7+4*12]
+ xor EDI, [esp+96-96+4*7+4*2]
+ xor EDI, [esp+96-96+4*7+4*7]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*10], EDI
+
+//i=43
+//* T := (EDX and ESI) or (EDX and EAX) or (ESI and EAX) + K60 + EBX;
+ mov EDI, ESI
+ mov EBP, ESI
+ or EDI, EAX
+ and EBP, EAX
+ and EDI, EDX
+ or EDI, EBP
+ add EDI, K60
+ add EDI, EBX
+//* EDX := rordword(EDX, 2);
+ ror EDX, 2
+//* EBX := T + roldword(ECX, 5) + Data[11];
+ mov EBX, ECX
+ rol EBX, 5
+ add EBX, EDI
+ add EBX, [esp+96-96+4*7+4*11]
+//* Data[11] := roldword(Data[11] xor Data[13] xor Data[3] xor Data[8], 1);
+ mov EDI, [esp+96-96+4*7+4*11]
+ xor EDI, [esp+96-96+4*7+4*13]
+ xor EDI, [esp+96-96+4*7+4*3]
+ xor EDI, [esp+96-96+4*7+4*8]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*11], EDI
+
+//i=44
+//* T := (ECX and EDX) or (ECX and ESI) or (EDX and ESI) + K60 + EAX;
+ mov EDI, EDX
+ mov EBP, EDX
+ or EDI, ESI
+ and EBP, ESI
+ and EDI, ECX
+ or EDI, EBP
+ add EDI, K60
+ add EDI, EAX
+//* ECX := rordword(ECX, 2);
+ ror ECX, 2
+//* EAX := T + roldword(EBX, 5) + Data[12];
+ mov EAX, EBX
+ rol EAX, 5
+ add EAX, EDI
+ add EAX, [esp+96-96+4*7+4*12]
+//* Data[12] := roldword(Data[12] xor Data[14] xor Data[4] xor Data[9], 1);
+ mov EDI, [esp+96-96+4*7+4*12]
+ xor EDI, [esp+96-96+4*7+4*14]
+ xor EDI, [esp+96-96+4*7+4*4]
+ xor EDI, [esp+96-96+4*7+4*9]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*12], EDI
+
+//i=45
+//* T := (EBX and ECX) or (EBX and EDX) or (ECX and EDX) + K60 + ESI;
+ mov EDI, ECX
+ mov EBP, ECX
+ or EDI, EDX
+ and EBP, EDX
+ and EDI, EBX
+ or EDI, EBP
+ add EDI, K60
+ add EDI, ESI
+//* EBX := rordword(EBX, 2);
+ ror EBX, 2
+//* ESI := T + roldword(EAX, 5) + Data[13];
+ mov ESI, EAX
+ rol ESI, 5
+ add ESI, EDI
+ add ESI, [esp+96-96+4*7+4*13]
+//* Data[13] := roldword(Data[13] xor Data[15] xor Data[5] xor Data[10], 1);
+ mov EDI, [esp+96-96+4*7+4*13]
+ xor EDI, [esp+96-96+4*7+4*15]
+ xor EDI, [esp+96-96+4*7+4*5]
+ xor EDI, [esp+96-96+4*7+4*10]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*13], EDI
+
+//i=46
+//* T := (EAX and EBX) or (EAX and ECX) or (EBX and ECX) + K60 + EDX;
+ mov EDI, EBX
+ mov EBP, EBX
+ or EDI, ECX
+ and EBP, ECX
+ and EDI, EAX
+ or EDI, EBP
+ add EDI, K60
+ add EDI, EDX
+//* EAX := rordword(EAX, 2);
+ ror EAX, 2
+//* EDX := T + roldword(ESI, 5) + Data[14];
+ mov EDX, ESI
+ rol EDX, 5
+ add EDX, EDI
+ add EDX, [esp+96-96+4*7+4*14]
+//* Data[14] := roldword(Data[14] xor Data[0] xor Data[6] xor Data[11], 1);
+ mov EDI, [esp+96-96+4*7+4*14]
+ xor EDI, [esp+96-96+4*7+4*0]
+ xor EDI, [esp+96-96+4*7+4*6]
+ xor EDI, [esp+96-96+4*7+4*11]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*14], EDI
+
+//i=47
+//* T := (ESI and EAX) or (ESI and EBX) or (EAX and EBX) + K60 + ECX;
+ mov EDI, EAX
+ mov EBP, EAX
+ or EDI, EBX
+ and EBP, EBX
+ and EDI, ESI
+ or EDI, EBP
+ add EDI, K60
+ add EDI, ECX
+//* ESI := rordword(ESI, 2);
+ ror ESI, 2
+//* ECX := T + roldword(EDX, 5) + Data[15];
+ mov ECX, EDX
+ rol ECX, 5
+ add ECX, EDI
+ add ECX, [esp+96-96+4*7+4*15]
+//* Data[15] := roldword(Data[15] xor Data[1] xor Data[7] xor Data[12], 1);
+ mov EDI, [esp+96-96+4*7+4*15]
+ xor EDI, [esp+96-96+4*7+4*1]
+ xor EDI, [esp+96-96+4*7+4*7]
+ xor EDI, [esp+96-96+4*7+4*12]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*15], EDI
+
+//i=48
+//* T := (EDX and ESI) or (EDX and EAX) or (ESI and EAX) + K60 + EBX;
+ mov EDI, ESI
+ mov EBP, ESI
+ or EDI, EAX
+ and EBP, EAX
+ and EDI, EDX
+ or EDI, EBP
+ add EDI, K60
+ add EDI, EBX
+//* EDX := rordword(EDX, 2);
+ ror EDX, 2
+//* EBX := T + roldword(ECX, 5) + Data[0];
+ mov EBX, ECX
+ rol EBX, 5
+ add EBX, EDI
+ add EBX, [esp+96-96+4*7+4*0]
+//* Data[0] := roldword(Data[0] xor Data[2] xor Data[8] xor Data[13], 1);
+ mov EDI, [esp+96-96+4*7+4*0]
+ xor EDI, [esp+96-96+4*7+4*2]
+ xor EDI, [esp+96-96+4*7+4*8]
+ xor EDI, [esp+96-96+4*7+4*13]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*0], EDI
+
+//i=49
+//* T := (ECX and EDX) or (ECX and ESI) or (EDX and ESI) + K60 + EAX;
+ mov EDI, EDX
+ mov EBP, EDX
+ or EDI, ESI
+ and EBP, ESI
+ and EDI, ECX
+ or EDI, EBP
+ add EDI, K60
+ add EDI, EAX
+//* ECX := rordword(ECX, 2);
+ ror ECX, 2
+//* EAX := T + roldword(EBX, 5) + Data[1];
+ mov EAX, EBX
+ rol EAX, 5
+ add EAX, EDI
+ add EAX, [esp+96-96+4*7+4*1]
+//* Data[1] := roldword(Data[1] xor Data[3] xor Data[9] xor Data[14], 1);
+ mov EDI, [esp+96-96+4*7+4*1]
+ xor EDI, [esp+96-96+4*7+4*3]
+ xor EDI, [esp+96-96+4*7+4*9]
+ xor EDI, [esp+96-96+4*7+4*14]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*1], EDI
+
+//i=50
+//* T := (EBX and ECX) or (EBX and EDX) or (ECX and EDX) + K60 + ESI;
+ mov EDI, ECX
+ mov EBP, ECX
+ or EDI, EDX
+ and EBP, EDX
+ and EDI, EBX
+ or EDI, EBP
+ add EDI, K60
+ add EDI, ESI
+//* EBX := rordword(EBX, 2);
+ ror EBX, 2
+//* ESI := T + roldword(EAX, 5) + Data[2];
+ mov ESI, EAX
+ rol ESI, 5
+ add ESI, EDI
+ add ESI, [esp+96-96+4*7+4*2]
+//* Data[2] := roldword(Data[2] xor Data[4] xor Data[10] xor Data[15], 1);
+ mov EDI, [esp+96-96+4*7+4*2]
+ xor EDI, [esp+96-96+4*7+4*4]
+ xor EDI, [esp+96-96+4*7+4*10]
+ xor EDI, [esp+96-96+4*7+4*15]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*2], EDI
+
+//i=51
+//* T := (EAX and EBX) or (EAX and ECX) or (EBX and ECX) + K60 + EDX;
+ mov EDI, EBX
+ mov EBP, EBX
+ or EDI, ECX
+ and EBP, ECX
+ and EDI, EAX
+ or EDI, EBP
+ add EDI, K60
+ add EDI, EDX
+//* EAX := rordword(EAX, 2);
+ ror EAX, 2
+//* EDX := T + roldword(ESI, 5) + Data[3];
+ mov EDX, ESI
+ rol EDX, 5
+ add EDX, EDI
+ add EDX, [esp+96-96+4*7+4*3]
+//* Data[3] := roldword(Data[3] xor Data[5] xor Data[11] xor Data[0], 1);
+ mov EDI, [esp+96-96+4*7+4*3]
+ xor EDI, [esp+96-96+4*7+4*5]
+ xor EDI, [esp+96-96+4*7+4*11]
+ xor EDI, [esp+96-96+4*7+4*0]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*3], EDI
+
+//i=52
+//* T := (ESI and EAX) or (ESI and EBX) or (EAX and EBX) + K60 + ECX;
+ mov EDI, EAX
+ mov EBP, EAX
+ or EDI, EBX
+ and EBP, EBX
+ and EDI, ESI
+ or EDI, EBP
+ add EDI, K60
+ add EDI, ECX
+//* ESI := rordword(ESI, 2);
+ ror ESI, 2
+//* ECX := T + roldword(EDX, 5) + Data[4];
+ mov ECX, EDX
+ rol ECX, 5
+ add ECX, EDI
+ add ECX, [esp+96-96+4*7+4*4]
+//* Data[4] := roldword(Data[4] xor Data[6] xor Data[12] xor Data[1], 1);
+ mov EDI, [esp+96-96+4*7+4*4]
+ xor EDI, [esp+96-96+4*7+4*6]
+ xor EDI, [esp+96-96+4*7+4*12]
+ xor EDI, [esp+96-96+4*7+4*1]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*4], EDI
+
+//i=53
+//* T := (EDX and ESI) or (EDX and EAX) or (ESI and EAX) + K60 + EBX;
+ mov EDI, ESI
+ mov EBP, ESI
+ or EDI, EAX
+ and EBP, EAX
+ and EDI, EDX
+ or EDI, EBP
+ add EDI, K60
+ add EDI, EBX
+//* EDX := rordword(EDX, 2);
+ ror EDX, 2
+//* EBX := T + roldword(ECX, 5) + Data[5];
+ mov EBX, ECX
+ rol EBX, 5
+ add EBX, EDI
+ add EBX, [esp+96-96+4*7+4*5]
+//* Data[5] := roldword(Data[5] xor Data[7] xor Data[13] xor Data[2], 1);
+ mov EDI, [esp+96-96+4*7+4*5]
+ xor EDI, [esp+96-96+4*7+4*7]
+ xor EDI, [esp+96-96+4*7+4*13]
+ xor EDI, [esp+96-96+4*7+4*2]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*5], EDI
+
+//i=54
+//* T := (ECX and EDX) or (ECX and ESI) or (EDX and ESI) + K60 + EAX;
+ mov EDI, EDX
+ mov EBP, EDX
+ or EDI, ESI
+ and EBP, ESI
+ and EDI, ECX
+ or EDI, EBP
+ add EDI, K60
+ add EDI, EAX
+//* ECX := rordword(ECX, 2);
+ ror ECX, 2
+//* EAX := T + roldword(EBX, 5) + Data[6];
+ mov EAX, EBX
+ rol EAX, 5
+ add EAX, EDI
+ add EAX, [esp+96-96+4*7+4*6]
+//* Data[6] := roldword(Data[6] xor Data[8] xor Data[14] xor Data[3], 1);
+ mov EDI, [esp+96-96+4*7+4*6]
+ xor EDI, [esp+96-96+4*7+4*8]
+ xor EDI, [esp+96-96+4*7+4*14]
+ xor EDI, [esp+96-96+4*7+4*3]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*6], EDI
+
+//i=55
+//* T := (EBX and ECX) or (EBX and EDX) or (ECX and EDX) + K60 + ESI;
+ mov EDI, ECX
+ mov EBP, ECX
+ or EDI, EDX
+ and EBP, EDX
+ and EDI, EBX
+ or EDI, EBP
+ add EDI, K60
+ add EDI, ESI
+//* EBX := rordword(EBX, 2);
+ ror EBX, 2
+//* ESI := T + roldword(EAX, 5) + Data[7];
+ mov ESI, EAX
+ rol ESI, 5
+ add ESI, EDI
+ add ESI, [esp+96-96+4*7+4*7]
+//* Data[7] := roldword(Data[7] xor Data[9] xor Data[15] xor Data[4], 1);
+ mov EDI, [esp+96-96+4*7+4*7]
+ xor EDI, [esp+96-96+4*7+4*9]
+ xor EDI, [esp+96-96+4*7+4*15]
+ xor EDI, [esp+96-96+4*7+4*4]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*7], EDI
+
+//i=56
+//* T := (EAX and EBX) or (EAX and ECX) or (EBX and ECX) + K60 + EDX;
+ mov EDI, EBX
+ mov EBP, EBX
+ or EDI, ECX
+ and EBP, ECX
+ and EDI, EAX
+ or EDI, EBP
+ add EDI, K60
+ add EDI, EDX
+//* EAX := rordword(EAX, 2);
+ ror EAX, 2
+//* EDX := T + roldword(ESI, 5) + Data[8];
+ mov EDX, ESI
+ rol EDX, 5
+ add EDX, EDI
+ add EDX, [esp+96-96+4*7+4*8]
+//* Data[8] := roldword(Data[8] xor Data[10] xor Data[0] xor Data[5], 1);
+ mov EDI, [esp+96-96+4*7+4*8]
+ xor EDI, [esp+96-96+4*7+4*10]
+ xor EDI, [esp+96-96+4*7+4*0]
+ xor EDI, [esp+96-96+4*7+4*5]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*8], EDI
+
+//i=57
+//* T := (ESI and EAX) or (ESI and EBX) or (EAX and EBX) + K60 + ECX;
+ mov EDI, EAX
+ mov EBP, EAX
+ or EDI, EBX
+ and EBP, EBX
+ and EDI, ESI
+ or EDI, EBP
+ add EDI, K60
+ add EDI, ECX
+//* ESI := rordword(ESI, 2);
+ ror ESI, 2
+//* ECX := T + roldword(EDX, 5) + Data[9];
+ mov ECX, EDX
+ rol ECX, 5
+ add ECX, EDI
+ add ECX, [esp+96-96+4*7+4*9]
+//* Data[9] := roldword(Data[9] xor Data[11] xor Data[1] xor Data[6], 1);
+ mov EDI, [esp+96-96+4*7+4*9]
+ xor EDI, [esp+96-96+4*7+4*11]
+ xor EDI, [esp+96-96+4*7+4*1]
+ xor EDI, [esp+96-96+4*7+4*6]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*9], EDI
+
+//i=58
+//* T := (EDX and ESI) or (EDX and EAX) or (ESI and EAX) + K60 + EBX;
+ mov EDI, ESI
+ mov EBP, ESI
+ or EDI, EAX
+ and EBP, EAX
+ and EDI, EDX
+ or EDI, EBP
+ add EDI, K60
+ add EDI, EBX
+//* EDX := rordword(EDX, 2);
+ ror EDX, 2
+//* EBX := T + roldword(ECX, 5) + Data[10];
+ mov EBX, ECX
+ rol EBX, 5
+ add EBX, EDI
+ add EBX, [esp+96-96+4*7+4*10]
+//* Data[10] := roldword(Data[10] xor Data[12] xor Data[2] xor Data[7], 1);
+ mov EDI, [esp+96-96+4*7+4*10]
+ xor EDI, [esp+96-96+4*7+4*12]
+ xor EDI, [esp+96-96+4*7+4*2]
+ xor EDI, [esp+96-96+4*7+4*7]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*10], EDI
+
+//i=59
+//* T := (ECX and EDX) or (ECX and ESI) or (EDX and ESI) + K60 + EAX;
+ mov EDI, EDX
+ mov EBP, EDX
+ or EDI, ESI
+ and EBP, ESI
+ and EDI, ECX
+ or EDI, EBP
+ add EDI, K60
+ add EDI, EAX
+//* ECX := rordword(ECX, 2);
+ ror ECX, 2
+//* EAX := T + roldword(EBX, 5) + Data[11];
+ mov EAX, EBX
+ rol EAX, 5
+ add EAX, EDI
+ add EAX, [esp+96-96+4*7+4*11]
+//* Data[11] := roldword(Data[11] xor Data[13] xor Data[3] xor Data[8], 1);
+ mov EDI, [esp+96-96+4*7+4*11]
+ xor EDI, [esp+96-96+4*7+4*13]
+ xor EDI, [esp+96-96+4*7+4*3]
+ xor EDI, [esp+96-96+4*7+4*8]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*11], EDI
+
+//i=60
+//* T := (EBX xor ECX xor EDX) + K80 + ESI;
+ mov EDI, EBX
+ xor EDI, ECX
+ xor EDI, EDX
+ add EDI, K80
+ add EDI, ESI
+//* EBX := rordword(EBX, 2);
+ ror EBX, 2
+//* ESI := T + roldword(EAX, 5) + Data[12];
+ mov ESI, EAX
+ rol ESI, 5
+ add ESI, EDI
+ add ESI, [esp+96-96+4*7+4*12]
+//* Data[12] := roldword(Data[12] xor Data[14] xor Data[4] xor Data[9], 1);
+ mov EDI, [esp+96-96+4*7+4*12]
+ xor EDI, [esp+96-96+4*7+4*14]
+ xor EDI, [esp+96-96+4*7+4*4]
+ xor EDI, [esp+96-96+4*7+4*9]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*12], EDI
+
+//i=61
+//* T := (EAX xor EBX xor ECX) + K80 + EDX;
+ mov EDI, EAX
+ xor EDI, EBX
+ xor EDI, ECX
+ add EDI, K80
+ add EDI, EDX
+//* EAX := rordword(EAX, 2);
+ ror EAX, 2
+//* EDX := T + roldword(ESI, 5) + Data[13];
+ mov EDX, ESI
+ rol EDX, 5
+ add EDX, EDI
+ add EDX, [esp+96-96+4*7+4*13]
+//* Data[13] := roldword(Data[13] xor Data[15] xor Data[5] xor Data[10], 1);
+ mov EDI, [esp+96-96+4*7+4*13]
+ xor EDI, [esp+96-96+4*7+4*15]
+ xor EDI, [esp+96-96+4*7+4*5]
+ xor EDI, [esp+96-96+4*7+4*10]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*13], EDI
+
+//i=62
+//* T := (ESI xor EAX xor EBX) + K80 + ECX;
+ mov EDI, ESI
+ xor EDI, EAX
+ xor EDI, EBX
+ add EDI, K80
+ add EDI, ECX
+//* ESI := rordword(ESI, 2);
+ ror ESI, 2
+//* ECX := T + roldword(EDX, 5) + Data[14];
+ mov ECX, EDX
+ rol ECX, 5
+ add ECX, EDI
+ add ECX, [esp+96-96+4*7+4*14]
+//* Data[14] := roldword(Data[14] xor Data[0] xor Data[6] xor Data[11], 1);
+ mov EDI, [esp+96-96+4*7+4*14]
+ xor EDI, [esp+96-96+4*7+4*0]
+ xor EDI, [esp+96-96+4*7+4*6]
+ xor EDI, [esp+96-96+4*7+4*11]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*14], EDI
+
+//i=63
+//* T := (EDX xor ESI xor EAX) + K80 + EBX;
+ mov EDI, EDX
+ xor EDI, ESI
+ xor EDI, EAX
+ add EDI, K80
+ add EDI, EBX
+//* EDX := rordword(EDX, 2);
+ ror EDX, 2
+//* EBX := T + roldword(ECX, 5) + Data[15];
+ mov EBX, ECX
+ rol EBX, 5
+ add EBX, EDI
+ add EBX, [esp+96-96+4*7+4*15]
+//* Data[15] := roldword(Data[15] xor Data[1] xor Data[7] xor Data[12], 1);
+ mov EDI, [esp+96-96+4*7+4*15]
+ xor EDI, [esp+96-96+4*7+4*1]
+ xor EDI, [esp+96-96+4*7+4*7]
+ xor EDI, [esp+96-96+4*7+4*12]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*15], EDI
+
+//i=64
+//* T := (ECX xor EDX xor ESI) + K80 + EAX;
+ mov EDI, ECX
+ xor EDI, EDX
+ xor EDI, ESI
+ add EDI, K80
+ add EDI, EAX
+//* ECX := rordword(ECX, 2);
+ ror ECX, 2
+//* EAX := T + roldword(EBX, 5) + Data[0];
+ mov EAX, EBX
+ rol EAX, 5
+ add EAX, EDI
+ add EAX, [esp+96-96+4*7+4*0]
+//* Data[0] := roldword(Data[0] xor Data[2] xor Data[8] xor Data[13], 1);
+ mov EDI, [esp+96-96+4*7+4*0]
+ xor EDI, [esp+96-96+4*7+4*2]
+ xor EDI, [esp+96-96+4*7+4*8]
+ xor EDI, [esp+96-96+4*7+4*13]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*0], EDI
+
+//i=65
+//* T := (EBX xor ECX xor EDX) + K80 + ESI;
+ mov EDI, EBX
+ xor EDI, ECX
+ xor EDI, EDX
+ add EDI, K80
+ add EDI, ESI
+//* EBX := rordword(EBX, 2);
+ ror EBX, 2
+//* ESI := T + roldword(EAX, 5) + Data[1];
+ mov ESI, EAX
+ rol ESI, 5
+ add ESI, EDI
+ add ESI, [esp+96-96+4*7+4*1]
+//* Data[1] := roldword(Data[1] xor Data[3] xor Data[9] xor Data[14], 1);
+ mov EDI, [esp+96-96+4*7+4*1]
+ xor EDI, [esp+96-96+4*7+4*3]
+ xor EDI, [esp+96-96+4*7+4*9]
+ xor EDI, [esp+96-96+4*7+4*14]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*1], EDI
+
+//i=66
+//* T := (EAX xor EBX xor ECX) + K80 + EDX;
+ mov EDI, EAX
+ xor EDI, EBX
+ xor EDI, ECX
+ add EDI, K80
+ add EDI, EDX
+//* EAX := rordword(EAX, 2);
+ ror EAX, 2
+//* EDX := T + roldword(ESI, 5) + Data[2];
+ mov EDX, ESI
+ rol EDX, 5
+ add EDX, EDI
+ add EDX, [esp+96-96+4*7+4*2]
+//* Data[2] := roldword(Data[2] xor Data[4] xor Data[10] xor Data[15], 1);
+ mov EDI, [esp+96-96+4*7+4*2]
+ xor EDI, [esp+96-96+4*7+4*4]
+ xor EDI, [esp+96-96+4*7+4*10]
+ xor EDI, [esp+96-96+4*7+4*15]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*2], EDI
+
+//i=67
+//* T := (ESI xor EAX xor EBX) + K80 + ECX;
+ mov EDI, ESI
+ xor EDI, EAX
+ xor EDI, EBX
+ add EDI, K80
+ add EDI, ECX
+//* ESI := rordword(ESI, 2);
+ ror ESI, 2
+//* ECX := T + roldword(EDX, 5) + Data[3];
+ mov ECX, EDX
+ rol ECX, 5
+ add ECX, EDI
+ add ECX, [esp+96-96+4*7+4*3]
+//* Data[3] := roldword(Data[3] xor Data[5] xor Data[11] xor Data[0], 1);
+ mov EDI, [esp+96-96+4*7+4*3]
+ xor EDI, [esp+96-96+4*7+4*5]
+ xor EDI, [esp+96-96+4*7+4*11]
+ xor EDI, [esp+96-96+4*7+4*0]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*3], EDI
+
+//i=68
+//* T := (EDX xor ESI xor EAX) + K80 + EBX;
+ mov EDI, EDX
+ xor EDI, ESI
+ xor EDI, EAX
+ add EDI, K80
+ add EDI, EBX
+//* EDX := rordword(EDX, 2);
+ ror EDX, 2
+//* EBX := T + roldword(ECX, 5) + Data[4];
+ mov EBX, ECX
+ rol EBX, 5
+ add EBX, EDI
+ add EBX, [esp+96-96+4*7+4*4]
+//* Data[4] := roldword(Data[4] xor Data[6] xor Data[12] xor Data[1], 1);
+ mov EDI, [esp+96-96+4*7+4*4]
+ xor EDI, [esp+96-96+4*7+4*6]
+ xor EDI, [esp+96-96+4*7+4*12]
+ xor EDI, [esp+96-96+4*7+4*1]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*4], EDI
+
+//i=69
+//* T := (ECX xor EDX xor ESI) + K80 + EAX;
+ mov EDI, ECX
+ xor EDI, EDX
+ xor EDI, ESI
+ add EDI, K80
+ add EDI, EAX
+//* ECX := rordword(ECX, 2);
+ ror ECX, 2
+//* EAX := T + roldword(EBX, 5) + Data[5];
+ mov EAX, EBX
+ rol EAX, 5
+ add EAX, EDI
+ add EAX, [esp+96-96+4*7+4*5]
+//* Data[5] := roldword(Data[5] xor Data[7] xor Data[13] xor Data[2], 1);
+ mov EDI, [esp+96-96+4*7+4*5]
+ xor EDI, [esp+96-96+4*7+4*7]
+ xor EDI, [esp+96-96+4*7+4*13]
+ xor EDI, [esp+96-96+4*7+4*2]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*5], EDI
+
+//i=70
+//* T := (EBX xor ECX xor EDX) + K80 + ESI;
+ mov EDI, EBX
+ xor EDI, ECX
+ xor EDI, EDX
+ add EDI, K80
+ add EDI, ESI
+//* EBX := rordword(EBX, 2);
+ ror EBX, 2
+//* ESI := T + roldword(EAX, 5) + Data[6];
+ mov ESI, EAX
+ rol ESI, 5
+ add ESI, EDI
+ add ESI, [esp+96-96+4*7+4*6]
+//* Data[6] := roldword(Data[6] xor Data[8] xor Data[14] xor Data[3], 1);
+ mov EDI, [esp+96-96+4*7+4*6]
+ xor EDI, [esp+96-96+4*7+4*8]
+ xor EDI, [esp+96-96+4*7+4*14]
+ xor EDI, [esp+96-96+4*7+4*3]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*6], EDI
+
+//i=71
+//* T := (EAX xor EBX xor ECX) + K80 + EDX;
+ mov EDI, EAX
+ xor EDI, EBX
+ xor EDI, ECX
+ add EDI, K80
+ add EDI, EDX
+//* EAX := rordword(EAX, 2);
+ ror EAX, 2
+//* EDX := T + roldword(ESI, 5) + Data[7];
+ mov EDX, ESI
+ rol EDX, 5
+ add EDX, EDI
+ add EDX, [esp+96-96+4*7+4*7]
+//* Data[7] := roldword(Data[7] xor Data[9] xor Data[15] xor Data[4], 1);
+ mov EDI, [esp+96-96+4*7+4*7]
+ xor EDI, [esp+96-96+4*7+4*9]
+ xor EDI, [esp+96-96+4*7+4*15]
+ xor EDI, [esp+96-96+4*7+4*4]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*7], EDI
+
+//i=72
+//* T := (ESI xor EAX xor EBX) + K80 + ECX;
+ mov EDI, ESI
+ xor EDI, EAX
+ xor EDI, EBX
+ add EDI, K80
+ add EDI, ECX
+//* ESI := rordword(ESI, 2);
+ ror ESI, 2
+//* ECX := T + roldword(EDX, 5) + Data[8];
+ mov ECX, EDX
+ rol ECX, 5
+ add ECX, EDI
+ add ECX, [esp+96-96+4*7+4*8]
+//* Data[8] := roldword(Data[8] xor Data[10] xor Data[0] xor Data[5], 1);
+ mov EDI, [esp+96-96+4*7+4*8]
+ xor EDI, [esp+96-96+4*7+4*10]
+ xor EDI, [esp+96-96+4*7+4*0]
+ xor EDI, [esp+96-96+4*7+4*5]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*8], EDI
+
+//i=73
+//* T := (EDX xor ESI xor EAX) + K80 + EBX;
+ mov EDI, EDX
+ xor EDI, ESI
+ xor EDI, EAX
+ add EDI, K80
+ add EDI, EBX
+//* EDX := rordword(EDX, 2);
+ ror EDX, 2
+//* EBX := T + roldword(ECX, 5) + Data[9];
+ mov EBX, ECX
+ rol EBX, 5
+ add EBX, EDI
+ add EBX, [esp+96-96+4*7+4*9]
+//* Data[9] := roldword(Data[9] xor Data[11] xor Data[1] xor Data[6], 1);
+ mov EDI, [esp+96-96+4*7+4*9]
+ xor EDI, [esp+96-96+4*7+4*11]
+ xor EDI, [esp+96-96+4*7+4*1]
+ xor EDI, [esp+96-96+4*7+4*6]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*9], EDI
+
+//i=74
+//* T := (ECX xor EDX xor ESI) + K80 + EAX;
+ mov EDI, ECX
+ xor EDI, EDX
+ xor EDI, ESI
+ add EDI, K80
+ add EDI, EAX
+//* ECX := rordword(ECX, 2);
+ ror ECX, 2
+//* EAX := T + roldword(EBX, 5) + Data[10];
+ mov EAX, EBX
+ rol EAX, 5
+ add EAX, EDI
+ add EAX, [esp+96-96+4*7+4*10]
+//* Data[10] := roldword(Data[10] xor Data[12] xor Data[2] xor Data[7], 1);
+ mov EDI, [esp+96-96+4*7+4*10]
+ xor EDI, [esp+96-96+4*7+4*12]
+ xor EDI, [esp+96-96+4*7+4*2]
+ xor EDI, [esp+96-96+4*7+4*7]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*10], EDI
+
+//i=75
+//* T := (EBX xor ECX xor EDX) + K80 + ESI;
+ mov EDI, EBX
+ xor EDI, ECX
+ xor EDI, EDX
+ add EDI, K80
+ add EDI, ESI
+//* EBX := rordword(EBX, 2);
+ ror EBX, 2
+//* ESI := T + roldword(EAX, 5) + Data[11];
+ mov ESI, EAX
+ rol ESI, 5
+ add ESI, EDI
+ add ESI, [esp+96-96+4*7+4*11]
+//* Data[11] := roldword(Data[11] xor Data[13] xor Data[3] xor Data[8], 1);
+ mov EDI, [esp+96-96+4*7+4*11]
+ xor EDI, [esp+96-96+4*7+4*13]
+ xor EDI, [esp+96-96+4*7+4*3]
+ xor EDI, [esp+96-96+4*7+4*8]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*11], EDI
+
+//i=76
+//* T := (EAX xor EBX xor ECX) + K80 + EDX;
+ mov EDI, EAX
+ xor EDI, EBX
+ xor EDI, ECX
+ add EDI, K80
+ add EDI, EDX
+//* EAX := rordword(EAX, 2);
+ ror EAX, 2
+//* EDX := T + roldword(ESI, 5) + Data[12];
+ mov EDX, ESI
+ rol EDX, 5
+ add EDX, EDI
+ add EDX, [esp+96-96+4*7+4*12]
+//* Data[12] := roldword(Data[12] xor Data[14] xor Data[4] xor Data[9], 1);
+ mov EDI, [esp+96-96+4*7+4*12]
+ xor EDI, [esp+96-96+4*7+4*14]
+ xor EDI, [esp+96-96+4*7+4*4]
+ xor EDI, [esp+96-96+4*7+4*9]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*12], EDI
+
+//i=77
+//* T := (ESI xor EAX xor EBX) + K80 + ECX;
+ mov EDI, ESI
+ xor EDI, EAX
+ xor EDI, EBX
+ add EDI, K80
+ add EDI, ECX
+//* ESI := rordword(ESI, 2);
+ ror ESI, 2
+//* ECX := T + roldword(EDX, 5) + Data[13];
+ mov ECX, EDX
+ rol ECX, 5
+ add ECX, EDI
+ add ECX, [esp+96-96+4*7+4*13]
+//* Data[13] := roldword(Data[13] xor Data[15] xor Data[5] xor Data[10], 1);
+ mov EDI, [esp+96-96+4*7+4*13]
+ xor EDI, [esp+96-96+4*7+4*15]
+ xor EDI, [esp+96-96+4*7+4*5]
+ xor EDI, [esp+96-96+4*7+4*10]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*13], EDI
+
+//i=78
+//* T := (EDX xor ESI xor EAX) + K80 + EBX;
+ mov EDI, EDX
+ xor EDI, ESI
+ xor EDI, EAX
+ add EDI, K80
+ add EDI, EBX
+//* EDX := rordword(EDX, 2);
+ ror EDX, 2
+//* EBX := T + roldword(ECX, 5) + Data[14];
+ mov EBX, ECX
+ rol EBX, 5
+ add EBX, EDI
+ add EBX, [esp+96-96+4*7+4*14]
+//* Data[14] := roldword(Data[14] xor Data[0] xor Data[6] xor Data[11], 1);
+ mov EDI, [esp+96-96+4*7+4*14]
+ xor EDI, [esp+96-96+4*7+4*0]
+ xor EDI, [esp+96-96+4*7+4*6]
+ xor EDI, [esp+96-96+4*7+4*11]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*14], EDI
+
+//i=79
+//* T := (ECX xor EDX xor ESI) + K80 + EAX;
+ mov EDI, ECX
+ xor EDI, EDX
+ xor EDI, ESI
+ add EDI, K80
+ add EDI, EAX
+//* ECX := rordword(ECX, 2);
+ ror ECX, 2
+//* EAX := T + roldword(EBX, 5) + Data[15];
+ mov EAX, EBX
+ rol EAX, 5
+ add EAX, EDI
+ add EAX, [esp+96-96+4*7+4*15]
+//* Data[15] := roldword(Data[15] xor Data[1] xor Data[7] xor Data[12], 1);
+ mov EDI, [esp+96-96+4*7+4*15]
+ xor EDI, [esp+96-96+4*7+4*1]
+ xor EDI, [esp+96-96+4*7+4*7]
+ xor EDI, [esp+96-96+4*7+4*12]
+ rol EDI, 1
+ mov [esp+96-96+4*7+4*15], EDI
+
+ pop EBP
+
+ mov EDI, [pctx{.State}]
+// Inc(ctx.State[0], A);
+ add [EDI+4*0], EAX
+// Inc(ctx.State[1], B);
+ add [EDI+4*1], EBX
+// Inc(ctx.State[2], C);
+ add [EDI+4*2], ECX
+// Inc(ctx.State[3], D);
+ add [EDI+4*3], EDX
+// Inc(ctx.State[4], E);
+ add [EDI+4*4], ESI
+
+//Inc(ctx.Length,64);
+ mov eax, [ebp-4]
+ add dword ptr [eax+88],64
+ adc dword ptr [eax+92],0
+
+ pop EDI
+ pop ESI
+ pop EDX
+ pop ECX
+ pop EBX
+ pop EAX
+end;
+
diff --git a/packages/hermes/Makefile b/packages/hermes/Makefile
index de828e4706..1cd3c06923 100644
--- a/packages/hermes/Makefile
+++ b/packages/hermes/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=hermes
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/hermes/Makefile.fpc b/packages/hermes/Makefile.fpc
index e3b1f74306..a256f4e522 100644
--- a/packages/hermes/Makefile.fpc
+++ b/packages/hermes/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=hermes
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/hermes/Makefile.fpc.fpcmake b/packages/hermes/Makefile.fpc.fpcmake
index 77a598daae..3fbf72b194 100644
--- a/packages/hermes/Makefile.fpc.fpcmake
+++ b/packages/hermes/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=hermes
-version=2.7.1
+version=3.1.1
[target]
units=hermes
diff --git a/packages/hermes/fpmake.pp b/packages/hermes/fpmake.pp
index bf4faeeca9..b4915a87e8 100644
--- a/packages/hermes/fpmake.pp
+++ b/packages/hermes/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('hermes');
+ P.ShortName:='herm';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Nikolay Nikolov (translation to Pascal), Christian Nentwich (original C version)';
P.License := 'LGPL with modification, ';
diff --git a/packages/httpd13/Makefile b/packages/httpd13/Makefile
index 6c1151468f..152c9305fa 100644
--- a/packages/httpd13/Makefile
+++ b/packages/httpd13/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=httpd13
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/httpd13/Makefile.fpc b/packages/httpd13/Makefile.fpc
index dfdccfe054..3772602e7f 100644
--- a/packages/httpd13/Makefile.fpc
+++ b/packages/httpd13/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=httpd13
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/httpd13/Makefile.fpc.fpcmake b/packages/httpd13/Makefile.fpc.fpcmake
index 20d9321546..0993a083a3 100644
--- a/packages/httpd13/Makefile.fpc.fpcmake
+++ b/packages/httpd13/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=httpd13
-version=2.7.1
+version=3.1.1
[target]
units=httpd
diff --git a/packages/httpd13/fpmake.pp b/packages/httpd13/fpmake.pp
index 8285b232cf..dc9eb416f4 100644
--- a/packages/httpd13/fpmake.pp
+++ b/packages/httpd13/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('httpd13');
+ P.ShortName:='hd13';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: Apache Foundation, header: Felipe Monteiro de Carvalho';
P.License := 'Library: Apache License 2, header: LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/httpd20/Makefile b/packages/httpd20/Makefile
index 833a38b1f6..04b6c616f6 100644
--- a/packages/httpd20/Makefile
+++ b/packages/httpd20/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=httpd20
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/httpd20/Makefile.fpc b/packages/httpd20/Makefile.fpc
index 139565099c..7be72ec372 100644
--- a/packages/httpd20/Makefile.fpc
+++ b/packages/httpd20/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=httpd20
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/httpd20/Makefile.fpc.fpcmake b/packages/httpd20/Makefile.fpc.fpcmake
index a5caa7604c..ff4412c5cf 100644
--- a/packages/httpd20/Makefile.fpc.fpcmake
+++ b/packages/httpd20/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=httpd20
-version=2.7.1
+version=3.1.1
[target]
units=apr apriconv aprutil httpd
diff --git a/packages/httpd20/examples/Makefile b/packages/httpd20/examples/Makefile
index 671a317443..b14b205e3c 100644
--- a/packages/httpd20/examples/Makefile
+++ b/packages/httpd20/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
endif
@@ -610,6 +625,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=minimain
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=minimain
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=minimain
endif
@@ -697,6 +715,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=minimain
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=minimain
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=minimain
endif
@@ -751,6 +772,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=minimain
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=minimain
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=minimain
endif
@@ -1006,6 +1030,12 @@ 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=
@@ -1051,6 +1081,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1610,6 +1645,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_HTTPD20=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
+REQUIRE_PACKAGES_HTTPD20=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1871,6 +1915,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_HTTPD20=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
+REQUIRE_PACKAGES_HTTPD20=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2033,6 +2086,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_HTTPD20=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
+REQUIRE_PACKAGES_HTTPD20=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2448,7 +2510,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2478,17 +2540,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/httpd20/fpmake.pp b/packages/httpd20/fpmake.pp
index d095888bec..2ab65e360b 100644
--- a/packages/httpd20/fpmake.pp
+++ b/packages/httpd20/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('httpd20');
+ P.ShortName:='hd20';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: Apache Foundation, header: Felipe Monteiro de Carvalho';
P.License := 'Library: Apache License 2, header: LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/httpd22/Makefile b/packages/httpd22/Makefile
index a571e89f32..49e9bd6759 100644
--- a/packages/httpd22/Makefile
+++ b/packages/httpd22/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=httpd22
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/httpd22/Makefile.fpc b/packages/httpd22/Makefile.fpc
index 247df9e824..05d748849f 100644
--- a/packages/httpd22/Makefile.fpc
+++ b/packages/httpd22/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=httpd22
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/httpd22/Makefile.fpc.fpcmake b/packages/httpd22/Makefile.fpc.fpcmake
index efdd5bec90..1d7e46c805 100644
--- a/packages/httpd22/Makefile.fpc.fpcmake
+++ b/packages/httpd22/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=httpd22
-version=2.7.1
+version=3.1.1
[target]
units=apr apriconv aprutil httpd
diff --git a/packages/httpd22/examples/Makefile b/packages/httpd22/examples/Makefile
index 4493233faf..3a98bf0647 100644
--- a/packages/httpd22/examples/Makefile
+++ b/packages/httpd22/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=mod_example mod_hello mod_spelling testmodule
endif
@@ -610,6 +625,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=minimain
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=minimain
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=minimain
endif
@@ -697,6 +715,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=minimain
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=minimain
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=minimain
endif
@@ -751,6 +772,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=minimain
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=minimain
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=minimain
endif
@@ -1006,6 +1030,12 @@ 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=
@@ -1051,6 +1081,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1610,6 +1645,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_HTTPD22=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
+REQUIRE_PACKAGES_HTTPD22=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1871,6 +1915,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_HTTPD22=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
+REQUIRE_PACKAGES_HTTPD22=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2033,6 +2086,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_HTTPD22=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
+REQUIRE_PACKAGES_HTTPD22=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2448,7 +2510,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2478,17 +2540,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/httpd22/fpmake.pp b/packages/httpd22/fpmake.pp
index 218dd45ca2..6e147e9160 100644
--- a/packages/httpd22/fpmake.pp
+++ b/packages/httpd22/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('httpd22');
+ P.ShortName:='hd22';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: Apache Foundation, header: Felipe Monteiro de Carvalho';
P.License := 'Library: Apache License 2, header: LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/httpd24/Makefile b/packages/httpd24/Makefile
index 9bdfd1220d..7bd51a38d0 100644
--- a/packages/httpd24/Makefile
+++ b/packages/httpd24/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=httpd24
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,13 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipinstall: fpc_zipinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2311,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2339,15 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
diff --git a/packages/httpd24/Makefile.fpc b/packages/httpd24/Makefile.fpc
index 2ea0e41841..4e072b8672 100644
--- a/packages/httpd24/Makefile.fpc
+++ b/packages/httpd24/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=httpd24
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,16 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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/packages/httpd24/examples/Makefile b/packages/httpd24/examples/Makefile
index 1c610901db..1a666ae97c 100644
--- a/packages/httpd24/examples/Makefile
+++ b/packages/httpd24/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=mod_hello
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=mod_hello
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=mod_hello
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=mod_hello
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=mod_hello
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=mod_hello
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=mod_hello
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=mod_hello
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=mod_hello
endif
@@ -610,6 +625,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=minimain
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=minimain
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=minimain
endif
@@ -697,6 +715,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=minimain
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=minimain
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=minimain
endif
@@ -751,6 +772,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=minimain
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=minimain
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=minimain
endif
@@ -1006,6 +1030,12 @@ 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=
@@ -1051,6 +1081,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1610,6 +1645,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_HTTPD24=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
+REQUIRE_PACKAGES_HTTPD24=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1871,6 +1915,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_HTTPD24=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
+REQUIRE_PACKAGES_HTTPD24=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2033,6 +2086,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_HTTPD24=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
+REQUIRE_PACKAGES_HTTPD24=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2448,7 +2510,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2478,17 +2540,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/httpd24/fpmake.pp b/packages/httpd24/fpmake.pp
index 2223fb6c7d..b7076f4530 100644
--- a/packages/httpd24/fpmake.pp
+++ b/packages/httpd24/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('httpd24');
+ P.ShortName:='hd24';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: Apache Foundation, header: Felipe Monteiro de Carvalho';
P.License := 'Library: Apache License 2, header: LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
@@ -46,6 +47,7 @@ begin
AddInclude('apr_file_info.inc');
AddInclude('apr_strings.inc');
AddInclude('apr_version.inc');
+ AddInclude('apr_mmap.inc');
end;
T:=P.Targets.AddUnit('httpd24.pas');
with T.Dependencies do
@@ -58,12 +60,13 @@ begin
AddInclude('ap_regex.inc');
AddInclude('http_config.inc');
AddInclude('http_core.inc');
+ AddInclude('ap_expr.inc');
AddInclude('util_filter.inc');
AddInclude('util_script.inc');
AddInclude('http_log.inc');
AddInclude('http_protocol.inc');
- AddInclude('aprutil/apr_buckets.inc');
- AddInclude('aprutil/apr_uri.inc');
+ AddInclude('src/aprutil/apr_buckets.inc');
+ AddInclude('src/aprutil/apr_uri.inc');
AddUnit('apr24');
end;
P.ExamplePath.Add('examples');
diff --git a/packages/ibase/Makefile b/packages/ibase/Makefile
index f399cf22da..51d5eed612 100644
--- a/packages/ibase/Makefile
+++ b/packages/ibase/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=ibase
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/ibase/Makefile.fpc b/packages/ibase/Makefile.fpc
index 0760db6f31..43869f1656 100644
--- a/packages/ibase/Makefile.fpc
+++ b/packages/ibase/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=ibase
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/ibase/Makefile.fpc.fpcmake b/packages/ibase/Makefile.fpc.fpcmake
index 7e1fe4625d..a93f9510ca 100644
--- a/packages/ibase/Makefile.fpc.fpcmake
+++ b/packages/ibase/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=ibase
-version=2.7.1
+version=3.1.1
[target]
units=ibase40 ibase60 ibase60dyn
diff --git a/packages/ibase/examples/Makefile b/packages/ibase/examples/Makefile
index e580c2b736..5db3a1bf84 100644
--- a/packages/ibase/examples/Makefile
+++ b/packages/ibase/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=testib40 testib60
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=testib40 testib60
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=testib40 testib60
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=testib40 testib60
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=testib40 testib60
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=testib40 testib60
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=testib40 testib60
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=testib40 testib60
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=testib40 testib60
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_IBASE=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
+REQUIRE_PACKAGES_IBASE=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_IBASE=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
+REQUIRE_PACKAGES_IBASE=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_IBASE=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
+REQUIRE_PACKAGES_IBASE=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/ibase/fpmake.pp b/packages/ibase/fpmake.pp
index 1b1983c54a..807bbcf4b8 100644
--- a/packages/ibase/fpmake.pp
+++ b/packages/ibase/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('ibase');
+ P.ShortName:='ibas';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: (Codegear?), header: ?';
P.License := 'Library: Interbase License, header: LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/ibase/src/ibase60.inc b/packages/ibase/src/ibase60.inc
index 64b378eeaa..315649649f 100644
--- a/packages/ibase/src/ibase60.inc
+++ b/packages/ibase/src/ibase60.inc
@@ -4,6 +4,7 @@
{$MODE objfpc}
{$MACRO on}
+
interface
{$IFDEF LinkDynamically}
@@ -1823,6 +1824,9 @@ type
function isc_sqlcode(_para1:PISC_STATUS):ISC_LONG; extdecl; external gdslib;
+ // Available in Firebird 2.5+
+ function fb_sqlstate(_para1: PAnsiChar;_para2:PISC_STATUS): ISC_STATUS ; extdecl; external gdslib;
+
procedure isc_sql_interprete(_para1:smallint; _para2:Pchar; _para3:smallint); extdecl; external gdslib;
function isc_transaction_info(_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:Pchar; _para5:smallint;
@@ -2037,6 +2041,19 @@ type
function isc_service_start(_para1:PISC_STATUS; _para2:Pisc_svc_handle; _para3:Pisc_resv_handle; _para4:word; _para5:Pchar):ISC_STATUS; extdecl; external gdslib;
{ }
+ { Shutdown and cancel }
+ { }
+ // Available in Firebird 2.5+
+ function fb_shutdown(_para1: UINT; _para2: integer): int; extdecl; external gdslib;
+
+ // Available in Firebird 2.5+
+ //function fb_shutdown_callback{!!!3 unknown typedef}: ISC_EXPORT{ISC_STATUS}{<= !!!4 unknown type};
+
+ // Available in Firebird 2.5+
+ //function fb_cancel_operation{!!!3 unknown typedef}: ISC_EXPORT{ISC_STATUS}{<= !!!4 unknown type};
+
+
+ { }
{ Forms functions }
{ }
{$IFDEF Unix}
@@ -2083,6 +2100,12 @@ type
function isc_suspend_window(_para1:PISC_STATUS; _para2:Pisc_win_handle):ISC_STATUS; extdecl; external gdslib;
{$ENDIF}
+ // Available in Firebird 2.5+
+ function fb_shutdown:int; extdecl; external gdslib;
+
+ // Available in Firebird 2.5+
+ function fb_sqlstate:ISC_STATUS; extdecl;external gdslib;
+
function isc_attach_database:ISC_STATUS; extdecl; external gdslib;
function isc_array_gen_sdl:ISC_STATUS; extdecl; external gdslib;
@@ -2331,6 +2354,8 @@ var
isc_start_multiple : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:pointer):ISC_STATUS; extdecl;
isc_start_transaction : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; args:array of const):ISC_STATUS; cdecl;
isc_sqlcode : function (_para1:PISC_STATUS):ISC_LONG; extdecl;
+ // Available in Firebird 2.5+
+ fb_sqlstate : function(_para1: PAnsiChar;_para2:PISC_STATUS):ISC_STATUS; extdecl;
isc_sql_interprete : procedure (_para1:smallint; _para2:Pchar; _para3:smallint); extdecl;
isc_transaction_info : function (_para1:PISC_STATUS; _para2:Pisc_tr_handle; _para3:smallint; _para4:Pchar; _para5:smallint;_para6:Pchar):ISC_STATUS; extdecl;
isc_transact_request : function (_para1:PISC_STATUS; _para2:Pisc_db_handle; _para3:Pisc_tr_handle; _para4:word; _para5:Pchar;_para6:word; _para7:Pchar; _para8:word; _para9:Pchar):ISC_STATUS; extdecl;
@@ -2441,6 +2466,14 @@ var
isc_service_detach : function (_para1:PISC_STATUS; _para2:Pisc_svc_handle):ISC_STATUS; extdecl;
isc_service_query : function (_para1:PISC_STATUS; _para2:Pisc_svc_handle; _para3:Pisc_resv_handle; _para4:word; _para5:Pchar;_para6:word; _para7:Pchar; _para8:word; _para9:Pchar):ISC_STATUS; extdecl;
isc_service_start : function (_para1:PISC_STATUS; _para2:Pisc_svc_handle; _para3:Pisc_resv_handle; _para4:word; _para5:Pchar):ISC_STATUS; extdecl;
+
+
+{ }
+{ Shutdown and cancel }
+{ }
+ // Available in Firebird 2.5+
+ fb_shutdown : function(_para1: UINT; _para2: integer):int; extdecl;
+
{ }
{ Forms functions }
{ }
@@ -2511,6 +2544,10 @@ begin
Exit;
inc(RefCount);
LoadedLibrary:=LibraryName;
+ // Available in Firebird 2.5+
+ pointer(fb_shutdown) := GetProcedureAddress(IBaseLibraryHandle,'fb_shutdown');
+ // Available in Firebird 2.5+
+ pointer(fb_sqlstate) := GetProcedureAddress(IBaseLibraryHandle,'fb_sqlstate');
pointer(isc_attach_database) := GetProcedureAddress(IBaseLibraryHandle,'isc_attach_database');
pointer(isc_array_gen_sdl) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_gen_sdl');
pointer(isc_array_get_slice) := GetProcedureAddress(IBaseLibraryHandle,'isc_array_get_slice');
@@ -2728,11 +2765,20 @@ Procedure ReleaseIBase60;
begin
if RefCount>1 then
Dec(RefCount)
- else if UnloadLibrary(LibHandle) then
+ else
begin
- Dec(RefCount);
- LibHandle := NilHandle;
- LoadedLibrary:='';
+ // Shutdown embedded subsystem with timeout 300ms (Firebird 2.5+)
+ // Required before unloading library; has no effect on non-embedded client
+ if (pointer(fb_shutdown)<>nil) and (fb_shutdown(300,1)<>0) then
+ begin
+ //todo: log error; still try to unload library below as the timeout may have been insufficient
+ end;
+ if UnloadLibrary(LibHandle) then
+ begin
+ Dec(RefCount);
+ LibHandle := NilHandle;
+ LoadedLibrary:='';
+ end;
end;
end;
diff --git a/packages/iconvenc/Makefile b/packages/iconvenc/Makefile
index 106bf9906c..a16c2f0f5c 100644
--- a/packages/iconvenc/Makefile
+++ b/packages/iconvenc/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=iconvenc
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/iconvenc/Makefile.fpc b/packages/iconvenc/Makefile.fpc
index 05bd9867b0..2020216106 100644
--- a/packages/iconvenc/Makefile.fpc
+++ b/packages/iconvenc/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=iconvenc
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/iconvenc/Makefile.fpc.fpcmake b/packages/iconvenc/Makefile.fpc.fpcmake
index 912339e1eb..359bcea790 100644
--- a/packages/iconvenc/Makefile.fpc.fpcmake
+++ b/packages/iconvenc/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=iconvenc
-version=2.7.1
+version=3.1.1
[target]
units=iconvenc iconvenc_dyn
diff --git a/packages/iconvenc/examples/Makefile b/packages/iconvenc/examples/Makefile
index 8a3c214e91..8b22f5fb41 100644
--- a/packages/iconvenc/examples/Makefile
+++ b/packages/iconvenc/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=iconvtest
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=iconvtest
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=iconvtest
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=iconvtest
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=iconvtest
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=iconvtest
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=iconvtest
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=iconvtest
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=iconvtest
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_ICONVENC=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
+REQUIRE_PACKAGES_ICONVENC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_ICONVENC=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
+REQUIRE_PACKAGES_ICONVENC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_ICONVENC=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
+REQUIRE_PACKAGES_ICONVENC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/iconvenc/fpmake.pp b/packages/iconvenc/fpmake.pp
index fe8a95b951..619a783958 100644
--- a/packages/iconvenc/fpmake.pp
+++ b/packages/iconvenc/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Marco van de Voort';
P.License := 'Library: LGPL2 or later, header: LGPL with modification, ';
P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,linux,aix];
diff --git a/packages/imagemagick/Makefile b/packages/imagemagick/Makefile
index 8cdcdaf374..103d314237 100644
--- a/packages/imagemagick/Makefile
+++ b/packages/imagemagick/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=imagemagick
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/imagemagick/Makefile.fpc b/packages/imagemagick/Makefile.fpc
index 154dbfb77f..299fe36d8d 100644
--- a/packages/imagemagick/Makefile.fpc
+++ b/packages/imagemagick/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=imagemagick
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/imagemagick/Makefile.fpc.fpcmake b/packages/imagemagick/Makefile.fpc.fpcmake
index 25f27a2878..7b407b9fc7 100644
--- a/packages/imagemagick/Makefile.fpc.fpcmake
+++ b/packages/imagemagick/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=imagemagick
-version=2.7.1
+version=3.1.1
[require]
libc=y
diff --git a/packages/imagemagick/fpmake.pp b/packages/imagemagick/fpmake.pp
index 06ae6eb056..268f365aec 100644
--- a/packages/imagemagick/fpmake.pp
+++ b/packages/imagemagick/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: ImageMagick Studio LLC , header: Felipe Monteiro de Carvalho';
P.License := 'Library: Imagemagick license, header: LGPL with modification, ';
diff --git a/packages/imagemagick/src/magick_type.inc b/packages/imagemagick/src/magick_type.inc
index 194e534403..c59c1aa938 100644
--- a/packages/imagemagick/src/magick_type.inc
+++ b/packages/imagemagick/src/magick_type.inc
@@ -177,19 +177,31 @@ type
PCompositeOperator = ^CompositeOperator;
type
- CompressionType = (
- UndefinedCompression,
- NoCompression,
- BZipCompression,
- FaxCompression,
- Group4Compression,
- JPEGCompression,
- JPEG2000Compression,
- LosslessJPEGCompression,
- LZWCompression,
- RLECompression,
- ZipCompression
- );
+ // Verified with imagemagick 6.7.7-10
+ CompressionType = (
+ UndefinedCompression,
+ NoCompression,
+ BZipCompression,
+ DXT1Compression,
+ DXT3Compression,
+ DXT5Compression,
+ FaxCompression, {* CCITT Group 3 compression *}
+ Group4Compression, {* CCITT Group 4 compression (also used in faxes) *}
+ JPEGCompression,
+ JPEG2000Compression, {* ISO/IEC std 15444-1 *}
+ LosslessJPEGCompression,
+ LZWCompression,
+ RLECompression,
+ ZipCompression,
+ ZipSCompression,
+ PizCompression,
+ Pxr24Compression,
+ B44Compression,
+ B44ACompression,
+ LZMACompression, {* Lempel-Ziv-Markov chain algorithm *}
+ JBIG1Compression, {* ISO/IEC std 11544 / ITU-T rec T.82 *}
+ JBIG2Compression {* ISO/IEC std 14492 / ITU-T rec T.88 *}
+ );
PCompressionType = ^CompressionType;
diff --git a/packages/imlib/Makefile b/packages/imlib/Makefile
index 53ed2f6adb..a72bfc85a4 100644
--- a/packages/imlib/Makefile
+++ b/packages/imlib/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=imlib
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/imlib/Makefile.fpc b/packages/imlib/Makefile.fpc
index 34d2e8f92e..767d1a3db1 100644
--- a/packages/imlib/Makefile.fpc
+++ b/packages/imlib/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=imlib
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/imlib/Makefile.fpc.fpcmake b/packages/imlib/Makefile.fpc.fpcmake
index 39af77da03..cb94e89edb 100644
--- a/packages/imlib/Makefile.fpc.fpcmake
+++ b/packages/imlib/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=imlib
-version=2.7.1
+version=3.1.1
[target]
units=gdk_imlib imlib
diff --git a/packages/imlib/fpmake.pp b/packages/imlib/fpmake.pp
index 476ad0501a..b2e8c5efa5 100644
--- a/packages/imlib/fpmake.pp
+++ b/packages/imlib/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('imlib');
+ P.ShortName:='imlb';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: Carsten Haitzler, header: ?';
P.License := 'Library: LGPL 2 or later, header: LGPL with modification';
diff --git a/packages/iosxlocale/Makefile b/packages/iosxlocale/Makefile
index 849d58e2f6..e9818c235e 100644
--- a/packages/iosxlocale/Makefile
+++ b/packages/iosxlocale/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -319,8 +325,8 @@ FPMAKE_SKIP_CONFIG=-n
FPCFPMAKE=$(FPC)
endif
endif
-override PACKAGE_NAME=univint
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_NAME=iosxlocale
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/iosxlocale/Makefile.fpc b/packages/iosxlocale/Makefile.fpc
index 70c073cf9b..919574df35 100644
--- a/packages/iosxlocale/Makefile.fpc
+++ b/packages/iosxlocale/Makefile.fpc
@@ -3,8 +3,8 @@
#
[package]
-name=univint
-version=2.7.1
+name=iosxlocale
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/iosxlocale/Makefile.fpc.fpcmake b/packages/iosxlocale/Makefile.fpc.fpcmake
index 7765a01d93..5f199c501c 100644
--- a/packages/iosxlocale/Makefile.fpc.fpcmake
+++ b/packages/iosxlocale/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=univint
-version=2.7.1
+version=3.1.1
[target]
units=iosxlocale
diff --git a/packages/iosxlocale/fpmake.pp b/packages/iosxlocale/fpmake.pp
index 424a0b233b..c21424bf30 100644
--- a/packages/iosxlocale/fpmake.pp
+++ b/packages/iosxlocale/fpmake.pp
@@ -17,7 +17,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.OSes:=[darwin,iphonesim];
diff --git a/packages/jni/Makefile b/packages/jni/Makefile
index 67bcc0260a..cda77022f3 100644
--- a/packages/jni/Makefile
+++ b/packages/jni/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=jni
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,13 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipinstall: fpc_zipinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2311,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2339,15 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
diff --git a/packages/jni/Makefile.fpc b/packages/jni/Makefile.fpc
index 558cf4ae15..1f01e066ed 100644
--- a/packages/jni/Makefile.fpc
+++ b/packages/jni/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=jni
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,16 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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/packages/jni/fpmake.pp b/packages/jni/fpmake.pp
index cab09cd2f1..1f836be11f 100644
--- a/packages/jni/fpmake.pp
+++ b/packages/jni/fpmake.pp
@@ -18,7 +18,7 @@ begin
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes := [win32,win64,linux,android];
P.Author := 'FreePascal development team';
diff --git a/packages/ldap/Makefile b/packages/ldap/Makefile
index 265d38ea77..25e884a76d 100644
--- a/packages/ldap/Makefile
+++ b/packages/ldap/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=ldap
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/ldap/Makefile.fpc b/packages/ldap/Makefile.fpc
index 650b460fe0..4be288cb8c 100644
--- a/packages/ldap/Makefile.fpc
+++ b/packages/ldap/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=ldap
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/ldap/Makefile.fpc.fpcmake b/packages/ldap/Makefile.fpc.fpcmake
index 8e7db6dce7..e70e05c4d1 100644
--- a/packages/ldap/Makefile.fpc.fpcmake
+++ b/packages/ldap/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=ldap
-version=2.7.1
+version=3.1.1
[target]
units=lber ldap
diff --git a/packages/ldap/fpmake.pp b/packages/ldap/fpmake.pp
index a85ed1ad75..4225732327 100644
--- a/packages/ldap/fpmake.pp
+++ b/packages/ldap/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: Howard Chu, Pierangelo Masarati and Kurt Zeilenga, header: Ivo Steinmann';
P.License := 'Library: OpenLDAP Public License (3 clause BSD like), header: LGPL with modification';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/libc/Makefile b/packages/libc/Makefile
index 6df83a563e..d61bf6ac46 100644
--- a/packages/libc/Makefile
+++ b/packages/libc/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=libc
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libc/Makefile.fpc b/packages/libc/Makefile.fpc
index 49b154655d..3fed135aa1 100644
--- a/packages/libc/Makefile.fpc
+++ b/packages/libc/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=libc
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libc/Makefile.fpc.fpcmake b/packages/libc/Makefile.fpc.fpcmake
index 9185b1a343..2cf77a1c13 100644
--- a/packages/libc/Makefile.fpc.fpcmake
+++ b/packages/libc/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=libc
-version=2.7.1
+version=3.1.1
[target]
units=kerneldefs kernelioctl libc
diff --git a/packages/libc/fpmake.pp b/packages/libc/fpmake.pp
index be8387f287..5f2b993819 100644
--- a/packages/libc/fpmake.pp
+++ b/packages/libc/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Peter Vreman and Michael van Canneyt (?)';
P.License := 'LGPL with modification, ';
diff --git a/packages/libcurl/Makefile b/packages/libcurl/Makefile
index ccaae7d8b7..96f148ae9c 100644
--- a/packages/libcurl/Makefile
+++ b/packages/libcurl/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=libcurl
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libcurl/Makefile.fpc b/packages/libcurl/Makefile.fpc
index 3c87322e1e..a5fa004473 100644
--- a/packages/libcurl/Makefile.fpc
+++ b/packages/libcurl/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=libcurl
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libcurl/Makefile.fpc.fpcmake b/packages/libcurl/Makefile.fpc.fpcmake
index c624c5d250..ffc30567b1 100644
--- a/packages/libcurl/Makefile.fpc.fpcmake
+++ b/packages/libcurl/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=libcurl
-version=2.7.1
+version=3.1.1
[require]
libc=y
diff --git a/packages/libcurl/examples/Makefile b/packages/libcurl/examples/Makefile
index 43d984b8c6..a0eb5b1362 100644
--- a/packages/libcurl/examples/Makefile
+++ b/packages/libcurl/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=testcurl teststream
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=testcurl teststream
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=testcurl teststream
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=testcurl teststream
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=testcurl teststream
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=testcurl teststream
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=testcurl teststream
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=testcurl teststream
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=testcurl teststream
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBCURL=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
+REQUIRE_PACKAGES_LIBCURL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBCURL=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
+REQUIRE_PACKAGES_LIBCURL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBCURL=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
+REQUIRE_PACKAGES_LIBCURL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libcurl/examples/testcurl.pp b/packages/libcurl/examples/testcurl.pp
index bc9eeb2f9c..c60ac70dd1 100644
--- a/packages/libcurl/examples/testcurl.pp
+++ b/packages/libcurl/examples/testcurl.pp
@@ -11,6 +11,12 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
+{
+ This program demonstrates the use of libcurl.
+ It requires the libcurl library. Should work on Unix/Linux.
+ It would need modifications to run on Windows.
+}
+
{$mode objfpc}
{$H+}
program testcurl;
diff --git a/packages/libcurl/examples/teststream.pp b/packages/libcurl/examples/teststream.pp
index 118ff3d722..098522b4e7 100644
--- a/packages/libcurl/examples/teststream.pp
+++ b/packages/libcurl/examples/teststream.pp
@@ -12,8 +12,11 @@
**********************************************************************}
{
- This example shows how to use curl and write the result to a TStream.
+ This example shows how to use curl and write the result to a TStream.
+ It requires the libcurl library. Should work on Unix/Linux.
+ It would need modifications to run on Windows.
}
+
{$mode objfpc}
{$H+}
program teststream;
diff --git a/packages/libcurl/fpmake.pp b/packages/libcurl/fpmake.pp
index fac9026bcc..7247511da3 100644
--- a/packages/libcurl/fpmake.pp
+++ b/packages/libcurl/fpmake.pp
@@ -16,12 +16,12 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: Daniel Stenberg, header: Free Pascal development team';
P.License := 'Library: MIT, header: LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
- P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,aix];
+ P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,aix,dragonfly];
P.Email := '';
P.Description := 'Library to fetch files from URLs using many protocols.';
P.NeedLibC:= true; // true for headers that indirectly link to libc?
diff --git a/packages/libgbafpc/Makefile b/packages/libgbafpc/Makefile
index a838342ce5..267447604a 100644
--- a/packages/libgbafpc/Makefile
+++ b/packages/libgbafpc/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=libgbafpc
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libgbafpc/Makefile.fpc b/packages/libgbafpc/Makefile.fpc
index 8ba225edd0..054040f6f4 100644
--- a/packages/libgbafpc/Makefile.fpc
+++ b/packages/libgbafpc/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=libgbafpc
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libgbafpc/Makefile.fpc.fpcmake b/packages/libgbafpc/Makefile.fpc.fpcmake
index 69a576a562..1b2157c42b 100644
--- a/packages/libgbafpc/Makefile.fpc.fpcmake
+++ b/packages/libgbafpc/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=libgbafpc
-version=2.7.1
+version=3.1.1
[target]
loaders=core_asm
diff --git a/packages/libgbafpc/examples/Makefile b/packages/libgbafpc/examples/Makefile
index 4be9639b65..31296fceaf 100644
--- a/packages/libgbafpc/examples/Makefile
+++ b/packages/libgbafpc/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=audio graphics template
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=audio graphics template
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=audio graphics template
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=audio graphics template
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=audio graphics template
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=audio graphics template
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=audio graphics template
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=audio graphics template
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=audio graphics template
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2570,6 +2629,11 @@ TARGET_DIRS_AUDIO=1
TARGET_DIRS_GRAPHICS=1
TARGET_DIRS_TEMPLATE=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_AUDIO=1
+TARGET_DIRS_GRAPHICS=1
+TARGET_DIRS_TEMPLATE=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_AUDIO=1
TARGET_DIRS_GRAPHICS=1
@@ -2715,6 +2779,11 @@ TARGET_DIRS_AUDIO=1
TARGET_DIRS_GRAPHICS=1
TARGET_DIRS_TEMPLATE=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_AUDIO=1
+TARGET_DIRS_GRAPHICS=1
+TARGET_DIRS_TEMPLATE=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_AUDIO=1
TARGET_DIRS_GRAPHICS=1
@@ -2805,6 +2874,11 @@ TARGET_DIRS_AUDIO=1
TARGET_DIRS_GRAPHICS=1
TARGET_DIRS_TEMPLATE=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_AUDIO=1
+TARGET_DIRS_GRAPHICS=1
+TARGET_DIRS_TEMPLATE=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_AUDIO=1
TARGET_DIRS_GRAPHICS=1
diff --git a/packages/libgbafpc/examples/audio/Makefile b/packages/libgbafpc/examples/audio/Makefile
index 7ee28729b2..2fd36eba45 100644
--- a/packages/libgbafpc/examples/audio/Makefile
+++ b/packages/libgbafpc/examples/audio/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=libgbafpc-audio-examples
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_DIRS+=PlayBoyScout
endif
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=PlayBoyScout
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=PlayBoyScout
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=PlayBoyScout
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=PlayBoyScout
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=PlayBoyScout
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=PlayBoyScout
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=PlayBoyScout
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=PlayBoyScout
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=PlayBoyScout
endif
@@ -786,6 +801,12 @@ 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=
@@ -831,6 +852,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1390,6 +1416,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1651,6 +1686,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1813,6 +1857,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2228,7 +2281,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2258,17 +2311,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2679,6 +2738,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_PLAYBOYSCOUT=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_PLAYBOYSCOUT=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_PLAYBOYSCOUT=1
endif
@@ -2766,6 +2828,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_PLAYBOYSCOUT=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_PLAYBOYSCOUT=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_PLAYBOYSCOUT=1
endif
@@ -2820,6 +2885,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
TARGET_DIRS_PLAYBOYSCOUT=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_PLAYBOYSCOUT=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_PLAYBOYSCOUT=1
endif
diff --git a/packages/libgbafpc/examples/audio/Makefile.fpc b/packages/libgbafpc/examples/audio/Makefile.fpc
index bd06362f90..10b535f204 100644
--- a/packages/libgbafpc/examples/audio/Makefile.fpc
+++ b/packages/libgbafpc/examples/audio/Makefile.fpc
@@ -3,7 +3,7 @@
#
[package]
name=libgbafpc-audio-examples
-version=2.7.1
+version=3.1.1
[target]
dirs=PlayBoyScout
diff --git a/packages/libgbafpc/examples/audio/PlayBoyScout/Makefile b/packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
index 54f84f6681..d982d2d2ab 100644
--- a/packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
+++ b/packages/libgbafpc/examples/audio/PlayBoyScout/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=PlayBoyScout
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=PlayBoyScout
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=PlayBoyScout
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=PlayBoyScout
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=PlayBoyScout
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=PlayBoyScout
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=PlayBoyScout
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=PlayBoyScout
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=PlayBoyScout
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1235,6 +1268,12 @@ 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=
@@ -1280,6 +1319,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1839,6 +1883,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2100,6 +2153,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2262,6 +2324,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2677,7 +2748,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2707,17 +2778,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libgbafpc/examples/graphics/Makefile b/packages/libgbafpc/examples/graphics/Makefile
index c7453da50f..c1eb716105 100644
--- a/packages/libgbafpc/examples/graphics/Makefile
+++ b/packages/libgbafpc/examples/graphics/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=libgbafpc-graphics-examples
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_DIRS+=ansi_console PCXView SimpleBGScroll
endif
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=ansi_console PCXView SimpleBGScroll
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=ansi_console PCXView SimpleBGScroll
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=ansi_console PCXView SimpleBGScroll
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=ansi_console PCXView SimpleBGScroll
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=ansi_console PCXView SimpleBGScroll
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=ansi_console PCXView SimpleBGScroll
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=ansi_console PCXView SimpleBGScroll
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=ansi_console PCXView SimpleBGScroll
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=ansi_console PCXView SimpleBGScroll
endif
@@ -786,6 +801,12 @@ 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=
@@ -831,6 +852,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1390,6 +1416,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1651,6 +1686,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1813,6 +1857,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2228,7 +2281,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2258,17 +2311,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2725,6 +2784,11 @@ TARGET_DIRS_ANSI_CONSOLE=1
TARGET_DIRS_PCXVIEW=1
TARGET_DIRS_SIMPLEBGSCROLL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_ANSI_CONSOLE=1
+TARGET_DIRS_PCXVIEW=1
+TARGET_DIRS_SIMPLEBGSCROLL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_ANSI_CONSOLE=1
TARGET_DIRS_PCXVIEW=1
@@ -2870,6 +2934,11 @@ TARGET_DIRS_ANSI_CONSOLE=1
TARGET_DIRS_PCXVIEW=1
TARGET_DIRS_SIMPLEBGSCROLL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_ANSI_CONSOLE=1
+TARGET_DIRS_PCXVIEW=1
+TARGET_DIRS_SIMPLEBGSCROLL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_ANSI_CONSOLE=1
TARGET_DIRS_PCXVIEW=1
@@ -2960,6 +3029,11 @@ TARGET_DIRS_ANSI_CONSOLE=1
TARGET_DIRS_PCXVIEW=1
TARGET_DIRS_SIMPLEBGSCROLL=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_ANSI_CONSOLE=1
+TARGET_DIRS_PCXVIEW=1
+TARGET_DIRS_SIMPLEBGSCROLL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_ANSI_CONSOLE=1
TARGET_DIRS_PCXVIEW=1
diff --git a/packages/libgbafpc/examples/graphics/Makefile.fpc b/packages/libgbafpc/examples/graphics/Makefile.fpc
index b68bf712d5..5ec3b3771b 100644
--- a/packages/libgbafpc/examples/graphics/Makefile.fpc
+++ b/packages/libgbafpc/examples/graphics/Makefile.fpc
@@ -3,7 +3,7 @@
#
[package]
name=libgbafpc-graphics-examples
-version=2.7.1
+version=3.1.1
[target]
dirs=ansi_console PCXView SimpleBGScroll
diff --git a/packages/libgbafpc/examples/graphics/PCXView/Makefile b/packages/libgbafpc/examples/graphics/PCXView/Makefile
index 69edcbe3ba..639fea5deb 100644
--- a/packages/libgbafpc/examples/graphics/PCXView/Makefile
+++ b/packages/libgbafpc/examples/graphics/PCXView/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=PcxView
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=PcxView
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=PcxView
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=PcxView
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=PcxView
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=PcxView
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=PcxView
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=PcxView
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=PcxView
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1235,6 +1268,12 @@ 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=
@@ -1280,6 +1319,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1839,6 +1883,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2100,6 +2153,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2262,6 +2324,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2677,7 +2748,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2707,17 +2778,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile b/packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
index 150db3b6a8..8b5a409958 100644
--- a/packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
+++ b/packages/libgbafpc/examples/graphics/SimpleBGScroll/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=SimpleBGScroll
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=SimpleBGScroll
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=SimpleBGScroll
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=SimpleBGScroll
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=SimpleBGScroll
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=SimpleBGScroll
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=SimpleBGScroll
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=SimpleBGScroll
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=SimpleBGScroll
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1235,6 +1268,12 @@ 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=
@@ -1280,6 +1319,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1839,6 +1883,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2100,6 +2153,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2262,6 +2324,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2677,7 +2748,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2707,17 +2778,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libgbafpc/examples/graphics/ansi_console/Makefile b/packages/libgbafpc/examples/graphics/ansi_console/Makefile
index c848f2830d..dbbd0b4c3c 100644
--- a/packages/libgbafpc/examples/graphics/ansi_console/Makefile
+++ b/packages/libgbafpc/examples/graphics/ansi_console/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=console
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=console
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=console
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=console
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=console
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=console
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=console
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=console
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=console
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1235,6 +1268,12 @@ 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=
@@ -1280,6 +1319,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1839,6 +1883,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2100,6 +2153,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2262,6 +2324,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2677,7 +2748,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2707,17 +2778,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libgbafpc/examples/template/Makefile b/packages/libgbafpc/examples/template/Makefile
index c5695be88d..2968e83925 100644
--- a/packages/libgbafpc/examples/template/Makefile
+++ b/packages/libgbafpc/examples/template/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -322,7 +328,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=libgbafpc-template-examples
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
BUILD = build
INC = inc
AUDIO_FILES = $(foreach dir, $(notdir $(wildcard audio/*.*)), $(CURDIR)/audio/$(dir))
@@ -397,6 +403,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=template
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=template
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=template
endif
@@ -484,6 +493,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=template
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=template
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=template
endif
@@ -538,6 +550,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=template
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=template
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=template
endif
@@ -619,6 +634,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -706,6 +724,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -760,6 +781,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -841,6 +865,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -928,6 +955,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -982,6 +1012,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.gba *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1237,6 +1270,12 @@ 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=
@@ -1282,6 +1321,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1841,6 +1885,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2102,6 +2155,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2264,6 +2326,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGBAFPC=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
+REQUIRE_PACKAGES_LIBGBAFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2679,7 +2750,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2709,17 +2780,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libgbafpc/examples/template/Makefile.fpc b/packages/libgbafpc/examples/template/Makefile.fpc
index 1a88bdf526..3722fb84e3 100644
--- a/packages/libgbafpc/examples/template/Makefile.fpc
+++ b/packages/libgbafpc/examples/template/Makefile.fpc
@@ -3,7 +3,7 @@
#
[package]
name=libgbafpc-template-examples
-version=2.7.1
+version=3.1.1
[target]
loaders=
diff --git a/packages/libgbafpc/fpmake.pp b/packages/libgbafpc/fpmake.pp
index 49fa01f98e..b06f08a3f5 100644
--- a/packages/libgbafpc/fpmake.pp
+++ b/packages/libgbafpc/fpmake.pp
@@ -18,7 +18,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: libgba and maxmod from devkitARM; headers: Francesco Lombardi';
P.License := 'LGPL';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/libgbafpc/src/gba/BoyScout.inc b/packages/libgbafpc/src/gba/boyscout.inc
index d85a54b2b9..d85a54b2b9 100644
--- a/packages/libgbafpc/src/gba/BoyScout.inc
+++ b/packages/libgbafpc/src/gba/boyscout.inc
diff --git a/packages/libgd/Makefile b/packages/libgd/Makefile
index 361902ceed..0b0d5f7e5a 100644
--- a/packages/libgd/Makefile
+++ b/packages/libgd/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=libgd
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libgd/Makefile.fpc b/packages/libgd/Makefile.fpc
index 993accf64b..cf2ea5d37d 100644
--- a/packages/libgd/Makefile.fpc
+++ b/packages/libgd/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=libgd
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libgd/Makefile.fpc.fpcmake b/packages/libgd/Makefile.fpc.fpcmake
index c0968c8226..e6611c3b98 100644
--- a/packages/libgd/Makefile.fpc.fpcmake
+++ b/packages/libgd/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=libgd
-version=2.7.1
+version=3.1.1
[require]
libc=y
diff --git a/packages/libgd/examples/Makefile b/packages/libgd/examples/Makefile
index a687ecf26b..e24234a07c 100644
--- a/packages/libgd/examples/Makefile
+++ b/packages/libgd/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=gdtest gdtestcgi
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=gdtest gdtestcgi
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=gdtest gdtestcgi
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=gdtest gdtestcgi
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=gdtest gdtestcgi
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=gdtest gdtestcgi
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=gdtest gdtestcgi
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=gdtest gdtestcgi
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=gdtest gdtestcgi
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGD=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
+REQUIRE_PACKAGES_LIBGD=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGD=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
+REQUIRE_PACKAGES_LIBGD=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBGD=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
+REQUIRE_PACKAGES_LIBGD=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libgd/fpmake.pp b/packages/libgd/fpmake.pp
index c1b2ebd3cc..083b624b13 100644
--- a/packages/libgd/fpmake.pp
+++ b/packages/libgd/fpmake.pp
@@ -13,10 +13,12 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('libgd');
+ P.ShortName:='lgd';
+ P.Description := 'Interface unit for library libgd - image processing';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.OSes := P.OSes - [embedded,nativent,msdos];
diff --git a/packages/libgd/src/gd.pas b/packages/libgd/src/gd.pas
index 996f5b550c..db8dbdf78a 100644
--- a/packages/libgd/src/gd.pas
+++ b/packages/libgd/src/gd.pas
@@ -22,7 +22,9 @@ unit gd;
{$IFDEF MORPHOS}
{$UNDEF FPC_TARGET_SUPPORTS_DYNLIBS}
{$ENDIF MORPHOS}
-
+{$IFDEF AROS}
+ {$UNDEF FPC_TARGET_SUPPORTS_DYNLIBS}
+{$ENDIF AROS}
interface
@@ -85,6 +87,12 @@ uses
{$DEFINE gdlib := }
{$DEFINE clib := }
{$ENDIF MORPHOS}
+{$IFDEF AROS}
+ {$UNDEF LOAD_DYNAMICALLY}
+ {$DEFINE gdlib := }
+ {$DEFINE clib := }
+{$ENDIF MORPHOS}
+
{$IFNDEF LOAD_DYNAMICALLY}
{$IFDEF darwin}
diff --git a/packages/libndsfpc/Makefile b/packages/libndsfpc/Makefile
index a3fa146c29..01dc8c5a32 100644
--- a/packages/libndsfpc/Makefile
+++ b/packages/libndsfpc/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=libndsfpc
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libndsfpc/Makefile.fpc b/packages/libndsfpc/Makefile.fpc
index 3fe7c203a1..9383ca8b34 100644
--- a/packages/libndsfpc/Makefile.fpc
+++ b/packages/libndsfpc/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=libndsfpc
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libndsfpc/Makefile.fpc.fpcmake b/packages/libndsfpc/Makefile.fpc.fpcmake
index 12fd4efb9b..2bc7ac3ea0 100644
--- a/packages/libndsfpc/Makefile.fpc.fpcmake
+++ b/packages/libndsfpc/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=libndsfpc
-version=2.7.1
+version=3.1.1
[target]
units=nds9 nds7 dswifi9 dswifi7 fat filesystem maxmod9 maxmod7 gl2d
@@ -16,7 +16,7 @@ includedir=src src/dswifi src/fat src/maxmod src/gl2d
sourcedir=src tests
[prerules]
-BINUTILSPREFIX=arm-eabi-
+BINUTILSPREFIX=arm-none-eabi-
[install]
fpcpackage=y
diff --git a/packages/libndsfpc/examples/Makefile b/packages/libndsfpc/examples/Makefile
index 9ab8f731ca..86f00d2afc 100644
--- a/packages/libndsfpc/examples/Makefile
+++ b/packages/libndsfpc/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=audio card debugging ds_motion dswifi filesystem gl2d graphics hello_world input time
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=audio card debugging ds_motion dswifi filesystem gl2d graphics hello_world input time
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=audio card debugging ds_motion dswifi filesystem gl2d graphics hello_world input time
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=audio card debugging ds_motion dswifi filesystem gl2d graphics hello_world input time
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=audio card debugging ds_motion dswifi filesystem gl2d graphics hello_world input time
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=audio card debugging ds_motion dswifi filesystem gl2d graphics hello_world input time
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=audio card debugging ds_motion dswifi filesystem gl2d graphics hello_world input time
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=audio card debugging ds_motion dswifi filesystem gl2d graphics hello_world input time
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=audio card debugging ds_motion dswifi filesystem gl2d graphics hello_world input time
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2754,6 +2813,19 @@ TARGET_DIRS_HELLO_WORLD=1
TARGET_DIRS_INPUT=1
TARGET_DIRS_TIME=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+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),m68k-linux)
TARGET_DIRS_AUDIO=1
TARGET_DIRS_CARD=1
@@ -3131,6 +3203,19 @@ TARGET_DIRS_HELLO_WORLD=1
TARGET_DIRS_INPUT=1
TARGET_DIRS_TIME=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+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),arm-linux)
TARGET_DIRS_AUDIO=1
TARGET_DIRS_CARD=1
@@ -3365,6 +3450,19 @@ TARGET_DIRS_HELLO_WORLD=1
TARGET_DIRS_INPUT=1
TARGET_DIRS_TIME=1
endif
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
TARGET_DIRS_AUDIO=1
TARGET_DIRS_CARD=1
diff --git a/packages/libndsfpc/examples/audio/Makefile b/packages/libndsfpc/examples/audio/Makefile
index 8cf2e88275..7de1e5783d 100644
--- a/packages/libndsfpc/examples/audio/Makefile
+++ b/packages/libndsfpc/examples/audio/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=maxmod micrecord
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=maxmod micrecord
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=maxmod micrecord
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=maxmod micrecord
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=maxmod micrecord
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=maxmod micrecord
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=maxmod micrecord
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=maxmod micrecord
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=maxmod micrecord
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2547,6 +2606,10 @@ ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_MAXMOD=1
TARGET_DIRS_MICRECORD=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_MAXMOD=1
+TARGET_DIRS_MICRECORD=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_MAXMOD=1
TARGET_DIRS_MICRECORD=1
@@ -2663,6 +2726,10 @@ ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_MAXMOD=1
TARGET_DIRS_MICRECORD=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_MAXMOD=1
+TARGET_DIRS_MICRECORD=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_MAXMOD=1
TARGET_DIRS_MICRECORD=1
@@ -2735,6 +2802,10 @@ ifeq ($(FULL_TARGET),mipsel-linux)
TARGET_DIRS_MAXMOD=1
TARGET_DIRS_MICRECORD=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_MAXMOD=1
+TARGET_DIRS_MICRECORD=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_MAXMOD=1
TARGET_DIRS_MICRECORD=1
diff --git a/packages/libndsfpc/examples/audio/maxmod/Makefile b/packages/libndsfpc/examples/audio/maxmod/Makefile
index b6f19ed92b..398f719fb1 100644
--- a/packages/libndsfpc/examples/audio/maxmod/Makefile
+++ b/packages/libndsfpc/examples/audio/maxmod/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=audio_modes basic_sound reverb song_events_example song_events_example2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=audio_modes basic_sound reverb song_events_example song_events_example2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=audio_modes basic_sound reverb song_events_example song_events_example2
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=audio_modes basic_sound reverb song_events_example song_events_example2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=audio_modes basic_sound reverb song_events_example song_events_example2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=audio_modes basic_sound reverb song_events_example song_events_example2
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=audio_modes basic_sound reverb song_events_example song_events_example2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=audio_modes basic_sound reverb song_events_example song_events_example2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=audio_modes basic_sound reverb song_events_example song_events_example2
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2616,6 +2675,13 @@ TARGET_DIRS_REVERB=1
TARGET_DIRS_SONG_EVENTS_EXAMPLE=1
TARGET_DIRS_SONG_EVENTS_EXAMPLE2=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+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),m68k-linux)
TARGET_DIRS_AUDIO_MODES=1
TARGET_DIRS_BASIC_SOUND=1
@@ -2819,6 +2885,13 @@ TARGET_DIRS_REVERB=1
TARGET_DIRS_SONG_EVENTS_EXAMPLE=1
TARGET_DIRS_SONG_EVENTS_EXAMPLE2=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+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),arm-linux)
TARGET_DIRS_AUDIO_MODES=1
TARGET_DIRS_BASIC_SOUND=1
@@ -2945,6 +3018,13 @@ TARGET_DIRS_REVERB=1
TARGET_DIRS_SONG_EVENTS_EXAMPLE=1
TARGET_DIRS_SONG_EVENTS_EXAMPLE2=1
endif
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
TARGET_DIRS_AUDIO_MODES=1
TARGET_DIRS_BASIC_SOUND=1
diff --git a/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile b/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
index ffe2296f9e..5518068b40 100644
--- a/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
+++ b/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -393,6 +399,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=audio_modes
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=audio_modes
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=audio_modes
endif
@@ -480,6 +489,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=audio_modes
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=audio_modes
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=audio_modes
endif
@@ -534,6 +546,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=audio_modes
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=audio_modes
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=audio_modes
endif
@@ -615,6 +630,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
@@ -702,6 +720,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
@@ -756,6 +777,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
@@ -837,6 +861,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -924,6 +951,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -978,6 +1008,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -1059,6 +1092,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -1146,6 +1182,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -1200,6 +1239,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -1213,6 +1255,237 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1455,6 +1728,12 @@ 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=
@@ -1500,6 +1779,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2059,6 +2343,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2320,6 +2613,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2482,6 +2784,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2897,7 +3208,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2927,17 +3238,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_loaders
ifneq ($(TARGET_LOADERS),)
override ALLTARGET+=fpc_loaders
diff --git a/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile.fpc b/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile.fpc
index 4f0a0c535c..b52520b62b 100644
--- a/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile.fpc
+++ b/packages/libndsfpc/examples/audio/maxmod/audio_modes/Makefile.fpc
@@ -14,6 +14,10 @@ nortl=y
[install]
fpcpackage=y
+[compiler]
+options=-Xm
+
+
[default]
cpu=arm
target=nds
diff --git a/packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile b/packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
index 6d5f3e2eec..d67081c14c 100644
--- a/packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
+++ b/packages/libndsfpc/examples/audio/maxmod/basic_sound/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -393,6 +399,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=basic_sound
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=basic_sound
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=basic_sound
endif
@@ -480,6 +489,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=basic_sound
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=basic_sound
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=basic_sound
endif
@@ -534,6 +546,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=basic_sound
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=basic_sound
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=basic_sound
endif
@@ -615,6 +630,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
@@ -702,6 +720,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
@@ -756,6 +777,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
@@ -837,6 +861,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -924,6 +951,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -978,6 +1008,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -1059,6 +1092,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -1146,6 +1182,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -1200,6 +1239,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -1282,6 +1324,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -O2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -O2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -O2
endif
@@ -1369,6 +1414,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -O2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -O2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -O2
endif
@@ -1423,6 +1471,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -O2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -O2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -O2
endif
@@ -1677,6 +1728,12 @@ 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=
@@ -1722,6 +1779,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2281,6 +2343,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2542,6 +2613,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2704,6 +2784,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -3119,7 +3208,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -3149,17 +3238,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_loaders
ifneq ($(TARGET_LOADERS),)
override ALLTARGET+=fpc_loaders
diff --git a/packages/libndsfpc/examples/audio/maxmod/reverb/Makefile b/packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
index 382992a6d0..fdc0dd0afa 100644
--- a/packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
+++ b/packages/libndsfpc/examples/audio/maxmod/reverb/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -393,6 +399,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=reverb
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=reverb
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=reverb
endif
@@ -480,6 +489,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=reverb
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=reverb
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=reverb
endif
@@ -534,6 +546,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=reverb
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=reverb
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=reverb
endif
@@ -615,6 +630,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
@@ -702,6 +720,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
@@ -756,6 +777,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_LOADERS+=soundbank.bin $(GFX_FILES)
endif
@@ -837,6 +861,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -924,6 +951,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -978,6 +1008,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -1059,6 +1092,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -1146,6 +1182,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -1200,6 +1239,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -1213,6 +1255,237 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1455,6 +1728,12 @@ 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=
@@ -1500,6 +1779,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2059,6 +2343,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2320,6 +2613,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2482,6 +2784,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2897,7 +3208,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2927,17 +3238,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_loaders
ifneq ($(TARGET_LOADERS),)
override ALLTARGET+=fpc_loaders
diff --git a/packages/libndsfpc/examples/audio/maxmod/reverb/Makefile.fpc b/packages/libndsfpc/examples/audio/maxmod/reverb/Makefile.fpc
index 64c636363a..d83c47ac67 100644
--- a/packages/libndsfpc/examples/audio/maxmod/reverb/Makefile.fpc
+++ b/packages/libndsfpc/examples/audio/maxmod/reverb/Makefile.fpc
@@ -14,6 +14,9 @@ nortl=y
[install]
fpcpackage=y
+[compiler]
+options=-Xm
+
[default]
cpu=arm
target=nds
diff --git a/packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile b/packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
index 68f492c495..75d90ab5f7 100644
--- a/packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
+++ b/packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=song_events_example
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=song_events_example
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=song_events_example
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=song_events_example
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=song_events_example
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=song_events_example
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=song_events_example
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=song_events_example
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=song_events_example
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=mmsolution.bin
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=mmsolution.bin
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=mmsolution.bin
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=mmsolution.bin
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=mmsolution.bin
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=mmsolution.bin
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_LOADERS+=mmsolution.bin
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_LOADERS+=mmsolution.bin
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_LOADERS+=mmsolution.bin
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -1061,6 +1094,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1148,6 +1184,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1202,6 +1241,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1216,226 +1258,235 @@ override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC
endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-android)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-android)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mips-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),jvm-java)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),jvm-android)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1679,6 +1730,12 @@ 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=
@@ -1724,6 +1781,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2283,6 +2345,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2544,6 +2615,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2706,6 +2786,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -3121,7 +3210,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -3151,17 +3240,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_loaders
ifneq ($(TARGET_LOADERS),)
override ALLTARGET+=fpc_loaders
diff --git a/packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile.fpc b/packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile.fpc
index 8838c21291..3d8c26257e 100644
--- a/packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile.fpc
+++ b/packages/libndsfpc/examples/audio/maxmod/song_events_example/Makefile.fpc
@@ -20,7 +20,7 @@ target=nds
fpcdir=../../../../../..
[compiler]
-options=-g -Xm
+options=-Xm
#-d__THUMB__
[clean]
diff --git a/packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile b/packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
index 2bacee8100..5e837da4d7 100644
--- a/packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
+++ b/packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -393,6 +399,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=song_events_example2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=song_events_example2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=song_events_example2
endif
@@ -480,6 +489,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=song_events_example2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=song_events_example2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=song_events_example2
endif
@@ -534,6 +546,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=song_events_example2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=song_events_example2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=song_events_example2
endif
@@ -615,6 +630,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=mmsolution.bin $(GFX_FILES)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=mmsolution.bin $(GFX_FILES)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=mmsolution.bin $(GFX_FILES)
endif
@@ -702,6 +720,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=mmsolution.bin $(GFX_FILES)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=mmsolution.bin $(GFX_FILES)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=mmsolution.bin $(GFX_FILES)
endif
@@ -756,6 +777,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_LOADERS+=mmsolution.bin $(GFX_FILES)
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_LOADERS+=mmsolution.bin $(GFX_FILES)
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_LOADERS+=mmsolution.bin $(GFX_FILES)
endif
@@ -837,6 +861,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -924,6 +951,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -978,6 +1008,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -1059,6 +1092,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -1146,6 +1182,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -1200,6 +1239,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -1213,6 +1255,237 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1455,6 +1728,12 @@ 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=
@@ -1500,6 +1779,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2059,6 +2343,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2320,6 +2613,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2482,6 +2784,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2897,7 +3208,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2927,17 +3238,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_loaders
ifneq ($(TARGET_LOADERS),)
override ALLTARGET+=fpc_loaders
diff --git a/packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile.fpc b/packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile.fpc
index 03301b13e0..c3e9358aa8 100644
--- a/packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile.fpc
+++ b/packages/libndsfpc/examples/audio/maxmod/song_events_example2/Makefile.fpc
@@ -14,6 +14,9 @@ nortl=y
[install]
fpcpackage=y
+[compiler]
+options=-Xm
+
[default]
cpu=arm
target=nds
diff --git a/packages/libndsfpc/examples/audio/micrecord/Makefile b/packages/libndsfpc/examples/audio/micrecord/Makefile
index 148f337a45..52209e5885 100644
--- a/packages/libndsfpc/examples/audio/micrecord/Makefile
+++ b/packages/libndsfpc/examples/audio/micrecord/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -393,6 +399,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=micrecord
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=micrecord
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=micrecord
endif
@@ -480,6 +489,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=micrecord
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=micrecord
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=micrecord
endif
@@ -534,6 +546,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=micrecord
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=micrecord
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=micrecord
endif
@@ -615,6 +630,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -702,6 +720,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -756,6 +777,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -837,6 +861,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -924,6 +951,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -978,6 +1008,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -991,6 +1024,237 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1233,6 +1497,12 @@ 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=
@@ -1278,6 +1548,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1837,6 +2112,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2098,6 +2382,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2260,6 +2553,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2675,7 +2977,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2705,17 +3007,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/audio/micrecord/Makefile.fpc b/packages/libndsfpc/examples/audio/micrecord/Makefile.fpc
index e952ae514f..7facf8ba8b 100644
--- a/packages/libndsfpc/examples/audio/micrecord/Makefile.fpc
+++ b/packages/libndsfpc/examples/audio/micrecord/Makefile.fpc
@@ -14,6 +14,9 @@ nortl=y
[install]
fpcpackage=y
+[compiler]
+options=-Xm
+
[default]
cpu=arm
target=nds
diff --git a/packages/libndsfpc/examples/card/Makefile b/packages/libndsfpc/examples/card/Makefile
index 560ba2fed5..931969be75 100644
--- a/packages/libndsfpc/examples/card/Makefile
+++ b/packages/libndsfpc/examples/card/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=eeprom
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=eeprom
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=eeprom
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=eeprom
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=eeprom
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=eeprom
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=eeprom
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=eeprom
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=eeprom
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2524,6 +2583,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_EEPROM=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_EEPROM=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_EEPROM=1
endif
@@ -2611,6 +2673,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_EEPROM=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_EEPROM=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_EEPROM=1
endif
@@ -2665,6 +2730,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
TARGET_DIRS_EEPROM=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_EEPROM=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_EEPROM=1
endif
diff --git a/packages/libndsfpc/examples/card/eeprom/Makefile b/packages/libndsfpc/examples/card/eeprom/Makefile
index 2c9033041e..ca4cb41833 100644
--- a/packages/libndsfpc/examples/card/eeprom/Makefile
+++ b/packages/libndsfpc/examples/card/eeprom/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -393,6 +399,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=eeprom
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=eeprom
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=eeprom
endif
@@ -480,6 +489,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=eeprom
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=eeprom
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=eeprom
endif
@@ -534,6 +546,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=eeprom
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=eeprom
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=eeprom
endif
@@ -615,6 +630,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -702,6 +720,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -756,6 +777,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -837,6 +861,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -924,6 +951,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -978,6 +1008,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -991,6 +1024,237 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1233,6 +1497,12 @@ 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=
@@ -1278,6 +1548,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1837,6 +2112,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2098,6 +2382,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2260,6 +2553,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2675,7 +2977,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2705,17 +3007,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/card/eeprom/Makefile.fpc b/packages/libndsfpc/examples/card/eeprom/Makefile.fpc
index 88785be7a5..0ab6bedd51 100644
--- a/packages/libndsfpc/examples/card/eeprom/Makefile.fpc
+++ b/packages/libndsfpc/examples/card/eeprom/Makefile.fpc
@@ -14,6 +14,9 @@ nortl=y
[install]
fpcpackage=y
+[compiler]
+options=-Xm
+
[default]
cpu=arm
target=nds
diff --git a/packages/libndsfpc/examples/debugging/Makefile b/packages/libndsfpc/examples/debugging/Makefile
index bdebdc6452..a76c53b5cd 100644
--- a/packages/libndsfpc/examples/debugging/Makefile
+++ b/packages/libndsfpc/examples/debugging/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=exceptionTest
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=exceptionTest
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=exceptionTest
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=exceptionTest
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=exceptionTest
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=exceptionTest
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=exceptionTest
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=exceptionTest
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=exceptionTest
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2524,6 +2583,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_EXCEPTIONTEST=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_EXCEPTIONTEST=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_EXCEPTIONTEST=1
endif
@@ -2611,6 +2673,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_EXCEPTIONTEST=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_EXCEPTIONTEST=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_EXCEPTIONTEST=1
endif
@@ -2665,6 +2730,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
TARGET_DIRS_EXCEPTIONTEST=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_EXCEPTIONTEST=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_EXCEPTIONTEST=1
endif
diff --git a/packages/libndsfpc/examples/debugging/exceptionTest/Makefile b/packages/libndsfpc/examples/debugging/exceptionTest/Makefile
index 1e6018ecac..92556332e6 100644
--- a/packages/libndsfpc/examples/debugging/exceptionTest/Makefile
+++ b/packages/libndsfpc/examples/debugging/exceptionTest/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -393,6 +399,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=exceptionTest
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=exceptionTest
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=exceptionTest
endif
@@ -480,6 +489,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=exceptionTest
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=exceptionTest
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=exceptionTest
endif
@@ -534,6 +546,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=exceptionTest
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=exceptionTest
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=exceptionTest
endif
@@ -615,6 +630,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -702,6 +720,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -756,6 +777,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -837,6 +861,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -924,6 +951,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -978,6 +1008,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -991,6 +1024,237 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1233,6 +1497,12 @@ 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=
@@ -1278,6 +1548,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1837,6 +2112,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2098,6 +2382,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2260,6 +2553,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2675,7 +2977,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2705,17 +3007,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/debugging/exceptionTest/Makefile.fpc b/packages/libndsfpc/examples/debugging/exceptionTest/Makefile.fpc
index 6b8d6e437b..6b938c2255 100644
--- a/packages/libndsfpc/examples/debugging/exceptionTest/Makefile.fpc
+++ b/packages/libndsfpc/examples/debugging/exceptionTest/Makefile.fpc
@@ -14,6 +14,9 @@ nortl=y
[install]
fpcpackage=y
+[compiler]
+options=-Xm
+
[default]
cpu=arm
target=nds
diff --git a/packages/libndsfpc/examples/ds_motion/Makefile b/packages/libndsfpc/examples/ds_motion/Makefile
index f508a06002..d63f0023f5 100644
--- a/packages/libndsfpc/examples/ds_motion/Makefile
+++ b/packages/libndsfpc/examples/ds_motion/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -393,6 +399,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=dsMotion
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=dsMotion
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=dsMotion
endif
@@ -480,6 +489,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=dsMotion
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=dsMotion
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=dsMotion
endif
@@ -534,6 +546,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=dsMotion
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=dsMotion
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=dsMotion
endif
@@ -615,6 +630,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -702,6 +720,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -756,6 +777,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -837,6 +861,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -924,6 +951,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -978,6 +1008,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -991,6 +1024,237 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1233,6 +1497,12 @@ 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=
@@ -1278,6 +1548,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1837,6 +2112,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2098,6 +2382,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2260,6 +2553,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2675,7 +2977,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2705,17 +3007,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/ds_motion/Makefile.fpc b/packages/libndsfpc/examples/ds_motion/Makefile.fpc
index 9a24fccd3c..94e7f75307 100644
--- a/packages/libndsfpc/examples/ds_motion/Makefile.fpc
+++ b/packages/libndsfpc/examples/ds_motion/Makefile.fpc
@@ -14,6 +14,9 @@ nortl=y
[install]
fpcpackage=y
+[compiler]
+options=-Xm
+
[default]
cpu=arm
target=nds
diff --git a/packages/libndsfpc/examples/dswifi/Makefile b/packages/libndsfpc/examples/dswifi/Makefile
index afba96220b..ccd14cacea 100644
--- a/packages/libndsfpc/examples/dswifi/Makefile
+++ b/packages/libndsfpc/examples/dswifi/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=ap_search autoconnect httpget
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=ap_search autoconnect httpget
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=ap_search autoconnect httpget
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=ap_search autoconnect httpget
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=ap_search autoconnect httpget
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=ap_search autoconnect httpget
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=ap_search autoconnect httpget
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=ap_search autoconnect httpget
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=ap_search autoconnect httpget
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2570,6 +2629,11 @@ TARGET_DIRS_AP_SEARCH=1
TARGET_DIRS_AUTOCONNECT=1
TARGET_DIRS_HTTPGET=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_AP_SEARCH=1
+TARGET_DIRS_AUTOCONNECT=1
+TARGET_DIRS_HTTPGET=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_AP_SEARCH=1
TARGET_DIRS_AUTOCONNECT=1
@@ -2715,6 +2779,11 @@ TARGET_DIRS_AP_SEARCH=1
TARGET_DIRS_AUTOCONNECT=1
TARGET_DIRS_HTTPGET=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_AP_SEARCH=1
+TARGET_DIRS_AUTOCONNECT=1
+TARGET_DIRS_HTTPGET=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_AP_SEARCH=1
TARGET_DIRS_AUTOCONNECT=1
@@ -2805,6 +2874,11 @@ TARGET_DIRS_AP_SEARCH=1
TARGET_DIRS_AUTOCONNECT=1
TARGET_DIRS_HTTPGET=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_AP_SEARCH=1
+TARGET_DIRS_AUTOCONNECT=1
+TARGET_DIRS_HTTPGET=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_AP_SEARCH=1
TARGET_DIRS_AUTOCONNECT=1
diff --git a/packages/libndsfpc/examples/dswifi/ap_search/Makefile b/packages/libndsfpc/examples/dswifi/ap_search/Makefile
index 69ffbb206a..e0773d413a 100644
--- a/packages/libndsfpc/examples/dswifi/ap_search/Makefile
+++ b/packages/libndsfpc/examples/dswifi/ap_search/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -393,6 +399,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=apSearch
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=apSearch
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=apSearch
endif
@@ -480,6 +489,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=apSearch
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=apSearch
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=apSearch
endif
@@ -534,6 +546,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=apSearch
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=apSearch
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=apSearch
endif
@@ -615,6 +630,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -702,6 +720,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -756,6 +777,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -837,6 +861,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -924,6 +951,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -978,6 +1008,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -991,6 +1024,237 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1233,6 +1497,12 @@ 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=
@@ -1278,6 +1548,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1837,6 +2112,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2098,6 +2382,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2260,6 +2553,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2675,7 +2977,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2705,17 +3007,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/dswifi/ap_search/Makefile.fpc b/packages/libndsfpc/examples/dswifi/ap_search/Makefile.fpc
index bf1ba8ac7c..6f2d108067 100644
--- a/packages/libndsfpc/examples/dswifi/ap_search/Makefile.fpc
+++ b/packages/libndsfpc/examples/dswifi/ap_search/Makefile.fpc
@@ -14,6 +14,9 @@ nortl=y
[install]
fpcpackage=y
+[compiler]
+options=-Xm
+
[default]
cpu=arm
target=nds
diff --git a/packages/libndsfpc/examples/dswifi/autoconnect/Makefile b/packages/libndsfpc/examples/dswifi/autoconnect/Makefile
index cbf02d1766..d166d5dba1 100644
--- a/packages/libndsfpc/examples/dswifi/autoconnect/Makefile
+++ b/packages/libndsfpc/examples/dswifi/autoconnect/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -393,6 +399,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=autoconnect
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=autoconnect
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=autoconnect
endif
@@ -480,6 +489,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=autoconnect
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=autoconnect
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=autoconnect
endif
@@ -534,6 +546,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=autoconnect
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=autoconnect
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=autoconnect
endif
@@ -615,6 +630,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -702,6 +720,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -756,6 +777,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -837,6 +861,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -924,6 +951,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -978,6 +1008,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -991,6 +1024,237 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1233,6 +1497,12 @@ 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=
@@ -1278,6 +1548,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1837,6 +2112,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2098,6 +2382,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2260,6 +2553,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2675,7 +2977,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2705,17 +3007,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/dswifi/autoconnect/Makefile.fpc b/packages/libndsfpc/examples/dswifi/autoconnect/Makefile.fpc
index a55e429881..ecf8bf8a9c 100644
--- a/packages/libndsfpc/examples/dswifi/autoconnect/Makefile.fpc
+++ b/packages/libndsfpc/examples/dswifi/autoconnect/Makefile.fpc
@@ -14,6 +14,9 @@ nortl=y
[install]
fpcpackage=y
+[compiler]
+options=-Xm
+
[default]
cpu=arm
target=nds
diff --git a/packages/libndsfpc/examples/dswifi/httpget/Makefile b/packages/libndsfpc/examples/dswifi/httpget/Makefile
index ea498f9c3e..8bf766437e 100644
--- a/packages/libndsfpc/examples/dswifi/httpget/Makefile
+++ b/packages/libndsfpc/examples/dswifi/httpget/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -393,6 +399,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=httpget
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=httpget
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=httpget
endif
@@ -480,6 +489,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=httpget
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=httpget
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=httpget
endif
@@ -534,6 +546,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=httpget
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=httpget
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=httpget
endif
@@ -615,6 +630,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -702,6 +720,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -756,6 +777,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -837,6 +861,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -924,6 +951,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -978,6 +1008,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -991,6 +1024,237 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1233,6 +1497,12 @@ 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=
@@ -1278,6 +1548,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1837,6 +2112,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2098,6 +2382,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2260,6 +2553,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2675,7 +2977,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2705,17 +3007,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/dswifi/httpget/Makefile.fpc b/packages/libndsfpc/examples/dswifi/httpget/Makefile.fpc
index a2bad1406f..7c7c1456d7 100644
--- a/packages/libndsfpc/examples/dswifi/httpget/Makefile.fpc
+++ b/packages/libndsfpc/examples/dswifi/httpget/Makefile.fpc
@@ -14,6 +14,9 @@ nortl=y
[install]
fpcpackage=y
+[compiler]
+options=-Xm
+
[default]
cpu=arm
target=nds
diff --git a/packages/libndsfpc/examples/filesystem/Makefile b/packages/libndsfpc/examples/filesystem/Makefile
index 6c215791a5..a18415b1c3 100644
--- a/packages/libndsfpc/examples/filesystem/Makefile
+++ b/packages/libndsfpc/examples/filesystem/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=libfat nitrofs
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=libfat nitrofs
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=libfat nitrofs
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=libfat nitrofs
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=libfat nitrofs
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=libfat nitrofs
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=libfat nitrofs
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=libfat nitrofs
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=libfat nitrofs
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2547,6 +2606,10 @@ ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_LIBFAT=1
TARGET_DIRS_NITROFS=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_LIBFAT=1
+TARGET_DIRS_NITROFS=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_LIBFAT=1
TARGET_DIRS_NITROFS=1
@@ -2663,6 +2726,10 @@ ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_LIBFAT=1
TARGET_DIRS_NITROFS=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_LIBFAT=1
+TARGET_DIRS_NITROFS=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_LIBFAT=1
TARGET_DIRS_NITROFS=1
@@ -2735,6 +2802,10 @@ ifeq ($(FULL_TARGET),mipsel-linux)
TARGET_DIRS_LIBFAT=1
TARGET_DIRS_NITROFS=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_LIBFAT=1
+TARGET_DIRS_NITROFS=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_LIBFAT=1
TARGET_DIRS_NITROFS=1
diff --git a/packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile b/packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
index 1d39d928d2..68ab1b1414 100644
--- a/packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
+++ b/packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=embedded_gbfs
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=embedded_gbfs
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=embedded_gbfs
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=embedded_gbfs
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=embedded_gbfs
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=embedded_gbfs
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=embedded_gbfs
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=embedded_gbfs
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=embedded_gbfs
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=data.gbfs
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=data.gbfs
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=data.gbfs
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=data.gbfs
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=data.gbfs
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=data.gbfs
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_LOADERS+=data.gbfs
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_LOADERS+=data.gbfs
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_LOADERS+=data.gbfs
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1217,226 +1259,235 @@ override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC
endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-android)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-android)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mips-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),jvm-java)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),jvm-android)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1680,6 +1731,12 @@ 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=
@@ -1725,6 +1782,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2284,6 +2346,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2545,6 +2616,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2707,6 +2787,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -3122,7 +3211,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -3152,17 +3241,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_loaders
ifneq ($(TARGET_LOADERS),)
override ALLTARGET+=fpc_loaders
diff --git a/packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile.fpc b/packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile.fpc
index bb2a5213b4..f19ceb6aeb 100644
--- a/packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile.fpc
+++ b/packages/libndsfpc/examples/filesystem/embedded_gbfs/Makefile.fpc
@@ -20,7 +20,7 @@ target=nds
fpcdir=../../../../..
[compiler]
-options=-g -Xm -O2
+options=-Xm
#-d__THUMB__
[clean]
diff --git a/packages/libndsfpc/examples/filesystem/libfat/Makefile b/packages/libndsfpc/examples/filesystem/libfat/Makefile
index 69f4c25332..5379fd6814 100644
--- a/packages/libndsfpc/examples/filesystem/libfat/Makefile
+++ b/packages/libndsfpc/examples/filesystem/libfat/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=libfatdir
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=libfatdir
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=libfatdir
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=libfatdir
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=libfatdir
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=libfatdir
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=libfatdir
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=libfatdir
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=libfatdir
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2524,6 +2583,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_LIBFATDIR=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_LIBFATDIR=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_LIBFATDIR=1
endif
@@ -2611,6 +2673,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_LIBFATDIR=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_LIBFATDIR=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_LIBFATDIR=1
endif
@@ -2665,6 +2730,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
TARGET_DIRS_LIBFATDIR=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_LIBFATDIR=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_LIBFATDIR=1
endif
diff --git a/packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile b/packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
index 903de2559a..00aa2eb033 100644
--- a/packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
+++ b/packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=access_dir
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=access_dir
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=access_dir
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=access_dir
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=access_dir
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=access_dir
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=access_dir
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=access_dir
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=access_dir
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -995,226 +1028,235 @@ override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC
endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-android)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-android)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mips-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),jvm-java)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),jvm-android)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile.fpc b/packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile.fpc
index e1ec58de75..904f94eaa0 100644
--- a/packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile.fpc
+++ b/packages/libndsfpc/examples/filesystem/libfat/access_dir/Makefile.fpc
@@ -20,8 +20,7 @@ target=nds
fpcdir=../../../../../..
[compiler]
-options=-g -Xm -O2
-#-d__THUMB__
+options=-Xm
[clean]
files=*.elf *.o *.s *.nds *.nef *.h *.bin *.map \
diff --git a/packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile b/packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
index faf7c62174..17310a50df 100644
--- a/packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
+++ b/packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=access_file
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=access_file
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=access_file
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=access_file
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=access_file
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=access_file
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=access_file
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=access_file
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=access_file
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -995,226 +1028,235 @@ override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC
endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-android)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-android)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mips-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),jvm-java)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),jvm-android)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile.fpc b/packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile.fpc
index 0e151809e2..af0a315b33 100644
--- a/packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile.fpc
+++ b/packages/libndsfpc/examples/filesystem/libfat/access_file/Makefile.fpc
@@ -20,8 +20,7 @@ target=nds
fpcdir=../../../../../..
[compiler]
-options=-g -Xm -O2
-#-d__THUMB__
+options=-Xm
[clean]
files=*.elf *.o *.s *.nds *.nef *.h *.bin *.map \
diff --git a/packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile b/packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
index edb9bbafdf..578ecfb5f2 100644
--- a/packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
+++ b/packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=libfatdir
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=libfatdir
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=libfatdir
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=libfatdir
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=libfatdir
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=libfatdir
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=libfatdir
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=libfatdir
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=libfatdir
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -995,226 +1028,235 @@ override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC
endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-android)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-android)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mips-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),jvm-java)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),jvm-android)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override COMPILER_OPTIONS+=-g -Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile.fpc b/packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile.fpc
index cd058e8b3b..94b33a6bc4 100644
--- a/packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile.fpc
+++ b/packages/libndsfpc/examples/filesystem/libfat/libfatdir/Makefile.fpc
@@ -20,8 +20,7 @@ target=nds
fpcdir=../../../../../..
[compiler]
-options=-g -Xm -O2
-#-d__THUMB__
+options=-Xm
[clean]
files=*.elf *.o *.s *.nds *.nef *.h *.bin *.map \
diff --git a/packages/libndsfpc/examples/filesystem/nitrofs/Makefile b/packages/libndsfpc/examples/filesystem/nitrofs/Makefile
index a1dae5bb18..b3605456a7 100644
--- a/packages/libndsfpc/examples/filesystem/nitrofs/Makefile
+++ b/packages/libndsfpc/examples/filesystem/nitrofs/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=nitrodir
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=nitrodir
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=nitrodir
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=nitrodir
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=nitrodir
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=nitrodir
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=nitrodir
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=nitrodir
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=nitrodir
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2524,6 +2583,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_NITRODIR=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_NITRODIR=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_NITRODIR=1
endif
@@ -2611,6 +2673,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_NITRODIR=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_NITRODIR=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_NITRODIR=1
endif
@@ -2665,6 +2730,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
TARGET_DIRS_NITRODIR=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_NITRODIR=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_NITRODIR=1
endif
diff --git a/packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile b/packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
index e167a4dbdf..67e8a354f3 100644
--- a/packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
+++ b/packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=nitrodir
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=nitrodir
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=nitrodir
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=nitrodir
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=nitrodir
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=nitrodir
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=nitrodir
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=nitrodir
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=nitrodir
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -995,226 +1028,235 @@ override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC
endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-android)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-android)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mips-linux)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),jvm-java)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),jvm-android)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override COMPILER_OPTIONS+=-Xm -O2
+override COMPILER_OPTIONS+=-Xm
endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile.fpc b/packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile.fpc
index ebf7ab1fe1..feb90828a0 100644
--- a/packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile.fpc
+++ b/packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/Makefile.fpc
@@ -20,8 +20,7 @@ target=nds
fpcdir=../../../../../..
[compiler]
-options=-Xm -O2
-#-d__THUMB__
+options=-Xm
[clean]
files=*.elf *.o *.s *.nds *.nef *.h *.bin *.map \
diff --git a/packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/nitrodir.pp b/packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/nitrodir.pp
index 8b0806c16f..ff11c7753f 100644
--- a/packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/nitrodir.pp
+++ b/packages/libndsfpc/examples/filesystem/nitrofs/nitrodir/nitrodir.pp
@@ -63,7 +63,7 @@ begin
// Initialise the console, required for printf
consoleDemoInit();
- if (nitroFSInit()) then
+ if nitroFSInit(nil) then
begin
dirlist('/');
begin
diff --git a/packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile b/packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
index bb996075ce..db3d821f9e 100644
--- a/packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
+++ b/packages/libndsfpc/examples/gl2d/2Dplus3D/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=2Dplus3D
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=2Dplus3D
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=2Dplus3D
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=2Dplus3D
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=2Dplus3D
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=2Dplus3D
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=2Dplus3D
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=2Dplus3D
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=2Dplus3D
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/gl2d/Makefile b/packages/libndsfpc/examples/gl2d/Makefile
index ba0308ce46..4d1d28de38 100644
--- a/packages/libndsfpc/examples/gl2d/Makefile
+++ b/packages/libndsfpc/examples/gl2d/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=2Dplus3D dual_screen fonts primitives scrolling sprites
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=2Dplus3D dual_screen fonts primitives scrolling sprites
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=2Dplus3D dual_screen fonts primitives scrolling sprites
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=2Dplus3D dual_screen fonts primitives scrolling sprites
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=2Dplus3D dual_screen fonts primitives scrolling sprites
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=2Dplus3D dual_screen fonts primitives scrolling sprites
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=2Dplus3D dual_screen fonts primitives scrolling sprites
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=2Dplus3D dual_screen fonts primitives scrolling sprites
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=2Dplus3D dual_screen fonts primitives scrolling sprites
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2639,6 +2698,14 @@ TARGET_DIRS_PRIMITIVES=1
TARGET_DIRS_SCROLLING=1
TARGET_DIRS_SPRITES=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+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),m68k-linux)
TARGET_DIRS_2DPLUS3D=1
TARGET_DIRS_DUAL_SCREEN=1
@@ -2871,6 +2938,14 @@ TARGET_DIRS_PRIMITIVES=1
TARGET_DIRS_SCROLLING=1
TARGET_DIRS_SPRITES=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+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),arm-linux)
TARGET_DIRS_2DPLUS3D=1
TARGET_DIRS_DUAL_SCREEN=1
@@ -3015,6 +3090,14 @@ TARGET_DIRS_PRIMITIVES=1
TARGET_DIRS_SCROLLING=1
TARGET_DIRS_SPRITES=1
endif
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
TARGET_DIRS_2DPLUS3D=1
TARGET_DIRS_DUAL_SCREEN=1
diff --git a/packages/libndsfpc/examples/gl2d/dual_screen/Makefile b/packages/libndsfpc/examples/gl2d/dual_screen/Makefile
index d3c5fea59a..d200b0a5e7 100644
--- a/packages/libndsfpc/examples/gl2d/dual_screen/Makefile
+++ b/packages/libndsfpc/examples/gl2d/dual_screen/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=dual_screen
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=dual_screen
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=dual_screen
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=dual_screen
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=dual_screen
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=dual_screen
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=dual_screen
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=dual_screen
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=dual_screen
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/gl2d/fonts/Makefile b/packages/libndsfpc/examples/gl2d/fonts/Makefile
index b63b800f08..863151d499 100644
--- a/packages/libndsfpc/examples/gl2d/fonts/Makefile
+++ b/packages/libndsfpc/examples/gl2d/fonts/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=fonts
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=fonts
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=fonts
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=fonts
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=fonts
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=fonts
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=fonts
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=fonts
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=fonts
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/gl2d/primitives/Makefile b/packages/libndsfpc/examples/gl2d/primitives/Makefile
index 20d93ddd52..79289b7a09 100644
--- a/packages/libndsfpc/examples/gl2d/primitives/Makefile
+++ b/packages/libndsfpc/examples/gl2d/primitives/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=primitives
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=primitives
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=primitives
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=primitives
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=primitives
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=primitives
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=primitives
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=primitives
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=primitives
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/gl2d/scrolling/Makefile b/packages/libndsfpc/examples/gl2d/scrolling/Makefile
index e1f28bb57a..83c11d9895 100644
--- a/packages/libndsfpc/examples/gl2d/scrolling/Makefile
+++ b/packages/libndsfpc/examples/gl2d/scrolling/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=scrolling
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=scrolling
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=scrolling
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=scrolling
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=scrolling
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=scrolling
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=scrolling
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=scrolling
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=scrolling
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/gl2d/sprites/Makefile b/packages/libndsfpc/examples/gl2d/sprites/Makefile
index a00e36ce8e..a00f0ba017 100644
--- a/packages/libndsfpc/examples/gl2d/sprites/Makefile
+++ b/packages/libndsfpc/examples/gl2d/sprites/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=sprites
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=sprites
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=sprites
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=sprites
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=sprites
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=sprites
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=sprites
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=sprites
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=sprites
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-Xm -O2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm -O2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-Xm -O2
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile b/packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
index 0509f7e1f0..d763107f33 100644
--- a/packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/3D_Both_Screens/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=3DBothScreens
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=3DBothScreens
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=3DBothScreens
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=3DBothScreens
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=3DBothScreens
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=3DBothScreens
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=3DBothScreens
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=3DBothScreens
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=3DBothScreens
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile b/packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
index c1b4ec0595..1eed028c14 100644
--- a/packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/BoxTest/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=BoxTest
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=BoxTest
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=BoxTest
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=BoxTest
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=BoxTest
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=BoxTest
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=BoxTest
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=BoxTest
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=BoxTest
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm #-d__THUMB__
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Display_List/Makefile b/packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
index d009f78a3b..30e2060437 100644
--- a/packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Display_List/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=DisplayList
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=DisplayList
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=DisplayList
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=DisplayList
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=DisplayList
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=DisplayList
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=DisplayList
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=DisplayList
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=DisplayList
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile b/packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
index f316a0772c..bcd8ebc3c5 100644
--- a/packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Display_List_2/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=DisplayList2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=DisplayList2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=DisplayList2
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=DisplayList2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=DisplayList2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=DisplayList2
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=DisplayList2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=DisplayList2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=DisplayList2
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile b/packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
index 25e6e20f6c..697f1ecd69 100644
--- a/packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Env_Mapping/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=EnvMapping
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=EnvMapping
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=EnvMapping
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=EnvMapping
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=EnvMapping
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=EnvMapping
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=EnvMapping
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=EnvMapping
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=EnvMapping
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Makefile b/packages/libndsfpc/examples/graphics/3D/Makefile
index 51b9c4877d..d894eb92a3 100644
--- a/packages/libndsfpc/examples/graphics/3D/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
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),i386-aros)
+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),m68k-linux)
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
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-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),x86_64-dragonfly)
+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),arm-linux)
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
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
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),mipsel-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),mipsel-android)
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
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2846,6 +2905,23 @@ TARGET_DIRS_TEXTURED_QUAD=1
TARGET_DIRS_TOON_SHADING=1
TARGET_DIRS_NEHE=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+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),m68k-linux)
TARGET_DIRS_3D_BOTH_SCREENS=1
TARGET_DIRS_BOXTEST=1
@@ -3339,6 +3415,23 @@ TARGET_DIRS_TEXTURED_QUAD=1
TARGET_DIRS_TOON_SHADING=1
TARGET_DIRS_NEHE=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+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),arm-linux)
TARGET_DIRS_3D_BOTH_SCREENS=1
TARGET_DIRS_BOXTEST=1
@@ -3645,6 +3738,23 @@ TARGET_DIRS_TEXTURED_QUAD=1
TARGET_DIRS_TOON_SHADING=1
TARGET_DIRS_NEHE=1
endif
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
TARGET_DIRS_3D_BOTH_SCREENS=1
TARGET_DIRS_BOXTEST=1
diff --git a/packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile b/packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
index aff06d1125..f837eeeab5 100644
--- a/packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Mixed_Text_3D/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=MixedText3D
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=MixedText3D
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=MixedText3D
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=MixedText3D
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=MixedText3D
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=MixedText3D
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=MixedText3D
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=MixedText3D
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=MixedText3D
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Ortho/Makefile b/packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
index ce48324357..d19e8d60e2 100644
--- a/packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Ortho/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=Ortho
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=Ortho
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=Ortho
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=Ortho
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=Ortho
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=Ortho
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=Ortho
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=Ortho
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=Ortho
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile b/packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
index 4a087ae04e..e473f9db9a 100644
--- a/packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Paletted_Cube/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=PalettedCube
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=PalettedCube
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=PalettedCube
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=PalettedCube
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=PalettedCube
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=PalettedCube
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=PalettedCube
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=PalettedCube
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=PalettedCube
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Picking/Makefile b/packages/libndsfpc/examples/graphics/3D/Picking/Makefile
index 4c97dd471d..ea4cbf4d6d 100644
--- a/packages/libndsfpc/examples/graphics/3D/Picking/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Picking/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=Picking
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=Picking
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=Picking
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=Picking
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=Picking
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=Picking
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=Picking
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=Picking
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=Picking
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile b/packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
index d6fc95b73b..f256d586f3 100644
--- a/packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Simple_Quad/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=SimpleQuad
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=SimpleQuad
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=SimpleQuad
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=SimpleQuad
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=SimpleQuad
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=SimpleQuad
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=SimpleQuad
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=SimpleQuad
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=SimpleQuad
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile b/packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
index a4b35a18af..fd3b6dcc7f 100644
--- a/packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Simple_Tri/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=SimpleTri
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=SimpleTri
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=SimpleTri
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=SimpleTri
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=SimpleTri
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=SimpleTri
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=SimpleTri
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=SimpleTri
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=SimpleTri
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile b/packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
index 73816bb10c..3f3a2bf628 100644
--- a/packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Textured_Cube/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=TexturedCube
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=TexturedCube
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=TexturedCube
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=TexturedCube
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=TexturedCube
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=TexturedCube
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=TexturedCube
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=TexturedCube
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=TexturedCube
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile b/packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
index ad957da549..398c3fdadd 100644
--- a/packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Textured_Quad/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=TexturedQuad
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=TexturedQuad
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=TexturedQuad
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=TexturedQuad
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=TexturedQuad
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=TexturedQuad
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=TexturedQuad
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=TexturedQuad
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=TexturedQuad
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile b/packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
index d47601bcab..756892fef9 100644
--- a/packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/Toon_Shading/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=ToonShading
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=ToonShading
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=ToonShading
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=ToonShading
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=ToonShading
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=ToonShading
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=ToonShading
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=ToonShading
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=ToonShading
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/Makefile
index e9105408ef..de058d5780 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=lesson01 lesson02 lesson03 lesson04 lesson05 lesson06 lesson07 lesson08 lesson09 lesson10 lesson10b lesson11
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=lesson01 lesson02 lesson03 lesson04 lesson05 lesson06 lesson07 lesson08 lesson09 lesson10 lesson10b lesson11
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=lesson01 lesson02 lesson03 lesson04 lesson05 lesson06 lesson07 lesson08 lesson09 lesson10 lesson10b lesson11
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=lesson01 lesson02 lesson03 lesson04 lesson05 lesson06 lesson07 lesson08 lesson09 lesson10 lesson10b lesson11
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=lesson01 lesson02 lesson03 lesson04 lesson05 lesson06 lesson07 lesson08 lesson09 lesson10 lesson10b lesson11
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=lesson01 lesson02 lesson03 lesson04 lesson05 lesson06 lesson07 lesson08 lesson09 lesson10 lesson10b lesson11
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=lesson01 lesson02 lesson03 lesson04 lesson05 lesson06 lesson07 lesson08 lesson09 lesson10 lesson10b lesson11
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=lesson01 lesson02 lesson03 lesson04 lesson05 lesson06 lesson07 lesson08 lesson09 lesson10 lesson10b lesson11
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=lesson01 lesson02 lesson03 lesson04 lesson05 lesson06 lesson07 lesson08 lesson09 lesson10 lesson10b lesson11
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2777,6 +2836,20 @@ TARGET_DIRS_LESSON10=1
TARGET_DIRS_LESSON10B=1
TARGET_DIRS_LESSON11=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+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),m68k-linux)
TARGET_DIRS_LESSON01=1
TARGET_DIRS_LESSON02=1
@@ -3183,6 +3256,20 @@ TARGET_DIRS_LESSON10=1
TARGET_DIRS_LESSON10B=1
TARGET_DIRS_LESSON11=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+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),arm-linux)
TARGET_DIRS_LESSON01=1
TARGET_DIRS_LESSON02=1
@@ -3435,6 +3522,20 @@ TARGET_DIRS_LESSON10=1
TARGET_DIRS_LESSON10B=1
TARGET_DIRS_LESSON11=1
endif
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
TARGET_DIRS_LESSON01=1
TARGET_DIRS_LESSON02=1
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
index 9dc0a9b47e..91778ed9ef 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson01/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson01
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson01
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson01
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson01
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson01
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson01
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson01
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson01
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson01
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
index 32a656bd79..35e3756a29 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson02/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson02
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson02
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson02
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson02
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson02
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson02
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson02
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson02
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson02
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
index c32f16f4ac..db96263477 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson03/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson03
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson03
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson03
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson03
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson03
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson03
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson03
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson03
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson03
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
index a6f857f95e..25c0d12dfe 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson04/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson04
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson04
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson04
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson04
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson04
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson04
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson04
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson04
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson04
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
index 9b20670b49..9c5606ca89 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson05/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson05
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson05
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson05
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson05
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson05
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson05
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson05
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson05
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson05
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
index bd685b896d..b77ffa5826 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson06/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson06
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson06
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson06
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson06
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson06
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson06
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson06
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson06
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson06
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
index 64f7d00e76..5fcd61022e 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson07/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson07
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson07
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson07
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson07
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson07
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson07
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson07
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson07
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson07
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
index b47c2139d0..e4b3ddf7ba 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson08/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson08
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson08
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson08
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson08
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson08
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson08
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson08
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson08
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson08
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
index 950d5b76a8..e380f34659 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson09/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson09
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson09
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson09
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson09
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson09
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson09
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson09
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson09
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson09
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
index c026390d5f..cb65c42add 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson10/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson10
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson10
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson10
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson10
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson10
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson10
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson10
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson10
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson10
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
index 131ff7b538..2c27d1418c 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson10b/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson10b
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson10b
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson10b
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson10b
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson10b
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson10b
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson10b
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson10b
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson10b
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile b/packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
index 59a2efcdde..889ebde2b9 100644
--- a/packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
+++ b/packages/libndsfpc/examples/graphics/3D/nehe/lesson11/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson11
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson11
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson11
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson11
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson11
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson11
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson11
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson11
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson11
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile b/packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
index cb4cf969cf..82996f475e 100644
--- a/packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
+++ b/packages/libndsfpc/examples/graphics/Backgrounds/16bit_color_bmp/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=16bitColorBmp
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=16bitColorBmp
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=16bitColorBmp
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=16bitColorBmp
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=16bitColorBmp
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=16bitColorBmp
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=16bitColorBmp
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=16bitColorBmp
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=16bitColorBmp
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile b/packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
index a687e4c2de..2f676d6dfd 100644
--- a/packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
+++ b/packages/libndsfpc/examples/graphics/Backgrounds/256_color_bmp/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=256ColorBmp
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=256ColorBmp
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=256ColorBmp
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=256ColorBmp
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=256ColorBmp
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=256ColorBmp
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=256ColorBmp
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=256ColorBmp
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=256ColorBmp
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile b/packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
index c7e6a8186f..7f45419805 100644
--- a/packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
+++ b/packages/libndsfpc/examples/graphics/Backgrounds/Double_Buffer/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=DoubleBuffer
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=DoubleBuffer
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=DoubleBuffer
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=DoubleBuffer
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=DoubleBuffer
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=DoubleBuffer
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=DoubleBuffer
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=DoubleBuffer
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=DoubleBuffer
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/Backgrounds/Makefile b/packages/libndsfpc/examples/graphics/Backgrounds/Makefile
index b1da143356..1ed105eee3 100644
--- a/packages/libndsfpc/examples/graphics/Backgrounds/Makefile
+++ b/packages/libndsfpc/examples/graphics/Backgrounds/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=16bit_color_bmp 256_color_bmp all_in_one Double_Buffer rotation
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=16bit_color_bmp 256_color_bmp all_in_one Double_Buffer rotation
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=16bit_color_bmp 256_color_bmp all_in_one Double_Buffer rotation
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=16bit_color_bmp 256_color_bmp all_in_one Double_Buffer rotation
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=16bit_color_bmp 256_color_bmp all_in_one Double_Buffer rotation
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=16bit_color_bmp 256_color_bmp all_in_one Double_Buffer rotation
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=16bit_color_bmp 256_color_bmp all_in_one Double_Buffer rotation
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=16bit_color_bmp 256_color_bmp all_in_one Double_Buffer rotation
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=16bit_color_bmp 256_color_bmp all_in_one Double_Buffer rotation
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2616,6 +2675,13 @@ TARGET_DIRS_ALL_IN_ONE=1
TARGET_DIRS_DOUBLE_BUFFER=1
TARGET_DIRS_ROTATION=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+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),m68k-linux)
TARGET_DIRS_16BIT_COLOR_BMP=1
TARGET_DIRS_256_COLOR_BMP=1
@@ -2819,6 +2885,13 @@ TARGET_DIRS_ALL_IN_ONE=1
TARGET_DIRS_DOUBLE_BUFFER=1
TARGET_DIRS_ROTATION=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+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),arm-linux)
TARGET_DIRS_16BIT_COLOR_BMP=1
TARGET_DIRS_256_COLOR_BMP=1
@@ -2945,6 +3018,13 @@ TARGET_DIRS_ALL_IN_ONE=1
TARGET_DIRS_DOUBLE_BUFFER=1
TARGET_DIRS_ROTATION=1
endif
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
TARGET_DIRS_16BIT_COLOR_BMP=1
TARGET_DIRS_256_COLOR_BMP=1
diff --git a/packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile b/packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
index 4e3a6b0331..6ff0a7fe18 100644
--- a/packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
+++ b/packages/libndsfpc/examples/graphics/Backgrounds/all_in_one/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=BackgroundAllInOne
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=BackgroundAllInOne
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=BackgroundAllInOne
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=BackgroundAllInOne
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=BackgroundAllInOne
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=BackgroundAllInOne
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=BackgroundAllInOne
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=BackgroundAllInOne
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=BackgroundAllInOne
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm -O2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm -O2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm -O2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile b/packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
index d3e526df6d..f5c4361901 100644
--- a/packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
+++ b/packages/libndsfpc/examples/graphics/Backgrounds/rotation/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=Rotation
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=Rotation
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=Rotation
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=Rotation
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=Rotation
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=Rotation
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=Rotation
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=Rotation
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=Rotation
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/Effects/Makefile b/packages/libndsfpc/examples/graphics/Effects/Makefile
new file mode 100644
index 0000000000..ec0841c3f2
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Effects/Makefile
@@ -0,0 +1,2817 @@
+#
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
+#
+default: all
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
+UNIXs = linux $(BSDs) solaris qnx haiku aix
+LIMIT83fs = go32v2 os2 emx watcom msdos
+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),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
+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 units)),)
+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 units)),)
+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 units)),)
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+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
+ifeq ($(CPU_TARGET),mipsel)
+BINUTILSPREFIX=mipsel-linux-android-
+endif
+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 $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
+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
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_DIRS+=windows
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override TARGET_DIRS+=windows
+endif
+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
+BATCHEXT=.bat
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+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=
+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
+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=libndsfpc
+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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+REQUIRE_PACKAGES_RTL=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),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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),m68k-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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),m68k-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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+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),)
+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
+ifdef REQUIRE_PACKAGES_LIBNDSFPC
+PACKAGEDIR_LIBNDSFPC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libndsfpc/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_LIBNDSFPC),)
+ifneq ($(wildcard $(PACKAGEDIR_LIBNDSFPC)/units/$(TARGETSUFFIX)),)
+UNITDIR_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)/units/$(TARGETSUFFIX)
+else
+UNITDIR_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)
+endif
+ifneq ($(wildcard $(PACKAGEDIR_LIBNDSFPC)/units/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)/units/$(SOURCESUFFIX)
+else
+ifneq ($(wildcard $(PACKAGEDIR_LIBNDSFPC)/units_bs/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)/units_bs/$(SOURCESUFFIX)
+else
+UNITDIR_FPMAKE_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)
+endif
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_LIBNDSFPC)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_LIBNDSFPC) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_LIBNDSFPC)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_LIBNDSFPC=
+UNITDIR_LIBNDSFPC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /libndsfpc/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_LIBNDSFPC),)
+UNITDIR_LIBNDSFPC:=$(firstword $(UNITDIR_LIBNDSFPC))
+else
+UNITDIR_LIBNDSFPC=
+endif
+endif
+ifdef UNITDIR_LIBNDSFPC
+override COMPILER_UNITDIR+=$(UNITDIR_LIBNDSFPC)
+endif
+ifdef UNITDIR_FPMAKE_LIBNDSFPC
+override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_LIBNDSFPC)
+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)
+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)
+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
+ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
+ifeq ($(CPU_TARGET),i386)
+FPCCPUOPT:=-OG2p3
+endif
+ifeq ($(CPU_TARGET),powerpc)
+FPCCPUOPT:=-O1r
+endif
+else
+FPCCPUOPT:=-O2
+endif
+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),)
+ifeq ($(CPU_TARGET),x86_64)
+override FPCOPT+=-Cg
+endif
+endif
+ifdef LINKSHARED
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+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_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)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
+endif
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
+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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *$(ASMEXT) *_ppas$(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
+ -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+ -$(DEL) *.o *.ppu *.a
+endif
+ -$(DELTREE) *$(SMARTEXT)
+ -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *_ppas$(BATCHEXT)
+ifdef AOUTEXT
+ -$(DEL) *$(AOUTEXT)
+endif
+ifdef DEBUGSYMEXT
+ -$(DEL) *$(DEBUGSYMEXT)
+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
+ifeq ($(FULL_TARGET),i386-linux)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-android)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),arm-android)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+TARGET_DIRS_WINDOWS=1
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+TARGET_DIRS_WINDOWS=1
+endif
+ifdef TARGET_DIRS_WINDOWS
+windows_all:
+ $(MAKE) -C windows all
+windows_debug:
+ $(MAKE) -C windows debug
+windows_smart:
+ $(MAKE) -C windows smart
+windows_release:
+ $(MAKE) -C windows release
+windows_units:
+ $(MAKE) -C windows units
+windows_examples:
+ $(MAKE) -C windows examples
+windows_shared:
+ $(MAKE) -C windows shared
+windows_install:
+ $(MAKE) -C windows install
+windows_sourceinstall:
+ $(MAKE) -C windows sourceinstall
+windows_exampleinstall:
+ $(MAKE) -C windows exampleinstall
+windows_distinstall:
+ $(MAKE) -C windows distinstall
+windows_zipinstall:
+ $(MAKE) -C windows zipinstall
+windows_zipsourceinstall:
+ $(MAKE) -C windows zipsourceinstall
+windows_zipexampleinstall:
+ $(MAKE) -C windows zipexampleinstall
+windows_zipdistinstall:
+ $(MAKE) -C windows zipdistinstall
+windows_clean:
+ $(MAKE) -C windows clean
+windows_distclean:
+ $(MAKE) -C windows distclean
+windows_cleanall:
+ $(MAKE) -C windows cleanall
+windows_info:
+ $(MAKE) -C windows info
+windows_makefiles:
+ $(MAKE) -C windows makefiles
+windows:
+ $(MAKE) -C windows all
+.PHONY: windows_all windows_debug windows_smart windows_release windows_units windows_examples windows_shared windows_install windows_sourceinstall windows_exampleinstall windows_distinstall windows_zipinstall windows_zipsourceinstall windows_zipexampleinstall windows_zipdistinstall windows_clean windows_distclean windows_cleanall windows_info windows_makefiles windows
+endif
+all: $(addsuffix _all,$(TARGET_DIRS))
+debug: $(addsuffix _debug,$(TARGET_DIRS))
+smart: $(addsuffix _smart,$(TARGET_DIRS))
+release: $(addsuffix _release,$(TARGET_DIRS))
+units: $(addsuffix _units,$(TARGET_DIRS))
+examples: $(addsuffix _examples,$(TARGET_DIRS))
+shared: $(addsuffix _shared,$(TARGET_DIRS))
+install: $(addsuffix _install,$(TARGET_DIRS))
+sourceinstall: $(addsuffix _sourceinstall,$(TARGET_DIRS))
+exampleinstall: $(addsuffix _exampleinstall,$(TARGET_DIRS))
+distinstall: $(addsuffix _distinstall,$(TARGET_DIRS))
+zipinstall: $(addsuffix _zipinstall,$(TARGET_DIRS))
+zipsourceinstall: $(addsuffix _zipsourceinstall,$(TARGET_DIRS))
+zipexampleinstall: $(addsuffix _zipexampleinstall,$(TARGET_DIRS))
+zipdistinstall: $(addsuffix _zipdistinstall,$(TARGET_DIRS))
+clean: $(addsuffix _clean,$(TARGET_DIRS))
+distclean: $(addsuffix _distclean,$(TARGET_DIRS))
+cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
+info: fpc_info
+makefiles: fpc_makefiles $(addsuffix _makefiles,$(TARGET_DIRS))
+.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
+.NOTPARALLEL:
diff --git a/packages/libndsfpc/examples/graphics/Effects/Makefile.fpc b/packages/libndsfpc/examples/graphics/Effects/Makefile.fpc
new file mode 100644
index 0000000000..c1ee46e8ab
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Effects/Makefile.fpc
@@ -0,0 +1,18 @@
+#
+# Makefile.fpc for Free Pascal libndsfpc 2.x.y Examples
+#
+
+[target]
+dirs=windows
+
+[require]
+packages=libndsfpc
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../../../../..
+
+[rules]
+.NOTPARALLEL:
diff --git a/packages/libndsfpc/examples/graphics/Effects/windows/Makefile b/packages/libndsfpc/examples/graphics/Effects/windows/Makefile
new file mode 100644
index 0000000000..76adc51677
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Effects/windows/Makefile
@@ -0,0 +1,3468 @@
+#
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
+#
+default: all
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
+UNIXs = linux $(BSDs) solaris qnx haiku aix
+LIMIT83fs = go32v2 os2 emx watcom msdos
+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=nds
+override CPU_TARGET_DEFAULT=arm
+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),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
+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 units)),)
+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 units)),)
+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 units)),)
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+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
+ifeq ($(CPU_TARGET),mipsel)
+BINUTILSPREFIX=mipsel-linux-android-
+endif
+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 $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
+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
+BUILD = build
+INC = inc
+AUDIO_FILES = $(foreach dir, $(notdir $(wildcard audio/*.*)), $(CURDIR)/audio/$(dir))
+GFX_FILES = $(foreach dir,gfx,$(notdir $(wildcard $(dir)/*.png)))
+BIN_FILES = $(foreach dir,data,$(notdir $(wildcard $(dir)/*)))
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override TARGET_PROGRAMS+=windows
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-g -Xm
+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
+BATCHEXT=.bat
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+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=
+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
+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=libndsfpc
+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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+REQUIRE_PACKAGES_RTL=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),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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),m68k-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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),m68k-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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+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),)
+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
+ifdef REQUIRE_PACKAGES_LIBNDSFPC
+PACKAGEDIR_LIBNDSFPC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libndsfpc/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_LIBNDSFPC),)
+ifneq ($(wildcard $(PACKAGEDIR_LIBNDSFPC)/units/$(TARGETSUFFIX)),)
+UNITDIR_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)/units/$(TARGETSUFFIX)
+else
+UNITDIR_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)
+endif
+ifneq ($(wildcard $(PACKAGEDIR_LIBNDSFPC)/units/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)/units/$(SOURCESUFFIX)
+else
+ifneq ($(wildcard $(PACKAGEDIR_LIBNDSFPC)/units_bs/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)/units_bs/$(SOURCESUFFIX)
+else
+UNITDIR_FPMAKE_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)
+endif
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_LIBNDSFPC)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_LIBNDSFPC) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_LIBNDSFPC)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_LIBNDSFPC=
+UNITDIR_LIBNDSFPC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /libndsfpc/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_LIBNDSFPC),)
+UNITDIR_LIBNDSFPC:=$(firstword $(UNITDIR_LIBNDSFPC))
+else
+UNITDIR_LIBNDSFPC=
+endif
+endif
+ifdef UNITDIR_LIBNDSFPC
+override COMPILER_UNITDIR+=$(UNITDIR_LIBNDSFPC)
+endif
+ifdef UNITDIR_FPMAKE_LIBNDSFPC
+override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_LIBNDSFPC)
+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)
+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)
+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
+ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
+ifeq ($(CPU_TARGET),i386)
+FPCCPUOPT:=-OG2p3
+endif
+ifeq ($(CPU_TARGET),powerpc)
+FPCCPUOPT:=-O1r
+endif
+else
+FPCCPUOPT:=-O2
+endif
+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),)
+ifeq ($(CPU_TARGET),x86_64)
+override FPCOPT+=-Cg
+endif
+endif
+ifdef LINKSHARED
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+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_exes
+ifndef CROSSINSTALL
+ifneq ($(TARGET_PROGRAMS),)
+override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
+override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
+override EXEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_PROGRAMS))
+override ALLTARGET+=fpc_exes
+override INSTALLEXEFILES+=$(EXEFILES)
+override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
+override CLEANEXEDBGFILES+=$(EXEDBGFILES)
+ifeq ($(OS_TARGET),os2)
+override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
+endif
+ifeq ($(OS_TARGET),emx)
+override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
+endif
+endif
+endif
+fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
+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) .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 %$(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)
+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
+override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
+ifneq ($(UNITTARGETDIRPREFIX),)
+override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
+override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
+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: $(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)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
+endif
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
+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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *$(ASMEXT) *_ppas$(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
+ -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+ -$(DEL) *.o *.ppu *.a
+endif
+ -$(DELTREE) *$(SMARTEXT)
+ -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *_ppas$(BATCHEXT)
+ifdef AOUTEXT
+ -$(DEL) *$(AOUTEXT)
+endif
+ifdef DEBUGSYMEXT
+ -$(DEL) *$(DEBUGSYMEXT)
+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
+ifndef BIN2S
+BIN2S:=$(strip $(wildcard $(addsuffix /bin2s$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(BIN2S),)
+BIN2S= __missing_command_BIN2S
+else
+BIN2S:=$(firstword $(BIN2S))
+endif
+endif
+export BIN2S
+ifndef MMUTIL
+MMUTIL:=$(strip $(wildcard $(addsuffix /mmutil$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MMUTIL),)
+MMUTIL= __missing_command_MMUTIL
+else
+MMUTIL:=$(firstword $(MMUTIL))
+endif
+endif
+export MMUTIL
+ifndef GRIT
+GRIT:=$(strip $(wildcard $(addsuffix /grit$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(GRIT),)
+GRIT= __missing_command_GRIT
+else
+GRIT:=$(firstword $(GRIT))
+endif
+endif
+export GRIT
+ifndef RMDIR
+RMDIR:=$(strip $(wildcard $(addsuffix /rmdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(RMDIR),)
+RMDIR= __missing_command_RMDIR
+else
+RMDIR:=$(firstword $(RMDIR))
+endif
+endif
+export RMDIR
+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:
+distclean: fpc_distclean
+cleanall: fpc_cleanall
+info: fpc_info
+makefiles: fpc_makefiles
+.PHONY: debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall distclean cleanall info makefiles
+ifneq ($(wildcard fpcmake.loc),)
+include fpcmake.loc
+endif
+.NOTPARALLEL:
+clean: dir_delete fpc_clean fpc_cleanall
+all: dir_make $(BIN_FILES) $(GFX_FILES) fpc_all
+dir_delete:
+ @$(DELTREE) $(CURDIR)/$(BUILD)
+ @$(DELTREE) $(CURDIR)/$(INC)
+dir_make:
+ifneq ($(BUILD), $(CURDIR))
+ @$(MKDIR) $(BUILD)
+endif
+ifneq ($(INC), $(CURDIR))
+ @$(MKDIR) $(INC)
+endif
+soundbank.bin.o : $(AUDIO_FILES)
+ @$(MMUTIL) $^ -d -o$(BUILD)/soundbank.bin -h$(BUILD)/soundbank.h
+ $(BIN2S) $(BUILD)/soundbank.bin > $(BUILD)/soundbank.bin.s
+ $(AS) -o $(BUILD)/soundbank.bin.o $(BUILD)/soundbank.bin.s
+$(GFX_FILES): $(wildcard %.png)
+ @echo 'Converting $(@) file to asm...'
+ $(GRIT) gfx/$(@) -fts -ff gfx/$(basename $(@)).grit -o$(BUILD)/$(@)
+ @echo 'Assembling $(@).s file...'
+ $(AS) -o $(BUILD)/$(basename $(@)).o $(BUILD)/$(basename $(@)).s
+ @echo 'Done!'
+$(BIN_FILES): $(wildcard %.*)
+ @echo 'Converting $(@) file to asm...'
+ @$(BIN2S) data/$(@) > $(BUILD)/$(@).s
+ @echo 'Creating $(@).inc include file...'
+ @echo "var" > `(echo "inc/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"_end: array [0..0] of cuint8; cvar; external;" >> `(echo "inc/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`": array [0..0] of cuint8; cvar; external;" >> `(echo "inc/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`_size": cuint32; cvar; external;" >> `(echo "inc/"$(@F) | tr . .)`.inc
+ @echo 'Assembling $(@).s file...'
+ @$(AS) -o $(BUILD)/$(@).o $(BUILD)/$(@).s
+ @echo 'Done!'
diff --git a/packages/libndsfpc/examples/graphics/Effects/windows/Makefile.fpc b/packages/libndsfpc/examples/graphics/Effects/windows/Makefile.fpc
new file mode 100644
index 0000000000..663506a19e
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Effects/windows/Makefile.fpc
@@ -0,0 +1,93 @@
+#
+# Makefile.fpc for Free Pascal libndsfpc 2.x.y Examples
+#
+
+[target]
+loaders=
+programs=windows
+
+[require]
+packages=libndsfpc
+tools=bin2s mmutil grit rmdir
+nortl=y
+
+[install]
+fpcpackage=y
+
+[default]
+cpu=arm
+target=nds
+fpcdir=../../../../../..
+
+[compiler]
+options=-g -Xm
+#-d__THUMB__
+
+[clean]
+files=*.elf *.o *.s *.nds *.nef *.h *.bin *.map \
+ $(BUILD)/* \
+ $(INC)/*
+units=*
+
+[prerules]
+BUILD = build
+INC = inc
+AUDIO_FILES = $(foreach dir, $(notdir $(wildcard audio/*.*)), $(CURDIR)/audio/$(dir))
+GFX_FILES = $(foreach dir,gfx,$(notdir $(wildcard $(dir)/*.png)))
+BIN_FILES = $(foreach dir,data,$(notdir $(wildcard $(dir)/*)))
+
+[rules]
+.NOTPARALLEL:
+clean: dir_delete fpc_clean fpc_cleanall
+all: dir_make $(BIN_FILES) $(GFX_FILES) fpc_all
+
+#
+# Delete temp directories
+#
+dir_delete:
+ @$(DELTREE) $(CURDIR)/$(BUILD)
+ @$(DELTREE) $(CURDIR)/$(INC)
+
+#
+# Create temp directories
+#
+dir_make:
+ifneq ($(BUILD), $(CURDIR))
+ @$(MKDIR) $(BUILD)
+endif
+ifneq ($(INC), $(CURDIR))
+ @$(MKDIR) $(INC)
+endif
+
+#
+# Audio files processing rule
+#
+soundbank.bin.o : $(AUDIO_FILES)
+ @$(MMUTIL) $^ -d -o$(BUILD)/soundbank.bin -h$(BUILD)/soundbank.h
+ $(BIN2S) $(BUILD)/soundbank.bin > $(BUILD)/soundbank.bin.s
+ $(AS) -o $(BUILD)/soundbank.bin.o $(BUILD)/soundbank.bin.s
+
+#
+# Png files processing rule
+#
+$(GFX_FILES): $(wildcard %.png)
+ @echo 'Converting $(@) file to asm...'
+ $(GRIT) gfx/$(@) -fts -ff gfx/$(basename $(@)).grit -o$(BUILD)/$(@)
+ @echo 'Assembling $(@).s file...'
+ $(AS) -o $(BUILD)/$(basename $(@)).o $(BUILD)/$(basename $(@)).s
+ @echo 'Done!'
+
+#
+# Binary files processing rule
+#
+$(BIN_FILES): $(wildcard %.*)
+ @echo 'Converting $(@) file to asm...'
+ @$(BIN2S) data/$(@) > $(BUILD)/$(@).s
+ @echo 'Creating $(@).inc include file...'
+ @echo "var" > `(echo "inc/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"_end: array [0..0] of cuint8; cvar; external;" >> `(echo "inc/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`": array [0..0] of cuint8; cvar; external;" >> `(echo "inc/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`_size": cuint32; cvar; external;" >> `(echo "inc/"$(@F) | tr . .)`.inc
+ @echo 'Assembling $(@).s file...'
+ @$(AS) -o $(BUILD)/$(@).o $(BUILD)/$(@).s
+ @echo 'Done!'
diff --git a/packages/libndsfpc/examples/graphics/Effects/windows/gfx/drunkenlogo.grit b/packages/libndsfpc/examples/graphics/Effects/windows/gfx/drunkenlogo.grit
new file mode 100644
index 0000000000..f3358514b8
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Effects/windows/gfx/drunkenlogo.grit
@@ -0,0 +1,5 @@
+# 8 bit bitmap
+-gB8
+
+# bitmap format
+-gb
diff --git a/packages/libndsfpc/examples/graphics/Effects/windows/gfx/drunkenlogo.png b/packages/libndsfpc/examples/graphics/Effects/windows/gfx/drunkenlogo.png
new file mode 100644
index 0000000000..ea66c9e42f
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Effects/windows/gfx/drunkenlogo.png
Binary files differ
diff --git a/packages/libndsfpc/examples/graphics/Effects/windows/windows.pp b/packages/libndsfpc/examples/graphics/Effects/windows/windows.pp
new file mode 100644
index 0000000000..895026a766
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Effects/windows/windows.pp
@@ -0,0 +1,76 @@
+program windows;
+{$L build/drunkenlogo.o}
+
+{$mode objfpc}
+
+uses
+ ctypes, nds9;
+
+const
+ drunkenlogoPalLen = 512;
+ drunkenlogoBitmapLen = 65536;
+
+var
+ drunkenlogoPal: array [0..255] of cushort; cvar; external;
+ drunkenlogoBitmap: array [0..16383] of cuint; cvar; external;
+ bg3: integer;
+ x, y, size: integer;
+
+
+
+begin
+ videoSetMode(MODE_5_2D);
+ vramSetBankA(VRAM_A_MAIN_BG);
+
+ //enable a background
+ bg3 := bgInit(3, BgType_Bmp8, BgSize_B8_256x256, 0, 0);
+
+ //use the standard drunken logo
+ dmaCopy(@drunkenlogoBitmap, bgGetGfxPtr(bg3), drunkenlogoBitmapLen);
+ dmaCopy(@drunkenlogoPal, BG_PALETTE, drunkenlogoPalLen);
+
+ //enable window 0
+ windowEnable(WINDOW_0);
+
+ //enable window 0 on our new background
+ bgWindowEnable(bg3, WINDOW_0);
+
+ x := 60;
+ y := 60;
+ size := 100;
+
+ while true do
+ begin
+ scanKeys();
+ //the code below just moves the window around
+ if (keysHeld() and KEY_UP) <> 0 then dec(y);
+ if (keysHeld() and KEY_DOWN) <> 0 then inc(y);
+ if (keysHeld() and KEY_LEFT) <> 0 then dec(x);
+ if (keysHeld() and KEY_RIGHT) <> 0 then inc(x);
+
+ if (keysHeld() and KEY_A) <> 0 then dec(size);
+ if (keysHeld() and KEY_B) <> 0 then inc(size);
+
+ if (keysHeld() and KEY_X) <> 0 then
+ begin
+ bgWindowDisable(bg3, WINDOW_OUT);
+ bgWindowEnable(bg3, WINDOW_0);
+ end;
+ if (keysHeld() and KEY_Y) <> 0 then
+ begin
+ bgWindowDisable(bg3, WINDOW_0);
+ bgWindowEnable(bg3, WINDOW_OUT);
+ end;
+
+ if (x < 0) then x := 0;
+ if (x > SCREEN_WIDTH - 1) then x := SCREEN_WIDTH - 1;
+ if (y < 0) then y := 0;
+ if (y > SCREEN_HEIGHT - 1) then y := SCREEN_HEIGHT - 1;
+
+ swiWaitForVBlank();
+
+ //set up the boundaries on our window
+ windowSetBounds(WINDOW_0, x, y, x + size, y + size);
+ end;
+
+end. \ No newline at end of file
diff --git a/packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile b/packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
new file mode 100644
index 0000000000..05aa3b79ba
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile
@@ -0,0 +1,2817 @@
+#
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
+#
+default: all
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
+UNIXs = linux $(BSDs) solaris qnx haiku aix
+LIMIT83fs = go32v2 os2 emx watcom msdos
+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),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
+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 units)),)
+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 units)),)
+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 units)),)
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+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
+ifeq ($(CPU_TARGET),mipsel)
+BINUTILSPREFIX=mipsel-linux-android-
+endif
+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 $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
+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
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_DIRS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override TARGET_DIRS+=backgrounds
+endif
+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
+BATCHEXT=.bat
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+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=
+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
+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=libndsfpc
+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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+REQUIRE_PACKAGES_RTL=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),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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),m68k-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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),m68k-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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+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),)
+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
+ifdef REQUIRE_PACKAGES_LIBNDSFPC
+PACKAGEDIR_LIBNDSFPC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libndsfpc/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_LIBNDSFPC),)
+ifneq ($(wildcard $(PACKAGEDIR_LIBNDSFPC)/units/$(TARGETSUFFIX)),)
+UNITDIR_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)/units/$(TARGETSUFFIX)
+else
+UNITDIR_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)
+endif
+ifneq ($(wildcard $(PACKAGEDIR_LIBNDSFPC)/units/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)/units/$(SOURCESUFFIX)
+else
+ifneq ($(wildcard $(PACKAGEDIR_LIBNDSFPC)/units_bs/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)/units_bs/$(SOURCESUFFIX)
+else
+UNITDIR_FPMAKE_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)
+endif
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_LIBNDSFPC)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_LIBNDSFPC) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_LIBNDSFPC)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_LIBNDSFPC=
+UNITDIR_LIBNDSFPC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /libndsfpc/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_LIBNDSFPC),)
+UNITDIR_LIBNDSFPC:=$(firstword $(UNITDIR_LIBNDSFPC))
+else
+UNITDIR_LIBNDSFPC=
+endif
+endif
+ifdef UNITDIR_LIBNDSFPC
+override COMPILER_UNITDIR+=$(UNITDIR_LIBNDSFPC)
+endif
+ifdef UNITDIR_FPMAKE_LIBNDSFPC
+override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_LIBNDSFPC)
+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)
+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)
+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
+ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
+ifeq ($(CPU_TARGET),i386)
+FPCCPUOPT:=-OG2p3
+endif
+ifeq ($(CPU_TARGET),powerpc)
+FPCCPUOPT:=-O1r
+endif
+else
+FPCCPUOPT:=-O2
+endif
+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),)
+ifeq ($(CPU_TARGET),x86_64)
+override FPCOPT+=-Cg
+endif
+endif
+ifdef LINKSHARED
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+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_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)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
+endif
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
+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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *$(ASMEXT) *_ppas$(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
+ -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+ -$(DEL) *.o *.ppu *.a
+endif
+ -$(DELTREE) *$(SMARTEXT)
+ -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *_ppas$(BATCHEXT)
+ifdef AOUTEXT
+ -$(DEL) *$(AOUTEXT)
+endif
+ifdef DEBUGSYMEXT
+ -$(DEL) *$(DEBUGSYMEXT)
+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
+ifeq ($(FULL_TARGET),i386-linux)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-android)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),arm-android)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+TARGET_DIRS_BACKGROUNDS=1
+endif
+ifdef TARGET_DIRS_BACKGROUNDS
+backgrounds_all:
+ $(MAKE) -C backgrounds all
+backgrounds_debug:
+ $(MAKE) -C backgrounds debug
+backgrounds_smart:
+ $(MAKE) -C backgrounds smart
+backgrounds_release:
+ $(MAKE) -C backgrounds release
+backgrounds_units:
+ $(MAKE) -C backgrounds units
+backgrounds_examples:
+ $(MAKE) -C backgrounds examples
+backgrounds_shared:
+ $(MAKE) -C backgrounds shared
+backgrounds_install:
+ $(MAKE) -C backgrounds install
+backgrounds_sourceinstall:
+ $(MAKE) -C backgrounds sourceinstall
+backgrounds_exampleinstall:
+ $(MAKE) -C backgrounds exampleinstall
+backgrounds_distinstall:
+ $(MAKE) -C backgrounds distinstall
+backgrounds_zipinstall:
+ $(MAKE) -C backgrounds zipinstall
+backgrounds_zipsourceinstall:
+ $(MAKE) -C backgrounds zipsourceinstall
+backgrounds_zipexampleinstall:
+ $(MAKE) -C backgrounds zipexampleinstall
+backgrounds_zipdistinstall:
+ $(MAKE) -C backgrounds zipdistinstall
+backgrounds_clean:
+ $(MAKE) -C backgrounds clean
+backgrounds_distclean:
+ $(MAKE) -C backgrounds distclean
+backgrounds_cleanall:
+ $(MAKE) -C backgrounds cleanall
+backgrounds_info:
+ $(MAKE) -C backgrounds info
+backgrounds_makefiles:
+ $(MAKE) -C backgrounds makefiles
+backgrounds:
+ $(MAKE) -C backgrounds all
+.PHONY: backgrounds_all backgrounds_debug backgrounds_smart backgrounds_release backgrounds_units backgrounds_examples backgrounds_shared backgrounds_install backgrounds_sourceinstall backgrounds_exampleinstall backgrounds_distinstall backgrounds_zipinstall backgrounds_zipsourceinstall backgrounds_zipexampleinstall backgrounds_zipdistinstall backgrounds_clean backgrounds_distclean backgrounds_cleanall backgrounds_info backgrounds_makefiles backgrounds
+endif
+all: $(addsuffix _all,$(TARGET_DIRS))
+debug: $(addsuffix _debug,$(TARGET_DIRS))
+smart: $(addsuffix _smart,$(TARGET_DIRS))
+release: $(addsuffix _release,$(TARGET_DIRS))
+units: $(addsuffix _units,$(TARGET_DIRS))
+examples: $(addsuffix _examples,$(TARGET_DIRS))
+shared: $(addsuffix _shared,$(TARGET_DIRS))
+install: $(addsuffix _install,$(TARGET_DIRS))
+sourceinstall: $(addsuffix _sourceinstall,$(TARGET_DIRS))
+exampleinstall: $(addsuffix _exampleinstall,$(TARGET_DIRS))
+distinstall: $(addsuffix _distinstall,$(TARGET_DIRS))
+zipinstall: $(addsuffix _zipinstall,$(TARGET_DIRS))
+zipsourceinstall: $(addsuffix _zipsourceinstall,$(TARGET_DIRS))
+zipexampleinstall: $(addsuffix _zipexampleinstall,$(TARGET_DIRS))
+zipdistinstall: $(addsuffix _zipdistinstall,$(TARGET_DIRS))
+clean: $(addsuffix _clean,$(TARGET_DIRS))
+distclean: $(addsuffix _distclean,$(TARGET_DIRS))
+cleanall: $(addsuffix _cleanall,$(TARGET_DIRS))
+info: fpc_info
+makefiles: fpc_makefiles $(addsuffix _makefiles,$(TARGET_DIRS))
+.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
+.NOTPARALLEL:
diff --git a/packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile.fpc b/packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile.fpc
new file mode 100644
index 0000000000..efe608cd2b
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Ext_Palettes/Makefile.fpc
@@ -0,0 +1,18 @@
+#
+# Makefile.fpc for Free Pascal libndsfpc 2.x.y Examples
+#
+
+[target]
+dirs=backgrounds
+
+[require]
+packages=libndsfpc
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../../../../..
+
+[rules]
+.NOTPARALLEL:
diff --git a/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
new file mode 100644
index 0000000000..0cc625ca3a
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile
@@ -0,0 +1,3480 @@
+#
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
+#
+default: all
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
+UNIXs = linux $(BSDs) solaris qnx haiku aix
+LIMIT83fs = go32v2 os2 emx watcom msdos
+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=nds
+override CPU_TARGET_DEFAULT=arm
+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),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
+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 units)),)
+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 units)),)
+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 units)),)
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+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
+ifeq ($(CPU_TARGET),mipsel)
+BINUTILSPREFIX=mipsel-linux-android-
+endif
+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 $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
+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
+BUILD = build
+DATA = data
+GFX = gfx
+INC = inc
+AUDIO_FILES = $(foreach dir, $(notdir $(wildcard audio/*.*)), $(CURDIR)/audio/$(dir))
+GFX_FILES = $(foreach dir, $(GFX), $(notdir $(wildcard $(dir)/*.bmp $(dir)/*.png)))
+BIN_FILES = $(foreach dir, $(DATA), $(notdir $(wildcard $(dir)/*)))
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override TARGET_PROGRAMS+=backgrounds
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override CLEAN_UNITS+=*
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-g -Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-g -Xm
+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
+BATCHEXT=.bat
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+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=
+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
+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=libndsfpc
+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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+REQUIRE_PACKAGES_RTL=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),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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),m68k-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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
+ifeq ($(FULL_TARGET),m68k-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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=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
+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),)
+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
+ifdef REQUIRE_PACKAGES_LIBNDSFPC
+PACKAGEDIR_LIBNDSFPC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /libndsfpc/Makefile.fpc,$(PACKAGESDIR))))))
+ifneq ($(PACKAGEDIR_LIBNDSFPC),)
+ifneq ($(wildcard $(PACKAGEDIR_LIBNDSFPC)/units/$(TARGETSUFFIX)),)
+UNITDIR_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)/units/$(TARGETSUFFIX)
+else
+UNITDIR_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)
+endif
+ifneq ($(wildcard $(PACKAGEDIR_LIBNDSFPC)/units/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)/units/$(SOURCESUFFIX)
+else
+ifneq ($(wildcard $(PACKAGEDIR_LIBNDSFPC)/units_bs/$(SOURCESUFFIX)),)
+UNITDIR_FPMAKE_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)/units_bs/$(SOURCESUFFIX)
+else
+UNITDIR_FPMAKE_LIBNDSFPC=$(PACKAGEDIR_LIBNDSFPC)
+endif
+endif
+ifdef CHECKDEPEND
+$(PACKAGEDIR_LIBNDSFPC)/$(FPCMADE):
+ $(MAKE) -C $(PACKAGEDIR_LIBNDSFPC) $(FPCMADE)
+override ALLDEPENDENCIES+=$(PACKAGEDIR_LIBNDSFPC)/$(FPCMADE)
+endif
+else
+PACKAGEDIR_LIBNDSFPC=
+UNITDIR_LIBNDSFPC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /libndsfpc/Package.fpc,$(UNITSDIR)))))
+ifneq ($(UNITDIR_LIBNDSFPC),)
+UNITDIR_LIBNDSFPC:=$(firstword $(UNITDIR_LIBNDSFPC))
+else
+UNITDIR_LIBNDSFPC=
+endif
+endif
+ifdef UNITDIR_LIBNDSFPC
+override COMPILER_UNITDIR+=$(UNITDIR_LIBNDSFPC)
+endif
+ifdef UNITDIR_FPMAKE_LIBNDSFPC
+override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_LIBNDSFPC)
+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)
+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)
+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
+ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
+ifeq ($(CPU_TARGET),i386)
+FPCCPUOPT:=-OG2p3
+endif
+ifeq ($(CPU_TARGET),powerpc)
+FPCCPUOPT:=-O1r
+endif
+else
+FPCCPUOPT:=-O2
+endif
+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),)
+ifeq ($(CPU_TARGET),x86_64)
+override FPCOPT+=-Cg
+endif
+endif
+ifdef LINKSHARED
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+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_exes
+ifndef CROSSINSTALL
+ifneq ($(TARGET_PROGRAMS),)
+override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
+override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
+override EXEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_PROGRAMS))
+override ALLTARGET+=fpc_exes
+override INSTALLEXEFILES+=$(EXEFILES)
+override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
+override CLEANEXEDBGFILES+=$(EXEDBGFILES)
+ifeq ($(OS_TARGET),os2)
+override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
+endif
+ifeq ($(OS_TARGET),emx)
+override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
+endif
+endif
+endif
+fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
+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) .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 %$(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)
+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
+override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
+ifneq ($(UNITTARGETDIRPREFIX),)
+override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
+override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
+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: $(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)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
+endif
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
+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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *$(ASMEXT) *_ppas$(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
+ -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+ -$(DEL) *.o *.ppu *.a
+endif
+ -$(DELTREE) *$(SMARTEXT)
+ -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *_ppas$(BATCHEXT)
+ifdef AOUTEXT
+ -$(DEL) *$(AOUTEXT)
+endif
+ifdef DEBUGSYMEXT
+ -$(DEL) *$(DEBUGSYMEXT)
+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
+ifndef BIN2S
+BIN2S:=$(strip $(wildcard $(addsuffix /bin2s$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(BIN2S),)
+BIN2S= __missing_command_BIN2S
+else
+BIN2S:=$(firstword $(BIN2S))
+endif
+endif
+export BIN2S
+ifndef MMUTIL
+MMUTIL:=$(strip $(wildcard $(addsuffix /mmutil$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MMUTIL),)
+MMUTIL= __missing_command_MMUTIL
+else
+MMUTIL:=$(firstword $(MMUTIL))
+endif
+endif
+export MMUTIL
+ifndef GRIT
+GRIT:=$(strip $(wildcard $(addsuffix /grit$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(GRIT),)
+GRIT= __missing_command_GRIT
+else
+GRIT:=$(firstword $(GRIT))
+endif
+endif
+export GRIT
+ifndef RMDIR
+RMDIR:=$(strip $(wildcard $(addsuffix /rmdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(RMDIR),)
+RMDIR= __missing_command_RMDIR
+else
+RMDIR:=$(firstword $(RMDIR))
+endif
+endif
+export RMDIR
+ifndef MV
+MV:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(MV),)
+MV= __missing_command_MV
+else
+MV:=$(firstword $(MV))
+endif
+endif
+export MV
+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:
+distclean: fpc_distclean
+cleanall: fpc_cleanall
+info: fpc_info
+makefiles: fpc_makefiles
+.PHONY: debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall distclean cleanall info makefiles
+ifneq ($(wildcard fpcmake.loc),)
+include fpcmake.loc
+endif
+.NOTPARALLEL:
+clean: dir_delete fpc_clean fpc_cleanall
+all: dir_make $(BIN_FILES) $(GFX_FILES) fpc_all
+dir_delete:
+ @$(DELTREE) $(CURDIR)/$(BUILD)
+ @$(DELTREE) $(CURDIR)/$(INC)
+dir_make:
+ifneq ($(BUILD), $(CURDIR))
+ @$(MKDIR) $(BUILD)
+endif
+ifneq ($(INC), $(CURDIR))
+ @$(MKDIR) $(INC)
+endif
+soundbank.bin.o : $(AUDIO_FILES)
+ @$(MMUTIL) $^ -d -o$(BUILD)/soundbank.bin -h$(BUILD)/soundbank.h
+ $(BIN2S) $(BUILD)/soundbank.bin > $(BUILD)/soundbank.bin.s
+ $(AS) -o $(BUILD)/soundbank.bin.o $(BUILD)/soundbank.bin.s
+$(GFX_FILES): $(wildcard %.bmp %.png)
+ @echo 'Converting $(@) file to asm...'
+ $(GRIT) $(GFX)/$(@) -fp -fts -ff $(GFX)/$(basename $(@)).grit -o$(BUILD)/$(@)
+ @echo 'Assembling $(@).s file...'
+ $(AS) -o $(BUILD)/$(basename $(@)).o $(BUILD)/$(basename $(@)).s
+ $(MV) -f $(BUILD)/$(basename $(@)).inc $(INC)/$(basename $(@)).inc
+ @echo 'Done!'
+$(BIN_FILES): $(wildcard %.*)
+ @echo 'Converting $(@) file to asm...'
+ @$(BIN2S) $(DATA)/$(@) > $(BUILD)/$(@).s
+ @echo 'Creating $(@).inc include file...'
+ @echo "var" > `(echo "$(INC)/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"_end: array [0..0] of cuint8; cvar; external;" >> `(echo "$(INC)/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`": array [0..0] of cuint8; cvar; external;" >> `(echo "$(INC)/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`_size": cuint32; cvar; external;" >> `(echo "$(INC)/"$(@F) | tr . .)`.inc
+ @echo 'Assembling $(@).s file...'
+ @$(AS) -o $(BUILD)/$(@).o $(BUILD)/$(@).s
+ @echo 'Done!'
diff --git a/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile.fpc b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile.fpc
new file mode 100644
index 0000000000..c684ee070e
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/Makefile.fpc
@@ -0,0 +1,95 @@
+#
+# Makefile.fpc for Free Pascal libndsfpc 2.x.y Examples
+#
+
+[target]
+loaders=
+programs=backgrounds
+
+[require]
+packages=libndsfpc
+tools=bin2s mmutil grit rmdir mv
+nortl=y
+
+[install]
+fpcpackage=y
+
+[default]
+cpu=arm
+target=nds
+fpcdir=../../../../../..
+
+[compiler]
+options=-g -Xm
+
+[clean]
+files=*.elf *.o *.s *.nds *.nef *.h *.bin *.map \
+ $(BUILD)/* \
+ $(INC)/*
+units=*
+
+[prerules]
+BUILD = build
+DATA = data
+GFX = gfx
+INC = inc
+AUDIO_FILES = $(foreach dir, $(notdir $(wildcard audio/*.*)), $(CURDIR)/audio/$(dir))
+GFX_FILES = $(foreach dir, $(GFX), $(notdir $(wildcard $(dir)/*.bmp $(dir)/*.png)))
+BIN_FILES = $(foreach dir, $(DATA), $(notdir $(wildcard $(dir)/*)))
+
+[rules]
+.NOTPARALLEL:
+clean: dir_delete fpc_clean fpc_cleanall
+all: dir_make $(BIN_FILES) $(GFX_FILES) fpc_all
+
+#
+# Delete temp directories
+#
+dir_delete:
+ @$(DELTREE) $(CURDIR)/$(BUILD)
+ @$(DELTREE) $(CURDIR)/$(INC)
+
+#
+# Create temp directories
+#
+dir_make:
+ifneq ($(BUILD), $(CURDIR))
+ @$(MKDIR) $(BUILD)
+endif
+ifneq ($(INC), $(CURDIR))
+ @$(MKDIR) $(INC)
+endif
+
+#
+# Audio files processing rule
+#
+soundbank.bin.o : $(AUDIO_FILES)
+ @$(MMUTIL) $^ -d -o$(BUILD)/soundbank.bin -h$(BUILD)/soundbank.h
+ $(BIN2S) $(BUILD)/soundbank.bin > $(BUILD)/soundbank.bin.s
+ $(AS) -o $(BUILD)/soundbank.bin.o $(BUILD)/soundbank.bin.s
+
+#
+# Png files processing rule
+#
+$(GFX_FILES): $(wildcard %.bmp %.png)
+ @echo 'Converting $(@) file to asm...'
+ $(GRIT) $(GFX)/$(@) -fp -fts -ff $(GFX)/$(basename $(@)).grit -o$(BUILD)/$(@)
+ @echo 'Assembling $(@).s file...'
+ $(AS) -o $(BUILD)/$(basename $(@)).o $(BUILD)/$(basename $(@)).s
+ $(MV) -f $(BUILD)/$(basename $(@)).inc $(INC)/$(basename $(@)).inc
+ @echo 'Done!'
+
+#
+# Binary files processing rule
+#
+$(BIN_FILES): $(wildcard %.*)
+ @echo 'Converting $(@) file to asm...'
+ @$(BIN2S) $(DATA)/$(@) > $(BUILD)/$(@).s
+ @echo 'Creating $(@).inc include file...'
+ @echo "var" > `(echo "$(INC)/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"_end: array [0..0] of cuint8; cvar; external;" >> `(echo "$(INC)/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`": array [0..0] of cuint8; cvar; external;" >> `(echo "$(INC)/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`_size": cuint32; cvar; external;" >> `(echo "$(INC)/"$(@F) | tr . .)`.inc
+ @echo 'Assembling $(@).s file...'
+ @$(AS) -o $(BUILD)/$(@).o $(BUILD)/$(@).s
+ @echo 'Done!'
diff --git a/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/backgrounds.pp b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/backgrounds.pp
new file mode 100644
index 0000000000..e27b281062
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/backgrounds.pp
@@ -0,0 +1,85 @@
+program backgrounds;
+{$L build/drunkenlogo.o}
+{$L build/devkitlogo.o}
+
+{$mode objfpc}
+
+uses
+ ctypes, nds9;
+
+{$include inc/drunkenlogo.inc}
+{$include inc/devkitlogo.inc}
+
+var
+ bg: array [0..3] of integer = (0,0,0,0);
+ i: integer;
+ frames: integer = 0;
+
+begin
+
+ // initialize video
+ videoSetMode(MODE_0_2D);
+ videoSetModeSub(MODE_0_2D);
+ vramSetBankA(VRAM_A_MAIN_BG);
+ vramSetBankC(VRAM_C_SUB_BG);
+
+ // enable extended palettes
+ bgExtPaletteEnable();
+ bgExtPaletteEnableSub();
+
+ // initialize backgrounds
+ // extended palettes only work on 8bpp tiled bg's with 16-bit map entries
+ // this means you can only use BgType_Text8bpp or BgType_ExRotation
+ // http://mtheall.com/vram.html#T0=1&NT0=192&MB0=6&TB0=0&S0=0&T1=1&NT1=576&MB1=7&TB1=1&S1=0
+ bg[0] := bgInit (0, BgType_Text8bpp, BgSize_T_256x256, 6, 0);
+ bg[1] := bgInit (1, BgType_Text8bpp, BgSize_T_256x256, 7, 1);
+ // we're using identical settings on the sub screen
+ bg[2] := bgInitSub(0, BgType_Text8bpp, BgSize_T_256x256, 6, 0);
+ bg[3] := bgInitSub(1, BgType_Text8bpp, BgSize_T_256x256, 7, 1);
+
+ // copy graphics to vram
+ dmaCopy(@devkitlogoTiles, bgGetGfxPtr(bg[0]), devkitlogoTilesLen);
+ dmaCopy(@drunkenlogoTiles, bgGetGfxPtr(bg[1]), drunkenlogoTilesLen);
+ // same for sub engine
+ dmaCopy(@devkitlogoTiles, bgGetGfxPtr(bg[2]), devkitlogoTilesLen);
+ dmaCopy(@drunkenlogoTiles, bgGetGfxPtr(bg[3]), drunkenlogoTilesLen);
+
+ // copy maps to vram
+ dmaCopy(@devkitlogoMap, bgGetMapPtr(bg[0]), devkitlogoMapLen);
+ dmaCopy(@drunkenlogoMap, bgGetMapPtr(bg[1]), drunkenlogoMapLen);
+ // same for sub engine
+ dmaCopy(@devkitlogoMap, bgGetMapPtr(bg[2]), devkitlogoMapLen);
+ dmaCopy(@drunkenlogoMap, bgGetMapPtr(bg[3]), drunkenlogoMapLen);
+
+ // you can only access extended palettes in LCD mode
+ vramSetBankE(VRAM_E_LCD); // for main engine
+ vramSetBankH(VRAM_H_LCD); // for sub engine
+
+ // copy palettes to extended palette area
+ // there are 16 256-color palettes per bg
+ // use '-mp #' to make grit use # for the slot number
+ // we used '-mp 12' for drunkenlogo for demonstrative purposes
+ dmaCopy(@devkitlogoPal, @(VRAM_E_EXT_PALETTE[0, 0]), devkitlogoPalLen); // bg 0, slot 0
+ dmaCopy(@drunkenlogoPal, @(VRAM_E_EXT_PALETTE[1, 12]), drunkenlogoPalLen); // bg 1, slot 12
+ // same for sub engine
+ dmaCopy(@devkitlogoPal, @(VRAM_H_EXT_PALETTE[0, 0]), devkitlogoPalLen); // bg 0, slot 0
+ dmaCopy(@drunkenlogoPal, @(VRAM_H_EXT_PALETTE[1, 12]), drunkenlogoPalLen); // bg 1, slot 12
+
+ // map vram banks to extended palettes
+ // http://mtheall.com/banks.html#A=MBG0&C=MBG2&E=BGEPAL&H=SBGEPAL
+ vramSetBankE(VRAM_E_BG_EXT_PALETTE); // for main engine
+ vramSetBankH(VRAM_H_SUB_BG_EXT_PALETTE); // for sub engine
+
+ while keysDown() = 0 do
+ begin
+ swiWaitForVBlank();
+ inc(frames);
+ bgUpdate();
+ scanKeys();
+
+ // let's make it obvious there are multiple backgrounds
+ for i := 0 to 7 do
+ bgSetScroll(i, frames div ((i and 3) + 1), frames div ((i and 3) + 1));
+ end;
+
+end.
diff --git a/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/gfx/devkitlogo.grit b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/gfx/devkitlogo.grit
new file mode 100644
index 0000000000..5dc1b8d3cd
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/gfx/devkitlogo.grit
@@ -0,0 +1,5 @@
+# extended palettes only work on 8bpp tiled bg with 16-bit map entries
+# this means you can only use BgType_Text8bpp or BgType_ExRotation
+-g -gt -gB8
+-m -mR8
+-p
diff --git a/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/gfx/devkitlogo.png b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/gfx/devkitlogo.png
new file mode 100644
index 0000000000..a1fcabe834
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/gfx/devkitlogo.png
Binary files differ
diff --git a/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/gfx/drunkenlogo.grit b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/gfx/drunkenlogo.grit
new file mode 100644
index 0000000000..169dc69b82
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/gfx/drunkenlogo.grit
@@ -0,0 +1,8 @@
+# extended palettes only work on 8bpp tiled bg with 16-bit map entries
+# this means you can only use BgType_Text8bpp or BgType_ExRotation
+-g -gt -gB8
+-m -mR8
+-p
+
+# let's use palette slot 12 for demonstrative purposes
+-mp 12
diff --git a/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/gfx/drunkenlogo.png b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/gfx/drunkenlogo.png
new file mode 100644
index 0000000000..1be278def6
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/gfx/drunkenlogo.png
Binary files differ
diff --git a/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/inc/devkitlogo.inc b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/inc/devkitlogo.inc
new file mode 100644
index 0000000000..b46d5393f0
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/inc/devkitlogo.inc
@@ -0,0 +1,35 @@
+
+{%REGION devkitlogo}
+
+//======================================================================
+//
+// devkitlogo, 256x192@8,
+// + palette 256 entries, not compressed
+// + 180 tiles (t|f reduced) not compressed
+// + regular map (flat), not compressed, 32x24
+// Total size: 512 + 11520 + 1536 = 13568
+//
+// Time-stamp: 2014-08-04, 20:56:23
+// Exported by Cearn's GBA Image Transmogrifier, v0.8.10
+// ( http://www.coranac.com/projects/#grit )
+//
+//======================================================================
+
+{$IFNDEF GRIT_DEVKITLOGO_INC}
+{$DEFINE GRIT_DEVKITLOGO_INC}
+
+const devkitlogoTilesLen = 11520;
+ devkitlogoTilesMax = 2880;
+var devkitlogoTiles: array [0..0] of cuint32; cvar; external;
+
+const devkitlogoMapLen = 1536;
+ devkitlogoMapMax = 768;
+var devkitlogoMap: array [0..0] of cuint16; cvar; external;
+
+const devkitlogoPalLen = 512;
+ devkitlogoPalMax = 256;
+var devkitlogoPal: array [0..0] of cuint16; cvar; external;
+
+{$ENDIF GRIT_DEVKITLOGO_INC}
+
+{%ENDREGION devkitlogo}
diff --git a/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/inc/drunkenlogo.inc b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/inc/drunkenlogo.inc
new file mode 100644
index 0000000000..2dcf6aebeb
--- /dev/null
+++ b/packages/libndsfpc/examples/graphics/Ext_Palettes/backgrounds/inc/drunkenlogo.inc
@@ -0,0 +1,35 @@
+
+{%REGION drunkenlogo}
+
+//======================================================================
+//
+// drunkenlogo, 256x192@8,
+// + palette 256 entries, not compressed
+// + 547 tiles (t|f reduced) not compressed
+// + regular map (flat), not compressed, 32x24
+// Total size: 512 + 35008 + 1536 = 37056
+//
+// Time-stamp: 2014-08-04, 20:56:22
+// Exported by Cearn's GBA Image Transmogrifier, v0.8.10
+// ( http://www.coranac.com/projects/#grit )
+//
+//======================================================================
+
+{$IFNDEF GRIT_DRUNKENLOGO_INC}
+{$DEFINE GRIT_DRUNKENLOGO_INC}
+
+const drunkenlogoTilesLen = 35008;
+ drunkenlogoTilesMax = 8752;
+var drunkenlogoTiles: array [0..0] of cuint32; cvar; external;
+
+const drunkenlogoMapLen = 1536;
+ drunkenlogoMapMax = 768;
+var drunkenlogoMap: array [0..0] of cuint16; cvar; external;
+
+const drunkenlogoPalLen = 512;
+ drunkenlogoPalMax = 256;
+var drunkenlogoPal: array [0..0] of cuint16; cvar; external;
+
+{$ENDIF GRIT_DRUNKENLOGO_INC}
+
+{%ENDREGION drunkenlogo}
diff --git a/packages/libndsfpc/examples/graphics/Makefile b/packages/libndsfpc/examples/graphics/Makefile
index 21644771f9..af093e459f 100644
--- a/packages/libndsfpc/examples/graphics/Makefile
+++ b/packages/libndsfpc/examples/graphics/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,226 +326,235 @@ FPCFPMAKE=$(FPC)
endif
endif
ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i386-android)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),arm-android)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),mips-linux)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),jvm-java)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),jvm-android)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override TARGET_DIRS+=3D Backgrounds Printing Sprites
+override TARGET_DIRS+=3D Backgrounds Effects Ext_Palettes Printing Sprites
endif
override INSTALL_FPCPACKAGE=y
ifdef REQUIRE_UNITSDIR
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2458,444 +2517,616 @@ fpc_makefiles: fpc_makefile fpc_makefile_dirs
ifeq ($(FULL_TARGET),i386-linux)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-go32v2)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-win32)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-os2)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-freebsd)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-beos)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-haiku)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-netbsd)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-solaris)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-qnx)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-netware)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-openbsd)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-wdosx)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-darwin)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-emx)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-watcom)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-wince)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-embedded)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-symbian)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-nativent)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
+TARGET_DIRS_PRINTING=1
+TARGET_DIRS_SPRITES=1
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_3D=1
+TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),m68k-amiga)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),m68k-atari)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),m68k-palmos)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),m68k-embedded)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),powerpc-linux)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),powerpc-macos)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),powerpc-wii)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),powerpc-aix)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),sparc-linux)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),sparc-solaris)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),sparc-embedded)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),x86_64-linux)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),x86_64-win64)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
+TARGET_DIRS_PRINTING=1
+TARGET_DIRS_SPRITES=1
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_3D=1
+TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),arm-palmos)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),arm-darwin)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),arm-wince)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),arm-gba)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),arm-nds)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),arm-embedded)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),arm-symbian)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),arm-android)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),avr-embedded)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),armeb-linux)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),armeb-embedded)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),mips-linux)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),mipsel-linux)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
+TARGET_DIRS_PRINTING=1
+TARGET_DIRS_SPRITES=1
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_3D=1
+TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),jvm-java)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),jvm-android)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
ifeq ($(FULL_TARGET),i8086-msdos)
TARGET_DIRS_3D=1
TARGET_DIRS_BACKGROUNDS=1
+TARGET_DIRS_EFFECTS=1
+TARGET_DIRS_EXT_PALETTES=1
TARGET_DIRS_PRINTING=1
TARGET_DIRS_SPRITES=1
endif
@@ -2989,6 +3220,96 @@ Backgrounds:
$(MAKE) -C Backgrounds all
.PHONY: Backgrounds_all Backgrounds_debug Backgrounds_smart Backgrounds_release Backgrounds_units Backgrounds_examples Backgrounds_shared Backgrounds_install Backgrounds_sourceinstall Backgrounds_exampleinstall Backgrounds_distinstall Backgrounds_zipinstall Backgrounds_zipsourceinstall Backgrounds_zipexampleinstall Backgrounds_zipdistinstall Backgrounds_clean Backgrounds_distclean Backgrounds_cleanall Backgrounds_info Backgrounds_makefiles Backgrounds
endif
+ifdef TARGET_DIRS_EFFECTS
+Effects_all:
+ $(MAKE) -C Effects all
+Effects_debug:
+ $(MAKE) -C Effects debug
+Effects_smart:
+ $(MAKE) -C Effects smart
+Effects_release:
+ $(MAKE) -C Effects release
+Effects_units:
+ $(MAKE) -C Effects units
+Effects_examples:
+ $(MAKE) -C Effects examples
+Effects_shared:
+ $(MAKE) -C Effects shared
+Effects_install:
+ $(MAKE) -C Effects install
+Effects_sourceinstall:
+ $(MAKE) -C Effects sourceinstall
+Effects_exampleinstall:
+ $(MAKE) -C Effects exampleinstall
+Effects_distinstall:
+ $(MAKE) -C Effects distinstall
+Effects_zipinstall:
+ $(MAKE) -C Effects zipinstall
+Effects_zipsourceinstall:
+ $(MAKE) -C Effects zipsourceinstall
+Effects_zipexampleinstall:
+ $(MAKE) -C Effects zipexampleinstall
+Effects_zipdistinstall:
+ $(MAKE) -C Effects zipdistinstall
+Effects_clean:
+ $(MAKE) -C Effects clean
+Effects_distclean:
+ $(MAKE) -C Effects distclean
+Effects_cleanall:
+ $(MAKE) -C Effects cleanall
+Effects_info:
+ $(MAKE) -C Effects info
+Effects_makefiles:
+ $(MAKE) -C Effects makefiles
+Effects:
+ $(MAKE) -C Effects all
+.PHONY: Effects_all Effects_debug Effects_smart Effects_release Effects_units Effects_examples Effects_shared Effects_install Effects_sourceinstall Effects_exampleinstall Effects_distinstall Effects_zipinstall Effects_zipsourceinstall Effects_zipexampleinstall Effects_zipdistinstall Effects_clean Effects_distclean Effects_cleanall Effects_info Effects_makefiles Effects
+endif
+ifdef TARGET_DIRS_EXT_PALETTES
+Ext_Palettes_all:
+ $(MAKE) -C Ext_Palettes all
+Ext_Palettes_debug:
+ $(MAKE) -C Ext_Palettes debug
+Ext_Palettes_smart:
+ $(MAKE) -C Ext_Palettes smart
+Ext_Palettes_release:
+ $(MAKE) -C Ext_Palettes release
+Ext_Palettes_units:
+ $(MAKE) -C Ext_Palettes units
+Ext_Palettes_examples:
+ $(MAKE) -C Ext_Palettes examples
+Ext_Palettes_shared:
+ $(MAKE) -C Ext_Palettes shared
+Ext_Palettes_install:
+ $(MAKE) -C Ext_Palettes install
+Ext_Palettes_sourceinstall:
+ $(MAKE) -C Ext_Palettes sourceinstall
+Ext_Palettes_exampleinstall:
+ $(MAKE) -C Ext_Palettes exampleinstall
+Ext_Palettes_distinstall:
+ $(MAKE) -C Ext_Palettes distinstall
+Ext_Palettes_zipinstall:
+ $(MAKE) -C Ext_Palettes zipinstall
+Ext_Palettes_zipsourceinstall:
+ $(MAKE) -C Ext_Palettes zipsourceinstall
+Ext_Palettes_zipexampleinstall:
+ $(MAKE) -C Ext_Palettes zipexampleinstall
+Ext_Palettes_zipdistinstall:
+ $(MAKE) -C Ext_Palettes zipdistinstall
+Ext_Palettes_clean:
+ $(MAKE) -C Ext_Palettes clean
+Ext_Palettes_distclean:
+ $(MAKE) -C Ext_Palettes distclean
+Ext_Palettes_cleanall:
+ $(MAKE) -C Ext_Palettes cleanall
+Ext_Palettes_info:
+ $(MAKE) -C Ext_Palettes info
+Ext_Palettes_makefiles:
+ $(MAKE) -C Ext_Palettes makefiles
+Ext_Palettes:
+ $(MAKE) -C Ext_Palettes all
+.PHONY: Ext_Palettes_all Ext_Palettes_debug Ext_Palettes_smart Ext_Palettes_release Ext_Palettes_units Ext_Palettes_examples Ext_Palettes_shared Ext_Palettes_install Ext_Palettes_sourceinstall Ext_Palettes_exampleinstall Ext_Palettes_distinstall Ext_Palettes_zipinstall Ext_Palettes_zipsourceinstall Ext_Palettes_zipexampleinstall Ext_Palettes_zipdistinstall Ext_Palettes_clean Ext_Palettes_distclean Ext_Palettes_cleanall Ext_Palettes_info Ext_Palettes_makefiles Ext_Palettes
+endif
ifdef TARGET_DIRS_PRINTING
Printing_all:
$(MAKE) -C Printing all
diff --git a/packages/libndsfpc/examples/graphics/Makefile.fpc b/packages/libndsfpc/examples/graphics/Makefile.fpc
index 0462c6516f..c62dbcc400 100644
--- a/packages/libndsfpc/examples/graphics/Makefile.fpc
+++ b/packages/libndsfpc/examples/graphics/Makefile.fpc
@@ -3,7 +3,7 @@
#
[target]
-dirs=3D Backgrounds Printing Sprites
+dirs=3D Backgrounds Effects Ext_Palettes Printing Sprites
[require]
packages=libndsfpc
diff --git a/packages/libndsfpc/examples/graphics/Printing/Makefile b/packages/libndsfpc/examples/graphics/Printing/Makefile
index b0c0e7bb2b..738760769a 100644
--- a/packages/libndsfpc/examples/graphics/Printing/Makefile
+++ b/packages/libndsfpc/examples/graphics/Printing/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=ansi_console console_windows custom_font print_both_screens rotscale_text
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=ansi_console console_windows custom_font print_both_screens rotscale_text
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=ansi_console console_windows custom_font print_both_screens rotscale_text
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=ansi_console console_windows custom_font print_both_screens rotscale_text
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=ansi_console console_windows custom_font print_both_screens rotscale_text
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=ansi_console console_windows custom_font print_both_screens rotscale_text
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=ansi_console console_windows custom_font print_both_screens rotscale_text
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=ansi_console console_windows custom_font print_both_screens rotscale_text
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=ansi_console console_windows custom_font print_both_screens rotscale_text
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2616,6 +2675,13 @@ TARGET_DIRS_CUSTOM_FONT=1
TARGET_DIRS_PRINT_BOTH_SCREENS=1
TARGET_DIRS_ROTSCALE_TEXT=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+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),m68k-linux)
TARGET_DIRS_ANSI_CONSOLE=1
TARGET_DIRS_CONSOLE_WINDOWS=1
@@ -2819,6 +2885,13 @@ TARGET_DIRS_CUSTOM_FONT=1
TARGET_DIRS_PRINT_BOTH_SCREENS=1
TARGET_DIRS_ROTSCALE_TEXT=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+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),arm-linux)
TARGET_DIRS_ANSI_CONSOLE=1
TARGET_DIRS_CONSOLE_WINDOWS=1
@@ -2945,6 +3018,13 @@ TARGET_DIRS_CUSTOM_FONT=1
TARGET_DIRS_PRINT_BOTH_SCREENS=1
TARGET_DIRS_ROTSCALE_TEXT=1
endif
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
TARGET_DIRS_ANSI_CONSOLE=1
TARGET_DIRS_CONSOLE_WINDOWS=1
diff --git a/packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile b/packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
index 258ac1edf7..236f5eef9b 100644
--- a/packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
+++ b/packages/libndsfpc/examples/graphics/Printing/ansi_console/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=AnsiConsole
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=AnsiConsole
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=AnsiConsole
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=AnsiConsole
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=AnsiConsole
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=AnsiConsole
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=AnsiConsole
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=AnsiConsole
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=AnsiConsole
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile b/packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
index 1ba12949d1..e52f8c8d7e 100644
--- a/packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
+++ b/packages/libndsfpc/examples/graphics/Printing/console_windows/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=ConsoleWindows
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=ConsoleWindows
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=ConsoleWindows
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=ConsoleWindows
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=ConsoleWindows
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=ConsoleWindows
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=ConsoleWindows
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=ConsoleWindows
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=ConsoleWindows
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile b/packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
index 8fc69669c6..45e47ab4c1 100644
--- a/packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
+++ b/packages/libndsfpc/examples/graphics/Printing/custom_font/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=CustomFont
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=CustomFont
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=CustomFont
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=CustomFont
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=CustomFont
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=CustomFont
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=CustomFont
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=CustomFont
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=CustomFont
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile b/packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
index a3efc41a87..3868835bb7 100644
--- a/packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
+++ b/packages/libndsfpc/examples/graphics/Printing/print_both_screens/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=printBothScreens
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=printBothScreens
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=printBothScreens
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=printBothScreens
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=printBothScreens
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=printBothScreens
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=printBothScreens
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=printBothScreens
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=printBothScreens
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile b/packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
index 878ad8ae42..7fbc20aa44 100644
--- a/packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
+++ b/packages/libndsfpc/examples/graphics/Printing/rotscale_text/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=RotscaleText
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=RotscaleText
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=RotscaleText
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=RotscaleText
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=RotscaleText
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=RotscaleText
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=RotscaleText
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=RotscaleText
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=RotscaleText
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/Sprites/Makefile b/packages/libndsfpc/examples/graphics/Sprites/Makefile
index fb5b0712d2..4647f61d4f 100644
--- a/packages/libndsfpc/examples/graphics/Sprites/Makefile
+++ b/packages/libndsfpc/examples/graphics/Sprites/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=allocation_test animate_simple bitmap_sprites fire_and_sprites simple sprite_extended_palettes sprite_rotate
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=allocation_test animate_simple bitmap_sprites fire_and_sprites simple sprite_extended_palettes sprite_rotate
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=allocation_test animate_simple bitmap_sprites fire_and_sprites simple sprite_extended_palettes sprite_rotate
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=allocation_test animate_simple bitmap_sprites fire_and_sprites simple sprite_extended_palettes sprite_rotate
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=allocation_test animate_simple bitmap_sprites fire_and_sprites simple sprite_extended_palettes sprite_rotate
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=allocation_test animate_simple bitmap_sprites fire_and_sprites simple sprite_extended_palettes sprite_rotate
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=allocation_test animate_simple bitmap_sprites fire_and_sprites simple sprite_extended_palettes sprite_rotate
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=allocation_test animate_simple bitmap_sprites fire_and_sprites simple sprite_extended_palettes sprite_rotate
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=allocation_test animate_simple bitmap_sprites fire_and_sprites simple sprite_extended_palettes sprite_rotate
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2662,6 +2721,15 @@ TARGET_DIRS_SIMPLE=1
TARGET_DIRS_SPRITE_EXTENDED_PALETTES=1
TARGET_DIRS_SPRITE_ROTATE=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+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),m68k-linux)
TARGET_DIRS_ALLOCATION_TEST=1
TARGET_DIRS_ANIMATE_SIMPLE=1
@@ -2923,6 +2991,15 @@ TARGET_DIRS_SIMPLE=1
TARGET_DIRS_SPRITE_EXTENDED_PALETTES=1
TARGET_DIRS_SPRITE_ROTATE=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+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),arm-linux)
TARGET_DIRS_ALLOCATION_TEST=1
TARGET_DIRS_ANIMATE_SIMPLE=1
@@ -3085,6 +3162,15 @@ TARGET_DIRS_SIMPLE=1
TARGET_DIRS_SPRITE_EXTENDED_PALETTES=1
TARGET_DIRS_SPRITE_ROTATE=1
endif
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
TARGET_DIRS_ALLOCATION_TEST=1
TARGET_DIRS_ANIMATE_SIMPLE=1
diff --git a/packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile b/packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
index 562d5d9437..b73817a88b 100644
--- a/packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
+++ b/packages/libndsfpc/examples/graphics/Sprites/allocation_test/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=AllocationTest
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=AllocationTest
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=AllocationTest
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=AllocationTest
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=AllocationTest
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=AllocationTest
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=AllocationTest
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=AllocationTest
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=AllocationTest
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm -O2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm -O2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm -O2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile b/packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
index 2968b3f708..86af121c85 100644
--- a/packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
+++ b/packages/libndsfpc/examples/graphics/Sprites/animate_simple/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=AnimateSimple
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=AnimateSimple
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=AnimateSimple
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=AnimateSimple
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=AnimateSimple
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=AnimateSimple
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=AnimateSimple
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=AnimateSimple
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=AnimateSimple
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm -O2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm -O2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm -O2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile b/packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
index 0215dce7d8..c1b7d51e9f 100644
--- a/packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
+++ b/packages/libndsfpc/examples/graphics/Sprites/bitmap_sprites/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=BitmapSprites
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=BitmapSprites
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=BitmapSprites
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=BitmapSprites
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=BitmapSprites
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=BitmapSprites
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=BitmapSprites
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=BitmapSprites
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=BitmapSprites
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm -O2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm -O2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm -O2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile b/packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
index 1f94585ccf..71eef6a822 100644
--- a/packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
+++ b/packages/libndsfpc/examples/graphics/Sprites/fire_and_sprites/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=FireAndSprites
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=FireAndSprites
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=FireAndSprites
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=FireAndSprites
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=FireAndSprites
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=FireAndSprites
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=FireAndSprites
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=FireAndSprites
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=FireAndSprites
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm -O2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm -O2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm -O2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm -O2
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/Sprites/simple/Makefile b/packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
index cdfcf797b8..d4e74b8928 100644
--- a/packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
+++ b/packages/libndsfpc/examples/graphics/Sprites/simple/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=Simple
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=Simple
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=Simple
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=Simple
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=Simple
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=Simple
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=Simple
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=Simple
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=Simple
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile b/packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
index eb0786c598..24dda471d5 100644
--- a/packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
+++ b/packages/libndsfpc/examples/graphics/Sprites/sprite_extended_palettes/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=SpriteExtendedPalettes
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=SpriteExtendedPalettes
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=SpriteExtendedPalettes
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=SpriteExtendedPalettes
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=SpriteExtendedPalettes
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=SpriteExtendedPalettes
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=SpriteExtendedPalettes
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=SpriteExtendedPalettes
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=SpriteExtendedPalettes
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile b/packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
index e384287581..cf5899e0f2 100644
--- a/packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
+++ b/packages/libndsfpc/examples/graphics/Sprites/sprite_rotate/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=SpriteRotate
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=SpriteRotate
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=SpriteRotate
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=SpriteRotate
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=SpriteRotate
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=SpriteRotate
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=SpriteRotate
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=SpriteRotate
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=SpriteRotate
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1062,6 +1095,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1149,6 +1185,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1203,6 +1242,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/hello_world/Makefile b/packages/libndsfpc/examples/hello_world/Makefile
index 05d175b548..92e9921095 100644
--- a/packages/libndsfpc/examples/hello_world/Makefile
+++ b/packages/libndsfpc/examples/hello_world/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -322,8 +328,11 @@ FPCFPMAKE=$(FPC)
endif
endif
BUILD = build
+INC = inc
AUDIO_FILES = $(foreach dir,$(notdir $(wildcard audio/*.*)),$(CURDIR)/audio/$(dir))
GFX_FILES = $(foreach dir,gfx,$(notdir $(wildcard $(dir)/*.png)))
+BIN_FILES = $(foreach dir,data,$(notdir $(wildcard $(dir)/*)))
+NITRO_FILES = $(foreach dir,nitrofiles,$(notdir $(wildcard $(dir)/*)))
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_PROGRAMS+=helloWorld
endif
@@ -393,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=helloWorld
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=helloWorld
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=helloWorld
endif
@@ -480,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=helloWorld
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=helloWorld
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=helloWorld
endif
@@ -534,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=helloWorld
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=helloWorld
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=helloWorld
endif
@@ -615,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -702,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -756,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -769,228 +796,468 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override CLEAN_UNITS+=*
endif
ifeq ($(FULL_TARGET),i386-linux)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-win32)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-os2)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-beos)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-netware)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-emx)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-wince)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i386-android)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),arm-linux)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),arm-wince)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),arm-gba)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),arm-nds)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),arm-android)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),mips-linux)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),jvm-java)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),jvm-android)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1233,6 +1500,12 @@ 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=
@@ -1278,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1837,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2098,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2260,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2675,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2705,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
@@ -3091,6 +3402,24 @@ GRIT:=$(firstword $(GRIT))
endif
endif
export GRIT
+ifndef RMDIR
+RMDIR:=$(strip $(wildcard $(addsuffix /rmdir$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(RMDIR),)
+RMDIR= __missing_command_RMDIR
+else
+RMDIR:=$(firstword $(RMDIR))
+endif
+endif
+export RMDIR
+ifndef NDSTOOL
+NDSTOOL:=$(strip $(wildcard $(addsuffix /ndstool$(SRCEXEEXT),$(SEARCHPATH))))
+ifeq ($(NDSTOOL),)
+NDSTOOL= __missing_command_NDSTOOL
+else
+NDSTOOL:=$(firstword $(NDSTOOL))
+endif
+endif
+export NDSTOOL
debug: fpc_debug
smart: fpc_smart
release: fpc_release
@@ -3105,25 +3434,53 @@ zipinstall:
zipsourceinstall:
zipexampleinstall:
zipdistinstall:
-clean: fpc_clean
distclean: fpc_distclean
cleanall: fpc_cleanall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
+.PHONY: debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall distclean cleanall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
.NOTPARALLEL:
-all: direc fpc_all
-direc:
+clean: dir_delete fpc_clean fpc_cleanall
+all: dir_make $(BIN_FILES) $(GFX_FILES) fpc_all
+dir_delete:
+ @$(DELTREE) $(CURDIR)/$(BUILD)
+ @$(DELTREE) $(CURDIR)/$(INC)
+dir_make:
ifneq ($(BUILD), $(CURDIR))
- $(MKDIR) $(BUILD)
+ @$(MKDIR) $(BUILD)
+endif
+ifneq ($(INC), $(CURDIR))
+ @$(MKDIR) $(INC)
endif
soundbank.bin.o : $(AUDIO_FILES)
@$(MMUTIL) $^ -d -o$(BUILD)/soundbank.bin -h$(BUILD)/soundbank.h
$(BIN2S) $(BUILD)/soundbank.bin > $(BUILD)/soundbank.bin.s
$(AS) -o $(BUILD)/soundbank.bin.o $(BUILD)/soundbank.bin.s
-$(GFX_FILES).o:
- $(GRIT) gfx/$(GFX_FILES) -fts -ff gfx/$(basename $(GFX_FILES)).grit -o$(BUILD)/$(GFX_FILES)
- $(AS) -o $(BUILD)/$(basename $(GFX_FILES)).o $(BUILD)/$(basename $(GFX_FILES)).s
+$(GFX_FILES): $(wildcard %.bmp) $(wildcard %.png)
+ @echo 'Converting $(@) file to asm...'
+ $(GRIT) gfx/$(@) -fts -ff gfx/$(basename $(@)).grit -o$(BUILD)/$(@)
+ @echo 'Assembling $(@).s file...'
+ $(AS) -o $(BUILD)/$(basename $(@)).o $(BUILD)/$(basename $(@)).s
+ @echo 'Done!'
+$(BIN_FILES): $(wildcard %.*)
+ @echo 'Converting $(@) file to asm...'
+ @$(BIN2S) data/$(@) > $(BUILD)/$(@).s
+ @echo 'Creating $(@).inc include file...'
+ @echo "var" > `(echo "inc/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"_end: array [0..0] of cuint8; cvar; external;" >> `(echo "inc/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`": array [0..0] of cuint8; cvar; external;" >> `(echo "inc/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`_size": cuint32; cvar; external;" >> `(echo "inc/"$(@F) | tr . .)`.inc
+ @echo 'Assembling $(@).s file...'
+ @$(AS) -o $(BUILD)/$(@).o $(BUILD)/$(@).s
+ @echo 'Done!'
+data.gbfs.o:
+ @cd GBFS && gbfs ../$(BUILD)/data.gbfs $(GBFS_FILES)
+ $(BIN2S) $(BUILD)/data.gbfs > $(BUILD)/data.gbfs.s
+ $(AS) -o $(BUILD)/data.gbfs.o $(BUILD)/data.gbfs.s
+nitro:
+ @ndstool -c $(TARGET_PROGRAMS).nds -9 $(TARGET_PROGRAMS).nef.bin -d $(CURDIR)/filesystem
+patch:
+ @dlditool r4tf.dldi $(TARGET_PROGRAMS).nds
diff --git a/packages/libndsfpc/examples/hello_world/Makefile.fpc b/packages/libndsfpc/examples/hello_world/Makefile.fpc
index e818572699..56ffb8b0a0 100644
--- a/packages/libndsfpc/examples/hello_world/Makefile.fpc
+++ b/packages/libndsfpc/examples/hello_world/Makefile.fpc
@@ -8,39 +8,105 @@ programs=helloWorld
[require]
packages=libndsfpc
-tools=bin2s mmutil grit
+tools=bin2s mmutil grit rmdir ndstool
nortl=y
[install]
fpcpackage=y
+[compiler]
+options=-Xm
+
[default]
cpu=arm
target=nds
fpcdir=../../../..
[clean]
-files=*.elf *.o *.s *.nds *.nef *.h *.bin \
- $(BUILD)/*
+files=*.elf *.o *.s *.nds *.nef *.h *.bin *.map \
+ $(BUILD)/* \
+ $(INC)/*
units=*
[prerules]
BUILD = build
+INC = inc
AUDIO_FILES = $(foreach dir,$(notdir $(wildcard audio/*.*)),$(CURDIR)/audio/$(dir))
GFX_FILES = $(foreach dir,gfx,$(notdir $(wildcard $(dir)/*.png)))
+BIN_FILES = $(foreach dir,data,$(notdir $(wildcard $(dir)/*)))
+NITRO_FILES = $(foreach dir,nitrofiles,$(notdir $(wildcard $(dir)/*)))
+
[rules]
.NOTPARALLEL:
-all: direc fpc_all
-direc:
+clean: dir_delete fpc_clean fpc_cleanall
+all: dir_make $(BIN_FILES) $(GFX_FILES) fpc_all
+
+#
+# Delete temp directories
+#
+dir_delete:
+ @$(DELTREE) $(CURDIR)/$(BUILD)
+ @$(DELTREE) $(CURDIR)/$(INC)
+
+#
+# Create temp directories
+#
+dir_make:
ifneq ($(BUILD), $(CURDIR))
- $(MKDIR) $(BUILD)
+ @$(MKDIR) $(BUILD)
+endif
+ifneq ($(INC), $(CURDIR))
+ @$(MKDIR) $(INC)
endif
+
+
+#
+# Audio files processing rule
+#
soundbank.bin.o : $(AUDIO_FILES)
@$(MMUTIL) $^ -d -o$(BUILD)/soundbank.bin -h$(BUILD)/soundbank.h
$(BIN2S) $(BUILD)/soundbank.bin > $(BUILD)/soundbank.bin.s
$(AS) -o $(BUILD)/soundbank.bin.o $(BUILD)/soundbank.bin.s
-$(GFX_FILES).o:
- $(GRIT) gfx/$(GFX_FILES) -fts -ff gfx/$(basename $(GFX_FILES)).grit -o$(BUILD)/$(GFX_FILES)
- $(AS) -o $(BUILD)/$(basename $(GFX_FILES)).o $(BUILD)/$(basename $(GFX_FILES)).s
+#
+# Png files processing rule
+#
+$(GFX_FILES): $(wildcard %.bmp) $(wildcard %.png)
+ @echo 'Converting $(@) file to asm...'
+ $(GRIT) gfx/$(@) -fts -ff gfx/$(basename $(@)).grit -o$(BUILD)/$(@)
+ @echo 'Assembling $(@).s file...'
+ $(AS) -o $(BUILD)/$(basename $(@)).o $(BUILD)/$(basename $(@)).s
+ @echo 'Done!'
+
+#
+# Binary files processing rule
+#
+$(BIN_FILES): $(wildcard %.*)
+ @echo 'Converting $(@) file to asm...'
+ @$(BIN2S) data/$(@) > $(BUILD)/$(@).s
+ @echo 'Creating $(@).inc include file...'
+ @echo "var" > `(echo "inc/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"_end: array [0..0] of cuint8; cvar; external;" >> `(echo "inc/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`": array [0..0] of cuint8; cvar; external;" >> `(echo "inc/"$(@F) | tr . .)`.inc
+ @echo " " `(echo $(@F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`_size": cuint32; cvar; external;" >> `(echo "inc/"$(@F) | tr . .)`.inc
+ @echo 'Assembling $(@).s file...'
+ @$(AS) -o $(BUILD)/$(@).o $(BUILD)/$(@).s
+ @echo 'Done!'
+
+#
+# GBFS files processing rule
+#
+data.gbfs.o:
+ @cd GBFS && gbfs ../$(BUILD)/data.gbfs $(GBFS_FILES)
+ $(BIN2S) $(BUILD)/data.gbfs > $(BUILD)/data.gbfs.s
+ $(AS) -o $(BUILD)/data.gbfs.o $(BUILD)/data.gbfs.s
+
+#
+# Binary files processing rule
+#
+nitro:
+ @ndstool -c $(TARGET_PROGRAMS).nds -9 $(TARGET_PROGRAMS).nef.bin -d $(CURDIR)/filesystem
+
+patch:
+ @dlditool r4tf.dldi $(TARGET_PROGRAMS).nds \ No newline at end of file
diff --git a/packages/libndsfpc/examples/input/Makefile b/packages/libndsfpc/examples/input/Makefile
index f667a99aa2..4630a31341 100644
--- a/packages/libndsfpc/examples/input/Makefile
+++ b/packages/libndsfpc/examples/input/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=keyboard Touch_Pad
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=keyboard Touch_Pad
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=keyboard Touch_Pad
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=keyboard Touch_Pad
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=keyboard Touch_Pad
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=keyboard Touch_Pad
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=keyboard Touch_Pad
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=keyboard Touch_Pad
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=keyboard Touch_Pad
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2547,6 +2606,10 @@ ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_KEYBOARD=1
TARGET_DIRS_TOUCH_PAD=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_KEYBOARD=1
+TARGET_DIRS_TOUCH_PAD=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_KEYBOARD=1
TARGET_DIRS_TOUCH_PAD=1
@@ -2663,6 +2726,10 @@ ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_KEYBOARD=1
TARGET_DIRS_TOUCH_PAD=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_KEYBOARD=1
+TARGET_DIRS_TOUCH_PAD=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_KEYBOARD=1
TARGET_DIRS_TOUCH_PAD=1
@@ -2735,6 +2802,10 @@ ifeq ($(FULL_TARGET),mipsel-linux)
TARGET_DIRS_KEYBOARD=1
TARGET_DIRS_TOUCH_PAD=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_KEYBOARD=1
+TARGET_DIRS_TOUCH_PAD=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_KEYBOARD=1
TARGET_DIRS_TOUCH_PAD=1
diff --git a/packages/libndsfpc/examples/input/Touch_Pad/Makefile b/packages/libndsfpc/examples/input/Touch_Pad/Makefile
index 1e4263b4a7..ec791d55e7 100644
--- a/packages/libndsfpc/examples/input/Touch_Pad/Makefile
+++ b/packages/libndsfpc/examples/input/Touch_Pad/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=touch_area touch_look touch_test
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=touch_area touch_look touch_test
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=touch_area touch_look touch_test
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=touch_area touch_look touch_test
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=touch_area touch_look touch_test
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=touch_area touch_look touch_test
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=touch_area touch_look touch_test
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=touch_area touch_look touch_test
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=touch_area touch_look touch_test
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2570,6 +2629,11 @@ TARGET_DIRS_TOUCH_AREA=1
TARGET_DIRS_TOUCH_LOOK=1
TARGET_DIRS_TOUCH_TEST=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_TOUCH_AREA=1
+TARGET_DIRS_TOUCH_LOOK=1
+TARGET_DIRS_TOUCH_TEST=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_TOUCH_AREA=1
TARGET_DIRS_TOUCH_LOOK=1
@@ -2715,6 +2779,11 @@ TARGET_DIRS_TOUCH_AREA=1
TARGET_DIRS_TOUCH_LOOK=1
TARGET_DIRS_TOUCH_TEST=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_TOUCH_AREA=1
+TARGET_DIRS_TOUCH_LOOK=1
+TARGET_DIRS_TOUCH_TEST=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_TOUCH_AREA=1
TARGET_DIRS_TOUCH_LOOK=1
@@ -2805,6 +2874,11 @@ TARGET_DIRS_TOUCH_AREA=1
TARGET_DIRS_TOUCH_LOOK=1
TARGET_DIRS_TOUCH_TEST=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_TOUCH_AREA=1
+TARGET_DIRS_TOUCH_LOOK=1
+TARGET_DIRS_TOUCH_TEST=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_TOUCH_AREA=1
TARGET_DIRS_TOUCH_LOOK=1
diff --git a/packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile b/packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
index 17d95f82e2..99f020343c 100644
--- a/packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
+++ b/packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -393,6 +399,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=touchArea
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=touchArea
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=touchArea
endif
@@ -480,6 +489,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=touchArea
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=touchArea
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=touchArea
endif
@@ -534,6 +546,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=touchArea
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=touchArea
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=touchArea
endif
@@ -615,6 +630,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -702,6 +720,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -756,6 +777,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -837,6 +861,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -924,6 +951,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -978,6 +1008,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -991,6 +1024,237 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1233,6 +1497,12 @@ 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=
@@ -1278,6 +1548,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1837,6 +2112,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2098,6 +2382,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2260,6 +2553,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2675,7 +2977,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2705,17 +3007,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile.fpc b/packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile.fpc
index f841278745..1f15cbe5ee 100644
--- a/packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile.fpc
+++ b/packages/libndsfpc/examples/input/Touch_Pad/touch_area/Makefile.fpc
@@ -14,6 +14,9 @@ nortl=y
[install]
fpcpackage=y
+[compiler]
+options=-Xm
+
[default]
cpu=arm
target=nds
diff --git a/packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile b/packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
index 44127e286e..5bb43fa3ce 100644
--- a/packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
+++ b/packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=touchLook
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=touchLook
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=touchLook
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=touchLook
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=touchLook
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=touchLook
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=touchLook
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=touchLook
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=touchLook
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -994,226 +1027,235 @@ override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin *.map $(BUILD)/* $(INC
endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-android)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-android)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mips-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),jvm-java)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),jvm-android)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override COMPILER_OPTIONS+=-g -Xm
+override COMPILER_OPTIONS+=-Xm
endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile.fpc b/packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile.fpc
index 8a285c6baa..9008fb3f85 100644
--- a/packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile.fpc
+++ b/packages/libndsfpc/examples/input/Touch_Pad/touch_look/Makefile.fpc
@@ -20,8 +20,7 @@ target=nds
fpcdir=../../../../../..
[compiler]
-options=-g -Xm
-#-d__THUMB__
+options=-Xm
[clean]
files=*.elf *.o *.s *.nds *.nef *.h *.bin *.map \
diff --git a/packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile b/packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
index a3380af302..42a654d1b3 100644
--- a/packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
+++ b/packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -395,6 +401,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=touchTest
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=touchTest
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=touchTest
endif
@@ -482,6 +491,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=touchTest
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=touchTest
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=touchTest
endif
@@ -536,6 +548,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=touchTest
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=touchTest
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=touchTest
endif
@@ -617,6 +632,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -704,6 +722,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -758,6 +779,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -839,6 +863,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/* $(INC)/*
endif
@@ -926,6 +953,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/* $(INC)/*
endif
@@ -980,6 +1010,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/* $(INC)/*
endif
@@ -994,226 +1027,235 @@ override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/* $(INC)/*
endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i386-android)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),arm-android)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mips-linux)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),jvm-java)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),jvm-android)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override COMPILER_OPTIONS+=-g -Xm -d__THUMB__
+override COMPILER_OPTIONS+=-Xm
endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1457,6 +1499,12 @@ 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=
@@ -1502,6 +1550,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2061,6 +2114,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2322,6 +2384,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2484,6 +2555,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2899,7 +2979,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2929,17 +3009,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile.fpc b/packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile.fpc
index 93ac396d00..87d6273c44 100644
--- a/packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile.fpc
+++ b/packages/libndsfpc/examples/input/Touch_Pad/touch_test/Makefile.fpc
@@ -15,8 +15,7 @@ nortl=y
fpcpackage=y
[compiler]
-options=-g -Xm -d__THUMB__
-
+options=-Xm
[default]
cpu=arm
diff --git a/packages/libndsfpc/examples/input/keyboard/Makefile b/packages/libndsfpc/examples/input/keyboard/Makefile
index 98ae55dc7b..41649c0e58 100644
--- a/packages/libndsfpc/examples/input/keyboard/Makefile
+++ b/packages/libndsfpc/examples/input/keyboard/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=keyboard_async keyboard_stdin
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=keyboard_async keyboard_stdin
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=keyboard_async keyboard_stdin
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=keyboard_async keyboard_stdin
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=keyboard_async keyboard_stdin
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=keyboard_async keyboard_stdin
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=keyboard_async keyboard_stdin
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=keyboard_async keyboard_stdin
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=keyboard_async keyboard_stdin
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2547,6 +2606,10 @@ ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_KEYBOARD_ASYNC=1
TARGET_DIRS_KEYBOARD_STDIN=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_KEYBOARD_ASYNC=1
+TARGET_DIRS_KEYBOARD_STDIN=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_KEYBOARD_ASYNC=1
TARGET_DIRS_KEYBOARD_STDIN=1
@@ -2663,6 +2726,10 @@ ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_KEYBOARD_ASYNC=1
TARGET_DIRS_KEYBOARD_STDIN=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_KEYBOARD_ASYNC=1
+TARGET_DIRS_KEYBOARD_STDIN=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_KEYBOARD_ASYNC=1
TARGET_DIRS_KEYBOARD_STDIN=1
@@ -2735,6 +2802,10 @@ ifeq ($(FULL_TARGET),mipsel-linux)
TARGET_DIRS_KEYBOARD_ASYNC=1
TARGET_DIRS_KEYBOARD_STDIN=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_KEYBOARD_ASYNC=1
+TARGET_DIRS_KEYBOARD_STDIN=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_KEYBOARD_ASYNC=1
TARGET_DIRS_KEYBOARD_STDIN=1
diff --git a/packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile b/packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
index d4399a60a7..4a045a1a41 100644
--- a/packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
+++ b/packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -393,6 +399,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=keyboardAsync
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=keyboardAsync
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=keyboardAsync
endif
@@ -480,6 +489,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=keyboardAsync
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=keyboardAsync
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=keyboardAsync
endif
@@ -534,6 +546,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=keyboardAsync
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=keyboardAsync
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=keyboardAsync
endif
@@ -615,6 +630,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -702,6 +720,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -756,6 +777,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -837,6 +861,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -924,6 +951,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -978,6 +1008,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -991,6 +1024,237 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1233,6 +1497,12 @@ 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=
@@ -1278,6 +1548,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1837,6 +2112,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2098,6 +2382,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2260,6 +2553,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2675,7 +2977,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2705,17 +3007,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile.fpc b/packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile.fpc
index c834a5c4f5..c8e0e574d8 100644
--- a/packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile.fpc
+++ b/packages/libndsfpc/examples/input/keyboard/keyboard_async/Makefile.fpc
@@ -14,6 +14,9 @@ nortl=y
[install]
fpcpackage=y
+[compiler]
+options=-Xm
+
[default]
cpu=arm
target=nds
diff --git a/packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile b/packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
index 375700d9b7..ca9e14c3f8 100644
--- a/packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
+++ b/packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -393,6 +399,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=keyboardStdin
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=keyboardStdin
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=keyboardStdin
endif
@@ -480,6 +489,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=keyboardStdin
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=keyboardStdin
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=keyboardStdin
endif
@@ -534,6 +546,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=keyboardStdin
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=keyboardStdin
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=keyboardStdin
endif
@@ -615,6 +630,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -702,6 +720,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -756,6 +777,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -837,6 +861,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -924,6 +951,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -978,6 +1008,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -991,6 +1024,237 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1233,6 +1497,12 @@ 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=
@@ -1278,6 +1548,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1837,6 +2112,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2098,6 +2382,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2260,6 +2553,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2675,7 +2977,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2705,17 +3007,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile.fpc b/packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile.fpc
index 78d24fd7d7..40d5849b95 100644
--- a/packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile.fpc
+++ b/packages/libndsfpc/examples/input/keyboard/keyboard_stdin/Makefile.fpc
@@ -14,6 +14,9 @@ nortl=y
[install]
fpcpackage=y
+[compiler]
+options=-Xm
+
[default]
cpu=arm
target=nds
diff --git a/packages/libndsfpc/examples/time/Makefile b/packages/libndsfpc/examples/time/Makefile
index 161a561b67..20a4f5adfa 100644
--- a/packages/libndsfpc/examples/time/Makefile
+++ b/packages/libndsfpc/examples/time/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=RealTimeClock timercallback stopwatch
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=RealTimeClock timercallback stopwatch
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=RealTimeClock timercallback stopwatch
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=RealTimeClock timercallback stopwatch
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=RealTimeClock timercallback stopwatch
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=RealTimeClock timercallback stopwatch
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=RealTimeClock timercallback stopwatch
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=RealTimeClock timercallback stopwatch
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=RealTimeClock timercallback stopwatch
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2570,6 +2629,11 @@ TARGET_DIRS_REALTIMECLOCK=1
TARGET_DIRS_TIMERCALLBACK=1
TARGET_DIRS_STOPWATCH=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_REALTIMECLOCK=1
+TARGET_DIRS_TIMERCALLBACK=1
+TARGET_DIRS_STOPWATCH=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_REALTIMECLOCK=1
TARGET_DIRS_TIMERCALLBACK=1
@@ -2715,6 +2779,11 @@ TARGET_DIRS_REALTIMECLOCK=1
TARGET_DIRS_TIMERCALLBACK=1
TARGET_DIRS_STOPWATCH=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_REALTIMECLOCK=1
+TARGET_DIRS_TIMERCALLBACK=1
+TARGET_DIRS_STOPWATCH=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_REALTIMECLOCK=1
TARGET_DIRS_TIMERCALLBACK=1
@@ -2805,6 +2874,11 @@ TARGET_DIRS_REALTIMECLOCK=1
TARGET_DIRS_TIMERCALLBACK=1
TARGET_DIRS_STOPWATCH=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_REALTIMECLOCK=1
+TARGET_DIRS_TIMERCALLBACK=1
+TARGET_DIRS_STOPWATCH=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_REALTIMECLOCK=1
TARGET_DIRS_TIMERCALLBACK=1
diff --git a/packages/libndsfpc/examples/time/RealTimeClock/Makefile b/packages/libndsfpc/examples/time/RealTimeClock/Makefile
index 4051257f0f..2e71376cca 100644
--- a/packages/libndsfpc/examples/time/RealTimeClock/Makefile
+++ b/packages/libndsfpc/examples/time/RealTimeClock/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -393,6 +399,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=RealTimeClock
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=RealTimeClock
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=RealTimeClock
endif
@@ -480,6 +489,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=RealTimeClock
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=RealTimeClock
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=RealTimeClock
endif
@@ -534,6 +546,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=RealTimeClock
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=RealTimeClock
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=RealTimeClock
endif
@@ -615,6 +630,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -702,6 +720,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -756,6 +777,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -837,6 +861,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -924,6 +951,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -978,6 +1008,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -991,6 +1024,237 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1233,6 +1497,12 @@ 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=
@@ -1278,6 +1548,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1837,6 +2112,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2098,6 +2382,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2260,6 +2553,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2675,7 +2977,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2705,17 +3007,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/time/RealTimeClock/Makefile.fpc b/packages/libndsfpc/examples/time/RealTimeClock/Makefile.fpc
index bf38487de9..a1c639ccd1 100644
--- a/packages/libndsfpc/examples/time/RealTimeClock/Makefile.fpc
+++ b/packages/libndsfpc/examples/time/RealTimeClock/Makefile.fpc
@@ -14,6 +14,9 @@ nortl=y
[install]
fpcpackage=y
+[compiler]
+options=-Xm
+
[default]
cpu=arm
target=nds
diff --git a/packages/libndsfpc/examples/time/stopwatch/Makefile b/packages/libndsfpc/examples/time/stopwatch/Makefile
index 5ea3333bef..cd4314fd66 100644
--- a/packages/libndsfpc/examples/time/stopwatch/Makefile
+++ b/packages/libndsfpc/examples/time/stopwatch/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -393,6 +399,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=stopwatch
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=stopwatch
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=stopwatch
endif
@@ -480,6 +489,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=stopwatch
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=stopwatch
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=stopwatch
endif
@@ -534,6 +546,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=stopwatch
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=stopwatch
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=stopwatch
endif
@@ -615,6 +630,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -702,6 +720,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -756,6 +777,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -837,6 +861,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -924,6 +951,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -978,6 +1008,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -991,6 +1024,237 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1233,6 +1497,12 @@ 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=
@@ -1278,6 +1548,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1837,6 +2112,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2098,6 +2382,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2260,6 +2553,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2675,7 +2977,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2705,17 +3007,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/time/stopwatch/Makefile.fpc b/packages/libndsfpc/examples/time/stopwatch/Makefile.fpc
index 82c134bdf8..77333a28c1 100644
--- a/packages/libndsfpc/examples/time/stopwatch/Makefile.fpc
+++ b/packages/libndsfpc/examples/time/stopwatch/Makefile.fpc
@@ -14,6 +14,9 @@ nortl=y
[install]
fpcpackage=y
+[compiler]
+options=-Xm
+
[default]
cpu=arm
target=nds
diff --git a/packages/libndsfpc/examples/time/timercallback/Makefile b/packages/libndsfpc/examples/time/timercallback/Makefile
index 44c6c1b175..fe54582bb3 100644
--- a/packages/libndsfpc/examples/time/timercallback/Makefile
+++ b/packages/libndsfpc/examples/time/timercallback/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -393,6 +399,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=timercallback
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=timercallback
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=timercallback
endif
@@ -480,6 +489,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=timercallback
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=timercallback
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=timercallback
endif
@@ -534,6 +546,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=timercallback
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=timercallback
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=timercallback
endif
@@ -615,6 +630,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -702,6 +720,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -756,6 +777,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -837,6 +861,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -924,6 +951,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -978,6 +1008,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
@@ -991,6 +1024,237 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override CLEAN_FILES+=*.elf *.o *.s *.nds *.nef *.h *.bin $(BUILD)/*
endif
override INSTALL_FPCPACKAGE=y
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_OPTIONS+=-Xm
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_OPTIONS+=-Xm
+endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
endif
@@ -1233,6 +1497,12 @@ 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=
@@ -1278,6 +1548,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1837,6 +2112,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2098,6 +2382,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2260,6 +2553,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBNDSFPC=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
+REQUIRE_PACKAGES_LIBNDSFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2675,7 +2977,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2705,17 +3007,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libndsfpc/examples/time/timercallback/Makefile.fpc b/packages/libndsfpc/examples/time/timercallback/Makefile.fpc
index 0c53068f21..ae49d35107 100644
--- a/packages/libndsfpc/examples/time/timercallback/Makefile.fpc
+++ b/packages/libndsfpc/examples/time/timercallback/Makefile.fpc
@@ -14,6 +14,9 @@ nortl=y
[install]
fpcpackage=y
+[compiler]
+options=-Xm
+
[default]
cpu=arm
target=nds
diff --git a/packages/libndsfpc/fpmake.pp b/packages/libndsfpc/fpmake.pp
index acc0e85a43..e7d09d62ad 100644
--- a/packages/libndsfpc/fpmake.pp
+++ b/packages/libndsfpc/fpmake.pp
@@ -18,7 +18,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Library: libnds, dswifi, maxmod and gl2d from devkitARM; headers: Francesco Lombardi';
P.License := 'LGPL';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/libndsfpc/src/dswifi/inc/dswifi9.inc b/packages/libndsfpc/src/dswifi/inc/dswifi9.inc
index a9c4b0b6d8..0ea15e5b9f 100644
--- a/packages/libndsfpc/src/dswifi/inc/dswifi9.inc
+++ b/packages/libndsfpc/src/dswifi/inc/dswifi9.inc
@@ -97,13 +97,15 @@ type
WSTAT_RXDATABYTES,
WSTAT_TXPACKETS,
WSTAT_TXBYTES,
- WSTAT_TXDATABYTES,
+ WSTAT_TXDATABYTES,
+ WSTAT_ARM7_UPDATES,
+ WSTAT_DEBUG,
- WSTAT_HW_1B0,WSTAT_HW_1B1,WSTAT_HW_1B2,WSTAT_HW_1B3,WSTAT_HW_1B4,WSTAT_HW_1B5,WSTAT_HW_1B6,WSTAT_HW_1B7,
- WSTAT_HW_1B8,WSTAT_HW_1B9,WSTAT_HW_1BA,WSTAT_HW_1BB,WSTAT_HW_1BC,WSTAT_HW_1BD,WSTAT_HW_1BE,WSTAT_HW_1BF,
+ WSTAT_HW_1B0,WSTAT_HW_1B1,WSTAT_HW_1B2,WSTAT_HW_1B3,WSTAT_HW_1B4,WSTAT_HW_1B5,WSTAT_HW_1B6,WSTAT_HW_1B7,
+ WSTAT_HW_1B8,WSTAT_HW_1B9,WSTAT_HW_1BA,WSTAT_HW_1BB,WSTAT_HW_1BC,WSTAT_HW_1BD,WSTAT_HW_1BE,WSTAT_HW_1BF,
WSTAT_HW_1C0,WSTAT_HW_1C1,WSTAT_HW_1C4,WSTAT_HW_1C5,
- WSTAT_HW_1D0,WSTAT_HW_1D1,WSTAT_HW_1D2,WSTAT_HW_1D3,WSTAT_HW_1D4,WSTAT_HW_1D5,WSTAT_HW_1D6,WSTAT_HW_1D7,
- WSTAT_HW_1D8,WSTAT_HW_1D9,WSTAT_HW_1DA,WSTAT_HW_1DB,WSTAT_HW_1DC,WSTAT_HW_1DD,WSTAT_HW_1DE,WSTAT_HW_1DF,
+ WSTAT_HW_1D0,WSTAT_HW_1D1,WSTAT_HW_1D2,WSTAT_HW_1D3,WSTAT_HW_1D4,WSTAT_HW_1D5,WSTAT_HW_1D6,WSTAT_HW_1D7,
+ WSTAT_HW_1D8,WSTAT_HW_1D9,WSTAT_HW_1DA,WSTAT_HW_1DB,WSTAT_HW_1DC,WSTAT_HW_1DD,WSTAT_HW_1DE,WSTAT_HW_1DF,
NUM_WIFI_STATS
);
diff --git a/packages/libndsfpc/src/dswifi/inc/dswifi_version.inc b/packages/libndsfpc/src/dswifi/inc/dswifi_version.inc
index 1c054c0f0c..3e465d885b 100644
--- a/packages/libndsfpc/src/dswifi/inc/dswifi_version.inc
+++ b/packages/libndsfpc/src/dswifi/inc/dswifi_version.inc
@@ -2,6 +2,6 @@
const
DSWIFI_MAJOR = 0;
DSWIFI_MINOR = 3;
- DSWIFI_REVISION = 12;
- DSWIFI_VERSION = '0.3.12';
+ DSWIFI_REVISION = 16;
+ DSWIFI_VERSION = '0.3.16';
{$endif NDS_INTERFACE}
diff --git a/packages/libndsfpc/src/fat/fat.inc b/packages/libndsfpc/src/fat/fat.inc
index 434756719e..cd65ecb073 100644
--- a/packages/libndsfpc/src/fat/fat.inc
+++ b/packages/libndsfpc/src/fat/fat.inc
@@ -62,5 +62,7 @@ const
function FAT_getAttr(const _file: pcchar): cint; cdecl; external;
function FAT_setAttr(const _file: pcchar; attr: cint): cint; cdecl; external;
+{$define LIBFAT_FEOS_MULTICWD}
+
{$endif NDS_INTERFACE}
diff --git a/packages/libndsfpc/src/fat/filesystem.inc b/packages/libndsfpc/src/fat/filesystem.inc
index dacf5ef69c..3721e7ae49 100644
--- a/packages/libndsfpc/src/fat/filesystem.inc
+++ b/packages/libndsfpc/src/fat/filesystem.inc
@@ -1,6 +1,6 @@
{$ifdef NDS_INTERFACE}
-function nitroFSInit(): cbool; cdecl; external;
+function nitroFSInit(basepath: ppchar): cbool; cdecl; external;
{$endif NDS_INTERFACE}
diff --git a/packages/libndsfpc/src/nds/arm9/background.inc b/packages/libndsfpc/src/nds/arm9/background.inc
index 0919f5b05c..0913e84983 100644
--- a/packages/libndsfpc/src/nds/arm9/background.inc
+++ b/packages/libndsfpc/src/nds/arm9/background.inc
@@ -42,6 +42,22 @@ const
TILE_FLIP_H = (1 shl 10);
TILE_FLIP_V = (1 shl 11);
+
+type
+ TileMapEntry8 = record
+ index: cuint8;
+ end;
+ TTileMapEntry8 = TileMapEntry8;
+ PTileMapEntry8 = ^TileMapEntry8;
+
+ TileMapEntry16 = bitpacked record
+ index: 0..10;
+ hflip: 0..1;
+ vflip: 0..1;
+ palette: 0..4;
+ end;
+
+
type
BackgroundControl = cint;
const
diff --git a/packages/libndsfpc/src/nds/arm9/math.inc b/packages/libndsfpc/src/nds/arm9/math.inc
index 1273e31b7f..4d399ccc99 100644
--- a/packages/libndsfpc/src/nds/arm9/math.inc
+++ b/packages/libndsfpc/src/nds/arm9/math.inc
@@ -30,6 +30,11 @@ const
SQRT_64 = 1;
SQRT_32 = 0;
SQRT_BUSY = (1 shl 15);
+
+function inttof32(n: cint): cint32; inline;
+function f32toint(n: cint32): cint; inline;
+function floattof32(n: cfloat): cint32; inline; //inlining it makes impossible to pass it to another function :/
+function f32tofloat(n: cint32): cfloat; inline;
function divf32(num: cint32; den: cint32): cint32; inline;
function mulf32(a, b: cint32): cint32; inline;
@@ -46,6 +51,27 @@ procedure normalizef32(a: pcint32); inline;
{$endif NDS_INTERFACE}
{$ifdef NDS_IMPLEMENTATION}
+function inttof32(n: cint): cint32; inline;
+begin
+ inttof32 := ((n) shl 12);
+end;
+
+function f32toint(n: cint32): cint; inline;
+begin
+ f32toint := ((n) shr 12);
+end;
+
+function floattof32(n: cfloat): cint32; inline;
+begin
+ floattof32 := trunc((n) * (1 shl 12));
+end;
+
+// check it!
+function f32tofloat(n: cint32): cfloat; inline;
+begin
+ f32tofloat := cfloat(n * 1.0) / cfloat((1 shl 12) * 1.0);
+end;
+
function divf32(num: cint32; den: cint32): cint32; inline;
begin
REG_DIVCNT^ := DIV_64_32;
diff --git a/packages/libndsfpc/src/nds/arm9/videoGL.inc b/packages/libndsfpc/src/nds/arm9/videoGL.inc
index 1ced7219b3..c7aa951ebf 100644
--- a/packages/libndsfpc/src/nds/arm9/videoGL.inc
+++ b/packages/libndsfpc/src/nds/arm9/videoGL.inc
@@ -32,11 +32,6 @@ function floatto12d3(n: cfloat): fixed12d3; inline;
const
GL_MAX_DEPTH = $7FFF;
-function inttof32(n: cint): cint32; inline;
-function f32toint(n: cint32): cint; inline;
-function floattof32(n: cfloat): cint32; inline; //inlining it makes impossible to pass it to another function :/
-function f32tofloat(n: cint32): cfloat; inline;
-
type
t16 = cshort;//cint16? // text coordinate 12.4 fixed point (or cint?)
@@ -296,6 +291,7 @@ type
matrixMode: GL_MATRIX_MODE_ENUM; // holds the current Matrix Mode
vramBlocks: array [0..1] of ps_vramBlock; // Two classe instances, one for textures, and one for palettes
+ vramLock: array [0..1] of cint; // Holds the current lock state of the VRAM banks
// texture globals
texturePtrs: DynamicArray; // Pointers to each individual texture
@@ -372,6 +368,10 @@ procedure glBindTexture(target, name: cint); cdecl; external;
function glGenTextures(n: cint; names: pcint): cint; cdecl; external;
function glDeleteTextures(n: cint; names: pcint): cint; cdecl; external;
procedure glResetTextures(); cdecl; external;
+
+function glLockVRAMBank(addr: pcuint16): cint; cdecl; external;
+function glUnlockVRAMBank(addr: pcuint16): cint; cdecl; external;
+
procedure glTexCoord2f32(u, v: cint32); cdecl; external;
procedure glMaterialf(mode: GL_MATERIALS_ENUM; color: rgb); cdecl; external;
procedure glInit_C(); cdecl; external;
@@ -464,27 +464,6 @@ begin
floatto12d3 := fixed12d3(trunc( n * (1 shl 3)));
end;
-function inttof32(n: cint): cint32; inline;
-begin
- inttof32 := ((n) shl 12);
-end;
-
-function f32toint(n: cint32): cint; inline;
-begin
- f32toint := ((n) shr 12);
-end;
-
-function floattof32(n: cfloat): cint32; inline;
-begin
- floattof32 := trunc((n) * (1 shl 12));
-end;
-
-// check it!
-function f32tofloat(n: cint32): cfloat; inline;
-begin
- f32tofloat := cfloat(n * 1.0) / cfloat((1 shl 12) * 1.0);
-end;
-
function f32tot16(n: cint32): t16; inline;
begin
f32tot16 := t16(n shr 8);
diff --git a/packages/libndsfpc/src/nds/arm9/window.inc b/packages/libndsfpc/src/nds/arm9/window.inc
new file mode 100644
index 0000000000..623ab192d6
--- /dev/null
+++ b/packages/libndsfpc/src/nds/arm9/window.inc
@@ -0,0 +1,49 @@
+{$ifdef NDS_INTERFACE}
+
+type
+ WINDOW = integer;
+const
+ WINDOW_0: WINDOW = DISPLAY_WIN0_ON;
+ WINDOW_1: WINDOW = DISPLAY_WIN1_ON;
+ WINDOW_OBJ: WINDOW = DISPLAY_SPR_WIN_ON;
+ WINDOW_OUT: WINDOW = (1 shl 16);
+
+{$DEFINE WINDOW_MASK := (WINDOW_0 or WINDOW_1 or WINDOW_OBJ)}
+
+procedure windowEnable(w: WINDOW); inline;
+procedure windowDisable(w: WINDOW); inline;
+procedure windowEnableSub(w: WINDOW); inline;
+procedure windowDisableSub(w: WINDOW); inline;
+
+procedure windowSetBounds(w: WINDOW; left: cuint8; top: cuint8; right: cuint8; bottom: cuint8); cdecl; external;
+procedure windowSetBoundsSub(w: WINDOW; left: cuint8; top: cuint8; right: cuint8; bottom: cuint8); cdecl; external;
+procedure bgWindowEnable(id: cint; w: WINDOW); cdecl; external;
+procedure bgWindowDisable(id: cint; w: WINDOW); cdecl; external;
+procedure oamWindowEnable(oam: POamState; w: WINDOW); cdecl; external;
+procedure oamWindowDisable(oam: POamState; w: WINDOW); cdecl; external;
+
+{$endif NDS_INTERFACE}
+
+
+{$ifdef NDS_IMPLEMENTATION}
+procedure windowEnable(w: WINDOW); inline;
+begin
+ REG_DISPCNT^ := REG_DISPCNT^ or (w and WINDOW_MASK);
+end;
+
+procedure windowDisable(w: WINDOW); inline;
+begin
+ REG_DISPCNT^ := REG_DISPCNT^ and not (w and WINDOW_MASK);
+end;
+
+procedure windowEnableSub(w: WINDOW); inline;
+begin
+ REG_DISPCNT_SUB^ := REG_DISPCNT_SUB^ or (w and WINDOW_MASK);
+end;
+
+procedure windowDisableSub(w: WINDOW); inline;
+begin
+ REG_DISPCNT_SUB^ := REG_DISPCNT_SUB^ and not (w and WINDOW_MASK);
+end;
+
+{$endif NDS_IMPLEMENTATION} \ No newline at end of file
diff --git a/packages/libndsfpc/src/nds/libversion.inc b/packages/libndsfpc/src/nds/libversion.inc
index 15457758f0..14a97177f9 100644
--- a/packages/libndsfpc/src/nds/libversion.inc
+++ b/packages/libndsfpc/src/nds/libversion.inc
@@ -2,9 +2,9 @@
const
_LIBNDS_MAJOR_ = 1;
_LIBNDS_MINOR_ = 5;
- _LIBNDS_PATCH_ = 7;
+ _LIBNDS_PATCH_ = 8;
- _LIBNDS_STRING = 'libNDS Release 1.5.7';
+ _LIBNDS_STRING = 'libNDS Release 1.5.8';
{$endif NDS_INTERFACE}
{$ifdef NDS_IMPLEMENTATION}
diff --git a/packages/libndsfpc/src/nds/nds.inc b/packages/libndsfpc/src/nds/nds.inc
index d025479cdc..f455b16d0b 100644
--- a/packages/libndsfpc/src/nds/nds.inc
+++ b/packages/libndsfpc/src/nds/nds.inc
@@ -105,6 +105,7 @@
{$include arm9/sassert.inc}
{$include arm9/sound.inc}
{$include arm9/sprite.inc}
+ {$include arm9/window.inc}
{$include arm9/trig_lut.inc}
{$include arm9/video.inc}
{$include arm9/videoGL.inc}
diff --git a/packages/libndsfpc/src/nds/ndsinclude.inc b/packages/libndsfpc/src/nds/ndsinclude.inc
index de4214362d..0dcfebac7a 100644
--- a/packages/libndsfpc/src/nds/ndsinclude.inc
+++ b/packages/libndsfpc/src/nds/ndsinclude.inc
@@ -45,6 +45,7 @@
{$include arm9/paddle.inc}
{$include arm9/piano.inc}
{$include arm9/dldi.inc}
+ {$include arm9/window.inc}
{$endif ARM9}
{$ifdef ARM7}
diff --git a/packages/libogcfpc/Makefile b/packages/libogcfpc/Makefile
index 573b412b9b..460877878a 100644
--- a/packages/libogcfpc/Makefile
+++ b/packages/libogcfpc/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=libogcfpc
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libogcfpc/Makefile.fpc b/packages/libogcfpc/Makefile.fpc
index 4c0118fa71..ef1436ce0e 100644
--- a/packages/libogcfpc/Makefile.fpc
+++ b/packages/libogcfpc/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=libogcfpc
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libogcfpc/Makefile.fpc.fpcmake b/packages/libogcfpc/Makefile.fpc.fpcmake
index 6d9e469119..100c9c7c6f 100644
--- a/packages/libogcfpc/Makefile.fpc.fpcmake
+++ b/packages/libogcfpc/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=libogcfpc
-version=2.7.1
+version=3.1.1
[target]
units=gctypes gccore debug mp3player fat asndlib aesndlib gcmodplay iso9660 network
diff --git a/packages/libogcfpc/examples/Makefile b/packages/libogcfpc/examples/Makefile
index b3194696c3..459ce80d21 100644
--- a/packages/libogcfpc/examples/Makefile
+++ b/packages/libogcfpc/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=audio devices filesystem graphics template
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=audio devices filesystem graphics template
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=audio devices filesystem graphics template
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=audio devices filesystem graphics template
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=audio devices filesystem graphics template
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=audio devices filesystem graphics template
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=audio devices filesystem graphics template
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=audio devices filesystem graphics template
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=audio devices filesystem graphics template
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2616,6 +2675,13 @@ TARGET_DIRS_FILESYSTEM=1
TARGET_DIRS_GRAPHICS=1
TARGET_DIRS_TEMPLATE=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_AUDIO=1
+TARGET_DIRS_DEVICES=1
+TARGET_DIRS_FILESYSTEM=1
+TARGET_DIRS_GRAPHICS=1
+TARGET_DIRS_TEMPLATE=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_AUDIO=1
TARGET_DIRS_DEVICES=1
@@ -2819,6 +2885,13 @@ TARGET_DIRS_FILESYSTEM=1
TARGET_DIRS_GRAPHICS=1
TARGET_DIRS_TEMPLATE=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_AUDIO=1
+TARGET_DIRS_DEVICES=1
+TARGET_DIRS_FILESYSTEM=1
+TARGET_DIRS_GRAPHICS=1
+TARGET_DIRS_TEMPLATE=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_AUDIO=1
TARGET_DIRS_DEVICES=1
@@ -2945,6 +3018,13 @@ TARGET_DIRS_FILESYSTEM=1
TARGET_DIRS_GRAPHICS=1
TARGET_DIRS_TEMPLATE=1
endif
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
TARGET_DIRS_AUDIO=1
TARGET_DIRS_DEVICES=1
diff --git a/packages/libogcfpc/examples/audio/Makefile b/packages/libogcfpc/examples/audio/Makefile
index 20c56f72bb..49a22cc947 100644
--- a/packages/libogcfpc/examples/audio/Makefile
+++ b/packages/libogcfpc/examples/audio/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=modplay mp3player
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=modplay mp3player
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=modplay mp3player
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=modplay mp3player
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=modplay mp3player
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=modplay mp3player
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=modplay mp3player
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=modplay mp3player
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=modplay mp3player
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2547,6 +2606,10 @@ ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_MODPLAY=1
TARGET_DIRS_MP3PLAYER=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_MODPLAY=1
+TARGET_DIRS_MP3PLAYER=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_MODPLAY=1
TARGET_DIRS_MP3PLAYER=1
@@ -2663,6 +2726,10 @@ ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_MODPLAY=1
TARGET_DIRS_MP3PLAYER=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_MODPLAY=1
+TARGET_DIRS_MP3PLAYER=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_MODPLAY=1
TARGET_DIRS_MP3PLAYER=1
@@ -2735,6 +2802,10 @@ ifeq ($(FULL_TARGET),mipsel-linux)
TARGET_DIRS_MODPLAY=1
TARGET_DIRS_MP3PLAYER=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_MODPLAY=1
+TARGET_DIRS_MP3PLAYER=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_MODPLAY=1
TARGET_DIRS_MP3PLAYER=1
diff --git a/packages/libogcfpc/examples/audio/modplay/Makefile b/packages/libogcfpc/examples/audio/modplay/Makefile
index 080eaf404d..bbd583f299 100644
--- a/packages/libogcfpc/examples/audio/modplay/Makefile
+++ b/packages/libogcfpc/examples/audio/modplay/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=modplay
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=modplay
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=modplay
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=modplay
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=modplay
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=modplay
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=modplay
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=modplay
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=modplay
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/examples/audio/mp3player/Makefile b/packages/libogcfpc/examples/audio/mp3player/Makefile
index fb7d5fe922..9edc077c7e 100644
--- a/packages/libogcfpc/examples/audio/mp3player/Makefile
+++ b/packages/libogcfpc/examples/audio/mp3player/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=playmp3
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=playmp3
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=playmp3
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=playmp3
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=playmp3
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=playmp3
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=playmp3
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=playmp3
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=playmp3
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/examples/devices/Makefile b/packages/libogcfpc/examples/devices/Makefile
index 9b089dee41..8679121594 100644
--- a/packages/libogcfpc/examples/devices/Makefile
+++ b/packages/libogcfpc/examples/devices/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=network usbkeyboard usbgecko
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=network usbkeyboard usbgecko
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=network usbkeyboard usbgecko
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=network usbkeyboard usbgecko
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=network usbkeyboard usbgecko
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=network usbkeyboard usbgecko
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=network usbkeyboard usbgecko
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=network usbkeyboard usbgecko
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=network usbkeyboard usbgecko
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2570,6 +2629,11 @@ TARGET_DIRS_NETWORK=1
TARGET_DIRS_USBKEYBOARD=1
TARGET_DIRS_USBGECKO=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_NETWORK=1
+TARGET_DIRS_USBKEYBOARD=1
+TARGET_DIRS_USBGECKO=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_NETWORK=1
TARGET_DIRS_USBKEYBOARD=1
@@ -2715,6 +2779,11 @@ TARGET_DIRS_NETWORK=1
TARGET_DIRS_USBKEYBOARD=1
TARGET_DIRS_USBGECKO=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_NETWORK=1
+TARGET_DIRS_USBKEYBOARD=1
+TARGET_DIRS_USBGECKO=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_NETWORK=1
TARGET_DIRS_USBKEYBOARD=1
@@ -2805,6 +2874,11 @@ TARGET_DIRS_NETWORK=1
TARGET_DIRS_USBKEYBOARD=1
TARGET_DIRS_USBGECKO=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_NETWORK=1
+TARGET_DIRS_USBKEYBOARD=1
+TARGET_DIRS_USBGECKO=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_NETWORK=1
TARGET_DIRS_USBKEYBOARD=1
diff --git a/packages/libogcfpc/examples/devices/network/Makefile b/packages/libogcfpc/examples/devices/network/Makefile
index 41e538dcc1..780e66c914 100644
--- a/packages/libogcfpc/examples/devices/network/Makefile
+++ b/packages/libogcfpc/examples/devices/network/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=sockettest
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=sockettest
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=sockettest
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=sockettest
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=sockettest
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=sockettest
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=sockettest
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=sockettest
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=sockettest
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2524,6 +2583,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_SOCKETTEST=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_SOCKETTEST=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_SOCKETTEST=1
endif
@@ -2611,6 +2673,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_SOCKETTEST=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_SOCKETTEST=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_SOCKETTEST=1
endif
@@ -2665,6 +2730,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
TARGET_DIRS_SOCKETTEST=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_SOCKETTEST=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_SOCKETTEST=1
endif
diff --git a/packages/libogcfpc/examples/devices/network/sockettest/Makefile b/packages/libogcfpc/examples/devices/network/sockettest/Makefile
index e10c1ad975..2c8a2b53ad 100644
--- a/packages/libogcfpc/examples/devices/network/sockettest/Makefile
+++ b/packages/libogcfpc/examples/devices/network/sockettest/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=sockettest
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=sockettest
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=sockettest
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=sockettest
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=sockettest
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=sockettest
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=sockettest
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=sockettest
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=sockettest
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/examples/devices/usbgecko/Makefile b/packages/libogcfpc/examples/devices/usbgecko/Makefile
index 1a2ee2faa3..c82667bdd8 100644
--- a/packages/libogcfpc/examples/devices/usbgecko/Makefile
+++ b/packages/libogcfpc/examples/devices/usbgecko/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=gdbstub
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=gdbstub
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=gdbstub
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=gdbstub
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=gdbstub
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=gdbstub
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=gdbstub
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=gdbstub
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=gdbstub
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2524,6 +2583,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_GDBSTUB=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_GDBSTUB=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_GDBSTUB=1
endif
@@ -2611,6 +2673,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_GDBSTUB=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_GDBSTUB=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_GDBSTUB=1
endif
@@ -2665,6 +2730,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
TARGET_DIRS_GDBSTUB=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_GDBSTUB=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_GDBSTUB=1
endif
diff --git a/packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile b/packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
index 190a9dddab..3cd14342fd 100644
--- a/packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
+++ b/packages/libogcfpc/examples/devices/usbgecko/gdbstub/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=gdbstub
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=gdbstub
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=gdbstub
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=gdbstub
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=gdbstub
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=gdbstub
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=gdbstub
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=gdbstub
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=gdbstub
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm -k--gc-sections
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm -k--gc-sections
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm -k--gc-sections
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm -k--gc-sections
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm -k--gc-sections
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm -k--gc-sections
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm -k--gc-sections
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm -k--gc-sections
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm -k--gc-sections
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/examples/devices/usbkeyboard/Makefile b/packages/libogcfpc/examples/devices/usbkeyboard/Makefile
index 5b2e7b96b7..d45684b82e 100644
--- a/packages/libogcfpc/examples/devices/usbkeyboard/Makefile
+++ b/packages/libogcfpc/examples/devices/usbkeyboard/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=basic_stdin
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=basic_stdin
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=basic_stdin
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=basic_stdin
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=basic_stdin
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=basic_stdin
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=basic_stdin
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=basic_stdin
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=basic_stdin
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2524,6 +2583,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_BASIC_STDIN=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_BASIC_STDIN=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_BASIC_STDIN=1
endif
@@ -2611,6 +2673,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_BASIC_STDIN=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_BASIC_STDIN=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_BASIC_STDIN=1
endif
@@ -2665,6 +2730,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
TARGET_DIRS_BASIC_STDIN=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_BASIC_STDIN=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_BASIC_STDIN=1
endif
diff --git a/packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile b/packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
index 79dadb2ce8..d49832f6a6 100644
--- a/packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
+++ b/packages/libogcfpc/examples/devices/usbkeyboard/basic_stdin/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=basic_stdin
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=basic_stdin
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=basic_stdin
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=basic_stdin
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=basic_stdin
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=basic_stdin
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=basic_stdin
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=basic_stdin
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=basic_stdin
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/examples/filesystem/Makefile b/packages/libogcfpc/examples/filesystem/Makefile
index 39f8b60ce2..b9563d175f 100644
--- a/packages/libogcfpc/examples/filesystem/Makefile
+++ b/packages/libogcfpc/examples/filesystem/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=directory
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=directory
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=directory
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=directory
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=directory
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=directory
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=directory
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=directory
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=directory
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2524,6 +2583,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_DIRECTORY=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_DIRECTORY=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_DIRECTORY=1
endif
@@ -2611,6 +2673,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_DIRECTORY=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_DIRECTORY=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_DIRECTORY=1
endif
@@ -2665,6 +2730,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
TARGET_DIRS_DIRECTORY=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_DIRECTORY=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_DIRECTORY=1
endif
diff --git a/packages/libogcfpc/examples/filesystem/directory/Makefile b/packages/libogcfpc/examples/filesystem/directory/Makefile
index b19d27251e..08d4dd0981 100644
--- a/packages/libogcfpc/examples/filesystem/directory/Makefile
+++ b/packages/libogcfpc/examples/filesystem/directory/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=directory
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=directory
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=directory
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=directory
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=directory
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=directory
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=directory
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=directory
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=directory
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/examples/graphics/Makefile b/packages/libogcfpc/examples/graphics/Makefile
index 1c7b70204b..5700723bf3 100644
--- a/packages/libogcfpc/examples/graphics/Makefile
+++ b/packages/libogcfpc/examples/graphics/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=gx
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=gx
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=gx
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=gx
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=gx
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=gx
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=gx
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=gx
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=gx
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2524,6 +2583,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_GX=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_GX=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_GX=1
endif
@@ -2611,6 +2673,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_GX=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_GX=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_GX=1
endif
@@ -2665,6 +2730,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
TARGET_DIRS_GX=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_GX=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_GX=1
endif
diff --git a/packages/libogcfpc/examples/graphics/gx/Makefile b/packages/libogcfpc/examples/graphics/gx/Makefile
index 9a8fe93adf..7debf1522d 100644
--- a/packages/libogcfpc/examples/graphics/gx/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=gxSprites neheGX triangle
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=gxSprites neheGX triangle
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=gxSprites neheGX triangle
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=gxSprites neheGX triangle
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=gxSprites neheGX triangle
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=gxSprites neheGX triangle
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=gxSprites neheGX triangle
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=gxSprites neheGX triangle
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=gxSprites neheGX triangle
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2570,6 +2629,11 @@ TARGET_DIRS_GXSPRITES=1
TARGET_DIRS_NEHEGX=1
TARGET_DIRS_TRIANGLE=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_GXSPRITES=1
+TARGET_DIRS_NEHEGX=1
+TARGET_DIRS_TRIANGLE=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_GXSPRITES=1
TARGET_DIRS_NEHEGX=1
@@ -2715,6 +2779,11 @@ TARGET_DIRS_GXSPRITES=1
TARGET_DIRS_NEHEGX=1
TARGET_DIRS_TRIANGLE=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_GXSPRITES=1
+TARGET_DIRS_NEHEGX=1
+TARGET_DIRS_TRIANGLE=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_GXSPRITES=1
TARGET_DIRS_NEHEGX=1
@@ -2805,6 +2874,11 @@ TARGET_DIRS_GXSPRITES=1
TARGET_DIRS_NEHEGX=1
TARGET_DIRS_TRIANGLE=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+TARGET_DIRS_GXSPRITES=1
+TARGET_DIRS_NEHEGX=1
+TARGET_DIRS_TRIANGLE=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
TARGET_DIRS_GXSPRITES=1
TARGET_DIRS_NEHEGX=1
diff --git a/packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile b/packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
index bc00b6671e..557f729738 100644
--- a/packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/gxSprites/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=gxsprites
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=gxsprites
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=gxsprites
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=gxsprites
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=gxsprites
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=gxsprites
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=gxsprites
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=gxsprites
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=gxsprites
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
index 9b4580a891..c27889ff71 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=lesson1 lesson2 lesson3 lesson4 lesson5 lesson6 lesson7 lesson8 lesson9
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=lesson1 lesson2 lesson3 lesson4 lesson5 lesson6 lesson7 lesson8 lesson9
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=lesson1 lesson2 lesson3 lesson4 lesson5 lesson6 lesson7 lesson8 lesson9
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=lesson1 lesson2 lesson3 lesson4 lesson5 lesson6 lesson7 lesson8 lesson9
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=lesson1 lesson2 lesson3 lesson4 lesson5 lesson6 lesson7 lesson8 lesson9
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=lesson1 lesson2 lesson3 lesson4 lesson5 lesson6 lesson7 lesson8 lesson9
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_DIRS+=lesson1 lesson2 lesson3 lesson4 lesson5 lesson6 lesson7 lesson8 lesson9
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_DIRS+=lesson1 lesson2 lesson3 lesson4 lesson5 lesson6 lesson7 lesson8 lesson9
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_DIRS+=lesson1 lesson2 lesson3 lesson4 lesson5 lesson6 lesson7 lesson8 lesson9
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2708,6 +2767,17 @@ TARGET_DIRS_LESSON7=1
TARGET_DIRS_LESSON8=1
TARGET_DIRS_LESSON9=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+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),m68k-linux)
TARGET_DIRS_LESSON1=1
TARGET_DIRS_LESSON2=1
@@ -3027,6 +3097,17 @@ TARGET_DIRS_LESSON7=1
TARGET_DIRS_LESSON8=1
TARGET_DIRS_LESSON9=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+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),arm-linux)
TARGET_DIRS_LESSON1=1
TARGET_DIRS_LESSON2=1
@@ -3225,6 +3306,17 @@ TARGET_DIRS_LESSON7=1
TARGET_DIRS_LESSON8=1
TARGET_DIRS_LESSON9=1
endif
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
TARGET_DIRS_LESSON1=1
TARGET_DIRS_LESSON2=1
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
index 8e42984059..ef5809018a 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson1/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson1
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson1
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson1
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson1
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
index d4fa6ee1bf..eba0e5ef6a 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson2/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson2
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson2
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson2
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
index ff00822ddf..68ce738c08 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson3/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson3
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson3
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson3
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson3
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson3
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson3
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson3
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson3
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson3
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
index 04da0ed197..1fc7494374 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson4/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson4
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson4
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson4
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson4
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson4
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson4
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson4
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson4
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson4
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
index 51acfd2ad7..9100f64bab 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson5/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson5
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson5
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson5
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson5
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson5
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson5
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson5
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson5
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson5
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
index 2cdcb49020..2e353dd2f3 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson6/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson6
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson6
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson6
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson6
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson6
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson6
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson6
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson6
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson6
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
index 60981dbf61..bf756ec029 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson7/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson7
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson7
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson7
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson7
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson7
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson7
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson7
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson7
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson7
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
index 9893ddb7a6..e54e87679f 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson8/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson8
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson8
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson8
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson8
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson8
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson8
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson8
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson8
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson8
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
index 1711e3c3d1..643ee5f06b 100644
--- a/packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/neheGX/lesson9/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=lesson9
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=lesson9
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=lesson9
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=lesson9
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=lesson9
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=lesson9
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=lesson9
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=lesson9
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=lesson9
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/examples/graphics/gx/triangle/Makefile b/packages/libogcfpc/examples/graphics/gx/triangle/Makefile
index 67272ad31e..ed258785f2 100644
--- a/packages/libogcfpc/examples/graphics/gx/triangle/Makefile
+++ b/packages/libogcfpc/examples/graphics/gx/triangle/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=triangle
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=triangle
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=triangle
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=triangle
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=triangle
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=triangle
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=triangle
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=triangle
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=triangle
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/examples/template/Makefile b/packages/libogcfpc/examples/template/Makefile
index 665022c5b3..3cade53617 100644
--- a/packages/libogcfpc/examples/template/Makefile
+++ b/packages/libogcfpc/examples/template/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -186,6 +186,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -396,6 +402,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=template
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=template
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=template
endif
@@ -483,6 +492,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=template
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=template
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=template
endif
@@ -537,6 +549,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=template
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=template
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=template
endif
@@ -618,6 +633,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=*
endif
@@ -705,6 +723,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=*
endif
@@ -759,6 +780,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=*
endif
@@ -840,6 +864,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -927,6 +954,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -981,6 +1011,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=*.elf *.o *.s *.h *.bin *.map $(BUILD)/* $(INC)/*
endif
@@ -1063,6 +1096,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1150,6 +1186,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1204,6 +1243,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-g -Xm
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-g -Xm
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-g -Xm
endif
@@ -1458,6 +1500,12 @@ 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=
@@ -1503,6 +1551,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2062,6 +2115,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2323,6 +2385,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2485,6 +2556,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBOGCFPC=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
+REQUIRE_PACKAGES_LIBOGCFPC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2900,7 +2980,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2930,17 +3010,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libogcfpc/fpmake.pp b/packages/libogcfpc/fpmake.pp
index 1dce6cab16..13c8fa8594 100644
--- a/packages/libogcfpc/fpmake.pp
+++ b/packages/libogcfpc/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.Dependencies.Add('mad');
P.OSes:=P.OSes-[embedded];
diff --git a/packages/libogcfpc/src/fat.pp b/packages/libogcfpc/src/fat.pp
index a316469b8f..2a90e7d06c 100644
--- a/packages/libogcfpc/src/fat.pp
+++ b/packages/libogcfpc/src/fat.pp
@@ -19,6 +19,23 @@ function fatMount(name_: pcchar; interface_: PDISC_INTERFACE; startSector: sec_t
procedure fatUnmount(name_: pcchar); cdecl; external;
procedure fatGetVolumeLabel(name_, label_: pcchar); cdecl; external;
+// File attributes
+const
+ ATTR_ARCHIVE = $20; // Archive
+ ATTR_DIRECTORY = $10; // Directory
+ ATTR_VOLUME = $08; // Volume
+ ATTR_SYSTEM = $04; // System
+ ATTR_HIDDEN = $02; // Hidden
+ ATTR_READONLY = $01; // Read only
+
+(*
+Methods to modify DOS File Attributes
+*)
+function FAT_getAttr(const _file: pcchar): cint; cdecl; external;
+function FAT_setAttr(const _file: pcchar; attr: cint): cint; cdecl; external;
+
+
+
implementation
initialization
diff --git a/packages/libogcfpc/src/ogc/usbgecko.inc b/packages/libogcfpc/src/ogc/usbgecko.inc
index e610e12b89..49a4a43dbd 100644
--- a/packages/libogcfpc/src/ogc/usbgecko.inc
+++ b/packages/libogcfpc/src/ogc/usbgecko.inc
@@ -26,7 +26,7 @@ function usb_sendbuffer_safe_ex(chn: cint32; buffer: pointer;
function usb_flashread(chn: cint32; offset: cuint32; buffer: pointer; length: cint): cint; cdecl; external;
-function usb_flashwrite(chn: cint32; offset: cuint32; const buffer: pointer, length: cint): cint; cdecl; external;
+function usb_flashwrite(chn: cint32; offset: cuint32; const buffer: pointer; length: cint): cint; cdecl; external;
function usb_flashverify(chn: cint32): cint; cdecl; external;
{$ENDIF OGC_INTERFACE}
diff --git a/packages/libpng/Makefile b/packages/libpng/Makefile
index a265008bd9..88d120cffe 100644
--- a/packages/libpng/Makefile
+++ b/packages/libpng/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=libpng
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libpng/Makefile.fpc b/packages/libpng/Makefile.fpc
index 422adfdea6..72e744907a 100644
--- a/packages/libpng/Makefile.fpc
+++ b/packages/libpng/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=libpng
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libpng/Makefile.fpc.fpcmake b/packages/libpng/Makefile.fpc.fpcmake
index 1c38606d5a..c575c9509d 100644
--- a/packages/libpng/Makefile.fpc.fpcmake
+++ b/packages/libpng/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=libpng
-version=2.7.1
+version=3.1.1
[require]
packages=zlib
diff --git a/packages/libpng/fpmake.pp b/packages/libpng/fpmake.pp
index f80682bc25..f20a25aa76 100644
--- a/packages/libpng/fpmake.pp
+++ b/packages/libpng/fpmake.pp
@@ -13,10 +13,12 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('libpng');
+ P.ShortName:='lpng';
+ P.Description := 'Interface unit for libpng - working with PNG image format.';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('zlib');
P.SourcePath.Add('src');
P.OSes := AllUnixOSes-[qnx]+[win32,os2,emx];
diff --git a/packages/librsvg/Makefile b/packages/librsvg/Makefile
index 38de0aad8b..a8f4978fa7 100644
--- a/packages/librsvg/Makefile
+++ b/packages/librsvg/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=librsvg
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/librsvg/Makefile.fpc b/packages/librsvg/Makefile.fpc
index b0ec69301a..c223399ff2 100644
--- a/packages/librsvg/Makefile.fpc
+++ b/packages/librsvg/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=librsvg
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/librsvg/Makefile.fpc.fpcmake b/packages/librsvg/Makefile.fpc.fpcmake
index ac1ce98d2b..df80173782 100644
--- a/packages/librsvg/Makefile.fpc.fpcmake
+++ b/packages/librsvg/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=rsvg
-version=2.7.1
+version=3.1.1
[target]
units=rsvg
diff --git a/packages/librsvg/fpmake.pp b/packages/librsvg/fpmake.pp
index 27e80ee7d6..9e365626f5 100644
--- a/packages/librsvg/fpmake.pp
+++ b/packages/librsvg/fpmake.pp
@@ -16,11 +16,11 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.OSes := [beos,haiku,freebsd,netbsd,openbsd,linux,win32,aix];
+ P.OSes := [beos,haiku,freebsd,netbsd,openbsd,linux,win32,aix,dragonfly];
// Do not build x11 on iPhone (=arm-darwin)
if Defaults.CPU<>arm then
P.OSes := P.OSes + [darwin];
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.IncludePath.Add('src');
P.Dependencies.Add('gtk2');
diff --git a/packages/libsee/Makefile b/packages/libsee/Makefile
index 46bf87291d..c7d533a2ca 100644
--- a/packages/libsee/Makefile
+++ b/packages/libsee/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=libsee
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libsee/Makefile.fpc b/packages/libsee/Makefile.fpc
index 94c5fd8437..c1edb30053 100644
--- a/packages/libsee/Makefile.fpc
+++ b/packages/libsee/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=libsee
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libsee/Makefile.fpc.fpcmake b/packages/libsee/Makefile.fpc.fpcmake
index d4659438e5..2968819396 100644
--- a/packages/libsee/Makefile.fpc.fpcmake
+++ b/packages/libsee/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=libsee
-version=2.7.1
+version=3.1.1
[target]
units=libsee
diff --git a/packages/libsee/examples/Makefile b/packages/libsee/examples/Makefile
index 045b08c9c5..8bfbe68e95 100644
--- a/packages/libsee/examples/Makefile
+++ b/packages/libsee/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=teststream testwrite tlibsee
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=teststream testwrite tlibsee
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=teststream testwrite tlibsee
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=teststream testwrite tlibsee
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=teststream testwrite tlibsee
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=teststream testwrite tlibsee
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=teststream testwrite tlibsee
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=teststream testwrite tlibsee
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=teststream testwrite tlibsee
endif
@@ -610,6 +625,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=mod_stream teststream.pp testwrite.pp tlibsee.pp
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=mod_stream teststream.pp testwrite.pp tlibsee.pp
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=mod_stream teststream.pp testwrite.pp tlibsee.pp
endif
@@ -697,6 +715,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=mod_stream teststream.pp testwrite.pp tlibsee.pp
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=mod_stream teststream.pp testwrite.pp tlibsee.pp
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=mod_stream teststream.pp testwrite.pp tlibsee.pp
endif
@@ -751,6 +772,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=mod_stream teststream.pp testwrite.pp tlibsee.pp
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=mod_stream teststream.pp testwrite.pp tlibsee.pp
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=mod_stream teststream.pp testwrite.pp tlibsee.pp
endif
@@ -1006,6 +1030,12 @@ 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=
@@ -1051,6 +1081,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1610,6 +1645,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBSEE=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
+REQUIRE_PACKAGES_LIBSEE=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1871,6 +1915,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBSEE=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
+REQUIRE_PACKAGES_LIBSEE=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2033,6 +2086,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_LIBSEE=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
+REQUIRE_PACKAGES_LIBSEE=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2448,7 +2510,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2478,17 +2540,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/libsee/fpmake.pp b/packages/libsee/fpmake.pp
index de9c230e01..5d27d54a13 100644
--- a/packages/libsee/fpmake.pp
+++ b/packages/libsee/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'David Leonard';
P.License := 'BSD style';
P.HomepageURL := 'http://www.adaptive-enterprises.com.au/~d/software/see/';
diff --git a/packages/libtar/Makefile b/packages/libtar/Makefile
index 22fde01cd7..8f860291c3 100644
--- a/packages/libtar/Makefile
+++ b/packages/libtar/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=libtar
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -596,6 +602,12 @@ 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=
@@ -641,6 +653,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1062,6 +1079,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1149,6 +1169,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1203,6 +1226,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1366,7 +1392,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1396,17 +1422,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -1753,12 +1785,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -1774,15 +1804,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -1802,17 +1832,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libtar/Makefile.fpc b/packages/libtar/Makefile.fpc
index 9ce55a95d4..f15174b6b2 100644
--- a/packages/libtar/Makefile.fpc
+++ b/packages/libtar/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=libtar
-version=2.7.1
+version=3.1.1
[require]
packages=rtl
@@ -67,15 +67,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -100,18 +100,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libtar/fpmake.pp b/packages/libtar/fpmake.pp
index 24252a7dec..aed94229e0 100644
--- a/packages/libtar/fpmake.pp
+++ b/packages/libtar/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('libtar');
+ P.ShortName:='ltar';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Stefan Heymann';
P.License := 'LGPL with modification, ';
diff --git a/packages/libvlc/Makefile b/packages/libvlc/Makefile
index 7508c5f2ad..ac06c95017 100644
--- a/packages/libvlc/Makefile
+++ b/packages/libvlc/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=libvlc
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,13 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipinstall: fpc_zipinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2311,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2339,15 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
diff --git a/packages/libvlc/Makefile.fpc b/packages/libvlc/Makefile.fpc
index 5a917fc4ad..bc7015d01a 100644
--- a/packages/libvlc/Makefile.fpc
+++ b/packages/libvlc/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=libvlc
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,16 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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/packages/libvlc/fpmake.pp b/packages/libvlc/fpmake.pp
index 37d112e57c..75d5dd0361 100644
--- a/packages/libvlc/fpmake.pp
+++ b/packages/libvlc/fpmake.pp
@@ -17,7 +17,7 @@ begin
{$endif ALLPACKAGES}
P.OSes := [win32, win64, linux, freebsd];
P.Dependencies.Add('fcl-base');
- P.Version:='1.0';
+ P.Version:='3.1.1';
P.License := 'LGPL with modification';
P.HomepageURL := 'www.freepascal.org';
P.Email := 'michael@freepascal.org';
diff --git a/packages/libxml/Makefile b/packages/libxml/Makefile
index 93f7c0e9ca..4cbd6492cb 100644
--- a/packages/libxml/Makefile
+++ b/packages/libxml/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=libxml
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libxml/Makefile.fpc b/packages/libxml/Makefile.fpc
index c519d66563..f7286362f7 100644
--- a/packages/libxml/Makefile.fpc
+++ b/packages/libxml/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=libxml
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/libxml/Makefile.fpc.fpcmake b/packages/libxml/Makefile.fpc.fpcmake
index c780163307..5387255aff 100644
--- a/packages/libxml/Makefile.fpc.fpcmake
+++ b/packages/libxml/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=libxml2
-version=2.7.1
+version=3.1.1
[target]
units=xml2 xmlxsdparser xmlxsd
diff --git a/packages/libxml/examples/Makefile b/packages/libxml/examples/Makefile
index 0f69a9e28b..6956fc78c1 100644
--- a/packages/libxml/examples/Makefile
+++ b/packages/libxml/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=reader1 reader2 io1 io2 tree1 tree2
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1250,6 +1276,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1337,6 +1366,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1391,6 +1423,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1554,7 +1589,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1584,17 +1619,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/libxml/fpmake.pp b/packages/libxml/fpmake.pp
index 725ab5cde6..6cacf6a78e 100644
--- a/packages/libxml/fpmake.pp
+++ b/packages/libxml/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes := [freebsd,linux,win32];
P.SourcePath.Add('src');
P.IncludePath.Add('src');
@@ -62,7 +62,7 @@ begin
AddInclude('xmlschemas.inc');
AddInclude('hash.inc');
AddInclude('nanohttp.inc');
- AddInclude('parser.inc');
+ AddInclude('libxmlparser.inc');
AddInclude('tree.inc');
AddInclude('dict.inc');
AddInclude('xlink.inc');
diff --git a/packages/lua/Makefile b/packages/lua/Makefile
index f688c0146b..ca3dc7c84c 100644
--- a/packages/lua/Makefile
+++ b/packages/lua/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=lua
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/lua/Makefile.fpc b/packages/lua/Makefile.fpc
index 2b4745a723..1797d754f4 100644
--- a/packages/lua/Makefile.fpc
+++ b/packages/lua/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=lua
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/lua/Makefile.fpc.fpcmake b/packages/lua/Makefile.fpc.fpcmake
index 87685f2fcc..27f4c38bc0 100644
--- a/packages/lua/Makefile.fpc.fpcmake
+++ b/packages/lua/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=lua
-version=2.7.1
+version=3.1.1
[target]
units=lua lualib lauxlib
diff --git a/packages/lua/fpmake.pp b/packages/lua/fpmake.pp
index 16c915f9d8..296b4d2943 100644
--- a/packages/lua/fpmake.pp
+++ b/packages/lua/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
// P.Dependencies.Add('x11');
P.OSes := [linux,win32];
diff --git a/packages/mad/Makefile b/packages/mad/Makefile
index 954e57d0f6..4482929e26 100644
--- a/packages/mad/Makefile
+++ b/packages/mad/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=mad
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/mad/Makefile.fpc b/packages/mad/Makefile.fpc
index 7e276bdd1b..ac9481a732 100644
--- a/packages/mad/Makefile.fpc
+++ b/packages/mad/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=mad
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/mad/Makefile.fpc.fpcmake b/packages/mad/Makefile.fpc.fpcmake
index 863a1f146d..ef35d59b63 100644
--- a/packages/mad/Makefile.fpc.fpcmake
+++ b/packages/mad/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=mad
-version=2.7.1
+version=3.1.1
[target]
units=mad
diff --git a/packages/mad/fpmake.pp b/packages/mad/fpmake.pp
index 416c030025..5dfeedc125 100644
--- a/packages/mad/fpmake.pp
+++ b/packages/mad/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes := [linux,win32,win64];
P.SourcePath.Add('src');
diff --git a/packages/matroska/Makefile b/packages/matroska/Makefile
index 037d979059..267748a93c 100644
--- a/packages/matroska/Makefile
+++ b/packages/matroska/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=matroska
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/matroska/Makefile.fpc b/packages/matroska/Makefile.fpc
index f895e5a47e..25e786e5e2 100644
--- a/packages/matroska/Makefile.fpc
+++ b/packages/matroska/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=matroska
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/matroska/Makefile.fpc.fpcmake b/packages/matroska/Makefile.fpc.fpcmake
index 3e36fbdf38..7126c35b61 100644
--- a/packages/matroska/Makefile.fpc.fpcmake
+++ b/packages/matroska/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=matroska
-version=2.7.1
+version=3.1.1
[target]
units=matroska
diff --git a/packages/modplug/Makefile b/packages/modplug/Makefile
index 6bc651db69..d2695b4266 100644
--- a/packages/modplug/Makefile
+++ b/packages/modplug/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=modplug
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/modplug/Makefile.fpc b/packages/modplug/Makefile.fpc
index f457bbcb74..dfccdfc4b3 100644
--- a/packages/modplug/Makefile.fpc
+++ b/packages/modplug/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=modplug
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/modplug/Makefile.fpc.fpcmake b/packages/modplug/Makefile.fpc.fpcmake
index 9862cbd905..cded05803d 100644
--- a/packages/modplug/Makefile.fpc.fpcmake
+++ b/packages/modplug/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=modplug
-version=2.7.1
+version=3.1.1
[target]
units=modplug
diff --git a/packages/modplug/fpmake.pp b/packages/modplug/fpmake.pp
index fe98d2310c..8f3be7f2df 100644
--- a/packages/modplug/fpmake.pp
+++ b/packages/modplug/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes := [linux];
P.SourcePath.Add('src');
diff --git a/packages/morphunits/Makefile b/packages/morphunits/Makefile
new file mode 100644
index 0000000000..de98eaf9cb
--- /dev/null
+++ b/packages/morphunits/Makefile
@@ -0,0 +1,2407 @@
+#
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
+#
+default: all
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
+UNIXs = linux $(BSDs) solaris qnx haiku aix
+LIMIT83fs = go32v2 os2 emx watcom msdos
+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),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
+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 units)),)
+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 units)),)
+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 units)),)
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+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
+ifeq ($(CPU_TARGET),mipsel)
+BINUTILSPREFIX=mipsel-linux-android-
+endif
+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 $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
+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=morphunits
+override PACKAGE_VERSION=3.1.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
+BATCHEXT=.bat
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+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=
+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
+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-qnx)
+REQUIRE_PACKAGES_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-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),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-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),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-embedded)
+REQUIRE_PACKAGES_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-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-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-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),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-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
+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)
+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)
+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
+ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
+ifeq ($(CPU_TARGET),i386)
+FPCCPUOPT:=-OG2p3
+endif
+ifeq ($(CPU_TARGET),powerpc)
+FPCCPUOPT:=-O1r
+endif
+else
+FPCCPUOPT:=-O2
+endif
+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),)
+ifeq ($(CPU_TARGET),x86_64)
+override FPCOPT+=-Cg
+endif
+endif
+ifdef LINKSHARED
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+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
+override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
+ifneq ($(UNITTARGETDIRPREFIX),)
+override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
+override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
+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: $(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)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
+endif
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
+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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *$(ASMEXT) *_ppas$(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
+ -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+ -$(DEL) *.o *.ppu *.a
+endif
+ -$(DELTREE) *$(SMARTEXT)
+ -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *_ppas$(BATCHEXT)
+ifdef AOUTEXT
+ -$(DEL) *$(AOUTEXT)
+endif
+ifdef DEBUGSYMEXT
+ -$(DEL) *$(DEBUGSYMEXT)
+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))
+ifdef FPMAKEOPT
+FPMAKE_OPT+=$(FPMAKEOPT)
+endif
+FPMAKE_OPT+=--localunitdir=../..
+FPMAKE_OPT+=--globalunitdir=..
+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/packages/morphunits/Makefile.fpc b/packages/morphunits/Makefile.fpc
new file mode 100644
index 0000000000..1bd179aa13
--- /dev/null
+++ b/packages/morphunits/Makefile.fpc
@@ -0,0 +1,100 @@
+#
+# Makefile.fpc for running fpmake
+#
+
+[package]
+name=morphunits
+version=3.1.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))
+# Compose general fpmake-parameters
+ifdef FPMAKEOPT
+FPMAKE_OPT+=$(FPMAKEOPT)
+endif
+FPMAKE_OPT+=--localunitdir=../..
+FPMAKE_OPT+=--globalunitdir=..
+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/packages/morphunits/Makefile.fpc.fpcmake b/packages/morphunits/Makefile.fpc.fpcmake
new file mode 100644
index 0000000000..62a9cc4c4d
--- /dev/null
+++ b/packages/morphunits/Makefile.fpc.fpcmake
@@ -0,0 +1,25 @@
+#
+# Makefile.fpc for Free Pascal MorphOS units Bindings
+#
+
+[package]
+name=morphunits
+version=3.1.1
+
+[target]
+units= aboxlib agraphics ahi amigados asl clipboard datatypes exec get9 \
+ hardware inputevent intuition keymap kvm layers mui muihelper timer \
+ tinygl utility iffparse
+
+[compiler]
+includedir=src
+sourcedir=src
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+
+[rules]
+.NOTPARALLEL:
diff --git a/packages/morphunits/fpmake.pp b/packages/morphunits/fpmake.pp
new file mode 100644
index 0000000000..00323d3e20
--- /dev/null
+++ b/packages/morphunits/fpmake.pp
@@ -0,0 +1,60 @@
+{$ifndef ALLPACKAGES}
+{$mode objfpc}{$H+}
+program fpmake;
+
+uses fpmkunit;
+
+Var
+ P : TPackage;
+ T : TTarget;
+begin
+ With Installer do
+ begin
+{$endif ALLPACKAGES}
+
+ P:=AddPackage('morphunits');
+{$ifdef ALLPACKAGES}
+ P.Directory:=ADirectory;
+{$endif ALLPACKAGES}
+ P.Version:='3.1.1';
+
+ P.Author := 'Karoly Balogh';
+ P.License := 'LGPL with modification';
+ P.HomepageURL := 'www.freepascal.org';
+ P.Email := '';
+ P.Description := 'A set of units for MorphOS. PowerPC only';
+ P.NeedLibC:= false;
+
+ P.CPUs:=[powerpc];
+ P.OSes:=[MorphOS];
+
+ P.SourcePath.Add('src');
+ P.IncludePath.Add('src');
+
+ T:=P.Targets.AddUnit('exec.pas');
+ T:=P.Targets.AddUnit('timer.pas');
+ T:=P.Targets.AddUnit('utility.pas');
+ T:=P.Targets.AddUnit('intuition.pas');
+ T:=P.Targets.AddUnit('agraphics.pas');
+ T:=P.Targets.AddUnit('amigalib.pas');
+ T:=P.Targets.AddUnit('hardware.pas');
+ T:=P.Targets.AddUnit('amigados.pas');
+ T:=P.Targets.AddUnit('clipboard.pas');
+ T:=P.Targets.AddUnit('iffparse.pas');
+ T:=P.Targets.AddUnit('datatypes.pas');
+ T:=P.Targets.AddUnit('keymap.pas');
+ T:=P.Targets.AddUnit('asl.pas');
+ T:=P.Targets.AddUnit('layers.pas');
+ T:=P.Targets.AddUnit('inputevent.pas');
+ T:=P.Targets.AddUnit('mui.pas');
+ T:=P.Targets.AddUnit('muihelper.pas');
+ T:=P.Targets.AddUnit('ahi.pas');
+ T:=P.Targets.AddUnit('kvm.pas');
+ T:=P.Targets.AddUnit('get9.pas');
+ T:=P.Targets.AddUnit('tinygl.pas');
+
+{$ifndef ALLPACKAGES}
+ Run;
+ end;
+end.
+{$endif ALLPACKAGES}
diff --git a/rtl/morphos/graphics.pas b/packages/morphunits/src/agraphics.pas
index 1b790f7d4d..69cfb6d461 100644
--- a/rtl/morphos/graphics.pas
+++ b/packages/morphunits/src/agraphics.pas
@@ -20,7 +20,7 @@
**********************************************************************}
{$PACKRECORDS 2}
-unit graphics;
+unit agraphics;
interface
@@ -2262,7 +2262,7 @@ SysCall GfxBase 156;
procedure Animate(anKey : ppAnimOb location 'a0'; rp : pRastPort location 'a1');
SysCall GfxBase 162;
-function GetGBuffers(anOb : pAnimOb location 'a0'; rp : pRastPort location 'a1'; flag : LongInt location 'd0') : BOOLEAN;
+function GetGBuffers(anOb : pAnimOb location 'a0'; rp : pRastPort location 'a1'; flag : LongInt location 'd0') : LongBool;
SysCall GfxBase 168;
procedure InitGMasks(anOb : pAnimOb location 'a0');
@@ -2343,7 +2343,7 @@ SysCall GfxBase 318;
function WritePixel(rp : pRastPort location 'a1'; x : LongInt location 'd0'; y : LongInt location 'd1') : LongInt;
SysCall GfxBase 324;
-function Flood(rp : pRastPort location 'a1'; mode : CARDINAL location 'd2'; x : LongInt location 'd0'; y : LongInt location 'd1') : BOOLEAN;
+function Flood(rp : pRastPort location 'a1'; mode : CARDINAL location 'd2'; x : LongInt location 'd0'; y : LongInt location 'd1') : LongBool;
SysCall GfxBase 330;
procedure PolyDraw(rp : pRastPort location 'a1'; count : LongInt location 'd0'; VAR polyTable : INTEGER location 'a0');
@@ -2433,13 +2433,13 @@ SysCall GfxBase 498;
procedure AndRectRegion(region : pRegion location 'a0'; rectangle : pRectangle location 'a1');
SysCall GfxBase 504;
-function OrRectRegion(region : pRegion location 'a0'; rectangle : pRectangle location 'a1') : BOOLEAN;
+function OrRectRegion(region : pRegion location 'a0'; rectangle : pRectangle location 'a1') : LongBool;
SysCall GfxBase 510;
function NewRegion : pRegion;
SysCall GfxBase 516;
-function ClearRectRegion(region : pRegion location 'a0'; rectangle : pRectangle location 'a1') : BOOLEAN;
+function ClearRectRegion(region : pRegion location 'a0'; rectangle : pRectangle location 'a1') : LongBool;
SysCall GfxBase 522;
procedure ClearRegion(region : pRegion location 'a0');
@@ -2457,7 +2457,7 @@ SysCall GfxBase 546;
procedure ClipBlit(srcRP : pRastPort location 'a0'; xSrc : LongInt location 'd0'; ySrc : LongInt location 'd1'; destRP : pRastPort location 'a1'; xDest : LongInt location 'd2'; yDest : LongInt location 'd3'; xSize : LongInt location 'd4'; ySize : LongInt location 'd5'; minterm : CARDINAL location 'd6');
SysCall GfxBase 552;
-function XorRectRegion(region : pRegion location 'a0'; rectangle : pRectangle location 'a1') : BOOLEAN;
+function XorRectRegion(region : pRegion location 'a0'; rectangle : pRectangle location 'a1') : LongBool;
SysCall GfxBase 558;
procedure FreeCprList(cprList : pcprlist location 'a0');
@@ -2484,13 +2484,13 @@ SysCall GfxBase 600;
procedure BltBitMapRastPort(srcBitMap : pBitMap location 'a0'; xSrc : LongInt location 'd0'; ySrc : LongInt location 'd1'; destRP : pRastPort location 'a1'; xDest : LongInt location 'd2'; yDest : LongInt location 'd3'; xSize : LongInt location 'd4'; ySize : LongInt location 'd5'; minterm : CARDINAL location 'd6');
SysCall GfxBase 606;
-function OrRegionRegion(srcRegion : pRegion location 'a0'; destRegion : pRegion location 'a1') : BOOLEAN;
+function OrRegionRegion(srcRegion : pRegion location 'a0'; destRegion : pRegion location 'a1') : LongBool;
SysCall GfxBase 612;
-function XorRegionRegion(srcRegion : pRegion location 'a0'; destRegion : pRegion location 'a1') : BOOLEAN;
+function XorRegionRegion(srcRegion : pRegion location 'a0'; destRegion : pRegion location 'a1') : LongBool;
SysCall GfxBase 618;
-function AndRegionRegion(srcRegion : pRegion location 'a0'; destRegion : pRegion location 'a1') : BOOLEAN;
+function AndRegionRegion(srcRegion : pRegion location 'a0'; destRegion : pRegion location 'a1') : LongBool;
SysCall GfxBase 624;
procedure SetRGB4CM(colorMap : pColorMap location 'a0'; index : LongInt location 'd0'; red : CARDINAL location 'd1'; green : CARDINAL location 'd2'; blue : CARDINAL location 'd3');
@@ -2499,7 +2499,7 @@ SysCall GfxBase 630;
procedure BltMaskBitMapRastPort(srcBitMap : pBitMap location 'a0'; xSrc : LongInt location 'd0'; ySrc : LongInt location 'd1'; destRP : pRastPort location 'a1'; xDest : LongInt location 'd2'; yDest : LongInt location 'd3'; xSize : LongInt location 'd4'; ySize : LongInt location 'd5'; minterm : CARDINAL location 'd6'; bltMask : pCHAR location 'a2');
SysCall GfxBase 636;
-function AttemptLockLayerRom(layer : pLayer location 'a5') : BOOLEAN;
+function AttemptLockLayerRom(layer : pLayer location 'a5') : LongBool;
SysCall GfxBase 654;
function GfxNew(gfxNodeType : CARDINAL location 'd0') : POINTER;
@@ -2526,13 +2526,13 @@ SysCall GfxBase 696;
function GfxLookUp(associateNode : POINTER location 'a0') : POINTER;
SysCall GfxBase 702;
-function VideoControl(colorMap : pColorMap location 'a0'; tagarray : pTagItem location 'a1') : BOOLEAN;
+function VideoControl(colorMap : pColorMap location 'a0'; tagarray : pTagItem location 'a1') : LongBool;
SysCall GfxBase 708;
function OpenMonitor(monitorName : pSHORTINT location 'a1'; displayID : CARDINAL location 'd0') : pMonitorSpec;
SysCall GfxBase 714;
-function CloseMonitor(monitorSpec : pMonitorSpec location 'a0') : BOOLEAN;
+function CloseMonitor(monitorSpec : pMonitorSpec location 'a0') : LongBool;
SysCall GfxBase 720;
function FindDisplayInfo(displayID : CARDINAL location 'd0') : POINTER;
diff --git a/rtl/morphos/ahi.pas b/packages/morphunits/src/ahi.pas
index f9655d95cc..ed9ed9c5e1 100644
--- a/rtl/morphos/ahi.pas
+++ b/packages/morphunits/src/ahi.pas
@@ -511,7 +511,7 @@ SysCall AHIBase 096;
function AHI_NextAudioID(Last_ID : Cardinal location 'd0') : Cardinal;
SysCall AHIBase 102;
-function AHI_GetAudioAttrsA(ID : Cardinal location 'd0'; Audioctrl : pAHIAudioCtrl location 'a2'; tagList : pTagItem location 'a1') : BOOLEAN;
+function AHI_GetAudioAttrsA(ID : Cardinal location 'd0'; Audioctrl : pAHIAudioCtrl location 'a2'; tagList : pTagItem location 'a1') : LongBool;
SysCall AHIBase 108;
function AHI_BestAudioIDA(tagList : pTagItem location 'a1') : Cardinal;
@@ -520,7 +520,7 @@ SysCall AHIBase 114;
function AHI_AllocAudioRequestA(tagList : pTagItem location 'a0') : pAHIAudioModeRequester;
SysCall AHIBase 120;
-function AHI_AudioRequestA(Requester : pAHIAudioModeRequester location 'a0'; tagList : pTagItem location 'a1') : BOOLEAN;
+function AHI_AudioRequestA(Requester : pAHIAudioModeRequester location 'a0'; tagList : pTagItem location 'a1') : LongBool;
SysCall AHIBase 126;
procedure AHI_FreeAudioRequest(Requester : pAHIAudioModeRequester location 'a0');
diff --git a/packages/morphunits/src/amigados.pas b/packages/morphunits/src/amigados.pas
new file mode 100644
index 0000000000..96fb8ddedd
--- /dev/null
+++ b/packages/morphunits/src/amigados.pas
@@ -0,0 +1,2164 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
+
+ dos.library interface unit for MorphOS/PowerPC
+
+ MorphOS port was done on a free Pegasos II/G4 machine
+ provided by Genesi S.a.r.l. <www.genesi.lu>
+
+ 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.
+
+ **********************************************************************}
+{$INLINE ON}
+{$PACKRECORDS 2}
+
+unit AmigaDOS;
+
+interface
+
+uses Exec, Timer;
+
+var
+ DosBase: Pointer;
+
+
+{ * dos global definitions (V50)
+ *********************************************************************
+ * }
+
+
+const
+ DOSNAME = 'dos.library';
+
+const
+ DOSTRUE = -1;
+ DOSFALSE = 0;
+
+const
+ MODE_OLDFILE = 1005;
+ MODE_NEWFILE = 1006;
+ MODE_READWRITE = 1004;
+
+const
+ OFFSET_BEGINNING = -1;
+ OFFSET_CURRENT = 0;
+ OFFSET_END = 1;
+ OFFSET_BEGINING = OFFSET_BEGINNING; { * Typo fix * }
+
+const
+ BITSPERBYTE = 8;
+ BYTESPERLONG = 4;
+ BITSPERLONG = 32;
+ _MAXINT = $7FFFFFFF;
+ _MININT = $80000000;
+
+const
+ SHARED_LOCK = -2;
+ ACCESS_READ = -2;
+ EXCLUSIVE_LOCK = -1;
+ ACCESS_WRITE = -1;
+
+
+type
+ PDateStamp = ^TDateStamp;
+ TDateStamp = packed record
+ ds_Days : LongInt;
+ ds_Minute: LongInt;
+ ds_Tick : LongInt;
+ end;
+
+const
+ TICKS_PER_SECOND = 50;
+
+
+type
+ PFileInfoBlock = ^TFileInfoBlock;
+ TFileInfoBlock = packed record
+ fib_DiskKey : LongInt;
+ fib_DirEntryType: LongInt;
+ fib_FileName : Array[0..107] Of Char;
+ fib_Protection : LongInt;
+ fib_EntryType : LongInt;
+ fib_Size : LongInt;
+ fib_NumBlocks : LongInt;
+ fib_Date : TDateStamp;
+ fib_Comment : Array[0..79] Of Char;
+
+ fib_OwnerUID : Word;
+ fib_OwnerGID : Word;
+
+ fib_Reserved : Array[0..31] Of Char;
+ end;
+
+const
+ FIBB_OTR_READ = 15;
+ FIBB_OTR_WRITE = 14;
+ FIBB_OTR_EXECUTE = 13;
+ FIBB_OTR_DELETE = 12;
+ FIBB_GRP_READ = 11;
+ FIBB_GRP_WRITE = 10;
+ FIBB_GRP_EXECUTE = 9;
+ FIBB_GRP_DELETE = 8;
+
+ FIBB_SCRIPT = 6;
+ FIBB_PURE = 5;
+ FIBB_ARCHIVE = 4;
+ FIBB_READ = 3;
+ FIBB_WRITE = 2;
+ FIBB_EXECUTE = 1;
+ FIBB_DELETE = 0;
+
+const
+ FIBF_OTR_READ = (1 Shl FIBB_OTR_READ);
+ FIBF_OTR_WRITE = (1 Shl FIBB_OTR_WRITE);
+ FIBF_OTR_EXECUTE = (1 Shl FIBB_OTR_EXECUTE);
+ FIBF_OTR_DELETE = (1 Shl FIBB_OTR_DELETE);
+ FIBF_GRP_READ = (1 Shl FIBB_GRP_READ);
+ FIBF_GRP_WRITE = (1 Shl FIBB_GRP_WRITE);
+ FIBF_GRP_EXECUTE = (1 Shl FIBB_GRP_EXECUTE);
+ FIBF_GRP_DELETE = (1 Shl FIBB_GRP_DELETE);
+
+ FIBF_SCRIPT = (1 Shl FIBB_SCRIPT);
+ FIBF_PURE = (1 Shl FIBB_PURE);
+ FIBF_ARCHIVE = (1 Shl FIBB_ARCHIVE);
+ FIBF_READ = (1 Shl FIBB_READ);
+ FIBF_WRITE = (1 Shl FIBB_WRITE);
+ FIBF_EXECUTE = (1 Shl FIBB_EXECUTE);
+ FIBF_DELETE = (1 Shl FIBB_DELETE);
+
+const
+ FAULT_MAX = 82;
+
+
+type
+ BPTR = LongInt;
+ BSTR = LongInt;
+
+type
+ PInfoData = ^TInfoData;
+ TInfoData = packed record
+ id_NumSoftErrors: LongInt;
+ id_UnitNumber : LongInt;
+ id_DiskState : LongInt;
+ id_NumBlocks : LongInt;
+ id_NumBlocksUsed: LongInt;
+ id_BytesPerBlock: LongInt;
+ id_DiskType : LongInt;
+ id_VolumeNode : LongInt; {BPTR}
+ id_InUse : LongInt;
+ end;
+
+
+const
+ ID_WRITE_PROTECTED = 80;
+ ID_VALIDATING = 81;
+ ID_VALIDATED = 82;
+
+ ID_NO_DISK_PRESENT = -1;
+ ID_UNREADABLE_DISK = $42414400;
+ ID_DOS_DISK = $444F5300;
+ ID_FFS_DISK = $444F5301;
+ ID_INTER_DOS_DISK = $444F5302;
+ ID_INTER_FFS_DISK = $444F5303;
+ ID_FASTDIR_DOS_DISK = $444F5304;
+ ID_FASTDIR_FFS_DISK = $444F5305;
+ ID_LNFS_DOS_DISK = $444F5306;
+ ID_LNFS_FFS_DISK = $444F5307;
+ ID_NOT_REALLY_DOS = $4E444F53;
+ ID_KICKSTART_DISK = $4B49434B;
+ ID_MSDOS_DISK = $4d534400;
+
+const
+ ERROR_NO_FREE_STORE = 103;
+ ERROR_TASK_TABLE_FULL = 105;
+ ERROR_BAD_TEMPLATE = 114;
+ ERROR_BAD_NUMBER = 115;
+ ERROR_REQUIRED_ARG_MISSING = 116;
+ ERROR_KEY_NEEDS_ARG = 117;
+ ERROR_TOO_MANY_ARGS = 118;
+ ERROR_UNMATCHED_QUOTES = 119;
+ ERROR_LINE_TOO_LONG = 120;
+ ERROR_FILE_NOT_OBJECT = 121;
+ ERROR_INVALID_RESIDENT_LIBRARY = 122;
+ ERROR_NO_DEFAULT_DIR = 201;
+ ERROR_OBJECT_IN_USE = 202;
+ ERROR_OBJECT_EXISTS = 203;
+ ERROR_DIR_NOT_FOUND = 204;
+ ERROR_OBJECT_NOT_FOUND = 205;
+ ERROR_BAD_STREAM_NAME = 206;
+ ERROR_OBJECT_TOO_LARGE = 207;
+ ERROR_ACTION_NOT_KNOWN = 209;
+ ERROR_INVALID_COMPONENT_NAME = 210;
+ ERROR_INVALID_LOCK = 211;
+ ERROR_OBJECT_WRONG_TYPE = 212;
+ ERROR_DISK_NOT_VALIDATED = 213;
+ ERROR_DISK_WRITE_PROTECTED = 214;
+ ERROR_RENAME_ACROSS_DEVICES = 215;
+ ERROR_DIRECTORY_NOT_EMPTY = 216;
+ ERROR_TOO_MANY_LEVELS = 217;
+ ERROR_DEVICE_NOT_MOUNTED = 218;
+ ERROR_SEEK_ERROR = 219;
+ ERROR_COMMENT_TOO_BIG = 220;
+ ERROR_DISK_FULL = 221;
+ ERROR_DELETE_PROTECTED = 222;
+ ERROR_WRITE_PROTECTED = 223;
+ ERROR_READ_PROTECTED = 224;
+ ERROR_NOT_A_DOS_DISK = 225;
+ ERROR_NO_DISK = 226;
+ ERROR_NO_MORE_ENTRIES = 232;
+
+ ERROR_IS_SOFT_LINK = 233;
+ ERROR_OBJECT_LINKED = 234;
+ ERROR_BAD_HUNK = 235;
+ ERROR_NOT_IMPLEMENTED = 236;
+ ERROR_RECORD_NOT_LOCKED = 240;
+ ERROR_LOCK_COLLISION = 241;
+ ERROR_LOCK_TIMEOUT = 242;
+ ERROR_UNLOCK_ERROR = 243;
+
+const
+ RETURN_OK = 0;
+ RETURN_WARN = 5;
+ RETURN_ERROR = 10;
+ RETURN_FAIL = 20;
+
+const
+ SIGBREAKB_CTRL_C = 12;
+ SIGBREAKB_CTRL_D = 13;
+ SIGBREAKB_CTRL_E = 14;
+ SIGBREAKB_CTRL_F = 15;
+
+ SIGBREAKF_CTRL_C = (1 Shl SIGBREAKB_CTRL_C);
+ SIGBREAKF_CTRL_D = (1 Shl SIGBREAKB_CTRL_D);
+ SIGBREAKF_CTRL_E = (1 Shl SIGBREAKB_CTRL_E);
+ SIGBREAKF_CTRL_F = (1 Shl SIGBREAKB_CTRL_F);
+
+const
+ LOCK_DIFFERENT = -1;
+ LOCK_SAME = 0;
+ LOCK_SAME_VOLUME = 1;
+ LOCK_SAME_HANDLER = LOCK_SAME_VOLUME;
+
+const
+ CHANGE_LOCK = 0;
+ CHANGE_FH = 1;
+
+const
+ LINK_HARD = 0;
+ LINK_SOFT = 1;
+
+const
+ ITEM_EQUAL = -2;
+ ITEM_ERROR = -1;
+ ITEM_NOTHING = 0;
+ ITEM_UNQUOTED = 1;
+ ITEM_QUOTED = 2;
+
+const
+ DOS_FILEHANDLE = 0;
+ DOS_EXALLCONTROL = 1;
+ DOS_FIB = 2;
+ DOS_STDPKT = 3;
+ DOS_CLI = 4;
+ DOS_RDARGS = 5;
+
+
+
+{ * dos date/time definitions
+ *********************************************************************
+ * }
+
+
+type
+ { * Required to avoid conflict with default types * }
+ _PDateTime = ^_TDateTime;
+ _TDateTime = packed record
+ dat_Stamp : TDateStamp;
+ dat_Format : Byte;
+ dat_Flags : Byte;
+ dat_StrDay : Pointer;
+ dat_StrDate: Pointer;
+ dat_StrTime: Pointer;
+ end;
+
+const
+ LEN_DATSTRING = 16;
+
+const
+ DTB_SUBST = 0;
+ DTF_SUBST = (1 Shl DTB_SUBST);
+ DTB_FUTURE = 1;
+ DTF_FUTURE = (1 Shl DTB_FUTURE);
+
+const
+ FORMAT_DOS = 0;
+ FORMAT_INT = 1;
+ FORMAT_USA = 2;
+ FORMAT_CDN = 3;
+ FORMAT_MAX = FORMAT_CDN;
+ FORMAT_DEF = 4;
+
+
+
+{ * dos extended structures definitions
+ *********************************************************************
+ * }
+
+
+type
+ PProcess = ^TProcess;
+ TProcess = packed record
+ pr_Task : TTask;
+ pr_MsgPort : TMsgPort;
+ pr_Pad : Word;
+ pr_SegList : DWord; { BPTR }
+ pr_StackSize : LongInt; { 68k stacksize! }
+ pr_GlobVec : Pointer;
+ pr_TaskNum : LongInt;
+ pr_StackBase : DWord; { BPTR }
+ pr_Result2 : LongInt;
+ pr_CurrentDir : DWord; { BPTR }
+ pr_CIS : DWord; { BPTR }
+ pr_COS : DWord; { BPTR }
+ pr_ConsoleTask : Pointer;
+ pr_FileSystemTask: Pointer;
+ pr_CLI : DWord; { BPTR }
+ pr_ReturnAddr : Pointer;
+ pr_PktWait : Pointer;
+ pr_WindowPtr : Pointer;
+ pr_HomeDir : DWord; { BPTR }
+ pr_Flags : LongInt;
+ pr_ExitCode : Pointer; { Procedure }
+ pr_ExitData : LongInt;
+ pr_Arguments : PChar;
+ pr_LocalVars : TMinList;
+ pr_ShellPrivate : DWord;
+ pr_CES : DWord; { BPTR }
+ end;
+
+const
+ PRB_FREESEGLIST = 0;
+ PRF_FREESEGLIST = (1 Shl PRB_FREESEGLIST);
+
+ PRB_FREECURRDIR = 1;
+ PRF_FREECURRDIR = (1 Shl PRB_FREECURRDIR);
+
+ PRB_FREECLI = 2;
+ PRF_FREECLI = (1 Shl PRB_FREECLI);
+
+ PRB_CLOSEINPUT = 3;
+ PRF_CLOSEINPUT = (1 Shl PRB_CLOSEINPUT);
+
+ PRB_CLOSEOUTPUT = 4;
+ PRF_CLOSEOUTPUT = (1 Shl PRB_CLOSEOUTPUT);
+
+ PRB_FREEARGS = 5;
+ PRF_FREEARGS = (1 Shl PRB_FREEARGS);
+
+
+type
+ PFileHandle = ^TFileHandle;
+ TFileHandle = packed record
+ fh_Flags : DWord;
+ fh_Interactive: LongInt;
+ fh_Type : PMsgPort;
+ fh_Buf : LongInt;
+ fh_Pos : LongInt;
+ fh_End : LongInt;
+ fh_Func1 : LongInt;
+ fh_Func2 : LongInt;
+ fh_Func3 : LongInt;
+ fh_Arg1 : LongInt;
+ fh_Arg2 : LongInt;
+ { *** V50 MorphOS *** }
+ fh_BufSize : LongInt;
+ fh_OrigBuf : LongInt;
+ end;
+
+type
+ PDOSPacket = ^TDOSPacket;
+ TDOSPacket = packed record
+ dp_Link: PMessage;
+ dp_Port: PMsgPort;
+ case Byte of
+ 0 : ( dp_Action : Longint;
+ dp_Status : Longint;
+ dp_Status2: Longint;
+ dp_BufAddr: Longint;
+ );
+ 1 : ( dp_Type: Longint;
+ dp_Res1: Longint;
+ dp_Res2: Longint;
+ dp_Arg1: Longint;
+ dp_Arg2: Longint;
+ dp_Arg3: Longint;
+ dp_Arg4: Longint;
+ dp_Arg5: Longint;
+ dp_Arg6: Longint;
+ dp_Arg7: Longint;
+ );
+ end;
+
+type
+ PStandardPacket = ^TStandardPacket;
+ TStandardPacket = packed record
+ sp_Msg: TMessage;
+ sp_Pkt: TDOSPacket;
+ end;
+
+
+const
+ ACTION_NIL = 0;
+ ACTION_STARTUP = 0;
+ ACTION_GET_BLOCK = 2; { *** OBSOLETE *** }
+ ACTION_SET_MAP = 4;
+ ACTION_DIE = 5;
+ ACTION_EVENT = 6;
+ ACTION_CURRENT_VOLUME = 7;
+ ACTION_LOCATE_OBJECT = 8;
+ ACTION_RENAME_DISK = 9;
+ ACTION_WRITE = 'W';
+ ACTION_READ = 'R';
+ ACTION_FREE_LOCK = 15;
+ ACTION_DELETE_OBJECT = 16;
+ ACTION_RENAME_OBJECT = 17;
+ ACTION_MORE_CACHE = 18;
+ ACTION_COPY_DIR = 19;
+ ACTION_WAIT_CHAR = 20;
+ ACTION_SET_PROTECT = 21;
+ ACTION_CREATE_DIR = 22;
+ ACTION_EXAMINE_OBJECT = 23;
+ ACTION_EXAMINE_NEXT = 24;
+ ACTION_DISK_INFO = 25;
+ ACTION_INFO = 26;
+ ACTION_FLUSH = 27;
+ ACTION_SET_COMMENT = 28;
+ ACTION_PARENT = 29;
+ ACTION_TIMER = 30;
+ ACTION_INHIBIT = 31;
+ ACTION_DISK_TYPE = 32;
+ ACTION_DISK_CHANGE = 33;
+ ACTION_SET_DATE = 34;
+
+ ACTION_SAME_LOCK = 40;
+
+ ACTION_SCREEN_MODE = 994;
+
+ ACTION_CHANGE_SIGNAL = 995;
+
+ ACTION_READ_RETURN = 1001;
+ ACTION_WRITE_RETURN = 1002;
+ ACTION_SEEK = 1008;
+ ACTION_FINDUPDATE = 1004;
+ ACTION_FINDINPUT = 1005;
+ ACTION_FINDOUTPUT = 1006;
+ ACTION_END = 1007;
+
+ ACTION_FORMAT = 1020;
+ ACTION_MAKE_LINK = 1021;
+
+ ACTION_SET_FILE_SIZE = 1022;
+ ACTION_WRITE_PROTECT = 1023;
+
+ ACTION_READ_LINK = 1024;
+ ACTION_FH_FROM_LOCK = 1026;
+ ACTION_IS_FILESYSTEM = 1027;
+ ACTION_CHANGE_MODE = 1028;
+
+ ACTION_COPY_DIR_FH = 1030;
+ ACTION_PARENT_FH = 1031;
+ ACTION_EXAMINE_ALL = 1033;
+ ACTION_EXAMINE_FH = 1034;
+
+ ACTION_EXAMINE_ALL_END = 1035;
+ ACTION_SET_OWNER = 1036;
+
+ ACTION_LOCK_RECORD = 2008;
+ ACTION_FREE_RECORD = 2009;
+
+ ACTION_ADD_NOTIFY = 4097;
+ ACTION_REMOVE_NOTIFY = 4098;
+
+ ACTION_SERIALIZE_DISK = 4200;
+
+ ACTION_GET_DISK_FSSM = 4201;
+ ACTION_FREE_DISK_FSSM = 4202;
+
+
+type
+ PErrorString = ^TErrorString;
+ TErrorString = packed record
+ estr_Nums: Pointer; { ^LongInt }
+ estr_Byte: Pointer; { ^Byte }
+ end;
+
+type
+ PRootNode = ^TRootNode;
+ TRootNode = packed record
+ rn_TaskArray : DWord; { BPTR }
+ rn_ConsoleSegment : DWord; { BPTR }
+ rn_Time : TDateStamp;
+ rn_RestartSeg : LongInt;
+ rn_Info : DWord; { BPTR }
+ rn_FileHandlerSegment: DWord; { BPTR }
+ rn_CliList : TMinList;
+ rn_BootProc : PMsgPort;
+ rn_ShellSegment : DWord; { BPTR }
+ rn_Flags : LongInt;
+ end;
+
+type
+ PDOSLibrary = ^TDOSLibrary;
+ TDOSLibrary = packed record
+ dl_Lib : TLibrary;
+ dl_Root : PRootNode;
+ dl_GU : Pointer;
+ dl_A2 : LongInt;
+ dl_A5 : LongInt;
+ dl_A6 : LongInt;
+ dl_Errors : PErrorString;
+ dl_TimeReq : PTimeRequest;
+ dl_UtilityBase : PLibrary;
+ dl_IntuitionBase: PLibrary;
+ end;
+
+
+const
+ RNB_WILDSTAR = 24;
+ RNF_WILDSTAR = (1 Shl RNB_WILDSTAR);
+
+ RNB_PRIVATE1 = 1;
+ RNF_PRIVATE1 = (1 Shl RNB_PRIVATE1);
+
+
+type
+ PCliProcList = ^TCliProcList;
+ TCliProcList = packed record
+ cpl_Node : TMinNode;
+ cpl_First: LongInt;
+ cpl_Array: Array[0..0] Of PMsgPort;
+ end;
+
+type
+ PDOSInfo = ^TDOSInfo;
+ TDOSInfo = packed record
+ case Byte of
+ 0 : ( di_ResList: DWord; { BPTR }
+ );
+ 1 : ( di_McName : DWord; { BPTR }
+ di_DevInfo : DWord; { BPTR }
+ di_Devices : DWord; { BPTR }
+ di_Handlers : DWord; { BPTR }
+ di_NetHand : Pointer;
+ di_DevLock : TSignalSemaphore;
+ di_EntryLock : TSignalSemaphore;
+ di_DeleteLock: TSignalSemaphore;
+ );
+ end;
+
+type
+ PSegment = ^TSegment;
+ TSegment = packed record
+ seg_Next : DWord; { BPTR }
+ seg_UC : LongInt;
+ seg_Seg : DWord; { BPTR }
+ seg_Name : Array[0..3] Of Byte;
+ { * seg_Name continues * }
+ end;
+
+
+const
+ CMD_SYSTEM = -1;
+ CMD_INTERNAL = -2;
+ CMD_NOTLOADED = -998;
+ CMD_DISABLED = -999;
+
+
+type
+ PCommandLineInterface = ^TCommandLineInterface;
+ TCommandLineInterface = packed record
+ cli_Result2 : LongInt;
+ cli_SetName : DWord; { BSTR }
+ cli_CommandDir : DWord; { BPTR }
+ cli_ReturnCode : LongInt;
+ cli_CommandName : DWord; { BSTR }
+ cli_FailLevel : LongInt;
+ cli_Prompt : DWord; { BSTR }
+ cli_StandardInput : DWord; { BPTR }
+ cli_CurrentInput : DWord; { BPTR }
+ cli_CommandFile : DWord; { BSTR }
+ cli_Interactive : LongInt;
+ cli_Background : LongInt;
+ cli_CurrentOutput : DWord; { BPTR }
+ cli_DefaultStack : LongInt;
+ cli_StandardOutput: DWord; { BPTR }
+ cli_Module : DWord; { BPTR }
+ end;
+
+type
+ PDeviceList = ^TDeviceList;
+ TDeviceList = packed record
+ dl_Next : DWord; { BPTR }
+ dl_Type : LongInt;
+ dl_Task : PMsgPort;
+ dl_Lock : DWord; { BPTR }
+ dl_VolumeDate: TDateStamp;
+ dl_LockList : DWord; { BPTR }
+ dl_DiskType : LongInt;
+ dl_unused : LongInt;
+ dl_Name : DWord; { BSTR }
+ end;
+
+type
+ PDevInfo = ^TDevInfo;
+ TDevInfo = packed record
+ dvi_Next : DWord; { BPTR }
+ dvi_Type : LongInt;
+ dvi_Task : Pointer;
+ dvi_Lock : DWord; { BPTR }
+ dvi_Handler : DWord; { BSTR }
+ dvi_StackSize: LongInt;
+ dvi_Priority : LongInt;
+ dvi_Startup : LongInt;
+ dvi_SegList : DWord; { BPTR }
+ dvi_GlobVec : DWord; { BPTR }
+ dvi_Name : DWord; { BSTR }
+ end;
+
+type
+ PAssignList = ^TAssignList;
+ TAssignList = packed record
+ al_Next: PAssignList;
+ al_Lock: DWord; { BPTR }
+ end;
+
+type
+ PDOSList = ^TDOSList;
+ TDOSList = packed record
+ dol_Next: DWord; { BPTR }
+ dol_Type: LongInt;
+ dol_Task: PMsgPort;
+ dol_Lock: DWord; { BPTR }
+ case Byte of
+ 0: ( dol_handler : record
+ dol_Handler : DWord; { BSTR }
+ dol_StackSize: LongInt;
+ dol_Priority : LongInt;
+ dol_Startup : DWord;
+ dol_SegList : DWord; { BPTR }
+ dol_GlobVec : DWord; { BPTR }
+ end;
+ );
+ 1: ( dol_volume : record
+ dol_VolumeDate: TDateStamp;
+ dol_LockList : DWord; { BPTR }
+ dol_DiskType : LongInt;
+ end;
+ );
+ 2: ( dol_assign : record
+ dol_AssignName: PChar;
+ dol_List : PAssignList;
+ end;
+ );
+ 3: ( dol_Misc: array[0..23] of Byte;
+ dol_Name: DWord; { BPTR }
+ );
+ end;
+
+
+const
+ DLT_DEVICE = 0;
+ DLT_DIRECTORY = 1;
+ DLT_VOLUME = 2;
+ DLT_LATE = 3;
+ DLT_NONBINDING = 4;
+ DLT_PRIVATE = -1;
+
+
+type
+ PDevProc = ^TDevProc;
+ TDevProc = packed record
+ dvp_Port : PMsgPort;
+ dvp_Lock : DWord; { BPTR }
+ dvp_Flags : DWord;
+ dvp_DevNode: PDOSList;
+ end;
+
+
+const
+ DVPB_UNLOCK = 0;
+ DVPF_UNLOCK = (1 Shl DVPB_UNLOCK);
+
+ DVPB_ASSIGN = 1;
+ DVPF_ASSIGN = (1 Shl DVPB_ASSIGN);
+
+const
+ LDB_READ = 0;
+ LDF_READ = (1 Shl LDB_READ);
+
+ LDB_WRITE = 1;
+ LDF_WRITE = (1 Shl LDB_WRITE);
+
+ LDB_DEVICES = 2;
+ LDF_DEVICES = (1 Shl LDB_DEVICES);
+
+ LDB_VOLUMES = 3;
+ LDF_VOLUMES = (1 Shl LDB_VOLUMES);
+
+ LDB_ASSIGNS = 4;
+ LDF_ASSIGNS = (1 Shl LDB_ASSIGNS);
+
+ LDB_ENTRY = 5;
+ LDF_ENTRY = (1 Shl LDB_ENTRY);
+
+ LDB_DELETE = 6;
+ LDF_DELETE = (1 Shl LDB_DELETE);
+
+ LDF_ALL = (LDF_DEVICES Or LDF_VOLUMES Or LDF_ASSIGNS);
+
+
+type
+ PFileLock = ^TFileLock;
+ TFileLock = packed record
+ fl_Link : DWord; { BPTR }
+ fl_Key : LongInt;
+ fl_Access: LongInt;
+ fl_Task : PMsgPort;
+ fl_Volume: DWord; { BPTR }
+ end;
+
+
+const
+ REPORT_STREAM = 0;
+ REPORT_TASK = 1;
+ REPORT_LOCK = 2;
+ REPORT_VOLUME = 3;
+ REPORT_INSERT = 4;
+
+const
+ ABORT_DISK_ERROR = 296;
+ ABORT_BUSY = 288;
+
+const
+ RUN_EXECUTE = -1;
+ RUN_SYSTEM = -2;
+ RUN_SYSTEM_ASYNCH = -3;
+
+const
+ ST_ROOT = 1;
+ ST_USERDIR = 2;
+ ST_SOFTLINK = 3;
+ ST_LINKDIR = 4;
+ ST_FILE = -3;
+ ST_LINKFILE = -4;
+ ST_PIPEFILE = -5;
+
+
+
+{ * dos asl definitions
+ *********************************************************************
+ * }
+
+
+type
+ PAChain = ^TAChain;
+ TAChain = packed record
+ an_Child : PAChain;
+ an_Parent: PAChain;
+ an_Lock : DWord; { BPTR }
+ an_Info : TFileInfoBlock;
+ an_Flags : ShortInt;
+ an_String: Array[0..0] Of Char;
+ { * an_String continues * }
+ end;
+
+type
+ PAnchorPath = ^TAnchorPath;
+ TAnchorPath = packed record
+ case Byte of
+ 0 : ( ap_First: PAChain;
+ ap_Last : PAChain;
+ );
+ 1 : ( ap_Base : PAChain;
+ ap_Current : PAChain;
+ ap_BreakBits : LongInt;
+ ap_FoundBreak: LongInt;
+ ap_Flags : ShortInt;
+ ap_Reserved : ShortInt;
+ ap_Strlen : SmallInt;
+ ap_Info : TFileInfoBlock;
+ ap_Buf : Array[0..0] of Char;
+ { * an_Buf continues * }
+ );
+ end;
+
+
+const
+ APB_DOWILD = 0;
+ APF_DOWILD = (1 Shl APB_DOWILD);
+
+ APB_ITSWILD = 1;
+ APF_ITSWILD = (1 Shl APB_ITSWILD);
+
+ APB_DODIR = 2;
+ APF_DODIR = (1 Shl APB_DODIR);
+
+ APB_DIDDIR = 3;
+ APF_DIDDIR = (1 Shl APB_DIDDIR);
+
+ APB_NOMEMERR = 4;
+ APF_NOMEMERR = (1 Shl APB_NOMEMERR);
+
+ APB_DODOT = 5;
+ APF_DODOT = (1 Shl APB_DODOT);
+
+ APB_DirChanged = 6;
+ APF_DirChanged = (1 Shl APB_DirChanged);
+
+ APB_FollowHLinks = 7;
+ APF_FollowHLinks = (1 Shl APB_FollowHLinks);
+
+const
+ APSB_EXTENDED = 15;
+ APSF_EXTENDED = (1 Shl APSB_EXTENDED);
+
+ APEB_DoMultiAssigns = 0;
+ APEF_DoMultiAssigns = (1 Shl APEB_DoMultiAssigns);
+
+ APEB_FutureExtension = 7;
+ APEF_FutureExtension = (1 Shl APEB_FutureExtension);
+
+const
+ DDB_PatternBit = 0;
+ DDF_PatternBit = (1 Shl DDB_PatternBit);
+
+ DDB_ExaminedBit = 1;
+ DDF_ExaminedBit = (1 Shl DDB_ExaminedBit);
+
+ DDB_Completed = 2;
+ DDF_Completed = (1 Shl DDB_Completed);
+
+ DDB_AllBit = 3;
+ DDF_AllBit = (1 Shl DDB_AllBit);
+
+ DDB_Single = 4;
+ DDF_Single = (1 Shl DDB_Single);
+
+const
+ P_ANY = $80;
+ P_SINGLE = $81;
+ P_ORSTART = $82;
+ P_ORNEXT = $83;
+ P_OREND = $84;
+ P_NOT = $85;
+ P_NOTEND = $86;
+ P_NOTCLASS = $87;
+ P_CLASS = $88;
+ P_REPBEG = $89;
+ P_REPEND = $8A;
+ P_STOP = $8B;
+
+const
+ COMPLEX_BIT = 1;
+ EXAMINE_BIT = 2;
+
+const
+ ERROR_BUFFER_OVERFLOW = 303;
+ ERROR_BREAK = 304;
+ ERROR_NOT_EXECUTABLE = 305;
+
+
+
+{ * dos hunk definitions
+ *********************************************************************
+ * }
+
+
+const
+ HUNK_UNIT = 999;
+ HUNK_NAME = 1000;
+ HUNK_CODE = 1001;
+ HUNK_DATA = 1002;
+ HUNK_BSS = 1003;
+
+ HUNK_RELOC32 = 1004;
+ HUNK_ABSRELOC32 = HUNK_RELOC32;
+
+ HUNK_RELOC16 = 1005;
+ HUNK_RELRELOC16 = HUNK_RELOC16;
+
+ HUNK_RELOC8 = 1006;
+ HUNK_RELRELOC8 = HUNK_RELOC8;
+
+ HUNK_EXT = 1007;
+ HUNK_SYMBOL = 1008;
+ HUNK_DEBUG = 1009;
+ HUNK_END = 1010;
+ HUNK_HEADER = 1011;
+
+ HUNK_OVERLAY = 1013;
+ HUNK_BREAK = 1014;
+
+ HUNK_DREL32 = 1015;
+ HUNK_DREL16 = 1016;
+ HUNK_DREL8 = 1017;
+
+ HUNK_LIB = 1018;
+ HUNK_INDEX = 1019;
+
+ HUNK_RELOC32SHORT = 1020;
+
+ HUNK_RELRELOC32 = 1021;
+ HUNK_ABSRELOC16 = 1022;
+
+const
+ HUNKB_ADVISORY = 29;
+ HUNKB_CHIP = 30;
+ HUNKB_FAST = 31;
+
+ HUNKF_ADVISORY = (1 Shl HUNKB_ADVISORY);
+ HUNKF_CHIP = (1 Shl HUNKB_CHIP);
+ HUNKF_FAST = (1 Shl HUNKB_FAST);
+
+const
+ EXT_SYMB = 0;
+ EXT_DEF = 1;
+ EXT_ABS = 2;
+ EXT_RES = 3;
+
+ EXT_REF32 = 129;
+ EXT_ABSREF32 = EXT_REF32;
+
+ EXT_COMMON = 130;
+ EXT_ABSCOMMON = EXT_COMMON;
+
+ EXT_REF16 = 131;
+ EXT_RELREF16 = EXT_REF16;
+
+ EXT_REF8 = 132;
+ EXT_RELREF8 = EXT_REF8;
+
+ EXT_DEXT32 = 133;
+ EXT_DEXT16 = 134;
+ EXT_DEXT8 = 135;
+
+ EXT_RELREF32 = 136;
+ EXT_RELCOMMON = 137;
+
+ EXT_ABSREF16 = 138;
+
+ EXT_ABSREF8 = 139;
+
+
+
+{ * dos ExAll definitions
+ *********************************************************************
+ * }
+
+
+const
+ ED_NAME = 1;
+ ED_TYPE = 2;
+ ED_SIZE = 3;
+ ED_PROTECTION = 4;
+ ED_DATE = 5;
+ ED_COMMENT = 6;
+ ED_OWNER = 7;
+
+
+type
+ PExAllData = ^TExAllData;
+ TExAllData = packed record
+ ed_Next : PExAllData;
+ ed_Name : PChar;
+ ed_Type : LongInt;
+ ed_Size : Cardinal;
+ ed_Prot : Cardinal;
+ ed_Days : Cardinal;
+ ed_Mins : Cardinal;
+ ed_Ticks : Cardinal;
+ ed_Comment : PChar;
+ ed_OwnerUID: Word;
+ ed_OwnerGID: Word;
+ end;
+
+type
+ PExAllControl = ^TExAllControl;
+ TexAllControl = packed record
+ eac_Entries : Cardinal;
+ eac_LastKey : Cardinal;
+ eac_MatchString: PChar;
+ eac_MatchFunc : PHook;
+
+ end;
+
+
+
+{ * dos record definitions
+ *********************************************************************
+ * }
+
+
+const
+ REC_EXCLUSIVE = 0;
+ REC_EXCLUSIVE_IMMED = 1;
+ REC_SHARED = 2;
+ REC_SHARED_IMMED = 3;
+
+
+type
+ PRecordLock = ^TRecordLock;
+ TRecordLock = packed record
+ rec_FH : LongInt;
+ rec_Offset: Cardinal;
+ rec_Length: Cardinal;
+ rec_Mode : Cardinal;
+ end;
+
+
+
+{ * dos tag definitions (V50)
+ *********************************************************************
+ * }
+
+
+const
+ SYS_Dummy = (TAG_USER + 32);
+ SYS_Input = (SYS_Dummy + 1);
+ SYS_Output = (SYS_Dummy + 2);
+ SYS_Asynch = (SYS_Dummy + 3);
+ SYS_UserShell = (SYS_Dummy + 4);
+ SYS_CustomShell = (SYS_Dummy + 5);
+
+ { *** V50 *** }
+ SYS_FilterTags = (SYS_Dummy + 6); { * filters the tags passed down to CreateNewProc(), default: TRUE * }
+
+const
+ NP_Dummy = (TAG_USER + 1000);
+ NP_Seglist = (NP_Dummy + 1);
+ NP_FreeSeglist = (NP_Dummy + 2);
+ NP_Entry = (NP_Dummy + 3);
+ NP_Input = (NP_Dummy + 4);
+ NP_Output = (NP_Dummy + 5);
+ NP_CloseInput = (NP_Dummy + 6);
+ NP_CloseOutput = (NP_Dummy + 7);
+ NP_Error = (NP_Dummy + 8);
+ NP_CloseError = (NP_Dummy + 9);
+ NP_CurrentDir = (NP_Dummy + 10);
+ NP_StackSize = (NP_Dummy + 11);
+ NP_Name = (NP_Dummy + 12);
+ NP_Priority = (NP_Dummy + 13);
+ NP_ConsoleTask = (NP_Dummy + 14);
+ NP_WindowPtr = (NP_Dummy + 15);
+ NP_HomeDir = (NP_Dummy + 16);
+ NP_CopyVars = (NP_Dummy + 17);
+ NP_Cli = (NP_Dummy + 18);
+ NP_Path = (NP_Dummy + 19);
+ NP_CommandName = (NP_Dummy + 20);
+ NP_Arguments = (NP_Dummy + 21);
+
+ NP_NotifyOnDeath = (NP_Dummy + 22);
+ NP_Synchronous = (NP_Dummy + 23);
+ NP_ExitCode = (NP_Dummy + 24);
+ NP_ExitData = (NP_Dummy + 25);
+
+ { *** V50 *** }
+ NP_SeglistArray = (NP_Dummy + 26);
+ NP_UserData = (NP_Dummy + 27);
+ NP_StartupMsg = (NP_Dummy + 28); { * PMessage, ReplyMsg'd at exit * }
+ NP_TaskMsgPort = (NP_Dummy + 29); { * ^PMsgPort, create MsgPort, automagic delete * }
+
+ NP_CodeType = (NP_Dummy + 100);
+ NP_PPC_Arg1 = (NP_Dummy + 101);
+ NP_PPC_Arg2 = (NP_Dummy + 102);
+ NP_PPC_Arg3 = (NP_Dummy + 103);
+ NP_PPC_Arg4 = (NP_Dummy + 104);
+ NP_PPC_Arg5 = (NP_Dummy + 105);
+ NP_PPC_Arg6 = (NP_Dummy + 106);
+ NP_PPC_Arg7 = (NP_Dummy + 107);
+ NP_PPC_Arg8 = (NP_Dummy + 108);
+ NP_PPCStackSize = (NP_Dummy + 109);
+
+const
+ ADO_Dummy = (TAG_USER + 2000);
+ ADO_FH_Mode = (ADO_Dummy + 1);
+
+ ADO_DirLen = (ADO_Dummy + 2);
+ ADO_CommNameLen = (ADO_Dummy + 3);
+ ADO_CommFileLen = (ADO_Dummy + 4);
+ ADO_PromptLen = (ADO_Dummy + 5);
+
+ { *** V50 *** }
+ ADDS_Dummy = (TAG_USER + 3000);
+ ADDS_Name = (ADDS_Dummy + 1); { * Segment name * }
+ ADDS_Seglist = (ADDS_Dummy + 2); { * Seglist for this segment * }
+ ADDS_Filename = (ADDS_Dummy + 3); { * Name of the file to load when needed. Ignored if Seglist is given. * }
+ ADDS_Type = (ADDS_Dummy + 4); { * Segment type * }
+
+const
+ FNDS_Dummy = (TAG_USER + 3100);
+ FNDS_Name = (FNDS_Dummy + 1); { * Segment name * }
+ FNDS_From = (FNDS_Dummy + 2); { * Segment to start from * }
+ FNDS_System = (FNDS_Dummy + 3); { * Look for a system segment ? * }
+ FNDS_Load = (FNDS_Dummy + 4); { * Load the seglist if needed ? (Default: TRUE) * }
+
+
+
+{ * dos stdio definitions
+ *********************************************************************
+ * }
+
+
+const
+ BUF_LINE = 0;
+ BUF_FULL = 1;
+ BUF_NONE = 2;
+
+const
+ ENDSTREAMCH = -1;
+
+
+
+{ * dos env-var definitions
+ *********************************************************************
+ * }
+
+
+type
+ PLocalVar = ^TLocalVar;
+ TLocalVar = packed record
+ lv_Node : TNode;
+ lv_Flags: Word;
+ lv_Value: PChar;
+ lv_Len : Cardinal;
+ end;
+
+
+const
+ LV_VAR = 0;
+ LV_ALIAS = 1;
+
+const
+ LVB_IGNORE = 7;
+ LVF_IGNORE = (1 Shl LVB_IGNORE);
+
+ GVB_GLOBAL_ONLY = 8;
+ GVF_GLOBAL_ONLY = (1 Shl GVB_GLOBAL_ONLY);
+
+ GVB_LOCAL_ONLY = 9;
+ GVF_LOCAL_ONLY = (1 Shl GVB_LOCAL_ONLY);
+
+ GVB_BINARY_VAR = 10;
+ GVF_BINARY_VAR = (1 Shl GVB_BINARY_VAR);
+
+ GVB_DONT_NULL_TERM = 11;
+ GVF_DONT_NULL_TERM = (1 Shl GVB_DONT_NULL_TERM);
+
+ GVB_SAVE_VAR = 12;
+ GVF_SAVE_VAR = (1 Shl GVB_SAVE_VAR);
+
+
+
+{ * dos ReadArgs definitions
+ *********************************************************************
+ * }
+
+
+type
+ PCSource = ^TCSource;
+ TCSource = packed record
+ CS_Buffer: PChar;
+ CS_Length: LongInt;
+ CS_CurChr: LongInt;
+ end;
+
+type
+ PRDArgs = ^TRDArgs;
+ TRDArgs = packed record
+ RDA_Source : TCSource;
+ RDA_DAList : LongInt;
+ RDA_Buffer : PChar;
+ RDA_BufSiz : LongInt;
+ RDA_ExtHelp: PChar;
+ RDA_Flags : LongInt;
+ end;
+
+
+const
+ RDAB_STDIN = 0;
+ RDAF_STDIN = (1 Shl RDAB_STDIN);
+
+ RDAB_NOALLOC = 1;
+ RDAF_NOALLOC = (1 Shl RDAB_NOALLOC);
+
+ RDAB_NOPROMPT = 2;
+ RDAF_NOPROMPT = (1 Shl RDAB_NOPROMPT);
+
+const
+ MAX_TEMPLATE_ITEMS = 100;
+ MAX_MULTIARGS = 128;
+
+
+
+{ * dos filehandler definitions
+ *********************************************************************
+ * }
+
+
+type
+ PDosEnvec = ^TDosEnvec;
+ TDosEnvec = packed record
+ de_TableSize : Cardinal;
+ de_SizeBlock : Cardinal;
+ de_SecOrg : Cardinal;
+ de_Surfaces : Cardinal;
+ de_SectorPerBlock: Cardinal;
+ de_BlocksPerTrack: Cardinal;
+ de_Reserved : Cardinal;
+ de_PreAlloc : Cardinal;
+ de_Interleave : Cardinal;
+ de_LowCyl : Cardinal;
+ de_HighCyl : Cardinal;
+ de_NumBuffers : Cardinal;
+ de_BufMemType : Cardinal;
+ de_MaxTransfer : Cardinal;
+ de_Mask : Cardinal;
+ de_BootPri : LongInt;
+ de_DosType : Cardinal;
+ de_Baud : Cardinal;
+ de_Control : Cardinal;
+ de_BootBlocks : Cardinal;
+ end;
+
+
+const
+ DE_TABLESIZE = 0;
+ DE_SIZEBLOCK = 1;
+ DE_SECORG = 2;
+ DE_NUMHEADS = 3;
+ DE_SECSPERBLK = 4;
+ DE_BLKSPERTRACK = 5;
+ DE_RESERVEDBLKS = 6;
+ DE_PREFAC = 7;
+ DE_INTERLEAVE = 8;
+ DE_LOWCYL = 9;
+ DE_UPPERCYL = 10;
+ DE_NUMBUFFERS = 11;
+ DE_MEMBUFTYPE = 12;
+ DE_BUFMEMTYPE = 12;
+ DE_MAXTRANSFER = 13;
+ DE_MASK = 14;
+ DE_BOOTPRI = 15;
+ DE_DOSTYPE = 16;
+ DE_BAUD = 17;
+ DE_CONTROL = 18;
+ DE_BOOTBLOCKS = 19;
+
+
+type
+ PFileSysStartupMsg = ^TFileSysStartupMsg;
+ TFileSysStartupMsg = packed record
+ fssm_Unit : Cardinal;
+ fssm_Device : LongInt;
+ fssm_Environ: LongInt;
+ fssm_Flags : Cardinal;
+ end;
+
+type
+ PDeviceNode = ^TDeviceNode;
+ TDeviceNode = packed record
+ dn_Next : LongInt;
+ dn_Type : Cardinal;
+ dn_Task : PMsgPort;
+ dn_Lock : LongInt;
+ dn_Handler : LongInt;
+ dn_StackSize: Cardinal;
+ dn_Priority : LongInt;
+ dn_Startup : LongInt;
+ dn_SegList : LongInt;
+ dn_GlobalVec: LongInt;
+ dn_Name : LongInt;
+ end;
+
+
+
+{ * dos notification definitions
+ *********************************************************************
+ * }
+
+
+const
+ NOTIFY_CLASS = $40000000;
+ NOTIFY_CODE = $1234;
+
+
+type
+ PNotifyRequest = ^TNotifyRequest;
+ TNotifyRequest = packed record
+ nr_Name : PChar;
+ nr_FullName: PChar;
+ nr_UserData: Cardinal;
+ nr_Flags : Cardinal;
+ nr_stuff : record
+ case Byte of
+ 0 : ( nr_Msg : record
+ nr_Port: PMsgPort;
+ end );
+ 1 : ( nr_Signal : record
+ nr_Task : PTask;
+ nr_SignalNum: Byte;
+ nr_pad : Array[0..2] Of Byte;
+ end );
+ end;
+ nr_Reserved: Array[0..3] Of Cardinal;
+ nr_MsgCount: Cardinal;
+ nr_Handler : PMsgPort;
+ end;
+
+type
+ PNotifyMessage = ^TNotifyMessage;
+ TNotifyMessage = packed record
+ nm_ExecMessage: TMessage;
+ nm_Class : Cardinal;
+ nm_Code : Word;
+ nm_NReq : PNotifyRequest;
+ nm_DoNotTouch : Cardinal;
+ nm_DoNotTouch2: Cardinal;
+ end;
+
+
+const
+ NRB_SEND_MESSAGE = 0;
+ NRB_SEND_SIGNAL = 1;
+ NRB_WAIT_REPLY = 3;
+ NRB_NOTIFY_INITIAL = 4;
+
+ NRB_MAGIC = 31;
+
+const
+ NRF_SEND_MESSAGE = (1 Shl NRB_SEND_MESSAGE);
+ NRF_SEND_SIGNAL = (1 Shl NRB_SEND_SIGNAL);
+ NRF_WAIT_REPLY = (1 Shl NRB_WAIT_REPLY);
+ NRF_NOTIFY_INITIAL = (1 Shl NRB_NOTIFY_INITIAL);
+
+ NRF_MAGIC = (1 Shl NRB_MAGIC);
+
+const
+ NR_HANDLER_FLAGS = $ffff0000;
+
+
+
+{ * dos.library segtracker include
+ *********************************************************************
+ * }
+
+
+const
+ SEG_SEM = 'SegTracker';
+
+
+type
+ PSegSem = ^TSegSem;
+ TSegSem = packed record
+ seg_Semaphore: TSignalSemaphore;
+ seg_Find : Procedure; { Name = seg_Find(REG(a0, ULONG Address), REG(a1, ULONG *SegNum), REG(a2, ULONG *Offset)) }
+ seg_List : TMinList;
+ end;
+
+type
+ PSegArray = ^TSegArray;
+ TSegArray = packed record
+ seg_Address: Cardinal;
+ seg_Size : Cardinal;
+ end;
+
+type
+ PSegNode = ^TSegNode;
+ TSegNode = packed record
+ seg_Node : TMinNode;
+ seg_Name : PChar;
+ seg_Array: Array[0..0] Of TSegArray;
+ end;
+
+
+{.$include doslibd.inc}
+{.$include doslibf.inc}
+
+{ dos.library functions }
+
+function Open(fname : PChar location 'd1';
+ accessMode: LongInt location 'd2'): LongInt;
+SysCall MOS_DOSBase 30;
+
+function dosClose(fileh: LongInt location 'd1'): LongBool;
+SysCall MOS_DOSBase 36;
+
+function dosRead(fileh : LongInt location 'd1';
+ buffer: Pointer location 'd2';
+ length: LongInt location 'd3'): LongInt;
+SysCall MOS_DOSBase 42;
+
+function dosWrite(fileh : LongInt location 'd1';
+ buffer: Pointer location 'd2';
+ length: LongInt location 'd3'): LongInt;
+SysCall MOS_DOSBase 48;
+
+function dosInput: LongInt;
+SysCall MOS_DOSBase 54;
+
+function dosOutput: LongInt;
+SysCall MOS_DOSBase 60;
+
+function dosSeek(fileh : LongInt location 'd1';
+ position: LongInt location 'd2';
+ posmode : LongInt location 'd3'): LongInt;
+SysCall MOS_DOSBase 66;
+
+function dosDeleteFile(fname: PChar location 'd1'): LongBool;
+SysCall MOS_DOSBase 72;
+
+function dosRename(oldName: PChar location 'd1';
+ newName: PChar location 'd2'): LongInt;
+SysCall MOS_DOSBase 78;
+
+function Lock(lname : PChar location 'd1';
+ accessMode: LongInt location 'd2'): LongInt;
+SysCall MOS_DOSBase 84;
+
+procedure Unlock(lock: LongInt location 'd1');
+SysCall MOS_DOSBase 90;
+
+function DupLock(lock: LongInt location 'd1'): LongInt;
+SysCall MOS_DOSBase 096;
+
+function Examine(lock : LongInt location 'd1';
+ fileInfoBlock: PFileInfoBlock location 'd2'): LongInt;
+SysCall MOS_DOSBase 102;
+
+function ExNext(lock : LongInt location 'd1';
+ fileInfoBlock: PFileInfoBlock location 'd2'): LongInt;
+SysCall MOS_DOSBase 108;
+
+function Info(lock : LongInt location 'd1';
+ parameterBlock: PInfoData location 'd2'): LongInt;
+SysCall MOS_DOSBase 114;
+
+function dosCreateDir(dname: PChar location 'd1'): LongInt;
+SysCall MOS_DOSBase 120;
+
+function CurrentDir(lock: LongInt location 'd1'): LongInt;
+SysCall MOS_DOSBase 126;
+
+function IoErr: LongInt;
+SysCall MOS_DOSBase 132;
+
+function CreateProc(name : PChar location 'd1';
+ pri : LongInt location 'd2';
+ segList : LongInt location 'd3';
+ stackSize: LongInt location 'd4'): PMsgPort;
+SysCall MOS_DOSBase 138;
+
+procedure dosExit(returnCode: LongInt location 'd1');
+SysCall MOS_DOSBase 144;
+
+function LoadSeg(name: PChar location 'd1'): LongInt;
+SysCall MOS_DOSBase 150;
+
+procedure UnLoadSeg(seglist: LongInt location 'd1');
+SysCall MOS_DOSBase 156;
+
+function DeviceProc(name: PChar location 'd1'): PMsgPort;
+SysCall MOS_DOSBase 174;
+
+function SetComment(name : PChar location 'd1';
+ comment: PChar location 'd2'): LongBool;
+SysCall MOS_DOSBase 180;
+
+function SetProtection(name: PChar location 'd1';
+ mask: LongInt location 'd2'): LongInt;
+SysCall MOS_DOSBase 186;
+
+function DateStamp(date: PDateStamp location 'd1'): PDateStamp;
+SysCall MOS_DOSBase 192;
+
+procedure DOSDelay(timeout: LongInt location 'd1');
+SysCall MOS_DOSBase 198;
+
+function WaitForChar(file1 : LongInt location 'd1';
+ timeout: LongInt location 'd2'): LongBool;
+SysCall MOS_DOSBase 204;
+
+function ParentDir(lock: LongInt location 'd1'): LongInt;
+SysCall MOS_DOSBase 210;
+
+function IsInteractive(file1: LongInt location 'd1'): LongBool;
+SysCall MOS_DOSBase 216;
+
+function Execute(string1: PChar location 'd1';
+ file1 : LongInt location 'd2';
+ file2 : LongInt location 'd3'): LongBool;
+SysCall MOS_DOSBase 222;
+
+function AllocDosObject(type1: Cardinal location 'd1';
+ tags : PTagItem location 'd2'): Pointer;
+SysCall MOS_DOSBase 228;
+
+function AllocDosObjectTagList(type1: Cardinal location 'd1';
+ tags : PTagItem location 'd2'): Pointer;
+SysCall MOS_DOSBase 228;
+
+procedure FreeDosObject(type1: Cardinal location 'd1';
+ ptr : Pointer location 'd2');
+SysCall MOS_DOSBase 234;
+
+function DoPkt(port : PMsgPort location 'd1';
+ action: LongInt location 'd2';
+ arg1 : LongInt location 'd3';
+ arg2 : LongInt location 'd4';
+ arg3 : LongInt location 'd5';
+ arg4 : LongInt location 'd6';
+ arg5 : LongInt location 'd7'): LongInt;
+SysCall MOS_DOSBase 240;
+
+function DoPkt0(port : PMsgPort location 'd1';
+ action: LongInt location 'd2'): LongInt;
+SysCall MOS_DOSBase 240;
+
+function DoPkt1(port : PMsgPort location 'd1';
+ action: LongInt location 'd2';
+ arg1 : LongInt location 'd3'): LongInt;
+SysCall MOS_DOSBase 240;
+
+function DoPkt2(port : PMsgPort location 'd1';
+ action: LongInt location 'd2';
+ arg1 : LongInt location 'd3';
+ arg2 : LongInt location 'd4'): LongInt;
+SysCall MOS_DOSBase 240;
+
+function DoPkt3(port : PMsgPort location 'd1';
+ action: LongInt location 'd2';
+ arg1 : LongInt location 'd3';
+ arg2 : LongInt location 'd4';
+ arg3 : LongInt location 'd5'): LongInt;
+SysCall MOS_DOSBase 240;
+
+function DoPkt4(port : PMsgPort location 'd1';
+ action: LongInt location 'd2';
+ arg1 : LongInt location 'd3';
+ arg2 : LongInt location 'd4';
+ arg3 : LongInt location 'd5';
+ arg4 : LongInt location 'd6'): LongInt;
+SysCall MOS_DOSBase 240;
+
+procedure SendPkt(dp : PDosPacket location 'd1';
+ port : PMsgPort location 'd2';
+ replyport: PMsgPort location 'd3');
+SysCall MOS_DOSBase 246;
+
+function WaitPkt: PDosPacket;
+SysCall MOS_DOSBase 252;
+
+procedure ReplyPkt(dp : PDosPacket location 'd1';
+ res1: LongInt location 'd2';
+ res2: LongInt location 'd3');
+SysCall MOS_DOSBase 258;
+
+procedure AbortPkt(port: PMsgPort location 'd1';
+ pkt : PDosPacket location 'd2');
+SysCall MOS_DOSBase 264;
+
+function LockRecord(fh : LongInt location 'd1';
+ offset : Cardinal location 'd2';
+ length : Cardinal location 'd3';
+ mode : Cardinal location 'd4';
+ timeout: Cardinal location 'd5'): LongBool;
+SysCall MOS_DOSBase 270;
+
+function LockRecords(recArray: PRecordLock location 'd1';
+ timeout : Cardinal location 'd2'): LongBool;
+SysCall MOS_DOSBase 276;
+
+function UnLockRecord(fh : LongInt location 'd1';
+ offset: Cardinal location 'd2';
+ length: Cardinal location 'd3'): LongBool;
+SysCall MOS_DOSBase 282;
+
+function UnLockRecords(recArray: PRecordLock location 'd1'): LongBool;
+SysCall MOS_DOSBase 288;
+
+function SelectInput(fh: LongInt location 'd1'): LongInt;
+SysCall MOS_DOSBase 294;
+
+function SelectOutput(fh: LongInt location 'd1'): LongInt;
+SysCall MOS_DOSBase 300;
+
+function FGetC(fh: LongInt location 'd1'): LongInt;
+SysCall MOS_DOSBase 306;
+
+function FPutC(fh: LongInt location 'd1';
+ ch: LongInt location 'd2'): LongInt;
+SysCall MOS_DOSBase 312;
+
+function UnGetC(fh : LongInt location 'd1';
+ character: LongInt location 'd2'): LongInt;
+SysCall MOS_DOSBase 318;
+
+function FRead(fh : LongInt location 'd1';
+ block : Pointer location 'd2';
+ blocklen: Cardinal location 'd3';
+ number : Cardinal location 'd4'): LongInt;
+SysCall MOS_DOSBase 324;
+
+function FWrite(fh : LongInt location 'd1';
+ block : Pointer location 'd2';
+ blocklen: Cardinal location 'd3';
+ number : Cardinal location 'd4'): LongInt;
+SysCall MOS_DOSBase 330;
+
+function FGets(fh : LongInt location 'd1';
+ buf : PChar location 'd2';
+ buflen: Cardinal location 'd3'): PChar;
+SysCall MOS_DOSBase 336;
+
+function FPuts(fh : LongInt location 'd1';
+ str: PChar location 'd2'): LongInt;
+SysCall MOS_DOSBase 342;
+
+procedure VFWritef(fh : LongInt location 'd1';
+ format : PChar location 'd2';
+ argarray: Pointer location 'd3');
+SysCall MOS_DOSBase 348;
+
+function VFPrintf(fh : LongInt location 'd1';
+ format : PChar location 'd2';
+ argarray: Pointer location 'd3'): LongInt;
+SysCall MOS_DOSBase 354;
+
+function dosFlush(fh: LongInt location 'd1'): LongInt;
+SysCall MOS_DOSBase 360;
+
+function SetVBuf(fh : LongInt location 'd1';
+ buff : PChar location 'd2';
+ type1: LongInt location 'd3';
+ size : LongInt location 'd4'): LongInt;
+SysCall MOS_DOSBase 366;
+
+function DupLockFromFH(fh: LongInt location 'd1'): LongInt;
+SysCall MOS_DOSBase 372;
+
+function OpenFromLock(lock: LongInt location 'd1'): LongInt;
+SysCall MOS_DOSBase 378;
+
+function ParentOfFH(fh: LongInt location 'd1'): LongInt;
+SysCall MOS_DOSBase 384;
+
+function ExamineFH(fh : LongInt location 'd1';
+ fib: PFileInfoBlock location 'd2'): LongBool;
+SysCall MOS_DOSBase 390;
+
+function SetFileDate(name: PChar location 'd1';
+ date: PDateStamp location 'd2'): LongBool;
+SysCall MOS_DOSBase 396;
+
+function NameFromLock(lock : LongInt location 'd1';
+ buffer: PChar location 'd2';
+ len : LongInt location 'd3'): LongBool;
+SysCall MOS_DOSBase 402;
+
+function NameFromFH(fh : LongInt location 'd1';
+ buffer: PChar location 'd2';
+ len : LongInt location 'd3'): LongBool;
+SysCall MOS_DOSBase 408;
+
+function SplitName(name : PChar location 'd1';
+ separator: Cardinal location 'd2';
+ buf : PChar location 'd3';
+ oldpos : LongInt location 'd4';
+ size : LongInt location 'd5'): SmallInt;
+SysCall MOS_DOSBase 414;
+
+function SameLock(lock1: LongInt location 'd1';
+ lock2: LongInt location 'd2'): LongInt;
+SysCall MOS_DOSBase 420;
+
+function SetMode(fh : LongInt location 'd1';
+ mode: LongInt location 'd2'): LongInt;
+SysCall MOS_DOSBase 426;
+
+function ExAll(lock : LongInt location 'd1';
+ buffer : PExAllData location 'd2';
+ size : LongInt location 'd3';
+ data : LongInt location 'd4';
+ control: PExAllControl location 'd5'): LongBool;
+SysCall MOS_DOSBase 432;
+
+function ReadLink(port : PMsgPort location 'd1';
+ lock : LongInt location 'd2';
+ path : PChar location 'd3';
+ buffer: PChar location 'd4';
+ size : Cardinal location 'd5'): LongBool;
+SysCall MOS_DOSBase 438;
+
+function MakeLink(name: PChar location 'd1';
+ dest: LongInt location 'd2';
+ soft: LongInt location 'd3'): LongBool;
+SysCall MOS_DOSBase 444;
+
+function ChangeMode(type1 : LongInt location 'd1';
+ fh : LongInt location 'd2';
+ newmode: LongInt location 'd3'): LongBool;
+SysCall MOS_DOSBase 450;
+
+function SetFileSize(fh : LongInt location 'd1';
+ pos : LongInt location 'd2';
+ mode: LongInt location 'd3'): LongInt;
+SysCall MOS_DOSBase 456;
+
+function SetIoErr(result: LongInt location 'd1'): LongInt;
+SysCall MOS_DOSBase 462;
+
+function Fault(code : LongInt location 'd1';
+ header: PChar location 'd2';
+ buffer: PChar location 'd3';
+ len : LongInt location 'd4'): LongBool;
+SysCall MOS_DOSBase 468;
+
+function PrintFault(code : LongInt location 'd1';
+ header: PChar location 'd2'): LongBool;
+SysCall MOS_DOSBase 474;
+
+function ErrorReport(code : LongInt location 'd1';
+ type1 : LongInt location 'd2';
+ arg1 : Cardinal location 'd3';
+ device: PMsgPort location 'd4'): LongBool;
+SysCall MOS_DOSBase 480;
+
+function Cli: PCommandLineInterface;
+SysCall MOS_DOSBase 492;
+
+function CreateNewProc(tags: PTagItem location 'd1'): PProcess;
+SysCall MOS_DOSBase 498;
+
+function CreateNewProcTagList(tags: PTagItem location 'd1'): PProcess;
+SysCall MOS_DOSBase 498;
+
+function RunCommand(seg : LongInt location 'd1';
+ stack : LongInt location 'd2';
+ paramptr: PChar location 'd3';
+ paramlen: LongInt location 'd4'): LongInt;
+SysCall MOS_DOSBase 504;
+
+function GetConsoleTask: PMsgPort;
+SysCall MOS_DOSBase 510;
+
+function SetConsoleTask(task: PMsgPort location 'd1'): PMsgPort;
+SysCall MOS_DOSBase 516;
+
+function GetFileSysTask: PMsgPort;
+SysCall MOS_DOSBase 522;
+
+function SetFileSysTask(task: PMsgPort location 'd1'): PMsgPort;
+SysCall MOS_DOSBase 528;
+
+function GetArgStr: PChar;
+SysCall MOS_DOSBase 534;
+
+function SetArgStr(str: PChar location 'd1'): LongBool;
+SysCall MOS_DOSBase 540;
+
+function FindCliProc(num: Cardinal location 'd1'): PProcess;
+SysCall MOS_DOSBase 546;
+
+function MaxCli: Cardinal;
+SysCall MOS_DOSBase 552;
+
+function SetCurrentDirName(name: PChar location 'd1'): LongBool;
+SysCall MOS_DOSBase 558;
+
+function GetCurrentDirName(buf: PChar location 'd1';
+ len: LongInt location 'd2'): LongBool;
+SysCall MOS_DOSBase 564;
+
+function SetProgramName(name: PChar location 'd1'): LongBool;
+SysCall MOS_DOSBase 570;
+
+function GetProgramName(buf: PChar location 'd1';
+ len: LongInt location 'd2'): LongBool;
+SysCall MOS_DOSBase 576;
+
+function SetPrompt(name: PChar location 'd1'): LongBool;
+SysCall MOS_DOSBase 582;
+
+function GetPrompt(buf: PChar location 'd1';
+ len: LongInt location 'd2'): LongBool;
+SysCall MOS_DOSBase 588;
+
+function SetProgramDir(lock: LongInt location 'd1'): LongInt;
+SysCall MOS_DOSBase 594;
+
+function GetProgramDir: LongInt;
+SysCall MOS_DOSBase 600;
+
+function SystemTagList(command: PChar location 'd1';
+ tags : PTagItem location 'd2'): LongInt;
+SysCall MOS_DOSBase 606;
+
+function dosSystem(command: PChar location 'd1';
+ tags : PTagItem location 'd2'): LongInt;
+SysCall MOS_DOSBase 606;
+
+function AssignLock(name: PChar location 'd1';
+ lock: LongInt location 'd2'): LongBool;
+SysCall MOS_DOSBase 612;
+
+function AssignLate(name: PChar location 'd1';
+ path: PChar location 'd2'): LongBool;
+SysCall MOS_DOSBase 618;
+
+function AssignPath(name: PChar location 'd1';
+ path: PChar location 'd2'): LongBool;
+SysCall MOS_DOSBase 624;
+
+function AssignAdd(name: PChar location 'd1';
+ lock: LongInt location 'd2'): LongBool;
+SysCall MOS_DOSBase 630;
+
+function RemAssignList(name: PChar location 'd1';
+ lock: LongInt location 'd2'): LongBool;
+SysCall MOS_DOSBase 636;
+
+function GetDeviceProc(name: PChar location 'd1';
+ dp : PDevProc location 'd2'): PDevProc;
+SysCall MOS_DOSBase 642;
+
+procedure FreeDeviceProc(dp: PDevProc location 'd1');
+SysCall MOS_DOSBase 648;
+
+function LockDosList(flags: Cardinal location 'd1'): PDosList;
+SysCall MOS_DOSBase 654;
+
+procedure UnLockDosList(flags: Cardinal location 'd1');
+SysCall MOS_DOSBase 660;
+
+function AttemptLockDosList(flags: Cardinal location 'd1'): PDosList;
+SysCall MOS_DOSBase 666;
+
+function RemDosEntry(dlist: PDosList location 'd1'): LongBool;
+SysCall MOS_DOSBase 672;
+
+function AddDosEntry(dlist: PDosList location 'd1'): LongInt;
+SysCall MOS_DOSBase 678;
+
+function FindDosEntry(dlist: PDosList location 'd1';
+ name : PChar location 'd2';
+ flags: Cardinal location 'd3'): PDosList;
+SysCall MOS_DOSBase 684;
+
+function NextDosEntry(dlist: PDosList location 'd1';
+ flags: Cardinal location 'd2'): PDosList;
+SysCall MOS_DOSBase 690;
+
+function MakeDosEntry(name : PChar location 'd1';
+ type1: LongInt location 'd2'): PDosList;
+SysCall MOS_DOSBase 696;
+
+procedure FreeDosEntry(dlist: PDosList location 'd1');
+SysCall MOS_DOSBase 702;
+
+function IsFileSystem(name: PChar location 'd1'): LongBool;
+SysCall MOS_DOSBase 708;
+
+function Format(filesystem: PChar location 'd1';
+ volumename: PChar location 'd2';
+ dostype : Cardinal location 'd3'): LongBool;
+SysCall MOS_DOSBase 714;
+
+function Relabel(drive : PChar location 'd1';
+ newname: PChar location 'd2'): LongBool;
+SysCall MOS_DOSBase 720;
+
+function Inhibit(name : PChar location 'd1';
+ onoff: LongInt location 'd2'): LongBool;
+SysCall MOS_DOSBase 726;
+
+function AddBuffers(name : PChar location 'd1';
+ number: LongInt location 'd2'): LongBool;
+SysCall MOS_DOSBase 732;
+
+function CompareDates(date1: PDateStamp location 'd1';
+ date2: PDateStamp location 'd2'): LongInt;
+SysCall MOS_DOSBase 738;
+
+function DateToStr(datetime: _PDateTime location 'd1'): LongBool;
+SysCall MOS_DOSBase 744;
+
+function StrToDate(datetime: _PDateTime location 'd1'): LongBool;
+SysCall MOS_DOSBase 750;
+
+function InternalLoadSeg(fh : LongInt location 'd0';
+ table : LongInt location 'a0';
+ var funcarray: LongInt location 'a1';
+ var stack : LongInt location 'a2'): LongInt;
+SysCall MOS_DOSBase 756;
+
+function NewLoadSeg(file1: PChar location 'd1';
+ tags : PTagItem location 'd2'): LongInt;
+SysCall MOS_DOSBase 768;
+
+function NewLoadSegTagList(file1: PChar location 'd1';
+ tags : PTagItem location 'd2'): LongInt;
+SysCall MOS_DOSBase 768;
+
+function AddSegment(name : PChar location 'd1';
+ seg : LongInt location 'd2';
+ system: LongInt location 'd3'): LongBool;
+SysCall MOS_DOSBase 774;
+
+function FindSegment(name : PChar location 'd1';
+ seg : PSegment location 'd2';
+ system: LongInt location 'd3'): PSegment;
+SysCall MOS_DOSBase 780;
+
+function RemSegment(seg: PSegment location 'd1'): LongBool;
+SysCall MOS_DOSBase 786;
+
+function CheckSignal(mask: LongInt location 'd1'): LongInt;
+SysCall MOS_DOSBase 792;
+
+function ReadArgs(arg_template: PChar location 'd1';
+ var array1 : LongInt location 'd2';
+ args : PRDArgs location 'd3'): PRDArgs;
+SysCall MOS_DOSBase 798;
+
+function FindArg(keyword : PChar location 'd1';
+ arg_template: PChar location 'd2'): LongInt;
+SysCall MOS_DOSBase 804;
+
+function ReadItem(name : PChar location 'd1';
+ maxchars: LongInt location 'd2';
+ cSource : PCSource location 'd3'): LongInt;
+SysCall MOS_DOSBase 810;
+
+function StrToLong(string1 : PChar location 'd1';
+ var value: LongInt location 'd2'): LongInt;
+SysCall MOS_DOSBase 816;
+
+function MatchFirst(pat : PChar location 'd1';
+ anchor: PAnchorPath location 'd2'): LongInt;
+SysCall MOS_DOSBase 822;
+
+function MatchNext(anchor: PAnchorPath location 'd1'): LongInt;
+SysCall MOS_DOSBase 828;
+
+procedure MatchEnd(anchor: PAnchorPath location 'd1');
+SysCall MOS_DOSBase 834;
+
+function ParsePattern(pat : PChar location 'd1';
+ buf : PChar location 'd2';
+ buflen: LongInt location 'd3'): LongInt;
+SysCall MOS_DOSBase 840;
+
+function MatchPattern(pat: PChar location 'd1';
+ str: PChar location 'd2'): LongBool;
+SysCall MOS_DOSBase 846;
+
+procedure FreeArgs(args: pRDArgs location 'd1');
+SysCall MOS_DOSBase 858;
+
+function FilePart(path: PChar location 'd1'): PChar;
+SysCall MOS_DOSBase 870;
+
+function PathPart(path: PChar location 'd1'): PChar;
+SysCall MOS_DOSBase 876;
+
+function AddPart(dirname: PChar location 'd1';
+ filename: PChar location 'd2';
+ size : Cardinal location 'd3'): LongBool;
+SysCall MOS_DOSBase 882;
+
+function StartNotify(notify: PNotifyRequest location 'd1'): LongBool;
+SysCall MOS_DOSBase 888;
+
+procedure EndNotify(notify: PNotifyRequest location 'd1');
+SysCall MOS_DOSBase 894;
+
+function SetVar(name : PChar location 'd1';
+ buffer: PChar location 'd2';
+ size : LongInt location 'd3';
+ flags : LongInt location 'd4'): LongBool;
+SysCall MOS_DOSBase 900;
+
+function GetVar(name : PChar location 'd1';
+ buffer: PChar location 'd2';
+ size : LongInt location 'd3';
+ flags : LongInt location 'd4'): LongInt;
+SysCall MOS_DOSBase 906;
+
+function DeleteVar(name : PChar location 'd1';
+ flags: Cardinal location 'd2'): LongBool;
+SysCall MOS_DOSBase 912;
+
+function FindVar(name : PChar location 'd1';
+ type1: Cardinal location 'd2'): PLocalVar;
+SysCall MOS_DOSBase 918;
+
+function CliInitNewcli(dp: PDosPacket location 'a0'): LongInt;
+SysCall MOS_DOSBase 930;
+
+function CliInitRun(dp: PDosPacket location 'a0'): LongInt;
+SysCall MOS_DOSBase 936;
+
+function WriteChars(buf : PChar location 'd1';
+ buflen: Cardinal location 'd2'): LongInt;
+SysCall MOS_DOSBase 942;
+
+function PutStr(str: PChar location 'd1'): LongInt;
+SysCall MOS_DOSBase 948;
+
+function VPrintf(format : PChar location 'd1';
+ argarray: Pointer location 'd2'): LongInt;
+SysCall MOS_DOSBase 954;
+
+function ParsePatternNoCase(pat : PChar location 'd1';
+ buf : PChar location 'd2';
+ buflen: LongInt location 'd3'): LongInt;
+SysCall MOS_DOSBase 966;
+
+function MatchPatternNoCase(pat: PChar location 'd1';
+ str: PChar location 'd2'): LongBool;
+SysCall MOS_DOSBase 972;
+
+function SameDevice(lock1: LongInt location 'd1';
+ lock2: LongInt location 'd2'): LongBool;
+SysCall MOS_DOSBase 984;
+
+procedure ExAllEnd(lock : LongInt location 'd1';
+ buffer : PExAllData location 'd2';
+ size : LongInt location 'd3';
+ data : LongInt location 'd4';
+ control: PExAllControl location 'd5');
+SysCall MOS_DOSBase 990;
+
+function SetOwner(name : PChar location 'd1';
+ owner_info: LongInt location 'd2'): LongBool;
+SysCall MOS_DOSBase 996;
+
+function AddSegmentTagList(tags: PTagItem location 'a0'): LongInt;
+SysCall MOS_DOSBase 1002;
+
+function FindSegmentTagList(tags: PTagItem location 'a0'): PSegment;
+SysCall MOS_DOSBase 1008;
+
+
+
+
+
+{ * dos global definitions (V50)
+ *********************************************************************
+ * }
+
+function BADDR(x: LongInt): Pointer; Inline;
+function MKBADDR(x: Pointer): LongInt; Inline;
+
+
+{ * dos stdio definitions
+ *********************************************************************
+ * }
+
+function ReadChar: LongInt; Inline;
+function WriteChar(ch: Char): LongInt; Inline;
+function UnReadChar(ch: Char): LongInt; Inline;
+function ReadChars(buf: Pointer; num: LongInt): LongInt; Inline;
+function dosReadLn(buf: PChar; num: LongInt): PChar; Inline;
+function WriteStr(str: PChar): LongInt; Inline;
+procedure VWritef(format: PChar; argv: Pointer); Inline;
+
+
+{ * calls with tags workarounds (should be removed later)
+ *********************************************************************
+ * }
+
+function CreateNewProcTags(tags: array of dword): PProcess; Inline;
+
+
+
+implementation
+
+
+{ * dos stdio definitions
+ *********************************************************************
+ * }
+
+function ReadChar: LongInt; Inline;
+begin
+ ReadChar:=FGetC(dosInput);
+end;
+
+function WriteChar(ch: Char): LongInt; Inline;
+begin
+ WriteChar:=FPutC(dosOutput,Byte(ch));
+end;
+
+function UnReadChar(ch: Char): LongInt; Inline;
+begin
+ UnReadChar:=UnGetC(dosInput,Byte(ch));
+end;
+
+function ReadChars(buf: Pointer; num: LongInt): LongInt; Inline;
+begin
+ ReadChars:=FRead(dosInput,buf,1,num);
+end;
+
+function dosReadLn(buf: PChar; num: LongInt): PChar; Inline;
+begin
+ dosReadLn:=FGets(dosInput,buf,num);
+end;
+
+function WriteStr(str: PChar): LongInt; Inline;
+begin
+ WriteStr:=FPuts(dosOutput,str);
+end;
+
+procedure VWritef(format: PChar; argv: Pointer); Inline;
+begin
+ VFWritef(dosOutput,format,argv);
+end;
+
+
+
+{ * dos global definitions (V50)
+ *********************************************************************
+ * }
+
+
+function BADDR(x: LongInt): Pointer; Inline;
+begin
+ BADDR:=Pointer(x Shl 2);
+end;
+
+function MKBADDR(x: Pointer): LongInt; Inline;
+begin
+ MKBADDR:=LongInt(PtrUInt(x)) Shr 2;
+end;
+
+
+
+{ * calls with tags workarounds (should be removed later)
+ *********************************************************************
+ * }
+
+function CreateNewProcTags(tags: array of DWord): PProcess; Inline;
+begin
+ CreateNewProcTags:=CreateNewProc(@tags);
+end;
+
+
+begin
+ DosBase:=MOS_DOSBase;
+end.
diff --git a/rtl/morphos/aboxlib.pas b/packages/morphunits/src/amigalib.pas
index e1389af954..968a956d8e 100644
--- a/rtl/morphos/aboxlib.pas
+++ b/packages/morphunits/src/amigalib.pas
@@ -16,7 +16,7 @@
**********************************************************************}
-unit aboxlib;
+unit amigalib;
interface
diff --git a/rtl/morphos/asl.pas b/packages/morphunits/src/asl.pas
index b3e0434d11..2c9f4a24c4 100644
--- a/rtl/morphos/asl.pas
+++ b/packages/morphunits/src/asl.pas
@@ -24,7 +24,7 @@ unit asl;
interface
-uses exec, utility, {workbench,} graphics;
+uses exec, utility, {workbench,} agraphics;
{************************************************************************}
@@ -530,7 +530,7 @@ SysCall AslBase 030;
procedure FreeFileRequest(fileReq : pFileRequester location 'a0');
SysCall AslBase 036;
-function RequestFile(fileReq : pFileRequester location 'a0'): Boolean;
+function RequestFile(fileReq : pFileRequester location 'a0'): LongBool;
SysCall AslBase 042;
function AllocAslRequest(reqType: Cardinal location 'd0';
@@ -541,7 +541,7 @@ procedure FreeAslRequest(requester: Pointer location 'a0');
SysCall AslBase 054;
function AslRequest(requester: Pointer location 'a0';
- tagList : pTagItem location 'a1'): Boolean;
+ tagList : pTagItem location 'a1'): LongBool;
SysCall AslBase 060;
procedure AbortAslRequest(requester: Pointer location 'a0');
@@ -553,7 +553,7 @@ SysCall AslBase 084;
function AllocAslRequestTags(reqType: Cardinal;
tagList: array of DWord): Pointer; Inline;
function AslRequestTags(requester: Pointer;
- tagList : array of DWord): Boolean; Inline;
+ tagList : array of DWord): LongBool; Inline;
function InitAslLibrary : boolean;
@@ -568,7 +568,7 @@ begin
end;
function AslRequestTags(requester: Pointer;
- tagList : array of DWord): Boolean; Inline;
+ tagList : array of DWord): LongBool; Inline;
begin
AslRequestTags:=AslRequest(requester,@tagList);
end;
diff --git a/rtl/morphos/clipboard.pas b/packages/morphunits/src/clipboard.pas
index 7069320f0c..7069320f0c 100644
--- a/rtl/morphos/clipboard.pas
+++ b/packages/morphunits/src/clipboard.pas
diff --git a/rtl/morphos/datatypes.pas b/packages/morphunits/src/datatypes.pas
index e0fb00f361..58ac85e53f 100644
--- a/rtl/morphos/datatypes.pas
+++ b/packages/morphunits/src/datatypes.pas
@@ -24,8 +24,8 @@ unit datatypes;
interface
-uses exec, doslib, intuition, utility,
- graphics{, iffparse, amigaprinter, prtbase};
+uses exec, amigados, intuition, utility,
+ agraphics{, iffparse, amigaprinter, prtbase};
const
{***************************************************************************}
diff --git a/packages/morphunits/src/exec.pas b/packages/morphunits/src/exec.pas
new file mode 100644
index 0000000000..dcf91eeb30
--- /dev/null
+++ b/packages/morphunits/src/exec.pas
@@ -0,0 +1,2377 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
+
+ exec.library interface unit for MorphOS/PowerPC
+
+ MorphOS port was done on a free Pegasos II/G4 machine
+ provided by Genesi S.a.r.l. <www.genesi.lu>
+
+ 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 exec;
+
+interface
+
+var
+ ExecBase: Pointer;
+
+{.$include execd.inc}
+{.$include execf.inc}
+
+{ * emulinterface consts from MorphOS SDK * }
+
+const
+ TRAP_MASK = $00ff;
+ TRAP_AREA_START = $ff00; { * $ff00 .. $ffff area * }
+ TRAP_LIB = $ff00;
+ TRAP_LIB_QUICK = $ff01;
+ TRAP_LIBNR = $ff05;
+ TRAP_LIBNR_QUICK = $ff06;
+ TRAP_ISYNC = $ff0f;
+ TRAP_SYNC = $ff10;
+ TRAP_EIEIO = $ff11;
+ TRAP_LIBSR = $ff12;
+ TRAP_LIBSRNR = $ff13;
+ TRAP_LIBD0_D1 = $ff14;
+ TRAP_LIBRESTORE = $ff15;
+ TRAP_LIBD0D1SR = $ff17;
+ TRAP_LIBD0D1A0A1SR = $ff18;
+
+const
+ EMULTAG_NAME = $0; { * Gives back a Name Ptr * }
+ EMULTAG_VERSION = $1; { * Gives back a Version * }
+ EMULTAG_REVISION = $2; { * Gives back a Revision * }
+ EMULTAG_OPCODETABLE = $3; { * Gives back the 16 Bit Opcodetable Ptr or NULL * }
+ EMULTAG_TYPE = $4; { * Gives back the emulation type * }
+ EMULTAG_EMULHANDLE = $5; { * Gives back the EmulHandle Ptr * }
+ EMULTAG_EMULHANDLESIZE = $6; { * Gives back the EmulHandle Size * }
+ EMULTAG_SUPERHANDLE = $7; { * Gives back the SuperHandle Ptr * }
+ EMULTAG_SUPERHANDLESIZE = $8; { * Gives back the SuperHandle Size * }
+
+{ * emulinterface structures from MorphOS SDK * }
+
+type
+ PEmulLibEntry = ^TEmulLibEntry;
+ TEmulLibEntry = packed record
+ Trap : Word;
+ Extension: Word; { * MUST be set to 0 if you create it by hand * }
+ Func : Pointer;
+ end;
+
+
+{ * "dummy" definitions from utility, which we can't include here because it
+ * would create a circular dependency (KB) }
+type
+ PTagItem = Pointer;
+ PHook = Pointer;
+
+
+{ * exec node definitions (V50)
+ *********************************************************************
+ * }
+
+
+type
+ PNode = ^TNode;
+ TNode = packed record
+ ln_Succ: PNode;
+ ln_Pred: PNode;
+ ln_Type: Byte;
+ ln_Pri : ShortInt;
+ ln_Name: PChar;
+ end;
+
+type
+ PMinNode = ^TMinNode;
+ TMinNode = packed record
+ mln_Succ: PMinNode;
+ mln_Pred: PMinNode;
+ end;
+
+
+const
+ NT_UNKNOWN = 0;
+ NT_TASK = 1;
+ NT_INTERRUPT = 2;
+ NT_DEVICE = 3;
+ NT_MSGPORT = 4;
+ NT_MESSAGE = 5;
+ NT_FREEMSG = 6;
+ NT_REPLYMSG = 7;
+ NT_RESOURCE = 8;
+ NT_LIBRARY = 9;
+ NT_MEMORY = 10;
+ NT_SOFTINT = 11;
+ NT_FONT = 12;
+ NT_PROCESS = 13;
+ NT_SEMAPHORE = 14;
+ NT_SIGNALSEM = 15;
+ NT_BOOTNODE = 16;
+ NT_KICKMEM = 17;
+ NT_GRAPHICS = 18;
+ NT_DEATHMESSAGE = 19;
+ NT_USER = 254;
+ NT_EXTENDED = 255;
+
+
+
+{ * exec list definitions (V50)
+ *********************************************************************
+ * }
+
+
+type
+ PList = ^TList;
+ TList = packed record
+ lh_Head : PNode;
+ lh_Tail : PNode;
+ lh_TailPred: PNode;
+ lh_Type : Byte;
+ lh_pad : Byte;
+ end;
+
+type
+ PMinList = ^TMinList;
+ TMinList = packed record
+ mlh_Head : PMinNode;
+ mlh_Tail : PMinNode;
+ mlh_TailPred: PMinNode;
+ end;
+
+
+
+{ * exec alert definitions (V50)
+ *********************************************************************
+ * }
+
+
+const
+ ACPU_BusErr = $80000002;
+ ACPU_AddressErr = $80000003;
+ ACPU_InstErr = $80000004;
+ ACPU_DivZero = $80000005;
+ ACPU_CHK = $80000006;
+ ACPU_TRAPV = $80000007;
+ ACPU_PrivErr = $80000008;
+ ACPU_Trace = $80000009;
+ ACPU_LineA = $8000000A;
+ ACPU_LineF = $8000000B;
+ ACPU_Format = $8000000E;
+ ACPU_Spurious = $80000018;
+ ACPU_AutoVec1 = $80000019;
+ ACPU_AutoVec2 = $8000001A;
+ ACPU_AutoVec3 = $8000001B;
+ ACPU_AutoVec4 = $8000001C;
+ ACPU_AutoVec5 = $8000001D;
+ ACPU_AutoVec6 = $8000001E;
+ ACPU_AutoVec7 = $8000001F;
+
+ AT_DeadEnd = $80000000;
+ AT_Recovery = $00000000;
+
+ AG_NoMemory = $00010000;
+ AG_MakeLib = $00020000;
+ AG_OpenLib = $00030000;
+ AG_OpenDev = $00040000;
+ AG_OpenRes = $00050000;
+ AG_IOError = $00060000;
+ AG_NoSignal = $00070000;
+ AG_BadParm = $00080000;
+ AG_CloseLib = $00090000;
+ AG_CloseDev = $000A0000;
+ AG_ProcCreate = $000B0000;
+ AG_MsgPortNotEmpty = $000C0000 { * V50 * };
+
+ AO_ExecLib = $00008001;
+ AO_GraphicsLib = $00008002;
+ AO_LayersLib = $00008003;
+ AO_Intuition = $00008004;
+ AO_MathLib = $00008005;
+ AO_DOSLib = $00008007;
+ AO_RAMLib = $00008008;
+ AO_IconLib = $00008009;
+ AO_ExpansionLib = $0000800A;
+ AO_DiskfontLib = $0000800B;
+ AO_UtilityLib = $0000800C;
+ AO_KeyMapLib = $0000800D;
+
+ AO_AudioDev = $00008010;
+ AO_ConsoleDev = $00008011;
+ AO_GamePortDev = $00008012;
+ AO_KeyboardDev = $00008013;
+ AO_TrackDiskDev = $00008014;
+ AO_TimerDev = $00008015;
+
+ AO_CIARsrc = $00008020;
+ AO_DiskRsrc = $00008021;
+ AO_MiscRsrc = $00008022;
+
+ AO_BootStrap = $00008030;
+ AO_Workbench = $00008031;
+ AO_DiskCopy = $00008032;
+ AO_GadTools = $00008033;
+ AO_Unknown = $00008035;
+
+
+ { *
+ * exec.library
+ * }
+const
+ AN_ExecLib = $01000000;
+ AN_ExcptVect = $01000001;
+ AN_BaseChkSum = $01000002;
+ AN_LibChkSum = $01000003;
+
+ AN_MemCorrupt = $81000005;
+ AN_IntrMem = $81000006;
+ AN_InitAPtr = $01000007;
+ AN_SemCorrupt = $01000008;
+
+ AN_FreeTwice = $01000009;
+ AN_BogusExcpt = $8100000A;
+ AN_IOUsedTwice = $0100000B;
+ AN_MemoryInsane = $0100000C;
+
+ AN_IOAfterClose = $0100000D;
+ AN_StackProbe = $0100000E;
+ AN_BadFreeAddr = $0100000F;
+ AN_BadSemaphore = $01000010;
+
+ { *
+ * graphics.library
+ * }
+const
+ AN_GraphicsLib = $02000000;
+ AN_GfxNoMem = $82010000;
+ AN_GfxNoMemMspc = $82010001;
+ AN_LongFrame = $82010006;
+ AN_ShortFrame = $82010007;
+ AN_TextTmpRas = $02010009;
+ AN_BltBitMap = $8201000A;
+ AN_RegionMemory = $8201000B;
+ AN_MakeVPort = $82010030;
+ AN_GfxNewError = $0200000C;
+ AN_GfxFreeError = $0200000D;
+
+ AN_GfxNoLCM = $82011234;
+
+ AN_ObsoleteFont = $02000401;
+
+ { *
+ * layers.library
+ * }
+const
+ AN_LayersLib = $03000000;
+ AN_LayersNoMem = $83010000;
+
+ { *
+ * intuition.library
+ * }
+const
+ AN_Intuition = $04000000;
+ AN_GadgetType = $84000001;
+ AN_BadGadget = $04000001;
+ AN_CreatePort = $84010002;
+ AN_ItemAlloc = $04010003;
+ AN_SubAlloc = $04010004;
+ AN_PlaneAlloc = $84010005;
+ AN_ItemBoxTop = $84000006;
+ AN_OpenScreen = $84010007;
+ AN_OpenScrnRast = $84010008;
+ AN_SysScrnType = $84000009;
+ AN_AddSWGadget = $8401000A;
+ AN_OpenWindow = $8401000B;
+ AN_BadState = $8400000C;
+ AN_BadMessage = $8400000D;
+ AN_WeirdEcho = $8400000E;
+ AN_NoConsole = $8400000F;
+ AN_NoISem = $04000010;
+ AN_ISemOrder = $04000011;
+
+ { *
+ * math.library
+ * }
+const
+ AN_MathLib = $05000000;
+
+ { *
+ * dos.library
+ * }
+const
+ AN_DOSLib = $07000000;
+ AN_StartMem = $07010001;
+ AN_EndTask = $07000002;
+ AN_QPktFail = $07000003;
+ AN_AsyncPkt = $07000004;
+ AN_FreeVec = $07000005;
+ AN_DiskBlkSeq = $07000006;
+ AN_BitMap = $07000007;
+ AN_KeyFree = $07000008;
+ AN_BadChkSum = $07000009;
+ AN_DiskError = $0700000A;
+ AN_KeyRange = $0700000B;
+ AN_BadOverlay = $0700000C;
+ AN_BadInitFunc = $0700000D;
+ AN_FileReclosed = $0700000E;
+
+ { *
+ * ramlib.library
+ * }
+const
+ AN_RAMLib = $08000000;
+ AN_BadSegList = $08000001;
+
+ { *
+ * icon.library
+ * }
+const
+ AN_IconLib = $09000000;
+
+ { *
+ * expansion.library
+ * }
+const
+ AN_ExpansionLib = $0A000000;
+ AN_BadExpansionFree = $0A000001;
+
+ { *
+ * diskfont.library
+ * }
+const
+ AN_DiskfontLib = $0B000000;
+
+ { *
+ * audio.device
+ * }
+const
+ AN_AudioDev = $10000000;
+
+ { *
+ * console.device
+ * }
+const
+ AN_ConsoleDev = $11000000;
+ AN_NoWindow = $11000001;
+
+ { *
+ * gameport.device
+ * }
+const
+ AN_GamePortDev = $12000000;
+
+ { *
+ * keyboard.device
+ * }
+const
+ AN_KeyboardDev = $13000000;
+
+ { *
+ * trackdisk.device
+ * }
+const
+ AN_TrackDiskDev = $14000000;
+ AN_TDCalibSeek = $14000001;
+ AN_TDDelay = $14000002;
+
+ { *
+ * timer.device
+ * }
+const
+ AN_TimerDev = $15000000;
+ AN_TMBadReq = $15000001;
+ AN_TMBadSupply = $15000002;
+
+ { *
+ * cia.resource
+ * }
+const
+ AN_CIARsrc = $20000000;
+
+ { *
+ * disk.resource
+ * }
+const
+ AN_DiskRsrc = $21000000;
+ AN_DRHasDisk = $21000001;
+ AN_DRIntNoAct = $21000002;
+
+ { *
+ * misc.resource
+ * }
+const
+ AN_MiscRsrc = $22000000;
+
+ { *
+ * bootstrap
+ * }
+const
+ AN_BootStrap = $30000000;
+ AN_BootError = $30000001;
+
+ { *
+ * Workbench
+ * }
+const
+ AN_Workbench = $31000000;
+ AN_NoFonts = $B1000001;
+ AN_WBBadStartupMsg1 = $31000001;
+ AN_WBBadStartupMsg2 = $31000002;
+ AN_WBBadIOMsg = $31000003;
+ AN_WBReLayoutToolMenu = $B1010009;
+
+ { *
+ * DiskCopy
+ * }
+const
+ AN_DiskCopy = $32000000;
+
+ { *
+ * toolkit for Intuition
+ * }
+const
+ AN_GadTools = $33000000;
+
+ { *
+ * System utility library
+ * }
+const
+ AN_UtilityLib = $34000000;
+
+ { *
+ * For use by any application that needs it
+ * }
+const
+ AN_Unknown = $35000000;
+
+
+
+{ * exec error definitions (V50)
+ *********************************************************************
+ * }
+
+
+const
+ IOERR_OPENFAIL = (-1);
+ IOERR_ABORTED = (-2);
+ IOERR_NOCMD = (-3);
+ IOERR_BADLENGTH = (-4);
+ IOERR_BADADDRESS = (-5);
+ IOERR_UNITBUSY = (-6);
+ IOERR_SELFTEST = (-7);
+ IOERR_NOMEMORY = (-8);
+
+
+
+{ * exec resident definitions (V50)
+ *********************************************************************
+ * }
+
+
+type
+ PResident = ^TResident;
+ TResident = packed record
+ rt_MatchWord: Word;
+ rt_MatchTag : PResident;
+ rt_EndSkip : Pointer;
+ rt_Flags : Byte;
+ rt_Version : Byte;
+ rt_Type : Byte;
+ rt_Pri : Byte;
+ rt_Name : PChar;
+ rt_IdString : PChar;
+ rt_Init : Pointer;
+ { * Only valid when RTF_EXTENDED is set
+ * }
+ rt_Revision : Word; { * Revision Entry * }
+ rt_Tags : Pointer;
+ end;
+
+
+const
+ RTC_MATCHWORD = $4AFC;
+
+ RTF_AUTOINIT = (1 Shl 7);
+ RTF_EXTENDED = (1 Shl 6); { * structure extension is valid * }
+ { * rt_Init points to a PPC function which must be defined as
+ *
+ * struct Library* LIB_Init(struct Library *MyLibBase,
+ * BPTR SegList,
+ * struct ExecBase *SysBase)
+ * }
+ RTF_PPC = (1 Shl 3);
+ RTF_AFTERDOS = (1 Shl 2);
+ RTF_SINGLETASK = (1 Shl 1);
+ RTF_COLDSTART = (1 Shl 0);
+
+ RTW_NEVER = 0;
+ RTW_COLDSTART = 1;
+
+
+
+{ * exec memory definitions (V50)
+ *********************************************************************
+ * }
+
+
+type
+ PMemChunk = ^TMemChunk;
+ TMemChunk = packed record
+ nc_Next : PMemChunk;
+ nc_Bytes: DWord;
+ end;
+
+type
+ PMemHeader = ^TMemHeader;
+ TMemHeader = packed record
+ mh_Node : TNode;
+ mh_Attributes: Word;
+ mh_First : PMemChunk;
+ mh_Lower : Pointer;
+ mh_Upper : Pointer;
+ mh_Free : DWord;
+ end;
+
+type
+ PMemEntry = ^TMemEntry;
+ TMemEntry = packed record
+ me_Un: packed record
+ case Byte of
+ 0 : (meu_Regs: DWord);
+ 1 : (meu_Addr: Pointer)
+ end;
+ me_Length: DWord;
+ end;
+
+type
+ PMemList = ^TMemList;
+ TMemList = packed record
+ ml_Node : TNode;
+ ml_NumEntries: Word;
+ ml_ME : PMemEntry;
+ end;
+
+
+const
+ MEMF_ANY = 0;
+ MEMF_PUBLIC = (1 Shl 0);
+ MEMF_CHIP = (1 Shl 1);
+ MEMF_FAST = (1 Shl 2);
+ MEMF_LOCAL = (1 Shl 8);
+ MEMF_24BITDMA = (1 Shl 9);
+ MEMF_KICK = (1 Shl 10);
+ MEMF_SWAP = (1 Shl 11); { * Memory that can be swapped out to disk * }
+
+ MEMF_CLEAR = (1 Shl 16);
+ MEMF_LARGEST = (1 Shl 17);
+ MEMF_REVERSE = (1 Shl 18);
+ MEMF_TOTAL = (1 Shl 19);
+ MEMF_SEM_PROTECTED = (1 Shl 20); { * Pools: semaphore protection * }
+ MEMF_NO_EXPUNGE = (1 Shl 31);
+
+ MEM_BLOCKSIZE = 8;
+ MEM_BLOCKMASK = (MEM_BLOCKSIZE - 1);
+
+
+type
+ PMemHandlerData = ^TMemHandlerData;
+ TMemHandlerData = packed record
+ memh_RequestSize : DWord;
+ memh_RequestFlags: DWord;
+ memh_Flags : DWord;
+ end;
+
+
+const
+ MEMHF_RECYCLE = (1 Shl 0);
+
+ MEM_DID_NOTHING = 0;
+ MEM_ALL_DONE = -1;
+ MEM_TRY_AGAIN = 1;
+
+
+
+{ * exec port definitions (V50)
+ *********************************************************************
+ * }
+
+
+type
+ PMsgPort = ^TMsgPort;
+ TMsgPort = packed record
+ mp_Node : TNode;
+ mp_Flags : Byte;
+ mp_SigBit : Byte;
+ mp_SigTask: Pointer;
+ mp_MsgList: TList;
+ end;
+
+
+const
+ PF_ACTION = 3;
+ PA_SIGNAL = 0;
+ PA_SOFTINT = 1;
+ PA_IGNORE = 2;
+
+
+type
+ PMessage = ^TMessage;
+ TMessage = packed record
+ mn_Node : TNode;
+ mn_ReplyPort: PMsgPort;
+ mn_Length : Word;
+ end;
+
+
+
+{ * exec task definitions (V50)
+ *********************************************************************
+ * }
+
+
+type
+ PTask = ^TTask;
+ TTask = packed record
+ tc_Node : TNode;
+ tc_Flags : Byte;
+ tc_State : Byte;
+ tc_IDNestCnt: ShortInt;
+ tc_TDNestCnt: ShortInt;
+ tc_SigAlloc : DWord;
+ tc_SigWait : DWord;
+ tc_SigRecvd : DWord;
+ tc_SigExcept: DWord;
+ {$IF 0}
+ tc_TrapAlloc: Word;
+ tc_TrapAble : Word;
+ {$ELSE}
+ tc_ETask: Pointer;
+ {$ENDIF}
+ tc_ExceptData: Pointer;
+ tc_ExceptCode: Pointer;
+ tc_TrapData : Pointer;
+ tc_TrapCode : Pointer;
+ tc_SPReg : Pointer;
+ tc_SPLower : Pointer;
+ tc_SPUpper : Pointer;
+ tc_Switch : Pointer; { *** OBSOLETE *** }
+ tc_Launch : Pointer; { *** OBSOLETE *** }
+ tc_MemEntry : TList;
+ tc_UserData : Pointer;
+ end;
+
+
+const
+ TB_PROCTIME = 0;
+ TB_ETASK = 3;
+ TB_STACKCHK = 4;
+ TB_EXCEPT = 5;
+ TB_SWITCH = 6;
+ TB_LAUNCH = 7;
+
+ TF_PROCTIME = (1 Shl TB_PROCTIME);
+ TF_ETASK = (1 Shl TB_ETASK);
+ TF_STACKCHK = (1 Shl TB_STACKCHK);
+ TF_EXCEPT = (1 Shl TB_EXCEPT);
+ TF_SWITCH = (1 Shl TB_SWITCH);
+ TF_LAUNCH = (1 Shl TB_LAUNCH);
+
+ TS_INVALID = 0;
+ TS_ADDED = 1;
+ TS_RUN = 2;
+ TS_READY = 3;
+ TS_WAIT = 4;
+ TS_EXCEPT = 5;
+ TS_REMOVED = 6;
+
+ SIGB_ABORT = 0;
+ SIGB_CHILD = 1;
+ SIGB_BLIT = 4;
+ SIGB_SINGLE = 4;
+ SIGB_INTUITION = 5;
+ SIGB_NET = 7;
+ SIGB_DOS = 8;
+
+ SIGF_ABORT = (1 Shl SIGB_ABORT);
+ SIGF_CHILD = (1 Shl SIGB_CHILD);
+ SIGF_BLIT = (1 Shl SIGB_BLIT);
+ SIGF_SINGLE = (1 Shl SIGB_SINGLE);
+ SIGF_INTUITION = (1 Shl SIGB_INTUITION);
+ SIGF_NET = (1 Shl SIGB_NET);
+ SIGF_DOS = (1 Shl SIGB_DOS);
+
+
+type
+ PTaskTrapMessage = ^TTaskTrapMessage;
+ TTaskTrapMessage = packed record
+ Message: TMessage; { * Message Header * }
+ Task : TTask; { * connected Task * }
+ Version: DWord; { * version of the structure * }
+ TType : DWord; { * Exception Type * }
+ DAR : DWord; { * Exception Address Register * }
+ DSISR : DWord; { * Exception DSISR Reg * }
+
+ { * This is undiscovered land...
+ * never assume a size of this structure
+ * }
+ end;
+
+
+const
+ VERSION_TASKTRAPMESSAGE = $0;
+
+
+type
+ PETask = ^TETask;
+ TETask = packed record
+ Message : TMessage;
+ Parent : PTask;
+ UniqueID : DWord;
+ Children : TMinList;
+ TrapAlloc: Word;
+ TrapAble : Word;
+ Result1 : DWord;
+ Result2 : Pointer;
+ MsgPort : TMsgPort;
+
+ { * Don't touch!!!!!!!!!..there'll be an interface
+ * sooner than later.
+ * New Entries...most of the above entries
+ * are only their for structure compatability.
+ * They have no meaning as the OS never supported
+ * them.
+ * }
+
+ { * A Task Pool for the task.
+ * }
+ MemPool: Pointer;
+
+ { * PPC's Stack Lower Ptr
+ * The initial stack is allocated through
+ * AllocVec, so a FreeVec(ETask^.PPCSPLower);
+ * would work.
+ * If you use PPCStackSwap you must allocate
+ * your stack block with AllocVec();
+ * }
+ PPCSPLower: Pointer;
+
+ { * PPC's Stack Upper Ptr
+ * }
+ PPCSPUpper : Pointer;
+ PPCRegFrame: Pointer;
+ PPCLibData : Pointer;
+
+ { * On a PPC exception this msgport
+ * is sent an exception msg...
+ * the task is stopped until somebody
+ * wakes it up again.
+ * (asynchron exception interface)
+ * If this Port is NULL the message is
+ * sent to SysBase->ex_PPCTrapMsgPort.
+ * }
+ PPCTrapMsgPort: PMsgPort;
+ PPCTrapMessage: PTaskTrapMessage;
+
+ { * This is undiscovered land...
+ * never assume a size of this structure
+ * }
+ end;
+
+
+type
+ PTaskInitExtension = ^TTaskInitExtension;
+ TTaskInitExtension = packed record
+ { * Must be filled with TRAP_PPCTASK
+ * }
+ Trap : Word;
+ Extension: Word; { * Must be set to 0 * }
+ Tags : Pointer;
+ end;
+
+{ * This is normally in utility headers, but in Pascal that would
+ * cause a circular dependency, so have it duplicated here... (KB) }
+const
+ TAG_USER = 1 Shl 31;
+
+const
+ TASKTAG_DUMMY = (TAG_USER + $100000);
+
+ { * Ptr to an ULONG Errorfield where a better error description
+ * can be stored.
+ * }
+ TASKTAG_ERROR = (TASKTAG_DUMMY + $0);
+
+ { * Code type
+ * can be stored.
+ * }
+ TASKTAG_CODETYPE = (TASKTAG_DUMMY + $1);
+
+ { * Start PC
+ * code must be of TASKTAG_CODETYPE
+ * }
+ TASKTAG_PC = (TASKTAG_DUMMY + $2);
+
+ { * Final PC
+ * code must be of TASKTAG_CODETYPE
+ * }
+ TASKTAG_FINALPC = (TASKTAG_DUMMY + $3);
+
+ { * Stacksize...Default 8192
+ * }
+ TASKTAG_STACKSIZE = (TASKTAG_DUMMY + $4);
+
+ { * Std Stacksize...
+ * Default(use the stack defined by tc_SPLower..tc_SPUpper)
+ * }
+ TASKTAG_STACKSIZE_M68K = (TASKTAG_DUMMY + $5);
+
+ { * specify task name, name is copied
+ * }
+ TASKTAG_NAME = (TASKTAG_DUMMY + $6);
+
+ { * tc_UserData
+ * }
+ TASKTAG_USERDATA = (TASKTAG_DUMMY + $7);
+
+ { * Task priority
+ * }
+ TASKTAG_PRI = (TASKTAG_DUMMY + $8);
+
+ { * Pool's Puddlesize
+ * }
+ TASKTAG_POOLPUDDLE = (TASKTAG_DUMMY + $9);
+
+ { * Pool's ThreshSize
+ * }
+ TASKTAG_POOLTHRESH = (TASKTAG_DUMMY + $a);
+
+ { * PPC First Argument..gpr3
+ * }
+ TASKTAG_PPC_ARG1 = (TASKTAG_DUMMY + $10);
+
+ { * PPC First Argument..gpr4
+ * }
+ TASKTAG_PPC_ARG2 = (TASKTAG_DUMMY + $11);
+
+ { * PPC First Argument..gpr5
+ * }
+ TASKTAG_PPC_ARG3 = (TASKTAG_DUMMY + $12);
+
+ { * PPC First Argument..gpr6
+ * }
+ TASKTAG_PPC_ARG4 = (TASKTAG_DUMMY + $13);
+
+ { * PPC First Argument..gpr7
+ * }
+ TASKTAG_PPC_ARG5 = (TASKTAG_DUMMY + $14);
+
+ { * PPC First Argument..gpr8
+ * }
+ TASKTAG_PPC_ARG6 = (TASKTAG_DUMMY + $15);
+
+ { * PPC First Argument..gpr9
+ * }
+ TASKTAG_PPC_ARG7 = (TASKTAG_DUMMY + $16);
+
+ { * PPC First Argument..gpr10
+ * }
+ TASKTAG_PPC_ARG8 = (TASKTAG_DUMMY + $17);
+
+ { *
+ * Startup message to be passed to task/process, ReplyMsg'd at RemTask()
+ * ti_Data: struct Message *
+ * }
+ TASKTAG_STARTUPMSG = (TASKTAG_DUMMY + $18);
+
+ { *
+ * Create internal MsgPort for task/process, deleted at RemTask()
+ * ti_Data: struct MsgPort **, can be NULL
+ * }
+ TASKTAG_TASKMSGPORT = (TASKTAG_DUMMY + $19);
+
+
+const
+ CODETYPE_M68K = $0;
+ { *
+ * System V4 ABI
+ * }
+ CODETYPE_PPC = $1;
+
+const
+ TASKERROR_OK = 0;
+ TASKERROR_NOMEMORY = 1;
+
+
+ { *
+ * Stack swap structure as passed to StackSwap() and PPCStackSwap()
+ * }
+type
+ PStackSwapStruct = ^TStackSwapStruct;
+ TStackSwapStruct = packed record
+ stk_Lower : Pointer; { * Lowest byte of stack * }
+ stk_Upper : Pointer; { * Upper end of stack (size + Lowert) * }
+ stk_Pointer: Pointer; { * Stack pointer at switch point * }
+ end;
+
+type
+ PPPCStackSwapArgs = ^TPPCStackSwapArgs;
+ TPPCStackSwapArgs = packed record
+ Args: Array[0..7] Of DWord; { * The C register arguments from gpr3..gpr11 * }
+ end;
+
+
+ { *
+ * NewGetTaskAttrsA(), NewSetTaskAttrsA() tags
+ * }
+const
+ TASKINFOTYPE_ALLTASK = $0;
+ TASKINFOTYPE_NAME = $1;
+ TASKINFOTYPE_PRI = $2;
+ TASKINFOTYPE_TYPE = $3;
+ TASKINFOTYPE_STATE = $4;
+ TASKINFOTYPE_FLAGS = $5;
+ TASKINFOTYPE_SIGALLOC = $6;
+ TASKINFOTYPE_SIGWAIT = $7;
+ TASKINFOTYPE_SIGRECVD = $8;
+ TASKINFOTYPE_SIGEXCEPT = $9;
+ TASKINFOTYPE_EXCEPTDATA = $a;
+ TASKINFOTYPE_EXCEPTCODE = $b;
+ TASKINFOTYPE_TRAPDATA = $c;
+ TASKINFOTYPE_TRAPCODE = $d;
+ TASKINFOTYPE_STACKSIZE_M68K = $e;
+ TASKINFOTYPE_STACKSIZE = $f;
+ TASKINFOTYPE_USEDSTACKSIZE_M68K = $10;
+ TASKINFOTYPE_USEDSTACKSIZE = $11;
+ TASKINFOTYPE_TRAPMSGPORT = $12;
+ TASKINFOTYPE_STARTUPMSG = $13;
+ TASKINFOTYPE_TASKMSGPORT = $14;
+ TASKINFOTYPE_POOLPTR = $15;
+ TASKINFOTYPE_POOLMEMFLAGS = $16;
+ TASKINFOTYPE_POOLPUDDLESIZE = $17;
+ TASKINFOTYPE_POOLTHRESHSIZE = $18;
+
+ { *
+ * Task Scheduler statistics (exec 50.42)
+ * }
+ TASKINFOTYPE_NICE = $19;
+ TASKINFOTYPE_AGETICKS = $1a;
+ TASKINFOTYPE_CPUTIME = $1b;
+ TASKINFOTYPE_LASTSECCPUTIME = $1c;
+ TASKINFOTYPE_RECENTCPUTIME = $1d;
+ TASKINFOTYPE_VOLUNTARYCSW = $1e;
+ TASKINFOTYPE_INVOLUNTARYCSW = $1f;
+ TASKINFOTYPE_LASTSECVOLUNTARYCSW = $20;
+ TASKINFOTYPE_LASTSECINVOLUNTARYCSW = $21;
+ { * Added in exec 50.45 * }
+ TASKINFOTYPE_LAUNCHTIMETICKS = $22;
+ TASKINFOTYPE_LAUNCHTIMETICKS1978 = $23;
+ TASKINFOTYPE_PID = $24;
+
+ TASKINFOTYPE_68K_NEWFRAME = $50;
+
+ TASKINFOTYPE_PPC_SRR0 = $100;
+ TASKINFOTYPE_PPC_SRR1 = $101;
+ TASKINFOTYPE_PPC_LR = $102;
+ TASKINFOTYPE_PPC_CTR = $103;
+ TASKINFOTYPE_PPC_CR = $104;
+ TASKINFOTYPE_PPC_XER = $105;
+ TASKINFOTYPE_PPC_GPR = $106;
+ TASKINFOTYPE_PPC_FPR = $107;
+ TASKINFOTYPE_PPC_FPSCR = $108;
+ TASKINFOTYPE_PPC_VSCR = $109;
+ TASKINFOTYPE_PPC_VMX = $10a;
+ TASKINFOTYPE_PPC_VSAVE = $10b;
+ TASKINFOTYPE_PPC_FRAME = $10c;
+ TASKINFOTYPE_PPC_FRAMESIZE = $10d;
+ TASKINFOTYPE_PPC_NEWFRAME = $10e;
+
+ TASKINFOTAG_DUMMY = (TAG_USER + $110000);
+ { * Used with TASKINFOTYPE_ALLTASK
+ * }
+ TASKINFOTAG_HOOK = (TASKINFOTAG_DUMMY + $0);
+ { * Used with TASKINFOTYPE_PPC_GPR,TASKINFOTYPE_PPC_FPR,TASKINFOTYPE_PPC_VMX
+ * to define the copy area
+ * }
+ TASKINFOTAG_REGSTART = (TASKINFOTAG_DUMMY + $1);
+ { * Used with TASKINFOTYPE_PPC_GPR,TASKINFOTYPE_PPC_FPR,TASKINFOTYPE_PPC_VMX
+ * to define the copy area
+ * }
+ TASKINFOTAG_REGCOUNT = (TASKINFOTAG_DUMMY + $2);
+
+
+ { *
+ * NewSetTaskAttrsA(..,@TaskFrame68k,sizeof(TTaskFrame68k),TASKINFOTYPE_68K_NEWFRAME,...);
+ * }
+type
+ PTaskFrame68k = ^TTaskFrame68k;
+ TTaskFrame68k = packed record
+ PC: Pointer;
+ SR: Word;
+ Xn: Array[0..14] Of LongInt;
+ end;
+
+
+ { *
+ * Don't depend on these
+ * }
+const
+ DEFAULT_PPCSTACKSIZE = 32768;
+ DEFAULT_M68KSTACKSIZE = 2048;
+ DEFAULT_TASKPUDDLESIZE = 4096;
+ DEFAULT_TASKTHRESHSIZE = 4096;
+
+
+{ * exec interrupt definitions (V50)
+ *********************************************************************
+ * }
+
+
+type
+ PInterrupt = ^TInterrupt;
+ TInterrupt = packed record
+ is_Node: TNode;
+ is_Data: Pointer;
+ is_Code: Pointer;
+ end;
+
+type
+ PIntVector = ^TIntVector;
+ TIntVector = packed record
+ iv_Data: Pointer;
+ iv_Code: Pointer;
+ iv_Node: PNode;
+ end;
+
+type
+ PSoftIntList = ^TSoftIntList;
+ TSoftIntList = packed record
+ sh_List: TList;
+ sh_Pad : Word;
+ end;
+
+
+const
+ SIH_PRIMASK = $f0;
+
+ INTB_NMI = 15;
+ INTF_NMI = (1 Shl INTB_NMI);
+
+
+
+{ * exec semaphore definitions (V50)
+ *********************************************************************
+ * }
+
+
+ { *
+ * Shouldn't be available public..
+ * }
+type
+ PSemaphoreRequest = ^TSemaphoreRequest;
+ TSemaphoreRequest = packed record
+ sr_Link : TMinNode;
+ sr_Waiter: PTask;
+ end;
+
+type
+ PSignalSemaphore = ^TSignalSemaphore;
+ TSignalSemaphore = packed record
+ ss_Link : TNode;
+ ss_NestCount : SmallInt;
+ ss_WaitQueue : TMinList;
+ ss_MultipleLink: TSemaphoreRequest;
+ ss_Owner : PTask;
+ ss_QueueCount : SmallInt;
+ end;
+
+type
+ PSemaphoreMessage = ^TSemaphoreMessage;
+ TSemaphoreMessage = packed record
+ ssm_Message : TMessage;
+ ssm_Semaphore: PSignalSemaphore;
+ end;
+
+
+const
+ SM_SHARED = 1;
+ SM_EXCLUSIVE = 0;
+
+
+
+{ * exec machine definitions (V50)
+ *********************************************************************
+ * }
+
+
+const
+ MACHINE_M68k = $0;
+ MACHINE_PPC = $1;
+ MACHINE_NO = $ffffffff;
+
+
+
+{ * exec library definitions (V50)
+ *********************************************************************
+ * }
+
+
+const
+ LIB_VECTSIZE = 6;
+ LIB_RESERVED = 4;
+ LIB_BASE = (-LIB_VECTSIZE);
+ LIB_USERDEF = (LIB_BASE - (LIB_RESERVED * LIB_VECTSIZE));
+ LIB_NONSTD = (LIB_USERDEF);
+
+ LIB_OPEN = -6;
+ LIB_CLOSE = -12;
+ LIB_EXPUNGE = -18;
+ LIB_EXTFUNC = -24;
+ LIB_GETQUERYATTR = -24; { * LIBF_QUERY * }
+
+
+type
+ PLibrary = ^TLibrary;
+ TLibrary = packed record
+ lib_Node : TNode;
+ lib_Flags : Byte;
+ lib_pad : Byte;
+ lib_MegSize : Word;
+ lib_PosSize : Word;
+ lib_Version : Word;
+ lib_Revision: Word;
+ lib_IdString: PChar;
+ lib_Sum : DWord;
+ lib_OpenCnt : Word;
+ end;
+
+
+const
+ LIBF_SUMMING = (1 Shl 0);
+ LIBF_CHANGED = (1 Shl 1);
+ LIBF_SUMUSED = (1 Shl 2);
+ LIBF_DELEXP = (1 Shl 3);
+ { *
+ * private
+ * }
+ LIBF_RAMLIB = (1 Shl 4);
+ { *
+ * Needs to be set if the GetQueryAttr function is legal
+ * }
+ LIBF_QUERYINFO = (1 Shl 5);
+ { *
+ * The remaining bits are reserved and aren`t allowed to be touched
+ * }
+
+
+ { * NewSetFunction extensions
+ * }
+const
+ SETFUNCTAG_Dummy = (TAG_USER +$01000000);
+
+ { * Set the machine type of the function
+ * Default is 68k
+ * }
+ SETFUNCTAG_MACHINE = (SETFUNCTAG_Dummy + $1);
+
+ { * Function type specifier
+ * }
+ SETFUNCTAG_TYPE = (SETFUNCTAG_Dummy + $2);
+
+ { * ID String
+ * }
+ SETFUNCTAG_IDNAME = (SETFUNCTAG_Dummy + $3);
+
+ { *
+ * Set to TRUE if the replaced function will never be used
+ * again.
+ * }
+ SETFUNCTAG_DELETE = (SETFUNCTAG_Dummy + $4);
+
+
+ { * See emul/emulinterface.h for more informations
+ * }
+
+ { * Save Emulation PPC Registers
+ * Call Function
+ * Restore Emulation PPC Registers
+ * REG_D0 = Result
+ * }
+const
+ SETFUNCTYPE_NORMAL = 0;
+ { * Call Function
+ * Must use the global register settings of the emulation
+ * REG_D0 = Result
+ * }
+ SETFUNCTYPE_QUICK = 1;
+ { * Save Emulation PPC Registers
+ * Call Function
+ * Restore Emulation PPC Registers
+ * No Result
+ * Needed to replace functions like
+ * forbid,obtainsemaphores which are
+ * defined as trashing no registers
+ * }
+ SETFUNCTYPE_NORMALNR = 2;
+ { * Call Function
+ * Must use the global register settings of the emulation
+ * No Result
+ * Needed to replace functions like
+ * forbid,obtainsemaphores which are
+ * defined as trashing no registers
+ * }
+ SETFUNCTYPE_QUICKNR = 3;
+ SETFUNCTYPE_NORMALSR = 4;
+ SETFUNCTYPE_NORMALSRNR = 5;
+ SETFUNCTYPE_NORMALD0_D1 = 6;
+ SETFUNCTYPE_NORMALRESTORE = 7;
+ SETFUNCTYPE_SYSTEMV = 8;
+ SETFUNCTYPE_NORMALD0D1SR = 9;
+ SETFUNCTYPE_NORMALD0D1A0A1SR = 10;
+
+
+ { * CreateLibrary extensions
+ * }
+ LIBTAG_BASE = (TAG_USER + $01000100);
+
+ { *
+ * Function/Vector Array
+ * }
+ LIBTAG_FUNCTIONINIT = (LIBTAG_BASE+$0);
+ { *
+ * Struct Init
+ * }
+ LIBTAG_STRUCTINIT = (LIBTAG_BASE+$1);
+ { *
+ * Library Init
+ * }
+ LIBTAG_LIBRARYINIT = (LIBTAG_BASE+$2);
+ { *
+ * Init Code Type
+ * }
+ LIBTAG_MACHINE = (LIBTAG_BASE+$3);
+ { *
+ * Library Base Size
+ * }
+ LIBTAG_BASESIZE = (LIBTAG_BASE+$4);
+ { *
+ * SegList Ptr
+ * }
+ LIBTAG_SEGLIST = (LIBTAG_BASE+$5);
+ { *
+ * Library Priority
+ * }
+ LIBTAG_PRI = (LIBTAG_BASE+$6);
+ { *
+ * Library Type..Library,Device,Resource,whatever
+ * }
+ LIBTAG_TYPE = (LIBTAG_BASE+$7);
+ { *
+ * Library Version
+ * (UWORD)
+ * }
+ LIBTAG_VERSION = (LIBTAG_BASE+$8);
+ { *
+ * Library Flags
+ * }
+ LIBTAG_FLAGS = (LIBTAG_BASE+$9);
+ { *
+ * Library Name
+ * }
+ LIBTAG_NAME = (LIBTAG_BASE+$a);
+ { *
+ * Library IDString
+ * }
+ LIBTAG_IDSTRING = (LIBTAG_BASE+$b);
+ { *
+ * AddDevice(),AddLibrary(),AddResource()..
+ * depends on LibNode.ln_Type field which
+ * can be set by some Init function, Struct Scripts
+ * or LIBTAG_TYPE.
+ * If you set LIBTAG_PUBLIC the library
+ * is added to the right system list.
+ * }
+ LIBTAG_PUBLIC = (LIBTAG_BASE+$c);
+ { *
+ * Library Revision
+ * (UWORD)
+ * }
+ LIBTAG_REVISION = (LIBTAG_BASE+$d);
+ { *
+ * Library QueryInfo Flag
+ * (Boolean)
+ * }
+ LIBTAG_QUERYINFO = (LIBTAG_BASE+$e);
+
+ { * Private
+ * don`t touch...floating design
+ * }
+type
+ PFuncEntry = ^TFuncEntry;
+ TFuncEntry = packed record
+ EmulLibEntry : TEmulLibEntry;
+ OldFunction : Pointer; { * Needed for bookkeeping * }
+ end;
+
+ PFuncOldEntry = ^TFuncOldEntry;
+ TFuncOldEntry = packed record
+ Command : Word;
+ FuncEntry: PFuncEntry;
+ end;
+
+
+ { *
+ * EmulLibEntry.Extension
+ * }
+const
+ FUNCENTRYEXTF_LIBRARY = $1; { * Entry created by the OS * }
+
+ { *
+ * Functionarray first ULONG ID defines the format
+ * of the functionarray for MakeFunctions()/MakeLibrary().
+ *
+ * If there`s not such id the functionarray is a
+ * 32Bit 68k function ptr array.
+ * (ULONG) $ffffffff stops it
+ * }
+
+ { * 68k 16bit relative functionarray ptrs
+ * (UWORD) $ffff stops it
+ * }
+
+ FUNCARRAY_16BIT_OLD = $ffffffff;
+
+ { * PPC 32bit functionarray ptrs
+ * (ULONG) $ffff stops it
+ * }
+ FUNCARRAY_32BIT_NATIVE = $fffefffe;
+
+ { * Starts a functionarray block.
+ * This way it`s possible to mix 68k and PPC
+ * function definitions.
+ * BASE:
+ * FUNCTIONARRAY_BEGIN
+ * FUNCARRAY_32BIT_NATIVE
+ * FUNC0
+ * FUNC1
+ * .
+ * FUNCn
+ * $ffffffff
+ * FUNCn+1 (No ID->32Bit 68k)
+ * FUNCn+2
+ * .
+ * FUNCm
+ * $ffffffff
+ * FUNCARRAY_16BIT_OLD
+ * FUNCm+1-BASE
+ * FUNCm+2-BASE
+ * .
+ * FUNCo-BASE
+ * $ffff
+ * FUNCTIONARRAY_END
+ * }
+
+ FUNCARRAY_BEGIN = $fffdfffd;
+
+ { * Ends a functionarray block.
+ * }
+ FUNCARRAY_END = $fffcfffc;
+
+ { * PPC 32bit Quick functionarray ptrs.
+ * These functions must comply to the emulation's
+ * register layout which is defined inside the
+ * emul/emulregs.h. That means the register layout
+ * MUST also be valid during interrupts/task switches.
+ * You can't just destroy A7(r31), SR or PC.
+ *
+ * You shouldn't use this for any normal code
+ * as there's no real reason to do so. If you
+ * really think you need to use it please ask
+ * us first on the dev mailinglist.
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_QUICK_NATIVE = $fffbfffb;
+
+ { * PPC 32bit QuickNR(No Result) functionarray ptrs
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_QUICKNR_NATIVE = $fffafffa;
+
+ { * PPC 32bit no result functionarray ptrs
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_NR_NATIVE = $fff9fff9;
+
+ { * PPC 32bit SR functionarray ptrs
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_SR_NATIVE = $fff8fff8;
+
+ { * PPC 32bit SR(no result) functionarray ptrs
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_SRNR_NATIVE = $fff7fff7;
+
+ { * PPC 32bit D0_D1 functionarray ptrs
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_D0D1_NATIVE = $fff6fff6;
+
+ { * PPC 32bit Restore1 functionarray ptrs
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_RESTORE_NATIVE = $fff5fff5;
+
+ { * PPC 32bit SystemV ABI entry
+ * these function entries DON'T comply
+ * to the amiga register modell REG_D0-A6
+ * but comply to the PPC SystemV ABI so
+ * you can directly use PPC C Argument
+ * parsing. That way you're also not limited
+ * with the register count.
+ * Such library functions can't be used
+ * by 68k emulation, so you can only use
+ * them for new code.
+ * As we allow these new functions to be
+ * used with old functions we keep the
+ * 6 bytes function entry steps in the library.
+ * Layout is
+ *
+ * CODE_JMP, &FuncEntry ; Old Entry
+ * CODE_ILLEGAL, Function ; SystemV ABI Entry
+ *
+ *
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_SYSTEMV = $fff4fff4;
+
+ { * PPC 32bit D0D1SR functionarray ptrs
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_D0D1SR_NATIVE = $fff3fff3;
+
+ { * PPC 32bit D0D1A0A1SR functionarray ptrs
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_D0D1A0A1SR_NATIVE = $fff2fff2;
+
+
+
+{ * exec device definitions (V50)
+ *********************************************************************
+ * }
+
+
+type
+ PDevice = ^TDevice;
+ TDevice = packed record
+ dd_Library: TLibrary;
+ end;
+
+type
+ PUnit = ^TUnit;
+ TUnit = packed record
+ unit_MsgPort: TMsgPort;
+ unit_flags : Byte;
+ unit_pad : Byte;
+ unit_OpenCnt: Word;
+ end;
+
+
+const
+ UNITF_ACTIVE = (1 Shl 0);
+ UNITF_INTASK = (1 Shl 1);
+
+
+
+{ * exec io definitions (V50)
+ *********************************************************************
+ * }
+
+
+type
+ PIORequest = ^TIORequest;
+ TIORequest = packed record
+ io_Message: TMessage;
+ io_Device : PDevice;
+ io_Unit : PUnit;
+ io_Command: Word;
+ io_Flags : Byte;
+ io_Error : ShortInt;
+ end;
+
+type
+ PIOStdReq = ^TIOStdReq;
+ TIOStdReq = packed record
+ io_Message: TMessage;
+ io_Device : PDevice;
+ io_Unit : PUnit;
+ io_Command: Word;
+ io_Flags : Byte;
+ io_Error : ShortInt;
+ io_Actual : DWord;
+ io_Length : DWord;
+ io_Data : Pointer;
+ io_Offset : DWord;
+ end;
+
+
+const
+ DEV_BEGINIO = -30;
+ DEV_ABORTIO = -36;
+
+ IOB_QUICK = 0;
+ IOF_QUICK = (1 Shl IOB_QUICK);
+
+ CMD_INVALID = 0;
+ CMD_RESET = 1;
+ CMD_READ = 2;
+ CMD_WRITE = 3;
+ CMD_UPDATE = 4;
+ CMD_CLEAR = 5;
+ CMD_STOP = 6;
+ CMD_START = 7;
+ CMD_FLUSH = 8;
+ CMD_NONSTD = 9;
+
+
+
+{ * exec include (V50)
+ *********************************************************************
+ * }
+
+
+type
+ PExecBase = ^TExecBase;
+ TExecBase = packed record
+ LIbNode : TLibrary;
+ SoftVer : Word;
+ LowMemChkSum: SmallInt;
+ ChkBase : DWord;
+ ColdCapture : Pointer;
+ CoolCapture : Pointer;
+ WarmCapture : Pointer;
+ SysStkUpper : Pointer;
+ SysStkLower : Pointer;
+ MaxLocMem : DWord;
+ DebugEntry : Pointer;
+ DebugData : Pointer;
+ AlertData : Pointer;
+ MaxExtMem : Pointer;
+ ChkSum : Word;
+ IntVects : Array[0..15] Of TIntVector;
+ ThisTask : PTask;
+ IdleCount : DWord;
+ DispCount : DWord;
+ Quantum : Word;
+ Elapsed : Word;
+ SysFlags : Word;
+ IDNestCnt : ShortInt;
+ TDNestCnt : ShortInt;
+ AttnFlags : Word;
+ AttnResched : Word;
+ ResModules : Pointer;
+
+ TaskTrapCode : Pointer;
+ TaskExceptCode: Pointer;
+ TaskExitCode : Pointer;
+ TaskSigAlloc : DWord;
+ TaskTrapAlloc : Word;
+
+ MemList : TList;
+ ResourceList: TList;
+ DeviceList : TList;
+ IntrList : TList;
+ LibList : TList;
+ PortList : TList;
+ TaskReady : TList;
+ TaskWait : TList;
+ SoftInts : Array[0..5] Of TSoftIntList;
+ LastAlert : Array[0..3] Of LongInt;
+
+ VBlankFrequency : Byte;
+ PowerSupplyFrequency: Byte;
+ SemaphoreList : TList;
+ KickMemPtr : Pointer;
+ KickTagPtr : Pointer;
+ KickCheckSum : Pointer;
+ ex_Pad0 : Word;
+ ex_LaunchPoint : DWord;
+ ex_RamLibPrivate : Pointer;
+ ex_EClockFrequency : DWord;
+ ex_CacheControl : DWord;
+ ex_TaskID : DWord;
+
+ { * New ABox Emulation Entries
+ * }
+ ex_EmulHandleSize : DWord; { * PPC EmulHandleSize..*private* * }
+ ex_PPCTrapMsgPort : PMsgPort; { * PPC ABox Exception MsgPort..*private* * }
+ ex_Reserved1 : Array[0..2] Of DWord;
+ ex_MMULock : Pointer;
+ ex_PatchPool : Pointer; { * PatchPool Ptr needed by SetFunction..*private* * }
+ ex_PPCTaskExitCode : Pointer; { * PPC Task exit function * }
+ ex_DebugFlags : DWord; { * Exec Debug Flags..*private* * }
+
+ ex_MemHandlers : TMinList;
+ ex_MemHandler : Pointer;
+ end;
+
+
+ { *
+ * Outdated 68k cpu informations
+ *
+ * }
+const
+ AFB_68010 = 0;
+ AFB_68020 = 1;
+ AFB_68030 = 2;
+ AFB_68040 = 3;
+ AFB_68881 = 4;
+ AFB_68882 = 5;
+ AFB_FPU40 = 6;
+ AFB_68060 = 7;
+ AFB_PRIVATE = 15;
+
+ AFF_68010 = (1 Shl AFB_68010);
+ AFF_68020 = (1 Shl AFB_68020);
+ AFF_68030 = (1 Shl AFB_68030);
+ AFF_68040 = (1 Shl AFB_68040);
+ AFF_68881 = (1 Shl AFB_68881);
+ AFF_68882 = (1 Shl AFB_68882);
+ AFF_FPU40 = (1 Shl AFB_FPU40);
+ AFF_68060 = (1 Shl AFB_68060);
+ AFF_PRIVATE = (1 Shl AFB_PRIVATE);
+
+ { *
+ * Outdated 68k cache functionality
+ * Mostly without function.
+ * }
+const
+ CACRF_EnableI = (1 Shl 0);
+ CACRF_FreezeI = (1 Shl 1);
+ CACRF_ClearI = (1 Shl 3);
+ CACRF_IBE = (1 Shl 4);
+ CACRF_EnableD = (1 Shl 8);
+ CACRF_FreezeD = (1 Shl 9);
+ CACRF_ClearD = (1 Shl 11);
+ CACRF_DBE = (1 Shl 12);
+ CACRF_WriteAllocate = (1 Shl 13);
+ CACRF_EnableE = (1 Shl 30);
+ CACRF_CopyBack = (1 Shl 31);
+
+ DMA_Continue = (1 Shl 1);
+ DMA_NoModify = (1 Shl 2);
+ DMA_ReadFromRAM = (1 Shl 3);
+
+ SB_SAR = 15;
+ SB_TQE = 14;
+ SB_SINT = 13;
+
+ SF_SAR = (1 Shl SB_SAR);
+ SF_TQE = (1 Shl SB_TQE);
+ SF_SINT = (1 Shl SB_SINT);
+
+
+ { ****** Debug Flags...(don`t depend on them) ********** }
+const
+ EXECDEBUGF_INITRESIDENT = $1;
+ EXECDEBUGF_INITCODE = $2;
+ EXECDEBUGF_FINDRESIDENT = $4;
+
+ EXECDEBUGF_CREATELIBRARY = $10;
+ EXECDEBUGF_SETFUNCTION = $20;
+ EXECDEBUGF_NEWSETFUNCTION = $40;
+ EXECDEBUGF_CHIPRAM = $80;
+
+ EXECDEBUGF_ADDTASK = $100;
+ EXECDEBUGF_REMTASK = $200;
+ EXECDEBUGF_GETTASKATTR = $400;
+ EXECDEBUGF_SETTASKATTR = $800;
+
+ EXECDEBUGF_EXCEPTHANDLER = $1000;
+ EXECDEBUGF_ADDDOSNODE = $2000;
+ EXECDEBUGF_PCI = $4000;
+ EXECDEBUGF_RAMLIB = $8000;
+
+ EXECDEBUGF_NOLOGSERVER = $10000;
+ EXECDEBUGF_NOLOGWINDOW = $20000;
+
+ { *
+ * "env:MorphOS/LogPath" contains the logfile path,
+ * If not specified it`s using "ram:.morphoslog"
+ * }
+ EXECDEBUGF_LOGFILE = $40000;
+ EXECDEBUGF_LOGKPRINTF = $80000;
+
+ { * Memory Tracking Flags
+ * }
+ EXECDEBUGF_PERMMEMTRACK = $100000;
+ EXECDEBUGF_MEMTRACK = $200000;
+
+ { * CyberGuardPPC Flags
+ * }
+ EXECDEBUGF_CYBERGUARDDEADLY = $400000;
+
+ { * PPCLib Flags
+ * }
+ EXECDEBUGF_LOADSEG = $01000000;
+ EXECDEBUGF_UNLOADSEG = $02000000;
+ EXECDEBUGF_PPCSTART = $04000000;
+
+ { * UserFlags
+ * }
+
+ { *
+ * Enables debug output for cybergraphx
+ * }
+const
+ EXECDEBUGF_CGXDEBUG = $08000000;
+
+ { *
+ * Should be used to control user LibInit/DevInit Debug output
+ * }
+ EXECDEBUGF_INIT = $40000000;
+
+ { *
+ * Should be used to control logging
+ * }
+ EXECDEBUGF_LOG = $80000000;
+
+ { *
+ * Execbase list IDs
+ * }
+ EXECLIST_DEVICE = 0;
+ EXECLIST_INTERRUPT = 1;
+ EXECLIST_LIBRARY = 2;
+ EXECLIST_MEMHANDLER = 3;
+ EXECLIST_MEMHEADER = 4;
+ EXECLIST_PORT = 5;
+ EXECLIST_RESOURCE = 6;
+ EXECLIST_SEMAPHORE = 7;
+ EXECLIST_TASK = 8;
+
+
+ { *
+ * Execnotify hook message
+ * }
+type
+ PExecNotifyMessage = ^TExecNotifyMessage;
+ TExecNotifyMessage = packed record
+ MType : DWord;
+ Flags : DWord;
+ Extra : DWord;
+ Extension: Pointer;
+ end;
+
+
+const
+ EXECNOTIFYF_REMOVE = (1 Shl 0); { * if clear, is ADD * }
+ EXECNOTIFYF_POST = (1 Shl 1); { * if clear, is PRE * }
+
+
+ { *
+ * AddExecNodeTagList tags
+ * }
+const
+ SAL_Dummy = (TAG_USER + 1000);
+ SAL_Type = (SAL_Dummy + 1);
+ SAL_Priority = (SAL_Dummy + 2);
+ SAL_Name = (SAL_Dummy + 3);
+
+
+function Supervisor(userFunction: Pointer location 'a5'): Cardinal;
+SysCall MOS_ExecBase 030;
+
+procedure InitCode(startClass: Cardinal location 'd0';
+ version : Cardinal location 'd1');
+SysCall MOS_ExecBase 072;
+
+procedure InitStruct(initTable: Pointer location 'a1';
+ memory : Pointer location 'a2';
+ size : Cardinal location 'd0');
+SysCall MOS_ExecBase 078;
+
+function MakeLibrary(funcInit : Pointer location 'a0';
+ structInit: Pointer location 'a1';
+ libInit : Pointer location 'a2';
+ dataSize : Cardinal location 'd0';
+ segList : Cardinal location 'd1'): PLibrary;
+SysCall MOS_ExecBase 084;
+
+procedure MakeFunctions(target : Pointer location 'a0';
+ functionArray: Pointer location 'a1';
+ funcDispBase : Pointer location 'a2');
+SysCall MOS_ExecBase 090;
+
+function FindResident(name: PChar location 'a1'): PResident;
+SysCall MOS_ExecBase 096;
+
+function InitResident(resident: PResident location 'a1';
+ segList : Cardinal location 'd1'): Pointer;
+SysCall MOS_ExecBase 102;
+
+procedure Alert(alertNum: Cardinal location 'd7');
+SysCall MOS_ExecBase 108;
+
+procedure Debug(flags: Cardinal location 'd0');
+SysCall MOS_ExecBase 114;
+
+procedure Disable;
+SysCall MOS_ExecBase 120;
+
+procedure Enable;
+SysCall MOS_ExecBase 126;
+
+procedure Forbid;
+SysCall MOS_ExecBase 132;
+
+procedure Permit;
+SysCall MOS_ExecBase 138;
+
+function SetSR(newSR: Cardinal location 'd0';
+ mask : Cardinal location 'd1'): Cardinal;
+SysCall MOS_ExecBase 144;
+
+function SuperState : Pointer;
+SysCall MOS_ExecBase 150;
+
+procedure UserState(sysStack: Pointer location 'd0');
+SysCall MOS_ExecBase 156;
+
+function SetIntVector(intNumber: LongInt location 'd0';
+ interrupt: PInterrupt location 'a1'): PInterrupt;
+SysCall MOS_ExecBase 162;
+
+procedure AddIntServer(intNumber: LongInt location 'd0';
+ interrupt: PInterrupt location 'a1');
+SysCall MOS_ExecBase 168;
+
+procedure RemIntServer(intNumber: LongInt location 'd0';
+ interrupt: PInterrupt location 'a1');
+SysCall MOS_ExecBase 174;
+
+procedure Cause(interrupt: PInterrupt location 'a1');
+SysCall MOS_ExecBase 180;
+
+function Allocate(freeList: PMemHeader location 'a0';
+ byteSize: Cardinal location 'd0'): Pointer;
+SysCall MOS_ExecBase 186;
+
+procedure Deallocate(freeList : PMemHeader location 'a0';
+ memoryBlock: Pointer location 'a1';
+ byteSize : Cardinal location 'd0');
+SysCall MOS_ExecBase 192;
+
+{ * Name changed to avoid conflict with heap manager... * }
+function execAllocMem(byteSize : Cardinal location 'd0';
+ requirements: Cardinal location 'd1'): Pointer;
+SysCall MOS_ExecBase 198;
+
+function AllocAbs(byteSize: Cardinal location 'd0';
+ location: Pointer location 'a1'): Pointer;
+SysCall MOS_ExecBase 204;
+
+{ * Name changed to avoid conflict with heap manager... * }
+procedure execFreeMem(memoryBlock: Pointer location 'a1';
+ byteSize : Cardinal location 'd0');
+SysCall MOS_ExecBase 210;
+
+function AvailMem(requirements: Cardinal location 'd1'): Cardinal;
+SysCall MOS_ExecBase 216;
+
+function AllocEntry(entry: PMemList location 'a0'): PMemList;
+SysCall MOS_ExecBase 222;
+
+procedure FreeEntry(entry: PMemList location 'a0');
+SysCall MOS_ExecBase 228;
+
+{ * Name changed to avoid conflict with other System unit call... * }
+procedure execInsert(list: PList location 'a0';
+ node: PNode location 'a1';
+ pred: PNode location 'a2');
+SysCall MOS_ExecBase 234;
+
+procedure AddHead(list: PList location 'a0';
+ node: PNode location 'a1');
+SysCall MOS_ExecBase 240;
+
+procedure AddTail(list: PList location 'a0';
+ node: PNode location 'a1');
+SysCall MOS_ExecBase 246;
+
+procedure Remove(node: PNode location 'a1');
+SysCall MOS_ExecBase 252;
+
+function RemHead(list: PList location 'a0'): PNode;
+SysCall MOS_ExecBase 258;
+
+function RemTail(list: PList location 'a0'): PNode;
+SysCall MOS_ExecBase 264;
+
+procedure Enqueue(list: PList location 'a0';
+ node: PNode location 'a1');
+SysCall MOS_ExecBase 270;
+
+function FindName(list: PList location 'a0';
+ name: PChar location 'a1'): PNode;
+SysCall MOS_ExecBase 276;
+
+function AddTask(task : PTask location 'a1';
+ initPC : Pointer location 'a2';
+ finalPC: Pointer location 'a3'): Pointer;
+SysCall MOS_ExecBase 282;
+
+procedure RemTask(task: PTask location 'a1');
+SysCall MOS_ExecBase 288;
+
+function FindTask(name: PChar location 'a1'): PTask;
+SysCall MOS_ExecBase 294;
+
+function SetTaskPri(task : PTask location 'a1';
+ priority: LongInt location 'd0'): ShortInt;
+SysCall MOS_ExecBase 300;
+
+function SetSignal(newSignals: Cardinal location 'd0';
+ signalSet : Cardinal location 'd1'): Cardinal;
+SysCall MOS_ExecBase 306;
+
+function SetExcept(newSignals: Cardinal location 'd0';
+ signalSet : Cardinal location 'd1'): Cardinal;
+SysCall MOS_ExecBase 312;
+
+function Wait(signalSet: Cardinal location 'd0'): Cardinal;
+SysCall MOS_ExecBase 318;
+
+procedure Signal(task : PTask location 'a1';
+ signalSet: Cardinal location 'd0');
+SysCall MOS_ExecBase 324;
+
+function AllocSignal(signalNum: LongInt location 'd0'): ShortInt;
+SysCall MOS_ExecBase 330;
+
+procedure FreeSignal(signalNum: LongInt location 'd0');
+SysCall MOS_ExecBase 336;
+
+function AllocTrap(trapNum: LongInt location 'd0'): LongInt;
+SysCall MOS_ExecBase 342;
+
+procedure FreeTrap(trapNum: LongInt location 'd0');
+SysCall MOS_ExecBase 348;
+
+procedure AddPort(port: PMsgPort location 'a1');
+SysCall MOS_ExecBase 354;
+
+procedure RemPort(port: PMsgPort location 'a1');
+SysCall MOS_ExecBase 360;
+
+procedure PutMsg(port : PMsgPort location 'a0';
+ message: PMessage location 'a1');
+SysCall MOS_ExecBase 366;
+
+function GetMsg(port: PMsgPort location 'a0'): PMessage;
+SysCall MOS_ExecBase 372;
+
+procedure ReplyMsg(message : PMessage location 'a1');
+SysCall MOS_ExecBase 378;
+
+function WaitPort(port: PMsgPort location 'a0'): PMessage;
+SysCall MOS_ExecBase 384;
+
+function FindPort(name: PChar location 'a1'): PMsgPort;
+SysCall MOS_ExecBase 390;
+
+procedure AddLibrary(libHandle: PLibrary location 'a1');
+SysCall MOS_ExecBase 396;
+
+procedure RemLibrary(libHandle: PLibrary location 'a1');
+SysCall MOS_ExecBase 402;
+
+function OldOpenLibrary(libName: PChar location 'a1'): PLibrary;
+SysCall MOS_ExecBase 408;
+
+procedure CloseLibrary(libHandle: PLibrary location 'a1');
+SysCall MOS_ExecBase 414;
+
+function SetFunction(libHandle : PLibrary location 'a1';
+ funcOffset : LongInt location 'a0';
+ newFunction: Pointer location 'd0'): Pointer;
+SysCall MOS_ExecBase 420;
+
+procedure SumLibrary(libHandle: PLibrary location 'a1');
+SysCall MOS_ExecBase 426;
+
+procedure AddDevice(device: PDevice location 'a1');
+SysCall MOS_ExecBase 432;
+
+procedure RemDevice(device: PDevice location 'a1');
+SysCall MOS_ExecBase 438;
+
+function OpenDevice(devName : PChar location 'a0';
+ numunit : Cardinal location 'd0';
+ ioRequest: pIORequest location 'a1';
+ flags : Cardinal location 'd1'): ShortInt;
+SysCall MOS_ExecBase 444;
+
+procedure CloseDevice(ioRequest: PIORequest location 'a1');
+SysCall MOS_ExecBase 450;
+
+function DoIO(ioRequest: PIORequest location 'a1'): ShortInt;
+SysCall MOS_ExecBase 456;
+
+procedure SendIO(ioRequest: PIORequest location 'a1');
+SysCall MOS_ExecBase 462;
+
+function CheckIO(ioRequest: PIORequest location 'a1'): PIORequest;
+SysCall MOS_ExecBase 468;
+
+function WaitIO(ioRequest: PIORequest location 'a1'): ShortInt;
+SysCall MOS_ExecBase 474;
+
+procedure AbortIO(ioRequest: PIORequest location 'a1');
+SysCall MOS_ExecBase 480;
+
+procedure AddResource(resource: Pointer location 'a1');
+SysCall MOS_ExecBase 486;
+
+procedure RemResource(resource: Pointer location 'a1');
+SysCall MOS_ExecBase 492;
+
+function OpenResource(resName: PChar location 'a1'): Pointer;
+SysCall MOS_ExecBase 498;
+
+procedure RawIOInit;
+SysCall MOS_ExecBase 504;
+
+function RawMayGetChar: Char;
+SysCall MOS_ExecBase 510;
+
+procedure RawPutChar(d0arg: Char location 'd0');
+SysCall MOS_ExecBase 516;
+
+function RawDoFmt(formatString: PChar location 'a0';
+ dataStream : Pointer location 'a1';
+ putChProc : Pointer location 'a2';
+ putChData : Pointer location 'a3'): Pointer;
+SysCall MOS_ExecBase 522;
+
+function GetCC: Cardinal;
+SysCall MOS_ExecBase 528;
+
+function TypeOfMem(address: Pointer location 'a1'): Cardinal;
+SysCall MOS_ExecBase 534;
+
+function Procure(sigSem: PSignalSemaphore location 'a0';
+ bidMsg: PSemaphoreMessage location 'a1'): Cardinal;
+SysCall MOS_ExecBase 540;
+
+procedure Vacate(sigSem: PSignalSemaphore location 'a0';
+ bidMsg: PSemaphoreMessage location 'a1');
+SysCall MOS_ExecBase 546;
+
+function OpenLibrary(libname: PChar location 'a1';
+ libver : Cardinal location 'd0'): Pointer;
+SysCall MOS_ExecBase 552;
+
+procedure InitSemaphore(sigSem: PSignalSemaphore location 'a0');
+SysCall MOS_ExecBase 558;
+
+procedure ObtainSemaphore(sigSem: PSignalSemaphore location 'a0');
+SysCall MOS_ExecBase 564;
+
+procedure ReleaseSemaphore(sigSem: PSignalSemaphore location 'a0');
+SysCall MOS_ExecBase 570;
+
+function AttemptSemaphore(sigSem: PSignalSemaphore location 'a0'): Cardinal;
+SysCall MOS_ExecBase 576;
+
+procedure ObtainSemaphoreList(sigSem: PList location 'a0');
+SysCall MOS_ExecBase 582;
+
+procedure ReleaseSemaphoreList(sigSem: PList location 'a0');
+SysCall MOS_ExecBase 588;
+
+function FindSemaphore(sigSem: PChar location 'a1'): PSignalSemaphore;
+SysCall MOS_ExecBase 594;
+
+procedure AddSemaphore(sigSem: PSignalSemaphore location 'a1');
+SysCall MOS_ExecBase 600;
+
+procedure RemSemaphore(sigSem: PSignalSemaphore location 'a1');
+SysCall MOS_ExecBase 606;
+
+function SumKickData: Cardinal;
+SysCall MOS_ExecBase 612;
+
+procedure AddMemList(size : Cardinal location 'd0';
+ attributes: Cardinal location 'd1';
+ pri : LongInt location 'd2';
+ base : Pointer location 'a0';
+ name : PChar location 'a1');
+SysCall MOS_ExecBase 618;
+
+procedure CopyMem(source: Pointer location 'a0';
+ dest : Pointer location 'a1';
+ size : Cardinal location 'd0');
+SysCall MOS_ExecBase 624;
+
+procedure CopyMemQuick(source: Pointer location 'a0';
+ dest : Pointer location 'a1';
+ size : Cardinal location 'd0');
+SysCall MOS_ExecBase 630;
+
+procedure CacheClearU;
+SysCall MOS_ExecBase 636;
+
+procedure CacheClearE(address: Pointer location 'a0';
+ length : Cardinal location 'd0';
+ caches : Cardinal location 'd1');
+SysCall MOS_ExecBase 642;
+
+function CacheControl(cacheBits: Cardinal location 'd0';
+ cacheMask: Cardinal location 'd1'): Cardinal;
+SysCall MOS_ExecBase 648;
+
+function CreateIORequest(port: PMsgPort location 'a0';
+ size: Cardinal location 'd0'): Pointer;
+SysCall MOS_ExecBase 654;
+
+procedure DeleteIORequest(iorequest: Pointer location 'a0');
+SysCall MOS_ExecBase 660;
+
+function CreateMsgPort: PMsgPort;
+SysCall MOS_ExecBase 666;
+
+procedure DeleteMsgPort(port: PMsgPort location 'a0');
+SysCall MOS_ExecBase 672;
+
+procedure ObtainSemaphoreShared(sigSem: PSignalSemaphore location 'a0');
+SysCall MOS_ExecBase 678;
+
+function AllocVec(byteSize : Cardinal location 'd0';
+ requirements: Cardinal location 'd1'): Pointer;
+SysCall MOS_ExecBase 684;
+
+procedure FreeVec(memoryBlock: Pointer location 'a1');
+SysCall MOS_ExecBase 690;
+
+function CreatePool(requirements: Cardinal location 'd0';
+ puddleSize : Cardinal location 'd1';
+ threshSize : Cardinal location 'd2'): Pointer;
+SysCall MOS_ExecBase 696;
+
+procedure DeletePool(poolHeader: Pointer location 'a0');
+SysCall MOS_ExecBase 702;
+
+function AllocPooled(poolHeader: Pointer location 'a0';
+ memSize : Cardinal location 'd0'): Pointer;
+SysCall MOS_ExecBase 708;
+
+function FreePooled(poolHeader: Pointer location 'a0';
+ memory : Pointer location 'a1';
+ memSize : Cardinal location 'd0'): Pointer;
+SysCall MOS_ExecBase 714;
+
+function AttemptSemaphoreShared(sigSem: pSignalSemaphore location 'a0'): Cardinal;
+SysCall MOS_ExecBase 720;
+
+procedure ColdReboot;
+SysCall MOS_ExecBase 726;
+
+procedure StackSwap(newStack: PStackSwapStruct location 'a0');
+SysCall MOS_ExecBase 732;
+
+function NewGetTaskAttrsA(Task : PTask location 'a0';
+ Data : Pointer location 'a1';
+ DataSize: Cardinal location 'd0';
+ TType : Cardinal location 'd1';
+ Tags : PTagItem location 'a2'): Cardinal;
+SysCall MOS_ExecBase 738;
+
+function NewSetTaskAttrsA(Task : PTask location 'a0';
+ Data : Pointer location 'a1';
+ DataSize: Cardinal location 'd0';
+ TType : Cardinal location 'd1';
+ Tags : PTagItem location 'a2'): Cardinal;
+SysCall MOS_ExecBase 744;
+
+function CachePreDMA(address : Pointer location 'a0';
+ var length: Cardinal location 'a1';
+ flags : Cardinal location 'd0'): Pointer;
+SysCall MOS_ExecBase 762;
+
+procedure CachePostDMA(address : Pointer location 'a0';
+ var length: Cardinal location 'a1';
+ flags : Cardinal location 'd0');
+SysCall MOS_ExecBase 768;
+
+procedure AddMemHandler(memhand: PInterrupt location 'a1');
+SysCall MOS_ExecBase 774;
+
+procedure RemMemHandler(memhand: PInterrupt location 'a1');
+SysCall MOS_ExecBase 780;
+
+function ObtainQuickVector(interruptCode: Pointer location 'a0'): Cardinal;
+SysCall MOS_ExecBase 786;
+
+function NewSetFunction(libHandle : PLibrary location 'a0';
+ newfunction: Pointer location 'a1';
+ offset : LongInt location 'd0';
+ tags : PTagItem location 'a2'): Pointer;
+SysCall MOS_ExecBase 792;
+
+function NewCreateLibrary(tags: PTagItem location 'a0'): PLibrary;
+SysCall MOS_ExecBase 798;
+
+function NewPPCStackSwap(newStack : PStackSwapStruct location 'a0';
+ sfunction: Pointer location 'a1';
+ args : PPPCStackSwapArgs location 'a2'): Cardinal;
+SysCall MOS_ExecBase 804;
+
+function TaggedOpenLibrary(d0arg: LongInt location 'd0'): Pointer;
+SysCall MOS_ExecBase 810;
+
+function ReadGayle: Cardinal;
+SysCall MOS_ExecBase 816;
+
+function VNewRawDoFmt(FmtString: PChar;
+ PutChProc: Pointer;
+ PutChData: PChar;
+ args : PChar): PChar;
+SysCall BaseSysV MOS_ExecBase 822;
+
+procedure CacheFlushDataArea(Address: Pointer location 'a0';
+ Size : Cardinal location 'd0');
+SysCall MOS_ExecBase 828;
+
+procedure CacheInvalidInstArea(Address: Pointer location 'a0';
+ Size : Cardinal location 'd0');
+SysCall MOS_ExecBase 834;
+
+procedure CacheInvalidDataArea(Address: Pointer location 'a0';
+ Size : Cardinal location 'd0');
+SysCall MOS_ExecBase 840;
+
+procedure CacheFlushDataInstArea(Address: Pointer location 'a0';
+ Size : Cardinal location 'd0');
+SysCall MOS_ExecBase 846;
+
+procedure CacheTrashCacheArea(Address: Pointer location 'a0';
+ Size : Cardinal location 'd0');
+SysCall MOS_ExecBase 852;
+
+function AllocTaskPooled(Size: Cardinal location 'd0'): Pointer;
+SysCall MOS_ExecBase 858;
+
+procedure FreeTaskPooled(Address: Pointer location 'a1';
+ Size : Cardinal location 'd0');
+SysCall MOS_ExecBase 864;
+
+function AllocVecTaskPooled(Size: Cardinal location 'd0'): Pointer;
+SysCall MOS_ExecBase 870;
+
+procedure FreeVecTaskPooled(Address: Pointer location 'a1');
+SysCall MOS_ExecBase 876;
+
+procedure FlushPool(poolHeader: Pointer location 'a0');
+SysCall MOS_ExecBase 882;
+
+procedure FlushTaskPool;
+SysCall MOS_ExecBase 888;
+
+function AllocVecPooled(poolHeader: Pointer location 'a0';
+ memSize : Cardinal location 'd0'): Pointer;
+SysCall MOS_ExecBase 894;
+
+function NewGetSystemAttrsA(Data : Pointer location 'a0';
+ DataSize: Cardinal location 'd0';
+ TType : Cardinal location 'd1';
+ Tags : PTagItem location 'a1'): Cardinal;
+SysCall MOS_ExecBase 906;
+
+function NewSetSystemAttrsA(Data : Pointer location 'a0';
+ DataSize: Cardinal location 'd0';
+ TType : Cardinal location 'd1';
+ Tags : PTagItem location 'a1'): Cardinal;
+SysCall MOS_ExecBase 912;
+
+function NewCreateTaskA(Tags: PTagItem location 'a0'): PTask;
+SysCall MOS_ExecBase 918;
+
+function AllocateAligned(memHeader : pMemHeader;
+ byteSize : Cardinal;
+ alignSize : Cardinal;
+ alignOffset: Cardinal): Pointer;
+SysCall BaseSysV MOS_ExecBase 930;
+
+function AllocMemAligned(byteSize : Cardinal;
+ attributes : Cardinal;
+ alignSize : Cardinal;
+ alignOffset: Cardinal): Pointer;
+SysCall BaseSysV MOS_ExecBase 936;
+
+function AllocVecAligned(byteSize : Cardinal;
+ attributes : Cardinal;
+ alignSize : Cardinal;
+ alignOffset: Cardinal): Pointer;
+SysCall BaseSysV MOS_ExecBase 942;
+
+procedure AddExecNotify(hook: PHook);
+SysCall BaseSysV MOS_ExecBase 948;
+
+procedure RemExecNotify(hook: PHook);
+SysCall BaseSysV MOS_ExecBase 954;
+
+function FindExecNode(ttype: Cardinal location 'd0';
+ name : PChar location 'a0'): PNode;
+SysCall MOS_ExecBase 960;
+
+function AddExecNodeA(innode : Pointer location 'a0';
+ TagItems: PTagItem location 'a1'): Pointer;
+SysCall MOS_ExecBase 966;
+
+function AllocVecDMA(byteSize : Cardinal location 'd0';
+ requirements: Cardinal location 'd1'): Pointer;
+SysCall MOS_ExecBase 972;
+
+procedure FreeVecDMA(memoryBlock: Pointer location 'a1');
+SysCall MOS_ExecBase 978;
+
+function AllocPooledAligned(poolHeader : Pointer;
+ byteSize : Cardinal;
+ alignSize : Cardinal;
+ alignOffset: Cardinal): Pointer;
+SysCall BaseSysV MOS_ExecBase 984;
+
+function AddResident(resident: pResident location 'd0'): LongInt;
+SysCall BaseSysV MOS_ExecBase 990;
+
+function FindTaskByPID(processID: Cardinal): PTask;
+SysCall BaseSysV MOS_ExecBase 996;
+
+function NewGetTaskAttrs(Task : PTask;
+ Data : Pointer;
+ DataSize: Cardinal;
+ TType : Cardinal;
+ Tags : array of DWord): Cardinal; Inline;
+
+implementation
+
+function NewGetTaskAttrs(Task : PTask;
+ Data : Pointer;
+ DataSize: Cardinal;
+ TType : Cardinal;
+ Tags : array of DWord): Cardinal; Inline;
+begin
+ NewGetTaskAttrs:=NewGetTaskAttrsA(Task,Data,DataSize,TType,@Tags);
+end;
+
+
+begin
+ ExecBase:=MOS_ExecBase;
+end.
diff --git a/rtl/morphos/get9.pas b/packages/morphunits/src/get9.pas
index d4a471e02f..d4a471e02f 100644
--- a/rtl/morphos/get9.pas
+++ b/packages/morphunits/src/get9.pas
diff --git a/rtl/morphos/hardware.pas b/packages/morphunits/src/hardware.pas
index 67b9e80328..67b9e80328 100644
--- a/rtl/morphos/hardware.pas
+++ b/packages/morphunits/src/hardware.pas
diff --git a/packages/morphunits/src/iffparse.pas b/packages/morphunits/src/iffparse.pas
new file mode 100644
index 0000000000..cc769fdddd
--- /dev/null
+++ b/packages/morphunits/src/iffparse.pas
@@ -0,0 +1,319 @@
+{
+ This file is part of the Free Pascal run time library.
+
+ iffparse.library interface unit, MorphOS version
+
+ Copyright (c) 1998-2003 by Nils Sjoholm
+ member of the Amiga RTL development team.
+
+ MorphOS adaptation
+ Copyright (c) 2014 by Karoly Balogh
+ member of the Free Pascal development team
+
+ 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.
+
+ **********************************************************************}
+{$PACKRECORDS 2}
+
+unit iffparse;
+
+INTERFACE
+
+uses exec, clipboard, utility;
+
+
+const
+
+ IFFPARSENAME : PChar = 'iffparse.library';
+
+{
+ * Struct associated with an active IFF stream.
+ * "iff_Stream" is a value used by the client's read/write/seek functions -
+ * it will not be accessed by the library itself and can have any value
+ * (could even be a pointer or a BPTR).
+ }
+Type
+ pIFFHandle = ^tIFFHandle;
+ tIFFHandle = record
+ iff_Stream,
+ iff_Flags : DWord;
+ iff_Depth : LONGINT; { Depth of context stack. }
+ { There are private fields hiding here. }
+ END;
+
+{
+ * Bit masks for "iff_Flags" field.
+ }
+CONST
+ IFFF_READ = 0; { read mode - default }
+ IFFF_WRITE = 1; { write mode }
+ IFFF_RWBITS = (IFFF_READ + IFFF_WRITE); { read/write bits }
+ IFFF_FSEEK = 2; { forward seek only }
+ IFFF_RSEEK = 4; { random seek }
+ IFFF_RESERVED = $FFFF0000; { Don't touch these bits. }
+
+{
+ * When the library calls your stream handler, you'll be passed a pointer
+ * to this structure as the "message packet".
+ }
+Type
+ pIFFStreamCmd = ^tIFFStreamCmd;
+ tIFFStreamCmd = record
+ sc_Command : Longint; { Operation to be performed (IFFCMD_) }
+ sc_Buf : Pointer; { Pointer to data buffer }
+ sc_NBytes : Longint; { Number of bytes to be affected }
+ END;
+{
+ * A node associated with a context on the iff_Stack. Each node
+ * represents a chunk, the stack representing the current nesting
+ * of chunks in the open IFF file. Each context node has associated
+ * local context items in the (private) LocalItems list. The ID, type,
+ * size and scan values describe the chunk associated with this node.
+ }
+ pContextNode = ^tContextNode;
+ tContextNode = record
+ cn_Node : tMinNode;
+ cn_ID,
+ cn_Type,
+ cn_Size, { Size of this chunk }
+ cn_Scan : Longint; { # of bytes read/written so far }
+ { There are private fields hiding here. }
+ END;
+
+{
+ * Local context items live in the ContextNode's. Each class is identified
+ * by its lci_Ident code and has a (private) purge vector for when the
+ * parent context node is popped.
+ }
+ pLocalContextItem = ^tLocalContextItem;
+ tLocalContextItem = record
+ lci_Node : tMinNode;
+ lci_ID,
+ lci_Type,
+ lci_Ident : DWord;
+ { There are private fields hiding here. }
+ END;
+
+{
+ * StoredProperty: a local context item containing the data stored
+ * from a previously encountered property chunk.
+ }
+ pStoredProperty = ^tStoredProperty;
+ tStoredProperty = Record
+ sp_Size : Longint;
+ sp_Data : Pointer;
+ END;
+
+{
+ * Collection Item: the actual node in the collection list at which
+ * client will look. The next pointers cross context boundaries so
+ * that the complete list is accessable.
+ }
+ pCollectionItem = ^tCollectionItem;
+ tCollectionItem = record
+ ci_Next : pCollectionItem;
+ ci_Size : Longint;
+ ci_Data : Pointer;
+ END;
+
+{
+ * Structure returned by OpenClipboard(). You may do CMD_POSTs and such
+ * using this structure. However, once you call OpenIFF(), you may not
+ * do any more of your own I/O to the clipboard until you call CloseIFF().
+ }
+ pClipboardHandle = ^tClipBoardHandle;
+ tClipboardHandle = record
+ cbh_Req : tIOClipReq;
+ cbh_CBport,
+ cbh_SatisfyPort : tMsgPort;
+ END;
+
+{
+ * IFF return codes. Most functions return either zero for success or
+ * one of these codes. The exceptions are the read/write functions which
+ * return positive values for number of bytes or records read or written,
+ * or a negative error code. Some of these codes are not errors per sae,
+ * but valid conditions such as EOF or EOC (End of Chunk).
+ }
+CONST
+ IFFERR_EOF = -1 ; { Reached logical END of file }
+ IFFERR_EOC = -2 ; { About to leave context }
+ IFFERR_NOSCOPE = -3 ; { No valid scope for property }
+ IFFERR_NOMEM = -4 ; { Internal memory alloc failed}
+ IFFERR_READ = -5 ; { Stream read error }
+ IFFERR_WRITE = -6 ; { Stream write error }
+ IFFERR_SEEK = -7 ; { Stream seek error }
+ IFFERR_MANGLED = -8 ; { Data in file is corrupt }
+ IFFERR_SYNTAX = -9 ; { IFF syntax error }
+ IFFERR_NOTIFF = -10; { Not an IFF file }
+ IFFERR_NOHOOK = -11; { No call-back hook provided }
+ IFF_RETURN2CLIENT = -12; { Client handler normal return}
+
+{
+ MAKE_ID(a,b,c,d) \
+ ((ULONG) (a)<<24 | (ULONG) (b)<<16 | (ULONG) (c)<<8 | (ULONG) (d))
+ }
+{
+ * Universal IFF identifiers.
+ }
+ ID_FORM = 1179603533;
+ ID_LIST = 1279873876;
+ ID_CAT = 1128354848;
+ ID_PROP = 1347571536;
+ ID_NULL = 538976288;
+
+{
+ * Ident codes for universally recognized local context items.
+ }
+ IFFLCI_PROP = 1886547824;
+ IFFLCI_COLLECTION = 1668246636;
+ IFFLCI_ENTRYHANDLER = 1701734500;
+ IFFLCI_EXITHANDLER = 1702389860;
+
+
+{
+ * Control modes for ParseIFF() function.
+ }
+ IFFPARSE_SCAN = 0;
+ IFFPARSE_STEP = 1;
+ IFFPARSE_RAWSTEP = 2;
+
+{
+ * Control modes for StoreLocalItem().
+ }
+ IFFSLI_ROOT = 1; { Store in default context }
+ IFFSLI_TOP = 2; { Store in current context }
+ IFFSLI_PROP = 3; { Store in topmost FORM OR LIST }
+
+{
+ * "Flag" for writing functions. If you pass this value in as a size
+ * to PushChunk() when writing a file, the parser will figure out the
+ * size of the chunk for you. (Chunk sizes >= 2**31 are forbidden by the
+ * IFF specification, so this works.)
+ }
+ IFFSIZE_UNKNOWN = -1;
+
+{
+ * Possible call-back command values. (Using 0 as the value for IFFCMD_INIT
+ * was, in retrospect, probably a bad idea.)
+ }
+ IFFCMD_INIT = 0; { Prepare the stream for a session }
+ IFFCMD_CLEANUP = 1; { Terminate stream session }
+ IFFCMD_READ = 2; { Read bytes from stream }
+ IFFCMD_WRITE = 3; { Write bytes to stream }
+ IFFCMD_SEEK = 4; { Seek on stream }
+ IFFCMD_ENTRY = 5; { You just entered a new context }
+ IFFCMD_EXIT = 6; { You're about to leave a context }
+ IFFCMD_PURGELCI= 7; { Purge a LocalContextItem }
+
+{ Backward compatibility. Don't use these in new code. }
+ IFFSCC_INIT = IFFCMD_INIT;
+ IFFSCC_CLEANUP = IFFCMD_CLEANUP;
+ IFFSCC_READ = IFFCMD_READ;
+ IFFSCC_WRITE = IFFCMD_WRITE;
+ IFFSCC_SEEK = IFFCMD_SEEK;
+
+{ Seek modes for SeekChunkBytes and SeekChunkRecords }
+ IFFOFFSET_BEGINNING = 0;
+ IFFOFFSET_END = 1;
+ IFFOFFSET_CURRENT = 2;
+
+VAR IFFParseBase : pLibrary;
+
+FUNCTION AllocIFF : pIFFHandle; syscall IFFParseBase 030;
+FUNCTION AllocLocalItem(typ : LONGINT location 'd0'; id : LONGINT location 'd1'; ident : LONGINT location 'd2'; dataSize : LONGINT location 'd3') : pLocalContextItem; syscall IFFParseBase 186;
+PROCEDURE CloseClipboard(clipHandle : pClipboardHandle location 'a0'); syscall IFFParseBase 252;
+PROCEDURE CloseIFF(iff : pIFFHandle location 'a0'); syscall IFFParseBase 048;
+FUNCTION CollectionChunk(iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1') : LONGINT; syscall IFFParseBase 138;
+FUNCTION CollectionChunks(iff : pIFFHandle location 'a0'; const propArray : pLONGINT location 'a1'; numPairs : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 144;
+FUNCTION CurrentChunk(const iff : pIFFHandle location 'a0') : pContextNode; syscall IFFParseBase 174;
+FUNCTION EntryHandler(iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1'; position : LONGINT location 'd2'; handler : pHook location 'a1'; obj : POINTER location 'a2') : LONGINT; syscall IFFParseBase 102;
+FUNCTION ExitHandler(iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1'; position : LONGINT location 'd2'; handler : pHook location 'a1'; obj : POINTER location 'a2') : LONGINT; syscall IFFParseBase 108;
+FUNCTION FindCollection(const iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1') : pCollectionItem; syscall IFFParseBase 162;
+FUNCTION FindLocalItem(const iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1'; ident : LONGINT location 'd2') : pLocalContextItem; syscall IFFParseBase 210;
+FUNCTION FindProp(const iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1') : pStoredProperty; syscall IFFParseBase 156;
+FUNCTION FindPropContext(const iff : pIFFHandle location 'a0') : pContextNode; syscall IFFParseBase 168;
+PROCEDURE FreeIFF(iff : pIFFHandle location 'a0'); syscall IFFParseBase 054;
+PROCEDURE FreeLocalItem(localItem : pLocalContextItem location 'a0'); syscall IFFParseBase 204;
+FUNCTION GoodID(id : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 258;
+FUNCTION GoodType(typ : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 264;
+FUNCTION IDtoStr(id : LONGINT location 'd0'; buf : pCHAR location 'a0') : pCHAR; syscall IFFParseBase 270;
+PROCEDURE InitIFF(iff : pIFFHandle location 'a0'; flags : LONGINT location 'd0'; const streamHook : pHook location 'a1'); syscall IFFParseBase 228;
+PROCEDURE InitIFFasClip(iff : pIFFHandle location 'a0'); syscall IFFParseBase 240;
+PROCEDURE InitIFFasDOS(iff : pIFFHandle location 'a0'); syscall IFFParseBase 234;
+FUNCTION LocalItemData(const localItem : pLocalContextItem location 'a0') : POINTER; syscall IFFParseBase 192;
+FUNCTION OpenClipboard(unitNumber : LONGINT location 'd0') : pClipboardHandle; syscall IFFParseBase 246;
+FUNCTION OpenIFF(iff : pIFFHandle location 'a0'; rwMode : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 036;
+FUNCTION ParentChunk(const contextNode : pContextNode location 'a0') : pContextNode; syscall IFFParseBase 180;
+FUNCTION ParseIFF(iff : pIFFHandle location 'a0'; control : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 042;
+FUNCTION PopChunk(iff : pIFFHandle location 'a0') : LONGINT; syscall IFFParseBase 090;
+FUNCTION PropChunk(iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1') : LONGINT; syscall IFFParseBase 114;
+FUNCTION PropChunks(iff : pIFFHandle location 'a0'; const propArray : pLONGINT location 'a1'; numPairs : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 120;
+FUNCTION PushChunk(iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1'; size : LONGINT location 'd2') : LONGINT; syscall IFFParseBase 084;
+FUNCTION ReadChunkBytes(iff : pIFFHandle location 'a0'; buf : POINTER location 'a1'; numBytes : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 060;
+FUNCTION ReadChunkRecords(iff : pIFFHandle location 'a0'; buf : POINTER location 'a1'; bytesPerRecord : LONGINT location 'd0'; numRecords : LONGINT location 'd1') : LONGINT; syscall IFFParseBase 072;
+PROCEDURE SetLocalItemPurge(localItem : pLocalContextItem location 'a0'; const purgeHook : pHook location 'a1'); syscall IFFParseBase 198;
+FUNCTION StopChunk(iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1') : LONGINT; syscall IFFParseBase 126;
+FUNCTION StopChunks(iff : pIFFHandle location 'a0'; const propArray : pLONGINT location 'a1'; numPairs : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 132;
+FUNCTION StopOnExit(iff : pIFFHandle location 'a0'; typ : LONGINT location 'd0'; id : LONGINT location 'd1') : LONGINT; syscall IFFParseBase 150;
+PROCEDURE StoreItemInContext(iff : pIFFHandle location 'a0'; localItem : pLocalContextItem location 'a1'; contextNode : pContextNode location 'a2'); syscall IFFParseBase 222;
+FUNCTION StoreLocalItem(iff : pIFFHandle location 'a0'; localItem : pLocalContextItem location 'a1'; position : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 216;
+FUNCTION WriteChunkBytes(iff : pIFFHandle location 'a0'; const buf : POINTER location 'a1'; numBytes : LONGINT location 'd0') : LONGINT; syscall IFFParseBase 066;
+FUNCTION WriteChunkRecords(iff : pIFFHandle location 'a0'; const buf : POINTER location 'a1'; bytesPerRecord : LONGINT location 'd0'; numRecords : LONGINT location 'd1') : LONGINT; syscall IFFParseBase 078;
+
+{ MorphOS specific }
+FUNCTION SeekChunkBytes(iff : pIFFHandle location 'a0'; numBytes : LONGINT location 'd0'; mode : LONGINT location 'd1') : LONGINT; syscall IFFParseBase 276;
+FUNCTION SeekChunkRecords(iff : pIFFHandle location 'a0'; bytesPerRecord : LONGINT location 'd0'; numRecords : LONGINT location 'd1'; mode : LONGINT location 'd2') : LONGINT; syscall IFFParseBase 282;
+
+Function Make_ID(str : String) : LONGINT;
+function InitIFFPARSELibrary: boolean;
+
+
+IMPLEMENTATION
+
+
+function Make_ID(str : String) : LONGINT;
+begin
+ Make_ID := (LONGINT(Ord(Str[1])) shl 24) or
+ (LONGINT(Ord(Str[2])) shl 16 ) or
+ (LONGINT(Ord(Str[3])) shl 8 ) or
+ (LONGINT(Ord(Str[4])));
+end;
+
+const
+ { Change VERSION and LIBVERSION to proper values }
+
+ VERSION : string[2] = '0';
+ LIBVERSION : longword = 0;
+
+var
+ iffparse_exit : Pointer;
+
+procedure CloseIFFParseLibrary;
+begin
+ ExitProc := iffparse_exit;
+ if IFFParseBase <> nil then begin
+ CloseLibrary(IFFParseBase);
+ IFFParseBase := nil;
+ end;
+end;
+
+function InitIFFParseLibrary: boolean;
+begin
+ IFFParseBase := nil;
+ IFFParseBase := OpenLibrary(IFFPARSENAME,LIBVERSION);
+ if IFFParseBase <> nil then begin
+ iffparse_exit := ExitProc;
+ ExitProc := @CloseIFFParseLibrary;
+ InitIFFParseLibrary := true;
+ end else begin
+ InitIFFParseLibrary := false;
+ end;
+end;
+
+END. (* UNIT IFFPARSE *)
diff --git a/rtl/morphos/inputevent.pas b/packages/morphunits/src/inputevent.pas
index f908fd0717..f908fd0717 100644
--- a/rtl/morphos/inputevent.pas
+++ b/packages/morphunits/src/inputevent.pas
diff --git a/rtl/morphos/intuition.pas b/packages/morphunits/src/intuition.pas
index 41ae073b3e..e6e4491935 100644
--- a/rtl/morphos/intuition.pas
+++ b/packages/morphunits/src/intuition.pas
@@ -25,7 +25,7 @@ unit intuition;
interface
uses
- exec, graphics, utility, inputevent, timer, layers;
+ exec, agraphics, utility, inputevent, timer, layers;
{
@@ -1893,21 +1893,22 @@ Const
{ The SCREENTYPE bits are reserved for describing various Screen types
* available under Intuition.
}
- SCREENTYPE_f = $000F; { all the screens types available }
+ SCREENTYPE_F = $000F; { all the screens types available }
{ --- the definitions for the Screen Type ------------------------------- }
- WBENCHSCREEN_f = $0001; { Ta Da! The Workbench }
- CUSTOMSCREEN_f = $000F; { for that special look }
+ WBENCHSCREEN_F = $0001; { Ta Da! The Workbench }
+ PUBLICSCREEN_F = $0002; { Public shared (custom) screen }
+ CUSTOMSCREEN_F = $000F; { for that special look }
- SHOWTITLE_f = $0010; { this gets set by a call to ShowTitle() }
+ SHOWTITLE_F = $0010; { this gets set by a call to ShowTitle() }
- BEEPING_f = $0020; { set when Screen is beeping }
+ BEEPING_F = $0020; { set when Screen is beeping }
- CUSTOMBITMAP_f = $0040; { if you are supplying your own BitMap }
+ CUSTOMBITMAP_F = $0040; { if you are supplying your own BitMap }
- SCREENBEHIND_f = $0080; { if you want your screen to open behind
+ SCREENBEHIND_F = $0080; { if you want your screen to open behind
* already open screens
}
- SCREENQUIET_f = $0100; { if you do not want Intuition to render
+ SCREENQUIET_F = $0100; { if you do not want Intuition to render
* into your screen (gadgets, title) }
SCREENHIRES = $0200; { do no use lowres gadgets (private) }
@@ -2484,8 +2485,8 @@ Const
BAUD_MIDI = $07;
{ PaperType }
- FANFOLD = $00;
- SINGLE = $80;
+ FANFOLD_PT = $00;
+ SINGLE_PT = $80;
{ PrintPitch }
PICA = $000;
@@ -4051,7 +4052,7 @@ SysCall IntuitionBase 036;
function AddGadget(window : pWindow location 'a0'; gadget : pGadget location 'a1'; position : CARDINAL location 'd0') : Word;
SysCall IntuitionBase 042;
-function ClearDMRequest(window : pWindow location 'a0') : BOOLEAN;
+function ClearDMRequest(window : pWindow location 'a0') : LongBool;
SysCall IntuitionBase 048;
procedure ClearMenuStrip(window : pWindow location 'a0');
@@ -4060,7 +4061,7 @@ SysCall IntuitionBase 054;
procedure ClearPointer(window : pWindow location 'a0');
SysCall IntuitionBase 060;
-function CloseScreen(screen : pScreen location 'a0') : BOOLEAN;
+function CloseScreen(screen : pScreen location 'a0') : LongBool;
SysCall IntuitionBase 066;
procedure CloseWindow(window : pWindow location 'a0');
@@ -4072,13 +4073,13 @@ SysCall IntuitionBase 078;
procedure CurrentTime(VAR seconds : CARDINAL location 'a0'; VAR micros : CARDINAL location 'a1');
SysCall IntuitionBase 084;
-function DisplayAlert(alertNumber : CARDINAL location 'd0'; string1 : PChar location 'a0'; height : CARDINAL location 'd1') : BOOLEAN;
+function DisplayAlert(alertNumber : CARDINAL location 'd0'; string1 : PChar location 'a0'; height : CARDINAL location 'd1') : LongBool;
SysCall IntuitionBase 090;
procedure DisplayBeep(screen : pScreen location 'a0');
SysCall IntuitionBase 096;
-function DoubleClick(sSeconds : CARDINAL location 'd0'; sMicros : CARDINAL location 'd1'; cSeconds : CARDINAL location 'd2'; cMicros : CARDINAL location 'd3') : BOOLEAN;
+function DoubleClick(sSeconds : CARDINAL location 'd0'; sMicros : CARDINAL location 'd1'; cSeconds : CARDINAL location 'd2'; cMicros : CARDINAL location 'd3') : LongBool;
SysCall IntuitionBase 102;
procedure DrawBorder(rp : pRastPort location 'a0'; border : pBorder location 'a1'; leftOffset : LongInt location 'd0'; topOffset : LongInt location 'd1');
@@ -4102,7 +4103,7 @@ SysCall IntuitionBase 138;
function ItemAddress(menuStrip : pMenu location 'a0'; menuNumber : CARDINAL location 'd0') : pMenuItem;
SysCall IntuitionBase 144;
-function ModifyIDCMP(window : pWindow location 'a0'; flags : CARDINAL location 'd0') : BOOLEAN;
+function ModifyIDCMP(window : pWindow location 'a0'; flags : CARDINAL location 'd0') : LongBool;
SysCall IntuitionBase 150;
procedure ModifyProp(gadget : pGadget location 'a0'; window : pWindow location 'a1'; requester : pRequester location 'a2'; flags : CARDINAL location 'd0'; horizPot : CARDINAL location 'd1'; vertPot : CARDINAL location 'd2'; horizBody : CARDINAL location 'd3'; vertBody : CARDINAL location 'd4');
@@ -4147,7 +4148,7 @@ SysCall IntuitionBase 228;
procedure ReportMouse(flag : LongInt location 'd0'; window : pWindow location 'a0');
SysCall IntuitionBase 234;
-function Request(requester : pRequester location 'a0'; window : pWindow location 'a1') : BOOLEAN;
+function Request(requester : pRequester location 'a0'; window : pWindow location 'a1') : LongBool;
SysCall IntuitionBase 240;
procedure ScreenToBack(screen : pScreen location 'a0');
@@ -4156,10 +4157,10 @@ SysCall IntuitionBase 246;
procedure ScreenToFront(screen : pScreen location 'a0');
SysCall IntuitionBase 252;
-function SetDMRequest(window : pWindow location 'a0'; requester : pRequester location 'a1') : BOOLEAN;
+function SetDMRequest(window : pWindow location 'a0'; requester : pRequester location 'a1') : LongBool;
SysCall IntuitionBase 258;
-function SetMenuStrip(window : pWindow location 'a0'; menu : pMenu location 'a1') : BOOLEAN;
+function SetMenuStrip(window : pWindow location 'a0'; menu : pMenu location 'a1') : LongBool;
SysCall IntuitionBase 264;
procedure SetPointer(window : pWindow location 'a0'; VAR pointer : Word location 'a1'; height : LongInt location 'd0'; width : LongInt location 'd1'; xOffset : LongInt location 'd2'; yOffset : LongInt location 'd3');
@@ -4186,7 +4187,7 @@ SysCall IntuitionBase 306;
procedure WindowToFront(window : pWindow location 'a0');
SysCall IntuitionBase 312;
-function WindowLimits(window : pWindow location 'a0'; widthMin : LongInt location 'd0'; heightMin : LongInt location 'd1'; widthMax : CARDINAL location 'd2'; heightMax : CARDINAL location 'd3') : BOOLEAN;
+function WindowLimits(window : pWindow location 'a0'; widthMin : LongInt location 'd0'; heightMin : LongInt location 'd1'; widthMax : CARDINAL location 'd2'; heightMax : CARDINAL location 'd3') : LongBool;
SysCall IntuitionBase 318;
function SetPrefs(preferences : pPreferences location 'a0'; size : LongInt location 'd0'; inform : LongInt location 'd1') : pPreferences;
@@ -4195,13 +4196,13 @@ SysCall IntuitionBase 324;
function IntuiTextLength(iText : pIntuiText location 'a0') : LongInt;
SysCall IntuitionBase 330;
-function WBenchToBack : BOOLEAN;
+function WBenchToBack : LongBool;
SysCall IntuitionBase 336;
-function WBenchToFront : BOOLEAN;
+function WBenchToFront : LongBool;
SysCall IntuitionBase 342;
-function AutoRequest(window : pWindow location 'a0'; body : pIntuiText location 'a1'; posText : pIntuiText location 'a2'; negText : pIntuiText location 'a3'; pFlag : CARDINAL location 'd0'; nFlag : CARDINAL location 'd1'; width : CARDINAL location 'd2'; height : CARDINAL location 'd3') : BOOLEAN;
+function AutoRequest(window : pWindow location 'a0'; body : pIntuiText location 'a1'; posText : pIntuiText location 'a2'; negText : pIntuiText location 'a3'; pFlag : CARDINAL location 'd0'; nFlag : CARDINAL location 'd1'; width : CARDINAL location 'd2'; height : CARDINAL location 'd3') : LongBool;
SysCall IntuitionBase 348;
procedure BeginRefresh(window : pWindow location 'a0');
@@ -4210,7 +4211,7 @@ SysCall IntuitionBase 354;
function BuildSysRequest(window : pWindow location 'a0'; body : pIntuiText location 'a1'; posText : pIntuiText location 'a2'; negText : pIntuiText location 'a3'; flags : CARDINAL location 'd0'; width : CARDINAL location 'd1'; height : CARDINAL location 'd2') : pWindow;
SysCall IntuitionBase 360;
-procedure EndRefresh(window : pWindow location 'a0'; complete : LongInt location 'd0');
+procedure EndRefresh(window : pWindow location 'a0'; complete : LongBool location 'd0');
SysCall IntuitionBase 366;
procedure FreeSysRequest(window : pWindow location 'a0');
@@ -4255,7 +4256,7 @@ SysCall IntuitionBase 450;
procedure RefreshWindowFrame(window : pWindow location 'a0');
SysCall IntuitionBase 456;
-function ActivateGadget(gadgets : pGadget location 'a0'; window : pWindow location 'a1'; requester : pRequester location 'a2') : BOOLEAN;
+function ActivateGadget(gadgets : pGadget location 'a0'; window : pWindow location 'a1'; requester : pRequester location 'a2') : LongBool;
SysCall IntuitionBase 462;
procedure NewModifyProp(gadget : pGadget location 'a0'; window : pWindow location 'a1'; requester : pRequester location 'a2'; flags : CARDINAL location 'd0'; horizPot : CARDINAL location 'd1'; vertPot : CARDINAL location 'd2'; horizBody : CARDINAL location 'd3'; vertBody : CARDINAL location 'd4'; numGad : LongInt location 'd5');
@@ -4337,7 +4338,7 @@ function OpenScreenTags(newScreen : pNewScreen; tagList : array of DWord) : pScr
procedure DrawImageState(rp : pRastPort location 'a0'; image : pImage location 'a1'; leftOffset : LongInt location 'd0'; topOffset : LongInt location 'd1'; state : CARDINAL location 'd2'; drawInfo : pDrawInfo location 'a2');
SysCall IntuitionBase 618;
-function PointInImage(point : CARDINAL location 'd0'; image : pImage location 'a0') : BOOLEAN;
+function PointInImage(point : CARDINAL location 'd0'; image : pImage location 'a0') : LongBool;
SysCall IntuitionBase 624;
procedure EraseImage(rp : pRastPort location 'a0'; image : pImage location 'a1'; leftOffset : LongInt location 'd0'; topOffset : LongInt location 'd1');
@@ -4375,13 +4376,13 @@ SysCall IntuitionBase 690;
procedure FreeScreenDrawInfo(screen : pScreen location 'a0'; drawInfo : pDrawInfo location 'a1');
SysCall IntuitionBase 696;
-function ResetMenuStrip(window : pWindow location 'a0'; menu : pMenu location 'a1') : BOOLEAN;
+function ResetMenuStrip(window : pWindow location 'a0'; menu : pMenu location 'a1') : LongBool;
SysCall IntuitionBase 702;
procedure RemoveClass(classPtr : pIClass location 'a0');
SysCall IntuitionBase 708;
-function FreeClass(classPtr : pIClass location 'a0') : BOOLEAN;
+function FreeClass(classPtr : pIClass location 'a0') : LongBool;
SysCall IntuitionBase 714;
function AllocScreenBuffer(sc : pScreen location 'a0'; bm : pBitMap location 'a1'; flags : CARDINAL location 'd0') : pScreenBuffer;
@@ -4411,7 +4412,7 @@ SysCall IntuitionBase 810;
procedure SetWindowPointerA(win : pWindow location 'a0'; taglist : pTagItem location 'a1');
SysCall IntuitionBase 816;
-function TimedDisplayAlert(alertNumber : CARDINAL location 'd0'; string1 : PChar location 'a0'; height : CARDINAL location 'd1'; time : CARDINAL location 'a1') : BOOLEAN;
+function TimedDisplayAlert(alertNumber : CARDINAL location 'd0'; string1 : PChar location 'a0'; height : CARDINAL location 'd1'; time : CARDINAL location 'a1') : LongBool;
SysCall IntuitionBase 822;
procedure HelpControl(win : pWindow location 'a0'; flags : CARDINAL location 'd0');
@@ -4432,7 +4433,7 @@ SysCall IntuitionBase 936;
procedure WindowAction(window : pWindow location 'a0'; action : CARDINAL location 'd0'; tags : pTagItem location 'a1');
SysCall IntuitionBase 942;
-function TransparencyControl(window : pWindow location 'a0'; method : CARDINAL location 'd0'; tags : pTagItem location 'a1') : BOOLEAN;
+function TransparencyControl(window : pWindow location 'a0'; method : CARDINAL location 'd0'; tags : pTagItem location 'a1') : LongBool;
SysCall IntuitionBase 948;
procedure ScrollWindowRasterNoFill(win : pWindow location 'a1'; dx : LongInt location 'd0'; dy : LongInt location 'd1'; xMin : LongInt location 'd2'; yMin : LongInt location 'd3'; xMax : LongInt location 'd4'; yMax : LongInt location 'd5');
diff --git a/rtl/morphos/keymap.pas b/packages/morphunits/src/keymap.pas
index 16b73809e4..16b73809e4 100644
--- a/rtl/morphos/keymap.pas
+++ b/packages/morphunits/src/keymap.pas
diff --git a/rtl/morphos/kvm.pp b/packages/morphunits/src/kvm.pas
index a16d920821..8cd471ca7d 100644
--- a/rtl/morphos/kvm.pp
+++ b/packages/morphunits/src/kvm.pas
@@ -19,7 +19,7 @@ unit kvm;
interface
uses
- exec, intuition, graphics;
+ exec, intuition, agraphics;
function initKVM: boolean;
diff --git a/rtl/morphos/layers.pas b/packages/morphunits/src/layers.pas
index 8621b07ac1..0082e07fe2 100644
--- a/rtl/morphos/layers.pas
+++ b/packages/morphunits/src/layers.pas
@@ -24,7 +24,7 @@ unit layers;
interface
-uses exec, graphics, utility;
+uses exec, agraphics, utility;
const
LAYERSIMPLE = 1;
diff --git a/rtl/morphos/mui.pas b/packages/morphunits/src/mui.pas
index a47a37d717..ffa590c1f8 100644
--- a/rtl/morphos/mui.pas
+++ b/packages/morphunits/src/mui.pas
@@ -129,7 +129,7 @@ interface
Items marked with "Custom Class" are for use in custom classes only!
}
-uses exec, intuition,utility,graphics{,iffparse};
+uses exec, intuition,utility,agraphics{,iffparse};
{$WARNING IffParse required, look for FIX ME!!!}
var
diff --git a/rtl/morphos/muihelper.pas b/packages/morphunits/src/muihelper.pas
index b456788741..8c85f567e5 100644
--- a/rtl/morphos/muihelper.pas
+++ b/packages/morphunits/src/muihelper.pas
@@ -23,7 +23,7 @@ unit muihelper;
interface
-uses intuition, mui, doslib, utility;
+uses intuition, mui, amigados, utility;
const
diff --git a/packages/morphunits/src/timer.pas b/packages/morphunits/src/timer.pas
new file mode 100644
index 0000000000..f7846b6237
--- /dev/null
+++ b/packages/morphunits/src/timer.pas
@@ -0,0 +1,101 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
+
+ timer.device interface unit for MorphOS/PowerPC
+
+ MorphOS port was done on a free Pegasos II/G4 machine
+ provided by Genesi S.a.r.l. <www.genesi.lu>
+
+ 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 timer;
+
+interface
+
+uses
+ exec;
+
+var
+ TimerBase : Pointer;
+
+
+{ * timer.device definitions (V50)
+ *********************************************************************
+ * }
+
+
+const
+ UNIT_MICROHZ = 0;
+ UNIT_VBLANK = 1;
+ UNIT_ECLOCK = 2;
+ UNIT_WAITUNTIL = 3;
+ UNIT_WAITECLOCK = 4;
+ { *** V50 *** }
+ UNIT_CPUCLOCK = 5;
+ UNIT_WAITCPUCLOCK = 6;
+
+const
+ TIMERNAME = 'timer.device';
+
+
+type
+ PTimeVal = ^TTimeVal;
+ TTimeVal = packed record
+ tv_secs : DWord;
+ tv_micro: DWord;
+ end;
+
+type
+ PEClockVal = ^TEClockVal;
+ TEClockVal = packed record
+ ev_hi: DWord;
+ ev_lo: DWord;
+ end;
+
+type
+ PTimeRequest = ^TTimeRequest;
+ TTimeRequest = packed record
+ tr_node: TIORequest;
+ tr_time: TTimeVal;
+ end;
+
+
+const
+ TR_ADDREQUEST = (CMD_NONSTD);
+ TR_GETSYSTIME = (CMD_NONSTD + 1);
+ TR_SETSYSTIME = (CMD_NONSTD + 2);
+
+
+procedure AddTime(Dest : PTimeVal location 'a0';
+ Source: PTimeVal location 'a1');
+SysCall TimerBase 42;
+
+procedure SubTime(Dest : PTimeVal location 'a0';
+ Source: PTimeVal location 'a1');
+SysCall TimerBase 48;
+
+function CmpTime(Dest : PTimeVal location 'a0';
+ Source: PTimeVal location 'a1'): LongInt;
+SysCall TimerBase 54;
+
+function ReadEClock(Dest: PTimeVal location 'a0'): DWord;
+SysCall TimerBase 60;
+
+procedure GetSysTime(Dest: PTimeVal location 'a0');
+SysCall TimerBase 66;
+
+{.$include timerd.inc}
+{.$include timerf.inc}
+
+implementation
+
+begin
+end.
diff --git a/rtl/morphos/tinygl.pp b/packages/morphunits/src/tinygl.pas
index 9f236c9412..9f236c9412 100644
--- a/rtl/morphos/tinygl.pp
+++ b/packages/morphunits/src/tinygl.pas
diff --git a/packages/morphunits/src/utility.pas b/packages/morphunits/src/utility.pas
new file mode 100644
index 0000000000..30f38747bd
--- /dev/null
+++ b/packages/morphunits/src/utility.pas
@@ -0,0 +1,366 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
+
+ utility.library interface unit for MorphOS/PowerPC
+
+ MorphOS port was done on a free Pegasos II/G4 machine
+ provided by Genesi S.a.r.l. <www.genesi.lu>
+
+ 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.
+
+ **********************************************************************}
+{$inline on}
+unit utility;
+
+interface
+
+uses
+ exec;
+
+var
+ UtilityBase: Pointer;
+
+
+{ * utility.library date defines
+ *********************************************************************
+ * }
+
+
+type
+ PClockData = ^TClockData;
+ TClockData = packed record
+ sec : Word;
+ min : Word;
+ hour : Word;
+ mday : Word;
+ month: Word;
+ year : Word;
+ wday : Word;
+ end;
+
+
+
+{ * utility.library tagitem defines
+ *********************************************************************
+ * }
+
+
+type
+ Tag = Cardinal;
+
+type
+ PPTagItem = ^PTagItem;
+ PTagItem = ^TTagItem;
+ TTagItem = packed record
+ ti_Tag : Tag;
+ ti_Data: Cardinal;
+ end;
+
+
+const
+ TAG_DONE = 0;
+ TAG_END = 0;
+ TAG_IGNORE = 1;
+ TAG_MORE = 2;
+ TAG_SKIP = 3;
+
+const
+ TAG_USER = 1 Shl 31;
+
+const
+ TAGFILTER_AND = 0;
+ TAGFILTER_NOT = 1;
+
+const
+ MAP_REMOVE_NOT_FOUND = 0;
+ MAP_KEEP_NOT_FOUND = 1;
+
+
+
+{ * utility.library namespace defines
+ *********************************************************************
+ * }
+
+
+type
+ PNamedObject = ^TNamedObject;
+ TNamedObject = packed record
+ no_Object: Pointer;
+ end;
+
+
+const
+ ANO_NameSpace = 4000;
+ ANO_UserSpace = 4001;
+ ANO_Priority = 4002;
+ ANO_Flags = 4003;
+
+ NSB_NODUPS = 0;
+ NSB_CASE = 1;
+
+ NSF_NODUPS = 1 Shl NSB_NODUPS;
+ NSF_CASE = 1 Shl NSB_CASE;
+
+
+
+{ * utility.library pack attributes and macros
+ *********************************************************************
+ * }
+
+
+const
+ PSTB_SIGNED = 31;
+ PSTB_UNPACK = 30;
+ PSTB_PACK = 29;
+ PSTB_EXISTS = 26;
+
+ PSTF_SIGNED = (1 Shl PSTB_SIGNED);
+ PSTF_UNPACK = (1 Shl PSTB_UNPACK);
+ PSTF_PACK = (1 Shl PSTB_PACK);
+ PSTF_EXISTS = (1 Shl PSTB_EXISTS);
+
+const
+ PKCTRL_PACKUNPACK = $00000000;
+ PKCTRL_PACKONLY = $40000000;
+ PKCTRL_UNPACKONLY = $20000000;
+
+ PKCTRL_BYTE = $80000000;
+ PKCTRL_WORD = $88000000;
+ PKCTRL_LONG = $90000000;
+
+ PKCTRL_UBYTE = $00000000;
+ PKCTRL_UWORD = $08000000;
+ PKCTRL_ULONG = $10000000;
+
+ PKCTRL_BIT = $18000000;
+ PKCTRL_FLIPBIT = $98000000;
+
+{$WARNING FIX ME!!! Some macros to convert}
+{
+ PK_BITNUM1(flg) ((flg) == 0x01 ? 0 : (flg) == 0x02 ? 1 : (flg) == 0x04 ? 2 : (flg) == 0x08 ? 3 : (flg) == 0x10 ? 4 : (flg) == 0x20 ? 5 : (flg) == 0x40 ? 6 : 7)
+ PK_BITNUM2(flg) ((flg < 0x100 ? PK_BITNUM1(flg) : 8 + PK_BITNUM1(flg >> 8)))
+ PK_BITNUM(flg) ((flg < 0x10000 ? PK_BITNUM2(flg) : 16 + PK_BITNUM2(flg >> 16)))
+ PK_WORDOFFSET(flg) ((flg) < 0x100 ? 1 : 0)
+ PK_LONGOFFSET(flg) ((flg) < 0x100 ? 3 : (flg) < 0x10000 ? 2 : (flg) < 0x1000000 ? 1 : 0)
+ PK_CALCOFFSET(type,field) ((ULONG)(&((struct type *)0)->field))
+
+
+ PACK_STARTTABLE(tagbase) (tagbase)
+ PACK_NEWOFFSET(tagbase) (-1L),(tagbase)
+ PACK_ENDTABLE 0
+ PACK_ENTRY(tagbase,tag,type,field,control) (control | ((tag-tagbase) << 16L) | PK_CALCOFFSET(type,field))
+ PACK_BYTEBIT(tagbase,tag,type,field,control,flags) (control | ((tag-tagbase) << 16L) | PK_CALCOFFSET(type,field) | (PK_BITNUM(flags) << 13L))
+ PACK_WORDBIT(tagbase,tag,type,field,control,flags) (control | ((tag-tagbase) << 16L) | (PK_CALCOFFSET(type,field) + PK_WORDOFFSET(flags)) | ((PK_BITNUM(flags) & 7) << 13L))
+ PACK_LONGBIT(tagbase,tag,type,field,control,flags) (control | ((tag-tagbase) << 16L) | (PK_CALCOFFSET(type,field) + PK_LONGOFFSET(flags)) | ((PK_BITNUM(flags) & 7) << 13L))
+}
+
+{ * utility.library include
+ *********************************************************************
+ * }
+
+
+const
+ UtilityName = 'utility.library';
+
+
+type
+ PUtilityBase = ^TUtilityName;
+ TUtilityName = packed record
+ ub_LibNode : TLibrary;
+ ub_Language: Byte;
+ ub_Reserved: Byte;
+ end;
+
+
+
+{ * utility.library hook defines
+ *********************************************************************
+ * }
+
+
+type
+ PHook = ^THook;
+ THook = packed record
+ h_MinNode : TMinNode;
+ h_Entry : Cardinal;
+ h_SubEntry: Cardinal;
+ h_Data : Pointer;
+ end;
+
+
+function FindTagItem(tagVal : Cardinal location 'd0';
+ tagList: PTagItem location 'a0'): PTagItem;
+SysCall MOS_UtilityBase 030;
+
+function GetTagData(tagValue : Cardinal location 'd0';
+ defaultVal: Cardinal location 'd1';
+ tagList : PTagItem location 'a0'): Cardinal;
+SysCall MOS_UtilityBase 036;
+
+function PackBoolTags(initialFlags: Cardinal location 'd0';
+ tagList : PTagItem location 'a0';
+ boolMap : PTagItem location 'a1'): Cardinal;
+SysCall MOS_UtilityBase 042;
+
+function NextTagItem(tagListPtr: pPTagItem location 'a0'): PTagItem;
+SysCall MOS_UtilityBase 048;
+
+procedure FilterTagChanges(changeList : PTagItem location 'a0';
+ originalList: PTagItem location 'a1';
+ apply : Cardinal location 'd0');
+SysCall MOS_UtilityBase 054;
+
+procedure MapTags(tagList: PTagItem location 'a0';
+ mapList: PTagItem location 'a1';
+ mapType: Cardinal location 'd0');
+SysCall MOS_UtilityBase 060;
+
+function AllocateTagItems(numTags: Cardinal location 'd0'): PTagItem;
+SysCall MOS_UtilityBase 066;
+
+function CloneTagItems(tagList: PTagItem location 'a0'): PTagItem;
+SysCall MOS_UtilityBase 072;
+
+procedure FreeTagItems(tagList: PTagItem location 'a0');
+SysCall MOS_UtilityBase 078;
+
+procedure RefreshTagItemClones(clone : PTagItem location 'a0';
+ original: PTagItem location 'a1');
+SysCall MOS_UtilityBase 084;
+
+function TagInArray(tagValue : Cardinal location 'd0';
+ var tagArray: Cardinal location 'a0'): LongBool;
+SysCall MOS_UtilityBase 090;
+
+function FilterTagItems(tagList : PTagItem location 'a0';
+ var filterArray: Cardinal location 'a1';
+ logic : Cardinal location 'd0'): Cardinal;
+SysCall MOS_UtilityBase 096;
+
+function CallHookPkt(hook : PHook location 'a0';
+ hobject : Pointer location 'a2';
+ paramPacket: Pointer location 'a1'): Cardinal;
+SysCall MOS_UtilityBase 102;
+
+procedure Amiga2Date(seconds: Cardinal location 'd0';
+ result : PClockData location 'a0');
+SysCall MOS_UtilityBase 120;
+
+function Date2Amiga(date: PClockData location 'a0'): Cardinal;
+SysCall MOS_UtilityBase 126;
+
+function CheckDate(date: PClockData location 'a0'): Cardinal;
+SysCall MOS_UtilityBase 132;
+
+function SMult32(arg1: LongInt location 'd0';
+ arg2: LongInt location 'd1'): LongInt;
+SysCall MOS_UtilityBase 138;
+
+function UMult32(arg1: Cardinal location 'd0';
+ arg2: Cardinal location 'd1'): Cardinal;
+SysCall MOS_UtilityBase 144;
+
+function SDivMod32(dividend: LongInt location 'd0';
+ divisor: LongInt location 'd1'): LongInt;
+SysCall MOS_UtilityBase 150;
+
+function UDivMod32(dividend: Cardinal location 'd0';
+ divisor : Cardinal location 'd1'): Cardinal;
+SysCall MOS_UtilityBase 156;
+
+function Stricmp(string1: PChar location 'a0';
+ string2: PChar location 'a1'): LongInt;
+SysCall MOS_UtilityBase 162;
+
+function Strnicmp(string1: PChar location 'a0';
+ string2: PChar location 'a1';
+ length : LongInt location 'd0'): LongInt;
+SysCall MOS_UtilityBase 168;
+
+function ToUpper(character: Cardinal location 'd0'): Char;
+SysCall MOS_UtilityBase 174;
+
+function ToLower(character: Cardinal location 'd0'): Char;
+SysCall MOS_UtilityBase 180;
+
+procedure ApplyTagChanges(list : PTagItem location 'a0';
+ changeList: PTagItem location 'a1');
+SysCall MOS_UtilityBase 186;
+
+function SMult64(arg1: LongInt location 'd0';
+ arg2: LongInt location 'd1'): LongInt;
+SysCall MOS_UtilityBase 198;
+
+function UMult64(arg1: Cardinal location 'd0';
+ arg2: Cardinal location 'd1'): Cardinal;
+SysCall MOS_UtilityBase 204;
+
+function PackStructureTags(pack : Pointer location 'a0';
+ var packTable: Cardinal location 'a1';
+ tagList : PTagItem location 'a2'): Cardinal;
+SysCall MOS_UtilityBase 210;
+
+function UnpackStructureTags(pack : Pointer location 'a0';
+ var packTable: Cardinal location 'a1';
+ tagList : PTagItem location 'a2'): Cardinal;
+SysCall MOS_UtilityBase 216;
+
+function AddNamedObject(nameSpace: PNamedObject location 'a0';
+ nobject : PNamedObject location 'a1'): LongBool;
+SysCall MOS_UtilityBase 222;
+
+function AllocNamedObjectA(name : PChar location 'a0';
+ tagList: PTagItem location 'a1'): PNamedObject;
+SysCall MOS_UtilityBase 228;
+
+function AttemptRemNamedObject(nobject: PNamedObject location 'a0'): LongInt;
+SysCall MOS_UtilityBase 234;
+
+function FindNamedObject(nameSpace : PNamedObject location 'a0';
+ name : PChar location 'a1';
+ lastObject: PNamedObject location 'a2'): PNamedObject;
+SysCall MOS_UtilityBase 240;
+
+procedure FreeNamedObject(nobject: PNamedObject location 'a0');
+SysCall MOS_UtilityBase 246;
+
+function NamedObjectName(nobject: PNamedObject location 'a0'): PChar;
+SysCall MOS_UtilityBase 252;
+
+procedure ReleaseNamedObject(nobject: pNamedObject location 'a0');
+SysCall MOS_UtilityBase 258;
+
+procedure RemNamedObject(nobject: PNamedObject location 'a0';
+ message: PMessage location 'a1');
+SysCall MOS_UtilityBase 264;
+
+function GetUniqueID: Cardinal;
+SysCall MOS_UtilityBase 270;
+
+
+function TAG_(value: pointer): longword; inline;
+function TAG_(value: pchar): longword; inline;
+
+
+implementation
+
+function TAG_(value: pointer): longword; inline;
+begin
+ TAG_:=longword(value);
+end;
+
+function TAG_(value: pchar): longword; inline;
+begin
+ TAG_:=longword(value);
+end;
+
+
+begin
+ UtilityBase:=MOS_UtilityBase;
+end.
diff --git a/packages/mysql/Makefile b/packages/mysql/Makefile
index af4e84ece3..6b48273124 100644
--- a/packages/mysql/Makefile
+++ b/packages/mysql/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=mysql
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/mysql/Makefile.fpc b/packages/mysql/Makefile.fpc
index c3717a3c56..f71e49eb7d 100644
--- a/packages/mysql/Makefile.fpc
+++ b/packages/mysql/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=mysql
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/mysql/Makefile.fpc.fpcmake b/packages/mysql/Makefile.fpc.fpcmake
index 511bc3e09f..c9eda94cf9 100644
--- a/packages/mysql/Makefile.fpc.fpcmake
+++ b/packages/mysql/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=mysql
-version=2.7.1
+version=3.1.1
[target]
units=my4_sys mysql4_com mysql4_version mysql4 mysql4dyn mysql4_comdyn mysql3_com mysql3_version mysql3 mysql3_comdyn mysql3dyn mysql40 mysql40dyn mysql41 mysql41dyn mysql50 mysql50dyn mysql51 mysql51dyn
diff --git a/packages/mysql/examples/Makefile b/packages/mysql/examples/Makefile
index 735989e49c..d550944980 100644
--- a/packages/mysql/examples/Makefile
+++ b/packages/mysql/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=testdb4 mysqls testdb3
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=testdb4 mysqls testdb3
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=testdb4 mysqls testdb3
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=testdb4 mysqls testdb3
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=testdb4 mysqls testdb3
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=testdb4 mysqls testdb3
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=testdb4 mysqls testdb3
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=testdb4 mysqls testdb3
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=testdb4 mysqls testdb3
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_MYSQL=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
+REQUIRE_PACKAGES_MYSQL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_MYSQL=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
+REQUIRE_PACKAGES_MYSQL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_MYSQL=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
+REQUIRE_PACKAGES_MYSQL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/mysql/fpmake.pp b/packages/mysql/fpmake.pp
index 0ddabbaa02..8d1b775767 100644
--- a/packages/mysql/fpmake.pp
+++ b/packages/mysql/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('mysql');
+ P.ShortName:='mysq';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.IncludePath.Add('src');
P.OSes := AllUnixOSes+AllWindowsOSes-[qnx];
diff --git a/packages/ncurses/Makefile b/packages/ncurses/Makefile
index 5f02156221..74ee8b7750 100644
--- a/packages/ncurses/Makefile
+++ b/packages/ncurses/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=ncurses
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/ncurses/Makefile.fpc b/packages/ncurses/Makefile.fpc
index 1758cdce7a..05649732ea 100644
--- a/packages/ncurses/Makefile.fpc
+++ b/packages/ncurses/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=ncurses
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/ncurses/Makefile.fpc.fpcmake b/packages/ncurses/Makefile.fpc.fpcmake
index 70ae149ed4..d61c84be0d 100644
--- a/packages/ncurses/Makefile.fpc.fpcmake
+++ b/packages/ncurses/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=ncurses
-version=2.7.1
+version=3.1.1
[target]
units=ncurses panel ncrt ocrt menu form
diff --git a/packages/ncurses/examples/Makefile b/packages/ncurses/examples/Makefile
index d1d8fbb089..f25095e750 100644
--- a/packages/ncurses/examples/Makefile
+++ b/packages/ncurses/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
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),i386-aros)
+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),m68k-linux)
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
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-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),x86_64-dragonfly)
+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),arm-linux)
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
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
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),mipsel-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),mipsel-android)
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
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_NCURSES=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
+REQUIRE_PACKAGES_NCURSES=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_NCURSES=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
+REQUIRE_PACKAGES_NCURSES=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_NCURSES=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
+REQUIRE_PACKAGES_NCURSES=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/ncurses/fpmake.pp b/packages/ncurses/fpmake.pp
index a981861926..2c4163a2c0 100644
--- a/packages/ncurses/fpmake.pp
+++ b/packages/ncurses/fpmake.pp
@@ -16,8 +16,8 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
- P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,aix];
+ P.Version:='3.1.1';
+ P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,aix,dragonfly];
P.SourcePath.Add('src');
P.IncludePath.Add('src');
diff --git a/packages/ncurses/src/ncurses.pp b/packages/ncurses/src/ncurses.pp
index 82febe486e..9b968e4659 100644
--- a/packages/ncurses/src/ncurses.pp
+++ b/packages/ncurses/src/ncurses.pp
@@ -1,3 +1,34 @@
+{
+ Interface to the ncurses library. Original ncurses library copyright:
+
+****************************************************************************
+ * Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+ * "Software"), to deal in the Software without restriction, including *
+ * without limitation the rights to use, copy, modify, merge, publish, *
+ * distribute, distribute with modifications, sublicense, and/or sell *
+ * copies of the Software, and to permit persons to whom the Software is *
+ * furnished to do so, subject to the following conditions: *
+ * *
+ * The above copyright notice and this permission notice shall be included *
+ * in all copies or substantial portions of the Software. *
+ * *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
+ * *
+ * Except as contained in this notice, the name(s) of the above copyright *
+ * holders shall not be used in advertising or otherwise to promote the *
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************}
+
{$MODE OBJFPC}
diff --git a/packages/newt/Makefile b/packages/newt/Makefile
index 070191340b..dd8bd41c0c 100644
--- a/packages/newt/Makefile
+++ b/packages/newt/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=newt
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/newt/Makefile.fpc b/packages/newt/Makefile.fpc
index 3ebd5bb73d..71a3631bfb 100644
--- a/packages/newt/Makefile.fpc
+++ b/packages/newt/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=newt
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/newt/Makefile.fpc.fpcmake b/packages/newt/Makefile.fpc.fpcmake
index 6797cccaea..acfc8ba4fb 100644
--- a/packages/newt/Makefile.fpc.fpcmake
+++ b/packages/newt/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=newt
-version=2.7.1
+version=3.1.1
[target]
units=newt
diff --git a/packages/newt/examples/Makefile b/packages/newt/examples/Makefile
index 0fa348fc9d..73affd47fb 100644
--- a/packages/newt/examples/Makefile
+++ b/packages/newt/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=newt1 newt2 newt3
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=newt1 newt2 newt3
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=newt1 newt2 newt3
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=newt1 newt2 newt3
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=newt1 newt2 newt3
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=newt1 newt2 newt3
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=newt1 newt2 newt3
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=newt1 newt2 newt3
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=newt1 newt2 newt3
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_NEWT=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
+REQUIRE_PACKAGES_NEWT=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_NEWT=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
+REQUIRE_PACKAGES_NEWT=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_NEWT=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
+REQUIRE_PACKAGES_NEWT=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/newt/fpmake.pp b/packages/newt/fpmake.pp
index eb9980f66f..ffda28b523 100644
--- a/packages/newt/fpmake.pp
+++ b/packages/newt/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.OSes:=[Linux];
diff --git a/packages/numlib/Makefile b/packages/numlib/Makefile
index bbe095e947..e14118da5b 100644
--- a/packages/numlib/Makefile
+++ b/packages/numlib/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=numlib
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/numlib/Makefile.fpc b/packages/numlib/Makefile.fpc
index c7d304d338..39a216d21b 100644
--- a/packages/numlib/Makefile.fpc
+++ b/packages/numlib/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=numlib
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/numlib/Makefile.fpc.fpcmake b/packages/numlib/Makefile.fpc.fpcmake
index 1723d85749..ddd3a44b7f 100644
--- a/packages/numlib/Makefile.fpc.fpcmake
+++ b/packages/numlib/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=numlib
-version=2.7.1
+version=3.1.1
[target]
# warning, tpnumlib is a library, not a unit.
diff --git a/packages/numlib/examples/Makefile b/packages/numlib/examples/Makefile
index fba444410f..ec5396dc94 100644
--- a/packages/numlib/examples/Makefile
+++ b/packages/numlib/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=iom
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_PROGRAMS+=invgenex invgpdex invgsyex iomremex iomrevex iomrewrsex iomwrmex iomwrvex
endif
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=invgenex invgpdex invgsyex iomremex iomrevex iomrewrsex iomwrmex iomwrvex
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=invgenex invgpdex invgsyex iomremex iomrevex iomrewrsex iomwrmex iomwrvex
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=invgenex invgpdex invgsyex iomremex iomrevex iomrewrsex iomwrmex iomwrvex
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=invgenex invgpdex invgsyex iomremex iomrevex iomrewrsex iomwrmex iomwrvex
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=invgenex invgpdex invgsyex iomremex iomrevex iomrewrsex iomwrmex iomwrvex
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=invgenex invgpdex invgsyex iomremex iomrevex iomrewrsex iomwrmex iomwrvex
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=invgenex invgpdex invgsyex iomremex iomrevex iomrewrsex iomwrmex iomwrvex
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=invgenex invgpdex invgsyex iomremex iomrevex iomrewrsex iomwrmex iomwrvex
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=invgenex invgpdex invgsyex iomremex iomrevex iomrewrsex iomwrmex iomwrvex
endif
@@ -612,6 +627,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
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-aros)
+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),m68k-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
@@ -699,6 +717,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-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),x86_64-dragonfly)
+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),arm-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
@@ -753,6 +774,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-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
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
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
@@ -834,6 +858,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-gl
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-gl
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-gl
endif
@@ -921,6 +948,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-gl
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-gl
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-gl
endif
@@ -975,6 +1005,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-gl
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-gl
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-gl
endif
@@ -1056,6 +1089,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_UNITDIR+=..
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_UNITDIR+=..
endif
@@ -1143,6 +1179,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_UNITDIR+=..
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_UNITDIR+=..
endif
@@ -1197,6 +1236,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_UNITDIR+=..
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_UNITDIR+=..
endif
@@ -1278,6 +1320,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -1365,6 +1410,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -1419,6 +1467,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_TARGETDIR+=.
endif
@@ -1500,6 +1551,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_UNITTARGETDIR+=../units/$(CPU_TARGET)-$(OS_TARGET)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_UNITTARGETDIR+=../units/$(CPU_TARGET)-$(OS_TARGET)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_UNITTARGETDIR+=../units/$(CPU_TARGET)-$(OS_TARGET)
endif
@@ -1587,6 +1641,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_UNITTARGETDIR+=../units/$(CPU_TARGET)-$(OS_TARGET)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_UNITTARGETDIR+=../units/$(CPU_TARGET)-$(OS_TARGET)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_UNITTARGETDIR+=../units/$(CPU_TARGET)-$(OS_TARGET)
endif
@@ -1641,6 +1698,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_UNITTARGETDIR+=../units/$(CPU_TARGET)-$(OS_TARGET)
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_UNITTARGETDIR+=../units/$(CPU_TARGET)-$(OS_TARGET)
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_UNITTARGETDIR+=../units/$(CPU_TARGET)-$(OS_TARGET)
endif
@@ -1895,6 +1955,12 @@ 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=
@@ -1940,6 +2006,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2361,6 +2432,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -2448,6 +2522,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -2502,6 +2579,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
endif
@@ -2665,7 +2745,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2695,17 +2775,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/numlib/examples/Makefile.fpc b/packages/numlib/examples/Makefile.fpc
index 694a9dcd7a..30abf2d3ae 100644
--- a/packages/numlib/examples/Makefile.fpc
+++ b/packages/numlib/examples/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=iom
-version=2.7.1
+version=3.1.1
[target]
programs=invgenex invgpdex invgsyex iomremex iomrevex iomrewrsex iomwrmex iomwrvex
diff --git a/packages/numlib/fpmake.pp b/packages/numlib/fpmake.pp
index 8be1fb9a5e..c405f582d1 100644
--- a/packages/numlib/fpmake.pp
+++ b/packages/numlib/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.IncludePath.Add('src');
P.OSes := AllUnixOSes+AllWindowsOSes-[qnx];
diff --git a/packages/nvapi/Makefile b/packages/nvapi/Makefile
index edfb0e522d..7aac6b864e 100644
--- a/packages/nvapi/Makefile
+++ b/packages/nvapi/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=nvapi
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/nvapi/Makefile.fpc b/packages/nvapi/Makefile.fpc
index 03175395fd..8fed25b87d 100644
--- a/packages/nvapi/Makefile.fpc
+++ b/packages/nvapi/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=nvapi
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/nvapi/Makefile.fpc.fpcmake b/packages/nvapi/Makefile.fpc.fpcmake
index 5b8479a1cd..41e349d278 100644
--- a/packages/nvapi/Makefile.fpc.fpcmake
+++ b/packages/nvapi/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=nvapi
-version=2.7.1
+version=3.1.1
[target]
units=nvapi
diff --git a/packages/nvapi/fpmake.pp b/packages/nvapi/fpmake.pp
index 4d1bda1d6e..54ce99fe4e 100644
--- a/packages/nvapi/fpmake.pp
+++ b/packages/nvapi/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'NVidia, Andreas Hausladen, Dmitry "skalogryz" Boyarintsev';
P.License := 'NVidia license';
P.HomepageURL := 'nvidia.com';
diff --git a/packages/objcrtl/Makefile b/packages/objcrtl/Makefile
index 8f883acaaa..b6f3b69d4f 100644
--- a/packages/objcrtl/Makefile
+++ b/packages/objcrtl/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=objcrtl
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/objcrtl/Makefile.fpc b/packages/objcrtl/Makefile.fpc
index d6fc7154ed..3bf2ab1746 100644
--- a/packages/objcrtl/Makefile.fpc
+++ b/packages/objcrtl/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=objcrtl
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/objcrtl/Makefile.fpc.fpcmake b/packages/objcrtl/Makefile.fpc.fpcmake
index 3f22d9261f..716971f525 100644
--- a/packages/objcrtl/Makefile.fpc.fpcmake
+++ b/packages/objcrtl/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=obcjrtl
-version=2.7.1
+version=3.1.1
[target]
units=objcrtl objcrtl10 objcrtl20 objcrtliphoneos objcrtlmacosx objcrtlutils
diff --git a/packages/objcrtl/fpmake.pp b/packages/objcrtl/fpmake.pp
index 5cf056bd36..032fabd851 100644
--- a/packages/objcrtl/fpmake.pp
+++ b/packages/objcrtl/fpmake.pp
@@ -14,7 +14,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes:=[darwin,iphonesim];
P.Author := 'Library: Apple, header: Dmitry "skalogryz" Boyarintsev';
P.License := 'Library: Apple, header: LGPL with modification, ';
diff --git a/packages/odbc/Makefile b/packages/odbc/Makefile
index 99583f9b41..e2c19bbf74 100644
--- a/packages/odbc/Makefile
+++ b/packages/odbc/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=odbc
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/odbc/Makefile.fpc b/packages/odbc/Makefile.fpc
index 67cb232af5..03e007619a 100644
--- a/packages/odbc/Makefile.fpc
+++ b/packages/odbc/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=odbc
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/odbc/Makefile.fpc.fpcmake b/packages/odbc/Makefile.fpc.fpcmake
index b8d0fec515..695cecaf2d 100644
--- a/packages/odbc/Makefile.fpc.fpcmake
+++ b/packages/odbc/Makefile.fpc.fpcmake
@@ -3,7 +3,7 @@
#
[package]
name=odbc
-version=2.7.1
+version=3.1.1
[target]
units=odbcsql odbcsqldyn
diff --git a/packages/odbc/examples/Makefile b/packages/odbc/examples/Makefile
index f4c29094d0..2f2fdb9990 100644
--- a/packages/odbc/examples/Makefile
+++ b/packages/odbc/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=testodbc
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=testodbc
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=testodbc
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=testodbc
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=testodbc
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=testodbc
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=testodbc
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=testodbc
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=testodbc
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_ODBC=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
+REQUIRE_PACKAGES_ODBC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_ODBC=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
+REQUIRE_PACKAGES_ODBC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_ODBC=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
+REQUIRE_PACKAGES_ODBC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/odbc/fpmake.pp b/packages/odbc/fpmake.pp
index 1f6b9f1849..39b72b75f8 100644
--- a/packages/odbc/fpmake.pp
+++ b/packages/odbc/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes := AllUnixOSes+AllWindowsOSes-[qnx];
P.SourcePath.Add('src');
P.IncludePath.Add('src');
diff --git a/packages/oggvorbis/Makefile b/packages/oggvorbis/Makefile
index a5852b7058..fd2237c72b 100644
--- a/packages/oggvorbis/Makefile
+++ b/packages/oggvorbis/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=oggvorbis
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/oggvorbis/Makefile.fpc b/packages/oggvorbis/Makefile.fpc
index d4e91de7c3..119681e9fc 100644
--- a/packages/oggvorbis/Makefile.fpc
+++ b/packages/oggvorbis/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=oggvorbis
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/oggvorbis/Makefile.fpc.fpcmake b/packages/oggvorbis/Makefile.fpc.fpcmake
index cf3616a046..83d186b657 100644
--- a/packages/oggvorbis/Makefile.fpc.fpcmake
+++ b/packages/oggvorbis/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=oggvorbis
-version=2.7.1
+version=3.1.1
[target]
units=ogg vorbis
diff --git a/packages/oggvorbis/fpmake.pp b/packages/oggvorbis/fpmake.pp
index 3f3079a175..d2ef177a9f 100644
--- a/packages/oggvorbis/fpmake.pp
+++ b/packages/oggvorbis/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('oggvorbis');
+ P.ShortName:='oggv';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.OSes := [linux,win32,wince];
// P.Dependencies.Add('x11');
diff --git a/packages/openal/Makefile b/packages/openal/Makefile
index 90eae65590..3f44d593b9 100644
--- a/packages/openal/Makefile
+++ b/packages/openal/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=openal
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/openal/Makefile.fpc b/packages/openal/Makefile.fpc
index be840a78a8..8f54dc550c 100644
--- a/packages/openal/Makefile.fpc
+++ b/packages/openal/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=openal
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/openal/Makefile.fpc.fpcmake b/packages/openal/Makefile.fpc.fpcmake
index a74bbf911d..a1e37aa416 100644
--- a/packages/openal/Makefile.fpc.fpcmake
+++ b/packages/openal/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=openal
-version=2.7.1
+version=3.1.1
[target]
units=openal
diff --git a/packages/openal/examples/Makefile b/packages/openal/examples/Makefile
index 733de83f3c..0a4850089e 100644
--- a/packages/openal/examples/Makefile
+++ b/packages/openal/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=captureplaybackopenal wavopenal madopenal
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=captureplaybackopenal wavopenal madopenal
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=captureplaybackopenal wavopenal madopenal
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=captureplaybackopenal wavopenal
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1505,6 +1531,20 @@ REQUIRE_PACKAGES_DTS=1
REQUIRE_PACKAGES_MODPLUG=1
REQUIRE_PACKAGES_MATROSKA=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
+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),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1915,6 +1955,20 @@ REQUIRE_PACKAGES_DTS=1
REQUIRE_PACKAGES_MODPLUG=1
REQUIRE_PACKAGES_MATROSKA=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
+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),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2172,6 +2226,20 @@ REQUIRE_PACKAGES_MODPLUG=1
REQUIRE_PACKAGES_MATROSKA=1
REQUIRE_PACKAGES_MAD=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
+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),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2835,7 +2903,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2865,17 +2933,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/openal/fpmake.pp b/packages/openal/fpmake.pp
index 6600fdbfe1..5a1e670185 100644
--- a/packages/openal/fpmake.pp
+++ b/packages/openal/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('openal');
+ P.ShortName:='oal';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
if Defaults.CPU = i386 then
P.OSes := [linux,win32,darwin]
else
diff --git a/packages/opencl/Makefile b/packages/opencl/Makefile
index d499ca3fd4..7bf6ee9bde 100644
--- a/packages/opencl/Makefile
+++ b/packages/opencl/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=opencl
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/opencl/Makefile.fpc b/packages/opencl/Makefile.fpc
index 1d8f947e65..e387b39aca 100644
--- a/packages/opencl/Makefile.fpc
+++ b/packages/opencl/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=opencl
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/opencl/Makefile.fpc.fpcmake b/packages/opencl/Makefile.fpc.fpcmake
index 07df44c67d..2bd3af4040 100644
--- a/packages/opencl/Makefile.fpc.fpcmake
+++ b/packages/opencl/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=opencl
-version=2.7.1
+version=3.1.1
[target]
units=cl cl_gl
diff --git a/packages/opencl/fpmake.pp b/packages/opencl/fpmake.pp
index c56f5f2984..afff6645db 100644
--- a/packages/opencl/fpmake.pp
+++ b/packages/opencl/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := ' Dmitry "skalogryz" Boyarintsev; Kronos group';
P.License := 'Library: modified BSD, header: LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/opengl/Makefile b/packages/opengl/Makefile
index 36c6c60d98..d7780ead5e 100644
--- a/packages/opengl/Makefile
+++ b/packages/opengl/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=opengl
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/opengl/Makefile.fpc b/packages/opengl/Makefile.fpc
index 6c65590649..339a9af23e 100644
--- a/packages/opengl/Makefile.fpc
+++ b/packages/opengl/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=opengl
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/opengl/Makefile.fpc.fpcmake b/packages/opengl/Makefile.fpc.fpcmake
index 6efee33e77..6f32b2215e 100644
--- a/packages/opengl/Makefile.fpc.fpcmake
+++ b/packages/opengl/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=opengl
-version=2.7.1
+version=3.1.1
[require]
packages_linux=x11
diff --git a/packages/opengl/examples/Makefile b/packages/opengl/examples/Makefile
index 7f5880708f..3f04415e8d 100644
--- a/packages/opengl/examples/Makefile
+++ b/packages/opengl/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur glutdemova freeglutdemo
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur glutdemova freeglutdemo
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur glutdemova freeglutdemo glxtest
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur glutdemova freeglutdemo
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur glutdemova freeglutdemo
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur glutdemova freeglutdemo glxtest
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur glutdemova freeglutdemo glxtest
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur glutdemova freeglutdemo
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur glutdemova freeglutdemo
endif
@@ -611,6 +626,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -698,6 +716,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -752,6 +773,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2h
endif
@@ -1006,6 +1030,12 @@ 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=
@@ -1051,6 +1081,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1610,6 +1645,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_OPENGL=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
+REQUIRE_PACKAGES_OPENGL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1871,6 +1915,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_OPENGL=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
+REQUIRE_PACKAGES_OPENGL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2033,6 +2086,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_OPENGL=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
+REQUIRE_PACKAGES_OPENGL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2448,7 +2510,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2478,17 +2540,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/opengl/fpmake.pp b/packages/opengl/fpmake.pp
index 79e4f74c10..9607011467 100644
--- a/packages/opengl/fpmake.pp
+++ b/packages/opengl/fpmake.pp
@@ -13,15 +13,17 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('opengl');
+ P.ShortName:='ogl';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes:=AllUnixOSes+[Win32,Win64]+[MorphOS]-[Android];
P.Dependencies.Add('x11',AllUnixOSes-[darwin,iphonesim]);
if Defaults.CPU<>arm then
P.Dependencies.Add('x11',[darwin]);
+ P.Dependencies.Add('morphunits',[morphos]);
P.SourcePath.Add('src');
P.IncludePath.Add('src');
diff --git a/packages/opengles/Makefile b/packages/opengles/Makefile
index fec15ee6a5..0bc0cdd75d 100644
--- a/packages/opengles/Makefile
+++ b/packages/opengles/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=opengles
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/opengles/Makefile.fpc b/packages/opengles/Makefile.fpc
index d8a8dada50..2d685cc073 100644
--- a/packages/opengles/Makefile.fpc
+++ b/packages/opengles/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=opengles
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/opengles/Makefile.fpc.fpcmake b/packages/opengles/Makefile.fpc.fpcmake
index fa85085e39..16a2bc0595 100644
--- a/packages/opengles/Makefile.fpc.fpcmake
+++ b/packages/opengles/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=opengles
-version=2.7.1
+version=3.1.1
# [require]
# packages_linux=x11
diff --git a/packages/opengles/examples/Makefile b/packages/opengles/examples/Makefile
index d8b3188266..f0d2d67814 100644
--- a/packages/opengles/examples/Makefile
+++ b/packages/opengles/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=glutdemoes
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=glutdemoes
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=glutdemoes
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=glutdemoes
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=glutdemoes
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=glutdemoes
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=glutdemoes
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=glutdemoes
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=glutdemoes
endif
@@ -611,6 +626,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -698,6 +716,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_OPTIONS+=-S2h
endif
@@ -752,6 +773,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_OPTIONS+=-S2h
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_OPTIONS+=-S2h
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_OPTIONS+=-S2h
endif
@@ -1006,6 +1030,12 @@ 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=
@@ -1051,6 +1081,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1610,6 +1645,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_OPENGLES=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
+REQUIRE_PACKAGES_OPENGLES=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1871,6 +1915,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_OPENGLES=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
+REQUIRE_PACKAGES_OPENGLES=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2033,6 +2086,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_OPENGLES=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
+REQUIRE_PACKAGES_OPENGLES=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2448,7 +2510,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2478,17 +2540,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/opengles/fpmake.pp b/packages/opengles/fpmake.pp
index a0fb19e3d5..ebf7743061 100644
--- a/packages/opengles/fpmake.pp
+++ b/packages/opengles/fpmake.pp
@@ -17,7 +17,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Free Pascal Development team';
P.License := 'LGPL with modification';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/openssl/Makefile b/packages/openssl/Makefile
index 71d2f433bc..7f123c2ca2 100644
--- a/packages/openssl/Makefile
+++ b/packages/openssl/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=openssl
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/openssl/Makefile.fpc b/packages/openssl/Makefile.fpc
index 93ca5c0cf9..4639a78e04 100644
--- a/packages/openssl/Makefile.fpc
+++ b/packages/openssl/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=openssl
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/openssl/Makefile.fpc.fpcmake b/packages/openssl/Makefile.fpc.fpcmake
index 63d4080bb8..3a9514f748 100644
--- a/packages/openssl/Makefile.fpc.fpcmake
+++ b/packages/openssl/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=openssl
-version=2.7.1
+version=3.1.1
[target]
units=openssl
diff --git a/packages/openssl/fpmake.pp b/packages/openssl/fpmake.pp
index 88133cbfce..3cce6da213 100644
--- a/packages/openssl/fpmake.pp
+++ b/packages/openssl/fpmake.pp
@@ -13,13 +13,15 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('openssl');
+ P.ShortName:='ossl';
+ P.Description := 'Interface units for OpenSSL libraries supporting SSL-encrypted network communication.';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.OSes := AllUnixOSes+AllWindowsOSes+[OS2,EMX]-[qnx];
-// P.Dependencies.Add('x11');
+ P.Dependencies.Add('rtl-extra',[OS2,EMX]);
T:=P.Targets.AddUnit('openssl.pas');
T:=P.Targets.AddUnit('fpopenssl.pp');
diff --git a/packages/openssl/src/openssl.pas b/packages/openssl/src/openssl.pas
index f78864de3c..44e89b45c5 100644
--- a/packages/openssl/src/openssl.pas
+++ b/packages/openssl/src/openssl.pas
@@ -92,11 +92,15 @@ var
{$ELSE}
{$IFDEF OS2}
{$IFDEF OS2GCC}
- DLLSSLName: string = 'kssl.dll';
- DLLUtilName: string = 'kcrypto.dll';
+ DLLSSLName: string = 'kssl10.dll';
+ DLLUtilName: string = 'kcrypt10.dll';
+ DLLSSLName2: string = 'kssl.dll';
+ DLLUtilName2: string = 'kcrypto.dll';
{$ELSE OS2GCC}
- DLLSSLName: string = 'ssl.dll';
- DLLUtilName: string = 'crypto.dll';
+ DLLSSLName: string = 'emssl10.dll';
+ DLLUtilName: string = 'emcrpt10.dll';
+ DLLSSLName2: string = 'ssl.dll';
+ DLLUtilName2: string = 'crypto.dll';
{$ENDIF OS2GCC}
{$ELSE OS2}
DLLSSLName: string = 'libssl';
@@ -3430,7 +3434,14 @@ begin
{$IFDEF MSWINDOWS}
if (SSLLibHandle = 0) then
SSLLibHandle := LoadLib(DLLSSLName2);
- {$ENDIF}
+ {$ELSE MSWINDOWS}
+ {$IFDEF OS2}
+ if (SSLUtilHandle = 0) then
+ SSLUtilHandle := LoadLib(DLLUtilName2);
+ if (SSLLibHandle = 0) then
+ SSLLibHandle := LoadLib(DLLSSLName2);
+ {$ENDIF OS2}
+ {$ENDIF MSWINDOWS}
Result:=(SSLLibHandle<>0) and (SSLUtilHandle<>0);
end;
diff --git a/packages/oracle/Makefile b/packages/oracle/Makefile
index 33e7fca329..9e626be6d0 100644
--- a/packages/oracle/Makefile
+++ b/packages/oracle/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=oracle
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/oracle/Makefile.fpc b/packages/oracle/Makefile.fpc
index 69a84990b4..a06ef6df3b 100644
--- a/packages/oracle/Makefile.fpc
+++ b/packages/oracle/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=oracle
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/oracle/Makefile.fpc.fpcmake b/packages/oracle/Makefile.fpc.fpcmake
index a99a301995..2ede404eb0 100644
--- a/packages/oracle/Makefile.fpc.fpcmake
+++ b/packages/oracle/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=oracle
-version=2.7.1
+version=3.1.1
[target]
units=oci ocidyn oratypes oraoci
diff --git a/packages/oracle/examples/Makefile b/packages/oracle/examples/Makefile
index dfc4146dc2..1315f6ede9 100644
--- a/packages/oracle/examples/Makefile
+++ b/packages/oracle/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=oraclew
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=oraclew
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=oraclew
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=oraclew
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=oraclew
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=oraclew
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=oraclew
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=oraclew
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=oraclew
endif
@@ -610,6 +625,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_EXAMPLES+=test01
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_EXAMPLES+=test01
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_EXAMPLES+=test01
endif
@@ -697,6 +715,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_EXAMPLES+=test01
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_EXAMPLES+=test01
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_EXAMPLES+=test01
endif
@@ -751,6 +772,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_EXAMPLES+=test01
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_EXAMPLES+=test01
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_EXAMPLES+=test01
endif
@@ -1006,6 +1030,12 @@ 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=
@@ -1051,6 +1081,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1679,6 +1714,18 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-XML=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
+REQUIRE_PACKAGES_ORACLE=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2027,6 +2074,18 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-XML=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
+REQUIRE_PACKAGES_ORACLE=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2243,6 +2302,18 @@ REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-DB=1
REQUIRE_PACKAGES_FCL-XML=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
+REQUIRE_PACKAGES_ORACLE=1
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-DB=1
+REQUIRE_PACKAGES_FCL-XML=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2784,7 +2855,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2814,17 +2885,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/packages/oracle/fpmake.pp b/packages/oracle/fpmake.pp
index 51ead0cac2..a717d82043 100644
--- a/packages/oracle/fpmake.pp
+++ b/packages/oracle/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('oracle');
+ P.ShortName:='ora';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.IncludePath.Add('src');
P.OSes := AllUnixOSes+AllWindowsOSes-[qnx];
diff --git a/packages/os2units/Makefile b/packages/os2units/Makefile
index 2b97db7ac0..256413e5c9 100644
--- a/packages/os2units/Makefile
+++ b/packages/os2units/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=os2units
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/os2units/Makefile.fpc b/packages/os2units/Makefile.fpc
index d13f547d2a..453972c4aa 100644
--- a/packages/os2units/Makefile.fpc
+++ b/packages/os2units/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=os2units
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/os2units/Makefile.fpc.fpcmake b/packages/os2units/Makefile.fpc.fpcmake
index b21dfd1b98..c67d1e251b 100644
--- a/packages/os2units/Makefile.fpc.fpcmake
+++ b/packages/os2units/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=os2units
-version=2.7.1
+version=3.1.1
[require]
libc=y
diff --git a/packages/os2units/examples/Makefile b/packages/os2units/examples/Makefile
index 0acbaf7b6e..69e1ded779 100644
--- a/packages/os2units/examples/Makefile
+++ b/packages/os2units/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=clktest ftptest lvmtest mciapi1 mciapi2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=clktest ftptest lvmtest mciapi1 mciapi2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=clktest ftptest lvmtest mciapi1 mciapi2
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=clktest ftptest lvmtest mciapi1 mciapi2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=clktest ftptest lvmtest mciapi1 mciapi2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=clktest ftptest lvmtest mciapi1 mciapi2
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=clktest ftptest lvmtest mciapi1 mciapi2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=clktest ftptest lvmtest mciapi1 mciapi2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=clktest ftptest lvmtest mciapi1 mciapi2
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_OS2UNITS=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
+REQUIRE_PACKAGES_OS2UNITS=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_OS2UNITS=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
+REQUIRE_PACKAGES_OS2UNITS=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_OS2UNITS=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
+REQUIRE_PACKAGES_OS2UNITS=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/os2units/fpmake.pp b/packages/os2units/fpmake.pp
index 18ef621b2b..87bb89b779 100644
--- a/packages/os2units/fpmake.pp
+++ b/packages/os2units/fpmake.pp
@@ -12,10 +12,12 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('os2units');
+ P.ShortName:='os2';
+ P.Description := 'Interface units for various libraries included with OS/2 and/or eComStation (multimedia, direct graphics I/O, management of disk partitions / volumes, simple FTP communication library, etc.).';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes := [OS2,emx];
P.SourcePath.Add('src');
// P.Dependencies.Add('x11');
diff --git a/packages/palmunits/Makefile b/packages/palmunits/Makefile
index f7fb49aec2..b997856289 100644
--- a/packages/palmunits/Makefile
+++ b/packages/palmunits/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=palmunits
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/palmunits/Makefile.fpc b/packages/palmunits/Makefile.fpc
index 2ce663406c..7069b1f955 100644
--- a/packages/palmunits/Makefile.fpc
+++ b/packages/palmunits/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=palmunits
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/palmunits/Makefile.fpc.fpcmake b/packages/palmunits/Makefile.fpc.fpcmake
index a770dadea2..daa8b6cfb7 100644
--- a/packages/palmunits/Makefile.fpc.fpcmake
+++ b/packages/palmunits/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=palmunits
-version=2.7.1
+version=3.1.1
[target]
units=aboutbox alarmmgr applaunchcmd attentionmgr bitmap category chars clipboard \
diff --git a/packages/palmunits/fpmake.pp b/packages/palmunits/fpmake.pp
index 4237d9d586..a5a096793f 100644
--- a/packages/palmunits/fpmake.pp
+++ b/packages/palmunits/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes := [palmos];
P.SourcePath.Add('src');
diff --git a/packages/pasjpeg/Makefile b/packages/pasjpeg/Makefile
index 3108846b11..1264e98fd2 100644
--- a/packages/pasjpeg/Makefile
+++ b/packages/pasjpeg/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=pasjpeg
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/pasjpeg/Makefile.fpc b/packages/pasjpeg/Makefile.fpc
index ef55469e40..97ada0c8bf 100644
--- a/packages/pasjpeg/Makefile.fpc
+++ b/packages/pasjpeg/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=pasjpeg
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/pasjpeg/Makefile.fpc.fpcmake b/packages/pasjpeg/Makefile.fpc.fpcmake
index 77eb4f41c9..844dc0b8e0 100644
--- a/packages/pasjpeg/Makefile.fpc.fpcmake
+++ b/packages/pasjpeg/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=pasjpeg
-version=2.7.1
+version=3.1.1
[target]
units=buildpasjpeg jctrans
diff --git a/packages/pasjpeg/fpmake.pp b/packages/pasjpeg/fpmake.pp
index 2c18fb1d69..990ce1ed5c 100644
--- a/packages/pasjpeg/fpmake.pp
+++ b/packages/pasjpeg/fpmake.pp
@@ -13,10 +13,12 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('pasjpeg');
+ P.ShortName:='pjp';
+ P.Description := 'Pascal port of JPEG (.JPG) image format handling library from IJG.';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes:=P.OSes-[embedded,msdos];
P.SourcePath.Add('src');
diff --git a/packages/pastojs/Makefile b/packages/pastojs/Makefile
index b37571aa3c..1360ae9128 100644
--- a/packages/pastojs/Makefile
+++ b/packages/pastojs/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=pastojs
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -968,7 +985,7 @@ else
TAROPT=vz
TAREXT=.tar.gz
endif
-override REQUIRE_PACKAGES=fcl-js fcl-passrc fpmkunit
+override REQUIRE_PACKAGES=rtl fpmkunit
ifeq ($(FULL_TARGET),i386-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -976,8 +993,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-go32v2)
REQUIRE_PACKAGES_RTL=1
@@ -986,8 +1001,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-win32)
REQUIRE_PACKAGES_RTL=1
@@ -996,8 +1009,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-os2)
REQUIRE_PACKAGES_RTL=1
@@ -1006,8 +1017,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-freebsd)
REQUIRE_PACKAGES_RTL=1
@@ -1016,8 +1025,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-beos)
REQUIRE_PACKAGES_RTL=1
@@ -1026,8 +1033,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-haiku)
REQUIRE_PACKAGES_RTL=1
@@ -1036,8 +1041,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-netbsd)
REQUIRE_PACKAGES_RTL=1
@@ -1046,8 +1049,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-solaris)
REQUIRE_PACKAGES_RTL=1
@@ -1056,8 +1057,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-qnx)
REQUIRE_PACKAGES_RTL=1
@@ -1066,8 +1065,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-netware)
REQUIRE_PACKAGES_RTL=1
@@ -1076,8 +1073,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-openbsd)
REQUIRE_PACKAGES_RTL=1
@@ -1086,8 +1081,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-wdosx)
REQUIRE_PACKAGES_RTL=1
@@ -1096,8 +1089,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-darwin)
REQUIRE_PACKAGES_RTL=1
@@ -1106,8 +1097,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-emx)
REQUIRE_PACKAGES_RTL=1
@@ -1116,8 +1105,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-watcom)
REQUIRE_PACKAGES_RTL=1
@@ -1126,8 +1113,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
REQUIRE_PACKAGES_RTL=1
@@ -1136,8 +1121,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-wince)
REQUIRE_PACKAGES_RTL=1
@@ -1146,8 +1129,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1156,8 +1137,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-symbian)
REQUIRE_PACKAGES_RTL=1
@@ -1166,8 +1145,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-nativent)
REQUIRE_PACKAGES_RTL=1
@@ -1176,8 +1153,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
REQUIRE_PACKAGES_RTL=1
@@ -1186,8 +1161,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
@@ -1196,8 +1169,14 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=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
@@ -1206,8 +1185,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
REQUIRE_PACKAGES_RTL=1
@@ -1216,8 +1193,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
REQUIRE_PACKAGES_RTL=1
@@ -1226,8 +1201,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),m68k-amiga)
REQUIRE_PACKAGES_RTL=1
@@ -1236,8 +1209,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),m68k-atari)
REQUIRE_PACKAGES_RTL=1
@@ -1246,8 +1217,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
REQUIRE_PACKAGES_RTL=1
@@ -1256,8 +1225,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),m68k-palmos)
REQUIRE_PACKAGES_RTL=1
@@ -1266,8 +1233,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),m68k-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1276,8 +1241,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),powerpc-linux)
REQUIRE_PACKAGES_RTL=1
@@ -1286,8 +1249,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
REQUIRE_PACKAGES_RTL=1
@@ -1296,8 +1257,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
REQUIRE_PACKAGES_RTL=1
@@ -1306,8 +1265,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),powerpc-macos)
REQUIRE_PACKAGES_RTL=1
@@ -1316,8 +1273,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
REQUIRE_PACKAGES_RTL=1
@@ -1326,8 +1281,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
REQUIRE_PACKAGES_RTL=1
@@ -1336,8 +1289,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1346,8 +1297,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),powerpc-wii)
REQUIRE_PACKAGES_RTL=1
@@ -1356,8 +1305,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),powerpc-aix)
REQUIRE_PACKAGES_RTL=1
@@ -1366,8 +1313,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),sparc-linux)
REQUIRE_PACKAGES_RTL=1
@@ -1376,8 +1321,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
REQUIRE_PACKAGES_RTL=1
@@ -1386,8 +1329,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),sparc-solaris)
REQUIRE_PACKAGES_RTL=1
@@ -1396,8 +1337,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),sparc-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1406,8 +1345,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),x86_64-linux)
REQUIRE_PACKAGES_RTL=1
@@ -1416,8 +1353,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
REQUIRE_PACKAGES_RTL=1
@@ -1426,8 +1361,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
REQUIRE_PACKAGES_RTL=1
@@ -1436,8 +1369,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
REQUIRE_PACKAGES_RTL=1
@@ -1446,8 +1377,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
REQUIRE_PACKAGES_RTL=1
@@ -1456,8 +1385,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
REQUIRE_PACKAGES_RTL=1
@@ -1466,8 +1393,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),x86_64-win64)
REQUIRE_PACKAGES_RTL=1
@@ -1476,8 +1401,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1486,8 +1409,14 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=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
@@ -1496,8 +1425,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),arm-palmos)
REQUIRE_PACKAGES_RTL=1
@@ -1506,8 +1433,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),arm-darwin)
REQUIRE_PACKAGES_RTL=1
@@ -1516,8 +1441,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),arm-wince)
REQUIRE_PACKAGES_RTL=1
@@ -1526,8 +1449,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),arm-gba)
REQUIRE_PACKAGES_RTL=1
@@ -1536,8 +1457,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),arm-nds)
REQUIRE_PACKAGES_RTL=1
@@ -1546,8 +1465,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),arm-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1556,8 +1473,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),arm-symbian)
REQUIRE_PACKAGES_RTL=1
@@ -1566,8 +1481,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),arm-android)
REQUIRE_PACKAGES_RTL=1
@@ -1576,8 +1489,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
REQUIRE_PACKAGES_RTL=1
@@ -1586,8 +1497,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
REQUIRE_PACKAGES_RTL=1
@@ -1596,8 +1505,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1606,8 +1513,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
REQUIRE_PACKAGES_RTL=1
@@ -1616,8 +1521,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),avr-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1626,8 +1529,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),armeb-linux)
REQUIRE_PACKAGES_RTL=1
@@ -1636,8 +1537,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),armeb-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1646,8 +1545,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),mips-linux)
REQUIRE_PACKAGES_RTL=1
@@ -1656,8 +1553,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),mipsel-linux)
REQUIRE_PACKAGES_RTL=1
@@ -1666,8 +1561,14 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=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
@@ -1676,8 +1577,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),jvm-java)
REQUIRE_PACKAGES_RTL=1
@@ -1686,8 +1585,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),jvm-android)
REQUIRE_PACKAGES_RTL=1
@@ -1696,8 +1593,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifeq ($(FULL_TARGET),i8086-msdos)
REQUIRE_PACKAGES_RTL=1
@@ -1706,8 +1601,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
@@ -1937,82 +1830,6 @@ ifdef UNITDIR_FPMAKE_FPMKUNIT
override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FPMKUNIT)
endif
endif
-ifdef REQUIRE_PACKAGES_FCL-JS
-PACKAGEDIR_FCL-JS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-js/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_FCL-JS),)
-ifneq ($(wildcard $(PACKAGEDIR_FCL-JS)/units/$(TARGETSUFFIX)),)
-UNITDIR_FCL-JS=$(PACKAGEDIR_FCL-JS)/units/$(TARGETSUFFIX)
-else
-UNITDIR_FCL-JS=$(PACKAGEDIR_FCL-JS)
-endif
-ifneq ($(wildcard $(PACKAGEDIR_FCL-JS)/units/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_FCL-JS=$(PACKAGEDIR_FCL-JS)/units/$(SOURCESUFFIX)
-else
-ifneq ($(wildcard $(PACKAGEDIR_FCL-JS)/units_bs/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_FCL-JS=$(PACKAGEDIR_FCL-JS)/units_bs/$(SOURCESUFFIX)
-else
-UNITDIR_FPMAKE_FCL-JS=$(PACKAGEDIR_FCL-JS)
-endif
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_FCL-JS)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_FCL-JS) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-JS)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_FCL-JS=
-UNITDIR_FCL-JS:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-js/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_FCL-JS),)
-UNITDIR_FCL-JS:=$(firstword $(UNITDIR_FCL-JS))
-else
-UNITDIR_FCL-JS=
-endif
-endif
-ifdef UNITDIR_FCL-JS
-override COMPILER_UNITDIR+=$(UNITDIR_FCL-JS)
-endif
-ifdef UNITDIR_FPMAKE_FCL-JS
-override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-JS)
-endif
-endif
-ifdef REQUIRE_PACKAGES_FCL-PASSRC
-PACKAGEDIR_FCL-PASSRC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-passrc/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_FCL-PASSRC),)
-ifneq ($(wildcard $(PACKAGEDIR_FCL-PASSRC)/units/$(TARGETSUFFIX)),)
-UNITDIR_FCL-PASSRC=$(PACKAGEDIR_FCL-PASSRC)/units/$(TARGETSUFFIX)
-else
-UNITDIR_FCL-PASSRC=$(PACKAGEDIR_FCL-PASSRC)
-endif
-ifneq ($(wildcard $(PACKAGEDIR_FCL-PASSRC)/units/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_FCL-PASSRC=$(PACKAGEDIR_FCL-PASSRC)/units/$(SOURCESUFFIX)
-else
-ifneq ($(wildcard $(PACKAGEDIR_FCL-PASSRC)/units_bs/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_FCL-PASSRC=$(PACKAGEDIR_FCL-PASSRC)/units_bs/$(SOURCESUFFIX)
-else
-UNITDIR_FPMAKE_FCL-PASSRC=$(PACKAGEDIR_FCL-PASSRC)
-endif
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_FCL-PASSRC)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_FCL-PASSRC) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-PASSRC)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_FCL-PASSRC=
-UNITDIR_FCL-PASSRC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-passrc/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_FCL-PASSRC),)
-UNITDIR_FCL-PASSRC:=$(firstword $(UNITDIR_FCL-PASSRC))
-else
-UNITDIR_FCL-PASSRC=
-endif
-endif
-ifdef UNITDIR_FCL-PASSRC
-override COMPILER_UNITDIR+=$(UNITDIR_FCL-PASSRC)
-endif
-ifdef UNITDIR_FPMAKE_FCL-PASSRC
-override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-PASSRC)
-endif
-endif
ifndef NOCPUDEF
override FPCOPTDEF=$(ARCH)
endif
@@ -2126,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2156,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2513,13 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipinstall: fpc_zipinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2535,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2563,15 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
diff --git a/packages/pastojs/Makefile.fpc b/packages/pastojs/Makefile.fpc
index 3ca1ed6fda..c14a5c1c59 100644
--- a/packages/pastojs/Makefile.fpc
+++ b/packages/pastojs/Makefile.fpc
@@ -4,10 +4,10 @@
[package]
name=pastojs
-version=2.7.1
+version=3.1.1
[require]
-packages=fcl-js fcl-passrc fpmkunit
+packages=rtl fpmkunit
[install]
fpcpackage=y
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,16 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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/packages/pastojs/fpmake.pp b/packages/pastojs/fpmake.pp
index 84595dfee6..6fc39e299d 100644
--- a/packages/pastojs/fpmake.pp
+++ b/packages/pastojs/fpmake.pp
@@ -18,7 +18,7 @@ begin
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes := AllOses;
P.Dependencies.Add('fcl-js');
P.Dependencies.Add('fcl-passrc');
diff --git a/packages/paszlib/Makefile b/packages/paszlib/Makefile
index 49a6ec445b..45c14a3d05 100644
--- a/packages/paszlib/Makefile
+++ b/packages/paszlib/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=paszlib
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -596,6 +602,12 @@ 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=
@@ -641,6 +653,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1062,6 +1079,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1149,6 +1169,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1203,6 +1226,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1366,7 +1392,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1396,17 +1422,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -1753,12 +1785,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -1774,15 +1804,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -1802,17 +1832,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/paszlib/Makefile.fpc b/packages/paszlib/Makefile.fpc
index 9d2e20b231..e2e9c09c1c 100644
--- a/packages/paszlib/Makefile.fpc
+++ b/packages/paszlib/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=paszlib
-version=2.7.1
+version=3.1.1
[require]
packages=rtl
@@ -67,15 +67,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -100,18 +100,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/paszlib/Makefile.fpc.fpcmake b/packages/paszlib/Makefile.fpc.fpcmake
index 15300f273d..057ae8cb48 100644
--- a/packages/paszlib/Makefile.fpc.fpcmake
+++ b/packages/paszlib/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=paszlib
-version=2.7.1
+version=3.1.1
[require]
packages=hash
diff --git a/packages/paszlib/examples/Makefile b/packages/paszlib/examples/Makefile
index 02c3618082..62a2c8659f 100644
--- a/packages/paszlib/examples/Makefile
+++ b/packages/paszlib/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=minigzip example minizip miniunz example2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=minigzip example minizip miniunz example2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=minigzip example minizip miniunz example2
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=minigzip example minizip miniunz example2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=minigzip example minizip miniunz example2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=minigzip example minizip miniunz example2
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=minigzip example minizip miniunz example2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=minigzip example minizip miniunz example2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=minigzip example minizip miniunz example2
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1273,6 +1299,10 @@ ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1389,6 +1419,10 @@ ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1461,6 +1495,10 @@ ifeq ($(FULL_TARGET),mipsel-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+REQUIRE_PACKAGES_RTL=1
+REQUIRE_PACKAGES_PASZLIB=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1666,7 +1704,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1696,17 +1734,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/paszlib/fpmake.pp b/packages/paszlib/fpmake.pp
index f564379bd6..7045f9f5ce 100644
--- a/packages/paszlib/fpmake.pp
+++ b/packages/paszlib/fpmake.pp
@@ -14,14 +14,16 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('paszlib');
+ P.ShortName:='pzl';
+ P.Description := 'Pascal port of the ZLIB library - support for deflate compression method using for GZIP, PNG, ZIP, etc.';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes := P.OSes - [embedded,nativent,msdos];
D:=P.Dependencies.Add('hash');
- D.Version:='2.7.1';
+ D.Version:='3.1.1';
P.SourcePath.Add('src');
P.IncludePath.Add('src');
diff --git a/packages/paszlib/src/zbase.pas b/packages/paszlib/src/zbase.pas
index 0d2b34bd03..2d43e6e6c8 100644
--- a/packages/paszlib/src/zbase.pas
+++ b/packages/paszlib/src/zbase.pas
@@ -412,7 +412,7 @@ resourcestring Sneed_dict = 'need dictionary';
Sversion_error = 'incompatible version';
const
- z_verbose = 1;
+ z_verbose : longint = 1;
{$IFDEF ZLIB_DEBUG}
procedure z_error (m : string);
diff --git a/packages/paszlib/src/zipper.pp b/packages/paszlib/src/zipper.pp
index c05f2c7b15..85faa04121 100644
--- a/packages/paszlib/src/zipper.pp
+++ b/packages/paszlib/src/zipper.pp
@@ -33,6 +33,38 @@ Const
CENTRAL_FILE_HEADER_SIGNATURE = $02014B50;
ZIP64_HEADER_ID = $0001;
+const
+ OS_FAT = 0; //MS-DOS and OS/2 (FAT/VFAT/FAT32)
+ OS_UNIX = 3;
+ OS_OS2 = 6; //OS/2 HPFS
+ OS_NTFS = 10;
+ OS_VFAT = 14;
+ OS_OSX = 19;
+
+ UNIX_MASK = $F000;
+ UNIX_FIFO = $1000;
+ UNIX_CHAR = $2000;
+ UNIX_DIR = $4000;
+ UNIX_BLK = $6000;
+ UNIX_FILE = $8000;
+ UNIX_LINK = $A000;
+ UNIX_SOCK = $C000;
+
+
+ UNIX_RUSR = $0100;
+ UNIX_WUSR = $0080;
+ UNIX_XUSR = $0040;
+
+ UNIX_RGRP = $0020;
+ UNIX_WGRP = $0010;
+ UNIX_XGRP = $0008;
+
+ UNIX_ROTH = $0004;
+ UNIX_WOTH = $0002;
+ UNIX_XOTH = $0001;
+
+ UNIX_DEFAULT = UNIX_RUSR or UNIX_WUSR or UNIX_XUSR or UNIX_RGRP or UNIX_ROTH;
+
Type
Local_File_Header_Type = Packed Record //1 per zipped file
Signature : LongInt; //4 bytes
@@ -55,9 +87,9 @@ Type
// after central directory header
Header_ID : Word;
//e.g. $0001 (ZIP64_HEADER_ID) Zip64 extended information extra field
- //$0009 OS/2: extended attributes
- //$000a NTFS: (Win32 really)
- //$000d UNIX: uid, gid etc
+ // $0009 OS/2: extended attributes
+ // $000a NTFS: (Win32 really)
+ // $000d UNIX: uid, gid etc
Data_Size : Word; //size of following field data
//... field data should follow...
end;
@@ -692,37 +724,6 @@ begin
DT:=ComposeDateTime(EncodeDate(Y,M,D),EncodeTime(H,N,S,MS));
end;
-const
- OS_FAT = 0; //MS-DOS and OS/2 (FAT/VFAT/FAT32)
- OS_UNIX = 3;
- OS_OS2 = 6; //OS/2 HPFS
- OS_NTFS = 10;
- OS_VFAT = 14;
- OS_OSX = 19;
-
- UNIX_MASK = $F000;
- UNIX_FIFO = $1000;
- UNIX_CHAR = $2000;
- UNIX_DIR = $4000;
- UNIX_BLK = $6000;
- UNIX_FILE = $8000;
- UNIX_LINK = $A000;
- UNIX_SOCK = $C000;
-
-
- UNIX_RUSR = $0100;
- UNIX_WUSR = $0080;
- UNIX_XUSR = $0040;
-
- UNIX_RGRP = $0020;
- UNIX_WGRP = $0010;
- UNIX_XGRP = $0008;
-
- UNIX_ROTH = $0004;
- UNIX_WOTH = $0002;
- UNIX_XOTH = $0001;
-
- UNIX_DEFAULT = UNIX_RUSR or UNIX_WUSR or UNIX_XUSR or UNIX_RGRP or UNIX_ROTH;
function ZipUnixAttrsToFatAttrs(const Name: String; Attrs: Longint): Longint;
@@ -1357,17 +1358,20 @@ Begin
Raise EZipError.CreateFmt(SErrFileDoesNotExist,[F.DiskFileName]);
end
else
- begin
+ begin
If (F.ArchiveFileName='') then
Raise EZipError.CreateFmt(SErrMissingArchiveName,[I]);
F.Size:=F.Stream.Size;
- {$IFDEF UNIX}
- F.Attributes := UNIX_FILE or UNIX_DEFAULT;
- {$ELSE}
- F.Attributes := faArchive;
- {$ENDIF}
- end;
+ if (F.Attributes = 0) then
+ begin
+ {$IFDEF UNIX}
+ F.Attributes := UNIX_FILE or UNIX_DEFAULT;
+ {$ELSE}
+ F.Attributes := faArchive;
+ {$ENDIF}
+ end;
end;
+ end;
end;
@@ -1526,6 +1530,7 @@ Var
Zip64ECDL : Zip64_End_of_Central_Dir_Locator_type;
Begin
ACount := 0;
+ MinReqdVersion:=0;
CenDirPos := FOutStream.Position;
FOutStream.Seek(0,soBeginning); { Rewind output file }
HdrPos := FOutStream.Position;
@@ -2633,6 +2638,8 @@ begin
FCompressionLevel:=cldefault;
FDateTime:=now;
FNeedsZip64:=false;
+ FAttributes:=0;
+
inherited create(ACollection);
end;
diff --git a/packages/pcap/Makefile b/packages/pcap/Makefile
index 1f4a742997..fb1d4e0e0e 100644
--- a/packages/pcap/Makefile
+++ b/packages/pcap/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=pcap
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/pcap/Makefile.fpc b/packages/pcap/Makefile.fpc
index d611af9441..a46fc7cfdf 100644
--- a/packages/pcap/Makefile.fpc
+++ b/packages/pcap/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=pcap
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/pcap/Makefile.fpc.fpcmake b/packages/pcap/Makefile.fpc.fpcmake
index 568f841956..066010335e 100644
--- a/packages/pcap/Makefile.fpc.fpcmake
+++ b/packages/pcap/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=pcap
-version=2.7.1
+version=3.1.1
[target]
units=pcap
diff --git a/packages/pcap/fpmake.pp b/packages/pcap/fpmake.pp
index 27b29c6883..699026decf 100644
--- a/packages/pcap/fpmake.pp
+++ b/packages/pcap/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.OSes := AllUnixOSes+[win32]-[qnx];
P.Dependencies.Add('rtl-extra');
diff --git a/packages/postgres/Makefile b/packages/postgres/Makefile
index fe034ae892..7da924c64f 100644
--- a/packages/postgres/Makefile
+++ b/packages/postgres/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=postgres
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/postgres/Makefile.fpc b/packages/postgres/Makefile.fpc
index 0eaca45134..ce26e4bc44 100644
--- a/packages/postgres/Makefile.fpc
+++ b/packages/postgres/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=postgres
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/postgres/Makefile.fpc.fpcmake b/packages/postgres/Makefile.fpc.fpcmake
index bdfedf83ca..89d15db563 100644
--- a/packages/postgres/Makefile.fpc.fpcmake
+++ b/packages/postgres/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=postgres
-version=2.7.1
+version=3.1.1
[target]
units=dllist dllistdyn postgres postgres3 postgres3dyn
diff --git a/packages/postgres/examples/Makefile b/packages/postgres/examples/Makefile
index 46f77bbbda..67f091c612 100644
--- a/packages/postgres/examples/Makefile
+++ b/packages/postgres/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=testpg1 testpg2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=testpg1 testpg2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=testpg1 testpg2
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=testpg1 testpg2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=testpg1 testpg2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=testpg1 testpg2
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=testpg1 testpg2
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=testpg1 testpg2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=testpg1 testpg2
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_POSTGRES=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
+REQUIRE_PACKAGES_POSTGRES=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_POSTGRES=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
+REQUIRE_PACKAGES_POSTGRES=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_POSTGRES=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
+REQUIRE_PACKAGES_POSTGRES=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/postgres/fpmake.pp b/packages/postgres/fpmake.pp
index 4d537006af..07af11f32b 100644
--- a/packages/postgres/fpmake.pp
+++ b/packages/postgres/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('postgres');
+ P.ShortName:='pgr';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.OSes := AllUnixOSes-[qnx]+AllWindowsOSes;
diff --git a/packages/proj4/Makefile b/packages/proj4/Makefile
index b7c6634197..e347f41a37 100644
--- a/packages/proj4/Makefile
+++ b/packages/proj4/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=proj4
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/proj4/Makefile.fpc b/packages/proj4/Makefile.fpc
index ba654e93d0..7fd985686a 100644
--- a/packages/proj4/Makefile.fpc
+++ b/packages/proj4/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=proj4
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/proj4/Makefile.fpc.fpcmake b/packages/proj4/Makefile.fpc.fpcmake
index aefe382750..364c153d46 100644
--- a/packages/proj4/Makefile.fpc.fpcmake
+++ b/packages/proj4/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=proj4
-version=2.7.1
+version=3.1.1
[target]
units=proj
diff --git a/packages/proj4/fpmake.pp b/packages/proj4/fpmake.pp
index 131da702cd..80a0a56da6 100644
--- a/packages/proj4/fpmake.pp
+++ b/packages/proj4/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.IncludePath.Add('src');
P.OSes := [linux];
diff --git a/packages/ptc/Makefile b/packages/ptc/Makefile
index 1f38dbc1e7..22a5e2d44c 100644
--- a/packages/ptc/Makefile
+++ b/packages/ptc/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=ptc
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/ptc/Makefile.fpc b/packages/ptc/Makefile.fpc
index 291765432e..35699ddb2f 100644
--- a/packages/ptc/Makefile.fpc
+++ b/packages/ptc/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=ptc
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/ptc/Makefile.fpc.fpcmake b/packages/ptc/Makefile.fpc.fpcmake
index 24363fcf93..e5edd39300 100644
--- a/packages/ptc/Makefile.fpc.fpcmake
+++ b/packages/ptc/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=ptc
-version=2.7.1
+version=3.1.1
[target]
units=ptc ptcwrapper ptceventqueue
diff --git a/packages/ptc/examples/Makefile b/packages/ptc/examples/Makefile
index 37df6cb051..5db6b27a2c 100644
--- a/packages/ptc/examples/Makefile
+++ b/packages/ptc/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=ptc-examples
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
ifeq ($(FULL_TARGET),i386-linux)
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 ptcgl ptcgl2
endif
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
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-aros)
+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),m68k-linux)
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 ptcgl ptcgl2
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-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),x86_64-dragonfly)
+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),arm-linux)
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 ptcgl ptcgl2
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
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 ptcgl ptcgl2
endif
+ifeq ($(FULL_TARGET),mipsel-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),mipsel-android)
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
@@ -612,6 +627,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_UNITDIR+=../$(UNITTARGETDIRPREFIX)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_UNITDIR+=../$(UNITTARGETDIRPREFIX)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_UNITDIR+=../$(UNITTARGETDIRPREFIX)
endif
@@ -699,6 +717,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_UNITDIR+=../$(UNITTARGETDIRPREFIX)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_UNITDIR+=../$(UNITTARGETDIRPREFIX)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_UNITDIR+=../$(UNITTARGETDIRPREFIX)
endif
@@ -753,6 +774,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_UNITDIR+=../$(UNITTARGETDIRPREFIX)
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_UNITDIR+=../$(UNITTARGETDIRPREFIX)
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_UNITDIR+=../$(UNITTARGETDIRPREFIX)
endif
@@ -1007,6 +1031,12 @@ 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=
@@ -1052,6 +1082,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1636,6 +1671,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_HERMES=1
REQUIRE_PACKAGES_PTC=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
+REQUIRE_PACKAGES_HERMES=1
+REQUIRE_PACKAGES_PTC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1932,6 +1977,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_HERMES=1
REQUIRE_PACKAGES_PTC=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
+REQUIRE_PACKAGES_HERMES=1
+REQUIRE_PACKAGES_PTC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2117,6 +2172,16 @@ REQUIRE_PACKAGES_HERMES=1
REQUIRE_PACKAGES_PTC=1
REQUIRE_PACKAGES_X11=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
+REQUIRE_PACKAGES_HERMES=1
+REQUIRE_PACKAGES_PTC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2612,7 +2677,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2642,17 +2707,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/ptc/examples/Makefile.fpc b/packages/ptc/examples/Makefile.fpc
index cc5f248238..421877d523 100644
--- a/packages/ptc/examples/Makefile.fpc
+++ b/packages/ptc/examples/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=ptc-examples
-version=2.7.1
+version=3.1.1
[target]
programs=area buffer clear clip con_info console fire \
diff --git a/packages/ptc/fpmake.pp b/packages/ptc/fpmake.pp
index cbb0a92e44..9fdb7ade2e 100644
--- a/packages/ptc/fpmake.pp
+++ b/packages/ptc/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Nikolay Nikolov, Glenn Fiedler, Christian Nentwich';
P.License := 'LGPL with modification, ';
diff --git a/packages/pthreads/Makefile b/packages/pthreads/Makefile
index 0d0ff25d98..fd2d8c8b72 100644
--- a/packages/pthreads/Makefile
+++ b/packages/pthreads/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=pthreads
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/pthreads/Makefile.fpc b/packages/pthreads/Makefile.fpc
index 2e23edd114..79b3d27fef 100644
--- a/packages/pthreads/Makefile.fpc
+++ b/packages/pthreads/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=pthreads
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/pthreads/Makefile.fpc.fpcmake b/packages/pthreads/Makefile.fpc.fpcmake
index 16776d0542..d87f3c3eef 100644
--- a/packages/pthreads/Makefile.fpc.fpcmake
+++ b/packages/pthreads/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=pthreads
-version=2.7.1
+version=3.1.1
[target]
units=pthreads
diff --git a/packages/pthreads/fpmake.pp b/packages/pthreads/fpmake.pp
index d1112b73c9..82de9a0b07 100644
--- a/packages/pthreads/fpmake.pp
+++ b/packages/pthreads/fpmake.pp
@@ -16,8 +16,8 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
- P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,aix];
+ P.Version:='3.1.1';
+ P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,aix,dragonfly];
P.SourcePath.Add('src');
P.IncludePath.Add('src');
diff --git a/packages/pxlib/Makefile b/packages/pxlib/Makefile
index 9a3ebf7358..f6be1a3031 100644
--- a/packages/pxlib/Makefile
+++ b/packages/pxlib/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=pxlib
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/pxlib/Makefile.fpc b/packages/pxlib/Makefile.fpc
index 70192461aa..1cf7627654 100644
--- a/packages/pxlib/Makefile.fpc
+++ b/packages/pxlib/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=pxlib
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/pxlib/Makefile.fpc.fpcmake b/packages/pxlib/Makefile.fpc.fpcmake
index e4ecf8e182..05d0925993 100644
--- a/packages/pxlib/Makefile.fpc.fpcmake
+++ b/packages/pxlib/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=pxlib
-version=2.7.1
+version=3.1.1
[target]
units_beos=pxlib
diff --git a/packages/pxlib/examples/Makefile b/packages/pxlib/examples/Makefile
index 19eea27f7b..dafb0dac70 100644
--- a/packages/pxlib/examples/Makefile
+++ b/packages/pxlib/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -649,6 +655,12 @@ 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=
@@ -694,6 +706,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1253,6 +1270,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_PXLIB=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
+REQUIRE_PACKAGES_PXLIB=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1514,6 +1540,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_PXLIB=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
+REQUIRE_PACKAGES_PXLIB=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1676,6 +1711,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_PXLIB=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
+REQUIRE_PACKAGES_PXLIB=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2091,7 +2135,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2121,17 +2165,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/pxlib/fpmake.pp b/packages/pxlib/fpmake.pp
index b92bbaf657..0ef3e8414f 100644
--- a/packages/pxlib/fpmake.pp
+++ b/packages/pxlib/fpmake.pp
@@ -15,8 +15,8 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.OSes:=[Linux,beos,haiku,win32,freebsd,openbsd,netbsd];
- P.Version:='2.7.1';
+ P.OSes:=[Linux,beos,haiku,win32,freebsd,openbsd,netbsd,dragonfly];
+ P.Version:='3.1.1';
T:=P.Targets.AddUnit('src/pxlib.pp');
T:=P.Targets.AddExampleunit('examples/ppxview.pp');
{$ifndef ALLPACKAGES}
diff --git a/packages/regexpr/Makefile b/packages/regexpr/Makefile
index cc6f111042..8aa8debb11 100644
--- a/packages/regexpr/Makefile
+++ b/packages/regexpr/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=regexpr
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/regexpr/Makefile.fpc b/packages/regexpr/Makefile.fpc
index 97dc02bc63..f4d2fda69c 100644
--- a/packages/regexpr/Makefile.fpc
+++ b/packages/regexpr/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=regexpr
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/regexpr/Makefile.fpc.fpcmake b/packages/regexpr/Makefile.fpc.fpcmake
index 8884ed8ee3..f93187234b 100644
--- a/packages/regexpr/Makefile.fpc.fpcmake
+++ b/packages/regexpr/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=regexpr
-version=2.7.1
+version=3.1.1
[target]
units=regex regexpr oldregexpr
diff --git a/packages/regexpr/examples/Makefile b/packages/regexpr/examples/Makefile
index a4d46ab9d5..451336fca6 100644
--- a/packages/regexpr/examples/Makefile
+++ b/packages/regexpr/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=testreg1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=testreg1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=testreg1
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=testreg1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=testreg1
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=testreg1
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=testreg1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=testreg1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=testreg1
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_REGEXPR=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
+REQUIRE_PACKAGES_REGEXPR=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_REGEXPR=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
+REQUIRE_PACKAGES_REGEXPR=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_REGEXPR=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
+REQUIRE_PACKAGES_REGEXPR=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/regexpr/fpmake.pp b/packages/regexpr/fpmake.pp
index 2b86daf6e2..e47443c594 100644
--- a/packages/regexpr/fpmake.pp
+++ b/packages/regexpr/fpmake.pp
@@ -13,10 +13,12 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('regexpr');
+ P.ShortName:='reg';
+ P.Description := 'Library for working with regular expressions.';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes:=P.OSes-[embedded];
P.Dependencies.Add('rtl-objpas');
P.SourcePath.Add('src');
diff --git a/packages/regexpr/src/regexpr.pas b/packages/regexpr/src/regexpr.pas
index e267918248..e678627fed 100644
--- a/packages/regexpr/src/regexpr.pas
+++ b/packages/regexpr/src/regexpr.pas
@@ -227,11 +227,11 @@ type
regmust : PRegExprChar; // string (pointer into program) that match must include, or nil
regmlen : PtrInt; // length of regmust string
// Regstart and reganch permit very fast decisions on suitable starting points
- // for a match, cutting down the work a lot. Regmust permits fast rejection
- // of lines that cannot possibly match. The regmust tests are costly enough
+ // for a match, cutting down the work a lot. Regmust permits fast rejection
+ // of lines that cannot possibly match. The regmust tests are costly enough
// that regcomp() supplies a regmust only if the r.e. contains something
// potentially expensive (at present, the only such thing detected is * or +
- // at the start of the r.e., which can involve a lot of backup). Regmlen is
+ // at the start of the r.e., which can involve a lot of backup). Regmlen is
// supplied because the test in regexec() needs it and regcomp() is computing
// it anyway.
{$IFDEF UseFirstCharSet} //###0.929
@@ -256,17 +256,17 @@ type
// programm is essentially a linear encoding
// of a nondeterministic finite-state machine (aka syntax charts or
- // "railroad normal form" in parsing technology). Each node is an opcode
- // plus a "next" pointer, possibly plus an operand. "Next" pointers of
+ // "railroad normal form" in parsing technology). Each node is an opcode
+ // plus a "next" pointer, possibly plus an operand. "Next" pointers of
// all nodes except BRANCH implement concatenation; a "next" pointer with
- // a BRANCH on both ends of it is connecting two alternatives. (Here we
- // have one of the subtle syntax dependencies: an individual BRANCH (as
+ // a BRANCH on both ends of it connects two alternatives. (Here we
+ // have one of the subtle syntax dependencies: an individual BRANCH (as
// opposed to a collection of them) is never concatenated with anything
- // because of operator precedence.) The operand of some types of node is
- // a literal string; for others, it is a node leading into a sub-FSM. In
+ // because of operator precedence.) The operand of some types of node is
+ // a literal string; for others, it is a node leading into a sub-FSM. In
// particular, the operand of a BRANCH node is the first node of the branch.
- // (NB this is *not* a tree structure: the tail of the branch connects
- // to the thing following the set of BRANCHes.) The opcodes are:
+ // (NB this is *not* a tree structure: the tail of the branch connects
+ // to the thing following the set of BRANCHes.) The opcodes are:
programm : PRegExprChar; // Unwarranted chumminess with compiler.
fExpression : PRegExprChar; // source of compiled r.e.
@@ -290,83 +290,83 @@ type
fLineSeparatorsSet : set of REChar;
{$ENDIF}
+ // Mark programm as having to be [re]compiled
procedure InvalidateProgramm;
- // Mark programm as have to be [re]compiled
- function IsProgrammOk : boolean; //###0.941
// Check if we can use precompiled r.e. or
// [re]compile it if something changed
+ function IsProgrammOk : boolean; //###0.941
function GetExpression : RegExprString;
procedure SetExpression (const s : RegExprString);
function GetModifierStr : RegExprString;
- class function ParseModifiersStr (const AModifiers : RegExprString;
- var AModifiersInt : integer) : boolean; //###0.941 class function now
// Parse AModifiers string and return true and set AModifiersInt
// if it's in format 'ismxrg-ismxrg'.
+ class function ParseModifiersStr (const AModifiers : RegExprString;
+ var AModifiersInt : integer) : boolean; //###0.941 class function now
procedure SetModifierStr (const AModifiers : RegExprString);
function GetModifier (AIndex : integer) : boolean;
procedure SetModifier (AIndex : integer; ASet : boolean);
- procedure Error (AErrorID : integer); virtual; // error handler.
- // Default handler raise exception ERegExpr with
+ // Default handler raises exception ERegExpr with
// Message = ErrorMsg (AErrorID), ErrorCode = AErrorID
// and CompilerErrorPos = value of property CompilerErrorPos.
+ procedure Error (AErrorID : integer); virtual; // error handler.
{==================== Compiler section ===================}
- function CompileRegExpr (exp : PRegExprChar) : boolean;
// compile a regular expression into internal code
+ function CompileRegExpr (exp : PRegExprChar) : boolean;
- procedure Tail (p : PRegExprChar; val : PRegExprChar);
// set the next-pointer at the end of a node chain
+ procedure Tail (p : PRegExprChar; val : PRegExprChar);
- procedure OpTail (p : PRegExprChar; val : PRegExprChar);
// regoptail - regtail on operand of first argument; nop if operandless
+ procedure OpTail (p : PRegExprChar; val : PRegExprChar);
- function EmitNode (op : TREOp) : PRegExprChar;
// regnode - emit a node, return location
+ function EmitNode (op : TREOp) : PRegExprChar;
- procedure EmitC (b : REChar);
// emit (if appropriate) a byte of code
+ procedure EmitC (b : REChar);
- procedure InsertOperator (op : TREOp; opnd : PRegExprChar; sz : integer); //###0.90
// insert an operator in front of already-emitted operand
// Means relocating the operand.
+ procedure InsertOperator (op : TREOp; opnd : PRegExprChar; sz : integer); //###0.90
- function ParseReg (paren : integer; var flagp : integer) : PRegExprChar;
// regular expression, i.e. main body or parenthesized thing
+ function ParseReg (paren : integer; var flagp : integer) : PRegExprChar;
- function ParseBranch (var flagp : integer) : PRegExprChar;
// one alternative of an | operator
+ function ParseBranch (var flagp : integer) : PRegExprChar;
- function ParsePiece (var flagp : integer) : PRegExprChar;
// something followed by possible [*+?]
+ function ParsePiece (var flagp : integer) : PRegExprChar;
- function ParseAtom (var flagp : integer) : PRegExprChar;
// the lowest level
+ function ParseAtom (var flagp : integer) : PRegExprChar;
- function GetCompilerErrorPos : PtrInt;
// current pos in r.e. - for error hanling
+ function GetCompilerErrorPos : PtrInt;
{$IFDEF UseFirstCharSet} //###0.929
procedure FillFirstCharSet (prog : PRegExprChar);
{$ENDIF}
{===================== Matching section ===================}
- function regrepeat (p : PRegExprChar; AMax : PtrInt) : PtrInt;
// repeatedly match something simple, report how many
+ function regrepeat (p : PRegExprChar; AMax : PtrInt) : PtrInt;
- function regnext (p : PRegExprChar) : PRegExprChar;
// dig the "next" pointer out of a node
+ function regnext (p : PRegExprChar) : PRegExprChar;
- function MatchPrim (prog : PRegExprChar) : boolean;
// recursively matching routine
+ function MatchPrim (prog : PRegExprChar) : boolean;
- function ExecPrim (AOffset: PtrInt) : boolean;
// Exec for stored InputString
+ function ExecPrim (AOffset: PtrInt) : boolean;
{$IFDEF RegExpPCodeDump}
function DumpOp (op : REChar) : RegExprString;
@@ -395,7 +395,6 @@ type
class function VersionMajor : integer; //###0.944
class function VersionMinor : integer; //###0.944
- property Expression : RegExprString read GetExpression write SetExpression;
// Regular expression.
// For optimization, TRegExpr will automatically compiles it into 'P-code'
// (You can see it with help of Dump method) and stores in internal
@@ -405,77 +404,77 @@ type
// after last [re]compilation.
// If any errors while [re]compilation occures, Error method is called
// (by default Error raises exception - see below)
+ property Expression : RegExprString read GetExpression write SetExpression;
- property ModifierStr : RegExprString read GetModifierStr write SetModifierStr;
// Set/get default values of r.e.syntax modifiers. Modifiers in
// r.e. (?ismx-ismx) will replace this default values.
// If you try to set unsupported modifier, Error will be called
// (by defaul Error raises exception ERegExpr).
+ property ModifierStr : RegExprString read GetModifierStr write SetModifierStr;
- property ModifierI : boolean index 1 read GetModifier write SetModifier;
// Modifier /i - caseinsensitive, initialized from RegExprModifierI
+ property ModifierI : boolean index 1 read GetModifier write SetModifier;
- property ModifierR : boolean index 2 read GetModifier write SetModifier;
// Modifier /r - use r.e.syntax extended for russian,
// (was property ExtSyntaxEnabled in previous versions)
// If true, then а-Ñ additional include russian letter 'Ñ‘',
// Ð-Я additional include 'Ð', and а-Я include all russian symbols.
- // You have to turn it off if it may interfere with you national alphabet.
+ // You have to turn it off if it can interfere with you national alphabet.
// , initialized from RegExprModifierR
+ property ModifierR : boolean index 2 read GetModifier write SetModifier;
- property ModifierS : boolean index 3 read GetModifier write SetModifier;
// Modifier /s - '.' works as any char (else as [^\n]),
// , initialized from RegExprModifierS
+ property ModifierS : boolean index 3 read GetModifier write SetModifier;
- property ModifierG : boolean index 4 read GetModifier write SetModifier;
// Switching off modifier /g switchs all operators in
// non-greedy style, so if ModifierG = False, then
// all '*' works as '*?', all '+' as '+?' and so on.
// , initialized from RegExprModifierG
+ property ModifierG : boolean index 4 read GetModifier write SetModifier;
- property ModifierM : boolean index 5 read GetModifier write SetModifier;
// Treat string as multiple lines. That is, change `^' and `$' from
// matching at only the very start or end of the string to the start
// or end of any line anywhere within the string.
// , initialized from RegExprModifierM
+ property ModifierM : boolean index 5 read GetModifier write SetModifier;
- property ModifierX : boolean index 6 read GetModifier write SetModifier;
// Modifier /x - eXtended syntax, allow r.e. text formatting,
// see description in the help. Initialized from RegExprModifierX
+ property ModifierX : boolean index 6 read GetModifier write SetModifier;
+ // match a programm against a string AInputString
+ // !!! Exec store AInputString into InputString property
+ // For Delphi 5 and higher available overloaded versions - first without
+ // parameter (uses already assigned to InputString property value)
+ // and second that has PtrInt parameter and is same as ExecPos
function Exec (const AInputString : RegExprString) : boolean; {$IFDEF OverMeth} overload;
{$IFNDEF FPC} // I do not know why FreePascal cannot overload methods with empty param list
function Exec : boolean; overload; //###0.949
{$ENDIF}
function Exec (AOffset: PtrInt) : boolean; overload; //###0.949
{$ENDIF}
- // match a programm against a string AInputString
- // !!! Exec store AInputString into InputString property
- // For Delphi 5 and higher available overloaded versions - first without
- // parameter (uses already assigned to InputString property value)
- // and second that has PtrInt parameter and is same as ExecPos
- function ExecNext : boolean;
// find next match:
// ExecNext;
- // works same as
+ // works the same as
// if MatchLen [0] = 0 then ExecPos (MatchPos [0] + 1)
// else ExecPos (MatchPos [0] + MatchLen [0]);
// but it's more simpler !
// Raises exception if used without preceeding SUCCESSFUL call to
// Exec* (Exec, ExecPos, ExecNext). So You always must use something like
// if Exec (InputString) then repeat { proceed results} until not ExecNext;
+ function ExecNext : boolean;
- function ExecPos (AOffset: PtrInt {$IFDEF DefParam}= 1{$ENDIF}) : boolean;
// find match for InputString starting from AOffset position
// (AOffset=1 - first char of InputString)
+ function ExecPos (AOffset: PtrInt {$IFDEF DefParam}= 1{$ENDIF}) : boolean;
- property InputString : RegExprString read GetInputString write SetInputString;
// returns current input string (from last Exec call or last assign
// to this property).
// Any assignment to this property clear Match* properties !
+ property InputString : RegExprString read GetInputString write SetInputString;
- function Substitute (const ATemplate : RegExprString) : RegExprString;
// Returns ATemplate with '$&' or '$0' replaced by whole r.e.
// occurence and '$n' replaced by occurence of subexpression #n.
// Since v.0.929 '$' used instead of '\' (for future extensions
@@ -486,10 +485,11 @@ type
// n with curly braces '{}'.
// Example: 'a$12bc' -> 'a<Match[12]>bc'
// 'a${1}2bc' -> 'a<Match[1]>2bc'.
+ function Substitute (const ATemplate : RegExprString) : RegExprString;
- procedure Split (AInputStr : RegExprString; APieces : TStrings);
// Split AInputStr into APieces by r.e. occurencies
// Internally calls Exec[Next]
+ procedure Split (AInputStr : RegExprString; APieces : TStrings);
function Replace (AInputStr : RegExprString;
const AReplaceStr : RegExprString;
@@ -499,9 +499,6 @@ type
AReplaceFunc : TRegExprReplaceFunction)
: RegExprString; overload;
{$ENDIF}
- function ReplaceEx (AInputStr : RegExprString;
- AReplaceFunc : TRegExprReplaceFunction)
- : RegExprString;
// Returns AInputStr with r.e. occurencies replaced by AReplaceStr
// If AUseSubstitution is true, then AReplaceStr will be used
// as template for Substitution methods.
@@ -513,9 +510,11 @@ type
// will return: def "$1" value "$2"
// Internally calls Exec[Next]
// Overloaded version and ReplaceEx operate with call-back function,
- // so You can implement really complex functionality.
+ // so you can implement really complex functionality.
+ function ReplaceEx (AInputStr : RegExprString;
+ AReplaceFunc : TRegExprReplaceFunction):
+ RegExprString;
- property SubExprMatchCount : integer read GetSubExprMatchCount;
// Number of subexpressions has been found in last Exec* call.
// If there are no subexpr. but whole expr was found (Exec* returned True),
// then SubExprMatchCount=0, if no subexpressions nor whole
@@ -528,69 +527,70 @@ type
// Exec ('23'): SubExprMatchCount=2, Match[0]='23', [1]='', [2]='3'
// Exec ('2'): SubExprMatchCount=0, Match[0]='2'
// Exec ('7') - return False: SubExprMatchCount=-1
+ property SubExprMatchCount : integer read GetSubExprMatchCount;
- property MatchPos [Idx : integer] : PtrInt read GetMatchPos;
// pos of entrance subexpr. #Idx into tested in last Exec*
- // string. First subexpr. have Idx=1, last - MatchCount,
- // whole r.e. have Idx=0.
+ // string. First subexpr. has Idx=1, last - MatchCount,
+ // whole r.e. has Idx=0.
// Returns -1 if in r.e. no such subexpr. or this subexpr.
// not found in input string.
+ property MatchPos [Idx : integer] : PtrInt read GetMatchPos;
- property MatchLen [Idx : integer] : PtrInt read GetMatchLen;
// len of entrance subexpr. #Idx r.e. into tested in last Exec*
- // string. First subexpr. have Idx=1, last - MatchCount,
- // whole r.e. have Idx=0.
+ // string. First subexpr. has Idx=1, last - MatchCount,
+ // whole r.e. has Idx=0.
// Returns -1 if in r.e. no such subexpr. or this subexpr.
// not found in input string.
// Remember - MatchLen may be 0 (if r.e. match empty string) !
+ property MatchLen [Idx : integer] : PtrInt read GetMatchLen;
- property Match [Idx : integer] : RegExprString read GetMatch;
// == copy (InputString, MatchPos [Idx], MatchLen [Idx])
// Returns '' if in r.e. no such subexpr. or this subexpr.
// not found in input string.
+ property Match [Idx : integer] : RegExprString read GetMatch;
- function LastError : integer;
// Returns ID of last error, 0 if no errors (unusable if
// Error method raises exception) and clear internal status
// into 0 (no errors).
+ function LastError : integer;
- function ErrorMsg (AErrorID : integer) : RegExprString; virtual;
// Returns Error message for error with ID = AErrorID.
+ function ErrorMsg (AErrorID : integer) : RegExprString; virtual;
- property CompilerErrorPos : PtrInt read GetCompilerErrorPos;
- // Returns pos in r.e. there compiler stopped.
+ // Returns position in r.e. where compiler stopped.
// Useful for error diagnostics
+ property CompilerErrorPos : PtrInt read GetCompilerErrorPos;
- property SpaceChars : RegExprString read fSpaceChars write fSpaceChars; //###0.927
// Contains chars, treated as /s (initially filled with RegExprSpaceChars
// global constant)
+ property SpaceChars : RegExprString read fSpaceChars write fSpaceChars; //###0.927
- property WordChars : RegExprString read fWordChars write fWordChars; //###0.929
// Contains chars, treated as /w (initially filled with RegExprWordChars
// global constant)
+ property WordChars : RegExprString read fWordChars write fWordChars; //###0.929
- property LineSeparators : RegExprString read fLineSeparators write SetLineSeparators; //###0.941
// line separators (like \n in Unix)
+ property LineSeparators : RegExprString read fLineSeparators write SetLineSeparators; //###0.941
- property LinePairedSeparator : RegExprString read GetLinePairedSeparator write SetLinePairedSeparator; //###0.941
// paired line separator (like \r\n in DOS and Windows).
// must contain exactly two chars or no chars at all
+ property LinePairedSeparator : RegExprString read GetLinePairedSeparator write SetLinePairedSeparator; //###0.941
- class function InvertCaseFunction (const Ch : REChar) : REChar;
// Converts Ch into upper case if it in lower case or in lower
// if it in upper (uses current system local setings)
+ class function InvertCaseFunction (const Ch : REChar) : REChar;
- property InvertCase : TRegExprInvertCaseFunction read fInvertCase write fInvertCase; //##0.935
// Set this property if you want to override case-insensitive functionality.
// Create set it to RegExprInvertCaseFunction (InvertCaseFunction by default)
+ property InvertCase : TRegExprInvertCaseFunction read fInvertCase write fInvertCase; //##0.935
- procedure Compile; //###0.941
// [Re]compile r.e. Useful for example for GUI r.e. editors (to check
// all properties validity).
+ procedure Compile; //###0.941
{$IFDEF RegExpPCodeDump}
- function Dump : RegExprString;
// dump a compiled regexp in vaguely comprehensible form
+ function Dump : RegExprString;
{$ENDIF}
end;
@@ -601,18 +601,16 @@ type
end;
const
+ // default for InvertCase property:
RegExprInvertCaseFunction : TRegExprInvertCaseFunction = {$IFDEF FPC} nil {$ELSE} TRegExpr.InvertCaseFunction{$ENDIF};
- // defaul for InvertCase property
-function ExecRegExpr (const ARegExpr, AInputStr : RegExprString) : boolean;
// true if string AInputString match regular expression ARegExpr
// ! will raise exeption if syntax errors in ARegExpr
+function ExecRegExpr (const ARegExpr, AInputStr : RegExprString) : boolean;
-procedure SplitRegExpr (const ARegExpr, AInputStr : RegExprString; APieces : TStrings);
// Split AInputStr into APieces by r.e. ARegExpr occurencies
+procedure SplitRegExpr (const ARegExpr, AInputStr : RegExprString; APieces : TStrings);
-function ReplaceRegExpr (const ARegExpr, AInputStr, AReplaceStr : RegExprString;
- AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) : RegExprString; //###0.947
// Returns AInputStr with r.e. occurencies replaced by AReplaceStr
// If AUseSubstitution is true, then AReplaceStr will be used
// as template for Substitution methods.
@@ -623,15 +621,14 @@ function ReplaceRegExpr (const ARegExpr, AInputStr, AReplaceStr : RegExprString;
// ReplaceRegExpr ('({-i}block|var)\s*\(\s*([^ ]*)\s*\)\s*',
// 'BLOCK( test1)', 'def "$1" value "$2"')
// will return: def "$1" value "$2"
+function ReplaceRegExpr (const ARegExpr, AInputStr, AReplaceStr : RegExprString;
+ AUseSubstitution : boolean{$IFDEF DefParam}= False{$ENDIF}) : RegExprString; //###0.947
-function QuoteRegExprMetaChars (const AStr : RegExprString) : RegExprString;
// Replace all metachars with its safe representation,
// for example 'abc$cd.(' converts into 'abc\$cd\.\('
// This function useful for r.e. autogeneration from
// user input
-
-function RegExprSubExpressions (const ARegExpr : string;
- ASubExprs : TStrings; AExtendedSyntax : boolean{$IFDEF DefParam}= False{$ENDIF}) : PtrInt;
+function QuoteRegExprMetaChars (const AStr : RegExprString) : RegExprString;
// Makes list of subexpressions found in ARegExpr r.e.
// In ASubExps every item represent subexpression,
// from first to last, in format:
@@ -652,6 +649,8 @@ function RegExprSubExpressions (const ARegExpr : string;
// n At position n was found closing bracket ')' without
// corresponding opening '('.
// If Result <> 0, then ASubExpr can contain empty items or illegal ones
+function RegExprSubExpressions (const ARegExpr : string;
+ ASubExprs : TStrings; AExtendedSyntax : boolean{$IFDEF DefParam}= False{$ENDIF}) : PtrInt;
implementation
@@ -667,9 +666,9 @@ uses
{$ENDIF}
const
+ // TRegExpr.VersionMajor/Minor return values of these constants:
TRegExprVersionMajor : integer = 0;
TRegExprVersionMinor : integer = 952;
- // TRegExpr.VersionMajor/Minor return values of this constants
MaskModI = 1; // modifier /i bit in fModifiers
MaskModR = 2; // -"- /r
@@ -863,7 +862,7 @@ function RegExprSubExpressions (const ARegExpr : string;
Len := length (ARegExpr); // some optimization tricks
// first we have to calculate number of subexpression to reserve
- // space in Stack array (may be we'll reserve more then need, but
+ // space in Stack array (may be we'll reserve more than needed, but
// it's faster then memory reallocation during parsing)
StackSz := 1; // add 1 for entire r.e.
for i := 1 to Len do
@@ -1029,7 +1028,7 @@ const
// !!! Don't add new OpCodes after CLOSE !!!
-// We work with p-code thru pointers, compatible with PRegExprChar.
+// We work with p-code through pointers, compatible with PRegExprChar.
// Note: all code components (TRENextOff, TREOp, TREBracesArg, etc)
// must have lengths that can be divided by SizeOf (REChar) !
// A node is TREOp of opcode followed Next "pointer" of TRENextOff type.
@@ -1042,9 +1041,9 @@ const
//
// BRANCH The set of branches constituting a single choice are hooked
// together with their "next" pointers, since precedence prevents
-// anything being concatenated to any individual branch. The
+// anything being concatenated to any individual branch. The
// "next" pointer of the last BRANCH in a choice points to the
-// thing following the whole choice. This is also where the
+// thing following the whole choice. This is also where the
// final "next" pointer of each individual branch points; each
// branch starts with the operand node of a BRANCH node.
// BACK Normal "next" pointers all implicitly point forward; BACK
@@ -1649,14 +1648,14 @@ const
{$ENDIF}
function TRegExpr.CompileRegExpr (exp : PRegExprChar) : boolean;
-// compile a regular expression into internal code
+// Compile a regular expression into internal code
// We can't allocate space until we know how big the compiled form will be,
// but we can't compile it (and thus know how big it is) until we've got a
-// place to put the code. So we cheat: we compile it twice, once with code
+// place to put the code. So we cheat: we compile it twice, once with code
// generation turned off and size counting turned on, and once "for real".
// This also means that we don't allocate space until we are sure that the
// thing really will compile successfully, and we never have to move the
-// code and thus invalidate pointers into it. (Note that it has to be in
+// code and thus invalidate pointers into it. (Note that it has to be in
// one piece because free() must be able to free it all.)
// Beware that the optimization-preparation code in here knows about some
// of the structure of the compiled regexp.
@@ -1726,10 +1725,10 @@ function TRegExpr.CompileRegExpr (exp : PRegExprChar) : boolean;
then inc (reganch);
// If there's something expensive in the r.e., find the longest
- // literal string that must appear and make it the regmust. Resolve
+ // literal string that must appear and make it the regmust. Resolve
// ties in favor of later strings, since the regstart check works
// with the beginning of the r.e. and avoiding duplication
- // strengthens checking. Not a strong reason, but sufficient in the
+ // strengthens checking. Not a strong reason, but sufficient in the
// absence of others.
if (flags and SPSTART) <> 0 then begin
longest := nil;
@@ -2100,7 +2099,7 @@ function TRegExpr.ParseAtom (var flagp : integer) : PRegExprChar;
// the lowest level
// Optimization: gobbles an entire sequence of ordinary characters so that
// it can turn them into a single node, which is smaller to store and
-// faster to run. Backslashed characters are exceptions, each becoming a
+// faster to run. Backslashed characters are exceptions, each becoming a
// separate node; the code is simpler that way and it's not worth fixing.
var
ret : PRegExprChar;
@@ -2271,13 +2270,13 @@ function TRegExpr.ParseAtom (var flagp : integer) : PRegExprChar;
function UnQuoteChar (var APtr : PRegExprChar) : REChar; //###0.934
begin
case APtr^ of
- 't': Result := #$9; // tab (HT/TAB)
- 'n': Result := #$a; // newline (NL)
- 'r': Result := #$d; // car.return (CR)
- 'f': Result := #$c; // form feed (FF)
- 'a': Result := #$7; // alarm (bell) (BEL)
- 'e': Result := #$1b; // escape (ESC)
- 'x': begin // hex char
+ 't': Result := #$9; // \t => tab (HT/TAB)
+ 'n': Result := #$a; // \n => newline (NL)
+ 'r': Result := #$d; // \r => carriage return (CR)
+ 'f': Result := #$c; // \f => form feed (FF)
+ 'a': Result := #$7; // \a => alarm (bell) (BEL)
+ 'e': Result := #$1b; // \e => escape (ESC)
+ 'x': begin // \x: hex char
Result := #0;
inc (APtr);
if APtr^ = #0 then begin
@@ -2842,7 +2841,7 @@ function TRegExpr.MatchPrim (prog : PRegExprChar) : boolean;
// recursively matching routine
// Conceptually the strategy is simple: check to see whether the current
// node matches, call self recursively to see whether the rest matches,
-// and then act accordingly. In practice we make some effort to avoid
+// and then act accordingly. In practice we make some effort to avoid
// recursion, in particular by going through "ordinary" nodes (that don't
// need to know whether the rest of the match failed) by a loop instead of
// by recursion.
@@ -3582,7 +3581,7 @@ function TRegExpr.ExecPrim (AOffset: PtrInt) : boolean;
inc (s);
until false;
(* optimized and fixed by Martin Fuller - empty strings
- were not allowed to pass thru in UseFirstCharSet mode
+ were not allowed to pass through in UseFirstCharSet mode
{$IFDEF UseFirstCharSet} //###0.929
while s^ <> #0 do begin
if s^ in FirstCharSet
diff --git a/packages/rexx/Makefile b/packages/rexx/Makefile
index adc010fe07..e24920f67f 100644
--- a/packages/rexx/Makefile
+++ b/packages/rexx/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=rexx
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/rexx/Makefile.fpc b/packages/rexx/Makefile.fpc
index 1cbb74a078..3798ad915b 100644
--- a/packages/rexx/Makefile.fpc
+++ b/packages/rexx/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=rexx
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/rexx/Makefile.fpc.fpcmake b/packages/rexx/Makefile.fpc.fpcmake
index 1b11081fc5..a035b363a4 100644
--- a/packages/rexx/Makefile.fpc.fpcmake
+++ b/packages/rexx/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=rexx
-version=2.7.1
+version=3.1.1
[target]
units=rexxsaa
diff --git a/packages/rexx/examples/Makefile b/packages/rexx/examples/Makefile
index e691bd1d0f..78175e827e 100644
--- a/packages/rexx/examples/Makefile
+++ b/packages/rexx/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=callrexx
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=callrexx
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=callrexx
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=callrexx
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=callrexx
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=callrexx
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=callrexx
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=callrexx
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=callrexx
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_REXX=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
+REQUIRE_PACKAGES_REXX=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_REXX=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
+REQUIRE_PACKAGES_REXX=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_REXX=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
+REQUIRE_PACKAGES_REXX=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/rexx/fpmake.pp b/packages/rexx/fpmake.pp
index 595e9b4c4b..5ed9df2a73 100644
--- a/packages/rexx/fpmake.pp
+++ b/packages/rexx/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.Oses:=[emx,os2];
p.Targets.AddUnit('rexxsaa.pp');
diff --git a/packages/rtl-console/Makefile b/packages/rtl-console/Makefile
index d462d15686..8e7054e19f 100644
--- a/packages/rtl-console/Makefile
+++ b/packages/rtl-console/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=rtl-console
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/rtl-console/Makefile.fpc b/packages/rtl-console/Makefile.fpc
index 085e838cfa..b6450df769 100644
--- a/packages/rtl-console/Makefile.fpc
+++ b/packages/rtl-console/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=rtl-console
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/rtl-console/Makefile.fpc.fpcmake b/packages/rtl-console/Makefile.fpc.fpcmake
index 6e862f001b..7630af2d80 100644
--- a/packages/rtl-console/Makefile.fpc.fpcmake
+++ b/packages/rtl-console/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=rtl-console
-version=2.7.1
+version=3.1.1
# all Unices support everything except QNX(nothing)
[target]
@@ -30,6 +30,7 @@ units_os2=crt video mouse keyboard
units_netware=crt video mouse keyboard
units_netwlibc=crt video mouse keyboard
units_morphos=video mouse keyboard
+units_aros=video mouse keyboard
[compiler]
includedir=src/$(OS_TARGET) src/inc
diff --git a/packages/rtl-console/fpmake.pp b/packages/rtl-console/fpmake.pp
index a9ce4796d4..a0acb8d506 100644
--- a/packages/rtl-console/fpmake.pp
+++ b/packages/rtl-console/fpmake.pp
@@ -13,10 +13,10 @@ Const
UnixLikes = AllUnixOSes -[QNX];
WinEventOSes = [win32,win64];
- KVMAll = [emx,go32v2,MorphOS,netware,netwlibc,os2,win32,win64]+UnixLikes;
+ KVMAll = [emx,go32v2,netware,netwlibc,os2,win32,win64]+UnixLikes+AllAmigaLikeOSes;
- // all full KVMers have crt too, except MorphOS
- CrtOSes = KVMALL+[msdos,WatCom]-[MorphOS];
+ // all full KVMers have crt too, except Amigalikes
+ CrtOSes = KVMALL+[msdos,WatCom]-[aros,morphos];
KbdOSes = KVMALL+[msdos];
VideoOSes = KVMALL;
MouseOSes = KVMALL;
@@ -34,8 +34,9 @@ begin
With Installer do
begin
P:=AddPackage('rtl-console');
+ P.ShortName:='rtlc';
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'FPC core team, Pierre Mueller, Peter Vreman';
P.License := 'LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
@@ -44,16 +45,21 @@ begin
P.Description := 'Rtl-console, console abstraction';
P.NeedLibC:= false;
P.Dependencies.Add('rtl-extra'); // linux,android gpm.
+ P.Dependencies.Add('morphunits',[morphos]);
+ P.Dependencies.Add('arosunits',[aros]);
+ P.Dependencies.Add('amunits',[amiga]);
P.SourcePath.Add('src/inc');
P.SourcePath.Add('src/$(OS)');
P.SourcePath.Add('src/darwin',[iphonesim]);
P.SourcePath.Add('src/unix',AllUnixOSes);
P.SourcePath.Add('src/os2commn',[os2,emx]);
+ P.SourcePath.Add('src/amicommon',AllAmigaLikeOSes);
P.SourcePath.Add('src/win',WinEventOSes);
P.IncludePath.Add('src/inc');
P.IncludePath.Add('src/unix',AllUnixOSes);
+ P.IncludePath.add('src/amicommon',AllAmigaLikeOSes);
P.IncludePath.Add('src/$(OS)');
P.IncludePath.Add('src/darwin',[iphonesim]);
@@ -82,7 +88,7 @@ begin
begin
AddInclude('videoh.inc');
AddInclude('video.inc');
- AddInclude('videodata.inc',[MorphOS]);
+ AddInclude('videodata.inc',AllAmigaLikeOSes);
AddInclude('convert.inc',AllUnixOSes);
AddInclude('nwsys.inc',[netware]);
end;
diff --git a/packages/rtl-console/src/amicommon/keyboard.pp b/packages/rtl-console/src/amicommon/keyboard.pp
new file mode 100644
index 0000000000..917414cb62
--- /dev/null
+++ b/packages/rtl-console/src/amicommon/keyboard.pp
@@ -0,0 +1,632 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2006 by Karoly Balogh
+
+ Keyboard unit for MorphOS and Amiga and AROS
+
+ 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 Keyboard;
+interface
+
+{$i keybrdh.inc}
+
+{
+ Amiga specific function, waits for a system event to occur on the
+ message port of the window. This is mainly used in Free Vision to
+ give up the Task's timeslice instead of dos.library/Delay() which
+ blocks the event handling and ruins proper window refreshing among
+ others
+ input: specify a timeout to wait for an event to arrive. this is the
+ maximum timeout. the function might return earlier or even
+ immediately if there's an event. it's specified in milliseconds
+ result: boolean if there is an incoming system event. false otherwise
+}
+
+function WaitForSystemEvent(millisec: Integer): boolean;
+
+implementation
+
+uses
+ video, exec, intuition, inputevent, mouse, sysutils, keymap, timer;
+
+{$i keyboard.inc}
+{$i keyscan.inc}
+var
+ LastShiftState : Byte; {set by handler for PollShiftStateEvent}
+ OldMouseX : LongInt;
+ OldmouseY : LongInt;
+ OldButtons: Word;
+
+procedure SysInitKeyboard;
+begin
+// writeln('sysinitkeyboard');
+{$IFDEF MORPHOS}
+ InitKeyMapLibrary;
+{$ENDIF}
+ LastShiftState := 0;
+ OldMouseX := -1;
+ OldmouseY := -1;
+ OldButtons := 0;
+end;
+
+procedure SysDoneKeyboard;
+begin
+
+end;
+
+function IsMsgPortEmpty(Port: PMsgPort): Boolean; inline;
+begin
+ IsMsgPortEmpty := (Port^.mp_MsgList.lh_TailPred = @(Port^.mp_MsgList));
+end;
+
+var
+ KeyQueue: TKeyEvent;
+
+type
+ RawCodeEntry = record
+ rc,n,s,c,a : Word; { raw code, normal, shift, ctrl, alt }
+ end;
+
+const
+ RCTABLE_MAXIDX = 24;
+ RawCodeTable : array[0..RCTABLE_MAXIDX] of RawCodeEntry =
+ (
+ (rc: 66; n: $0F09; s: $0F00; c: $9400; a: $A500; ), // TAB
+ (rc: 68; n: $1C0D; s: $1C0D; c: $1C0A; a: $1C0D; ), // Enter // shift, alt?
+ (rc: 69; n: $011B; s: $011B; c: $011B; a: $0100; ), // ESC // shift?
+ (rc: 70; n: $5300; s: $0700; c: $A300; a: $A200; ), // Delete
+ (rc: 71; n: $5200; s: $0500; c: $0400; a: $A200; ), // Insert
+ (rc: 72; n: $4900; s: $4900; c: $8400; a: $9900; ), // PgUP // shift?
+ (rc: 73; n: $5100; s: $5100; c: $7600; a: $A100; ), // PgDOWN // shift?
+
+ (rc: 76; n: $4800; s: $4800; c: $8D00; a: $9800; ), // UP // shift?
+ (rc: 77; n: $5000; s: $5000; c: $9100; a: $A000; ), // DOWN // shift?
+ (rc: 78; n: $4D00; s: $4D00; c: $7400; a: $9D00; ), // RIGHT // shift?
+ (rc: 79; n: $4B00; s: $4B00; c: $7300; a: $9B00; ), // LEFT // shift?
+
+ (rc: 80; n: $3B00; s: $5400; c: $5E00; a: $6800; ), // F1
+ (rc: 81; n: $3C00; s: $5500; c: $5F00; a: $6900; ), // F2
+ (rc: 82; n: $3D00; s: $5600; c: $6000; a: $6A00; ), // F3
+ (rc: 83; n: $3E00; s: $5700; c: $6100; a: $6B00; ), // F4
+ (rc: 84; n: $3F00; s: $5800; c: $6200; a: $6C00; ), // F5
+ (rc: 85; n: $4000; s: $5900; c: $6300; a: $6D00; ), // F6
+ (rc: 86; n: $4100; s: $5A00; c: $6400; a: $6E00; ), // F7
+ (rc: 87; n: $4200; s: $5B00; c: $6500; a: $6F00; ), // F8
+ (rc: 88; n: $4300; s: $5C00; c: $6600; a: $7000; ), // F9
+ (rc: 89; n: $4400; s: $5D00; c: $6700; a: $7100; ), // F10
+ (rc: 75; n: $8500; s: $8700; c: $8900; a: $8B00; ), // F11
+ (rc: 76; n: $8600; s: $8800; c: $8A00; a: $8C00; ), // F12
+
+ (rc: 112; n: $4700; s: $4700; c: $7700; a: $9700; ),// Home // shift?
+ (rc: 113; n: $4F00; s: $4F00; c: $7500; a: $9F00; ) // End // shift?
+ );
+
+function rcTableIdx(rc: LongInt): LongInt;
+var
+ Counter: LongInt;
+begin
+ rcTableIdx := -1;
+ Counter := 0;
+ while (RawCodeTable[Counter].rc <> rc) and (Counter <= RCTABLE_MAXIDX) do
+ Inc(Counter);
+ if (Counter <= RCTABLE_MAXIDX) then
+ rcTableIdx := Counter;
+end;
+
+function HasShift(IQual: Word): Boolean; inline;
+begin
+ HasShift := ((IQual and IEQUALIFIER_LSHIFT) <> 0) or
+ ((IQual and IEQUALIFIER_RSHIFT) <> 0);
+end;
+
+function HasCtrl(IQual: Word): Boolean; inline;
+begin
+ HasCtrl := ((IQual and IEQUALIFIER_CONTROL) <> 0);
+end;
+
+function HasAlt(IQual: Word): Boolean; inline;
+begin
+ HasAlt := ((IQual and IEQUALIFIER_LALT) <> 0) or
+ ((IQual and IEQUALIFIER_RALT) <> 0);
+end;
+
+function rcTableCode(IQual: Word; Idx: LongInt): LongInt;
+begin
+ if (Idx < 0) or (Idx > RCTABLE_MAXIDX) then
+ begin
+ rcTableCode := -1;
+ Exit;
+ end;
+
+ if HasShift(IQual) then
+ rcTableCode:=RawCodeTable[Idx].s
+ else
+ if HasCtrl(IQual) then
+ rcTableCode:=RawCodeTable[Idx].c
+ else
+ if HasAlt(IQual) then
+ rcTableCode:=RawCodeTable[Idx].a
+ else
+ rcTableCode:=RawCodeTable[Idx].n;
+end;
+
+procedure setShiftState(IQual: Word);
+begin
+ LastShiftState := 0;
+ if ((IQual and IEQUALIFIER_LSHIFT) <> 0) then
+ LastShiftState := LastShiftState or $01;
+ if ((IQual and IEQUALIFIER_RSHIFT) <> 0) then
+ LastShiftState := LastShiftState or $02;
+ if HasCtrl(IQual) then
+ LastShiftState := LastShiftState or $04;
+ if HasAlt(IQual) then
+ LastShiftState := LastShiftState or $08;
+ if ((IQual and IEQUALIFIER_NUMERICPAD) <> 0) then
+ LastShiftState := LastShiftState or $20;
+ if ((IQual and IEQUALIFIER_CAPSLOCK) <> 0) then
+ LastShiftState := LastShiftState or $40;
+end;
+
+function SysPollKeyEvent: TKeyEvent;
+var
+ MouseEvent: Boolean; // got a mouseevent -> do not leave cycle
+ SendMouse: Boolean; // we got a (or many) mouse move send the last one
+ mes: TMouseEvent; // save mouse message send after cycle -> prevent mouse move stacking
+ me: TMouseEvent;
+ KeyCode: LongInt;
+ OldKeyCode: LongInt;
+ KeySet: ^TKeyRecord; // points to result to set fields directly
+ Ret: LongInt;
+ //
+ iMsg: PIntuiMessage;
+ ICode: Word; // save items from Message
+ IQual: Word;
+ IClass: Longword;
+ MouseX: Integer;
+ MouseY: Integer;
+ KeyUp: Boolean; // Event is a key up event
+ Buff: array[0..19] of Char;
+ ie: TInputEvent; // for mapchar
+begin
+ KeyCode := 0;
+ SysPollKeyEvent := 0;
+ KeySet := @SysPollKeyEvent;
+ FillChar(me, SizeOf(TMouseEvent), 0);
+
+ if KeyQueue <> 0 then
+ begin
+ SysPollKeyEvent := KeyQueue;
+ Exit;
+ end;
+ SendMouse := False;
+ repeat
+ MouseEvent := False;
+ if VideoWindow <> nil then
+ begin
+ if IsMsgPortEmpty(videoWindow^.UserPort) then
+ Break;
+ end else
+ Exit;
+ PMessage(iMsg) := GetMsg(VideoWindow^.UserPort);
+ if (iMsg <> nil) then
+ begin
+ ICode := iMsg^.Code;
+ IQual := iMsg^.Qualifier;
+ IClass := iMsg^.iClass;
+ MouseX := iMsg^.MouseX;
+ MouseY := iMsg^.MouseY;
+ ReplyMsg(PMessage(iMsg)); // fast reply to system
+ SetShiftState(IQual); // set Shift state qualifiers. do this for all messages we get.
+ // main event case
+ case (IClass) of
+ IDCMP_ACTIVEWINDOW: begin
+ GotActiveWindow;
+ end;
+ IDCMP_INACTIVEWINDOW: begin
+ // force cursor off. we stop getting IntuiTicks when
+ // the window is inactive, so the blinking stops.
+ ToggleCursor(true);
+ GotInactiveWindow;
+ end;
+ IDCMP_INTUITICKS: begin
+ ToggleCursor(false);
+ MouseX := (MouseX - VideoWindow^.BorderLeft) div 8;
+ MouseY := (MouseY - VideoWindow^.BorderTop) div 16;
+ if (MouseX >= 0) and (MouseY >= 0) and
+ (MouseX < Video.ScreenWidth) and (MouseY < Video.ScreenHeight) and
+ ((MouseX <> OldMouseX) or (MouseY <> OldmouseY))
+ then begin
+// //writeln('mousemove:',Mousex,'/',Mousey,' oldbutt:',OldButtons);
+ // Drawing is very slow so when moving window it will drag behind
+ // because the mouse events stack in the messageport
+ // -> so we override move until messageport is empty or keyevent is fired
+ SendMouse := True;
+ MouseEvent := True;
+ mes.Action := MouseActionMove;
+ mes.Buttons := OldButtons;
+ mes.X := MouseX;
+ mes.Y := MouseY;
+ //PutMouseEvent(me);
+ end;
+ end;
+ IDCMP_CLOSEWINDOW: begin
+ //writeln('got close');
+ GotCloseWindow;
+ end;
+ IDCMP_CHANGEWINDOW: begin
+ GotResizeWindow;
+ end;
+ IDCMP_REFRESHWINDOW: begin
+ GotRefreshWindow;
+ end;
+ IDCMP_MOUSEBUTTONS: begin
+ MouseEvent := True;
+ me.x := (MouseX - videoWindow^.BorderLeft) div 8; // calculate char position
+ me.y := (MouseY - videoWindow^.BorderTop) div 16;
+ case ICode of
+ SELECTDOWN: begin
+ //writeln('left down!');
+ me.Action := MouseActionDown;
+ OldButtons := OldButtons or MouseLeftButton;
+ me.Buttons := OldButtons;
+ PutMouseEvent(me);
+ end;
+ SELECTUP: begin
+ //writeln('left up!');
+ me.Action := MouseActionUp;
+ OldButtons := OldButtons and (not MouseLeftButton);
+ me.Buttons := OldButtons;
+ PutMouseEvent(me);
+ end;
+ MENUDOWN: begin
+ //writeln('right down!');
+ me.Action := MouseActionDown;
+ OldButtons := OldButtons or MouseRightButton;
+ me.Buttons := OldButtons;
+ PutMouseEvent(me);
+ end;
+ MENUUP: begin
+ //writeln('right up!');
+ me.Action := MouseActionUp;
+ OldButtons := OldButtons and (not MouseRightButton);
+ me.Buttons := OldButtons;
+ PutMouseEvent(me);
+ end;
+ end;
+ //writeln('Buttons: ' , me.Buttons);
+ end;
+ IDCMP_MOUSEMOVE: begin
+ { IDCMP_MOUSEMOVE is disabled now in the video unit,
+ according to autodocs INTUITICKS should be enough
+ to handle most moves, esp. in a "textmode" app }
+ MouseX := (MouseX - VideoWindow^.BorderLeft) div 8;
+ MouseY := (MouseY - VideoWindow^.BorderTop) div 16;
+ if (MouseX >= 0) and (MouseY >= 0) and
+ (MouseX < Video.ScreenWidth) and (MouseY < Video.ScreenHeight) and
+ ((MouseX <> OldMouseX) or (MouseY <> OldmouseY))
+ then begin
+// //writeln('mousemove:',Mousex,'/',Mousey,' oldbutt:',OldButtons);
+ // Drawing is very slow so when moving window it will drag behind
+ // because the mouse events stack in the messageport
+ // -> so we override move until messageport is empty or keyevent is fired
+ SendMouse := True;
+ MouseEvent := True;
+ mes.Action := MouseActionMove;
+ mes.Buttons := OldButtons;
+ mes.X := MouseX;
+ mes.Y := MouseY;
+ //PutMouseEvent(me);
+ end;
+ end;
+ IDCMP_RAWKEY: begin
+ // mouse wheel up or down -> pgup and pgdown
+ if ICode = 122 then
+ ICode := 72;
+ if ICode = 123 then
+ ICode := 73;
+ // get char from rawkey
+ KeyUp := (ICode and IECODE_UP_PREFIX) <> 0; // is key up
+ ICode := ICode and not IECODE_UP_PREFIX; // remove key up from ICode
+ ie.ie_Class := IECLASS_RAWKEY;
+ ie.ie_SubClass := 0;
+ ie.ie_Code := ICode;
+ ie.ie_Qualifier := IQual;
+ ie.ie_NextEvent := nil;
+ Buff[0] := #0;
+ Ret := MapRawKey(@ie, @Buff[0], 1, nil);
+ KeyCode := Ord(Buff[0]);
+ KeySet^.KeyCode := Ord(Buff[0]); // if maprawkey does not work it still is 0
+ KeySet^.ShiftState := LastShiftState; // shift state set before the case
+ KeySet^.Flags := 0;
+ if keyup then // we do not need key up events up to now
+ begin
+ KeySet^.Flags := KeySet^.Flags or kbReleased; // kbReleased does work but make strange effects
+ SysPollKeyEvent := 0;
+ Exit;
+ end;
+ // check our hard coed list if there is an entry -> leave it must be right ;)
+ // F-keys, cursor, esc, del, ins, del, pgup, pgdown, pos, end, enter, tab
+ if rcTableCode(IQual,rcTableIdx(ICode)) >= 0 then
+ begin
+ KeyCode := rcTableCode(IQual,rcTableIdx(ICode));
+ KeySet^.KeyCode := KeyCode;
+ KeySet^.Flags := kbPhys;
+ end else
+ begin
+ // left alt or ctrl is pressed -> check for alternative Scancode -> commando
+ if ((IQual and IEQUALIFIER_LALT) <> 0) or HasCtrl(IQual) then
+ begin
+ OldKeyCode := KeyCode; // save keycode if nothing found
+ KeyCode := 0;
+ ie.ie_Class := IECLASS_RAWKEY; // get keycode without qualifier easier case
+ ie.ie_SubClass := 0;
+ ie.ie_Code := ICode;
+ ie.ie_Qualifier := 0;
+ ie.ie_NextEvent := nil;
+ Buff[0] := #0;
+ Ret := MapRawKey(@ie, @Buff[0], 1, nil);
+ if Ret > 0 then
+ begin
+ if ((IQual and IEQUALIFIER_LALT) <> 0) then // check left alt keycodes
+ begin
+ case Buff[0] of // Alt - keys already defined
+ 'a': KeyCode := kbAltA shl 8;
+ 'b': KeyCode := kbAltB shl 8;
+ 'c': KeyCode := kbAltC shl 8;
+ 'd': KeyCode := kbAltD shl 8;
+ 'e': KeyCode := kbAltE shl 8;
+ 'f': KeyCode := kbAltF shl 8;
+ 'g': KeyCode := kbAltG shl 8;
+ 'h': KeyCode := kbAltH shl 8;
+ 'i': KeyCode := kbAltI shl 8;
+ 'j': KeyCode := kbAltJ shl 8;
+ 'k': KeyCode := kbAltK shl 8;
+ 'l': KeyCode := kbAltL shl 8;
+ 'm': KeyCode := kbAltM shl 8;
+ 'n': KeyCode := kbAltN shl 8;
+ 'o': KeyCode := kbAltO shl 8;
+ 'p': KeyCode := kbAltP shl 8;
+ 'q': KeyCode := kbAltQ shl 8;
+ 'r': KeyCode := kbAltR shl 8;
+ 's': KeyCode := kbAltS shl 8;
+ 't': KeyCode := kbAltT shl 8;
+ 'u': KeyCode := kbAltU shl 8;
+ 'v': KeyCode := kbAltV shl 8;
+ 'w': KeyCode := kbAltW shl 8;
+ 'x': KeyCode := kbAltX shl 8;
+ 'y': KeyCode := kbAltY shl 8;
+ 'z': KeyCode := kbAltZ shl 8;
+ end;
+ end else
+ begin
+ case Buff[0] of // ctrl - keys defined in FreeVision/drivers.pas -> so here direct numbers
+ 'a': KeyCode := $1E01;
+ 'b': KeyCode := $3002;
+ 'c': KeyCode := $2E03;
+ 'd': KeyCode := $2004;
+ 'e': KeyCode := $1205;
+ 'f': KeyCode := $2106;
+ 'g': KeyCode := $2207;
+ 'h': KeyCode := $2308;
+ 'i': KeyCode := $1709;
+ 'j': KeyCode := $240a;
+ 'k': KeyCode := $250b;
+ 'l': KeyCode := $260c;
+ 'm': KeyCode := $320d;
+ 'n': KeyCode := $310e;
+ 'o': KeyCode := $180f;
+ 'p': KeyCode := $1910;
+ 'q': KeyCode := $1011;
+ 'r': KeyCode := $1312;
+ 's': KeyCode := $1F13;
+ 't': KeyCode := $1414;
+ 'u': KeyCode := $1615;
+ 'v': KeyCode := $2F16;
+ 'w': KeyCode := $1117;
+ 'x': KeyCode := $2D18;
+ 'y': KeyCode := $1519;
+ 'z': KeyCode := $2C1A;
+ end;
+ end;
+ end;
+ if KeyCode <= 0 then // nothing found restore keycode
+ KeyCode := OldKeyCode;
+ KeySet^.KeyCode := KeyCode;
+ KeySet^.Flags := kbPhys;
+ end;
+ end;
+ if keycode <= 0 then
+ begin
+ KeySet^.KeyCode := 0;
+ KeyCode := 0;
+ end;
+ //writeln('raw keycode: ',iMsg^.code, ' -> $', IntToHex(keycode,4), ' ret: ', ret);
+ end;
+ else begin
+ KeyCode := 0;
+ end;
+ end;
+ end else
+ Break;
+ until (not MouseEvent);
+ //
+ if SendMouse then
+ begin
+ PutMouseEvent(mes);
+ OldMouseX:=Mousex;
+ OldmouseY:=Mousey;
+ end;
+ if KeyCode <= 0 then // no keycode found then also delete flags and shiftstate
+ SysPollKeyEvent := 0
+ else
+ KeyQueue:=SysPollKeyEvent;
+end;
+
+function SysGetKeyEvent: TKeyEvent;
+var
+ Res: TKeyEvent;
+ me: TMouseEvent;
+begin
+ Res := 0;
+ if VideoWindow <> nil then
+ begin
+ if KeyQueue <> 0 then
+ begin
+ SysGetKeyEvent := KeyQueue;
+ KeyQueue := 0;
+ Exit;
+ end;
+ repeat
+ WaitPort(VideoWindow^.UserPort);
+ Res := SysPollKeyEvent;
+ until Res <> 0;
+ end else
+ begin
+ me.Action := MouseActionDown;
+ me.Buttons := MouseRightButton;
+ PutMouseEvent(me);
+ end;
+ SysGetKeyEvent := Res;
+end;
+
+{function SysTranslateKeyEvent(KeyEvent: TKeyEvent): TKeyEvent;
+begin
+end;}
+
+function SysGetShiftState: Byte;
+begin
+ //writeln('SysgetShiftState:',hexstr(LastShiftState,2));
+ SysGetShiftState := LastShiftState;
+end;
+
+var
+ waitTPort: PMsgPort;
+ waitTimer: PTimeRequest;
+ waitTimerFired: boolean;
+
+function WaitForSystemEvent(millisec: Integer): boolean;
+var
+ windowbit: PtrUInt;
+ timerbit: PtrUInt;
+ recvbits: PtrUInt;
+begin
+ WaitForSystemEvent:=false;
+ if waitTPort = nil then
+ begin
+ { this really shouldn't happen, but it's enough to avoid a
+ crash if the timer init failed during startup }
+ if VideoWindow <> nil then
+ WaitPort(VideoWindow^.UserPort);
+ exit;
+ end;
+
+ windowbit:=0;
+ if VideoWindow <> nil then
+ begin
+ if not IsMsgPortEmpty(VideoWindow^.UserPort) then
+ begin
+ WaitForSystemEvent:=true;
+ exit;
+ end;
+ windowbit:=1 shl (VideoWindow^.UserPort^.mp_SigBit);
+ end;
+ timerbit:=0;
+ if waitTPort <> nil then
+ timerbit:=1 shl (waitTPort^.mp_SigBit);
+ if (windowbit or timerbit) = 0 then exit;
+
+ if not waitTimerFired then
+ begin
+ waitTimer^.tr_node.io_Command:=TR_ADDREQUEST;
+ waitTimer^.tr_time.tv_secs:=millisec div 1000;
+ waitTimer^.tr_time.tv_micro:=(millisec mod 1000) * 1000;
+ SendIO(PIORequest(waitTimer));
+ waitTimerFired:=true;
+ end;
+
+ recvbits:=Wait(windowbit or timerbit);
+ if (recvbits and windowbit) > 0 then
+ WaitForSystemEvent:=true;
+
+ if waitTimerFired then
+ begin
+ AbortIO(PIORequest(waitTimer));
+ WaitIO(PIORequest(waitTimer));
+ SetSignal(0,timerbit);
+ waitTimerFired:=false;
+ end;
+end;
+
+procedure DoneSystemEventWait;
+begin
+ if assigned(waitTimer) then
+ begin
+ if waitTimerFired then
+ begin
+ AbortIO(PIORequest(waitTimer));
+ WaitIO(PIORequest(waitTimer));
+ waitTimerFired:=false;
+ end;
+ CloseDevice(PIORequest(waitTimer));
+ DeleteIORequest(PIORequest(waitTimer));
+ waitTimer:=nil;
+ end;
+ if assigned(waitTPort) then
+ begin
+ DeleteMsgPort(waitTPort);
+ waitTPort:=nil;
+ end;
+end;
+
+procedure InitSystemEventWait;
+var
+ initOK: boolean;
+begin
+ waitTimerFired:=false;
+ waitTPort:=CreateMsgPort();
+ if assigned(waitTPort) then
+ begin
+ waitTimer:=PTimeRequest(CreateIORequest(waitTPort,sizeof(TTimeRequest)));
+ if assigned(waitTimer) then
+ begin
+ if OpenDevice(TIMERNAME,UNIT_VBLANK,PIORequest(waitTimer),0) = 0 then
+ begin
+ initOK:=true;
+ waitTimerFired:=false;
+ end;
+ end;
+ end;
+ if not initOK then begin
+ {* this really shouldn't happen if everything is OK with the system *}
+ SysDebugLn('FPC RTL-Console: SystemEventWait Initialization failed!');
+ DoneSystemEventWait;
+ end;
+end;
+
+
+const
+ SysKeyboardDriver : TKeyboardDriver = (
+ InitDriver : @SysInitKeyBoard;
+ DoneDriver : @SysDoneKeyBoard;
+ GetKeyevent : @SysGetKeyEvent;
+ PollKeyEvent : @SysPollKeyEvent;
+ GetShiftState : @SysGetShiftState;
+// TranslateKeyEvent : @SysTranslateKeyEvent;
+ TranslateKeyEvent : Nil;
+ TranslateKeyEventUnicode : Nil;
+ );
+
+
+initialization
+ SetKeyBoardDriver(SysKeyBoardDriver);
+ InitSystemEventWait;
+finalization
+ DoneSystemEventWait;
+end.
diff --git a/packages/rtl-console/src/morphos/mouse.pp b/packages/rtl-console/src/amicommon/mouse.pp
index f081996402..06d6067d54 100644
--- a/packages/rtl-console/src/morphos/mouse.pp
+++ b/packages/rtl-console/src/amicommon/mouse.pp
@@ -31,14 +31,6 @@ begin
SysDetectMouse:=3;
end;
-
-
-
-
-
-
-
-
const
SysMouseDriver : TMouseDriver = (
UseDefaultQueue : True;
diff --git a/packages/rtl-console/src/amicommon/video.pp b/packages/rtl-console/src/amicommon/video.pp
new file mode 100644
index 0000000000..c0091162eb
--- /dev/null
+++ b/packages/rtl-console/src/amicommon/video.pp
@@ -0,0 +1,740 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2006-2014 by Karoly Balogh
+ member of the Free Pascal development team
+
+ Video unit for Amiga, MorphOS and AROS
+
+ 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 Video;
+
+{.$define VIDEODEBUG}
+{.$define WITHBUFFERING}
+
+
+{
+ Date: 2013-01-09
+ What: Adjusted FPC video unit for AROS (/AmigaOS?)
+
+ goal:
+ ---------------------------------------------------------------------------
+ Attempt to add user-on-demand support for AROS Fullscreen to the FPC video
+ unit.
+}
+
+
+interface
+
+uses
+ amigados, intuition, utility, sysutils;
+
+{$i videoh.inc}
+
+
+{ Amiga specific calls, to help interaction between Keyboard, Mouse and
+ Video units, and Free Vision }
+procedure GotCloseWindow;
+function HasCloseWindow: boolean;
+procedure GotResizeWindow;
+function HasResizeWindow(var winw:longint; var winh: longint): boolean;
+procedure GotRefreshWindow;
+procedure ToggleCursor(forceOff: boolean);
+procedure GotActiveWindow;
+function HasActiveWindow: boolean;
+procedure GotInactiveWindow;
+function HasInactiveWindow: boolean;
+procedure SetWindowTitle(const winTitle: AnsiString; const screenTitle: AnsiString);
+
+var
+ VideoWindow: PWindow;
+
+implementation
+
+uses
+ exec, agraphics;
+
+{$i video.inc}
+
+{$i videodata.inc}
+
+const
+ VIDEOSCREENNAME = 'FPC Video Screen Output';
+
+var
+ OS_Screen : PScreen = nil; // To hold our screen, when necessary
+ FPC_VIDEO_FULLSCREEN : Boolean = False; // Global that defines when we need to attempt opening on own scren
+
+var
+ VideoColorMap : PColorMap;
+ VideoPens : array[0..15] of LongInt;
+
+ OldSH, OldSW : longint;
+
+ OldCursorX,
+ OldCursorY : LongInt;
+ CursorType : Word;
+ OldCursorType : Word;
+ CursorUpdateCnt : Word;
+ CursorUpdateSpeed : Word;
+ CursorState : boolean;
+ ForceCursorUpdate : boolean;
+
+ {$ifdef WITHBUFFERING}
+ BitmapWidth, BitmapHeight: Integer;
+ BufRp: PRastPort;
+ {$endif}
+
+ GotCloseWindowMsg : Boolean;
+ GotResizeWindowMsg : Boolean;
+ GotActiveWindowMsg : Boolean;
+ GotInactiveWindowMsg : Boolean;
+ LastL, LastT: Integer;
+ LastW, LastH: Integer;
+ WindowForReqSave: PWindow;
+ Process: PProcess;
+(*
+ GetScreen: pScreen;
+
+ Tries to open a custom screen, which attempt to clone the workbench,
+ and returns the pointer to the screen. Result can be nil when failed
+ otherwise the screen got opened correctly.
+*)
+function _OpenScreenTags(a: Pointer; tags: array of PtrUInt): pScreen;
+begin
+ _OpenScreenTags:=OpenScreenTagList(a, @tags);
+end;
+
+Function GetScreen: pScreen;
+begin
+ GetScreen:=_OpenScreenTags(nil,[
+ SA_Title , PtrUInt(PChar(VIDEOSCREENNAME)),
+ SA_Left , 0,
+ SA_Top , 0,
+ SA_ShowTitle , 0, // Do not show the screen's TitleBar
+ SA_Type , PUBLICSCREEN_F, // pubscreen
+ SA_PubName , PtrUInt(PChar(VIDEOSCREENNAME)),
+ SA_Quiet , 1,
+ SA_LikeWorkbench , 1 // Let OS
+ ]);
+ {$ifdef VIDEODEBUG}
+ if (GetScreen <> nil) then
+ Writeln('DEBUG: Opened a new screen')
+ else
+ Writeln('ERROR: Failed to open new screen');
+ {$endif}
+end;
+
+(*
+ GetWindow: pWindow;
+
+ Tries to create and open a window. Returns the pointer to
+ the window or nil in case of failure.
+
+ The routine keeps the global FPC_FULL_SCREEM option into
+ account and act accordingly.
+
+ In windowed mode it returns a window with another kind of
+ settings then when it has to reside on it's own customscreen.
+*)
+function _OpenWindowTags(a: Pointer; tags: array of PtrUInt): pWindow;
+begin
+ _OpenWindowTags:=OpenWindowTagList(a, @tags);
+end;
+
+const
+ VIDEO_IDCMP_DEFAULTS = IDCMP_RAWKEY or
+ IDCMP_MOUSEBUTTONS or
+ IDCMP_CHANGEWINDOW or IDCMP_CLOSEWINDOW or
+ IDCMP_ACTIVEWINDOW or IDCMP_INACTIVEWINDOW or
+ IDCMP_REFRESHWINDOW or
+ IDCMP_INTUITICKS;
+ { simple refresh would be nicer here, but smart refresh gives better
+ results when moving around the window with the input blocked.
+ (eg. compiling in the IDE) }
+ VIDEO_WFLG_DEFAULTS = WFLG_RMBTRAP or WFLG_SMART_REFRESH;
+
+Function GetWindow: PWindow;
+begin
+ if FPC_VIDEO_FULLSCREEN then
+ begin
+ OS_Screen := GetScreen;
+ If OS_Screen = nil then
+ Exit;
+
+ {$ifdef VIDEODEBUG}
+ WriteLn('DEBUG: Opened customscreen succesfully');
+ {$endif}
+ GetWindow:=_OpenWindowTags(nil, [
+ WA_CustomScreen, PtrUint(OS_Screen),
+ WA_Left , 0,
+ WA_Top , 0,
+ WA_InnerWidth , (OS_Screen^.Width div 8) * 8,
+ WA_InnerHeight, (OS_Screen^.Height div 16) * 16,
+ WA_AutoAdjust , 1,
+ WA_Activate , 1,
+ WA_Borderless , 1,
+ WA_BackDrop , 1,
+ WA_FLAGS , VIDEO_WFLG_DEFAULTS,
+ WA_IDCMP , VIDEO_IDCMP_DEFAULTS
+ ]);
+ end else
+ begin // Windowed Mode
+ GetWindow:=_OpenWindowTags(nil, [
+ WA_Left , LastL,
+ WA_Top , LastT,
+ WA_InnerWidth , LastW*8,
+ WA_InnerHeight, LastH*16,
+ WA_MaxWidth , 32768,
+ WA_MaxHeight , 32768,
+ WA_Title , PtrUInt(PChar('FPC Video Window Output')),
+ WA_Activate , 1,
+ WA_FLAGS , (VIDEO_WFLG_DEFAULTS or
+ WFLG_DRAGBAR or WFLG_DEPTHGADGET or WFLG_SIZEGADGET or
+ WFLG_SIZEBBOTTOM or WFLG_CLOSEGADGET),
+ WA_IDCMP , VIDEO_IDCMP_DEFAULTS
+ ]);
+ end;
+
+ Process := PProcess(FindTask(nil));
+ WindowForReqSave := Process^.pr_WindowPtr;
+ Process^.pr_WindowPtr := GetWindow;
+
+ {$ifdef VIDEODEBUG}
+ If GetWindow <> nil then
+ WriteLn('DEBUG: Sucessfully opened videounit Window')
+ else
+ WriteLn('ERROR: Failed to open videounit Window');
+ {$endif}
+end;
+
+
+// ==========================================================================
+// ==
+// == Original source code continues, with minor adjustments
+// ==
+// ==========================================================================
+
+
+procedure SysInitVideo;
+var
+ Counter: LongInt;
+begin
+{$IFDEF MORPHOS}
+ InitGraphicsLibrary;
+ InitIntuitionLibrary;
+{$ENDIF}
+
+ {$ifdef VIDEODEBUG}
+ WriteLn('FULLSCREEN VIDEO UNIT MODIFICATION v2');
+ if FPC_VIDEO_FULLSCREEN then
+ WriteLn('DEBUG: Recognized fullscreen mode')
+ else
+ WriteLn('DEBUG: Recognized windowed mode');
+ {$endif}
+
+ // fill videobuf and oldvideobuf with different bytes, to allow proper first draw
+ FillDword(VideoBuf^, VideoBufSize div 4, $1234D3AD);
+ FillDword(OldVideoBuf^, VideoBufSize div 4, $4321BEEF);
+
+ VideoWindow := GetWindow;
+
+ // nice hardcode values are probably going to screw up things
+ // so wee neeed a way to detrmined how many chars could be on
+ // the screen in both directions. And a bit accurate.
+ if FPC_VIDEO_FULLSCREEN then
+ begin
+ // just to make sure that we are going to use the window width
+ // and height instead of the one from the screen.
+ // This is to circumvent that the window (or virtual window from
+ // vision based on characters pixels * characters in both
+ // dimensions) is actually smaller then the window it resides on.
+ //
+ // Can happen for instance when the window does not hide it's
+ // borders or title as intended.
+ ScreenWidth := VideoWindow^.GZZWidth div 8;
+ ScreenHeight := VideoWindow^.GZZHeight div 16;
+ ScreenColor := False;
+
+ {$ifdef VIDEODEBUG}
+ Writeln('DEBUG: Fullscreen - windowed - Width * Heigth = ',ScreenWidth,' * ',ScreenHeight);
+ {$endif}
+ end else
+ begin
+ ScreenWidth := LastW;
+ ScreenHeight := LastH;
+ ScreenColor := True;
+ end;
+ {$ifdef WITHBUFFERING}
+ BufRp^.Bitmap := AllocBitmap(VideoWindow^.InnerWidth, VideoWindow^.InnerHeight, VideoWindow^.RPort^.Bitmap^.Depth, BMF_CLEAR, VideoWindow^.RPort^.Bitmap);
+ BitmapWidth := VideoWindow^.InnerWidth;
+ BitmapHeight := VideoWindow^.InnerHeight;
+ {$endif}
+ { viewpostcolormap info }
+ videoColorMap := pScreen(videoWindow^.WScreen)^.ViewPort.ColorMap;
+
+ for Counter := 0 to 15 do
+ begin
+ VideoPens[Counter] := ObtainBestPenA(VideoColorMap,
+ vgacolors[counter, 0] shl 24, vgacolors[counter, 1] shl 24, vgacolors[counter, 2] shl 24, nil);
+ {$ifdef VIDEODEBUG}
+ If VideoPens[Counter] = -1 then
+ WriteLn('errr color[',Counter,'] = ', VideoPens[Counter])
+ else
+ WriteLn('good color[',Counter,'] = ', VideoPens[Counter]);
+ {$endif}
+ end;
+
+ CursorX := 0;
+ CursorY := 0;
+ OldCursorX := 0;
+ OldCursorY := 0;
+ CursorType := crHidden;
+ OldCursorType := crHidden;
+ CursorState := true;
+ ForceCursorUpdate:=false;
+ CursorUpdateSpeed:=2; // this could come from an env-var or something
+ CursorUpdateCnt:=0;
+
+ GotCloseWindowMsg := false;
+ GotResizeWindowMsg := false;
+ GotActiveWindowMsg := false;
+ GotInactiveWindowMsg := false;
+end;
+
+procedure SysDoneVideo;
+var
+ Counter: LongInt;
+ msg: PMessage;
+begin
+ if VideoWindow <> nil then
+ begin
+ Process^.pr_WindowPtr := WindowForReqSave;
+ if not FPC_VIDEO_FULLSCREEN then
+ begin
+ LastL := VideoWindow^.LeftEdge;
+ LastT := VideoWindow^.TopEdge;
+ end;
+ // clean up the messages from our window before closing
+ Forbid();
+ repeat
+ msg:=GetMsg(videoWindow^.UserPort);
+ if (msg <> nil) then ReplyMsg(msg);
+ until msg = nil;
+ ModifyIDCMP(videoWindow,0);
+ Permit();
+ CloseWindow(videoWindow);
+ VideoWindow := nil;
+ end;
+ {$ifdef WITHBUFFERING}
+ FreeBitmap(BufRp^.Bitmap);
+ BufRp^.Bitmap := nil;
+ {$endif}
+ for Counter := 0 to 15 do
+ ReleasePen(VideoColorMap, VideoPens[Counter]);
+ if ((FPC_VIDEO_FULLSCREEN) and (OS_Screen <> nil)) then
+ begin
+ CloseScreen(OS_Screen);
+ end;
+end;
+
+function SysSetVideoMode(const Mode: TVideoMode): Boolean;
+var
+ dx: integer;
+ dy: integer;
+begin
+ if ScreenColor <> Mode.Color then
+ begin
+ SysDoneVideo;
+ FPC_VIDEO_FULLSCREEN := not Mode.color;
+ if not FPC_VIDEO_FULLSCREEN then
+ begin
+ LastT := 50;
+ LastL := 50;
+
+ LastW := 80;
+ LastH := 25;
+ end;
+ SysInitVideo;
+ end else
+ if not FPC_VIDEO_FULLSCREEN then
+ begin
+ dx := (Mode.col * 8) - VideoWindow^.GZZWidth;
+ dy := (Mode.row * 16) - VideoWindow^.GZZHeight;
+ SizeWindow(videoWindow, dx, dy);
+ end;
+ ScreenWidth := Mode.col;
+ ScreenHeight := Mode.row;
+ LastW := Mode.Col;
+ LastH := Mode.Row;
+ ScreenColor := Mode.color;
+ SysSetVideoMode := True;
+end;
+
+
+procedure SysClearScreen;
+begin
+ oldSH := -1;
+ oldSW := -1;
+ UpdateScreen(True);
+end;
+
+procedure DrawChar(rp: PRastPort; x, y: LongInt; crType: Word);
+var
+ TmpCharData: Word;
+ TmpChar: Byte;
+ TmpFGColor: Byte;
+ TmpBGColor: Byte;
+ sX, sY: LongInt;
+begin
+ TmpCharData := VideoBuf^[y * ScreenWidth + x];
+ TmpChar := byte(TmpCharData);
+ TmpFGColor := (TmpCharData shr 8) and %00001111;
+ TmpBGColor := (TmpCharData shr 12) and %00000111;
+
+ sX := x * 8 + videoWindow^.borderLeft;
+ sY := y * 16 + videoWindow^.borderTop;
+
+ if crType <> crBlock then
+ begin
+ SetABPenDrMd(rp, VideoPens[TmpFGColor], VideoPens[tmpBGColor], JAM2);
+ end else
+ begin
+ { in case of block cursor, swap fg/bg colors
+ and BltTemplate() below will take care of everything }
+ SetABPenDrMd(rp, VideoPens[tmpBGColor], VideoPens[tmpFGColor], JAM2);
+ end;
+
+ BltTemplate(@Vgafont[tmpChar, 0], 0, 1, rp, sX, sY, 8, 16);
+
+ if crType = crUnderLine then
+ begin
+ { draw two lines at the bottom of the char, in case of underline cursor }
+ GfxMove(rp, sX, sY + 14); Draw(rp, sX + 7, sY + 14);
+ GfxMove(rp, sX, sY + 15); Draw(rp, sX + 7, sY + 15);
+ end;
+end;
+
+procedure SysUpdateScreen(Force: Boolean);
+var
+ BufCounter: Longint;
+ SmallForce: Boolean;
+ Counter, CounterX, CounterY: LongInt;
+ //BufRp: PRastPort;
+ t: Double;
+ NumChanged: Integer;
+begin
+ SmallForce := False;
+
+ // override forced update when screen dimensions haven't changed
+ if Force then
+ begin
+ if (OldSH = ScreenHeight) and (OldSW = ScreenWidth) then
+ Force := false
+ else
+ begin
+ OldSH := ScreenHeight;
+ OldSW := ScreenWidth;
+ end;
+ end;
+
+ if Force then
+ begin
+ SmallForce:=true;
+ end else
+ begin
+ Counter:=0;
+ if not ForceCursorUpdate then
+ while not smallforce and (Counter < (VideoBufSize div 4) - 1) do
+ begin
+ SmallForce := (PDWord(VideoBuf)[Counter] <> PDWord(OldVideoBuf)[Counter]);
+ inc(Counter);
+ end;
+ end;
+
+ {$ifdef WITHBUFFERING}
+ if (VideoWindow^.InnerWidth > BitmapWidth) or (VideoWindow^.InnerHeight > BitmapHeight) then
+ begin
+ FreeBitmap(BufRp^.Bitmap);
+ BufRp^.Bitmap := AllocBitmap(VideoWindow^.InnerWidth, VideoWindow^.InnerHeight, VideoWindow^.RPort^.Bitmap^.Depth, BMF_CLEAR, VideoWindow^.RPort^.Bitmap);
+ BitmapWidth := VideoWindow^.InnerWidth;
+ BitmapHeight := VideoWindow^.InnerHeight;
+ Force := True;
+ Smallforce := True;
+ end;
+ {$endif}
+
+ BufCounter:=0;
+ NumChanged:=0;
+ if Smallforce then
+ begin
+ //t := now();
+ for CounterY := 0 to ScreenHeight - 1 do
+ begin
+ for CounterX := 0 to ScreenWidth - 1 do
+ begin
+ if (VideoBuf^[BufCounter] <> OldVideoBuf^[BufCounter]) or Force then
+ begin
+ {$ifdef WITHBUFFERING}
+ DrawChar(BufRp, CounterX, CounterY, crHidden);
+ {$else}
+ DrawChar(VideoWindow^.RPort, CounterX, CounterY, crHidden);
+ {$endif}
+ OldVideoBuf^[BufCounter] := VideoBuf^[BufCounter];
+ Inc(NumChanged);
+ end;
+ Inc(BufCounter);
+ end;
+ end;
+ //if NumChanged > 100 then
+ // writeln('redraw time: ', floattoStrF((Now-t)* 24 * 60 * 60 * 1000000 / NumChanged, fffixed, 8,3), ' us/char' ); // ms
+ end;
+
+ if (CursorType <> OldCursorType) or
+ (CursorX <> OldCursorX) or (CursorY <> OldCursorY) or
+ SmallForce or ForceCursorUpdate then
+ begin
+ {$ifdef WITHBUFFERING}
+ DrawChar(BufRp, OldCursorY, OldCursorX, crHidden);
+ if CursorState then DrawChar(BufRp, CursorY, CursorX, CursorType);
+ {$else}
+ DrawChar(VideoWindow^.RPort, OldCursorY, OldCursorX, crHidden);
+ if CursorState then DrawChar(VideoWindow^.RPort, CursorY, CursorX, CursorType);
+ {$endif}
+ OldCursorX := CursorX;
+ OldCursorY := CursorY;
+ OldcursorType := CursorType;
+ end;
+ {$ifdef WITHBUFFERING}
+ BltBitMapRastPort(BufRp^.Bitmap, 0, 0, VideoWindow^.RPort, 0, 0, ScreenWidth * 8, ScreenHeight * 16, $00C0);
+ {$endif}
+end;
+
+
+procedure SysSetCursorPos(NewCursorX, NewCursorY: Word);
+begin
+ CursorX := NewCursorY;
+ CursorY := NewCursorX;
+ SysUpdateScreen(False);
+end;
+
+function SysGetCapabilities: Word;
+begin
+ SysGetCapabilities := cpColor or cpChangeCursor;
+end;
+
+function SysGetCursorType: Word;
+begin
+ SysGetCursorType := cursorType;
+end;
+
+
+procedure SysSetCursorType(NewType: Word);
+begin
+ cursorType := newType;
+ { FIXME: halfBlock cursors are not supported for now
+ by the rendering code }
+ if CursorType = crHalfBlock then
+ cursorType := crBlock;
+
+ SysUpdateScreen(False);
+end;
+
+
+// Amiga specific calls
+procedure GotCloseWindow;
+begin
+ GotCloseWindowMsg := True;
+end;
+
+function HasCloseWindow: Boolean;
+begin
+ HasCloseWindow := GotCloseWindowMsg;
+ GotCloseWindowMsg := False;
+end;
+
+procedure GotResizeWindow;
+begin
+ GotResizeWindowMsg := True;
+end;
+
+function HasResizeWindow(var WinW: LongInt; var WinH: LongInt): Boolean;
+begin
+ WinW := 0;
+ WinH := 0;
+ HasResizeWindow := GotResizeWindowMsg;
+ if GotResizeWindowMsg then
+ begin
+ //writeln('Has resize ', GotResizeWindowMsg);
+ if Assigned(VideoWindow) then
+ begin
+ WinW := VideoWindow^.GZZWidth div 8;
+ WinH := VideoWindow^.GZZHeight div 16;
+// writeln('resize', winw, ' ',winh);
+ LastW := WinW;
+ LastH := WinH;
+ end
+ end
+ else
+ begin
+ WinW := LastW;
+ WinH := LastH;
+ end;
+ GotResizeWindowMsg := False;
+end;
+
+procedure GotRefreshWindow;
+begin
+ if assigned(VideoWindow) then
+ begin
+ oldSH := -1;
+ oldSW := -1;
+ BeginRefresh(VideoWindow);
+ SysUpdateScreen(true);
+ EndRefresh(VideoWindow, true);
+ end;
+end;
+
+procedure ToggleCursor(forceOff: boolean);
+begin
+ if CursorType = crHidden then exit;
+
+ if forceOff then
+ begin
+ CursorState:=false;
+ // to immediately turn on cursor on the next toggle
+ CursorUpdateCnt:=CursorUpdateSpeed;
+ end
+ else
+ begin
+ Inc(CursorUpdateCnt);
+ if CursorUpdateCnt >= CursorUpdateSpeed then
+ begin
+ CursorState:=not CursorState;
+ CursorUpdateCnt:=0;
+ end
+ else
+ exit;
+ end;
+ ForceCursorUpdate:=true;
+ SysUpdateScreen(False);
+ ForceCursorUpdate:=false;
+end;
+
+procedure GotActiveWindow;
+begin
+ GotActiveWindowMsg:=true;
+end;
+
+function HasActiveWindow: boolean;
+begin
+ HasActiveWindow:=GotActiveWindowMsg;
+ GotActiveWindowMsg:=false;
+end;
+
+procedure GotInactiveWindow;
+begin
+ GotInactiveWindowMsg:=true;
+end;
+
+function HasInactiveWindow: boolean;
+begin
+ HasInactiveWindow:=GotInactiveWindowMsg;
+ GotInactiveWindowMsg:=false;
+end;
+
+{ SetWindowTitles seems not to copy the buffer, at least on AROS.
+ So we better keep a reference of the strings to ourselves... }
+var
+ globWinT: AnsiString;
+ globScreenT: AnsiString;
+
+procedure SetWindowTitle(const winTitle: AnsiString; const screenTitle: AnsiString);
+var
+ winT: PChar;
+ screenT: PChar;
+begin
+ globWinT:=winTitle;
+ globScreenT:=screenTitle;
+ if VideoWindow <> nil then
+ begin
+ if globWinT = '' then
+ winT:=PChar(PtrInt(-1))
+ else
+ winT:=PChar(globWinT);
+ if globScreenT = '' then
+ screenT:=PChar(PtrInt(-1))
+ else
+ screenT:=PChar(globScreenT);
+ SetWindowTitles(VideoWindow, winT, screenT);
+ end;
+end;
+
+function SysGetVideoModeCount: Word;
+begin
+ SysGetVideoModeCount := 2;
+end;
+
+function SysGetVideoModeData(Index: Word; var Mode: TVideoMode): Boolean;
+var
+ Screen: PScreen;
+begin
+ case Index of
+ 0: begin
+ Mode.Col := 80;
+ Mode.Row := 25;
+ Mode.Color := True;
+ end;
+ 1: begin
+ Screen := LockPubScreen('Workbench');
+ Mode.Col := Screen^.Width div 8;
+ Mode.Row := Screen^.Height div 16;
+ UnlockPubScreen('Workbench', Screen);
+ Mode.Color := False;
+ end;
+ end;
+ SysGetVideoModeData := True;
+end;
+
+
+const
+ SysVideoDriver : TVideoDriver = (
+ InitDriver : @SysInitVideo;
+ DoneDriver : @SysDoneVideo;
+ UpdateScreen : @SysUpdateScreen;
+ ClearScreen : @SysClearScreen;
+ SetVideoMode : @SysSetVideoMode;
+ GetVideoModeCount : @SysGetVideoModeCount;
+ GetVideoModeData : @SysGetVideoModeData;
+ SetCursorPos : @SysSetCursorPos;
+ GetCursorType : @SysGetCursorType;
+ SetCursorType : @SysSetCursorType;
+ GetCapabilities : @SysGetCapabilities
+ );
+
+
+initialization
+ SetVideoDriver(SysVideoDriver);
+ LastT := 50;
+ LastL := 50;
+ LastW := 80;
+ LastH := 25;
+ {$ifdef WITHBUFFERING}
+ BufRp := CreateRastPort;
+ BufRp^.Layer := nil;
+ BufRp^.Bitmap := nil;
+ {$endif}
+finalization
+ {$ifdef WITHBUFFERING}
+ if Assigned(BufRp^.Bitmap) then
+ FreeBitmap(BufRp^.Bitmap);
+ FreeRastPort(BufRp);
+ {$endif}
+end.
diff --git a/packages/rtl-console/src/morphos/videodata.inc b/packages/rtl-console/src/amicommon/videodata.inc
index 359585d63f..359585d63f 100644
--- a/packages/rtl-console/src/morphos/videodata.inc
+++ b/packages/rtl-console/src/amicommon/videodata.inc
diff --git a/rtl/amiga/crt.pp b/packages/rtl-console/src/amiga/crt.pp
index 56dc26c5e5..8bbb448ee8 100644
--- a/rtl/amiga/crt.pp
+++ b/packages/rtl-console/src/amiga/crt.pp
@@ -40,6 +40,9 @@ Const
Implementation
+uses
+ exec, amigados, conunit, intuition;
+
var
maxcols,maxrows : longint;
@@ -49,7 +52,7 @@ CONST
KeyPress : char = #0;
_LVODisplayBeep = -96;
-
+(*
Type
pInfoData = ^tInfoData;
@@ -184,7 +187,7 @@ Type
IFont : Pointer;
MoreFlags : Longint;
end;
-
+*)
const
M_LNM = 20; { linefeed newline mode }
@@ -193,6 +196,7 @@ Type
MAXTABS = 80;
IECLASS_MAX = $15;
+(*
type
pKeyMap = ^tKeyMap;
@@ -263,7 +267,7 @@ type
{ one bit per mode }
cu_RawEvents : Array [0..(IECLASS_MAX+7) div 8 - 1] of Byte;
end;
-
+*)
const
@@ -276,7 +280,7 @@ const
SIGBREAKF_CTRL_C = 4096;
-function AllocVec( size, reqm : Longint ): Pointer;
+{function AllocVec( size, reqm : Longint ): Pointer;
begin
asm
MOVE.L A6,-(A7)
@@ -412,7 +416,7 @@ begin
MOVE.L (A7)+,A6
MOVE.L d0,@RESULT
end;
-end;
+end;}
function OpenInfo : pInfoData;
var
@@ -703,23 +707,23 @@ procedure sound(hz : word);
begin
end;
-procedure delay(DTime : Word);
+procedure delay(ms : Word);
var
dummy : Longint;
begin
- dummy := trunc((real(DTime) / 1000.0) * 50.0);
- Delay_(dummy);
+ dummy := trunc((real(ms) / 1000.0) * 50.0);
+ DOSDelay(dummy);
end;
-function CheckBreak : boolean;
+{function CheckBreak : boolean;
begin
if (SetSignal(0, 0) and SIGBREAKF_CTRL_C) = SIGBREAKF_CTRL_C then
CheckBreak := true
else
CheckBreak := false;
-end;
+end;}
-procedure textmode(mode : integer);
+procedure textmode(mode : word);
begin
lastmode:=mode;
mode:=mode and $ff;
@@ -822,7 +826,7 @@ end;
begin
buf[0]:=c;
realgotoxy(row,col);
- do_write(f.handle,longint(@buf[0]),1);
+ {do_write(f.handle,longint(@buf[0]),1);}
inc(col);
end;
end;
@@ -858,7 +862,7 @@ end;
Function CrtRead(Var F: TextRec): Integer;
Begin
- f.bufend:=do_read(f.handle,longint(f.bufptr),f.bufsize);
+ {f.bufend:=do_read(f.handle,longint(f.bufptr),f.bufsize);}
f.bufpos:=0;
CrtRead:=0;
End;
diff --git a/packages/rtl-console/src/go32v2/mouse.pp b/packages/rtl-console/src/go32v2/mouse.pp
index b2d5551b08..bbf78b2ec2 100644
--- a/packages/rtl-console/src/go32v2/mouse.pp
+++ b/packages/rtl-console/src/go32v2/mouse.pp
@@ -21,10 +21,6 @@ interface
{ tells the mouse unit to draw the mouse cursor itself }
procedure DoCustomMouse(b : boolean);
-const
- MouseIsVisible: boolean = false;
-
-
implementation
uses
@@ -51,6 +47,9 @@ var
ActionRegs : TRealRegs;external name '___v2prt0_rmcb_regs';
v2prt0_ds_alias : word;external name '___v2prt0_ds_alias';
const
+ { indicates whether the mouse cursor is visible when the mouse cursor is
+ drawn by this unit (i.e. drawmousecursor=true) }
+ CustomMouse_MouseIsVisible: boolean = false;
MousePresent : boolean = false;
First_try : boolean = true;
{$ifdef DEBUG}
@@ -58,6 +57,16 @@ const
CallCounter : longint = 0;
{$endif DEBUG}
drawmousecursor : boolean = false;
+
+ { CustomMouse_HideCount holds the hide count for the custom drawn mouse
+ cursor. Normally, when the mouse cursor is drawn by the int 33h mouse
+ driver (and not by this unit), the driver internally maintains a 'hide
+ counter', so that if you call HideMouse multiple times, you need to call
+ ShowMouse the same number of times. When the mouse cursor is customly
+ drawn by this unit, we use this variable in order to maintain the same
+ behaviour. }
+ CustomMouse_HideCount: longint = 1;
+
{ position where the mouse was drawn the last time }
oldmousex : longint = -1;
oldmousey : longint = -1;
@@ -92,10 +101,14 @@ asm
movw %dx,mousewherey
shrw $3,%cx
shrw $3,%dx
+ cmpw $40,ScreenWidth
+ jne .Lmorethan40cols
+ shrw $1,%cx
+.Lmorethan40cols:
{ should we draw the mouse cursor? }
cmpb $0,drawmousecursor
je .Lmouse_nocursor
- cmpb $0,mouseisvisible
+ cmpb $0,CustomMouse_MouseIsVisible
je .Lmouse_nocursor
pushw %fs
pushl %eax
@@ -441,7 +454,7 @@ begin
Unlock_Data(MouseWhereX,SizeOf(word));
Unlock_Data(MouseWhereY,SizeOf(word));
Unlock_Data(drawmousecursor,SizeOf(boolean));
- Unlock_Data(mouseisvisible,SizeOf(boolean));
+ Unlock_Data(CustomMouse_MouseIsVisible,SizeOf(boolean));
Unlock_Data(mouselock,SizeOf(boolean));
Unlock_Data(videoseg,SizeOf(word));
Unlock_Data(dosmemselector,SizeOf(word));
@@ -505,7 +518,7 @@ begin
Lock_Data(MouseWhereX,SizeOf(word));
Lock_Data(MouseWhereY,SizeOf(word));
Lock_Data(drawmousecursor,SizeOf(boolean));
- Lock_Data(mouseisvisible,SizeOf(boolean));
+ Lock_Data(CustomMouse_MouseIsVisible,SizeOf(boolean));
Lock_Data(mouselock,SizeOf(boolean));
Lock_Data(videoseg,SizeOf(word));
Lock_Data(dosmemselector,SizeOf(word));
@@ -526,7 +539,7 @@ begin
If MouseCallBack=Nil then
Mouse_Action($ffff, @MouseInt); { Set masks/interrupt }
drawmousecursor:=false;
- mouseisvisible:=false;
+ CustomMouse_MouseIsVisible:=false;
if (screenwidth>80) or (screenheight>50) then
DoCustomMouse(true);
ShowMouse;
@@ -568,13 +581,15 @@ begin
if drawmousecursor then
begin
lockmouse;
- if not(mouseisvisible) then
+ if CustomMouse_HideCount>0 then
+ Dec(CustomMouse_HideCount);
+ if (CustomMouse_HideCount=0) and not(CustomMouse_MouseIsVisible) then
begin
oldmousex:=getmousex-1;
oldmousey:=getmousey-1;
mem[videoseg:(((screenwidth*oldmousey)+oldmousex)*2)+1]:=
mem[videoseg:(((screenwidth*oldmousey)+oldmousex)*2)+1] xor $7f;
- mouseisvisible:=true;
+ CustomMouse_MouseIsVisible:=true;
end;
unlockmouse;
end
@@ -588,7 +603,6 @@ begin
popl %ebp
.LShowMouseExit:
end;
- MouseIsVisible := true;
end;
@@ -598,9 +612,10 @@ begin
if drawmousecursor then
begin
lockmouse;
- if mouseisvisible then
+ Inc(CustomMouse_HideCount);
+ if CustomMouse_MouseIsVisible then
begin
- mouseisvisible:=false;
+ CustomMouse_MouseIsVisible:=false;
mem[videoseg:(((screenwidth*oldmousey)+oldmousex)*2)+1]:=
mem[videoseg:(((screenwidth*oldmousey)+oldmousex)*2)+1] xor $7f;
oldmousex:=-1;
@@ -618,7 +633,6 @@ begin
popl %ebp
.LHideMouseExit:
end;
- MouseIsVisible := false;
end;
@@ -633,6 +647,10 @@ asm
popl %ebp
movzwl %cx,%eax
shrl $3,%eax
+ cmpw $40,ScreenWidth
+ jne .Lmorethan40cols
+ shrl $1,%eax
+.Lmorethan40cols:
incl %eax
jmp .Lexit
.LGetMouseXError:
@@ -724,15 +742,18 @@ end;
procedure DoCustomMouse(b : boolean);
begin
- HideMouse;
lockmouse;
+ CustomMouse_HideCount:=1;
oldmousex:=-1;
oldmousey:=-1;
- SetMouseXRange(0,(screenwidth-1)*8);
+ if ScreenWidth=40 then
+ SetMouseXRange(0,(screenwidth-1)*16)
+ else
+ SetMouseXRange(0,(screenwidth-1)*8);
SetMouseYRange(0,(screenheight-1)*8);
if b then
begin
- mouseisvisible:=false;
+ CustomMouse_MouseIsVisible:=false;
drawmousecursor:=true;
end
else
diff --git a/packages/rtl-console/src/go32v2/video.pp b/packages/rtl-console/src/go32v2/video.pp
index e338824a4c..8733a162a0 100644
--- a/packages/rtl-console/src/go32v2/video.pp
+++ b/packages/rtl-console/src/go32v2/video.pp
@@ -194,12 +194,8 @@ begin
end;
procedure SysUpdateScreen(Force: Boolean);
-var
- Is_Mouse_Vis: boolean;
begin
- Is_Mouse_Vis := MouseIsVisible; {MouseIsVisible is from Mouse unit}
- if Is_Mouse_Vis then
- HideMouse;
+ HideMouse;
if not force then
begin
asm
@@ -221,8 +217,7 @@ begin
dosmemput(videoseg,0,videobuf^,VideoBufSize);
move(videobuf^,oldvideobuf^,VideoBufSize);
end;
- if Is_Mouse_Vis then
- ShowMouse;
+ ShowMouse;
end;
Procedure DoSetVideoMode(Params: Longint);
@@ -283,14 +278,14 @@ begin
Dec(I);
If SysSetVideoMode then
begin
- If (I<SysVideoModeCount-1) then
- DoSetVideoMode(I)
- else
- SetVideo8x8;
- ScreenWidth:=SysVMD[I].Col;
- ScreenHeight:=SysVMD[I].Row;
- ScreenColor:=SysVMD[I].Color;
- DoCustomMouse(false);
+ If (I<SysVideoModeCount-1) then
+ DoSetVideoMode(I)
+ else
+ SetVideo8x8;
+ ScreenWidth:=SysVMD[I].Col;
+ ScreenHeight:=SysVMD[I].Row;
+ ScreenColor:=SysVMD[I].Color;
+ DoCustomMouse(false);
end;
end;
diff --git a/packages/rtl-console/src/inc/keybrdh.inc b/packages/rtl-console/src/inc/keybrdh.inc
index ae1409b171..327550d4ba 100644
--- a/packages/rtl-console/src/inc/keybrdh.inc
+++ b/packages/rtl-console/src/inc/keybrdh.inc
@@ -20,8 +20,13 @@ const
type
TKeyEvent = Cardinal;
TKeyRecord = packed record
+{$IFDEF ENDIAN_LITTLE}
KeyCode : Word;
ShiftState, Flags : Byte;
+{$ELSE}
+ Flags, ShiftState : Byte;
+ KeyCode : Word;
+{$ENDIF}
end;
{ The structure of a TKeyEvent follows in LSB-MSB order:
diff --git a/packages/rtl-console/src/morphos/keyboard.pp b/packages/rtl-console/src/morphos/keyboard.pp
deleted file mode 100644
index f19830f0ab..0000000000
--- a/packages/rtl-console/src/morphos/keyboard.pp
+++ /dev/null
@@ -1,1170 +0,0 @@
-{
- This file is part of the Free Pascal run time library.
- Copyright (c) 2006 by Karoly Balogh
-
- Keyboard unit for MorphOS and Amiga
-
- 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 Keyboard;
-interface
-
-{$i keybrdh.inc}
-
-implementation
-
-{ WARNING: Keyboard-Drivers (i.e. german) will only work under WinNT.
- 95 and 98 do not support keyboard-drivers other than us for win32
- console-apps. So we always get the keys in us-keyboard layout
- from Win9x.
-}
-
-
-uses
- video, exec,intuition, inputevent, mouse;
-
-{$i keyboard.inc}
-
-var
- lastShiftState : byte; {set by handler for PollShiftStateEvent}
- oldmousex : longint;
- oldmousey : longint;
- oldbuttons: word;
-
-
-{*
-const MaxQueueSize = 120;
- FrenchKeyboard = $040C040C;
-
-var
- keyboardeventqueue : array[0..maxqueuesize] of TKeyEventRecord;
- nextkeyevent,nextfreekeyevent : longint;
- newKeyEvent : THandle; {sinaled if key is available}
- lockVar : TCriticalSection; {for queue access}
- lastShiftState : byte; {set by handler for PollShiftStateEvent}
- altNumActive : boolean; {for alt+0..9}
- altNumBuffer : string [3];
- { used for keyboard specific stuff }
- KeyBoardLayout : HKL;
- Inited : Boolean;
- HasAltGr : Boolean = false;
-
-
-procedure incqueueindex(var l : longint);
-
- begin
- inc(l);
- { wrap around? }
- if l>maxqueuesize then
- l:=0;
- end;
-
-function keyEventsInQueue : boolean;
-begin
- keyEventsInQueue := (nextkeyevent <> nextfreekeyevent);
-end;
-
-function rightistruealt(dw:cardinal):boolean; // inline ?
-// used to wrap checks for right alt/altgr.
-begin
- rightistruealt:=true;
- if hasaltgr then
- rightistruealt:=(dw and RIGHT_ALT_PRESSED)=0;
-end;
-
-
-{ gets or peeks the next key from the queue, does not wait for new keys }
-function getKeyEventFromQueue (VAR t : TKeyEventRecord; Peek : boolean) : boolean;
-begin
- if not Inited then
- begin
- getKeyEventFromQueue := false;
- exit;
- end;
- EnterCriticalSection (lockVar);
- if keyEventsInQueue then
- begin
- t := keyboardeventqueue[nextkeyevent];
- if not peek then incqueueindex (nextkeyevent);
- getKeyEventFromQueue := true;
- if not keyEventsInQueue then ResetEvent (newKeyEvent);
- end else
- begin
- getKeyEventFromQueue := false;
- ResetEvent (newKeyEvent);
- end;
- LeaveCriticalSection (lockVar);
-end;
-
-
-{ gets the next key from the queue, does wait for new keys }
-function getKeyEventFromQueueWait (VAR t : TKeyEventRecord) : boolean;
-begin
- if not Inited then
- begin
- getKeyEventFromQueueWait := false;
- exit;
- end;
- WaitForSingleObject (newKeyEvent, dword(INFINITE));
- getKeyEventFromQueueWait := getKeyEventFromQueue (t, false);
-end;
-
-{ translate win32 shift-state to keyboard shift state }
-function transShiftState (ControlKeyState : dword) : byte;
-var b : byte;
-begin
- b := 0;
- if ControlKeyState and SHIFT_PRESSED <> 0 then { win32 makes no difference between left and right shift }
- b := b or kbShift;
- if (ControlKeyState and LEFT_CTRL_PRESSED <> 0) or
- (ControlKeyState and RIGHT_CTRL_PRESSED <> 0) then
- b := b or kbCtrl;
- if (ControlKeyState and LEFT_ALT_PRESSED <> 0) or
- (ControlKeyState and RIGHT_ALT_PRESSED <> 0) then
- b := b or kbAlt;
- transShiftState := b;
-end;
-
-{ The event-Handler thread from the unit event will call us if a key-event
- is available }
-
-procedure HandleKeyboard(var ir:INPUT_RECORD);
-var
- i : longint;
- c : word;
- altc : char;
- addThis: boolean;
-begin
- with ir.Event.KeyEvent do
- begin
- { key up events are ignored (except alt) }
- if bKeyDown then
- begin
- EnterCriticalSection (lockVar);
- for i:=1 to wRepeatCount do
- begin
- addThis := true;
- if (dwControlKeyState and LEFT_ALT_PRESSED <> 0) or
- (dwControlKeyState and RIGHT_ALT_PRESSED <> 0) then {alt pressed}
- if ((wVirtualKeyCode >= $60) and (wVirtualKeyCode <= $69)) or
- ((dwControlKeyState and ENHANCED_KEY = 0) and
- (wVirtualKeyCode in [$C{VK_CLEAR generated by keypad 5},
- $21 {VK_PRIOR (PgUp) 9},
- $22 {VK_NEXT (PgDown) 3},
- $23 {VK_END 1},
- $24 {VK_HOME 7},
- $25 {VK_LEFT 4},
- $26 {VK_UP 8},
- $27 {VK_RIGHT 6},
- $28 {VK_DOWN 2},
- $2D {VK_INSERT 0}])) then {0..9 on NumBlock}
- begin
- if length (altNumBuffer) = 3 then
- delete (altNumBuffer,1,1);
- case wVirtualKeyCode of
- $60..$69 : altc:=char (wVirtualKeyCode-48);
- $c : altc:='5';
- $21 : altc:='9';
- $22 : altc:='3';
- $23 : altc:='1';
- $24 : altc:='7';
- $25 : altc:='4';
- $26 : altc:='8';
- $27 : altc:='6';
- $28 : altc:='2';
- $2D : altc:='0';
- end;
- altNumBuffer := altNumBuffer + altc;
- altNumActive := true;
- addThis := false;
- end else
- begin
- altNumActive := false;
- altNumBuffer := '';
- end;
- if addThis then
- begin
- keyboardeventqueue[nextfreekeyevent]:=
- ir.Event.KeyEvent;
- incqueueindex(nextfreekeyevent);
- end;
- end;
-
- lastShiftState := transShiftState (dwControlKeyState); {save it for PollShiftStateEvent}
- SetEvent (newKeyEvent); {event that a new key is available}
- LeaveCriticalSection (lockVar);
- end
- else
- begin
- lastShiftState := transShiftState (dwControlKeyState); {save it for PollShiftStateEvent}
- {for alt-number we have to look for alt-key release}
- if altNumActive then
- begin
- if (wVirtualKeyCode = $12) then {alt-released}
- begin
- if altNumBuffer <> '' then {numbers with alt pressed?}
- begin
- Val (altNumBuffer, c, i);
- if (i = 0) and (c <= 255) then {valid number?}
- begin {add to queue}
- fillchar (ir, sizeof (ir), 0);
- bKeyDown := true;
- AsciiChar := char (c);
- {and add to queue}
- EnterCriticalSection (lockVar);
- keyboardeventqueue[nextfreekeyevent]:=ir.Event.KeyEvent;
- incqueueindex(nextfreekeyevent);
- SetEvent (newKeyEvent); {event that a new key is available}
- LeaveCriticalSection (lockVar);
- end;
- end;
- altNumActive := false; {clear alt-buffer}
- altNumBuffer := '';
- end;
- end;
- end;
- end;
-end;
-*}
-
-{*
-procedure CheckAltGr;
-
-var ahkl : HKL;
- i : integer;
-
- begin
- HasAltGr:=false;
-
- ahkl:=GetKeyboardLayout(0);
- i:=$20;
- while i<$100 do
- begin
- // <MSDN>
- // For keyboard layouts that use the right-hand ALT key as ashift key
- // (for example, the French keyboard layout), the shift state is
- // represented by the value 6, because the right-hand ALT key is
- // converted internally into CTRL+ALT.
- // </MSDN>
- if (HIBYTE(VkKeyScanEx(chr(i),ahkl))=6) then
- begin
- HasAltGr:=true;
- break;
- end;
- inc(i);
- end;
-end;
-*}
-
-
-
-procedure SysInitKeyboard;
-begin
-// writeln('sysinitkeyboard');
- lastShiftState:=0;
- oldmousex:=-1;
- oldmousey:=-1;
- oldbuttons:=0;
-{*
- KeyBoardLayout:=GetKeyboardLayout(0);
- lastShiftState := 0;
- FlushConsoleInputBuffer(StdInputHandle);
- newKeyEvent := CreateEvent (nil, // address of security attributes
- true, // flag for manual-reset event
- false, // flag for initial state
- nil); // address of event-object name
- if newKeyEvent = INVALID_HANDLE_VALUE then
- begin
- // what to do here ????
- RunError (217);
- end;
- InitializeCriticalSection (lockVar);
- altNumActive := false;
- altNumBuffer := '';
-
- nextkeyevent:=0;
- nextfreekeyevent:=0;
- checkaltgr;
- SetKeyboardEventHandler (@HandleKeyboard);
- Inited:=true;
-*}
-end;
-
-procedure SysDoneKeyboard;
-begin
-{*
- SetKeyboardEventHandler(nil); {hangs???}
- DeleteCriticalSection (lockVar);
- FlushConsoleInputBuffer(StdInputHandle);
- closeHandle (newKeyEvent);
- Inited:=false;
-*}
-end;
-
-{$define USEKEYCODES}
-
-{Translatetable Win32 -> Dos for Special Keys = Function Key, Cursor Keys
- and Keys other than numbers on numblock (to make fv happy) }
-{combinations under dos: Shift+Ctrl: same as Ctrl
- Shift+Alt : same as alt
-
-{* Ctrl+Alt : nothing (here we get it like alt)}
-{ifdef USEKEYCODES}
- { use positive values for ScanCode we want to set
- 0 for key where we should leave the scancode
- -1 for OEM specifc keys
- -2 for unassigned
- -3 for Kanji systems ???
- }
-
-const
- Unassigned = -2;
- Kanji = -3;
- OEM_specific = -1;
- KeyToQwertyScan : array [0..255] of integer =
- (
- { 00 } 0,
- { 01 VK_LBUTTON } 0,
- { 02 VK_RBUTTON } 0,
- { 03 VK_CANCEL } 0,
- { 04 VK_MBUTTON } 0,
- { 05 unassigned } -2,
- { 06 unassigned } -2,
- { 07 unassigned } -2,
- { 08 VK_BACK } $E,
- { 09 VK_TAB } $F,
- { 0A unassigned } -2,
- { 0B unassigned } -2,
- { 0C VK_CLEAR ?? } 0,
- { 0D VK_RETURN } 0,
- { 0E unassigned } -2,
- { 0F unassigned } -2,
- { 10 VK_SHIFT } 0,
- { 11 VK_CONTROL } 0,
- { 12 VK_MENU (Alt key) } 0,
- { 13 VK_PAUSE } 0,
- { 14 VK_CAPITAL (Caps Lock) } 0,
- { 15 Reserved for Kanji systems} -3,
- { 16 Reserved for Kanji systems} -3,
- { 17 Reserved for Kanji systems} -3,
- { 18 Reserved for Kanji systems} -3,
- { 19 Reserved for Kanji systems} -3,
- { 1A unassigned } -2,
- { 1B VK_ESCAPE } $1,
- { 1C Reserved for Kanji systems} -3,
- { 1D Reserved for Kanji systems} -3,
- { 1E Reserved for Kanji systems} -3,
- { 1F Reserved for Kanji systems} -3,
- { 20 VK_SPACE} 0,
- { 21 VK_PRIOR (PgUp) } 0,
- { 22 VK_NEXT (PgDown) } 0,
- { 23 VK_END } 0,
- { 24 VK_HOME } 0,
- { 25 VK_LEFT } 0,
- { 26 VK_UP } 0,
- { 27 VK_RIGHT } 0,
- { 28 VK_DOWN } 0,
- { 29 VK_SELECT ??? } 0,
- { 2A OEM specific !! } -1,
- { 2B VK_EXECUTE } 0,
- { 2C VK_SNAPSHOT } 0,
- { 2D VK_INSERT } 0,
- { 2E VK_DELETE } 0,
- { 2F VK_HELP } 0,
- { 30 VK_0 '0' } 11,
- { 31 VK_1 '1' } 2,
- { 32 VK_2 '2' } 3,
- { 33 VK_3 '3' } 4,
- { 34 VK_4 '4' } 5,
- { 35 VK_5 '5' } 6,
- { 36 VK_6 '6' } 7,
- { 37 VK_7 '7' } 8,
- { 38 VK_8 '8' } 9,
- { 39 VK_9 '9' } 10,
- { 3A unassigned } -2,
- { 3B unassigned } -2,
- { 3C unassigned } -2,
- { 3D unassigned } -2,
- { 3E unassigned } -2,
- { 3F unassigned } -2,
- { 40 unassigned } -2,
- { 41 VK_A 'A' } $1E,
- { 42 VK_B 'B' } $30,
- { 43 VK_C 'C' } $2E,
- { 44 VK_D 'D' } $20,
- { 45 VK_E 'E' } $12,
- { 46 VK_F 'F' } $21,
- { 47 VK_G 'G' } $22,
- { 48 VK_H 'H' } $23,
- { 49 VK_I 'I' } $17,
- { 4A VK_J 'J' } $24,
- { 4B VK_K 'K' } $25,
- { 4C VK_L 'L' } $26,
- { 4D VK_M 'M' } $32,
- { 4E VK_N 'N' } $31,
- { 4F VK_O 'O' } $18,
- { 50 VK_P 'P' } $19,
- { 51 VK_Q 'Q' } $10,
- { 52 VK_R 'R' } $13,
- { 53 VK_S 'S' } $1F,
- { 54 VK_T 'T' } $14,
- { 55 VK_U 'U' } $16,
- { 56 VK_V 'V' } $2F,
- { 57 VK_W 'W' } $11,
- { 58 VK_X 'X' } $2D,
- { 59 VK_Y 'Y' } $15,
- { 5A VK_Z 'Z' } $2C,
- { 5B unassigned } -2,
- { 5C unassigned } -2,
- { 5D unassigned } -2,
- { 5E unassigned } -2,
- { 5F unassigned } -2,
- { 60 VK_NUMPAD0 NumKeyPad '0' } 11,
- { 61 VK_NUMPAD1 NumKeyPad '1' } 2,
- { 62 VK_NUMPAD2 NumKeyPad '2' } 3,
- { 63 VK_NUMPAD3 NumKeyPad '3' } 4,
- { 64 VK_NUMPAD4 NumKeyPad '4' } 5,
- { 65 VK_NUMPAD5 NumKeyPad '5' } 6,
- { 66 VK_NUMPAD6 NumKeyPad '6' } 7,
- { 67 VK_NUMPAD7 NumKeyPad '7' } 8,
- { 68 VK_NUMPAD8 NumKeyPad '8' } 9,
- { 69 VK_NUMPAD9 NumKeyPad '9' } 10,
- { 6A VK_MULTIPLY } 0,
- { 6B VK_ADD } 0,
- { 6C VK_SEPARATOR } 0,
- { 6D VK_SUBSTRACT } 0,
- { 6E VK_DECIMAL } 0,
- { 6F VK_DIVIDE } 0,
- { 70 VK_F1 'F1' } $3B,
- { 71 VK_F2 'F2' } $3C,
- { 72 VK_F3 'F3' } $3D,
- { 73 VK_F4 'F4' } $3E,
- { 74 VK_F5 'F5' } $3F,
- { 75 VK_F6 'F6' } $40,
- { 76 VK_F7 'F7' } $41,
- { 77 VK_F8 'F8' } $42,
- { 78 VK_F9 'F9' } $43,
- { 79 VK_F10 'F10' } $44,
- { 7A VK_F11 'F11' } $57,
- { 7B VK_F12 'F12' } $58,
- { 7C VK_F13 } 0,
- { 7D VK_F14 } 0,
- { 7E VK_F15 } 0,
- { 7F VK_F16 } 0,
- { 80 VK_F17 } 0,
- { 81 VK_F18 } 0,
- { 82 VK_F19 } 0,
- { 83 VK_F20 } 0,
- { 84 VK_F21 } 0,
- { 85 VK_F22 } 0,
- { 86 VK_F23 } 0,
- { 87 VK_F24 } 0,
- { 88 unassigned } -2,
- { 89 VK_NUMLOCK } 0,
- { 8A VK_SCROLL } 0,
- { 8B unassigned } -2,
- { 8C unassigned } -2,
- { 8D unassigned } -2,
- { 8E unassigned } -2,
- { 8F unassigned } -2,
- { 90 unassigned } -2,
- { 91 unassigned } -2,
- { 92 unassigned } -2,
- { 93 unassigned } -2,
- { 94 unassigned } -2,
- { 95 unassigned } -2,
- { 96 unassigned } -2,
- { 97 unassigned } -2,
- { 98 unassigned } -2,
- { 99 unassigned } -2,
- { 9A unassigned } -2,
- { 9B unassigned } -2,
- { 9C unassigned } -2,
- { 9D unassigned } -2,
- { 9E unassigned } -2,
- { 9F unassigned } -2,
- { A0 unassigned } -2,
- { A1 unassigned } -2,
- { A2 unassigned } -2,
- { A3 unassigned } -2,
- { A4 unassigned } -2,
- { A5 unassigned } -2,
- { A6 unassigned } -2,
- { A7 unassigned } -2,
- { A8 unassigned } -2,
- { A9 unassigned } -2,
- { AA unassigned } -2,
- { AB unassigned } -2,
- { AC unassigned } -2,
- { AD unassigned } -2,
- { AE unassigned } -2,
- { AF unassigned } -2,
- { B0 unassigned } -2,
- { B1 unassigned } -2,
- { B2 unassigned } -2,
- { B3 unassigned } -2,
- { B4 unassigned } -2,
- { B5 unassigned } -2,
- { B6 unassigned } -2,
- { B7 unassigned } -2,
- { B8 unassigned } -2,
- { B9 unassigned } -2,
- { BA OEM specific } 0,
- { BB OEM specific } 0,
- { BC OEM specific } 0,
- { BD OEM specific } 0,
- { BE OEM specific } 0,
- { BF OEM specific } 0,
- { C0 OEM specific } 0,
- { C1 unassigned } -2,
- { C2 unassigned } -2,
- { C3 unassigned } -2,
- { C4 unassigned } -2,
- { C5 unassigned } -2,
- { C6 unassigned } -2,
- { C7 unassigned } -2,
- { C8 unassigned } -2,
- { C9 unassigned } -2,
- { CA unassigned } -2,
- { CB unassigned } -2,
- { CC unassigned } -2,
- { CD unassigned } -2,
- { CE unassigned } -2,
- { CF unassigned } -2,
- { D0 unassigned } -2,
- { D1 unassigned } -2,
- { D2 unassigned } -2,
- { D3 unassigned } -2,
- { D4 unassigned } -2,
- { D5 unassigned } -2,
- { D6 unassigned } -2,
- { D7 unassigned } -2,
- { D8 unassigned } -2,
- { D9 unassigned } -2,
- { DA unassigned } -2,
- { DB OEM specific } 0,
- { DC OEM specific } 0,
- { DD OEM specific } 0,
- { DE OEM specific } 0,
- { DF OEM specific } 0,
- { E0 OEM specific } 0,
- { E1 OEM specific } 0,
- { E2 OEM specific } 0,
- { E3 OEM specific } 0,
- { E4 OEM specific } 0,
- { E5 unassigned } -2,
- { E6 OEM specific } 0,
- { E7 unassigned } -2,
- { E8 unassigned } -2,
- { E9 OEM specific } 0,
- { EA OEM specific } 0,
- { EB OEM specific } 0,
- { EC OEM specific } 0,
- { ED OEM specific } 0,
- { EE OEM specific } 0,
- { EF OEM specific } 0,
- { F0 OEM specific } 0,
- { F1 OEM specific } 0,
- { F2 OEM specific } 0,
- { F3 OEM specific } 0,
- { F4 OEM specific } 0,
- { F5 OEM specific } 0,
- { F6 unassigned } -2,
- { F7 unassigned } -2,
- { F8 unassigned } -2,
- { F9 unassigned } -2,
- { FA unassigned } -2,
- { FB unassigned } -2,
- { FC unassigned } -2,
- { FD unassigned } -2,
- { FE unassigned } -2,
- { FF unassigned } -2
- );
-{$endif USEKEYCODES}
-type TTEntryT = packed record
- n,s,c,a : byte; {normal,shift, ctrl, alt, normal only for f11,f12}
- end;
-*}
-{*
-CONST
- DosTT : ARRAY [$3B..$58] OF TTEntryT =
- ((n : $3B; s : $54; c : $5E; a: $68), {3B F1}
- (n : $3C; s : $55; c : $5F; a: $69), {3C F2}
- (n : $3D; s : $56; c : $60; a: $6A), {3D F3}
- (n : $3E; s : $57; c : $61; a: $6B), {3E F4}
- (n : $3F; s : $58; c : $62; a: $6C), {3F F5}
- (n : $40; s : $59; c : $63; a: $6D), {40 F6}
- (n : $41; s : $5A; c : $64; a: $6E), {41 F7}
- (n : $42; s : $5B; c : $65; a: $6F), {42 F8}
- (n : $43; s : $5C; c : $66; a: $70), {43 F9}
- (n : $44; s : $5D; c : $67; a: $71), {44 F10}
- (n : $45; s : $00; c : $00; a: $00), {45 ???}
- (n : $46; s : $00; c : $00; a: $00), {46 ???}
- (n : $47; s : $47; c : $77; a: $97), {47 Home}
- (n : $48; s : $00; c : $8D; a: $98), {48 Up}
- (n : $49; s : $49; c : $84; a: $99), {49 PgUp}
- (n : $4A; s : $00; c : $8E; a: $4A), {4A -}
- (n : $4B; s : $4B; c : $73; a: $9B), {4B Left}
- (n : $4C; s : $00; c : $00; a: $00), {4C ???}
- (n : $4D; s : $4D; c : $74; a: $9D), {4D Right}
- (n : $4E; s : $00; c : $90; a: $4E), {4E +}
- (n : $4F; s : $4F; c : $75; a: $9F), {4F End}
- (n : $50; s : $50; c : $91; a: $A0), {50 Down}
- (n : $51; s : $51; c : $76; a: $A1), {51 PgDown}
- (n : $52; s : $52; c : $92; a: $A2), {52 Insert}
- (n : $53; s : $53; c : $93; a: $A3), {53 Del}
- (n : $54; s : $00; c : $00; a: $00), {54 ???}
- (n : $55; s : $00; c : $00; a: $00), {55 ???}
- (n : $56; s : $00; c : $00; a: $00), {56 ???}
- (n : $85; s : $87; c : $89; a: $8B), {57 F11}
- (n : $86; s : $88; c : $8A; a: $8C)); {58 F12}
-
- DosTT09 : ARRAY [$02..$0F] OF TTEntryT =
- ((n : $00; s : $00; c : $00; a: $78), {02 1 }
- (n : $00; s : $00; c : $00; a: $79), {03 2 }
- (n : $00; s : $00; c : $00; a: $7A), {04 3 }
- (n : $00; s : $00; c : $00; a: $7B), {05 4 }
- (n : $00; s : $00; c : $00; a: $7C), {06 5 }
- (n : $00; s : $00; c : $00; a: $7D), {07 6 }
- (n : $00; s : $00; c : $00; a: $7E), {08 7 }
- (n : $00; s : $00; c : $00; a: $7F), {09 8 }
- (n : $00; s : $00; c : $00; a: $80), {0A 9 }
- (n : $00; s : $00; c : $00; a: $81), {0B 0 }
- (n : $00; s : $00; c : $00; a: $82), {0C ß }
- (n : $00; s : $00; c : $00; a: $00), {0D}
- (n : $00; s : $09; c : $00; a: $00), {0E Backspace}
- (n : $00; s : $0F; c : $94; a: $00)); {0F Tab }
-
-*}
-
-{*
-function TranslateKey (t : TKeyEventRecord) : TKeyEvent;
-var key : TKeyEvent;
- ss : byte;
-{$ifdef USEKEYCODES}
- ScanCode : byte;
-{$endif USEKEYCODES}
- b : byte;
-begin
- Key := 0;
- if t.bKeyDown then
- begin
- { ascii-char is <> 0 if not a specal key }
- { we return it here otherwise we have to translate more later }
- if t.AsciiChar <> #0 then
- begin
- if (t.dwControlKeyState and ENHANCED_KEY <> 0) and
- (t.wVirtualKeyCode = $DF) then
- begin
- t.dwControlKeyState:=t.dwControlKeyState and not ENHANCED_KEY;
- t.wVirtualKeyCode:=VK_DIVIDE;
- t.AsciiChar:='/';
- end;
- {drivers needs scancode, we return it here as under dos and linux
- with $03000000 = the lowest two bytes is the physical representation}
-{$ifdef USEKEYCODES}
- Scancode:=KeyToQwertyScan[t.wVirtualKeyCode AND $00FF];
- If ScanCode>0 then
- t.wVirtualScanCode:=ScanCode;
- Key := byte (t.AsciiChar) + (t.wVirtualScanCode shl 8) + $03000000;
- ss := transShiftState (t.dwControlKeyState);
- key := key or (ss shl 16);
- if (ss and kbAlt <> 0) and rightistruealt(t.dwControlKeyState) then
- key := key and $FFFFFF00;
-{$else not USEKEYCODES}
- Key := byte (t.AsciiChar) + ((t.wVirtualScanCode AND $00FF) shl 8) + $03000000;
-{$endif not USEKEYCODES}
- end else
- begin
-{$ifdef USEKEYCODES}
- Scancode:=KeyToQwertyScan[t.wVirtualKeyCode AND $00FF];
- If ScanCode>0 then
- t.wVirtualScanCode:=ScanCode;
-{$endif not USEKEYCODES}
- translateKey := 0;
- { ignore shift,ctrl,alt,numlock,capslock alone }
- case t.wVirtualKeyCode of
- $0010, {shift}
- $0011, {ctrl}
- $0012, {alt}
- $0014, {capslock}
- $0090, {numlock}
- $0091, {scrollock}
- { This should be handled !! }
- { these last two are OEM specific
- this is not good !!! }
- $00DC, {^ : next key i.e. a is modified }
- { Strange on my keyboard this corresponds to double point over i or u PM }
- $00DD: exit; {´ and ` : next key i.e. e is modified }
- end;
-
- key := $03000000 + (t.wVirtualScanCode shl 8); { make lower 8 bit=0 like under dos }
- end;
- { Handling of ~ key as AltGr 2 }
- { This is also French keyboard specific !! }
- { but without this I can not get a ~ !! PM }
- { MvdV: not rightruealtised, since it already has frenchkbd guard}
- if (t.wVirtualKeyCode=$32) and
- (KeyBoardLayout = FrenchKeyboard) and
- (t.dwControlKeyState and RIGHT_ALT_PRESSED <> 0) then
- key:=(key and $ffffff00) or ord('~');
- { ok, now add Shift-State }
- ss := transShiftState (t.dwControlKeyState);
- key := key or (ss shl 16);
-
- { Reset Ascii-Char if Alt+Key, fv needs that, may be we
- need it for other special keys too
- 18 Sept 1999 AD: not for right Alt i.e. for AltGr+ß = \ on german keyboard }
- if ((ss and kbAlt <> 0) and rightistruealt(t.dwControlKeyState)) or
- (*
- { yes, we need it for cursor keys, 25=left, 26=up, 27=right,28=down}
- {aggg, this will not work because esc is also virtualKeyCode 27!!}
- {if (t.wVirtualKeyCode >= 25) and (t.wVirtualKeyCode <= 28) then}
- no VK_ESCAPE is $1B !!
- there was a mistake :
- VK_LEFT is $25 not 25 !! *)
- { not $2E VK_DELETE because its only the Keypad point !! PM }
- (t.wVirtualKeyCode in [$21..$28,$2C,$2D,$2F]) then
- { if t.wVirtualScanCode in [$47..$49,$4b,$4d,$4f,$50..$53] then}
- key := key and $FFFFFF00;
-
- {and translate to dos-scancodes to make fv happy, we will convert this
- back in translateKeyEvent}
-
- if rightistruealt(t.dwControlKeyState) then {not for alt-gr}
- if (t.wVirtualScanCode >= low (DosTT)) and
- (t.wVirtualScanCode <= high (dosTT)) then
- begin
- b := 0;
- if (ss and kbAlt) <> 0 then
- b := DosTT[t.wVirtualScanCode].a
- else
- if (ss and kbCtrl) <> 0 then
- b := DosTT[t.wVirtualScanCode].c
- else
- if (ss and kbShift) <> 0 then
- b := DosTT[t.wVirtualScanCode].s
- else
- b := DosTT[t.wVirtualScanCode].n;
- if b <> 0 then
- key := (key and $FFFF00FF) or (longint (b) shl 8);
- end;
-
- {Alt-0 to Alt-9}
- if rightistruealt(t.dwControlKeyState) then {not for alt-gr}
- if (t.wVirtualScanCode >= low (DosTT09)) and
- (t.wVirtualScanCode <= high (dosTT09)) then
- begin
- b := 0;
- if (ss and kbAlt) <> 0 then
- b := DosTT09[t.wVirtualScanCode].a
- else
- if (ss and kbCtrl) <> 0 then
- b := DosTT09[t.wVirtualScanCode].c
- else
- if (ss and kbShift) <> 0 then
- b := DosTT09[t.wVirtualScanCode].s
- else
- b := DosTT09[t.wVirtualScanCode].n;
- if b <> 0 then
- key := (key and $FFFF0000) or (longint (b) shl 8);
- end;
-
- TranslateKey := key;
- end;
- translateKey := Key;
-end;
-*}
-
-function hasMouseEvent(var x: integer; var y: integer; var btn: integer): boolean;
-begin
-// if
-end;
-
-
-
-//#define IsMsgPortEmpty(x) (((x)->mp_MsgList.lh_TailPred) == (struct Node *)(&(x)->mp_MsgList))
-
-function IsMsgPortEmpty(port: PMsgPort): boolean; inline;
-begin
- IsMsgPortEmpty:=(port^.mp_MsgList.lh_TailPred = @(port^.mp_MsgList));
-end;
-
-var
- KeyQueue: TKeyEvent;
-
-
-type
- rawCodeEntry = record
- rc,n,s,c,a : word; { raw code, normal, shift, ctrl, alt }
- end;
-
-const
- RCTABLE_MAXIDX = 17;
- rawCodeTable : array[0..RCTABLE_MAXIDX] of rawCodeEntry =
- ((rc: 68; n: $1C0D; s: $1C0D; c: $1C0A; a: $1C0D; ), // Enter // shift, alt?
- (rc: 71; n: $5200; s: $0500; c: $0400; a: $A200; ), // Insert
- (rc: 72; n: $4900; s: $4900; c: $8400; a: $9900; ), // PgUP // shift?
- (rc: 73; n: $5100; s: $5100; c: $7600; a: $A100; ), // PgDOWN // shift?
-
- (rc: 76; n: $4800; s: $4800; c: $8D00; a: $9800; ), // UP // shift?
- (rc: 77; n: $5000; s: $5000; c: $9100; a: $A000; ), // DOWN // shift?
- (rc: 78; n: $4D00; s: $4D00; c: $7400; a: $9D00; ), // RIGHT // shift?
- (rc: 79; n: $4B00; s: $4B00; c: $7300; a: $9B00; ), // LEFT // shift?
-
- (rc: 80; n: $3B00; s: $5400; c: $5E00; a: $6800; ), // F1
- (rc: 81; n: $3C00; s: $5500; c: $5F00; a: $6900; ), // F2
- (rc: 82; n: $3D00; s: $5600; c: $6000; a: $6A00; ), // F3
- (rc: 83; n: $3E00; s: $5700; c: $6100; a: $6B00; ), // F4
- (rc: 84; n: $3F00; s: $5800; c: $6200; a: $6C00; ), // F5
- (rc: 85; n: $4000; s: $5900; c: $6300; a: $6D00; ), // F6
- (rc: 86; n: $4100; s: $5A00; c: $6400; a: $6E00; ), // F7
- (rc: 87; n: $4200; s: $5B00; c: $6500; a: $6F00; ), // F8
- (rc: 88; n: $4300; s: $5C00; c: $6600; a: $7000; ), // F9
- (rc: 89; n: $4400; s: $5D00; c: $6700; a: $7100; ) // F10
- );
-
-function rcTableIdx(rc: longint): longint;
-var counter: longint;
-begin
- rcTableIdx := -1;
- counter := 0;
- while (rawCodeTable[counter].rc <> rc) and (counter <= RCTABLE_MAXIDX) do inc(counter);
- if (counter <= RCTABLE_MAXIDX) then rcTableIdx:=counter;
-end;
-
-
-function hasShift(iMsg: PIntuiMessage) : boolean; inline;
-begin
- hasShift:=false;
- if ((iMsg^.qualifier and IEQUALIFIER_LSHIFT) > 0) or
- ((iMsg^.qualifier and IEQUALIFIER_RSHIFT) > 0) then hasShift:=true;
-end;
-
-function hasCtrl(iMsg: PIntuiMessage) : boolean; inline;
-begin
- hasCtrl:=false;
- if ((iMsg^.qualifier and IEQUALIFIER_CONTROL) > 0) then hasCtrl:=true;
-end;
-
-function hasAlt(iMsg: PIntuiMessage) : boolean; inline;
-begin
- hasAlt:=false;
- if ((iMsg^.qualifier and IEQUALIFIER_LALT) > 0) or
- ((iMsg^.qualifier and IEQUALIFIER_RALT) > 0) then hasAlt:=true;
-end;
-
-function rcTableCode(iMsg: PIntuiMessage; Idx: longint): longint;
-begin
- if (Idx < 0) or (Idx > RCTABLE_MAXIDX) then begin
- rcTableCode:=-1;
- exit;
- end;
-
- if hasShift(iMsg) then rcTableCode:=rawCodeTable[Idx].s else
- if hasCtrl(iMsg) then rcTableCode:=rawCodeTable[Idx].c else
- if hasAlt(iMsg) then rcTableCode:=rawCodeTable[Idx].a else
- rcTableCode:=rawCodeTable[Idx].n;
-end;
-
-procedure setShiftState(iMsg: PIntuiMessage);
-begin
- lastShiftState:=0;
- if ((iMsg^.qualifier and IEQUALIFIER_LSHIFT) > 0) then lastShiftState := lastShiftState or $01;
- if ((iMsg^.qualifier and IEQUALIFIER_RSHIFT) > 0) then lastShiftState := lastShiftState or $02;
- if hasCtrl(iMsg) then lastShiftState := lastShiftState or $04;
- if hasAlt(iMsg) then lastShiftState := lastShiftState or $08;
- if ((iMsg^.qualifier and IEQUALIFIER_NUMERICPAD) > 0) then lastShiftState := lastShiftState or $20;
- if ((iMsg^.qualifier and IEQUALIFIER_CAPSLOCK) > 0) then lastShiftState := lastShiftState or $40;
-end;
-
-
-function SysPollKeyEvent: TKeyEvent;
-//var t : TKeyEventRecord;
-// k : TKeyEvent;
-var
- mouseevent : boolean;
- iMsg : PIntuiMessage;
- KeyCode: longint;
- tmpFCode: word;
- tmpIdx : longint;
- mousex : longint;
- mousey : longint;
- me : TMouseEvent;
-begin
- KeyCode:=0;
- SysPollKeyEvent:=0;
- FillChar(me,sizeof(TMouseEvent),0);
-
- if KeyQueue<>0 then begin
- SysPollKeyEvent:=KeyQueue;
- exit;
- end;
-
- repeat
- mouseevent:=false;
-
- if videoWindow<>nil then begin
- if IsMsgPortEmpty(videoWindow^.UserPort) then exit;
- end;
-
- PMessage(iMsg):=GetMsg(videoWindow^.UserPort);
- if (iMsg<>nil) then begin
-
- // set Shift state qualifiers. do this for all messages we get.
- setShiftState(iMsg);
-
- case (iMsg^.iClass) of
- IDCMP_CLOSEWINDOW: begin
- GotCloseWindow;
- end;
- IDCMP_CHANGEWINDOW: begin
- GotResizeWindow;
- end;
- IDCMP_MOUSEBUTTONS: begin
- mouseevent:=true;
- me.x:=(iMsg^.MouseX - videoWindow^.BorderLeft) div 8;
- me.y:=(iMsg^.MouseY - videoWindow^.BorderTop) div 16;
- case iMsg^.code of
- SELECTDOWN: begin
- //writeln('left down!');
- me.Action:=MouseActionDown;
- oldbuttons:=oldbuttons or MouseLeftButton;
- me.Buttons:=oldbuttons;
- PutMouseEvent(me);
- end;
- SELECTUP: begin
- //writeln('left up!');
- me.Action:=MouseActionUp;
- oldbuttons:=oldbuttons and (not MouseLeftButton);
- me.Buttons:=oldbuttons;
- PutMouseEvent(me);
- end;
- MENUDOWN: begin
- //writeln('right down!');
- me.Action:=MouseActionDown;
- oldbuttons:=oldbuttons or MouseRightButton;
- me.Buttons:=oldbuttons;
- PutMouseEvent(me);
- end;
- MENUUP: begin
- //writeln('right up!');
- me.Action:=MouseActionUp;
- oldbuttons:=oldbuttons and (not MouseRightButton);
- me.Buttons:=oldbuttons;
- PutMouseEvent(me);
- end;
- end;
- end;
- IDCMP_MOUSEMOVE: begin
- mouseevent:=true;
- mousex:=(iMsg^.MouseX - videoWindow^.BorderLeft) div 8;
- mousey:=(iMsg^.MouseY - videoWindow^.BorderTop) div 16;
- if (mousex >= 0) and (mousey >= 0) and
- (mousex < video.ScreenWidth) and (mousey < video.ScreenHeight) and
- ((mousex <> oldmousex) or (mousey <> oldmousey))
- then begin
-// //writeln('mousemove:',mousex,'/',mousey,' oldbutt:',oldbuttons);
- me.Action:=MouseActionMove;
- me.Buttons:=oldbuttons;
- me.X:=mousex;
- me.Y:=mousey;
- oldmousex:=mousex;
- oldmousey:=mousey;
- PutMouseEvent(me);
- end;
- end;
- IDCMP_VANILLAKEY: begin
- //writeln('vanilla keycode: ',iMsg^.code);
- KeyCode:=iMsg^.code;
- case (iMsg^.code) of
- 09: KeyCode:=$0F09; // Tab
- 13: KeyCode:=$1C0D; // Enter
- 27: KeyCode:=$011B; // ESC
-
- 127: KeyCode:=$5300; // Del
-
- 164: KeyCode:=$1200; // Alt-E //XXX: conflicts with Alt-Z(?)
- 174: KeyCode:=$1300; // Alt-R
- 176: KeyCode:=$1100; // Alt-W
- 215: KeyCode:=$2D00; // Alt-X
- 229: KeyCode:=$1000; // Alt-Q
- 254: KeyCode:=$1400; // Alt-T
-
- end;
- end;
- IDCMP_RAWKEY: begin
- //writeln('raw keycode: ',iMsg^.code);
-
- case (iMsg^.code) of
- 35: KeyCode:=$2100; // Alt-F
-
- 112: KeyCode:=$4700; // HOME
- 113: KeyCode:=$4F00; // END
-
- else
- KeyCode:=rcTableCode(iMsg,rcTableIdx(iMsg^.code));
-
- end;
- end;
- else begin
- KeyCode:=-1;
- end;
- end;
- ReplyMsg(PMessage(iMsg));
- end;
- until (not mouseevent);
-
- // XXX: huh :)
-
- if KeyCode>=0 then begin
- SysPollKeyEvent:=KeyCode or (kbPhys shl 24);
- end else begin
- SysPollKeyEvent:=0;
- end;
-
- KeyQueue:=SysPollKeyEvent;
-
-{*
- SysPollKeyEvent := 0;
- if getKeyEventFromQueue (t, true) then
- begin
- { we get an enty for shift, ctrl, alt... }
- k := translateKey (t);
- while (k = 0) do
- begin
- getKeyEventFromQueue (t, false); {remove it}
- if not getKeyEventFromQueue (t, true) then exit;
- k := translateKey (t)
- end;
- SysPollKeyEvent := k;
- end;
-*}
-end;
-
-
-function SysGetKeyEvent: TKeyEvent;
-//var t : TKeyEventRecord;
-// key : TKeyEvent;
-var
- iMsg : PIntuiMessage;
- res : TKeyEvent;
-begin
-{*
- key := 0;
- repeat
- if getKeyEventFromQueueWait (t) then
- key := translateKey (t);
- until key <> 0;
-{$ifdef DEBUG}
- last_ir.Event.KeyEvent:=t;
-{$endif DEBUG}
- SysGetKeyEvent := key;
-*}
-
-// writeln('keyboard/SysGetKeyEvent');
- if videoWindow<>nil then begin
- if KeyQueue <> 0 then begin
- SysGetKeyEvent := KeyQueue;
- KeyQueue:=0;
- exit;
- end;
- repeat
- WaitPort(videoWindow^.UserPort);
- res:=SysPollKeyEvent;
- until res<>0;
- end;
-
- SysGetKeyEvent:=res;
-
-{*
- if videoWindow<>nil then begin
- WaitPort(videoWindow^.UserPort);
- PMessage(iMsg):=GetMsg(videoWindow^.UserPort);
- if (iMsg<>nil) then begin
- writeln('got msg!');
- ReplyMsg(PMessage(iMsg));
- end;
- end;
-*}
-end;
-
-
-
-function SysTranslateKeyEvent(KeyEvent: TKeyEvent): TKeyEvent;
-begin
-{*
- if KeyEvent and $03000000 = $03000000 then
- begin
- if KeyEvent and $000000FF <> 0 then
- begin
- SysTranslateKeyEvent := KeyEvent and $00FFFFFF;
- exit;
- end;
- {translate function-keys and other specials, ascii-codes are already ok}
- case (KeyEvent AND $0000FF00) shr 8 of
- {F1..F10}
- $3B..$44 : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdF1 + ((KeyEvent AND $0000FF00) SHR 8) - $3B + $02000000;
- {F11,F12}
- $85..$86 : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdF11 + ((KeyEvent AND $0000FF00) SHR 8) - $85 + $02000000;
- {Shift F1..F10}
- $54..$5D : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdF1 + ((KeyEvent AND $0000FF00) SHR 8) - $54 + $02000000;
- {Shift F11,F12}
- $87..$88 : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdF11 + ((KeyEvent AND $0000FF00) SHR 8) - $87 + $02000000;
- {Alt F1..F10}
- $68..$71 : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdF1 + ((KeyEvent AND $0000FF00) SHR 8) - $68 + $02000000;
- {Alt F11,F12}
- $8B..$8C : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdF11 + ((KeyEvent AND $0000FF00) SHR 8) - $8B + $02000000;
- {Ctrl F1..F10}
- $5E..$67 : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdF1 + ((KeyEvent AND $0000FF00) SHR 8) - $5E + $02000000;
- {Ctrl F11,F12}
- $89..$8A : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdF11 + ((KeyEvent AND $0000FF00) SHR 8) - $89 + $02000000;
-
- {normal,ctrl,alt}
- $47,$77,$97 : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdHome + $02000000;
- $48,$8D,$98 : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdUp + $02000000;
- $49,$84,$99 : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdPgUp + $02000000;
- $4b,$73,$9B : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdLeft + $02000000;
- $4d,$74,$9D : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdRight + $02000000;
- $4f,$75,$9F : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdEnd + $02000000;
- $50,$91,$A0 : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdDown + $02000000;
- $51,$76,$A1 : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdPgDn + $02000000;
- $52,$92,$A2 : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdInsert + $02000000;
- $53,$93,$A3 : SysTranslateKeyEvent := (KeyEvent AND $FCFF0000) + kbdDelete + $02000000;
- else
- SysTranslateKeyEvent := KeyEvent;
- end;
- end else
- SysTranslateKeyEvent := KeyEvent;
-*}
-end;
-
-
-function SysGetShiftState: Byte;
-begin
- //writeln('SysgetShiftState:',hexstr(lastShiftState,2));
- SysGetShiftState:= lastShiftState;
-end;
-
-Const
- SysKeyboardDriver : TKeyboardDriver = (
- InitDriver : @SysInitKeyBoard;
- DoneDriver : @SysDoneKeyBoard;
- GetKeyevent : @SysGetKeyEvent;
- PollKeyEvent : @SysPollKeyEvent;
- GetShiftState : @SysGetShiftState;
-// TranslateKeyEvent : @SysTranslateKeyEvent;
- TranslateKeyEvent : Nil;
- TranslateKeyEventUnicode : Nil;
- );
-
-
-begin
- SetKeyBoardDriver(SysKeyBoardDriver);
-end.
diff --git a/packages/rtl-console/src/morphos/video.pp b/packages/rtl-console/src/morphos/video.pp
deleted file mode 100644
index 826424b22f..0000000000
--- a/packages/rtl-console/src/morphos/video.pp
+++ /dev/null
@@ -1,315 +0,0 @@
-{
- This file is part of the Free Pascal run time library.
- Copyright (c) 2006 by Karoly Balogh
- member of the Free Pascal development team
-
- Video unit for Amiga and MorphOS
-
- 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 Video;
-
-interface
-
-uses
- intuition;
-
-{$i videoh.inc}
-
-
-{ Amiga specific calls, to help interaction between Keyboard, Mouse and
- Video units, and Free Vision }
-procedure GotCloseWindow;
-function HasCloseWindow: boolean;
-procedure GotResizeWindow;
-function HasResizeWindow(var winw:longint; var winh: longint): boolean;
-
-var
- videoWindow : pWindow;
-
-
-implementation
-
-uses
- exec, graphics;
-
-{$i video.inc}
-
-{$i videodata.inc}
-
-const
- LastCursorType: word = crUnderline;
- OrigScreen: PVideoBuf = nil;
- OrigScreenSize: cardinal = 0;
-
-var
- videoColorMap : pColorMap;
- videoPens : array[0..15] of longint;
-
- oldCursorX, oldCursorY: longint;
- cursorType: word;
- oldcursorType: word;
-
- gotCloseWindowMsg: boolean;
- gotResizeWindowMsg: boolean;
-
-procedure SysInitVideo;
-var counter: longint;
-begin
- InitGraphicsLibrary;
- InitIntuitionLibrary;
-
- // fill videobuf and oldvideobuf with different bytes, to allow proper first draw
- FillDword(VideoBuf^,VideoBufSize Div 4,$1234D3AD);
- FillDword(OldVideoBuf^,VideoBufSize Div 4,$4321BEEF);
-
- videoWindow:=OpenWindowTags(Nil, [
- WA_Left,50,
- WA_Top,50,
- WA_InnerWidth,80*8,
- WA_InnerHeight,25*16,
- WA_MaxWidth,32768,
- WA_MaxHeight,32768,
- WA_IDCMP,IDCMP_VANILLAKEY Or IDCMP_RAWKEY Or
- IDCMP_MOUSEMOVE Or IDCMP_MOUSEBUTTONS Or
- IDCMP_CLOSEWINDOW Or IDCMP_CHANGEWINDOW,
- WA_Title,DWord(PChar('Free Pascal Video Output')),
- WA_Flags,(WFLG_GIMMEZEROZERO Or WFLG_SMART_REFRESH Or WFLG_NOCAREREFRESH Or
- WFLG_ACTIVATE Or WFLG_DRAGBAR Or WFLG_DEPTHGADGET Or WFLG_REPORTMOUSE Or
- WFLG_SIZEGADGET Or WFLG_SIZEBBOTTOM Or WFLG_RMBTRAP Or
- WFLG_CLOSEGADGET)
- ]);
-
- ScreenWidth := 80;
- ScreenHeight := 25;
- ScreenColor := true;
-
- videoColorMap := pScreen(videoWindow^.WScreen)^.ViewPort.ColorMap;
- for counter:=0 to 15 do begin
- videoPens[counter]:=ObtainPen(videoColorMap,-1,
- vgacolors[counter,0] shl 24,vgacolors[counter,1] shl 24,vgacolors[counter,2] shl 24,
- PEN_EXCLUSIVE);
-// writeln(videoPens[counter]);
- // XXX: do checks for -1 colors (KB)
- end;
-
- CursorX:=0;
- CursorY:=0;
- oldCursorX:=0;
- oldCursorY:=0;
- cursorType:=crHidden;
- oldcursorType:=crHidden;
-
- gotCloseWindowMsg:=false;
- gotResizeWindowMsg:=false;
-end;
-
-
-procedure SysDoneVideo;
-var counter: longint;
-begin
- if videoWindow<>nil then CloseWindow(videoWindow);
- for counter:=0 to 15 do ReleasePen(videoColorMap,videoPens[counter]);
-end;
-
-
-
-function SysSetVideoMode (Const Mode : TVideoMode) : Boolean;
-
-var
- I : Integer;
- dx : integer;
- dy : integer;
-begin
- dx := (Mode.col * 8) - videoWindow^.GZZWidth;
- dy := (Mode.row * 16) - videoWindow^.GZZHeight;
- SizeWindow(videoWindow,dx,dy);
-
- ScreenWidth:=Mode.col;
- ScreenHeight:=Mode.row;
- ScreenColor:=Mode.color;
- SysSetVideoMode:=true;
-end;
-
-var
- oldSH, oldSW : longint;
-
-procedure SysClearScreen;
-begin
- oldSH := -1;
- oldSW := -1;
- UpdateScreen(true);
-end;
-
-
-procedure DrawChar(x,y: longint; crType: word);
-var tmpCharData: word;
- tmpChar : byte;
- tmpFGColor : byte;
- tmpBGColor : byte;
-var
- counterX, counterY:longint;
- sX,sY: longint;
-begin
- tmpCharData:=VideoBuf^[y*ScreenWidth+x];
- tmpChar :=tmpCharData and $0ff;
- tmpFGColor :=(tmpCharData shr 8) and %00001111;
- tmpBGColor :=(tmpCharData shr 12) and %00000111;
-
- sX:=x*8;
- sY:=y*16;
-
- if crType <> crBlock then begin
- SetABPenDrMd(videoWindow^.RPort,videoPens[tmpFGColor],videoPens[tmpBGColor],JAM2);
- end else begin
- { in case of block cursor, swap fg/bg colors
- and BltTemplate() below will take care of everything }
- SetABPenDrMd(videoWindow^.RPort,videoPens[tmpBGColor],videoPens[tmpFGColor],JAM2);
- end;
-
- BltTemplate(@vgafont[tmpChar,0],0,1,videoWindow^.RPort,sX,sY,8,16);
-
- if crType = crUnderLine then begin
- { draw two lines at the bottom of the char, in case of underline cursor }
- gfxMove(videoWindow^.RPort,sX,sY+14); Draw(videoWindow^.RPort,sX+7,sY+14);
- gfxMove(videoWindow^.RPort,sX,sY+15); Draw(videoWindow^.RPort,sX+7,sY+15);
- end;
-end;
-
-
-procedure SysUpdateScreen(force: boolean);
-var
- BufCounter : Longint;
- smallforce : boolean;
- cursormoved : boolean;
- counter, counterX, counterY: longint;
-begin
- smallforce:=false;
- cursormoved:=false;
-
- // override forced update when screen dimensions haven't changed
- if force then begin
- if (oldSH = ScreenHeight) and
- (oldSW = ScreenWidth) then
- force:=false
- else begin
- oldSH := ScreenHeight;
- oldSW := ScreenWidth;
- end;
- end;
-
- if force then begin
- smallforce:=true;
- end else begin
- counter:=0;
- while not smallforce and (counter<(VideoBufSize div 4)-1) do begin
- smallforce:=(PDWord(VideoBuf)[counter] <> PDWord(OldVideoBuf)[counter]);
- inc(counter);
- end;
- end;
-
- BufCounter:=0;
- if smallforce then begin
- for counterY:=0 to ScreenHeight-1 do begin
- for counterX:=0 to ScreenWidth-1 do begin
- if (VideoBuf^[BufCounter]<>OldVideoBuf^[BufCounter]) or force then
- DrawChar(counterX,counterY,crHidden);
- Inc(BufCounter);
- end;
- end;
- move(VideoBuf^,OldVideoBuf^,VideoBufSize);
- end;
-
- if (cursorType<>oldcursorType) or
- (CursorX<>oldCursorX) or (CursorY<>oldCursorY) or
- smallforce then begin
- DrawChar(oldCursorY,oldCursorX,crHidden);
- DrawChar(CursorY,CursorX,cursorType);
- oldCursorX:=CursorX;
- oldCursorY:=CursorY;
- oldcursorType:=cursorType;
- end;
-
-end;
-
-
-procedure SysSetCursorPos(NewCursorX, NewCursorY: Word);
-begin
- CursorX:=NewCursorY;
- CursorY:=NewCursorX;
- SysUpdateScreen(false);
-end;
-
-function SysGetCapabilities: Word;
-begin
- SysGetCapabilities:=cpColor or cpChangeCursor;
-end;
-
-function SysGetCursorType: Word;
-begin
- SysGetCursorType:=cursorType;
-end;
-
-
-procedure SysSetCursorType(NewType: Word);
-begin
- cursorType:=newType;
- { FIXME: halfBlock cursors are not supported for now
- by the rendering code }
- if cursorType = crHalfBlock then cursorType:=crBlock;
-
- SysUpdateScreen(false);
-end;
-
-
-// Amiga specific calls
-procedure GotCloseWindow;
-begin
- gotCloseWindowMsg:=true;
-end;
-
-function HasCloseWindow: boolean;
-begin
- HasCloseWindow:=gotCloseWindowMsg;
- gotCloseWindowMsg:=false;
-end;
-
-procedure GotResizeWindow;
-begin
- gotResizeWindowMsg:=true;
-end;
-
-function HasResizeWindow(var winw:longint; var winh: longint): boolean;
-begin
- HasResizeWindow:=gotResizeWindowMsg;
- winw:=videoWindow^.GZZWidth div 8;
- winh:=videoWindow^.GZZHeight div 16;
- gotResizeWindowMsg:=false;
-end;
-
-
-const
- SysVideoDriver : TVideoDriver = (
- InitDriver : @SysInitVideo;
- DoneDriver : @SysDoneVideo;
- UpdateScreen : @SysUpdateScreen;
- ClearScreen : @SysClearScreen;
- SetVideoMode : @SysSetVideoMode;
- GetVideoModeCount : nil;
- GetVideoModeData : nil;
- SetCursorPos : @SysSetCursorPos;
- GetCursorType : @SysGetCursorType;
- SetCursorType : @SysSetCursorType;
- GetCapabilities : @SysGetCapabilities
- );
-
-
-initialization
- SetVideoDriver(SysVideoDriver);
-end.
diff --git a/packages/rtl-console/src/win/crt.pp b/packages/rtl-console/src/win/crt.pp
index b9bd9e177f..e353f2879d 100644
--- a/packages/rtl-console/src/win/crt.pp
+++ b/packages/rtl-console/src/win/crt.pp
@@ -30,6 +30,7 @@ uses
var
SaveCursorSize: Longint;
+ Win32Platform : Longint; // pulling in sysutils changes exception behaviour
{****************************************************************************
Low level Routines
@@ -478,7 +479,36 @@ begin
ScanCode := #0;
end;
end;
+//----Windows 9x Sound Helper ---
+{$ASMMODE INTEL}
+function InPort(PortAddr:word): byte; assembler; stdcall;
+asm
+ mov dx,PortAddr
+ in al,dx
+end;
+procedure OutPort(PortAddr: word; Databyte: byte); assembler; stdcall;
+asm
+ mov al,Databyte
+ mov dx,PortAddr
+ out dx,al
+end;
+
+//----Windows 2000/XP Sound Helper ---
+const IOCTL_BEEP_SET={CTL_CODE(FILE_DEVICE_BEEP, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)}1 shl 16;
+type TBeepSetParams=record
+ Frequency:longint;
+ Duration:longint;
+end;
+type TDefineDosDeviceFunction=function (dwFlags:DWORD; lpDeviceName:LPCSTR; lpTargetPath:LPCSTR):WINBOOL; stdcall;
+var defineDosDevice: TDefineDosDeviceFunction = nil; //not supported on 9x
+ beeperDevice: THandle = INVALID_HANDLE_VALUE;
+{*************************************************************************
+ Sound
+*************************************************************************}
+
+var opt: TBeepSetParams;
+ result:longword;
{*************************************************************************
Delay
@@ -492,12 +522,47 @@ end; { proc. Delay }
procedure sound(hz : word);
begin
- MessageBeep(0); { lame ;-) }
+ if Win32Platform = VER_PLATFORM_WIN32_NT then begin
+ if beeperDevice = INVALID_HANDLE_VALUE then begin
+ if defineDosDevice = nil then begin
+ defineDosDevice:=TDefineDosDeviceFunction(GetProcAddress(GetModuleHandle('kernel32.dll'),'DefineDosDeviceA'));
+ if defineDosDevice=nil then begin
+ windows.Beep(hz,1000); //fallback
+ exit;
+ end;
+ DefineDosDevice(DDD_RAW_TARGET_PATH,'DosBeep','\Device\Beep');
+ end;
+ beeperDevice:=CreateFile('\\.\DosBeep',0,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
+ if beeperDevice = INVALID_HANDLE_VALUE then begin
+ windows.Beep(hz,1000); //fallback
+ exit;
+ end;
+ end;
+ opt.Frequency:=hz;
+ opt.Duration:=-1; //very long
+ DeviceIoControl(beeperDevice,IOCTL_BEEP_SET,@opt,sizeof(opt),nil,0,@result,nil);
+ end else begin
+ OutPort($43,182);
+ OutPort($61,InPort($61) or 3);
+ OutPort($42,lo(1193180 div hz));
+ OutPort($42, hi(1193180 div hz));
+ end;
end;
procedure nosound;
+var opt: TBeepSetParams;
+ result:longword;
begin
+ if Win32Platform = VER_PLATFORM_WIN32_NT then begin
+ if beeperDevice = INVALID_HANDLE_VALUE then exit;
+ opt.Frequency:=0; //stop
+ opt.Duration:=0;
+ DeviceIoControl(beeperDevice,IOCTL_BEEP_SET,@opt,sizeof(opt),nil,0,@result,nil);
+ end else begin
+ OutPort($43,182);
+ OutPort($61,InPort($61) and 3);
+ end;
end;
@@ -861,8 +926,20 @@ var
CursorInfo : TConsoleCursorInfo;
ConsoleInfo : TConsoleScreenBufferinfo;
-// ts
+procedure LoadVersionInfo;
+Var
+ versioninfo : TOSVERSIONINFO;
begin
+ versioninfo.dwOSVersionInfoSize:=sizeof(versioninfo);
+ GetVersionEx(versioninfo);
+ Win32Platform:=versionInfo.dwPlatformId;
+end;
+// ts
+
+Initialization
+ LoadVersionInfo;
+
+
{ Initialize the output handles }
LastMode := 3;
@@ -877,6 +954,12 @@ begin
FillChar(ConsoleInfo, SizeOf(ConsoleInfo), 0);
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), ConsoleInfo);
+finalization
+ if beeperDevice <> INVALID_HANDLE_VALUE then begin
+ nosound;
+ CloseHandle(beeperDevice);
+ DefineDosDevice(DDD_REMOVE_DEFINITION,'DosBeep','\Device\Beep');
+ end;
TextAttr := ConsoleInfo.wAttributes;
{ Not required, the dos crt does also not touch the mouse }
diff --git a/packages/rtl-extra/Makefile b/packages/rtl-extra/Makefile
index aa13b2c253..f6197bcfb9 100644
--- a/packages/rtl-extra/Makefile
+++ b/packages/rtl-extra/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=rtl-extra
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/rtl-extra/Makefile.fpc b/packages/rtl-extra/Makefile.fpc
index 32da5403a2..7163386b85 100644
--- a/packages/rtl-extra/Makefile.fpc
+++ b/packages/rtl-extra/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=rtl-extra
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/rtl-extra/Makefile.fpc.fpcmake b/packages/rtl-extra/Makefile.fpc.fpcmake
index b8c8dc26aa..908ad716ce 100644
--- a/packages/rtl-extra/Makefile.fpc.fpcmake
+++ b/packages/rtl-extra/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=rtl-extra
-version=2.7.1
+version=3.1.1
[target]
units_android=matrix ucomplex objects
diff --git a/packages/rtl-extra/fpmake.pp b/packages/rtl-extra/fpmake.pp
index 44a564009c..d4d5978dfe 100644
--- a/packages/rtl-extra/fpmake.pp
+++ b/packages/rtl-extra/fpmake.pp
@@ -14,22 +14,22 @@ Const
// Android has a dummy clocale unit, while it also includes unix dir.
ClocaleOSes = UnixLikes -[beos];
- CLocaleIncOSes= [Aix,freebsd,netbsd,openbsd,solaris,darwin,iphonesim];
+ CLocaleIncOSes= [Aix,freebsd,netbsd,openbsd,solaris,darwin,iphonesim,dragonfly];
- IPCOSes = UnixLikes-[aix,android,beos,haiku,solaris];
- IPCBSDs = [FreeBSD,NetBSD,OpenBSD];
+ IPCOSes = UnixLikes-[aix,android,beos,haiku];
+ IPCBSDs = [FreeBSD,NetBSD,OpenBSD,DragonFly];
// IPCcdeclOSes = [Darwin,iphonesim];
PrinterOSes = [go32v2,msdos,os2,win32,win64]+unixlikes-[beos,haiku,morphos];
SerialOSes = [android,linux,netbsd,openbsd,win32,win64];
- UComplexOSes = [amiga,emx,gba,go32v2,morphos,msdos,nativent,nds,netware,netwlibc,os2,watcom,wii,wince,win32,win64]+UnixLikes;
- MatrixOSes = [amiga,emx,gba,go32v2,morphos,msdos,nativent,nds,netware,netwlibc,os2,wii,win32,win64,wince]+UnixLikes;
- ObjectsOSes = [amiga,emx,gba,go32v2,morphos,msdos,netware,netwlibc,os2,win32,win64,wince]+UnixLikes;
+ UComplexOSes = [amiga,aros,emx,gba,go32v2,morphos,msdos,nativent,nds,netware,netwlibc,os2,watcom,wii,wince,win32,win64]+UnixLikes;
+ MatrixOSes = [amiga,aros,emx,gba,go32v2,morphos,msdos,nativent,nds,netware,netwlibc,os2,wii,win32,win64,wince]+UnixLikes;
+ ObjectsOSes = [amiga,aros,emx,gba,go32v2,morphos,msdos,netware,netwlibc,os2,win32,win64,wince]+UnixLikes;
WinsockOSes = [win32,win64,wince,os2,emx,netware,netwlibc];
WinSock2OSes = [win32,win64,wince];
// sockets of morphos is implemented, but not active
- SocketsOSes = UnixLikes+[netware,netwlibc,os2,wince,win32,win64];
- Socksyscall = [beos,freebsd,haiku,linux,netbsd,openbsd];
+ SocketsOSes = UnixLikes+[amiga,aros,netware,netwlibc,os2,wince,win32,win64];
+ Socksyscall = [beos,freebsd,haiku,linux,netbsd,openbsd,dragonfly];
Socklibc = unixlikes-socksyscall;
gpmOSes = [Linux,Android];
AllTargetsextra = ObjectsOSes + UComplexOSes + MatrixOSes+
@@ -43,8 +43,9 @@ begin
With Installer do
begin
P:=AddPackage('rtl-extra');
+ P.ShortName:='rtle';
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'FPC core team';
P.License := 'LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
@@ -52,6 +53,9 @@ begin
P.Email := '';
P.Description := 'Rtl-extra, RTL not needed for bootstrapping';
P.NeedLibC:= false;
+ P.Dependencies.Add('morphunits',[morphos]);
+ P.Dependencies.Add('arosunits',[aros]);
+ P.Dependencies.Add('amunits',[amiga]);
P.SourcePath.Add('src/inc');
P.SourcePath.Add('src/$(OS)');
@@ -117,7 +121,7 @@ begin
addinclude('ipccall.inc',[Linux]);
// addinclude('ipccdecl.inc',IPCcdeclOSes); // not used?
end;
- T:=P.Targets.AddUnit('unix/clocale.pp',CLocaleOSes);
+ T:=P.Targets.AddUnit('src/unix/clocale.pp',CLocaleOSes);
with T.Dependencies do
begin
addinclude('clocale.inc',clocaleincOSes);
diff --git a/packages/rtl-extra/src/amiga/sockets.pp b/packages/rtl-extra/src/amiga/sockets.pp
new file mode 100644
index 0000000000..cb7ce8b117
--- /dev/null
+++ b/packages/rtl-extra/src/amiga/sockets.pp
@@ -0,0 +1,271 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 1999-2007 by the Free Pascal development team
+
+ 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.
+
+ **********************************************************************}
+{$PACKRECORDS 2}
+unit Sockets;
+Interface
+
+uses
+ ctypes,exec;
+
+type
+ size_t = cuint32; { as definied in the C standard}
+ ssize_t = cint32; { used by function for returning number of bytes}
+
+ socklen_t= cuint32;
+ TSocklen = socklen_t;
+ pSocklen = ^socklen_t;
+
+
+//{ $i unxsockh.inc}
+{$define BSD}
+{$define SOCK_HAS_SINLEN}
+{$i socketsh.inc}
+
+type
+ TUnixSockAddr = packed Record
+ sa_len : cuchar;
+ family : sa_family_t;
+ path:array[0..107] of char; //104 total for freebsd.
+ end;
+
+type
+ hostent = record
+ h_name : PChar;
+ h_aliases : PPChar;
+ h_addrtype : LongInt;
+ h_Length : LongInt;
+ h_addr_list: ^PDWord;
+ end;
+ THostEnt = hostent;
+ PHostEnt = ^THostEnt;
+
+
+const
+ AF_UNSPEC = 0; {* unspecified *}
+ AF_LOCAL = 1; {* local to host (pipes, portals) *}
+ AF_UNIX = AF_LOCAL; {* backward compatibility *}
+ AF_INET = 2; {* internetwork: UDP, TCP, etc. *}
+ AF_IMPLINK = 3; {* arpanet imp addresses *}
+ AF_PUP = 4; {* pup protocols: e.g. BSP *}
+ AF_CHAOS = 5; {* mit CHAOS protocols *}
+ AF_NS = 6; {* XEROX NS protocols *}
+ AF_ISO = 7; {* ISO protocols *}
+ AF_OSI = AF_ISO;
+ AF_ECMA = 8; {* european computer manufacturers *}
+ AF_DATAKIT = 9; {* datakit protocols *}
+ AF_CCITT = 10; {* CCITT protocols, X.25 etc *}
+ AF_SNA = 11; {* IBM SNA *}
+ AF_DECnet = 12; {* DECnet *}
+ AF_DLI = 13; {* DEC Direct data link interface *}
+ AF_LAT = 14; {* LAT *}
+ AF_HYLINK = 15; {* NSC Hyperchannel *}
+ AF_APPLETALK = 16; {* Apple Talk *}
+ AF_ROUTE = 17; {* Internal Routing Protocol *}
+ AF_LINK = 18; {* Link layer interface *}
+ pseudo_AF_XTP = 19; {* eXpress Transfer Protocol (no AF) *}
+ AF_COIP = 20; {* connection-oriented IP, aka ST II *}
+ AF_CNT = 21; {* Computer Network Technology *}
+ pseudo_AF_RTIP = 22; {* Help Identify RTIP packets *}
+ AF_IPX = 23; {* Novell Internet Protocol *}
+ AF_SIP = 24; {* Simple Internet Protocol *}
+ pseudo_AF_PIP = 25; {* Help Identify PIP packets *}
+
+ AF_MAX = 26;
+ SO_LINGER = $0080;
+ SOL_SOCKET = $FFFF;
+
+const
+ EsockEINTR = 4; // EsysEINTR;
+ EsockEBADF = 9; // EsysEBADF;
+ EsockEFAULT = 14; // EsysEFAULT;
+ EsockEINVAL = 22; //EsysEINVAL;
+ EsockEACCESS = 13; //ESysEAcces;
+ EsockEMFILE = 24; //ESysEmfile;
+ EsockENOBUFS = 55; //ESysENoBufs;
+ EsockENOTCONN = 57; //ESysENotConn;
+ EsockEPROTONOSUPPORT = 43; //ESysEProtoNoSupport;
+ EsockEWOULDBLOCK = 35; //ESysEWouldBlock; // same as eagain on morphos
+
+{ unix socket specific functions }
+{*
+Procedure Str2UnixSockAddr(const addr:string;var t:TUnixSockAddr;var len:longint); deprecated;
+Function Bind(Sock:longint;const addr:string):boolean; deprecated;
+Function Connect(Sock:longint;const addr:string;var SockIn,SockOut:text):Boolean; deprecated;
+Function Connect(Sock:longint;const addr:string;var SockIn,SockOut:file):Boolean; deprecated;
+Function Accept(Sock:longint;var addr:string;var SockIn,SockOut:text):Boolean; deprecated;
+Function Accept(Sock:longint;var addr:string;var SockIn,SockOut:File):Boolean; deprecated;
+*}
+//function fpaccept (s:cint; addrx : psockaddr; addrlen : psocklen):cint; maybelibc
+//function fpbind (s:cint; addrx : psockaddr; addrlen : tsocklen):cint; maybelibc
+//function fpconnect (s:cint; name : psockaddr; namelen : tsocklen):cint; maybelibc
+
+var
+ SocketBase: PLibrary;
+
+function bsd_socket(Domain: LongInt location 'd0'; Type_: LongInt location 'd1'; Protocol: LongInt location 'd2'): LongInt; syscall SocketBase 30;
+function bsd_bind(s: LongInt location 'd0'; const name: PSockAddr location 'a0'; NameLen: LongInt location 'd1'): LongInt; syscall SocketBase 36;
+function bsd_listen(s: LongInt location 'd0'; BackLog: LongInt location 'd1'): LongInt; syscall SocketBase 42;
+function bsd_accept(s: LongInt location 'd0'; Addr: PSockaddr location 'a0'; AddrLen: PSockLen location 'a1'): LongInt; syscall SocketBase 48;
+function bsd_connect(s : LongInt location 'd0'; const Name: PSockaddr location 'a0'; NameLen: LongInt location 'd1'): LongInt; syscall SocketBase 54;
+function bsd_sendto(s: LongInt location 'd0'; const Msg: PChar location 'a0'; Len: LongInt location 'd1'; Flags: LongInt location 'd2'; const To_: PSockaddr location 'a1'; ToLen: LongInt location 'd3'): LongInt; syscall SocketBase 60;
+function bsd_send(s: LongInt location 'd0'; const msg: PChar location 'a0'; Len: LongInt location 'd1'; Flags: LongInt location 'd2'): LongInt; syscall SocketBase 66;
+function bsd_recvfrom(s: LongInt location 'd0'; Buf: PChar location 'a0'; Len: LongInt location 'd1'; Flags: LongInt location 'd2'; From: PSockaddr location 'a1'; FromLen: PSockLen location 'a2'): LongInt; syscall SocketBase 72;
+function bsd_recv(s: LongInt location 'd0'; buf: PChar location 'a0'; Len: LongInt location 'd1'; Flags: LongInt location 'd2'): LongInt; syscall SocketBase 78;
+function bsd_shutdown(s: LongInt location 'd0'; How: LongInt location 'd1'): LongInt; syscall SocketBase 84;
+function bsd_setsockopt(s: LongInt location 'd0'; level: LongInt location 'd1'; optname: LongInt location 'd2'; const optval: Pointer location 'a0'; optlen: LongInt location 'd3') : LongInt; syscall SocketBase 90;
+function bsd_getsockopt(s: LongInt location 'd0'; Level: LongInt location 'd1'; OptName: LongInt location 'd2'; OptVal: Pointer location 'a0'; OptLen: PSockLen location 'a1'): LongInt; syscall SocketBase 96;
+function bsd_getsockname(s: LongInt location 'd0'; HostName: PSockaddr location 'a0'; NameLen: PSockLen location 'a1'): LongInt; syscall SocketBase 102;
+function bsd_getpeername(s: LongInt location 'd0'; HostName: PSockaddr location 'a0'; NameLen: PSockLen location 'a1'): LongInt; syscall SocketBase 108;
+function bsd_closesocket(s: LongInt location 'd0'): LongInt; syscall SocketBase 120;
+function bsd_Errno: LongInt; syscall SocketBase 162;
+function bsd_inet_ntoa(in_: LongWord location 'd0'): PChar; syscall SocketBase 174;
+function bsd_inet_addr(const cp: PChar location 'a0'): LongWord; syscall SocketBase 180;
+function bsd_gethostbyname(const Name: PChar location 'a0'): PHostEnt; syscall SocketBase 210;
+function bsd_gethostbyaddr(const Addr: PByte location 'a0'; Len: LongInt location 'd0'; Type_: LongInt location 'd1'): PHostEnt; syscall SocketBase 216;
+
+Implementation
+
+threadvar internal_socketerror: cint;
+
+{ Include filerec and textrec structures }
+{.$i filerec.inc}
+{.$i textrec.inc}
+
+{******************************************************************************
+ Kernel Socket Callings
+******************************************************************************}
+
+function socketerror: cint;
+begin
+ socketerror := internal_socketerror;
+end;
+
+function fpgeterrno: longint; inline;
+begin
+ fpgeterrno := bsd_Errno;
+end;
+
+function fpClose(d: LongInt): LongInt; inline;
+begin
+ fpClose := bsd_CloseSocket(d);
+end;
+
+function fpaccept(s: cint; addrx: PSockaddr; Addrlen: PSocklen): cint;
+begin
+ fpaccept := bsd_accept(s,addrx,addrlen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpbind(s:cint; addrx: psockaddr; addrlen: tsocklen): cint;
+begin
+ fpbind := bsd_bind(s, addrx, addrlen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpconnect(s:cint; name: psockaddr; namelen: tsocklen): cint;
+begin
+ fpconnect := bsd_connect(s, name, namelen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpgetpeername (s:cint; name : psockaddr; namelen : psocklen):cint;
+begin
+ fpgetpeername := bsd_getpeername(s,name,namelen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpgetsockname(s:cint; name : psockaddr; namelen : psocklen):cint;
+begin
+ fpgetsockname := bsd_getsockname(s,name,namelen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpgetsockopt (s:cint; level:cint; optname:cint; optval:pointer; optlen : psocklen):cint;
+begin
+ fpgetsockopt := bsd_getsockopt(s,level,optname,optval,optlen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fplisten(s:cint; backlog : cint):cint;
+begin
+ fplisten := bsd_listen(s, backlog);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fprecv(s:cint; buf: pointer; len: size_t; Flags: cint): ssize_t;
+begin
+ fprecv := bsd_recv(s,buf,len,flags);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fprecvfrom(s:cint; buf: pointer; len: size_t; flags: cint; from : psockaddr; fromlen : psocklen):ssize_t;
+begin
+ fprecvfrom := bsd_recvfrom(s, buf, len, flags, from, fromlen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpsend(s:cint; msg:pointer; len:size_t; flags:cint):ssize_t;
+begin
+ fpsend := bsd_send(s, msg, len, flags);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpsendto(s:cint; msg:pointer; len:size_t; flags:cint; tox :psockaddr; tolen: tsocklen):ssize_t;
+begin
+ fpsendto := bsd_sendto(s, msg, len, flags, tox, tolen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpsetsockopt(s:cint; level:cint; optname:cint; optval:pointer; optlen :tsocklen):cint;
+begin
+ fpsetsockopt := bsd_setsockopt(s, level, optname, optval, optlen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpshutdown(s: cint; how: cint): cint;
+begin
+ fpshutdown := bsd_shutdown(s, how);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpsocket(domain: cint; xtype: cint; protocol: cint): cint;
+begin
+ fpsocket := bsd_socket(domain, xtype, protocol);
+ internal_socketerror := fpgeterrno;
+end;
+
+
+function fpsocketpair(d:cint; xtype:cint; protocol:cint; sv:pcint):cint;
+begin
+{
+ fpsocketpair:=cfpsocketpair(d,xtype,protocol,sv);
+ internal_socketerror:=fpgeterrno;
+}
+ fpsocketpair:=-1;
+end;
+
+
+{$i sockovl.inc}
+{$i sockets.inc}
+
+// FIXME: this doesn't make any sense here, because SocketBase should be task-specific
+// but FPC doesn't support that yet (TODO)
+{$WARNING FIX ME, TODO}
+
+
+initialization
+ SocketBase := OpenLibrary('bsdsocket.library',0);
+finalization
+ if SocketBase <> nil then
+ CloseLibrary(SocketBase);
+end.
diff --git a/packages/rtl-extra/src/aros/sockets.pp b/packages/rtl-extra/src/aros/sockets.pp
new file mode 100644
index 0000000000..651b2b9c97
--- /dev/null
+++ b/packages/rtl-extra/src/aros/sockets.pp
@@ -0,0 +1,271 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 1999-2007 by the Free Pascal development team
+
+ 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.
+
+ **********************************************************************}
+{$PACKRECORDS 2}
+unit Sockets;
+Interface
+
+uses
+ ctypes,exec;
+
+type
+ size_t = cuint32; { as definied in the C standard}
+ ssize_t = cint32; { used by function for returning number of bytes}
+
+ socklen_t= cuint32;
+ TSocklen = socklen_t;
+ pSocklen = ^socklen_t;
+
+
+//{ $i unxsockh.inc}
+{$define BSD}
+{$define SOCK_HAS_SINLEN}
+{$i socketsh.inc}
+
+type
+ TUnixSockAddr = packed Record
+ sa_len : cuchar;
+ family : sa_family_t;
+ path:array[0..107] of char; //104 total for freebsd.
+ end;
+
+type
+ hostent = record
+ h_name : PChar;
+ h_aliases : PPChar;
+ h_addrtype : LongInt;
+ h_Length : LongInt;
+ h_addr_list: ^PDWord;
+ end;
+ THostEnt = hostent;
+ PHostEnt = ^THostEnt;
+
+
+const
+ AF_UNSPEC = 0; {* unspecified *}
+ AF_LOCAL = 1; {* local to host (pipes, portals) *}
+ AF_UNIX = AF_LOCAL; {* backward compatibility *}
+ AF_INET = 2; {* internetwork: UDP, TCP, etc. *}
+ AF_IMPLINK = 3; {* arpanet imp addresses *}
+ AF_PUP = 4; {* pup protocols: e.g. BSP *}
+ AF_CHAOS = 5; {* mit CHAOS protocols *}
+ AF_NS = 6; {* XEROX NS protocols *}
+ AF_ISO = 7; {* ISO protocols *}
+ AF_OSI = AF_ISO;
+ AF_ECMA = 8; {* european computer manufacturers *}
+ AF_DATAKIT = 9; {* datakit protocols *}
+ AF_CCITT = 10; {* CCITT protocols, X.25 etc *}
+ AF_SNA = 11; {* IBM SNA *}
+ AF_DECnet = 12; {* DECnet *}
+ AF_DLI = 13; {* DEC Direct data link interface *}
+ AF_LAT = 14; {* LAT *}
+ AF_HYLINK = 15; {* NSC Hyperchannel *}
+ AF_APPLETALK = 16; {* Apple Talk *}
+ AF_ROUTE = 17; {* Internal Routing Protocol *}
+ AF_LINK = 18; {* Link layer interface *}
+ pseudo_AF_XTP = 19; {* eXpress Transfer Protocol (no AF) *}
+ AF_COIP = 20; {* connection-oriented IP, aka ST II *}
+ AF_CNT = 21; {* Computer Network Technology *}
+ pseudo_AF_RTIP = 22; {* Help Identify RTIP packets *}
+ AF_IPX = 23; {* Novell Internet Protocol *}
+ AF_SIP = 24; {* Simple Internet Protocol *}
+ pseudo_AF_PIP = 25; {* Help Identify PIP packets *}
+
+ AF_MAX = 26;
+ SO_LINGER = $0080;
+ SOL_SOCKET = $FFFF;
+
+const
+ EsockEINTR = 4; // EsysEINTR;
+ EsockEBADF = 9; // EsysEBADF;
+ EsockEFAULT = 14; // EsysEFAULT;
+ EsockEINVAL = 22; //EsysEINVAL;
+ EsockEACCESS = 13; //ESysEAcces;
+ EsockEMFILE = 24; //ESysEmfile;
+ EsockENOBUFS = 55; //ESysENoBufs;
+ EsockENOTCONN = 57; //ESysENotConn;
+ EsockEPROTONOSUPPORT = 43; //ESysEProtoNoSupport;
+ EsockEWOULDBLOCK = 35; //ESysEWouldBlock; // same as eagain on morphos
+
+{ unix socket specific functions }
+{*
+Procedure Str2UnixSockAddr(const addr:string;var t:TUnixSockAddr;var len:longint); deprecated;
+Function Bind(Sock:longint;const addr:string):boolean; deprecated;
+Function Connect(Sock:longint;const addr:string;var SockIn,SockOut:text):Boolean; deprecated;
+Function Connect(Sock:longint;const addr:string;var SockIn,SockOut:file):Boolean; deprecated;
+Function Accept(Sock:longint;var addr:string;var SockIn,SockOut:text):Boolean; deprecated;
+Function Accept(Sock:longint;var addr:string;var SockIn,SockOut:File):Boolean; deprecated;
+*}
+//function fpaccept (s:cint; addrx : psockaddr; addrlen : psocklen):cint; maybelibc
+//function fpbind (s:cint; addrx : psockaddr; addrlen : tsocklen):cint; maybelibc
+//function fpconnect (s:cint; name : psockaddr; namelen : tsocklen):cint; maybelibc
+
+var
+ SocketBase: PLibrary;
+
+function bsd_socket(Domain: LongInt; Type_: LongInt; Protocol: LongInt): LongInt; syscall SocketBase 5;
+function bsd_bind(s: LongInt; const name: PSockAddr; NameLen: LongInt): LongInt; syscall SocketBase 6;
+function bsd_listen(s: LongInt; BackLog: LongInt): LongInt; syscall SocketBase 7;
+function bsd_accept(s: LongInt; Addr: PSockaddr; AddrLen: PSockLen): LongInt; syscall SocketBase 8;
+function bsd_connect(s : LongInt; const Name: PSockaddr; NameLen: LongInt): LongInt; syscall SocketBase 9;
+function bsd_sendto(s: LongInt; const Msg: PChar; Len: LongInt; Flags: LongInt; const To_: PSockaddr; ToLen: LongInt): LongInt; syscall SocketBase 10;
+function bsd_send(s: LongInt; const msg: PChar; Len: LongInt; Flags: LongInt): LongInt; syscall SocketBase 11;
+function bsd_recvfrom(s: LongInt; Buf: PChar; Len: LongInt; Flags: LongInt; From: PSockaddr; FromLen: PSockLen): LongInt; syscall SocketBase 12;
+function bsd_recv(s: LongInt; buf: PChar; Len: LongInt; Flags: LongInt): LongInt; syscall SocketBase 13;
+function bsd_shutdown(s: LongInt; How: LongInt): LongInt; syscall SocketBase 14;
+function bsd_setsockopt(s: LongInt; level: LongInt; optname: LongInt; const optval: Pointer; optlen: LongInt) : LongInt; syscall SocketBase 15;
+function bsd_getsockopt(s: LongInt; Level: LongInt; OptName: LongInt; OptVal: Pointer; OptLen: PSockLen): LongInt; syscall SocketBase 16;
+function bsd_getsockname(s: LongInt; HostName: PSockaddr; NameLen: PSockLen): LongInt; syscall SocketBase 17;
+function bsd_getpeername(s: LongInt; HostName: PSockaddr; NameLen: PSockLen): LongInt; syscall SocketBase 18;
+function bsd_closesocket(s: LongInt): LongInt; syscall SocketBase 20;
+function bsd_Errno: LongInt; syscall SocketBase 27;
+function bsd_inet_ntoa(in_: LongWord): PChar; syscall SocketBase 29;
+function bsd_inet_addr(const cp: PChar): LongWord; syscall SocketBase 30;
+function bsd_gethostbyname(const Name: PChar): PHostEnt; syscall SocketBase 35;
+function bsd_gethostbyaddr(const Addr: PByte; Len: LongInt; Type_: LongInt): PHostEnt; syscall SocketBase 36;
+
+Implementation
+
+threadvar internal_socketerror: cint;
+
+{ Include filerec and textrec structures }
+{.$i filerec.inc}
+{.$i textrec.inc}
+
+{******************************************************************************
+ Kernel Socket Callings
+******************************************************************************}
+
+function socketerror: cint;
+begin
+ socketerror := internal_socketerror;
+end;
+
+function fpgeterrno: longint; inline;
+begin
+ fpgeterrno := bsd_Errno;
+end;
+
+function fpClose(d: LongInt): LongInt; inline;
+begin
+ fpClose := bsd_CloseSocket(d);
+end;
+
+function fpaccept(s: cint; addrx: PSockaddr; Addrlen: PSocklen): cint;
+begin
+ fpaccept := bsd_accept(s,addrx,addrlen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpbind(s:cint; addrx: psockaddr; addrlen: tsocklen): cint;
+begin
+ fpbind := bsd_bind(s, addrx, addrlen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpconnect(s:cint; name: psockaddr; namelen: tsocklen): cint;
+begin
+ fpconnect := bsd_connect(s, name, namelen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpgetpeername (s:cint; name : psockaddr; namelen : psocklen):cint;
+begin
+ fpgetpeername := bsd_getpeername(s,name,namelen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpgetsockname(s:cint; name : psockaddr; namelen : psocklen):cint;
+begin
+ fpgetsockname := bsd_getsockname(s,name,namelen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpgetsockopt (s:cint; level:cint; optname:cint; optval:pointer; optlen : psocklen):cint;
+begin
+ fpgetsockopt := bsd_getsockopt(s,level,optname,optval,optlen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fplisten(s:cint; backlog : cint):cint;
+begin
+ fplisten := bsd_listen(s, backlog);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fprecv(s:cint; buf: pointer; len: size_t; Flags: cint): ssize_t;
+begin
+ fprecv := bsd_recv(s,buf,len,flags);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fprecvfrom(s:cint; buf: pointer; len: size_t; flags: cint; from : psockaddr; fromlen : psocklen):ssize_t;
+begin
+ fprecvfrom := bsd_recvfrom(s, buf, len, flags, from, fromlen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpsend(s:cint; msg:pointer; len:size_t; flags:cint):ssize_t;
+begin
+ fpsend := bsd_send(s, msg, len, flags);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpsendto(s:cint; msg:pointer; len:size_t; flags:cint; tox :psockaddr; tolen: tsocklen):ssize_t;
+begin
+ fpsendto := bsd_sendto(s, msg, len, flags, tox, tolen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpsetsockopt(s:cint; level:cint; optname:cint; optval:pointer; optlen :tsocklen):cint;
+begin
+ fpsetsockopt := bsd_setsockopt(s, level, optname, optval, optlen);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpshutdown(s: cint; how: cint): cint;
+begin
+ fpshutdown := bsd_shutdown(s, how);
+ internal_socketerror := fpgeterrno;
+end;
+
+function fpsocket(domain: cint; xtype: cint; protocol: cint): cint;
+begin
+ fpsocket := bsd_socket(domain, xtype, protocol);
+ internal_socketerror := fpgeterrno;
+end;
+
+
+function fpsocketpair(d:cint; xtype:cint; protocol:cint; sv:pcint):cint;
+begin
+{
+ fpsocketpair:=cfpsocketpair(d,xtype,protocol,sv);
+ internal_socketerror:=fpgeterrno;
+}
+ fpsocketpair:=-1;
+end;
+
+
+{$i sockovl.inc}
+{$i sockets.inc}
+
+// FIXME: this doesn't make any sense here, because SocketBase should be task-specific
+// but FPC doesn't support that yet (TODO)
+{$WARNING FIX ME, TODO}
+
+
+initialization
+ SocketBase := OpenLibrary('bsdsocket.library',0);
+finalization
+ if SocketBase <> nil then
+ CloseLibrary(SocketBase);
+end.
diff --git a/packages/rtl-extra/src/inc/sockets.inc b/packages/rtl-extra/src/inc/sockets.inc
index 5f0eb19dd6..d5962ce52f 100644
--- a/packages/rtl-extra/src/inc/sockets.inc
+++ b/packages/rtl-extra/src/inc/sockets.inc
@@ -235,15 +235,6 @@ end;
type thostaddr= packed array[1..4] of byte;
-function htonl( host : longint):longint; inline;overload;deprecated;
-begin
-{$ifdef FPC_BIG_ENDIAN}
- htonl:=host;
-{$else}
- htonl:=SwapEndian(host);
-{$endif}
-end;
-
function htonl( host : cardinal):cardinal; inline;overload;
begin
{$ifdef FPC_BIG_ENDIAN}
@@ -253,15 +244,6 @@ begin
{$endif}
end;
-Function NToHl (Net : longint) : longint; inline;overload;deprecated;
-begin
-{$ifdef FPC_BIG_ENDIAN}
- ntohl:=net;
-{$else}
- ntohl:=SwapEndian(net);
-{$endif}
-end;
-
Function NToHl (Net : cardinal) : cardinal; inline;overload;
begin
{$ifdef FPC_BIG_ENDIAN}
diff --git a/packages/rtl-extra/src/inc/socketsh.inc b/packages/rtl-extra/src/inc/socketsh.inc
index 0fde367195..f012b99cb9 100644
--- a/packages/rtl-extra/src/inc/socketsh.inc
+++ b/packages/rtl-extra/src/inc/socketsh.inc
@@ -68,8 +68,6 @@ type
psockaddr_in = ^sockaddr_in;
sockaddr_in = packed record
- case boolean of
- false : (
{$ifdef SOCK_HAS_SINLEN}
sin_len : cuchar;
{$endif}
@@ -77,16 +75,6 @@ type
sin_port : cushort;
sin_addr : in_addr;
xpad : array [0..7] of char; { to get to the size of sockaddr... }
- );
- true: (
- {$ifdef SOCK_HAS_SINLEN}
- len : cuchar deprecated;
- {$endif}
- family : sa_family_t deprecated;
- port : cushort deprecated;
- addr : cardinal deprecated;
- pad : array [0..7] of char deprecated; { to get to the size of sockaddr... }
- );
end;
TInetSockAddr = sockaddr_in;
@@ -183,23 +171,6 @@ function fpsocketpair (d:cint; xtype:cint; protocol:cint; sv:pcint):cint;
Function CloseSocket(Sock:Longint):Longint;
{Basic Socket Functions}
-{$ifdef legacysocket}
-Function Socket(Domain,SocketType,Protocol:Longint):Longint; deprecated;
-Function Send(Sock:Longint;Const Buf;BufLen,Flags:Longint):Longint; deprecated;
-Function SendTo(Sock:Longint;Const Buf;BufLen,Flags:Longint;Var Addr; AddrLen : Longint):Longint; deprecated;
-Function Recv(Sock:Longint;Var Buf;BufLen,Flags:Longint):Longint; deprecated;
-Function RecvFrom(Sock : Longint; Var Buf; Buflen,Flags : Longint; Var Addr; var AddrLen : longInt) : longint;deprecated;
-Function Bind(Sock:Longint;Const Addr;AddrLen:Longint):Boolean;deprecated;
-Function Listen (Sock,MaxConnect:Longint):Boolean;deprecated;
-Function Accept(Sock:Longint;Var Addr;Var Addrlen:Longint):Longint;deprecated;
-Function Connect(Sock:Longint;Const Addr;Addrlen:Longint):boolean;deprecated;
-Function Shutdown(Sock:Longint;How:Longint):Longint;deprecated;
-Function GetSocketName(Sock:Longint;Var Addr;Var Addrlen:Longint):Longint;deprecated;
-Function GetPeerName(Sock:Longint;Var Addr;Var Addrlen:Longint):Longint;deprecated;
-Function SetSocketOptions(Sock,Level,OptName:Longint;const OptVal;optlen:longint):Longint;deprecated;
-Function GetSocketOptions(Sock,Level,OptName:Longint;Var OptVal;Var optlen:longint):Longint;deprecated;
-Function SocketPair(Domain,SocketType,Protocol:Longint;var Pair:TSockArray):Longint;deprecated;
-{$endif}
{ untyped/text filetype support }
@@ -211,8 +182,6 @@ Function Connect(Sock:longint;const addr:TInetSockAddr;var SockIn,SockOut:file):
Procedure Sock2File(Sock:Longint;Var SockIn,SockOut:File);deprecated;
{ Utility routines}
-function htonl( host : longint):longint; inline; overload;deprecated;
-Function NToHl( Net : longint):longint; inline; overload;deprecated;
function htonl( host : cardinal):cardinal; inline; overload;
Function NToHl( Net : cardinal):cardinal; inline; overload;
function htons( host : word):word; inline;
diff --git a/packages/rtl-extra/src/inc/sockovl.inc b/packages/rtl-extra/src/inc/sockovl.inc
index b0040101cc..45c82053f9 100644
--- a/packages/rtl-extra/src/inc/sockovl.inc
+++ b/packages/rtl-extra/src/inc/sockovl.inc
@@ -18,85 +18,6 @@
Basic Socket Functions
******************************************************************************}
-{$ifdef legacysocket}
-Function socket(Domain,SocketType,Protocol:Longint):Longint;
-begin
- Socket:=fpsocket(domain,sockettype,protocol);
-end;
-
-
-Function Send(Sock:Longint;Const Buf;BufLen,Flags:Longint):Longint;
-begin
- Send:=fpsend(sock,@buf,buflen,flags);
-end;
-
-Function SendTo(Sock:Longint;Const Buf;BufLen,Flags:Longint;Var Addr; AddrLen : Longint):Longint;
-begin
- Sendto:=fpsendto(sock,@buf,buflen,flags,@addr,addrlen);
-end;
-
-Function Recv(Sock:Longint;Var Buf;BufLen,Flags:Longint):Longint;
-begin
- Recv:=fprecv(sock,@buf,buflen,flags);
-end;
-
-Function RecvFrom(Sock : Longint; Var Buf; Buflen,Flags : Longint; Var Addr ; var AddrLen :longint) : longint;
-
-begin
- RecvFrom:=fprecvfrom(Sock,@buf,buflen,flags,@Addr,psocklen(@AddrLen));
-end;
-
-Function Bind(Sock:Longint;Const Addr;AddrLen:Longint):Boolean;
-begin
- Bind:=fpbind(Sock,@Addr,AddrLen)=0;
-end;
-
-Function Listen(Sock,MaxConnect:Longint):Boolean;
-begin
- Listen:=fplisten(sock,maxconnect)=0;
-end;
-
-Function Accept(Sock:Longint;Var Addr;Var Addrlen:Longint):Longint;
-begin
- Accept:=fpaccept(sock,@addr,psocklen(@addrlen));
-end;
-
-Function Connect(Sock:Longint;Const Addr;Addrlen:Longint): boolean;
-
-begin
- Connect:=fpConnect(sock,@addr,addrlen)=0;
-end;
-
-Function Shutdown(Sock:Longint;How:Longint):Longint;
-begin
- ShutDown:=fpshutdown(sock,how);
-end;
-
-Function GetSocketName(Sock:Longint;Var Addr;Var Addrlen:Longint):Longint;
-begin
- GetSocketName:=fpgetsockname(sock,@addr,psocklen(@addrlen));
-end;
-
-Function GetPeerName(Sock:Longint;Var Addr;Var Addrlen:Longint):Longint;
-begin
- GetPeerName:=fpgetPeerName(sock,@addr,psocklen(@addrlen));
-end;
-
-Function SetSocketOptions(Sock,Level,OptName:Longint;const OptVal;optlen:longint):Longint;
-begin
- SetSocketOptions:=fpsetsockopt(Sock,Level,OptName,pointer(@OptVal),optlen);
-end;
-
-Function GetSocketOptions(Sock,Level,OptName:Longint;Var OptVal;Var optlen:longint):Longint;
-begin
- GetSocketOptions:=fpgetsockopt(Sock,Level,OptName,@OptVal,psocklen(@OptLen));
-end;
-
-Function SocketPair(Domain,SocketType,Protocol:Longint;var Pair:TSockArray):Longint;
-begin
- SocketPair:=fpsocketpair(domain,sockettype,protocol,@pair[1]);
-end;
-{$endif}
{******************************************************************************
UnixSock
diff --git a/packages/rtl-extra/src/unix/ipc.pp b/packages/rtl-extra/src/unix/ipc.pp
index 6eb4ac2a0e..9893980d63 100644
--- a/packages/rtl-extra/src/unix/ipc.pp
+++ b/packages/rtl-extra/src/unix/ipc.pp
@@ -64,6 +64,10 @@ Const
{ no IPC_M }
{$endif}
+{$ifdef Solaris}
+ IPC_ALLOC = 1 shl 15;
+{$endif}
+
{$ifndef aix}
IPC_CREAT = 1 shl 9; { create if key is non-existent }
{$else aix}
@@ -72,14 +76,18 @@ Const
IPC_EXCL = 2 shl 9; { fail if key exists }
IPC_NOWAIT = 4 shl 9; { return error on wait }
-{$if defined(FreeBSD) or defined(Darwin) or defined(Linux) or defined(OpenBSD)}
+{$if defined(FreeBSD) or defined(Darwin) or defined(Solaris) or defined(Linux) or defined(OpenBSD)}
IPC_PRIVATE = TKey(0);
{$elseif defined(aix)}
IPC_PRIVATE = TKey(-1)
{$endif}
{ Actions for ctl calls }
-
+{$ifdef Solaris}
+ IPC_RMID = 10; { remove identifier }
+ IPC_SET = 11; { set ipc_perm options }
+ IPC_STAT = 12; { get ipc_perm options }
+{$else}
IPC_RMID = 0; { remove resource }
{$ifndef aix}
IPC_SET = 1; { set ipc_perm options }
@@ -91,10 +99,24 @@ Const
{$ifndef Darwin}
IPC_INFO = 3; { see ipcs }
{$endif}
+{$endif}
type
PIPC_Perm = ^TIPC_Perm;
-{$if defined(darwin) }
+{$if defined(Solaris)}
+ TIPC_Perm = record
+ uid : uid_t; { owner's user id }
+ gid : gid_t; { owner's group id }
+ cuid : uid_t; { creator's user id }
+ cgid : gid_t; { creator's group id }
+ mode : mode_t; { access mode (r/w permission) }
+ seq : uint_t; { slot usage sequence number }
+ key : key_t; { user specified msg/sem/shm key }
+ {$ifndef cpu64}
+ pad : array [0..3] of cint;
+ {$endif}
+ End;
+{$elseif defined(darwin) }
{$packrecords 4}
{ This is also the strcut for FreeBSD up to version 7
renamed ipc_perm_old in /usr/include/sys/ipc.h in version 8 and after }
@@ -194,6 +216,39 @@ Type
end;
{$endif}
+{$ifdef Solaris}
+ shmatt_t = culong;
+
+ TShmid_ds = record
+ shm_perm : TIPC_Perm; // operation permission struct
+ shm_segsz : size_t; // size of segment in bytes
+ shm_flags : uintptr_t; // if 1 the shm_gransize is valid
+ shm_lkcnt : cushort; // number of times it is being locked
+ shm_lpid : pid_t; // pid of last shmop
+ shm_cpid : pid_t; // pid of creator
+ shm_nattch : shmatt_t; // number of attaches
+ shm_cnattch : culong; // number of ISM attaches
+{$ifdef cpu64}
+ shm_atime : time_t; // last shmat time
+ shm_dtime : time_t; // last shmdt time
+ shm_ctime : time_t; // last change time
+ shm_amp : pointer; // unused
+ shm_gransize : cuint64; // granule size
+ shm_allocated: cuint64; // mem allocated, for OSM
+ shm_pad4 : cint64; // reserve area
+{$else}
+ shm_atime : time_t; // last shmat time
+ shm_pad1 : cint32; // reserved for time_t expansion
+ shm_dtime : time_t; // last shmdt time
+ shm_pad2 : cint32; // reserved for time_t expansion
+ shm_ctime : time_t; // last change time
+ shm_amp : pointer; // unused
+ shm_gransize : cuint64; // granule size
+ shm_allocated: cuint64; // mem allocated, for OSM
+{$endif}
+ end;
+{$endif}
+
{$ifdef Darwin}
{$packrecords 4}
TShmid_ds = record
@@ -263,7 +318,7 @@ Type
{$endif aix}
const
-{$if defined(Linux)}
+{$if defined(Linux) or defined(Solaris)}
SHM_R = 4 shl 6;
SHM_W = 2 shl 6;
{$else}
@@ -284,16 +339,33 @@ Type
SHM_LGPAGE = 2 shl 30; { only available with SHM_PIN }
{$endif}
-{$ifndef aix}
- SHM_LOCK = 11;
- SHM_UNLOCK = 12;
-{$else not aix}
+{$if defined(Solaris)}
+ SHM_SHARE_MMU = 4 shl 12;
+ SHM_PAGEABLE = 1 shl 15;
+
+ // Shared memory control operations
+ SHM_LOCK = 3;
+ SHM_UNLOCK = 4;
+
+ // Shared memory advice commands
+ SHM_ADV_GET = 0; // get advice
+ SHM_ADV_SET = 1; // set advice
+
+ // Shared memory advice values
+ SHM_ACCESS_DEFAULT = 0; // default access
+ SHM_ACCESS_LWP = 1; // next thread will access heavily
+ SHM_ACCESS_MANY = 2; // many threads will access heavily
+ SHM_ACCESS_MANY_PSET = 3; // many threads in pset will access heavily
+{$elseif defined(aix)}
SHM_SIZE = 6;
SHM_PAGESIZE = 200;
SHM_LOCK = 201;
SHM_UNLOCK = 202;
SHM_GETLBA = 203;
-{$endif not aix}
+{$else}
+ SHM_LOCK = 11;
+ SHM_UNLOCK = 12;
+{$endif}
{$ifdef FreeBSD} // ipcs shmctl commands
SHM_STAT = 13;
@@ -303,7 +375,7 @@ Type
type // the shm*info kind is "kernel" only.
PSHMinfo = ^TSHMinfo;
{$ifndef aix}
- TSHMinfo = record // comment under FreeBSD/Darwin: do we really need this?
+ TSHMinfo = record // comment under FreeBSD/Darwin/Solaris: do we really need this?
shmmax : cint;
shmmin : cint;
shmmni : cint;
@@ -342,6 +414,14 @@ Function shmctl(shmid:cint; cmd:cint; buf: pshmid_ds): cint; {$ifdef FPC_USE_LIB
const
MSG_NOERROR = 1 shl 12;
+{$if defined(Solaris)}
+ MSG_R = 4 shl 6; // read permission
+ MSG_W = 2 shl 6; // write permission
+
+ MSG_RWAIT = 1 shl 9; // a reader is waiting for a message
+ MSG_WWAIT = 2 shl 9; // a writer is waiting to send
+{$endif}
+
{$if defined(Linux)}
MSG_EXCEPT = 2 shl 12;
@@ -375,7 +455,7 @@ type
PMSG = ^TMSG;
TMSG = record
-{$ifndef FreeBSD} // opaque in FreeBSD
+{$if not defined(FreeBSD) and not defined(Solaris)} // opaque in FreeBSD and Solaris
{$if defined(Darwin)}
msg_next : PMSG;
msg_type : clong;
@@ -398,7 +478,34 @@ type
type
-{$if defined(Linux)}
+{$if defined(Solaris)}
+ PMSQid_ds = ^TMSQid_ds;
+ TMSQid_ds = record
+ msg_perm : TIPC_perm;
+ msg_first : PMsg;
+ msg_last : PMsg;
+ msg_cbytes : msglen_t;
+ msg_qnum : msgqnum_t;
+ msg_qbytes : msglen_t;
+ msg_lspid : pid_t;
+ msg_lrpid : pid_t;
+{$ifdef cpu64}
+ msg_stime : time_t;
+ msg_rtime : time_t;
+ msg_ctime : time_t;
+{$else}
+ msg_stime : time_t;
+ msg_pad1 : cint32;
+ msg_rtime : time_t;
+ msg_pad2 : cint32;
+ msg_ctime : time_t;
+ msg_pad3 : cint32;
+{$endif}
+ msg_cv : cshort;
+ msg_qnum_cv: cshort;
+ msg_pad4 : array [0..2] of clong;
+ end;
+{$elseif defined(Linux)}
PMSQid_ds = ^TMSQid_ds;
TMSQid_ds = record
msg_perm : TIPC_perm;
@@ -520,7 +627,7 @@ type
Function msgget(key: TKey; msgflg:cint):cint; {$ifdef FPC_USE_LIBC} cdecl; external clib name 'msgget'; {$endif}
Function msgsnd(msqid:cint; msgp: PMSGBuf; msgsz: size_t; msgflg:cint): cint; {$ifdef FPC_USE_LIBC} cdecl; external clib name 'msgsnd'; {$endif}
-Function msgrcv(msqid:cint; msgp: PMSGBuf; msgsz: size_t; msgtyp:clong; msgflg:cint): {$if defined(Darwin) or defined(aix)}ssize_t;{$else}cint;{$endif} {$ifdef FPC_USE_LIBC} cdecl; external clib name 'msgrcv'; {$endif}
+Function msgrcv(msqid:cint; msgp: PMSGBuf; msgsz: size_t; msgtyp:clong; msgflg:cint): {$if defined(Darwin) or defined(aix) or defined(Solaris)}ssize_t;{$else}cint;{$endif} {$ifdef FPC_USE_LIBC} cdecl; external clib name 'msgrcv'; {$endif}
Function msgctl(msqid:cint; cmd: cint; buf: PMSQid_ds): cint; {$ifdef FPC_USE_LIBC} cdecl; external clib name 'msgctl'; {$endif}
{ ----------------------------------------------------------------------
@@ -545,7 +652,9 @@ const
SEM_SEMVMX = 32767;
{$else}
SEM_UNDO = 1 shl 12;
+{$if not defined(Solaris)}
MAX_SOPS = 5;
+{$endif}
{$if not defined(aix) and not defined(darwin)}
SEM_GETNCNT = 3; { Return the value of sempid (READ) }
@@ -638,6 +747,27 @@ type
sem_otime: time_t;
sem_ctime: time_t;
end;
+ {$elseif defined(Solaris)}
+ PSEM = ^TSEM;
+ TSEM = record end; // opague
+
+ PSEMid_ds = ^TSEMid_ds;
+ TSEMid_ds = record
+ sem_perm : tipc_perm;
+ sem_base : PSEM;
+ sem_nsems : cushort;
+ {$ifdef cpu64}
+ sem_otime : time_t;
+ sem_ctime : time_t;
+ {$else}
+ sem_otime : time_t;
+ sem_pad1 : cint32;
+ sem_ctime : time_t;
+ sem_pad2 : cint32;
+ {$endif}
+ sem_binary: cint;
+ sem_pad3 : array[0..2] of clong;
+ end;
{$else}
PSEM = ^TSEM;
TSEM = record end; // opaque
diff --git a/packages/rtl-objpas/Makefile b/packages/rtl-objpas/Makefile
index 5df278d4e0..42f761bdd7 100644
--- a/packages/rtl-objpas/Makefile
+++ b/packages/rtl-objpas/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=rtl-objpas
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/rtl-objpas/Makefile.fpc b/packages/rtl-objpas/Makefile.fpc
index 0b5079b87f..2f0b15be6f 100644
--- a/packages/rtl-objpas/Makefile.fpc
+++ b/packages/rtl-objpas/Makefile.fpc
@@ -4,10 +4,10 @@
[package]
name=rtl-objpas
-version=2.7.1
+version=3.1.1
[require]
-packages=rtl fpmkunit
+packages=rtl fpmkunit
[install]
fpcpackage=y
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/rtl-objpas/Makefile.fpc.fpcmake b/packages/rtl-objpas/Makefile.fpc.fpcmake
index f1c311583b..85743c4b4c 100644
--- a/packages/rtl-objpas/Makefile.fpc.fpcmake
+++ b/packages/rtl-objpas/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=rtl-objpas
-version=2.7.1
+version=3.1.1
# all Unices support everything except QNX(nothing)
[target]
diff --git a/packages/rtl-objpas/fpmake.pp b/packages/rtl-objpas/fpmake.pp
index ccbf836629..36bee9db87 100644
--- a/packages/rtl-objpas/fpmake.pp
+++ b/packages/rtl-objpas/fpmake.pp
@@ -15,15 +15,15 @@ Const
// AllUnixOSes = [Linux,FreeBSD,NetBSD,OpenBSD,Darwin,QNX,BeOS,Solaris,Haiku,iphonesim,aix,Android];
// unixlikes-[beos];
//
- StrUtilsOSes = [amiga,emx,gba,go32v2,msdos,netware,wince,morphos,nativent,os2,netwlibc,win32,win64]+UnixLikes;
- VarUtilsOSes = [amiga,emx,gba,go32v2,msdos,nds,netware,wince,morphos,nativent,os2,netwlibc,watcom,wii,win32,win64]+UnixLikes;
+ StrUtilsOSes = [amiga,aros,emx,gba,go32v2,msdos,netware,wince,morphos,nativent,os2,netwlibc,win32,win64]+UnixLikes;
+ VarUtilsOSes = [amiga,aros,emx,gba,go32v2,msdos,nds,netware,wince,morphos,nativent,os2,netwlibc,watcom,wii,win32,win64]+UnixLikes;
ConvUtilsOSes = [nativent,netware,netwlibc,win32,win64,wince]+UnixLikes-[BeOS];
ConvUtilOSes = [Go32v2,msdos,os2,emx];
- DateUtilsOSes = [Amiga,gba,morphos,nativent,nds,netware,netwlibc,wii,win32,win64,wince]+UnixLikes;
+ DateUtilsOSes = [Amiga,aros,gba,morphos,nativent,nds,netware,netwlibc,wii,win32,win64,wince]+UnixLikes;
DateUtilOSes = [Go32v2,msdos,os2,emx];
StdConvsOSes = [NativeNT,Win32,win64,os2,msdos,go32v2]+UnixLikes-[BeOS];
- FmtBCDOSes = [amiga,emx,gba,go32v2,morphos,msdos,nativent,nds,netware,netwlibc,os2,win32,win64,wince]+UnixLikes;
- VariantsOSes = [amiga,emx,gba,go32v2,morphos,msdos,nativent,nds,netware,netwlibc,os2,watcom,wii,win32,win64,wince]+UnixLikes;
+ FmtBCDOSes = [amiga,aros,emx,gba,go32v2,morphos,msdos,nativent,nds,netware,netwlibc,os2,win32,win64,wince]+UnixLikes;
+ VariantsOSes = [amiga,aros,emx,gba,go32v2,morphos,msdos,nativent,nds,netware,netwlibc,os2,watcom,wii,win32,win64,wince]+UnixLikes;
AllTargetsObjPas = DateUtilsOses +DateUtilOSes+
VarutilsOses + ConvutilsOSes + ConvutilOSes + StdConvsOSes+
FmtBCDOSes + StrUtilsOSes;
@@ -36,8 +36,9 @@ begin
With Installer do
begin
P:=AddPackage('rtl-objpas');
+ P.ShortName:='rtlo';
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'FPC core team';
P.License := 'LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
@@ -99,7 +100,10 @@ begin
T:=P.Targets.AddUnit('stdconvs.pp',StdConvsOSes);
T.ResourceStrings:=true;
with T.Dependencies do
- AddUnit('convutils');
+ begin
+ AddUnit('convutils',ConvUtilsOSes);
+ AddUnit('convutil',ConvUtilOSes);
+ end;
T:=P.Targets.AddUnit('fmtbcd.pp',FmtBCDOSes);
with T.Dependencies do
diff --git a/packages/rtl-objpas/src/aros/varutils.pp b/packages/rtl-objpas/src/aros/varutils.pp
new file mode 100644
index 0000000000..ab445f891f
--- /dev/null
+++ b/packages/rtl-objpas/src/aros/varutils.pp
@@ -0,0 +1,38 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 1999-2000 by the Free Pascal development team
+
+ Interface and OS-dependent part of variant support
+
+ 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}
+
+Unit varutils;
+
+Interface
+
+Uses sysutils;
+
+// Read definitions.
+
+{$i varutilh.inc}
+
+Implementation
+
+// Code common to all platforms.
+
+{$i cvarutil.inc}
+
+// Code common to non-win32 platforms.
+
+{$i varutils.inc}
+
+end.
diff --git a/packages/rtl-objpas/src/inc/variants.pp b/packages/rtl-objpas/src/inc/variants.pp
index 9761232ba1..36a6399bde 100644
--- a/packages/rtl-objpas/src/inc/variants.pp
+++ b/packages/rtl-objpas/src/inc/variants.pp
@@ -173,7 +173,7 @@ type
function LeftPromotion(const V: TVarData; const Operation: TVarOp; out RequiredVarType: TVarType): Boolean; virtual;
function RightPromotion(const V: TVarData; const Operation: TVarOp; out RequiredVarType: TVarType): Boolean; virtual;
function OlePromotion(const V: TVarData; out RequiredVarType: TVarType): Boolean; virtual;
- procedure DispInvoke(Dest: PVarData; const Source: TVarData; CallDesc: PCallDesc; Params: Pointer); virtual;
+ procedure DispInvoke(Dest: PVarData; var Source: TVarData; CallDesc: PCallDesc; Params: Pointer); virtual;
procedure VarDataInit(var Dest: TVarData);
procedure VarDataClear(var Dest: TVarData);
procedure VarDataCopy(var Dest: TVarData; const Source: TVarData);
@@ -219,13 +219,13 @@ type
const Arguments: TVarDataArray): Boolean;
function GetProperty(var Dest: TVarData; const V: TVarData;
const Name: string): Boolean;
- function SetProperty(const V: TVarData; const Name: string;
+ function SetProperty(var V: TVarData; const Name: string;
const Value: TVarData): Boolean;
end;
TInvokeableVariantType = class(TCustomVariantType, IVarInvokeable)
protected
- procedure DispInvoke(Dest: PVarData; const Source: TVarData;
+ procedure DispInvoke(Dest: PVarData; var Source: TVarData;
CallDesc: PCallDesc; Params: Pointer); override;
public
{ IVarInvokeable }
@@ -235,7 +235,7 @@ type
const Arguments: TVarDataArray): Boolean; virtual;
function GetProperty(var Dest: TVarData; const V: TVarData;
const Name: string): Boolean; virtual;
- function SetProperty(const V: TVarData; const Name: string;
+ function SetProperty(var V: TVarData; const Name: string;
const Value: TVarData): Boolean; virtual;
end;
@@ -251,7 +251,7 @@ type
public
function GetProperty(var Dest: TVarData; const V: TVarData;
const Name: string): Boolean; override;
- function SetProperty(const V: TVarData; const Name: string;
+ function SetProperty(var V: TVarData; const Name: string;
const Value: TVarData): Boolean; override;
end;
@@ -481,15 +481,16 @@ end;
function TVariantArrayIterator.AtEnd: Boolean;
var
- i : sizeint;
+ i,l : sizeint;
begin
- result:=true;
- for i:=0 to Pred(Dims) do
- if Coords^[i] < Bounds^[i].LowBound + Bounds^[i].ElementCount then
- begin
- result:=false;
- exit;
- end;
+ result:=false;
+ l:=Pred(dims);
+ I:=0;
+ While (not Result) and (I<=L) do
+ begin
+ Result:=Coords^[i] >= (Bounds^[i].LowBound + Bounds^[i].ElementCount);
+ inc(i);
+ end;
end;
{$pop}// {$r-} for TVariantArrayIterator
@@ -2523,7 +2524,7 @@ begin
end;
-procedure sysdispinvoke(Dest : PVarData; const Source : TVarData;calldesc : pcalldesc;params : Pointer);cdecl;
+procedure sysdispinvoke(Dest : PVarData; var source : TVarData;calldesc : pcalldesc;params : Pointer);cdecl;
var
temp : TVarData;
tempp : ^TVarData;
@@ -3726,7 +3727,7 @@ begin
end;
-procedure TCustomVariantType.DispInvoke(Dest: PVarData; const Source: TVarData; CallDesc: PCallDesc; Params: Pointer);
+procedure TCustomVariantType.DispInvoke(Dest: PVarData; var Source: TVarData; CallDesc: PCallDesc; Params: Pointer);
begin
RaiseDispError;
@@ -3992,7 +3993,7 @@ end;
TInvokeableVariantType implementation
---------------------------------------------------------------------}
-procedure TInvokeableVariantType.DispInvoke(Dest: PVarData; const Source: TVarData;
+procedure TInvokeableVariantType.DispInvoke(Dest: PVarData; var Source: TVarData;
CallDesc: PCallDesc; Params: Pointer);
var
method_name: ansistring;
@@ -4004,6 +4005,8 @@ var
arg_ptr: pointer;
arg_data: PVarData;
dummy_data: TVarData;
+ arg_advanced: boolean;
+
const
argtype_mask = $7F;
argref_mask = $80;
@@ -4032,22 +4035,46 @@ begin
Inc(arg_ptr,sizeof(Pointer));
end
else
- case arg_type of
- varError:
- arg_data^.vError:=VAR_PARAMNOTFOUND;
- varVariant:
- begin
+ begin
+ arg_advanced:=false;
+ case arg_type of
+ varError:
+ begin
+ arg_data^.vError:=VAR_PARAMNOTFOUND;
+ arg_advanced := true;
+ end;
+ varVariant:
arg_data^ := PVarData(PPointer(arg_ptr)^)^;
- Inc(arg_ptr,sizeof(Pointer));
- end;
- varDouble, varCurrency, varInt64, varQWord:
- begin
- arg_data^.vQWord := PQWord(arg_ptr)^; // 64bit on all platforms
- inc(arg_ptr,sizeof(qword))
- end
- else
- arg_data^.vAny := PPointer(arg_ptr)^; // 32 or 64bit
- inc(arg_ptr,sizeof(pointer))
+ varDouble, varCurrency, varDate, varInt64, varQWord:
+ begin
+ arg_data^.vQWord := PQWord(arg_ptr)^; // 64bit on all platforms
+ inc(arg_ptr,sizeof(QWord));
+ arg_advanced := true;
+ end;
+ { values potentially smaller than sizeof(pointer) must be handled
+ explicitly to guarantee endian safety and to prevent copying/
+ skipping data (they are always copied into a 4 byte element
+ by the compiler, although it will still skip sizeof(pointer)
+ bytes afterwards) }
+ varSingle:
+ arg_data^.vSingle := PSingle(arg_ptr)^;
+ varSmallint:
+ arg_data^.vSmallInt := PLongint(arg_ptr)^;
+ varInteger:
+ arg_data^.vInteger := PLongint(arg_ptr)^;
+ varBoolean:
+ arg_data^.vBoolean := WordBool(PLongint(arg_ptr)^);
+ varShortInt:
+ arg_data^.vShortInt := PLongint(arg_ptr)^;
+ varByte:
+ arg_data^.vByte := PLongint(arg_ptr)^;
+ varWord:
+ arg_data^.vWord := PLongint(arg_ptr)^;
+ else
+ arg_data^.vAny := PPointer(arg_ptr)^; // 32 or 64bit
+ end;
+ if not arg_advanced then
+ inc(arg_ptr,sizeof(pointer));
end;
end;
end;
@@ -4123,7 +4150,7 @@ function TInvokeableVariantType.GetProperty(var Dest: TVarData; const V: TVarDat
end;
-function TInvokeableVariantType.SetProperty(const V: TVarData; const Name: string; const Value: TVarData): Boolean;
+function TInvokeableVariantType.SetProperty(var V: TVarData; const Name: string; const Value: TVarData): Boolean;
begin
result := False;
end;
@@ -4140,7 +4167,7 @@ function TPublishableVariantType.GetProperty(var Dest: TVarData; const V: TVarDa
end;
-function TPublishableVariantType.SetProperty(const V: TVarData; const Name: string; const Value: TVarData): Boolean;
+function TPublishableVariantType.SetProperty(var V: TVarData; const Name: string; const Value: TVarData): Boolean;
begin
Result:=true;
SetPropValue(getinstance(v),name,Variant(value));
diff --git a/packages/rtl-unicode/Makefile b/packages/rtl-unicode/Makefile
new file mode 100644
index 0000000000..6ad50fea3b
--- /dev/null
+++ b/packages/rtl-unicode/Makefile
@@ -0,0 +1,2407 @@
+#
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
+#
+default: all
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
+UNIXs = linux $(BSDs) solaris qnx haiku aix
+LIMIT83fs = go32v2 os2 emx watcom msdos
+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),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
+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 units)),)
+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 units)),)
+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 units)),)
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+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
+ifeq ($(CPU_TARGET),mipsel)
+BINUTILSPREFIX=mipsel-linux-android-
+endif
+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 $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
+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-unicode
+override PACKAGE_VERSION=3.1.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
+BATCHEXT=.bat
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+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=
+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
+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-qnx)
+REQUIRE_PACKAGES_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-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),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-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),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-embedded)
+REQUIRE_PACKAGES_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-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-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-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),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-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
+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)
+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)
+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
+ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
+ifeq ($(CPU_TARGET),i386)
+FPCCPUOPT:=-OG2p3
+endif
+ifeq ($(CPU_TARGET),powerpc)
+FPCCPUOPT:=-O1r
+endif
+else
+FPCCPUOPT:=-O2
+endif
+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),)
+ifeq ($(CPU_TARGET),x86_64)
+override FPCOPT+=-Cg
+endif
+endif
+ifdef LINKSHARED
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+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
+override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
+ifneq ($(UNITTARGETDIRPREFIX),)
+override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
+override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
+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: $(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)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
+endif
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
+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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *$(ASMEXT) *_ppas$(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
+ -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+ -$(DEL) *.o *.ppu *.a
+endif
+ -$(DELTREE) *$(SMARTEXT)
+ -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *_ppas$(BATCHEXT)
+ifdef AOUTEXT
+ -$(DEL) *$(AOUTEXT)
+endif
+ifdef DEBUGSYMEXT
+ -$(DEL) *$(DEBUGSYMEXT)
+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))
+ifdef FPMAKEOPT
+FPMAKE_OPT+=$(FPMAKEOPT)
+endif
+FPMAKE_OPT+=--localunitdir=../..
+FPMAKE_OPT+=--globalunitdir=..
+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/packages/rtl-unicode/Makefile.fpc b/packages/rtl-unicode/Makefile.fpc
new file mode 100644
index 0000000000..b3ce3a3d4b
--- /dev/null
+++ b/packages/rtl-unicode/Makefile.fpc
@@ -0,0 +1,100 @@
+#
+# Makefile.fpc for running fpmake
+#
+
+[package]
+name=rtl-unicode
+version=3.1.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))
+# Compose general fpmake-parameters
+ifdef FPMAKEOPT
+FPMAKE_OPT+=$(FPMAKEOPT)
+endif
+FPMAKE_OPT+=--localunitdir=../..
+FPMAKE_OPT+=--globalunitdir=..
+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/packages/rtl-unicode/fpmake.pp b/packages/rtl-unicode/fpmake.pp
index ef1b9f3aea..086aa7aaf1 100644
--- a/packages/rtl-unicode/fpmake.pp
+++ b/packages/rtl-unicode/fpmake.pp
@@ -12,13 +12,13 @@ Const
// in workable state atm.
UnixLikes = AllUnixOSes -[QNX];
- CollationOSes = [aix,darwin,freebsd,linux,netbsd,openbsd,solaris,win32,win64];
- CPUnits = [aix,amiga,android,beos,darwin,iphonesim,emx,gba,freebsd,go32v2,haiku,linux,morphos,netbsd,netware,netwlibc,openbsd,os2,solaris,watcom,wii,win32,win64,wince];
+ CollationOSes = [aix,darwin,freebsd,linux,netbsd,openbsd,solaris,win32,win64,dragonfly];
+ CPUnits = [aix,amiga,aros,android,beos,darwin,iphonesim,emx,gba,freebsd,go32v2,haiku,linux,morphos,netbsd,netware,netwlibc,openbsd,os2,solaris,watcom,wii,win32,win64,wince,dragonfly];
utf8bidiOSes = [netware,netwlibc];
freebidiOSes = [netware,netwlibc];
// Character not movable because fpwidestring depends on it.
-// CharacterOSes = [android,darwin,freebsd,linux,netbsd,openbsd,solaris,win32,win64];
+// CharacterOSes = [android,darwin,freebsd,linux,netbsd,openbsd,solaris,win32,win64,dragonfly];
UnicodeAllOSes = CollationOSes + utf8bidiOSes + freebidiOSes + CPUnits;
@@ -32,8 +32,9 @@ begin
With Installer do
begin
P:=AddPackage('rtl-unicode');
+ P.ShortName:='rtlu';
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'FPC core team';
P.License := 'LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/sdl/Makefile b/packages/sdl/Makefile
index 38a29d54bd..8b57dadd7c 100644
--- a/packages/sdl/Makefile
+++ b/packages/sdl/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=sdl
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/sdl/Makefile.fpc b/packages/sdl/Makefile.fpc
index 6eea6dafc6..b5f214ed20 100644
--- a/packages/sdl/Makefile.fpc
+++ b/packages/sdl/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=sdl
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/sdl/Makefile.fpc.fpcmake b/packages/sdl/Makefile.fpc.fpcmake
index ae4605b278..be59682a89 100644
--- a/packages/sdl/Makefile.fpc.fpcmake
+++ b/packages/sdl/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=sdl
-version=2.7.1
+version=3.1.1
[require]
libc=y
diff --git a/packages/sdl/fpmake.pp b/packages/sdl/fpmake.pp
index 2491c22cbf..408dbf929b 100644
--- a/packages/sdl/fpmake.pp
+++ b/packages/sdl/fpmake.pp
@@ -16,14 +16,15 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.IncludePath.Add('src');
P.Dependencies.Add('x11',AllUnixOSes);
P.Dependencies.Add('pthreads',AllUnixOSes);
+ P.Dependencies.Add('morphunits',[morphos]);
if Defaults.CPU=arm then
P.OSes := P.OSes - [darwin];
- P.OSes := P.OSes - [iphonesim,os2,emx,go32v2,watcom,nativent,embedded,android,amiga,msdos];
+ P.OSes := P.OSes - [iphonesim,os2,emx,go32v2,watcom,nativent,embedded,android,amiga,aros,msdos];
T:=P.Targets.AddUnit('logger.pas');
with T.Dependencies do
diff --git a/packages/sndfile/Makefile b/packages/sndfile/Makefile
index 6c1b8e7f04..13d078ca5b 100644
--- a/packages/sndfile/Makefile
+++ b/packages/sndfile/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=sndfile
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/sndfile/Makefile.fpc b/packages/sndfile/Makefile.fpc
index 9e7566fcfa..e18b9d503b 100644
--- a/packages/sndfile/Makefile.fpc
+++ b/packages/sndfile/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=sndfile
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/sndfile/Makefile.fpc.fpcmake b/packages/sndfile/Makefile.fpc.fpcmake
index f63c1b4c7c..dd61bba08a 100644
--- a/packages/sndfile/Makefile.fpc.fpcmake
+++ b/packages/sndfile/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=sndfile
-version=2.7.1
+version=3.1.1
[target]
units=sndfile
diff --git a/packages/sqlite/Makefile b/packages/sqlite/Makefile
index 11f6309336..5b394c0b93 100644
--- a/packages/sqlite/Makefile
+++ b/packages/sqlite/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=sqlite
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/sqlite/Makefile.fpc b/packages/sqlite/Makefile.fpc
index 42e8cd1339..e6d85ee852 100644
--- a/packages/sqlite/Makefile.fpc
+++ b/packages/sqlite/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=sqlite
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/sqlite/Makefile.fpc.fpcmake b/packages/sqlite/Makefile.fpc.fpcmake
index 3d7d58c86c..6560111e66 100644
--- a/packages/sqlite/Makefile.fpc.fpcmake
+++ b/packages/sqlite/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=sqlite
-version=2.7.1
+version=3.1.1
[target]
units=sqlite sqlite3 sqlite3dyn sqlitedb sqlite3db
diff --git a/packages/sqlite/fpmake.pp b/packages/sqlite/fpmake.pp
index d699d6b4d0..a6dcaa8fb3 100644
--- a/packages/sqlite/fpmake.pp
+++ b/packages/sqlite/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('sqlite');
+ P.ShortName:='sqlt';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes := AllUnixOSes+AllWindowsOSes-[qnx];
P.SourcePath.Add('src');
P.IncludePath.Add('src');
diff --git a/packages/sqlite/src/sqlite3.inc b/packages/sqlite/src/sqlite3.inc
index f44327cb2a..74da066e49 100644
--- a/packages/sqlite/src/sqlite3.inc
+++ b/packages/sqlite/src/sqlite3.inc
@@ -42,9 +42,9 @@ const
SQLITE_SOURCE_ID = '2011-11-01 00:52:41 c7c6050ef060877ebe77b41d959e9df13f8c9b5e';
//SQLITE_EXTERN const char sqlite3_version[];
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_libversion{$IFDEF D}: function{$ENDIF}(): pchar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_libversion{$IFDEF D}: function{$ENDIF}(): pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_libversion_number{$IFDEF D}: function{$ENDIF}(): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-function sqlite3_version(): pchar;
+function sqlite3_version(): pansichar;
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_threadsafe{$IFDEF D}: function{$ENDIF}(): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -78,14 +78,14 @@ type
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_close{$IFDEF D}: function{$ENDIF}(ref: psqlite3): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
type
- sqlite3_callback = function(user: pointer; cols: cint; values, name: ppchar): cint; cdecl;
+ sqlite3_callback = function(user: pointer; cols: cint; values, name: ppansichar): cint; cdecl;
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_exec{$IFDEF D}: function{$ENDIF}(
db: psqlite3; (* An open database *)
- sql: pchar; (* SQL to be evaluted *)
+ sql: pansichar; (* SQL to be evaluted *)
cb: sqlite3_callback; (* Callback function *)
user: pointer; (* 1st argument to callback *)
- errmsg: ppchar (* Error msg written here *)
+ errmsg: ppansichar (* Error msg written here *)
): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
const
@@ -245,23 +245,23 @@ type
szOsFile : cint; (* Size of subclassed sqlite3_file *)
mxPathname : cint; (* Maximum file pathname length *)
pNext : psqlite3_vfs; (* Next registered VFS *)
- zName : pchar; (* Name of this virtual file system *)
+ zName : pansichar; (* Name of this virtual file system *)
pAppData : ppointer; (* Pointer to application-specific *)
- Open : function(vfs: psqlite3_vfs; zName: pchar; f: psqlite3_file; flags: cint; pOutFlags: pcint): cint; cdecl;
- Delete : function(vfs: psqlite3_vfs; zName: pchar; syncDir: cint): cint; cdecl;
- Access : function(vfs: psqlite3_vfs; zName: pchar; flags: cint): cint; cdecl;
- GetTempname : function(vfs: psqlite3_vfs; nOut: cint; zOut: pchar): cint; cdecl;
- FullPathname : function(vfs: psqlite3_vfs; zName: pchar; nOut: cint; zOut: pchar): cint; cdecl;
- DlOpen : function(vfs: psqlite3_vfs; zFilename: pchar): pointer; cdecl;
- DlError : procedure(vfs: psqlite3_vfs; nByte: cint; zErrMsg: pchar); cdecl;
- DlSym : function(vfs: psqlite3_vfs; addr: pointer; zSymbol: pchar): pointer; cdecl;
+ Open : function(vfs: psqlite3_vfs; zName: pansichar; f: psqlite3_file; flags: cint; pOutFlags: pcint): cint; cdecl;
+ Delete : function(vfs: psqlite3_vfs; zName: pansichar; syncDir: cint): cint; cdecl;
+ Access : function(vfs: psqlite3_vfs; zName: pansichar; flags: cint): cint; cdecl;
+ GetTempname : function(vfs: psqlite3_vfs; nOut: cint; zOut: pansichar): cint; cdecl;
+ FullPathname : function(vfs: psqlite3_vfs; zName: pansichar; nOut: cint; zOut: pansichar): cint; cdecl;
+ DlOpen : function(vfs: psqlite3_vfs; zFilename: pansichar): pointer; cdecl;
+ DlError : procedure(vfs: psqlite3_vfs; nByte: cint; zErrMsg: pansichar); cdecl;
+ DlSym : function(vfs: psqlite3_vfs; addr: pointer; zSymbol: pansichar): pointer; cdecl;
DlClose : procedure(vfs: psqlite3_vfs; addr: pointer); cdecl;
- Randomness : function(vfs: psqlite3_vfs; nByte: cint; zOut: pchar): cint; cdecl;
+ Randomness : function(vfs: psqlite3_vfs; nByte: cint; zOut: pansichar): cint; cdecl;
Sleep : function(vfs: psqlite3_vfs; microseconds: cint): cint; cdecl;
CurrentTime : function(vfs: psqlite3_vfs; time: pcdouble): cint; cdecl;
- xSetSystemCall : function(vfs: psqlite3_vfs; zName: pchar; sqlite3_syscall_ptr : pointer) : cint;
- xGetSystemCall : function(vfs: psqlite3_vfs; zName: pchar) : pointer; cdecl;
- xNextSystemCall : function(vfs: psqlite3_vfs; zName: pchar) : pchar; cdecl;
+ xSetSystemCall : function(vfs: psqlite3_vfs; zName: pansichar; sqlite3_syscall_ptr : pointer) : cint;
+ xGetSystemCall : function(vfs: psqlite3_vfs; zName: pansichar) : pointer; cdecl;
+ xNextSystemCall : function(vfs: psqlite3_vfs; zName: pansichar) : pansichar; cdecl;
end;
const
@@ -345,8 +345,8 @@ Const
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_changes{$IFDEF D}: function{$ENDIF}(db: psqlite3): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_total_changes{$IFDEF D}: function{$ENDIF}(db: psqlite3): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_interrupt{$IFDEF D}: procedure{$ENDIF}(db: psqlite3); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_complete{$IFDEF D}: function{$ENDIF}(sql: pchar): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_complete16{$IFDEF D}: function{$ENDIF}(sql: pchar): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_complete{$IFDEF D}: function{$ENDIF}(sql: pansichar): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_complete16{$IFDEF D}: function{$ENDIF}(sql: pansichar): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
type
busyhandler_callback = function(user: pointer; cnt: cint): cint; cdecl;
@@ -355,14 +355,14 @@ type
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_busy_timeout{$IFDEF D}: function{$ENDIF}(db: psqlite3; ms: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_get_table{$IFDEF D}: function{$ENDIF}(
db: psqlite3; (* An open database *)
- sql: pchar; (* SQL to be evaluated *)
- pResult: pppchar; (* Results of the query *)
+ sql: pansichar; (* SQL to be evaluated *)
+ pResult: pppansichar; (* Results of the query *)
nrow: pcint; (* Number of result rows written here *)
ncolumn: pcint; (* Number of result columns written here *)
- errmsg: ppchar (* Error msg written here *)
+ errmsg: ppansichar (* Error msg written here *)
): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_free_table{$IFDEF D}: procedure{$ENDIF}(result: ppchar); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_free_table{$IFDEF D}: procedure{$ENDIF}(result: ppansichar); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
//char *sqlite3_mprintf(const char*,...);
//char *sqlite3_vmprintf(const char*, va_list);
//char *sqlite3_snprintf(int,char*,const char*, ...);
@@ -377,7 +377,7 @@ type
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_randomness{$IFDEF D}: procedure{$ENDIF}(N: cint; P: pointer); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
type
- xAuth = function(pUserData: pointer; code: cint; s1, s2, s3, s4: pchar): cint; cdecl;
+ xAuth = function(pUserData: pointer; code: cint; s1, s2, s3, s4: pansichar): cint; cdecl;
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_set_authorizer{$IFDEF D}: function{$ENDIF}(
db: psqlite3;
@@ -426,7 +426,7 @@ const
type
- xTrace = procedure(user: pointer; s: pchar); cdecl;
+ xTrace = procedure(user: pointer; s: pansichar); cdecl;
xProfile = procedure(user: pointer; s: char; i: sqlite3_uint64); cdecl;
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_trace{$IFDEF D}: function{$ENDIF}(db: psqlite3; cb: xTrace; user: pointer): pointer; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -438,7 +438,7 @@ type
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_progress_handler{$IFDEF D}: procedure{$ENDIF}(db: psqlite3; i: cint; cb: progress_callback; user: pointer); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_open{$IFDEF D}: function{$ENDIF}(
- filename: pchar; (* Database filename (UTF-8) *)
+ filename: pansichar; (* Database filename (UTF-8) *)
ppDb: ppsqlite3 (* OUT: SQLite db handle *)
): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -448,23 +448,23 @@ type
): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_open_v2{$IFDEF D}: function{$ENDIF}(
- filename: pchar; (* Database filename (UTF-8) *)
+ filename: pansichar; (* Database filename (UTF-8) *)
ppDb: ppsqlite3; (* OUT: SQLite db handle *)
flags: cint; (* Flags *)
- zVfs: pchar (* Name of VFS module to use *)
+ zVfs: pansichar (* Name of VFS module to use *)
): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}
-function sqlite3_uri_parameter(zFilename : pchar; zParam :pchar) : pchar;cdecl;external Sqlite3Lib;
+function sqlite3_uri_parameter(zFilename : pansichar; zParam :pansichar) : pansichar;cdecl;external Sqlite3Lib;
{$ENDIF}
{$IFDEF D}
var
- sqlite3_uri_parameter : function(zFilename : pchar; zParam :pchar) : pchar;cdecl;
+ sqlite3_uri_parameter : function(zFilename : pansichar; zParam :pansichar) : pansichar;cdecl;
{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_errcode{$IFDEF D}: function{$ENDIF}(db: psqlite3): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_extended_errcode{$IFDEF D}: function{$ENDIF}(db: psqlite3): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_errmsg{$IFDEF D}: function{$ENDIF}(db: psqlite3): pchar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_errmsg{$IFDEF D}: function{$ENDIF}(db: psqlite3): pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_errmsg16{$IFDEF D}: function{$ENDIF}(db: psqlite3): pwidechar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
type
@@ -492,18 +492,18 @@ const
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_prepare{$IFDEF D}: function{$ENDIF}(
db: psqlite3; (* Database handle *)
- zSql: pchar; (* SQL statement, UTF-8 encoded *)
+ zSql: pansichar; (* SQL statement, UTF-8 encoded *)
nByte: cint; (* Maximum length of zSql in bytes. *)
ppStmt: ppsqlite3_stmt; (* OUT: Statement handle *)
- pzTail: ppchar (* OUT: Pointer to unused portion of zSql *)
+ pzTail: ppansichar (* OUT: Pointer to unused portion of zSql *)
): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_prepare_v2{$IFDEF D}: function{$ENDIF}(
db: psqlite3; (* Database handle *)
- zSql: pchar; (* SQL statement, UTF-8 encoded *)
+ zSql: pansichar; (* SQL statement, UTF-8 encoded *)
nByte: cint; (* Maximum length of zSql in bytes. *)
ppStmt: ppsqlite3_stmt; (* OUT: Statement handle *)
- pzTail: ppchar (* OUT: Pointer to unused portion of zSql *)
+ pzTail: ppansichar (* OUT: Pointer to unused portion of zSql *)
): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_prepare16{$IFDEF D}: function{$ENDIF}(
@@ -523,7 +523,7 @@ const
): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_sql{$IFDEF D}: function{$ENDIF}(pStmt: psqlite3_stmt): pchar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_sql{$IFDEF D}: function{$ENDIF}(pStmt: psqlite3_stmt): pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
type
@@ -540,24 +540,24 @@ type
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_int{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_int64{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: sqlite3_int64): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_null{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_text{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: pchar; L: cint; D: sqlite3_destructor_type): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_text{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: pansichar; L: cint; D: sqlite3_destructor_type): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_text16{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: pwidechar; L: cint; D: sqlite3_destructor_type): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_value{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: psqlite3_value): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_zeroblob{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint; V: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_parameter_count{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_parameter_name{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pchar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_parameter_index{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; zName: pchar): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_parameter_name{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_bind_parameter_index{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; zName: pansichar): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_clear_bindings{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_count{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_name{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pchar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_name{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_name16{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pwidechar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_database_name{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pchar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_database_name{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_database_name16{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pwidechar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_table_name{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pchar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_table_name{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_table_name16{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pwidechar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_origin_name{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pchar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_origin_name{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_origin_name16{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pwidechar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_decltype{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pchar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_decltype{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_decltype16{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; N: cint): pwidechar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_step{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_data_count{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -577,7 +577,7 @@ const
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_double{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; iCol: cint): cdouble; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_int{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; iCol: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_int64{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; iCol: cint): sqlite3_int64; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_text{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; iCol: cint): pchar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_text{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; iCol: cint): pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_text16{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; iCol: cint): pwidechar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_type{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; iCol: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_column_value{$IFDEF D}: function{$ENDIF}(stmt: psqlite3_stmt; iCol: cint): psqlite3_value; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -592,7 +592,7 @@ type
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_create_function{$IFDEF D}: function{$ENDIF}(
db: psqlite3;
- zFunctionName: pchar;
+ zFunctionName: pansichar;
nArg: cint;
eTextRep: cint;
pApp: pointer;
@@ -614,7 +614,7 @@ type
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_create_function_v2{$IFDEF D}: function{$ENDIF}(
db: psqlite3;
- zFunctionName: pchar;
+ zFunctionName: pansichar;
nArg: cint;
eTextRep: cint;
pApp: pointer;
@@ -650,7 +650,7 @@ type
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_value_double{$IFDEF D}: function{$ENDIF}(val: psqlite3_value): cdouble; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_value_int{$IFDEF D}: function{$ENDIF}(val: psqlite3_value): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_value_int64{$IFDEF D}: function{$ENDIF}(val: psqlite3_value): sqlite3_int64; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_value_text{$IFDEF D}: function{$ENDIF}(val: psqlite3_value): pchar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_value_text{$IFDEF D}: function{$ENDIF}(val: psqlite3_value): pansichar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_value_text16{$IFDEF D}: function{$ENDIF}(val: psqlite3_value): pwidechar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_value_text16le{$IFDEF D}: function{$ENDIF}(val: psqlite3_value): pwidechar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_value_text16be{$IFDEF D}: function{$ENDIF}(val: psqlite3_value): pwidechar; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -668,15 +668,15 @@ type
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_set_auxdata{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; N: cint; P: pointer; cb: set_auxdata_cb); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_blob{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pointer; N: cint; D: sqlite3_destructor_type); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_double{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: cdouble); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_error{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pchar; N: cint); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_error{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pansichar; N: cint); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_error16{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pwidechar; N: cint); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_error_toobig{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_error_nomem{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_error_code{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: cint); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_cint{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: cint); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_cint64{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: sqlite3_int64); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_int{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: cint); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_int64{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: sqlite3_int64); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_null{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_text{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pchar; N: cint; D: sqlite3_destructor_type); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_text{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pansichar; N: cint; D: sqlite3_destructor_type); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_text16{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pwidechar; N: cint; D: sqlite3_destructor_type); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_text16le{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pwidechar; N: cint; D: sqlite3_destructor_type); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}procedure{$ELSE}var{$ENDIF}sqlite3_result_text16be{$IFDEF D}: procedure{$ENDIF}(ctx: psqlite3_context; V: pwidechar; N: cint; D: sqlite3_destructor_type); cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -688,7 +688,7 @@ type
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_create_collation{$IFDEF D}: function{$ENDIF}(
db: psqlite3;
- zName: pchar;
+ zName: pansichar;
eTextRep: cint;
user: pointer;
xcomparecb: xCompare
@@ -696,7 +696,7 @@ type
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_create_collation_v2{$IFDEF D}: function{$ENDIF}(
db: psqlite3;
- zName: pchar;
+ zName: pansichar;
eTextRep: cint;
user: pointer;
xcomparecb: xCompare;
@@ -713,7 +713,7 @@ type
type
- collation_needed_cb = function(user: pointer; db: psqlite3; eTextRep: cint; s: pchar): pointer; cdecl;
+ collation_needed_cb = function(user: pointer; db: psqlite3; eTextRep: cint; s: pansichar): pointer; cdecl;
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_collation_needed{$IFDEF D}: function{$ENDIF}(
db: psqlite3;
@@ -738,7 +738,7 @@ type
{$ifndef win32}
var
- sqlite3_temp_directory: pchar; cvar; external {Sqlite3Lib};
+ sqlite3_temp_directory: pansichar; cvar; external {Sqlite3Lib};
{$endif}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_get_autocommit{$IFDEF D}: function{$ENDIF}(db: psqlite3): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -751,7 +751,7 @@ type
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_commit_hook{$IFDEF D}: function{$ENDIF}(db: psqlite3; cb: commit_callback; user: pointer): pointer; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_rollback_hook{$IFDEF D}: function{$ENDIF}(db: psqlite3; cb: sqlite3_destructor_type; user: pointer): pointer; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
type
- update_callback = procedure(user: pointer; event: cint; database, table: pchar; rowid: sqlite3_int64); cdecl;
+ update_callback = procedure(user: pointer; event: cint; database, table: pansichar; rowid: sqlite3_int64); cdecl;
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_update_hook{$IFDEF D}: function{$ENDIF}(db: psqlite3; cb: update_callback; user: pointer): pointer; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_enable_shared_cache{$IFDEF D}: function{$ENDIF}(B: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -761,11 +761,11 @@ type
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_table_column_metadata{$IFDEF D}: function{$ENDIF}(
db: psqlite3; (* Connection handle *)
- zDbName: pchar; (* Database name or NULL *)
- zTableName: pchar; (* Table name *)
- zColumnName: pchar; (* Column name *)
- pzDataType: ppchar; (* OUTPUT: Declared data type *)
- pzCollSeq: ppchar; (* OUTPUT: Collation sequence name *)
+ zDbName: pansichar; (* Database name or NULL *)
+ zTableName: pansichar; (* Table name *)
+ zColumnName: pansichar; (* Column name *)
+ pzDataType: ppansichar; (* OUTPUT: Declared data type *)
+ pzCollSeq: ppansichar; (* OUTPUT: Collation sequence name *)
pNotNull: pcint; (* OUTPUT: True if NOT NULL constracint exists *)
pPrimaryKey: pcint; (* OUTPUT: True if column part of PK *)
pAutoinc: pcint (* OUTPUT: True if column is auto-increment *)
@@ -773,9 +773,9 @@ type
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_load_extension{$IFDEF D}: function{$ENDIF}(
db: psqlite3; (* Load the extension cinto this database connection *)
- zFile: pchar; (* Name of the shared library containing extension *)
- zProc: pchar; (* Entry point. Derived from zFile if 0 *)
- pzErrMsg: ppchar (* Put error message here if not 0 *)
+ zFile: pansichar; (* Name of the shared library containing extension *)
+ zProc: pansichar; (* Entry point. Derived from zFile if 0 *)
+ pzErrMsg: ppansichar (* Put error message here if not 0 *)
): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_enable_load_extension{$IFDEF D}: function{$ENDIF}(db: psqlite3; onoff: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_auto_extension{$IFDEF D}: function{$ENDIF}(xEntrypoint: pointer): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -809,8 +809,8 @@ type
xSync : function(pVtab: psqlite3_vtab): cint; cdecl;
xCommit : function(pVtab: psqlite3_vtab): cint; cdecl;
xRollback : function(pVtab: psqlite3_vtab): cint; cdecl;
- xFindFunction : function(pVtab: psqlite3_vtab; nArg: cint; zName: pchar; var pxFunc: xFunc; var ppArg: pointer): cint; cdecl;
- xRename : function(pVtab: psqlite3_vtab; zNew: pchar): cint; cdecl;
+ xFindFunction : function(pVtab: psqlite3_vtab; nArg: cint; zName: pansichar; var pxFunc: xFunc; var ppArg: pointer): cint; cdecl;
+ xRename : function(pVtab: psqlite3_vtab; zNew: pansichar): cint; cdecl;
}end;
{.$WARNING TODO}
@@ -848,7 +848,7 @@ type
aConstracintUsage: psqlite3_index_constracint_usage;
idxNum: cint; (* Number used to identify the index *)
- idxStr: pchar; (* String; possibly obtained from sqlite3_malloc *)
+ idxStr: pansichar; (* String; possibly obtained from sqlite3_malloc *)
needToFreeIdxStr: cint; (* Free idxStr using sqlite3_free() if true *)
orderByConsumed: cint; (* True if output is already ordered *)
estimatedCost: cdouble; (* Estimated cost of using this index *)
@@ -865,14 +865,14 @@ const
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_create_module{$IFDEF D}: function{$ENDIF}(
db: psqlite3; (* SQLite connection to register module with *)
- zName: pchar; (* Name of the module *)
+ zName: pansichar; (* Name of the module *)
module: psqlite3_module; (* Methods for the module *)
user: pointer (* Client data for xCreate/xConnect *)
): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_create_module_v2{$IFDEF D}: function{$ENDIF}(
db: psqlite3; (* SQLite connection to register module with *)
- zName: pchar; (* Name of the module *)
+ zName: pansichar; (* Name of the module *)
module: psqlite3_module; (* Methods for the module *)
user: pointer; (* Client data for xCreate/xConnect *)
xdestroycb: xDestroy (* Module destructor function *)
@@ -884,7 +884,7 @@ type
sqlite3_vtab = record
pModule: psqlite3_module; (* The module for this virtual table *)
nRef: cint; (* Used cinternally *)
- zErrMsg: pchar; (* Error message from sqlite3_mprcintf() *)
+ zErrMsg: pansichar; (* Error message from sqlite3_mprcintf() *)
(* Virtual table implementations will typically add additional fields *)
end;
@@ -895,8 +895,8 @@ type
(* Virtual table implementations will typically add additional fields *)
end;
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_declare_vtab{$IFDEF D}: function{$ENDIF}(db: psqlite3; zCreateTable: pchar): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_overload_function{$IFDEF D}: function{$ENDIF}(db: psqlite3; zFuncName: pchar; nArg: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_declare_vtab{$IFDEF D}: function{$ENDIF}(db: psqlite3; zCreateTable: pansichar): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_overload_function{$IFDEF D}: function{$ENDIF}(db: psqlite3; zFuncName: pansichar; nArg: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
type
ppsqlite3_blob = ^psqlite3_blob;
@@ -906,9 +906,9 @@ type
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_blob_open{$IFDEF D}: function{$ENDIF}(
db: psqlite3;
- zDb: pchar;
- zTable: pchar;
- zColumn: pchar;
+ zDb: pansichar;
+ zTable: pansichar;
+ zColumn: pansichar;
iRow: sqlite3_int64;
flags: cint;
ppBlob: ppsqlite3_blob
@@ -920,7 +920,7 @@ type
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_blob_bytes{$IFDEF D}: function{$ENDIF}(blob: psqlite3_blob): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_blob_read{$IFDEF D}: function{$ENDIF}(blob: psqlite3_blob; Z: pointer; N: cint; iOffset: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_blob_write{$IFDEF D}: function{$ENDIF}(blob: psqlite3_blob; Z: pointer; N: cint; iOffset: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_vfs_find{$IFDEF D}: function{$ENDIF}(zVfsName: pchar): psqlite3_vfs; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_vfs_find{$IFDEF D}: function{$ENDIF}(zVfsName: pansichar): psqlite3_vfs; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_vfs_register{$IFDEF D}: function{$ENDIF}(vfs: psqlite3_vfs; makeDflt: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_vfs_unregister{$IFDEF D}: function{$ENDIF}(vfs: psqlite3_vfs): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_mutex_alloc{$IFDEF D}: function{$ENDIF}(n: cint): psqlite3_mutex; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -942,7 +942,7 @@ const
SQLITE_MUTEX_STATIC_LRU = 6; (* lru page list *)
SQLITE_MUTEX_STATIC_LRU2 = 7; (* lru page list *)
-{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_file_control{$IFDEF D}: function{$ENDIF}(db: psqlite3; zDbName: pchar; op: cint; p: pointer): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_file_control{$IFDEF D}: function{$ENDIF}(db: psqlite3; zDbName: pansichar; op: cint; p: pointer): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_test_control{$IFDEF D}: function{$ENDIF}(op: cint; args: array of const): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF}sqlite3_status{$IFDEF D}: function{$ENDIF}(op: cint; pcurrent:pcint; pHighwater: pcint; resetFlag: cint): cint; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -964,7 +964,7 @@ const
type
psqlite3backup = Pointer;
-{$IFDEF S}function{$ELSE}var{$ENDIF} sqlite3_backup_init{$IFDEF D}: function{$ENDIF}(pDest: psqlite3; const zDestName: pchar; pSource: psqlite3; const zSourceName: pchar): psqlite3backup; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF} sqlite3_backup_init{$IFDEF D}: function{$ENDIF}(pDest: psqlite3; const zDestName: pansichar; pSource: psqlite3; const zSourceName: pansichar): psqlite3backup; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF} sqlite3_backup_step{$IFDEF D}: function{$ENDIF}(p: psqlite3backup; nPage: Integer): Integer; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF} sqlite3_backup_finish{$IFDEF D}: function{$ENDIF}(p: psqlite3backup): Integer; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF} sqlite3_backup_remaining{$IFDEF D}: function{$ENDIF}(p: psqlite3backup): Integer; cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
@@ -974,15 +974,15 @@ Type
xNotifycb = procedure (Argp: pointer; narg : cint);cdecl;
{$IFDEF S}function{$ELSE}var{$ENDIF} sqlite3_unlock_notify{$IFDEF D}: function{$ENDIF}(pBlocked:psqlite3;xNotify: xNotifycb;arg:pointer):cint;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}procedure{$ELSE}var{$ENDIF} sqlite3_log{$IFDEF D}: procedure{$ENDIF}(iErrCode:cint;fmt : pchar); cdecl;varargs;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}procedure{$ELSE}var{$ENDIF} sqlite3_log{$IFDEF D}: procedure{$ENDIF}(iErrCode:cint;fmt : pansichar); cdecl;varargs;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
Type
- wal_hook_cb = function (p : pointer; db :psqlite3; c : pchar; d: cint): cint;cdecl;
+ wal_hook_cb = function (p : pointer; db :psqlite3; c : pansichar; d: cint): cint;cdecl;
{$IFDEF S}function{$ELSE}var{$ENDIF} sqlite3_wal_hook{$IFDEF D}: function{$ENDIF}(db:psqlite3;cb : wal_hook_cb; p: pointer): pointer;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF S}function{$ELSE}var{$ENDIF} sqlite3_wal_autocheckpoint{$IFDEF D}: function{$ENDIF}(db:psqlite3;n : cint): cint;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF} sqlite3_wal_checkpoint{$IFDEF D}: function{$ENDIF}(db:psqlite3;zDB: pchar): cint;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
-{$IFDEF S}function{$ELSE}var{$ENDIF} sqlite3_wal_checkpoint_v2{$IFDEF D}: function{$ENDIF}(db:psqlite3;zDB: pchar;emode:cint;nLog:pcint;nCkpt:pcint): cint;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF} sqlite3_wal_checkpoint{$IFDEF D}: function{$ENDIF}(db:psqlite3;zDB: pansichar): cint;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
+{$IFDEF S}function{$ELSE}var{$ENDIF} sqlite3_wal_checkpoint_v2{$IFDEF D}: function{$ENDIF}(db:psqlite3;zDB: pansichar;emode:cint;nLog:pcint;nCkpt:pcint): cint;cdecl;{$IFDEF S}external Sqlite3Lib;{$ENDIF}
{$IFDEF LOAD_DYNAMICALLY}
@@ -1004,7 +1004,7 @@ var
implementation
-function sqlite3_version(): pchar;
+function sqlite3_version(): pansichar;
begin
Result := sqlite3_libversion();
end;
@@ -1163,8 +1163,8 @@ begin
pointer(sqlite3_result_error_toobig) := GetProcedureAddress(LibHandle,'sqlite3_result_error_toobig');
pointer(sqlite3_result_error_nomem) := GetProcedureAddress(LibHandle,'sqlite3_result_error_nomem');
pointer(sqlite3_result_error_code) := GetProcedureAddress(LibHandle,'sqlite3_result_error_code');
- pointer(sqlite3_result_cint) := GetProcedureAddress(LibHandle,'sqlite3_result_cint');
- pointer(sqlite3_result_cint64) := GetProcedureAddress(LibHandle,'sqlite3_result_cint64');
+ pointer(sqlite3_result_int) := GetProcedureAddress(LibHandle,'sqlite3_result_int');
+ pointer(sqlite3_result_int64) := GetProcedureAddress(LibHandle,'sqlite3_result_int64');
pointer(sqlite3_result_null) := GetProcedureAddress(LibHandle,'sqlite3_result_null');
pointer(sqlite3_result_text) := GetProcedureAddress(LibHandle,'sqlite3_result_text');
pointer(sqlite3_result_text16) := GetProcedureAddress(LibHandle,'sqlite3_result_text16');
diff --git a/packages/svgalib/Makefile b/packages/svgalib/Makefile
index dd501646ff..5f69d6dfe0 100644
--- a/packages/svgalib/Makefile
+++ b/packages/svgalib/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=svgalib
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/svgalib/Makefile.fpc b/packages/svgalib/Makefile.fpc
index 67e4eb656c..aad94b6bfc 100644
--- a/packages/svgalib/Makefile.fpc
+++ b/packages/svgalib/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=svgalib
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/svgalib/Makefile.fpc.fpcmake b/packages/svgalib/Makefile.fpc.fpcmake
index 479e74d2e9..3ed4a32357 100644
--- a/packages/svgalib/Makefile.fpc.fpcmake
+++ b/packages/svgalib/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=svgalib
-version=2.7.1
+version=3.1.1
[target]
units=svgalib vgamouse
diff --git a/packages/svgalib/examples/Makefile b/packages/svgalib/examples/Makefile
index cf9a4c682e..a9dfa3477c 100644
--- a/packages/svgalib/examples/Makefile
+++ b/packages/svgalib/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=testvga vgatest
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=testvga vgatest
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=testvga vgatest
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=testvga vgatest
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=testvga vgatest
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=testvga vgatest
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=testvga vgatest
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=testvga vgatest
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=testvga vgatest
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_SVGALIB=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
+REQUIRE_PACKAGES_SVGALIB=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_SVGALIB=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
+REQUIRE_PACKAGES_SVGALIB=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_SVGALIB=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
+REQUIRE_PACKAGES_SVGALIB=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/svgalib/fpmake.pp b/packages/svgalib/fpmake.pp
index abe034be55..0cfa355df4 100644
--- a/packages/svgalib/fpmake.pp
+++ b/packages/svgalib/fpmake.pp
@@ -16,8 +16,8 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
- P.OSes := [beos,haiku,linux,freebsd,solaris,netbsd,openbsd];
+ P.Version:='3.1.1';
+ P.OSes := [beos,haiku,linux,freebsd,solaris,netbsd,openbsd,dragonfly];
P.SourcePath.Add('src');
T:=P.Targets.AddUnit('svgalib.pp');
diff --git a/packages/symbolic/Makefile b/packages/symbolic/Makefile
index b36860ed0b..792526ef12 100644
--- a/packages/symbolic/Makefile
+++ b/packages/symbolic/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=symbolic
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/symbolic/Makefile.fpc b/packages/symbolic/Makefile.fpc
index 433b2defb0..9c2b3744c7 100644
--- a/packages/symbolic/Makefile.fpc
+++ b/packages/symbolic/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=symbolic
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/symbolic/Makefile.fpc.fpcmake b/packages/symbolic/Makefile.fpc.fpcmake
index 317415bbe0..ab03c1264e 100644
--- a/packages/symbolic/Makefile.fpc.fpcmake
+++ b/packages/symbolic/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=symbolic
-version=2.7.1
+version=3.1.1
[target]
units=symbolic
diff --git a/packages/symbolic/examples/Makefile b/packages/symbolic/examples/Makefile
index 87fad1b6c1..666796c270 100644
--- a/packages/symbolic/examples/Makefile
+++ b/packages/symbolic/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=evaltest rpnthing easyevalexample
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_SYMBOLIC=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
+REQUIRE_PACKAGES_SYMBOLIC=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_SYMBOLIC=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
+REQUIRE_PACKAGES_SYMBOLIC=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_SYMBOLIC=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
+REQUIRE_PACKAGES_SYMBOLIC=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/symbolic/fpmake.pp b/packages/symbolic/fpmake.pp
index 1d2a722dee..fc4282b173 100644
--- a/packages/symbolic/fpmake.pp
+++ b/packages/symbolic/fpmake.pp
@@ -12,10 +12,11 @@ begin
begin
{$endif ALLPACKAGES}
P:=AddPackage('symbolic');
+ P.ShortName:='symb';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Marco van de Voort';
P.License := 'LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/syslog/Makefile b/packages/syslog/Makefile
index 824f1cf75d..17cccf2851 100644
--- a/packages/syslog/Makefile
+++ b/packages/syslog/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=syslog
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/syslog/Makefile.fpc b/packages/syslog/Makefile.fpc
index 745fbd5219..4b083b5c02 100644
--- a/packages/syslog/Makefile.fpc
+++ b/packages/syslog/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=syslog
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/syslog/Makefile.fpc.fpcmake b/packages/syslog/Makefile.fpc.fpcmake
index fbfa3695e6..c22e819d30 100644
--- a/packages/syslog/Makefile.fpc.fpcmake
+++ b/packages/syslog/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=syslog
-version=2.7.1
+version=3.1.1
[target]
units=systemlog
diff --git a/packages/syslog/examples/Makefile b/packages/syslog/examples/Makefile
index ee54bac7d9..66f3b41bad 100644
--- a/packages/syslog/examples/Makefile
+++ b/packages/syslog/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=testlog
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=testlog
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=testlog
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=testlog
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=testlog
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=testlog
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=testlog
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=testlog
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=testlog
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_SYSLOG=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
+REQUIRE_PACKAGES_SYSLOG=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_SYSLOG=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
+REQUIRE_PACKAGES_SYSLOG=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_SYSLOG=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
+REQUIRE_PACKAGES_SYSLOG=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/syslog/fpmake.pp b/packages/syslog/fpmake.pp
index 7082ed9f00..ca4dd14f26 100644
--- a/packages/syslog/fpmake.pp
+++ b/packages/syslog/fpmake.pp
@@ -16,8 +16,8 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
- P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,aix];
+ P.Version:='3.1.1';
+ P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,aix,dragonfly];
P.SourcePath.Add('src');
T:=P.Targets.AddUnit('systemlog.pp');
diff --git a/packages/tcl/Makefile b/packages/tcl/Makefile
index 309a3186fa..2e8077d7b3 100644
--- a/packages/tcl/Makefile
+++ b/packages/tcl/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=tcl
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/tcl/Makefile.fpc b/packages/tcl/Makefile.fpc
index 12888a3b3d..0a1f989be1 100644
--- a/packages/tcl/Makefile.fpc
+++ b/packages/tcl/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=tcl
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/tcl/Makefile.fpc.fpcmake b/packages/tcl/Makefile.fpc.fpcmake
index 26f1e6eab5..f185e68f82 100644
--- a/packages/tcl/Makefile.fpc.fpcmake
+++ b/packages/tcl/Makefile.fpc.fpcmake
@@ -3,7 +3,7 @@
#
[package]
name=tcl
-version=2.7.1
+version=3.1.1
[target]
units=tcl80
diff --git a/packages/tcl/fpmake.pp b/packages/tcl/fpmake.pp
index c5e32b8e1f..07dce487a9 100644
--- a/packages/tcl/fpmake.pp
+++ b/packages/tcl/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('tcl');
+ P.Description := 'Interface unit for invoking Tcl interpreter using a library.';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.OSes := AllUnixOSes+AllWindowsOSes+[os2,emx]-[qnx];
diff --git a/packages/univint/Makefile b/packages/univint/Makefile
index 849d58e2f6..a38ad2bc89 100644
--- a/packages/univint/Makefile
+++ b/packages/univint/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=univint
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/univint/Makefile.fpc b/packages/univint/Makefile.fpc
index 70c073cf9b..97fc1dd2af 100644
--- a/packages/univint/Makefile.fpc
+++ b/packages/univint/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=univint
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/univint/Makefile.fpc.fpcmake b/packages/univint/Makefile.fpc.fpcmake
index 68198bf223..e30f369b0a 100644
--- a/packages/univint/Makefile.fpc.fpcmake
+++ b/packages/univint/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=univint
-version=2.7.1
+version=3.1.1
[target]
units=MacOSAll MacOS
diff --git a/packages/univint/examples/Makefile b/packages/univint/examples/Makefile
index f58d8cb27d..ddd77b46db 100644
--- a/packages/univint/examples/Makefile
+++ b/packages/univint/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=controldemo
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=controldemo
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=controldemo
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=controldemo
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=controldemo
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=controldemo
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=controldemo
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=controldemo
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=controldemo
endif
@@ -610,6 +625,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=controldemo
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=controldemo
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=controldemo
endif
@@ -697,6 +715,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=controldemo
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=controldemo
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=controldemo
endif
@@ -751,6 +772,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=controldemo
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=controldemo
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=controldemo
endif
@@ -1006,6 +1030,12 @@ 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=
@@ -1051,6 +1081,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1610,6 +1645,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_UNIVINT=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
+REQUIRE_PACKAGES_UNIVINT=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1871,6 +1915,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_UNIVINT=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
+REQUIRE_PACKAGES_UNIVINT=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2033,6 +2086,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_UNIVINT=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
+REQUIRE_PACKAGES_UNIVINT=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2448,7 +2510,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2478,17 +2540,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/univint/fpmake.pp b/packages/univint/fpmake.pp
index 3421309df5..63e9785a7a 100644
--- a/packages/univint/fpmake.pp
+++ b/packages/univint/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.OSes:=[darwin,iphonesim];
P.Options.Add('-Mmacpas');
diff --git a/packages/unixutil/Makefile b/packages/unixutil/Makefile
index 4334981678..ba61c78c30 100644
--- a/packages/unixutil/Makefile
+++ b/packages/unixutil/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=unixutil
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/unixutil/Makefile.fpc b/packages/unixutil/Makefile.fpc
index e283ec69ea..de1d838ca2 100644
--- a/packages/unixutil/Makefile.fpc
+++ b/packages/unixutil/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=unixutil
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/unixutil/Makefile.fpc.fpcmake b/packages/unixutil/Makefile.fpc.fpcmake
index 8922aa6041..915d753c86 100644
--- a/packages/unixutil/Makefile.fpc.fpcmake
+++ b/packages/unixutil/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=unixutil
-version=2.7.1
+version=3.1.1
[target]
units=unixutils
diff --git a/packages/unixutil/fpmake.pp b/packages/unixutil/fpmake.pp
index b5e00adc28..433be05e5b 100644
--- a/packages/unixutil/fpmake.pp
+++ b/packages/unixutil/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes:=[Linux];
P.CPUs:=[i386];
P.Dependencies.add('libc');
diff --git a/packages/unzip/Makefile b/packages/unzip/Makefile
index 05c4ec0ffc..a8aaed4746 100644
--- a/packages/unzip/Makefile
+++ b/packages/unzip/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=unzip
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/unzip/Makefile.fpc b/packages/unzip/Makefile.fpc
index 649697b543..223c39ef4b 100644
--- a/packages/unzip/Makefile.fpc
+++ b/packages/unzip/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=unzip
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/unzip/Makefile.fpc.fpcmake b/packages/unzip/Makefile.fpc.fpcmake
index c054c51128..cab2d68530 100644
--- a/packages/unzip/Makefile.fpc.fpcmake
+++ b/packages/unzip/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=unzip
-version=2.7.1
+version=3.1.1
[target]
units=ziptypes unzip51g
diff --git a/packages/unzip/fpmake.pp b/packages/unzip/fpmake.pp
index a758c952ff..b362ab23ff 100644
--- a/packages/unzip/fpmake.pp
+++ b/packages/unzip/fpmake.pp
@@ -13,10 +13,12 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('unzip');
+ P.ShortName:='zip';
+ P.Description := 'Support for decompression of ZIP archives - either using a Pascal port of the library from InfoZIP, or interface to using the dynamically linked version of this library.';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.OSes := P.OSes - [embedded,nativent,msdos];
diff --git a/packages/users/Makefile b/packages/users/Makefile
index 15b0814c9e..81574064fc 100644
--- a/packages/users/Makefile
+++ b/packages/users/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=users
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/users/Makefile.fpc b/packages/users/Makefile.fpc
index aa1183e217..625df691c3 100644
--- a/packages/users/Makefile.fpc
+++ b/packages/users/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=users
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/users/Makefile.fpc.fpcmake b/packages/users/Makefile.fpc.fpcmake
index 80a6d662f3..e9928c3e9b 100644
--- a/packages/users/Makefile.fpc.fpcmake
+++ b/packages/users/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=users
-version=2.7.1
+version=3.1.1
[target]
units=grp pwd users
diff --git a/packages/users/examples/Makefile b/packages/users/examples/Makefile
index bef6f76a5a..d3c5a2ff49 100644
--- a/packages/users/examples/Makefile
+++ b/packages/users/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=testuser testpass2
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=testuser testpass2
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=testuser testpass2 testpass
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=testuser testpass2
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=testuser testpass2
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=testuser testpass2 testpass
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=testuser testpass2 testpass
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=testuser testpass2
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=testuser testpass2
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_USERS=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
+REQUIRE_PACKAGES_USERS=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_USERS=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
+REQUIRE_PACKAGES_USERS=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_USERS=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
+REQUIRE_PACKAGES_USERS=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/users/fpmake.pp b/packages/users/fpmake.pp
index fff92a848c..a1de4ca0fb 100644
--- a/packages/users/fpmake.pp
+++ b/packages/users/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Author := 'Michael van Canneyt, Marco van de Voort';
P.License := 'LGPL with modification, ';
P.HomepageURL := 'www.freepascal.org';
diff --git a/packages/utmp/Makefile b/packages/utmp/Makefile
index b48dea7232..a053eee443 100644
--- a/packages/utmp/Makefile
+++ b/packages/utmp/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=utmp
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/utmp/Makefile.fpc b/packages/utmp/Makefile.fpc
index 62ca61ebff..3056f8d3b7 100644
--- a/packages/utmp/Makefile.fpc
+++ b/packages/utmp/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=utmp
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/utmp/Makefile.fpc.fpcmake b/packages/utmp/Makefile.fpc.fpcmake
index ebae5cd949..a4fb7f87aa 100644
--- a/packages/utmp/Makefile.fpc.fpcmake
+++ b/packages/utmp/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=utmp
-version=2.7.1
+version=3.1.1
[target]
units=utmp
diff --git a/packages/utmp/examples/Makefile b/packages/utmp/examples/Makefile
index f11d8f872e..8476ebfa6d 100644
--- a/packages/utmp/examples/Makefile
+++ b/packages/utmp/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=testutmp
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=testutmp
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=testutmp
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=testutmp
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=testutmp
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=testutmp
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=testutmp
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=testutmp
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=testutmp
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_UTMP=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
+REQUIRE_PACKAGES_UTMP=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_UTMP=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
+REQUIRE_PACKAGES_UTMP=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_UTMP=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
+REQUIRE_PACKAGES_UTMP=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/utmp/fpmake.pp b/packages/utmp/fpmake.pp
index f55a3a5a74..e7fea3f929 100644
--- a/packages/utmp/fpmake.pp
+++ b/packages/utmp/fpmake.pp
@@ -16,9 +16,9 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
- P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux];
+ P.OSes := [beos,haiku,freebsd,darwin,iphonesim,solaris,netbsd,openbsd,linux,dragonfly];
T:=P.Targets.AddUnit('utmp.pp');
diff --git a/packages/uuid/Makefile b/packages/uuid/Makefile
index 27f1fe7ee1..44356071e7 100644
--- a/packages/uuid/Makefile
+++ b/packages/uuid/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=uuid
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/uuid/Makefile.fpc b/packages/uuid/Makefile.fpc
index 20b1f86615..7cfa79c8ac 100644
--- a/packages/uuid/Makefile.fpc
+++ b/packages/uuid/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=uuid
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/uuid/Makefile.fpc.fpcmake b/packages/uuid/Makefile.fpc.fpcmake
index cf3b166964..53996b0f86 100644
--- a/packages/uuid/Makefile.fpc.fpcmake
+++ b/packages/uuid/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=uuid
-version=2.7.1
+version=3.1.1
[target]
units=macuuid libuuid
diff --git a/packages/uuid/examples/Makefile b/packages/uuid/examples/Makefile
index a980c41a65..3b7fa5b883 100644
--- a/packages/uuid/examples/Makefile
+++ b/packages/uuid/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=testuid testlibuid
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=testuid testlibuid
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=testuid testlibuid
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=testuid testlibuid
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=testuid testlibuid
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=testuid testlibuid
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=testuid testlibuid
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=testuid testlibuid
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=testuid testlibuid
endif
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_UUID=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
+REQUIRE_PACKAGES_UUID=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_UUID=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
+REQUIRE_PACKAGES_UUID=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_UUID=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
+REQUIRE_PACKAGES_UUID=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/uuid/fpmake.pp b/packages/uuid/fpmake.pp
index b2740c17f5..bb85826bd3 100644
--- a/packages/uuid/fpmake.pp
+++ b/packages/uuid/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
P.OSes := [linux];
P.Dependencies.Add('rtl-extra');
diff --git a/packages/winceunits/Makefile b/packages/winceunits/Makefile
index f0675e2c07..608540868a 100644
--- a/packages/winceunits/Makefile
+++ b/packages/winceunits/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=winceunits
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/winceunits/Makefile.fpc b/packages/winceunits/Makefile.fpc
index f0ab311392..3bb7cf3763 100644
--- a/packages/winceunits/Makefile.fpc
+++ b/packages/winceunits/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=winceunits
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/winceunits/Makefile.fpc.fpcmake b/packages/winceunits/Makefile.fpc.fpcmake
index 09b370eb96..a6119f6f06 100644
--- a/packages/winceunits/Makefile.fpc.fpcmake
+++ b/packages/winceunits/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=winceunits
-version=2.7.1
+version=3.1.1
[target]
units_wince=comobj buildwinceunits
diff --git a/packages/winceunits/fpmake.pp b/packages/winceunits/fpmake.pp
index 8fb7bcc319..37aa54a05e 100644
--- a/packages/winceunits/fpmake.pp
+++ b/packages/winceunits/fpmake.pp
@@ -19,7 +19,7 @@ begin
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes := [win32, wince];
P.Author := 'FreePascal development team';
@@ -95,6 +95,8 @@ begin
T:=P.Targets.AddImplicitUnit('extapi.pp', [wince]);
T:=P.Targets.AddImplicitUnit('imm.pp', [wince]);
T:=P.Targets.AddImplicitUnit('activex.pp', [wince]);
+ T:=P.Targets.AddImplicitUnit('pnp.pas', [wince]);
+ T:=P.Targets.AddImplicitUnit('storemgr.pas', [wince]);
T:=P.Targets.AddUnit('cesync.pp', [wince,win32]);
T:=P.Targets.AddUnit('rapitypes.pp',[wince,win32]);
diff --git a/packages/winunits-base/Makefile b/packages/winunits-base/Makefile
index f1a6afd905..df018094d5 100644
--- a/packages/winunits-base/Makefile
+++ b/packages/winunits-base/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=winunits-base
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/winunits-base/Makefile.fpc b/packages/winunits-base/Makefile.fpc
index 34f465d558..b107989854 100644
--- a/packages/winunits-base/Makefile.fpc
+++ b/packages/winunits-base/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=winunits-base
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/winunits-base/Makefile.fpc.fpcmake b/packages/winunits-base/Makefile.fpc.fpcmake
index c78df0f79a..f6b215aa49 100644
--- a/packages/winunits-base/Makefile.fpc.fpcmake
+++ b/packages/winunits-base/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=winunits-base
-version=2.7.1
+version=3.1.1
[require]
packages=fcl-registry fcl-base
diff --git a/packages/winunits-base/fpmake.pp b/packages/winunits-base/fpmake.pp
index 008e7223ed..8c46c8133b 100644
--- a/packages/winunits-base/fpmake.pp
+++ b/packages/winunits-base/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('winunits-base');
+ P.ShortName:='win';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes:=[win32,win64];
P.Author := 'Florian Klaempfl, Marco van de Voort';
P.License := 'LGPL with modification, ';
diff --git a/packages/winunits-base/src/activex.pp b/packages/winunits-base/src/activex.pp
index 942f4edaf7..e981acb46d 100644
--- a/packages/winunits-base/src/activex.pp
+++ b/packages/winunits-base/src/activex.pp
@@ -665,6 +665,8 @@ Const
DISPID_AMBIENT_USERAGENT = -5513;
DISPID_SECURITYDOMAIN = -5514;
+ MEMBERID_NIL = -1;
+
DISPATCH_METHOD = $1;
DISPATCH_PROPERTYGET = $2;
DISPATCH_PROPERTYPUT = $4;
@@ -1104,6 +1106,9 @@ Const
OLERENDER_FORMAT = 2;
OLERENDER_ASIS = 3;
+ OLEVERBATTRIB_NEVERDIRTIES = 1;
+ OLEVERBATTRIB_ONCONTAINERMENU = 2;
+
XFORMCOORDS_POSITION = $1;
XFORMCOORDS_SIZE = $2;
XFORMCOORDS_HIMETRICTOCONTAINER = $4;
@@ -1842,6 +1847,7 @@ TYPE
StorageLayout = tagStorageLayout;
+ PtagSTATDATA = ^tagSTATDATA;
tagSTATDATA = Record
// field used by:
FORMATETC : Tformatetc; // EnumAdvise, EnumData (cache), EnumFormats
@@ -1849,6 +1855,8 @@ TYPE
padvSink : Pointer {IAdviseSink}; // EnumAdvise
dwConnection: DWord; // EnumAdvise
End;
+ PStatData = PtagSTATDATA;
+ TStatData = tagSTATDATA;
STATDATA = TagStatData;
LPStatData = ^StatData;
@@ -1867,8 +1875,20 @@ TYPE
End;
TYPEDESC = tagTYPEDESC;
-
-
+ PtagOBJECTDESCRIPTOR = ^tagOBJECTDESCRIPTOR;
+ tagOBJECTDESCRIPTOR = packed record
+ cbSize : LongWord;
+ clsid : TCLSID;
+ dwDrawAspect : LongWord;
+ sizel : SIZEL;
+ pointl : POINTL;
+ dwStatus : LongWord;
+ dwFullUserTypeName : LongWord;
+ dwSrcOfCopy : LongWord;
+ end;
+ POBJECTDESCRIPTOR = PtagOBJECTDESCRIPTOR;
+ TOBJECTDESCRIPTOR = tagOBJECTDESCRIPTOR;
+ OBJECTDESCRIPTOR = TOBJECTDESCRIPTOR;
tagARRAYDESC = Record
tdescElem : TYPEDESC; // element type
@@ -2579,23 +2599,21 @@ TYPE
['{7FD52380-4E07-101B-AE2D-08002B2EC713}']
Function IsDirty:HResult;StdCall;
Function Load(pstm:IStream):HResult;StdCall;
- Function Save(pstm:IStream;fClearDirty:Integer):HResult;StdCall;
+ Function Save(pstm:IStream;fClearDirty:Bool):HResult;StdCall;
Function GetSizeMax(out pCbSize:_ULARGE_INTEGER):HResult;StdCall;
Function InitNew:HResult;StdCall;
End;
- // IPersistMemory :
IPersistMemory = interface(IPersist)
['{BD1AE5E0-A6AE-11CE-BD37-504200C10000}']
function IsDirty:HResult;StdCall;
function Load(var pMem:pointer;cbSize:LongWord):HResult;StdCall;
- function Save(out pMem:pointer;fClearDirty:Integer;cbSize:LongWord):HResult;StdCall;
+ function Save(out pMem:pointer;fClearDirty:Bool;cbSize:LongWord):HResult;StdCall;
function GetSizeMax(out pCbSize:LongWord):HResult;StdCall;
function InitNew:HResult;StdCall;
end;
-
PIMoniker = ^IMoniker;
IMoniker = Interface (IPersistStream)
['{0000000f-0000-0000-C000-000000000046}']
@@ -3536,7 +3554,7 @@ TYPE
['{37D84F60-42CB-11CE-8135-00AA004BB851}']
function InitNew:HResult;stdcall;
function Load(pPropBag:IPropertyBag;pErrorLog:IErrorLog):HResult;stdcall;
- function Save(pPropBag:IPropertyBag;fClearDirty:Integer;fSaveAllProperties:Integer):HResult;stdcall;
+ function Save(pPropBag:IPropertyBag;fClearDirty:Bool;fSaveAllProperties:Bool):HResult;stdcall;
end;
IEnumGUID = interface(IUnknown)
@@ -3620,31 +3638,26 @@ type
function GetMultiTypeInfoCount(out pcti:LongWord):HResult; StdCall;
function GetInfoOfIndex(iti:LongWord;dwFlags:LongWord;out pptiCoClass:ITypeInfo;out pdwTIFlags:LongWord;out pcdispidReserved:LongWord;out piidPrimary:GUID;out piidSource:GUID):HResult; StdCall;
end;
- // IOleControl :
IOleControl = interface(IUnknown)
['{B196B288-BAB4-101A-B69C-00AA00341D07}']
function GetControlInfo(var pCI:tagCONTROLINFO):HRESULT;stdcall;
function OnMnemonic(var pMsg:tagMSG):HRESULT;stdcall;
function OnAmbientPropertyChange(dispID:Integer):HRESULT;stdcall;
- function FreezeEvents(bFreeze:Integer):HRESULT;stdcall;
+ function FreezeEvents(bFreeze:Bool):HRESULT;stdcall;
end;
-// IOleControlSite :
-
IOleControlSite = interface(IUnknown)
['{B196B289-BAB4-101A-B69C-00AA00341D07}']
function OnControlInfoChanged:HRESULT;stdcall;
- function LockInPlaceActive(fLock:Integer):HRESULT;stdcall;
+ function LockInPlaceActive(fLock:Bool):HRESULT;stdcall;
function GetExtendedControl(out ppDisp:IDispatch):HRESULT;stdcall;
function TransformCoords(var pPtlHimetric:_POINTL;var pPtfContainer:tagPOINTF;dwFlags:LongWord):HRESULT;stdcall;
function TranslateAccelerator(var pMsg:tagMSG;grfModifiers:LongWord):HRESULT;stdcall;
- function OnFocus(fGotFocus:Integer):HRESULT;stdcall;
+ function OnFocus(fGotFocus:Bool):HRESULT;stdcall;
function ShowPropertyFrame:HRESULT;stdcall;
end;
-// IPerPropertyBrowsing :
-
IPerPropertyBrowsing = interface(IUnknown)
['{376BD3AA-3845-101B-84ED-08002B2EC713}']
function GetDisplayString(dispID:Integer;out pBstr:WideString):HRESULT;stdcall;
@@ -3653,14 +3666,12 @@ type
function GetPredefinedValue(dispID:Integer;dwCookie:LongWord;out pVarOut:OleVariant):HRESULT;stdcall;
end;
-// IPropertyPage :
-
IPropertyPageSite = interface;
IPropertyPage = interface(IUnknown)
['{B196B28D-BAB4-101A-B69C-00AA00341D07}']
function SetPageSite(pPageSite:IPropertyPageSite):HRESULT;stdcall;
- function Activate(hWndParent:wireHWND;var pRect:TRECT;bModal:Integer):HRESULT;stdcall;
+ function Activate(hWndParent:wireHWND;var pRect:TRECT;bModal:Bool):HRESULT;stdcall;
function Deactivate:HRESULT;stdcall;
function GetPageInfo(out pPageInfo:tagPROPPAGEINFO):HRESULT;stdcall;
function SetObjects(cObjects:LongWord;var ppUnk:IUnknown):HRESULT;stdcall;
@@ -3672,8 +3683,6 @@ type
function TranslateAccelerator(var pMsg:tagMSG):HRESULT;stdcall;
end;
-// IPropertyPageSite :
-
IPropertyPageSite = interface(IUnknown)
['{B196B28C-BAB4-101A-B69C-00AA00341D07}']
function OnStatusChange(dwFlags:LongWord):HRESULT;stdcall;
@@ -3682,52 +3691,42 @@ type
function TranslateAccelerator(var pMsg:tagMSG):HRESULT;stdcall;
end;
-// IPropertyPage2 :
-
IPropertyPage2 = interface(IPropertyPage)
['{01E44665-24AC-101B-84ED-08002B2EC713}']
function EditProperty(dispID:Integer):HRESULT;stdcall;
end;
-// IPropertyNotifySink :
-
IPropertyNotifySink = interface(IUnknown)
['{9BFBBC02-EFF1-101A-84ED-00AA00341D07}']
function OnChanged(dispID:Integer):HRESULT;stdcall;
function OnRequestEdit(dispID:Integer):HRESULT;stdcall;
end;
- // ISpecifyPropertyPages :
-
ISpecifyPropertyPages = interface(IUnknown)
['{B196B28B-BAB4-101A-B69C-00AA00341D07}']
function GetPages(out pPages:tagCAUUID):HRESULT;stdcall;
end;
-// ISimpleFrameSite :
-
ISimpleFrameSite = interface(IUnknown)
['{742B0E01-14E6-101B-914E-00AA00300CAB}']
function PreMessageFilter(hwnd:wireHWND;msg:UInt;wp:UINT_PTR;lp:LONG_PTR;out plResult:LONG_PTR;out pdwCookie:LongWord):HRESULT;stdcall;
function PostMessageFilter(hwnd:wireHWND;msg:UInt;wp:UINT_PTR;lp:LONG_PTR;out plResult:LONG_PTR;dwCookie:LongWord):HRESULT;stdcall;
end;
-// IFont :
-
IFont = interface(IUnknown)
['{BEF6E002-A874-101A-8BBA-00AA00300CAB}']
function get_Name(out pName:WideString):HRESULT;stdcall;
function put_Name(name:WideString):HRESULT;stdcall;
function get_Size(out pSize:Currency):HRESULT;stdcall;
function put_Size(size:Currency):HRESULT;stdcall;
- function get_Bold(out pBold:Integer):HRESULT;stdcall;
- function put_Bold(bold:Integer):HRESULT;stdcall;
- function get_Italic(out pItalic:Integer):HRESULT;stdcall;
- function put_Italic(italic:Integer):HRESULT;stdcall;
- function get_Underline(out pUnderline:Integer):HRESULT;stdcall;
- function put_Underline(underline:Integer):HRESULT;stdcall;
- function get_Strikethrough(out pStrikethrough:Integer):HRESULT;stdcall;
- function put_Strikethrough(strikethrough:Integer):HRESULT;stdcall;
+ function get_Bold(out pBold:Bool):HRESULT;stdcall;
+ function put_Bold(bold:Bool):HRESULT;stdcall;
+ function get_Italic(out pItalic:Bool):HRESULT;stdcall;
+ function put_Italic(italic:Bool):HRESULT;stdcall;
+ function get_Underline(out pUnderline:Bool):HRESULT;stdcall;
+ function put_Underline(underline:Bool):HRESULT;stdcall;
+ function get_Strikethrough(out pStrikethrough:Bool):HRESULT;stdcall;
+ function put_Strikethrough(strikethrough:Bool):HRESULT;stdcall;
function get_Weight(out pWeight:Smallint):HRESULT;stdcall;
function put_Weight(weight:Smallint):HRESULT;stdcall;
function get_Charset(out pCharset:Smallint):HRESULT;stdcall;
@@ -3742,8 +3741,6 @@ type
function SetHdc(hDC:wireHDC):HRESULT;stdcall;
end;
-// IPicture :
-
IPicture = interface(IUnknown)
['{7BF80980-BF32-101A-8BBB-00AA00300CAB}']
function get_Handle(out pHandle:OLE_HANDLE):HRESULT;stdcall;
@@ -3755,10 +3752,10 @@ type
function set_hPal(hPal:OLE_HANDLE):HRESULT;stdcall;
function get_CurDC(out phDC:wireHDC):HRESULT;stdcall;
function SelectPicture(hDCIn:wireHDC;out phDCOut:wireHDC;out phBmpOut:OLE_HANDLE):HRESULT;stdcall;
- function get_KeepOriginalFormat(out pKeep:Integer):HRESULT;stdcall;
- function put_KeepOriginalFormat(keep:Integer):HRESULT;stdcall;
+ function get_KeepOriginalFormat(out pKeep:Bool):HRESULT;stdcall;
+ function put_KeepOriginalFormat(keep:Bool):HRESULT;stdcall;
function PictureChanged:HRESULT;stdcall;
- function SaveAsFile(pStream:IStream;fSaveMemCopy:Integer;out pCbSize:Integer):HRESULT;stdcall;
+ function SaveAsFile(pStream:IStream;fSaveMemCopy:Bool;out pCbSize:Integer):HRESULT;stdcall;
function get_Attributes(out pDwAttr:LongWord):HRESULT;stdcall;
end;
@@ -3780,15 +3777,10 @@ type
function get_Attributes(out pDwAttr:LongWord):HRESULT;stdcall;
end;
-
-// IFontDisp :
-
IFontDisp = interface(IDispatch)
['{BEF6E003-A874-101A-8BBA-00AA00300CAB}']
end;
-// IPictureDisp :
-
IPictureDisp = interface(IDispatch)
['{7BF80981-BF32-101A-8BBB-00AA00300CAB}']
end;
@@ -3979,8 +3971,8 @@ type
IOleInPlaceSiteEx = interface(IOleInPlaceSite)
['{9C2CAD80-3424-11CF-B670-00AA004CD6D8}']
- function OnInPlaceActivateEx(out pfNoRedraw:Integer;dwFlags:LongWord):HResult;stdcall;
- function OnInPlaceDeactivateEx(fNoRedraw:Integer):HResult;stdcall;
+ function OnInPlaceActivateEx(out pfNoRedraw:Bool;dwFlags:LongWord):HResult;stdcall;
+ function OnInPlaceDeactivateEx(fNoRedraw:Bool):HResult;stdcall;
function RequestUIActivate:HResult;stdcall;
end;
@@ -3988,13 +3980,13 @@ type
['{922EADA0-3424-11CF-B670-00AA004CD6D8}']
function CanWindowlessActivate:HResult;stdcall;
function GetCapture:HResult;stdcall;
- function SetCapture(fCapture:Integer):HResult;stdcall;
+ function SetCapture(fCapture:Bool):HResult;stdcall;
function GetFocus:HResult;stdcall;
- function SetFocus(fFocus:Integer):HResult;stdcall;
+ function SetFocus(fFocus:Bool):HResult;stdcall;
function GetDC(var pRect:tagRECT;grfFlags:LongWord;out phDC:wireHDC):HResult;stdcall;
function ReleaseDC(hDC:wireHDC):HResult;stdcall;
- function InvalidateRect(var pRect:tagRECT;fErase:Integer):HResult;stdcall;
- function InvalidateRgn(hRGN:wireHRGN;fErase:Integer):HResult;stdcall;
+ function InvalidateRect(var pRect:tagRECT;fErase:Bool):HResult;stdcall;
+ function InvalidateRgn(hRGN:wireHRGN;fErase:Bool):HResult;stdcall;
function ScrollRect(dx:SYSINT;dy:SYSINT;var pRectScroll:tagRECT;var pRectClip:tagRECT):HResult;stdcall;
function AdjustRect(var prc:tagRECT):HResult;stdcall;
function OnDefWindowMessage(msg:UInt;wParam:UINT_PTR;lParam:LONG_PTR;out plResult:LONG_PTR):HResult;stdcall;
@@ -4070,7 +4062,7 @@ type
function Uncache(dwConnection:LongWord):HRESULT;stdcall;
function EnumCache(out ppenumSTATDATA:IEnumSTATDATA):HRESULT;stdcall;
function InitCache(pDataObject:IDataObject):HRESULT;stdcall;
- function SetData(var pFormatetc:tagFORMATETC;var pmedium:wireSTGMEDIUM;fRelease:Integer):HRESULT;stdcall;
+ function SetData(var pFormatetc:tagFORMATETC;var pmedium:wireSTGMEDIUM;fRelease:Bool):HRESULT;stdcall;
end;
IOleCache2 = interface(IOleCache)
diff --git a/packages/winunits-base/src/shlobj.pp b/packages/winunits-base/src/shlobj.pp
index f94a14a465..37e43dbd00 100644
--- a/packages/winunits-base/src/shlobj.pp
+++ b/packages/winunits-base/src/shlobj.pp
@@ -243,6 +243,12 @@ Const
GCS_HELPTEXTW = $00000005; // help text (unicode version)
GCS_VALIDATEW = $00000006; // validate command exists (unicode)
GCS_UNICODE = $00000004; // for bit testing - Unicode string
+ CMIC_MASK_ICON = $00000010;
+ CMIC_MASK_HOTKEY = $00000020;
+ CMIC_MASK_FLAG_NO_UI = $00000400;
+ CMIC_MASK_UNICODE = $00004000;
+ CMIC_MASK_NO_CONSOLE = $00008000;
+ CMIC_MASK_ASYNCOK = $00100000;
CMIC_MASK_SHIFT_DOWN = $10000000;
CMIC_MASK_CONTROL_DOWN = $40000000;
CMIC_MASK_PTINVOKE = $20000000;
@@ -408,6 +414,26 @@ Const
BIF_BROWSEFORPRINTER = $2000; // Browsing for Printers
BIF_BROWSEINCLUDEFILES = $4000; // Browsing for Everything
BIF_SHAREABLE = $8000; // sharable resources displayed (remote shares, requires BIF_USENEWUI)
+ BFFM_INITIALIZED = $0001;
+ BFFM_SELCHANGED = $0002;
+ BFFM_VALIDATEFAILEDA = $0003;
+ BFFM_VALIDATEFAILEDW = $0004;
+ BFFM_SETSTATUSTEXTA = WM_USER + 100;
+ BFFM_SETSTATUSTEXTW = WM_USER + 104;
+ BFFM_ENABLEOK = WM_USER + 101;
+ BFFM_SETSELECTIONA = WM_USER + 102;
+ BFFM_SETSELECTIONW = WM_USER + 103;
+ BFFM_SETOKTEXT = WM_USER + 105;
+ BFFM_SETEXPANDED = WM_USER + 106;
+ {$ifdef Unicode}
+ BFFM_SETSTATUSTEXT = BFFM_SETSTATUSTEXTW;
+ BFFM_SETSELECTION = BFFM_SETSELECTIONW;
+ BFFM_VALIDATEFAILED = BFFM_VALIDATEFAILEDW;
+ {$else}
+ BFFM_SETSTATUSTEXT = BFFM_SETSTATUSTEXTA;
+ BFFM_SETSELECTION = BFFM_SETSELECTIONA;
+ BFFM_VALIDATEFAILED = BFFM_VALIDATEFAILEDA;
+ {$endif}
PROGDLG_NORMAL = $00000000; // default normal progress dlg behavior
PROGDLG_MODAL = $00000001; // the dialog is modal to its hwndParent (default is modeless)
PROGDLG_AUTOTIME = $00000002; // automatically updates the "Line3" text with the "time remaining" (you cant call SetLine3 if you passs this!)
@@ -1946,7 +1972,13 @@ Type
function Skip(celt: ULONG): HRESULT; stdcall; function Reset: HRESULT; stdcall;
function Clone(out ppenum: IEnumExtraSearch): HRESULT; stdcall;
end;
-
+
+ IShellDetails = interface(IUnknown)
+ ['{000214EC-0000-0000-C000-000000000046}']
+ function GetDetailsOf(pidl:LPCITEMIDLIST;iColumn:UINT;pDetails:PSHELLDETAILS):HResult;StdCall;
+ function ColumnClick(iColumn:UINT):HResult;StdCall;
+ end;
+
IShellFolder = interface(IUnknown)
['{000214E6-0000-0000-C000-000000000046}']
function ParseDisplayName(hwndOwner: HWND; pbcReserved: Pointer; lpszDisplayName: POLESTR; out pchEaten: ULONG; out ppidl: PItemIDList; var dwAttributes: ULONG): HRESULT; stdcall;
diff --git a/packages/winunits-base/src/stdole2.pas b/packages/winunits-base/src/stdole2.pas
index 1107f7b6df..a33cb428ec 100644
--- a/packages/winunits-base/src/stdole2.pas
+++ b/packages/winunits-base/src/stdole2.pas
@@ -45,10 +45,11 @@ Const
//Forward declarations
Type
- IEnumVARIANT = interface;
- IFont = interface;
+ // for activex aliases see mantis 25907
+ IEnumVARIANT = ActiveX.IEnumVariant;
+ IFont = ActiveX.IFont;
Font = dispinterface;
- IPicture = interface;
+ IPicture = ActiveX.IPicture;
Picture = dispinterface;
FontEvents = dispinterface;
@@ -93,71 +94,6 @@ Type
//interface declarations
-// IEnumVARIANT :
-
- IEnumVARIANT = interface(IUnknown)
- ['{00020404-0000-0000-C000-000000000046}']
- // Next :
- procedure Next(celt:LongWord;var rgvar:OleVariant;out pceltFetched:LongWord);stdcall;
- // Skip :
- procedure Skip(celt:LongWord);stdcall;
- // Reset_ :
- procedure Reset_;stdcall;
- // Clone :
- procedure Clone(out ppenum:IEnumVARIANT);stdcall;
- end;
-
-// IFont : Font Object
-
- IFont = interface(IUnknown)
- ['{BEF6E002-A874-101A-8BBA-00AA00300CAB}']
- function Get_Name : WideString; stdcall;
- procedure Set_Name(const pname:WideString); stdcall;
- function Get_Size : Currency; stdcall;
- procedure Set_Size(const psize:Currency); stdcall;
- function Get_Bold : WordBool; stdcall;
- procedure Set_Bold(const pbold:WordBool); stdcall;
- function Get_Italic : WordBool; stdcall;
- procedure Set_Italic(const pitalic:WordBool); stdcall;
- function Get_Underline : WordBool; stdcall;
- procedure Set_Underline(const punderline:WordBool); stdcall;
- function Get_Strikethrough : WordBool; stdcall;
- procedure Set_Strikethrough(const pstrikethrough:WordBool); stdcall;
- function Get_Weight : Smallint; stdcall;
- procedure Set_Weight(const pweight:Smallint); stdcall;
- function Get_Charset : Smallint; stdcall;
- procedure Set_Charset(const pcharset:Smallint); stdcall;
- function Get_hFont : OLE_HANDLE; stdcall;
- // Clone :
- procedure Clone(out ppfont:IFont);stdcall;
- // IsEqual :
- procedure IsEqual(pfontOther:IFont);stdcall;
- // SetRatio :
- procedure SetRatio(cyLogical:Integer;cyHimetric:Integer);stdcall;
- // AddRefHfont :
- procedure AddRefHfont(hFont:OLE_HANDLE);stdcall;
- // ReleaseHfont :
- procedure ReleaseHfont(hFont:OLE_HANDLE);stdcall;
- // Name :
- property Name:WideString read Get_Name write Set_Name;
- // Size :
- property Size:Currency read Get_Size write Set_Size;
- // Bold :
- property Bold:WordBool read Get_Bold write Set_Bold;
- // Italic :
- property Italic:WordBool read Get_Italic write Set_Italic;
- // Underline :
- property Underline:WordBool read Get_Underline write Set_Underline;
- // Strikethrough :
- property Strikethrough:WordBool read Get_Strikethrough write Set_Strikethrough;
- // Weight :
- property Weight:Smallint read Get_Weight write Set_Weight;
- // Charset :
- property Charset:Smallint read Get_Charset write Set_Charset;
- // hFont :
- property hFont:OLE_HANDLE read Get_hFont ;
- end;
-
// Font :
Font = dispinterface
@@ -180,48 +116,6 @@ Type
property Charset:Smallint dispid 8;
end;
-// IPicture : Picture Object
-
- IPicture = interface(IUnknown)
- ['{7BF80980-BF32-101A-8BBB-00AA00300CAB}']
- function Get_Handle : OLE_HANDLE; stdcall;
- function Get_hPal : OLE_HANDLE; stdcall;
- function Get_Type_ : Smallint; stdcall;
- function Get_Width : OLE_XSIZE_HIMETRIC; stdcall;
- function Get_Height : OLE_YSIZE_HIMETRIC; stdcall;
- // Render :
- procedure Render(hdc:SYSINT;x:Integer;y:Integer;cx:Integer;cy:Integer;xSrc:OLE_XPOS_HIMETRIC;ySrc:OLE_YPOS_HIMETRIC;cxSrc:OLE_XSIZE_HIMETRIC;cySrc:OLE_YSIZE_HIMETRIC;var prcWBounds:pointer);stdcall;
- procedure Set_hPal(const phpal:OLE_HANDLE); stdcall;
- function Get_CurDC : SYSINT; stdcall;
- // SelectPicture :
- procedure SelectPicture(hdcIn:SYSINT;out phdcOut:SYSINT;out phbmpOut:OLE_HANDLE);stdcall;
- function Get_KeepOriginalFormat : WordBool; stdcall;
- procedure Set_KeepOriginalFormat(const pfkeep:WordBool); stdcall;
- // PictureChanged :
- procedure PictureChanged;stdcall;
- // SaveAsFile :
- procedure SaveAsFile(var pstm:pointer;fSaveMemCopy:WordBool;out pcbSize:Integer);stdcall;
- function Get_Attributes : Integer; stdcall;
- // SetHdc :
- procedure SetHdc(hdc:OLE_HANDLE);stdcall;
- // Handle :
- property Handle:OLE_HANDLE read Get_Handle ;
- // hPal :
- property hPal:OLE_HANDLE read Get_hPal write Set_hPal;
- // Type :
- property Type_:Smallint read Get_Type_ ;
- // Width :
- property Width:OLE_XSIZE_HIMETRIC read Get_Width ;
- // Height :
- property Height:OLE_YSIZE_HIMETRIC read Get_Height ;
- // CurDC :
- property CurDC:SYSINT read Get_CurDC ;
- // KeepOriginalFormat :
- property KeepOriginalFormat:WordBool read Get_KeepOriginalFormat write Set_KeepOriginalFormat;
- // Attributes :
- property Attributes:Integer read Get_Attributes ;
- end;
-
// Picture :
Picture = dispinterface
diff --git a/packages/winunits-base/src/typelib.pas b/packages/winunits-base/src/typelib.pas
index 32aa1d687f..42f835022b 100644
--- a/packages/winunits-base/src/typelib.pas
+++ b/packages/winunits-base/src/typelib.pas
@@ -116,7 +116,7 @@ Type
function TypeToString(TI: ITypeInfo; TD: TYPEDESC): string; virtual;
function ValidateID(id: string): boolean; virtual;
function ValidateIDAgainstDeclared(id: string): boolean; virtual;
- function MakeValidId(id:string;var valid:string): boolean; virtual;
+ function MakeValidId(id:string;out valid:string): boolean; virtual;
function MakeValidIdAgainstDeclared(id:string;var valid:string): boolean;
function RemoveTag(typename: string): string;
// The actual routines that do the work.
@@ -234,6 +234,7 @@ begin
VT_SAFEARRAY:Result:='PSafeArray';
VT_LPWSTR:Result:='PWideChar';
VT_LPSTR:Result:='PChar';
+ VT_DECIMAL:Result:='TDecimal';
else
Result := 'Unknown (' + IntToStr(ParamType) + ')';
end;
@@ -289,7 +290,7 @@ begin
result:=i<0;
end;
-function TTypeLibImporter.MakeValidId(id:string;var valid:string): boolean;
+function TTypeLibImporter.MakeValidId(id:string;out valid:string): boolean;
begin
result:= ValidateID(id);
if result then
@@ -399,7 +400,9 @@ begin
else
sRefSrc:=GUIDToString(LARef^.GUID);
RegCloseKey(Handle);
- end;
+ end
+ else
+ sRefSrc:='DLL not registered in the system';
AddToHeader('// Dependency: %s v%d.%d (%s)',[BstrName,LARef^.wMajorVerNum,LARef^.wMinorVerNum,sRefSrc]);
FUses.Add(sl);
TLRef.ReleaseTLibAttr(LARef);
@@ -451,7 +454,7 @@ var
RTIT: HREFTYPE;
TIref: ITypeInfo;
BstrName,BstrNameRef,BstrDocString : WideString;
- s,sl,sPropIntfc,sPropDispIntfc,sType,sConv,sFunc,sPar,sVarName,sMethodName,
+ s,sl,sPropDispIntfc,sType,sConv,sFunc,sPar,sVarName,sMethodName,
sPropParam,sPropParam2,sPropParam3:string;
sEventSignatures,sEventFunctions,sEventProperties,sEventImplementations:string;
i,j,k:integer;
@@ -497,13 +500,16 @@ var
function GetName(i:integer):string; //bug in Office10\MSacc.OLB _WizHook.Key
begin
- if i<cnt then
- result:=BL[i]
- else
+ result:='';
+ if i<integer(cnt) then
+ result:=BL[i];
+ if result='' then //No name ?
result:='Param'+inttostr(i);
end;
begin
+ FillMemory(@TD,Sizeof(TD),0);
+ TD.vt:=VT_ILLEGAL;
Propertycnt:=0;
SetLength(aPropertyDefs,TA^.cFuncs+TA^.cVars); // worst case, all functions getters or all setters
sEventSignatures:='';
@@ -531,7 +537,6 @@ begin
s:=format(#13#10'// %s : %s'#13#10#13#10' %sDisp = dispinterface'#13#10,[iname,iDoc,iname])
else
s:=format(#13#10'// %s : %s'#13#10#13#10' %s = dispinterface'#13#10,[iname,iDoc,iname]);
- sPropIntfc:='';
sPropDispIntfc:='';
s:=s+format(' [''%s'']'#13#10,[GUIDToString(TA^.GUID)]);
for j:=0 to TA^.cFuncs-1 do
@@ -1099,7 +1104,7 @@ Procedure TTypeLibImporter.CreateForwards(Const TL : ITypeLib; TICount : Integer
Var
i, j: integer;
BstrName, BstrNameRef : WideString;
- dwHelpContext: DWORD;
+// dwHelpContext: DWORD;
TI, TIref:ITypeInfo;
TA:LPTYPEATTR;
TIT: TYPEKIND;
@@ -1323,7 +1328,8 @@ Var
BstrName, BstrDocString, BstrHelpFile, BstrNameRef : WideString;
dwHelpContext : DWORD;
TI,TIref,TIref2 : ITypeInfo;
- TA,TAref,TAref2 : LPTYPEATTR;
+ TA,TAref: LPTYPEATTR;
+ //TAref2 : LPTYPEATTR;
TIT : TYPEKIND;
RTIT : HREFTYPE;
sl: string;
@@ -1767,6 +1773,7 @@ var
begin
Header.Clear;
InterfaceSection.Clear;
+ TL:=nil;
OleCheck(LoadTypeLib(PWidechar(InputFileName), TL ));
OleCheck(TL.GetLibAttr(LA));
try
diff --git a/packages/winunits-jedi/Makefile b/packages/winunits-jedi/Makefile
index 56f56b832e..cfa531620a 100644
--- a/packages/winunits-jedi/Makefile
+++ b/packages/winunits-jedi/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=winunits-jedi
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/winunits-jedi/Makefile.fpc b/packages/winunits-jedi/Makefile.fpc
index 4238ebd0d3..bc0b0f32fc 100644
--- a/packages/winunits-jedi/Makefile.fpc
+++ b/packages/winunits-jedi/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=winunits-jedi
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/winunits-jedi/Makefile.fpc.fpcmake b/packages/winunits-jedi/Makefile.fpc.fpcmake
index 8f132e2c5b..89feb857ff 100644
--- a/packages/winunits-jedi/Makefile.fpc.fpcmake
+++ b/packages/winunits-jedi/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=winunits-jedi
-version=2.7.1
+version=3.1.1
[require]
packages_win32=winunits-base fcl-registry fcl-base
diff --git a/packages/winunits-jedi/fpmake.pp b/packages/winunits-jedi/fpmake.pp
index e4bcb298d4..455abbaa9c 100644
--- a/packages/winunits-jedi/fpmake.pp
+++ b/packages/winunits-jedi/fpmake.pp
@@ -17,7 +17,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes:=[win32,win64];
P.Options.Add('-Ur');
P.Author := 'Marcel van Brakel, Jedi-apilib team';
diff --git a/packages/x11/Makefile b/packages/x11/Makefile
index 4474a0e213..e6f533618b 100644
--- a/packages/x11/Makefile
+++ b/packages/x11/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=x11
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/x11/Makefile.fpc b/packages/x11/Makefile.fpc
index f69dc18cce..6bcb156802 100644
--- a/packages/x11/Makefile.fpc
+++ b/packages/x11/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=x11
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/x11/Makefile.fpc.fpcmake b/packages/x11/Makefile.fpc.fpcmake
index 018e0794b9..6389dcfd5d 100644
--- a/packages/x11/Makefile.fpc.fpcmake
+++ b/packages/x11/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=x11
-version=2.7.1
+version=3.1.1
[target]
units=x xlib xutil xresource xcms xshm xrender keysym xi xkb xkblib xatom xinerama xv xvlib cursorfont xrandr xf86dga xf86vmode xft fontconfig
diff --git a/packages/x11/fpmake.pp b/packages/x11/fpmake.pp
index 7226d27876..1f74f6382b 100644
--- a/packages/x11/fpmake.pp
+++ b/packages/x11/fpmake.pp
@@ -13,11 +13,12 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('x11');
+ P.Description := 'Interface units for X Window GUI libraries (X11).';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
- P.OSes:=[beos,haiku,freebsd,solaris,netbsd,openbsd,linux,os2,emx,aix];
+ P.Version:='3.1.1';
+ P.OSes:=[beos,haiku,freebsd,solaris,netbsd,openbsd,linux,os2,emx,aix,dragonfly];
// Do not build x11 on iPhone (=arm-darwin)
if Defaults.CPU<>arm then
P.OSes := P.OSes + [darwin];
diff --git a/packages/xforms/Makefile b/packages/xforms/Makefile
index 0c4de5c18c..cb64f175ed 100644
--- a/packages/xforms/Makefile
+++ b/packages/xforms/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=xforms
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/xforms/Makefile.fpc b/packages/xforms/Makefile.fpc
index a40673d4fd..37b784ffc1 100644
--- a/packages/xforms/Makefile.fpc
+++ b/packages/xforms/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=xforms
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/xforms/Makefile.fpc.fpcmake b/packages/xforms/Makefile.fpc.fpcmake
index bf47dd0b13..fbf287f6a4 100644
--- a/packages/xforms/Makefile.fpc.fpcmake
+++ b/packages/xforms/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=xforms
-version=2.7.1
+version=3.1.1
[target]
units=xforms
diff --git a/packages/xforms/examples/Makefile b/packages/xforms/examples/Makefile
index 6daa02768b..83cb19c4ca 100644
--- a/packages/xforms/examples/Makefile
+++ b/packages/xforms/examples/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
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),i386-aros)
+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),m68k-linux)
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
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-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),x86_64-dragonfly)
+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),arm-linux)
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
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
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),mipsel-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),mipsel-android)
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
@@ -784,6 +799,12 @@ 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=
@@ -829,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1388,6 +1414,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_XFORMS=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
+REQUIRE_PACKAGES_XFORMS=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1649,6 +1684,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_XFORMS=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
+REQUIRE_PACKAGES_XFORMS=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1811,6 +1855,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_XFORMS=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
+REQUIRE_PACKAGES_XFORMS=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2226,7 +2279,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2256,17 +2309,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/packages/xforms/fpmake.pp b/packages/xforms/fpmake.pp
index de22e61be9..af67ca7a03 100644
--- a/packages/xforms/fpmake.pp
+++ b/packages/xforms/fpmake.pp
@@ -16,9 +16,9 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('src');
- P.OSes := [beos,haiku,freebsd,solaris,netbsd,openbsd,linux,aix];
+ P.OSes := [beos,haiku,freebsd,solaris,netbsd,openbsd,linux,aix,dragonfly];
// Do not build x11 on iPhone (=arm-darwin)
if Defaults.CPU<>arm then
P.OSes := P.OSes + [darwin];
diff --git a/packages/zlib/Makefile b/packages/zlib/Makefile
index beb4fd7c8b..27aea6e986 100644
--- a/packages/zlib/Makefile
+++ b/packages/zlib/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=zlib
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/zlib/Makefile.fpc b/packages/zlib/Makefile.fpc
index a942e719e6..f7e48be4ba 100644
--- a/packages/zlib/Makefile.fpc
+++ b/packages/zlib/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=zlib
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/zlib/Makefile.fpc.fpcmake b/packages/zlib/Makefile.fpc.fpcmake
index 80a9987b42..80397d9064 100644
--- a/packages/zlib/Makefile.fpc.fpcmake
+++ b/packages/zlib/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=zlib
-version=2.7.1
+version=3.1.1
[target]
units=zlib
diff --git a/packages/zlib/fpmake.pp b/packages/zlib/fpmake.pp
index 53370a8228..8be14b0c25 100644
--- a/packages/zlib/fpmake.pp
+++ b/packages/zlib/fpmake.pp
@@ -13,10 +13,11 @@ begin
{$endif ALLPACKAGES}
P:=AddPackage('zlib');
+ P.Description := 'Interface units for the ZLIB library - support for deflate compression method used for GZIP, PNG, ZIP, etc.';
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes := AllUnixOSes+AllWindowsOSes+[os2,emx,netware,netwlibc]-[qnx];
P.SourcePath.Add('src');
diff --git a/packages/zorba/Makefile b/packages/zorba/Makefile
index b892417cc4..2ad394a0dd 100644
--- a/packages/zorba/Makefile
+++ b/packages/zorba/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=zorba
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,12 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall zipdistinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,17 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(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
-distinstall: fpmake
+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) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=share/src/fpc-\$$\(PACKAGEVERSION\)/$(INSTALL_FPCSUBDIR)/\$$\(PACKAGEDIRECTORY\)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) archive $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) --prefix=source\\$(INSTALL_FPCSUBDIR)\\\$$\(PACKAGEDIRECTORY\)
endif
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/zorba/Makefile.fpc b/packages/zorba/Makefile.fpc
index 5563a98715..50065fb245 100644
--- a/packages/zorba/Makefile.fpc
+++ b/packages/zorba/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=zorba
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,18 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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
-zipinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT)
diff --git a/packages/zorba/Makefile.fpc.fpcmake b/packages/zorba/Makefile.fpc.fpcmake
index c546e88b91..4f85802c30 100644
--- a/packages/zorba/Makefile.fpc.fpcmake
+++ b/packages/zorba/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=zorba
-version=2.7.1
+version=3.1.1
[target]
units=xqc zorba zorbadyn
diff --git a/packages/zorba/fpmake.pp b/packages/zorba/fpmake.pp
index 1167275bb5..8e62d0ea39 100644
--- a/packages/zorba/fpmake.pp
+++ b/packages/zorba/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes := [linux,win32];
P.SourcePath.Add('src');
P.IncludePath.Add('src');
diff --git a/rtl/Makefile b/rtl/Makefile
index 3bc262e96d..e168d8052b 100644
--- a/rtl/Makefile
+++ b/rtl/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -326,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=rtl
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_DIRS+=linux
endif
@@ -387,6 +387,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_DIRS+=android
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_DIRS+=aros
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_DIRS+=linux
endif
@@ -471,6 +474,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_DIRS+=embedded
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_DIRS+=dragonfly
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_DIRS+=linux
endif
@@ -784,6 +790,12 @@ 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=
@@ -829,6 +841,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1293,7 +1310,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1741,6 +1758,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
TARGET_DIRS_ANDROID=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+TARGET_DIRS_AROS=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
TARGET_DIRS_LINUX=1
endif
@@ -1825,6 +1845,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
TARGET_DIRS_EMBEDDED=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+TARGET_DIRS_DRAGONFLY=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
TARGET_DIRS_LINUX=1
endif
@@ -2749,6 +2772,51 @@ android:
$(MAKE) -C android all
.PHONY: android_all android_debug android_smart android_release android_units android_examples android_shared android_install android_sourceinstall android_exampleinstall android_distinstall android_zipinstall android_zipsourceinstall android_zipexampleinstall android_zipdistinstall android_clean android_distclean android_cleanall android_info android_makefiles android
endif
+ifdef TARGET_DIRS_AROS
+aros_all:
+ $(MAKE) -C aros all
+aros_debug:
+ $(MAKE) -C aros debug
+aros_smart:
+ $(MAKE) -C aros smart
+aros_release:
+ $(MAKE) -C aros release
+aros_units:
+ $(MAKE) -C aros units
+aros_examples:
+ $(MAKE) -C aros examples
+aros_shared:
+ $(MAKE) -C aros shared
+aros_install:
+ $(MAKE) -C aros install
+aros_sourceinstall:
+ $(MAKE) -C aros sourceinstall
+aros_exampleinstall:
+ $(MAKE) -C aros exampleinstall
+aros_distinstall:
+ $(MAKE) -C aros distinstall
+aros_zipinstall:
+ $(MAKE) -C aros zipinstall
+aros_zipsourceinstall:
+ $(MAKE) -C aros zipsourceinstall
+aros_zipexampleinstall:
+ $(MAKE) -C aros zipexampleinstall
+aros_zipdistinstall:
+ $(MAKE) -C aros zipdistinstall
+aros_clean:
+ $(MAKE) -C aros clean
+aros_distclean:
+ $(MAKE) -C aros distclean
+aros_cleanall:
+ $(MAKE) -C aros cleanall
+aros_info:
+ $(MAKE) -C aros info
+aros_makefiles:
+ $(MAKE) -C aros makefiles
+aros:
+ $(MAKE) -C aros all
+.PHONY: aros_all aros_debug aros_smart aros_release aros_units aros_examples aros_shared aros_install aros_sourceinstall aros_exampleinstall aros_distinstall aros_zipinstall aros_zipsourceinstall aros_zipexampleinstall aros_zipdistinstall aros_clean aros_distclean aros_cleanall aros_info aros_makefiles aros
+endif
ifdef TARGET_DIRS_AMIGA
amiga_all:
$(MAKE) -C amiga all
@@ -3064,6 +3132,51 @@ win64:
$(MAKE) -C win64 all
.PHONY: win64_all win64_debug win64_smart win64_release win64_units win64_examples win64_shared win64_install win64_sourceinstall win64_exampleinstall win64_distinstall win64_zipinstall win64_zipsourceinstall win64_zipexampleinstall win64_zipdistinstall win64_clean win64_distclean win64_cleanall win64_info win64_makefiles win64
endif
+ifdef TARGET_DIRS_DRAGONFLY
+dragonfly_all:
+ $(MAKE) -C dragonfly all
+dragonfly_debug:
+ $(MAKE) -C dragonfly debug
+dragonfly_smart:
+ $(MAKE) -C dragonfly smart
+dragonfly_release:
+ $(MAKE) -C dragonfly release
+dragonfly_units:
+ $(MAKE) -C dragonfly units
+dragonfly_examples:
+ $(MAKE) -C dragonfly examples
+dragonfly_shared:
+ $(MAKE) -C dragonfly shared
+dragonfly_install:
+ $(MAKE) -C dragonfly install
+dragonfly_sourceinstall:
+ $(MAKE) -C dragonfly sourceinstall
+dragonfly_exampleinstall:
+ $(MAKE) -C dragonfly exampleinstall
+dragonfly_distinstall:
+ $(MAKE) -C dragonfly distinstall
+dragonfly_zipinstall:
+ $(MAKE) -C dragonfly zipinstall
+dragonfly_zipsourceinstall:
+ $(MAKE) -C dragonfly zipsourceinstall
+dragonfly_zipexampleinstall:
+ $(MAKE) -C dragonfly zipexampleinstall
+dragonfly_zipdistinstall:
+ $(MAKE) -C dragonfly zipdistinstall
+dragonfly_clean:
+ $(MAKE) -C dragonfly clean
+dragonfly_distclean:
+ $(MAKE) -C dragonfly distclean
+dragonfly_cleanall:
+ $(MAKE) -C dragonfly cleanall
+dragonfly_info:
+ $(MAKE) -C dragonfly info
+dragonfly_makefiles:
+ $(MAKE) -C dragonfly makefiles
+dragonfly:
+ $(MAKE) -C dragonfly all
+.PHONY: dragonfly_all dragonfly_debug dragonfly_smart dragonfly_release dragonfly_units dragonfly_examples dragonfly_shared dragonfly_install dragonfly_sourceinstall dragonfly_exampleinstall dragonfly_distinstall dragonfly_zipinstall dragonfly_zipsourceinstall dragonfly_zipexampleinstall dragonfly_zipdistinstall dragonfly_clean dragonfly_distclean dragonfly_cleanall dragonfly_info dragonfly_makefiles dragonfly
+endif
ifdef TARGET_DIRS_GBA
gba_all:
$(MAKE) -C gba all
diff --git a/rtl/Makefile.fpc b/rtl/Makefile.fpc
index cb29f47028..abe9dd9126 100644
--- a/rtl/Makefile.fpc
+++ b/rtl/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=rtl
-version=2.7.1
+version=3.1.1
[target]
dirs_linux=linux
@@ -16,6 +16,7 @@ dirs_go32v1=go32v1
dirs_os2=os2
dirs_emx=emx
dirs_freebsd=freebsd
+dirs_dragonfly=dragonfly
dirs_darwin=darwin
dirs_iphonesim=darwin
dirs_beos=beos
@@ -42,6 +43,7 @@ dirs_arm_android=android
dirs_mipsel_android=android
dirs_jvm_android=android/jvm
dirs_msdos=msdos
+dirs_aros=aros
[install]
fpcpackage=y
diff --git a/rtl/aix/Makefile b/rtl/aix/Makefile
index ad003170e8..7baa800fe9 100644
--- a/rtl/aix/Makefile
+++ b/rtl/aix/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -422,6 +422,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem lnfogdb sysutils typinfo math 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-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem lnfogdb sysutils typinfo math fgl classes charset cpall character unixcp getopts errors dl dynlibs types sysconst rtlconsts cthreads dos cwstring fpwidestring fpintres $(CPU_UNITS)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem lnfogdb sysutils typinfo math fgl classes charset cpall character unixcp getopts errors dl dynlibs types sysconst rtlconsts cthreads dos cwstring fpwidestring fpintres $(CPU_UNITS)
endif
@@ -509,6 +512,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem lnfogdb sysutils typinfo math fgl classes charset cpall character unixcp getopts errors dl dynlibs types sysconst rtlconsts cthreads dos cwstring fpwidestring fpintres $(CPU_UNITS)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem lnfogdb sysutils typinfo math fgl classes charset cpall character unixcp getopts errors dl dynlibs types sysconst rtlconsts cthreads dos cwstring fpwidestring fpintres $(CPU_UNITS)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc baseunix unixutil termio unix initc cmem lnfogdb sysutils typinfo math fgl classes charset cpall character unixcp getopts errors dl dynlibs types sysconst rtlconsts cthreads dos cwstring fpwidestring fpintres $(CPU_UNITS)
endif
@@ -647,6 +653,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -734,6 +743,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -872,6 +884,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo classes sysconst rtlconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo classes sysconst rtlconst
endif
@@ -959,6 +974,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo classes sysconst rtlconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo classes sysconst rtlconst
endif
@@ -1098,6 +1116,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
endif
@@ -1185,6 +1206,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) # $(OSPROCINC)
endif
@@ -1323,6 +1347,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
endif
@@ -1410,6 +1437,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
endif
@@ -1721,6 +1751,12 @@ 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=
@@ -1766,6 +1802,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2230,7 +2271,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/aix/system.pp b/rtl/aix/system.pp
index 9dcba79b1e..401cb53f6c 100644
--- a/rtl/aix/system.pp
+++ b/rtl/aix/system.pp
@@ -292,7 +292,6 @@ Begin
{ Arguments }
SetupCmdLine;
InitSystemThreads;
- initvariantmanager;
{ restore original signal handlers in case this is a library }
if IsLibrary then
RestoreOldSignalHandlers;
diff --git a/rtl/amicommon/README.TXT b/rtl/amicommon/README.TXT
new file mode 100644
index 0000000000..1b8655594f
--- /dev/null
+++ b/rtl/amicommon/README.TXT
@@ -0,0 +1,9 @@
+
+This is the common directory for RTL code which is shared among Amiga-like
+platforms. That means AmigaOS on 68k, MorphOS and AROS on i386 currently.
+
+All code which is committed to this directory must be compilable and working
+on these systems. System specific implementations are possible to add via
+include files, which are then included into these files at the right place.
+
+ Karoly Balogh (2014.08.22)
diff --git a/rtl/amiga/classes.pp b/rtl/amicommon/classes.pp
index 507b765740..9a43c01202 100644
--- a/rtl/amiga/classes.pp
+++ b/rtl/amicommon/classes.pp
@@ -1,8 +1,8 @@
{
This file is part of the Free Component Library (FCL)
- Copyright (c) 1999-2002 by the Free Pascal development team
+ Copyright (c) 1999-2011 by the Free Pascal development team
- Classes unit for AmigaOS
+ Classes unit for AmigaOS & clones
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
@@ -36,7 +36,6 @@ uses
implementation
-
{ OS - independent class implementations are in /inc directory. }
{$i classes.inc}
diff --git a/rtl/amiga/dos.pp b/rtl/amicommon/dos.pp
index 932a15417e..73d51bc6c2 100644
--- a/rtl/amiga/dos.pp
+++ b/rtl/amicommon/dos.pp
@@ -1,12 +1,14 @@
{
This file is part of the Free Pascal run time library.
- Copyright (c) 2004 by Karoly Balogh for Genesi S.a.r.l.
+ Copyright (c) 2014 by the Free Pascal development team
- Heavily based on the Commodore Amiga/m68k RTL by Nils Sjoholm and
+ DOS unit for AmigaOS & clones
+
+ Heavily based on the 1.x Amiga version by Nils Sjoholm and
Carl Eric Codere
- MorphOS port was done on a free Pegasos II/G4 machine
- provided by Genesi S.a.r.l. <www.genesi.lu>
+ AmigaOS and MorphOS support by Karoly Balogh
+ AROS support by Marcus Sackrow
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
@@ -47,6 +49,12 @@ type
{$I dosh.inc}
+function DeviceByIdx(Idx: Integer): string;
+function AddDisk(Const Path: string): Integer;
+function RefreshDeviceList: Integer;
+function DiskSize(Drive: AnsiString): Int64;
+function DiskFree(Drive: AnsiString): Int64;
+
implementation
{$DEFINE HAS_GETMSCOUNT}
@@ -102,12 +110,29 @@ end;
function BADDR(bval: LongInt): Pointer; Inline;
begin
+ {$if defined(AROS) and (not defined(AROS_FLAVOUR_BINCOMPAT))}
+ BADDR := Pointer(bval);
+ {$else}
BADDR:=Pointer(bval Shl 2);
+ {$endif}
+end;
+
+function BSTR2STRING(s : Pointer): PChar; Inline;
+begin
+ {$if defined(AROS) and (not defined(AROS_FLAVOUR_BINCOMPAT))}
+ BSTR2STRING:=PChar(s);
+ {$else}
+ BSTR2STRING:=PChar(BADDR(PtrInt(s)))+1;
+ {$endif}
end;
function BSTR2STRING(s : LongInt): PChar; Inline;
begin
+ {$if defined(AROS) and (not defined(AROS_FLAVOUR_BINCOMPAT))}
+ BSTR2STRING:=PChar(s);
+ {$else}
BSTR2STRING:=PChar(BADDR(s))+1;
+ {$endif}
end;
function IsLeapYear(Source : Word) : Boolean;
@@ -179,7 +204,7 @@ var
begin
move(name[1],buffer,length(name));
buffer[length(name)]:=#0;
- dosSetProtection:=SetProtection(buffer,mask);
+ dosSetProtection:=SetProtection(buffer,mask) <> 0;
end;
function dosSetFileDate(name: string; p : PDateStamp): Boolean;
@@ -488,91 +513,169 @@ end;
--- Disk ---
******************************************************************************}
-{ How to solve the problem with this: }
-{ We could walk through the device list }
-{ at startup to determine possible devices }
-
+{
+ The Diskfree and Disksize functions need a file on the specified drive, since this
+ is required for the statfs system call.
+ These filenames are set in drivestr[0..26], and have been preset to :
+ 0 - ':' (default drive - hence current dir is ok.)
+ 1 - 'DF0:' (floppy drive 1 - should be adapted to local system )
+ 2 - 'DF1:' (floppy drive 2 - should be adapted to local system )
+ 3 - 'SYS:' (C: equivalent of dos is the SYS: partition)
+ 4..26 (can be set by you're own applications)
+ ! Use AddDisk() to Add new drives !
+ They both return -1 when a failure occurs.
+}
+var
+ DeviceList: array[0..26] of string[20];
+ NumDevices: Integer = 0;
+
const
-
- not_to_use_devs : array[0..12] of string =(
- 'DF0:',
- 'DF1:',
- 'DF2:',
- 'DF3:',
- 'PED:',
+ IllegalDevices: array[0..12] of string =(
+ 'PED:',
'PRJ:',
- 'PIPE:',
- 'RAM:',
- 'CON:',
- 'RAW:',
- 'SER:',
- 'PAR:',
- 'PRT:');
+ 'PIPE:', // Pipes
+ 'XPIPE:', // Extented Pipe
+ 'CON:', // Console
+ 'RAW:', // RAW: Console
+ 'KCON:', // KingCON Console
+ 'KRAW:', // KingCON RAW
+ 'SER:', // serial Ports
+ 'SER0:',
+ 'SER1:',
+ 'PAR:', // Parallel Porty
+ 'PRT:'); // Printer
+
+function IsIllegalDevice(DeviceName: string): Boolean;
+var
+ i: Integer;
+ Str: AnsiString;
+begin
+ IsIllegalDevice := False;
+ Str := UpCase(DeviceName);
+ for i := Low(IllegalDevices) to High(IllegalDevices) do
+ begin
+ if Str = IllegalDevices[i] then
+ begin
+ IsIllegalDevice := True;
+ Exit;
+ end;
+ end;
+end;
+
+function DeviceByIdx(Idx: Integer): string;
+begin
+ DeviceByIdx := '';
+ if (Idx < 0) or (Idx >= NumDevices) then
+ Exit;
+ DeviceByIdx := DeviceList[Idx];
+end;
+
+function AddDisk(const Path: string): Integer;
+begin
+ // if hit border, restart at 4
+ if NumDevices > 26 then
+ NumDevices := 4;
+ // set the device
+ DeviceList[NumDevices] := Copy(Path, 1, 20);
+ // return the Index increment for next run
+ AddDisk := NumDevices;
+ Inc(NumDevices);
+end;
+function RefreshDeviceList: Integer;
var
- deviceids : array[1..20] of byte;
- devicenames : array[1..20] of string[20];
- numberofdevices : Byte;
+ List: PDosList;
+ Temp: PChar;
+ Str: string;
+begin
+ NumDevices := 0;
+ AddDisk(':'); // Index 0
+ AddDisk('DF0:'); // Index 1
+ AddDisk('DF1:'); // Index 2
+ AddDisk('SYS:'); // Index 3
+ // Lock the List
+ List := LockDosList(LDF_DEVICES or LDF_READ);
+ // Inspect the List
+ repeat
+ List := NextDosEntry(List, LDF_DEVICES);
+ if List <> nil then
+ begin
+ Temp := BSTR2STRING(List^.dol_Name);
+ Str := strpas(Temp) + ':';
+ if not IsIllegalDevice(str) then
+ AddDisk(Str);
+ end;
+ until List = nil;
+ RefreshDeviceList := NumDevices;
+end;
-Function DiskFree(Drive: Byte): int64;
-Var
- MyLock : LongInt;
- Inf : pInfoData;
- Free : Longint;
- myproc : pProcess;
- OldWinPtr : Pointer;
-Begin
- Free := -1;
- { Here we stop systemrequesters to appear }
- myproc := pProcess(FindTask(nil));
- OldWinPtr := myproc^.pr_WindowPtr;
- myproc^.pr_WindowPtr := Pointer(-1);
- { End of systemrequesterstop }
- New(Inf);
- MyLock := dosLock(devicenames[deviceids[Drive]],SHARED_LOCK);
- If MyLock <> 0 then begin
- if Info(MyLock,Inf) then begin
- Free := (Inf^.id_NumBlocks * Inf^.id_BytesPerBlock) -
- (Inf^.id_NumBlocksUsed * Inf^.id_BytesPerBlock);
- end;
- Unlock(MyLock);
+// New easier DiskSize()
+//
+function DiskSize(Drive: AnsiString): Int64;
+var
+ DirLock: LongInt;
+ Inf: TInfoData;
+ MyProc: PProcess;
+ OldWinPtr: Pointer;
+begin
+ DiskSize := -1;
+ //
+ MyProc := PProcess(FindTask(Nil));
+ OldWinPtr := MyProc^.pr_WindowPtr;
+ MyProc^.pr_WindowPtr := Pointer(-1);
+ //
+ DirLock := Lock(PChar(Drive), SHARED_LOCK);
+ if DirLock <> 0 then
+ begin
+ if Info(DirLock, @Inf) <> 0 then
+ DiskSize := Int64(Inf.id_NumBlocks) * Inf.id_BytesPerBlock;
+ UnLock(DirLock);
end;
- Dispose(Inf);
- { Restore systemrequesters }
- myproc^.pr_WindowPtr := OldWinPtr;
- diskfree := Free;
+ if OldWinPtr <> Pointer(-1) then
+ MyProc^.pr_WindowPtr := OldWinPtr;
end;
+function DiskSize(Drive: Byte): Int64;
+begin
+ DiskSize := -1;
+ if (Drive < 0) or (Drive >= NumDevices) then
+ Exit;
+ DiskSize := DiskSize(DeviceList[Drive]);
+end;
-
-Function DiskSize(Drive: Byte): int64;
-Var
- MyLock : LongInt;
- Inf : pInfoData;
- Size : Longint;
- myproc : pProcess;
- OldWinPtr : Pointer;
-Begin
- Size := -1;
- { Here we stop systemrequesters to appear }
- myproc := pProcess(FindTask(nil));
- OldWinPtr := myproc^.pr_WindowPtr;
- myproc^.pr_WindowPtr := Pointer(-1);
- { End of systemrequesterstop }
- New(Inf);
- MyLock := dosLock(devicenames[deviceids[Drive]],SHARED_LOCK);
- If MyLock <> 0 then begin
- if Info(MyLock,Inf) then begin
- Size := (Inf^.id_NumBlocks * Inf^.id_BytesPerBlock);
- end;
- Unlock(MyLock);
+// New easier DiskFree()
+//
+function DiskFree(Drive: AnsiString): Int64;
+var
+ DirLock: LongInt;
+ Inf: TInfoData;
+ MyProc: PProcess;
+ OldWinPtr: Pointer;
+begin
+ DiskFree := -1;
+ //
+ MyProc := PProcess(FindTask(Nil));
+ OldWinPtr := MyProc^.pr_WindowPtr;
+ MyProc^.pr_WindowPtr := Pointer(-1);
+ //
+ DirLock := Lock(PChar(Drive), SHARED_LOCK);
+ if DirLock <> 0 then
+ begin
+ if Info(DirLock, @Inf) <> 0 then
+ DiskFree := Int64(Inf.id_NumBlocks - Inf.id_NumBlocksUsed) * Inf.id_BytesPerBlock;
+ UnLock(DirLock);
end;
- Dispose(Inf);
- { Restore systemrequesters }
- myproc^.pr_WindowPtr := OldWinPtr;
- disksize := Size;
+ if OldWinPtr <> Pointer(-1) then
+ MyProc^.pr_WindowPtr := OldWinPtr;
end;
+function DiskFree(Drive: Byte): Int64;
+begin
+ DiskFree := -1;
+ if (Drive < 0) or (Drive >= NumDevices) then
+ Exit;
+ DiskFree := DiskSize(DeviceList[Drive]);
+end;
procedure FindFirst(const Path: PathStr; Attr: Word; Var f: SearchRec);
var
@@ -734,7 +837,7 @@ begin
FLock := dosLock(Str, SHARED_LOCK);
IF FLock <> 0 then begin
New(FInfo);
- if Examine(FLock, FInfo) then begin
+ if Examine(FLock, FInfo) <> 0 then begin
with FInfo^.fib_Date do
FTime := ds_Days * (24 * 60 * 60) +
ds_Minute * 60 +
@@ -861,7 +964,7 @@ begin
tmpLock:=Lock(p,SHARED_LOCK);
if tmpLock <> 0 then begin
Unlock(tmpLock);
- if not SetProtection(p,flags) then DosError:=5;
+ if SetProtection(p,flags) = 0 then DosError:=5;
end else
DosError:=3;
end;
@@ -875,30 +978,32 @@ end;
var
strofpaths : string;
+function SystemTags(const command: PChar; const tags: array of DWord): LongInt;
+begin
+ SystemTags:=SystemTagList(command,@tags);
+end;
+
function getpathstring: string;
var
f : text;
s : string;
found : boolean;
temp : string[255];
- tmpBat: string[31];
- tmpList: string[31];
begin
found := true;
temp := '';
- tmpBat:='T:'+HexStr(FindTask(nil));
- tmpList:=tmpBat+'_path.tmp';
- tmpBat:=tmpBat+'_path.sh';
-
- assign(f,tmpBat);
+ { Alternatively, this could use PIPE: handler on systems which
+ have this by default (not the case on classic Amiga), but then
+ the child process should be started async, which for a simple
+ Path command probably isn't worth the trouble. (KB) }
+ assign(f,'T:'+HexStr(FindTask(nil))+'_path.tmp');
rewrite(f);
- writeln(f,'path >'+tmpList);
+ { This is a pretty ugly stunt, combining Pascal and Amiga system
+ functions, but works... }
+ SystemTags('C:Path',[SYS_Input, 0, SYS_Output, TextRec(f).Handle, TAG_END]);
close(f);
- exec('C:Execute',tmpBat);
- erase(f);
- assign(f,tmpList);
reset(f);
{ skip the first line, garbage }
if not eof(f) then readln(f,s);
@@ -907,7 +1012,7 @@ begin
if found then begin
temp := s;
found := false;
- end else begin;
+ end else begin
if (length(s) + length(temp)) < 255 then
temp := temp + ';' + s;
end;
@@ -918,33 +1023,95 @@ begin
getpathstring := temp;
end;
+var
+ EnvList: array of record
+ Name: string;
+ Local: Boolean;
+ Value: string;
+ end;
-function EnvCount: Longint;
-{ HOW TO GET THIS VALUE: }
-{ Each time this function is called, we look at the }
-{ local variables in the Process structure (2.0+) }
-{ And we also read all files in the ENV: directory }
+procedure InitEnvironmentStrings;
+Const
+ BUFFER_SIZE = 254;
+Var
+ ThisProcess: PProcess;
+ LocalVars_List: PMinList; // Local Var structure in struct process (pr_LocalVarsis is actually a minlist
+ LocalVar_Node: PLocalVar;
+ Buffer: array[0..BUFFER_SIZE] of Char; // Buffer to hold a value for GetVar()
+ TempLen: LongInt; // hold returnlength of GetVar()
+ // for env: searching
+ Anchor: TAnchorPath;
+ Res: Integer;
begin
- EnvCount := 0;
+ SetLength(EnvList, 0);
+ ThisProcess := PProcess(FindTask(nil)); //Get the pointer to our process
+ LocalVars_List := @(ThisProcess^.pr_LocalVars); //get the list of pr_LocalVars as pointer
+ LocalVar_Node := pLocalVar(LocalVars_List^.mlh_head); //get the headnode of the LocalVars list
+
+ // loop through the localvar list
+ while ( Pointer(LocalVar_Node^.lv_node.ln_Succ) <> Pointer(LocalVars_List^.mlh_Tail)) do
+ begin
+ // make sure the active node is valid instead of empty
+ If not(LocalVar_Node <> nil) then
+ break;
+
+ { - process the current node - }
+ If (LocalVar_Node^.lv_node.ln_Type = LV_Var) then
+ begin
+ FillChar(Buffer[0], Length(Buffer), #0); // clear Buffer
+
+ // get active node's name environment variable value ino buffer and make sure it's local
+ TempLen := GetVar(LocalVar_Node^.lv_Node.ln_Name, @Buffer[0], BUFFER_SIZE, GVF_LOCAL_ONLY);
+ If TempLen <> -1 then
+ begin
+ SetLength(EnvList, Length(EnvList) + 1);
+ EnvList[High(EnvList)].Name := LocalVar_Node^.lv_Node.ln_Name;
+ EnvList[High(EnvList)].Value := string(PChar(@Buffer[0]));
+ EnvList[High(EnvList)].Local := True;
+ end;
+ end;
+ LocalVar_Node := pLocalVar(LocalVar_Node^.lv_node.ln_Succ); //we need to get the next node
+ end;
+ // search in env for all Variables
+ FillChar(Anchor,sizeof(TAnchorPath),#0);
+ Res := MatchFirst('ENV:#?', @Anchor);
+ while Res = 0 do
+ begin
+ if Anchor.ap_Info.fib_DirEntryType <= 0 then
+ begin
+ SetLength(EnvList, Length(EnvList) + 1);
+ EnvList[High(EnvList)].Name := Anchor.ap_Info.fib_FileName;
+ EnvList[High(EnvList)].Value := '';
+ EnvList[High(EnvList)].Local := False;
+ end;
+ Res := MatchNext(@Anchor);
+ end;
+ MatchEnd(@Anchor);
+ // add PATH as Fake Variable:
+ SetLength(EnvList, Length(EnvList) + 1);
+ EnvList[High(EnvList)].Name := 'PATH';
+ EnvList[High(EnvList)].Value := '';
+ EnvList[High(EnvList)].Local := False;
end;
-function EnvStr(Index: LongInt): String;
+function EnvCount: Longint;
begin
- EnvStr:='';
+ InitEnvironmentStrings;
+ EnvCount := Length(EnvList);
end;
-function GetEnv(envvar : String): String;
+function GetEnvFromEnv(envvar : String): String;
var
bufarr : array[0..255] of char;
strbuffer : array[0..255] of char;
temp : Longint;
begin
- GetEnv := '';
+ GetEnvFromEnv := '';
if UpCase(envvar) = 'PATH' then begin
if StrOfpaths = '' then StrOfPaths := GetPathString;
- GetEnv := StrOfPaths;
+ GetEnvFromEnv := StrOfPaths;
end else begin
if (Pos(DriveSeparator,envvar) <> 0) or
(Pos(DirectorySeparator,envvar) <> 0) then exit;
@@ -952,65 +1119,55 @@ begin
strbuffer[length(envvar)] := #0;
temp := GetVar(strbuffer,bufarr,255,$100);
if temp <> -1 then
- GetEnv := StrPas(bufarr);
+ GetEnvFromEnv := StrPas(bufarr);
end;
end;
-
-procedure AddDevice(str : String);
-begin
- inc(numberofdevices);
- deviceids[numberofdevices] := numberofdevices;
- devicenames[numberofdevices] := str;
-end;
-
-function MakeDeviceName(str : pchar): string;
-var
- temp : string[20];
-begin
- temp := strpas(str);
- temp := temp + ':';
- MakeDeviceName := temp;
-end;
-
-function IsInDeviceList(str : string): boolean;
-var
- i : byte;
- theresult : boolean;
+function EnvStr(Index: LongInt): String;
begin
- theresult := false;
- for i := low(not_to_use_devs) to high(not_to_use_devs) do
- begin
- if str = not_to_use_devs[i] then begin
- theresult := true;
- break;
- end;
- end;
- IsInDeviceList := theresult;
+ EnvStr := '';
+ if Length(EnvList) = 0 then
+ InitEnvironmentStrings;
+ if (Index >= 0) and (Index <= High(EnvList)) then
+ begin
+ if EnvList[Index].Local then
+ EnvStr := EnvList[Index].Name + '=' + EnvList[Index].Value
+ else
+ EnvStr := EnvList[Index].Name + '=' + GetEnvFromEnv(EnvList[Index].Name);
+ end;
end;
-procedure ReadInDevices;
+function GetEnv(envvar : String): String;
var
- dl : pDosList;
- temp : pchar;
- str : string[20];
+ EnvVarName: String;
+ i: Integer;
begin
- dl := LockDosList(LDF_DEVICES or LDF_READ );
- repeat
- dl := NextDosEntry(dl,LDF_DEVICES );
- if dl <> nil then begin
- temp := BSTR2STRING(dl^.dol_Name);
- str := MakeDeviceName(temp);
- if not IsInDeviceList(str) then
- AddDevice(str);
- end;
- until dl = nil;
- UnLockDosList(LDF_DEVICES or LDF_READ );
+ GetEnv := '';
+ EnvVarName := UpCase(EnvVar);
+ if EnvVarName = 'PATH' then
+ begin
+ if StrOfpaths = '' then
+ StrOfPaths := GetPathString;
+ GetEnv := StrOfPaths;
+ end else
+ begin
+ InitEnvironmentStrings;
+ for i := 0 to High(EnvList) do
+ begin
+ if EnvVarName = UpCase(EnvList[i].Name) then
+ begin
+ if EnvList[i].Local then
+ GetEnv := EnvList[i].Value
+ else
+ GetEnv := GetEnvFromEnv(EnvList[i].Name);
+ Break;
+ end;
+ end;
+ end;
end;
begin
DosError:=0;
- numberofdevices := 0;
StrOfPaths := '';
- ReadInDevices;
+ RefreshDeviceList;
end.
diff --git a/rtl/amicommon/osdebug.inc b/rtl/amicommon/osdebug.inc
new file mode 100644
index 0000000000..5967706f21
--- /dev/null
+++ b/rtl/amicommon/osdebug.inc
@@ -0,0 +1,44 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ Platform specific debug functions for Amiga-like systems
+
+ 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.
+
+ **********************************************************************}
+
+{ Basic system-specific debug facility. Logs to the primary log source, which is
+ usually the serial port or where the serial log is redirected to (eg. RamDebug
+ on MorphOS) We could also use some barely-documented RawDoFmt() blackmagic here
+ specifying "1" as PutChProc pointer, but it doesn't really matter, because
+ RawDoFmt() will just call RawPutChar internally in that case (KB) }
+
+procedure SysDebug(const s: RawByteString); platform;
+var
+ i: LongInt;
+begin
+ if s <> '' then
+ for i:=1 to Length(s) do
+ RawPutChar(s[i]);
+end;
+
+procedure SysDebugLn(const s: RawByteString); platform;
+var
+ i: LongInt;
+begin
+ if s <> '' then
+ for i:=1 to Length(s) do
+ RawPutChar(s[i]);
+ RawPutChar(#10);
+end;
+
+procedure SysDebugLn; {$IFDEF SYSTEMINLINE}inline;{$ENDIF} platform;
+begin
+ RawPutChar(#10);
+end;
diff --git a/rtl/amicommon/osdebugh.inc b/rtl/amicommon/osdebugh.inc
new file mode 100644
index 0000000000..dbdb188707
--- /dev/null
+++ b/rtl/amicommon/osdebugh.inc
@@ -0,0 +1,18 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by Free Pascal development team
+
+ Platform specific debug functions for Amiga-like systems
+
+ 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 SysDebug(const s: RawByteString);
+procedure SysDebugLn(const s: RawByteString);
+procedure SysDebugLn;
diff --git a/rtl/amiga/rtldefs.inc b/rtl/amicommon/rtldefs.inc
index 3376428f5e..3376428f5e 100644
--- a/rtl/amiga/rtldefs.inc
+++ b/rtl/amicommon/rtldefs.inc
diff --git a/rtl/amiga/sysdir.inc b/rtl/amicommon/sysdir.inc
index c0bb7a90c2..1665fe3641 100644
--- a/rtl/amiga/sysdir.inc
+++ b/rtl/amicommon/sysdir.inc
@@ -69,10 +69,10 @@ begin
FIB:=nil;
new(FIB);
- if (Examine(tmpLock,FIB)=True) and (FIB^.fib_DirEntryType>0) then begin
+ if (Examine(tmpLock,FIB)<>0) and (FIB^.fib_DirEntryType>0) then begin
tmpLock:=CurrentDir(tmpLock);
- if AOS_OrigDir=0 then begin
- AOS_OrigDir:=tmpLock;
+ if ASYS_OrigDir=0 then begin
+ ASYS_OrigDir:=tmpLock;
tmpLock:=0;
end;
end else begin
@@ -84,16 +84,19 @@ begin
end;
procedure do_GetDir (DriveNr: byte; var Dir: RawByteString);
-var tmpbuf: array[0..255] of char;
+var
+ tmpbuf: array[0..255] of char;
+ lockDir: LongInt;
begin
checkCTRLC;
- Dir:='';
+ Dir := '';
- if not GetCurrentDirName(tmpbuf,256) then
- dosError2InOut(IoErr)
- else
- begin
- Dir:=tmpbuf;
- SetCodePage(Dir,DefaultFileSystemCodePage,false);
- end;
+ { dos.library's GetCurrentDirName() doesn't work when called from
+ Workbench (ie. when the process has no CLI sructure) }
+ { it also doesn't seem to work when invoked from make on AROS }
+ LockDir := CurrentDir(0);
+ NameFromLock(LockDir, tmpBuf, 256);
+ CurrentDir(LockDir);
+ Dir := tmpBuf;
+ SetCodePage(Dir,DefaultSystemCodePage,false);
end;
diff --git a/rtl/morphos/sysfile.inc b/rtl/amicommon/sysfile.inc
index 31a2c7e8d6..ddf5f1bd33 100644
--- a/rtl/morphos/sysfile.inc
+++ b/rtl/amicommon/sysfile.inc
@@ -14,10 +14,10 @@
**********************************************************************}
{ Enable this for file handling debug }
-{DEFINE MOSFPC_FILEDEBUG}
+{DEFINE ASYS_FPC_FILEDEBUG}
{*****************************************************************************
- MorphOS File-handling Support Functions
+ File-handling Support Functions
*****************************************************************************}
type
{ AmigaOS does not automatically close opened files on exit back to }
@@ -31,7 +31,7 @@ type
end;
var
- MOS_fileList: PFileList; public name 'MOS_FILELIST'; { List pointer to opened files }
+ ASYS_fileList: PFileList; public name 'ASYS_FILELIST'; { List pointer to opened files }
{ Function to be called at program shutdown, to close all opened files }
procedure CloseList(l: PFileList);
@@ -88,8 +88,8 @@ begin
p^.next:=l^.next;
l^.next:=p;
end
-{$IFDEF MOSFPC_FILEDEBUG}
- else
+{$IFDEF ASYS_FPC_FILEDEBUG}
+ else
RawDoFmt('FPC_FILE_DEBUG: Error! Trying add filehandle a filehandle twice: $%lx !'+#10,@h,pointer(1),nil);
{$ENDIF}
;
@@ -112,14 +112,14 @@ begin
while (p^.next<>nil) and (not inList) do
if p^.next^.handle=h then inList:=True
else p:=p^.next;
-
+
if inList then begin
tmpList:=p^.next^.next;
dispose(p^.next);
p^.next:=tmpList;
end
-{$IFDEF MOSFPC_FILEDEBUG}
- else
+{$IFDEF ASYS_FPC_FILEDEBUG}
+ else
RawDoFmt('FPC_FILE_DEBUG: Error! Trying to remove not existing filehandle: $%lx !'+#10,@h,pointer(1),nil);
{$ENDIF}
;
@@ -132,8 +132,7 @@ function CheckInList(var l: PFileList; h: LongInt): pointer; alias: 'CHECKINLIST
var
p : PFileList;
inList : Pointer;
- tmpList: PFileList;
-
+
begin
inList:=nil;
if l=nil then begin
@@ -146,7 +145,7 @@ begin
if p^.next^.handle=h then inList:=p^.next
else p:=p^.next;
-{$IFDEF MOSFPC_FILEDEBUG}
+{$IFDEF ASYS_FPC_FILEDEBUG}
if inList=nil then
RawDoFmt('FPC_FILE_DEBUG: Warning! Check for not existing filehandle: $%lx !'+#10,@h,pointer(1),nil);
{$ENDIF}
@@ -163,7 +162,7 @@ end;
{ close a file from the handle value }
procedure do_close(handle : longint);
begin
- if RemoveFromList(MOS_fileList,handle) then begin
+ if RemoveFromList(ASYS_fileList,handle) then begin
{ Do _NOT_ check CTRL_C on Close, because it will conflict
with System_Exit! }
if not dosClose(handle) then
@@ -190,7 +189,7 @@ begin
tmpStr1:=PathConv(strpas(p1))+#0;
tmpStr2:=PathConv(strpas(p2))+#0;
checkCTRLC;
- if not dosRename(@tmpStr1,@tmpStr2) then
+ if not (dosRename(@tmpStr1,@tmpStr2) <> 0) then
dosError2InOut(IoErr);
end;
@@ -199,11 +198,11 @@ var dosResult: LongInt;
begin
checkCTRLC;
do_write:=0;
- if (len<=0) or (h<=0) then exit;
+ if (len<=0) or (h=0) or (h=-1) then exit;
-{$IFDEF MOSFPC_FILEDEBUG}
+{$IFDEF ASYS_FPC_FILEDEBUG}
if not ((h=StdOutputHandle) or (h=StdInputHandle) or
- (h=StdErrorHandle)) then CheckInList(MOS_fileList,h);
+ (h=StdErrorHandle)) then CheckInList(ASYS_fileList,h);
{$ENDIF}
dosResult:=dosWrite(h,addr,len);
@@ -219,11 +218,11 @@ var dosResult: LongInt;
begin
checkCTRLC;
do_read:=0;
- if (len<=0) or (h<=0) then exit;
+ if (len<=0) or (h=0) or (h=-1) then exit;
-{$IFDEF MOSFPC_FILEDEBUG}
+{$IFDEF ASYS_FPC_FILEDEBUG}
if not ((h=StdOutputHandle) or (h=StdInputHandle) or
- (h=StdErrorHandle)) then CheckInList(MOS_fileList,h);
+ (h=StdErrorHandle)) then CheckInList(ASYS_fileList,h);
{$ENDIF}
dosResult:=dosRead(h,addr,len);
@@ -239,7 +238,7 @@ var dosResult: LongInt;
begin
checkCTRLC;
do_filepos:=-1;
- if CheckInList(MOS_fileList,handle)<>nil then begin
+ if CheckInList(ASYS_fileList,handle)<>nil then begin
{ Seeking zero from OFFSET_CURRENT to find out where we are }
dosResult:=dosSeek(handle,0,OFFSET_CURRENT);
@@ -248,19 +247,17 @@ begin
end else begin
do_filepos:=dosResult;
end;
-
end;
end;
procedure do_seek(handle, pos: longint);
begin
checkCTRLC;
- if CheckInList(MOS_fileList,handle)<>nil then begin
+ if CheckInList(ASYS_fileList,handle)<>nil then begin
{ Seeking from OFFSET_BEGINNING }
if dosSeek(handle,pos,OFFSET_BEGINNING)<0 then
dosError2InOut(IoErr);
-
end;
end;
@@ -269,32 +266,53 @@ var dosResult: LongInt;
begin
checkCTRLC;
do_seekend:=-1;
- if CheckInList(MOS_fileList,handle)<>nil then begin
+ if CheckInList(ASYS_fileList,handle)<>nil then begin
{ Seeking to OFFSET_END }
dosResult:=dosSeek(handle,0,OFFSET_END);
if dosResult<0 then begin
dosError2InOut(IoErr);
end else begin
- do_seekend:=dosResult;
+ do_seekend:=dosSeek(handle,0,OFFSET_CURRENT);
end;
-
end;
end;
+{$DEFINE ASYS_FILESIZE_NO_DOUBLE_SEEK}
+{ I changed the double-Seek filesize method which we
+ were using for 10+ years to the new ExamineFH() method.
+ It should be available AmigaOS 2.0+, and much faster.
+
+ (I actually measured several magnitudes of improvement,
+ especially on large files.)
+
+ It should be safe since there are several libc implementations
+ using the same method on all Amiga flavors, but if anyone has
+ a problem with it, disable this define to revert to the old
+ method and report the issue. (KB) }
function do_filesize(handle : longint) : longint;
-var currfilepos: longint;
+var
+{$IFDEF ASYS_FILESIZE_NO_DOUBLE_SEEK}
+ fib: PFileInfoBlock;
+{$ENDIF}
+ currfilepos: longint;
begin
checkCTRLC;
do_filesize:=-1;
- if CheckInList(MOS_fileList,handle)<>nil then begin
-
+ if CheckInList(ASYS_fileList,handle)<>nil then begin
+
+{$IFDEF ASYS_FILESIZE_NO_DOUBLE_SEEK}
+ fib:=AllocDosObject(DOS_FIB,nil);
+ if fib <> nil then begin
+ if ExamineFH(BPTR(handle), fib) then
+ do_filesize:=fib^.fib_Size;
+ FreeDosObject(DOS_FIB,fib);
+ end;
+{$ELSE}
currfilepos:=do_filepos(handle);
- { We have to do this twice, because seek returns the OLD position }
- do_filesize:=do_seekend(handle);
do_filesize:=do_seekend(handle);
do_seek(handle,currfilepos);
-
+{$ENDIF}
end;
end;
@@ -302,12 +320,11 @@ end;
procedure do_truncate(handle, pos: longint);
begin
checkCTRLC;
- if CheckInList(MOS_fileList,handle)<>nil then begin
+ if CheckInList(ASYS_fileList,handle)<>nil then begin
{ Seeking from OFFSET_BEGINNING }
if SetFileSize(handle,pos,OFFSET_BEGINNING)<0 then
dosError2InOut(IoErr);
-
end;
end;
@@ -370,9 +387,12 @@ begin
handle:=Open(@tmpStr,openflags);
if handle=0 then begin
- dosError2InOut(IoErr);
+ begin
+ dosError2InOut(IoErr);
+ FileRec(f).mode:=fmclosed;
+ end
end else begin
- AddToList(MOS_fileList,handle);
+ AddToList(ASYS_fileList,handle);
filerec(f).handle:=handle;
end;
@@ -392,4 +412,3 @@ begin
else
do_isdevice:=False;
end;
-
diff --git a/rtl/amiga/sysheap.inc b/rtl/amicommon/sysheap.inc
index 777bf8cc5a..8109194094 100644
--- a/rtl/amiga/sysheap.inc
+++ b/rtl/amicommon/sysheap.inc
@@ -14,38 +14,38 @@
**********************************************************************}
{ Enable this for memory allocation debugging }
-{DEFINE MOSFPC_MEMDEBUG}
+{DEFINE ASYS_FPC_MEMDEBUG}
{*****************************************************************************
OS Memory allocation / deallocation
****************************************************************************}
function SysOSAlloc(size: ptruint): pointer;
-{$IFDEF MOSFPC_MEMDEBUG}
+{$IFDEF ASYS_FPC_MEMDEBUG}
var values: array[0..2] of dword;
{$ENDIF}
begin
- result:=AllocPooled(AOS_heapPool,size);
-{$IFDEF MOSFPC_MEMDEBUG}
+ result:=AllocPooled(ASYS_heapPool,size);
+{$IFDEF ASYS_FPC_MEMDEBUG}
values[0]:=dword(result);
values[1]:=dword(size);
values[2]:=DWord(Sptr-StackBottom);
- RawDoFmt('FPC_MEM_DEBUG: $%lx:=SysOSAlloc(%lu), free stack: %ld bytes'+#10,@values,pointer(1),nil);
+ RawDoFmt('FPC_MEM_DEBUG: $%lx:=SysOSAlloc(%ld), free stack: %ld bytes'+#10,@values,pointer(1),nil);
{$ENDIF}
end;
{$define HAS_SYSOSFREE}
procedure SysOSFree(p: pointer; size: ptruint);
-{$IFDEF MOSFPC_MEMDEBUG}
+{$IFDEF ASYS_FPC_MEMDEBUG}
var values: array[0..2] of dword;
{$ENDIF}
begin
- FreePooled(AOS_heapPool,p,size);
-{$IFDEF MOSFPC_MEMDEBUG}
+ FreePooled(ASYS_heapPool,p,size);
+{$IFDEF ASYS_FPC_MEMDEBUG}
values[0]:=dword(p);
values[1]:=dword(size);
values[2]:=DWord(Sptr-StackBottom);
- RawDoFmt('FPC_MEM_DEBUG: SysOSFree($%lx,%lu), free stack: %ld bytes'+#10,@values,pointer(1),nil);
+ RawDoFmt('FPC_MEM_DEBUG: SysOSFree($%lx,%ld), free stack: %ld bytes'+#10,@values,pointer(1),nil);
{$ENDIF}
end;
diff --git a/rtl/amiga/sysos.inc b/rtl/amicommon/sysos.inc
index 5f57e2f002..00af49750c 100644
--- a/rtl/amiga/sysos.inc
+++ b/rtl/amicommon/sysos.inc
@@ -32,10 +32,6 @@
{$include execf.inc}
{$include doslibf.inc}
-{$IFDEF AMIGAOS4}
- // Required to allow opening of utility library interface...
- {$include utilf.inc}
-{$ENDIF}
{*****************************************************************************
diff --git a/rtl/amiga/sysosh.inc b/rtl/amicommon/sysosh.inc
index dbb22bdc87..7b4482c225 100644
--- a/rtl/amiga/sysosh.inc
+++ b/rtl/amicommon/sysosh.inc
@@ -20,14 +20,12 @@ type
{$ifdef CPU64}
THandle = Int64;
{$else CPU64}
- THandle = Longint;
+ THandle = LongInt;
{$endif CPU64}
TThreadID = THandle;
PRTLCriticalSection = ^TRTLCriticalSection;
- TRTLCriticalSection = record
- Locked: boolean
- end;
+ TRTLCriticalSection = Pointer;
diff --git a/rtl/amiga/sysutils.pp b/rtl/amicommon/sysutils.pp
index fdde4b67f2..e0e51efe84 100644
--- a/rtl/amiga/sysutils.pp
+++ b/rtl/amicommon/sysutils.pp
@@ -1,12 +1,15 @@
{
This file is part of the Free Pascal run time library.
- Copyright (c) 2004-2013 by Karoly Balogh
+ Copyright (c) 2014 by Free Pascal development team
Sysutils unit for AmigaOS & clones
Based on Amiga 1.x version by Carl Eric Codere, and other
parts of the RTL
+ AmigaOS and MorphOS support by Karoly Balogh
+ AROS support by Marcus Sackrow
+
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
@@ -39,12 +42,17 @@ interface
{ Platform dependent calls }
-Procedure AddDisk(const path:string);
+function DeviceByIdx(Idx: Integer): string;
+function AddDisk(Const Path: string): Integer;
+function RefreshDeviceList: Integer;
+function DiskSize(Drive: AnsiString): Int64;
+function DiskFree(Drive: AnsiString): Int64;
implementation
-uses dos,sysconst;
+uses
+ dos, sysconst;
{$DEFINE FPC_FEXPAND_VOLUMES} (* Full paths begin with drive specification *)
{$DEFINE FPC_FEXPAND_DRIVESEP_IS_ROOT}
@@ -54,7 +62,7 @@ uses dos,sysconst;
{$i sysutils.inc}
-{ * Include MorphOS specific includes * }
+{ * Include sytem specific includes * }
{$include execd.inc}
{$include execf.inc}
{$include timerd.inc}
@@ -70,8 +78,35 @@ function RemoveFromList(var l: Pointer; h: LongInt): boolean; external name 'REM
function CheckInList(var l: Pointer; h: LongInt): pointer; external name 'CHECKINLIST';
var
- MOS_fileList: Pointer; external name 'AOS_FILELIST';
+ ASYS_FileList: Pointer; external name 'ASYS_FILELIST';
+
+function BADDR(bval: LongInt): Pointer; Inline;
+begin
+ {$if defined(AROS) and (not defined(AROS_FLAVOUR_BINCOMPAT))}
+ BADDR := Pointer(bval);
+ {$else}
+ BADDR:=Pointer(bval Shl 2);
+ {$endif}
+end;
+
+function BSTR2STRING(s : Pointer): PChar; Inline;
+begin
+ {$if defined(AROS) and (not defined(AROS_FLAVOUR_BINCOMPAT))}
+ BSTR2STRING:=PChar(s);
+ {$else}
+ BSTR2STRING:=PChar(BADDR(PtrInt(s)))+1;
+ {$endif}
+end;
+
+function BSTR2STRING(s : LongInt): PChar; Inline;
+begin
+ {$if defined(AROS) and (not defined(AROS_FLAVOUR_BINCOMPAT))}
+ BSTR2STRING:=PChar(s);
+ {$else}
+ BSTR2STRING:=PChar(BADDR(s))+1;
+ {$endif}
+end;
function AmigaFileDateToDateTime(aDate: TDateStamp; out success: boolean): TDateTime;
var
@@ -134,7 +169,7 @@ begin
if dosResult=0 then
dosResult:=-1
else
- AddToList(MOS_fileList,dosResult);
+ AddToList(ASYS_fileList,dosResult);
FileOpen:=dosResult;
end;
@@ -150,7 +185,7 @@ begin
if (Handle <> 0) then begin
new(tmpFIB);
- if ExamineFH(Handle,tmpFIB) then begin
+ if ExamineFH(BPTR(Handle),tmpFIB) then begin
tmpDateTime:=AmigaFileDateToDateTime(tmpFIB^.fib_Date,validFile);
end;
dispose(tmpFIB);
@@ -170,7 +205,7 @@ var
begin
result:=0;
if (Handle <> 0) then begin
- if (NameFromFH(Handle, @tmpName, 256) = dosTrue) then begin
+ if NameFromFH(BPTR(Handle), @tmpName, 256) then begin
tmpDateStamp:=DateTimeToAmigaDateStamp(FileDateToDateTime(Age));
if not SetFileDate(@tmpName,@tmpDateStamp) then begin
IoErr(); // dump the error code for now (TODO)
@@ -211,7 +246,7 @@ begin
if dosResult = 0 then exit;
if SetFileSize(dosResult, 0, OFFSET_BEGINNING) = 0 then
- AddToList(MOS_fileList,dosResult)
+ AddToList(ASYS_fileList,dosResult)
else begin
dosClose(dosResult);
dosResult:=-1;
@@ -236,7 +271,7 @@ end;
function FileRead(Handle: LongInt; out Buffer; Count: LongInt): LongInt;
begin
FileRead:=-1;
- if (Count<=0) or (Handle<=0) then exit;
+ if (Count<=0) or (Handle=0) or (Handle=-1) then exit;
FileRead:=dosRead(Handle,@Buffer,Count);
end;
@@ -245,7 +280,7 @@ end;
function FileWrite(Handle: LongInt; const Buffer; Count: LongInt): LongInt;
begin
FileWrite:=-1;
- if (Count<=0) or (Handle<=0) then exit;
+ if (Count<=0) or (Handle=0) or (Handle=-1) then exit;
FileWrite:=dosWrite(Handle,@Buffer,Count);
end;
@@ -256,7 +291,7 @@ var
seekMode: LongInt;
begin
FileSeek:=-1;
- if (Handle<=0) then exit;
+ if (Handle=0) or (Handle=-1) then exit;
case Origin of
fsFromBeginning: seekMode:=OFFSET_BEGINNING;
@@ -264,7 +299,10 @@ begin
fsFromEnd : seekMode:=OFFSET_END;
end;
- FileSeek:=dosSeek(Handle, FOffset, seekMode);
+ dosSeek(Handle, FOffset, seekMode);
+ { get the current position when FileSeek ends, which should return
+ the *NEW* position, while Amiga Seek() returns the old one }
+ FileSeek:=dosSeek(Handle, 0, OFFSET_CURRENT);
end;
function FileSeek(Handle: LongInt; FOffset: Int64; Origin: Longint): Int64;
@@ -276,10 +314,10 @@ end;
procedure FileClose(Handle: LongInt);
begin
- if (Handle<=0) then exit;
+ if (Handle=0) or (Handle=-1) then exit;
dosClose(Handle);
- RemoveFromList(MOS_fileList,Handle);
+ RemoveFromList(ASYS_fileList,Handle);
end;
@@ -292,7 +330,7 @@ begin
if Size > high (longint) then exit;
{$WARNING Possible support for 64-bit FS to be checked!}
- if (Handle<=0) then exit;
+ if (Handle=0) or (Handle=-1) then exit;
dosResult:=SetFileSize(Handle, Size, OFFSET_BEGINNING);
if (dosResult<0) then exit;
@@ -316,7 +354,7 @@ var
begin
OldSystemFileName:=PathConv(ToSingleByteFileSystemEncodedFileName(OldName));
NewSystemFileName:=PathConv(ToSingleByteFileSystemEncodedFileName(NewName));
- RenameFile:=dosRename(PChar(OldSystemFileName), PChar(NewSystemFileName));
+ RenameFile:=dosRename(PChar(OldSystemFileName), PChar(NewSystemFileName)) <> 0;
end;
@@ -334,10 +372,10 @@ begin
validFile:=false;
SystemFileName := PathConv(ToSingleByteFileSystemEncodedFileName(FileName));
tmpLock := Lock(PChar(SystemFileName), SHARED_LOCK);
-
+
if (tmpLock <> 0) then begin
new(tmpFIB);
- if Examine(tmpLock,tmpFIB) then begin
+ if Examine(tmpLock,tmpFIB) <> 0 then begin
tmpDateTime:=AmigaFileDateToDateTime(tmpFIB^.fib_Date,validFile);
end;
Unlock(tmpLock);
@@ -347,7 +385,7 @@ begin
if validFile then
result:=DateTimeToFileDate(tmpDateTime)
else
- result:=-1;
+ result:=-1;
end;
@@ -363,7 +401,7 @@ begin
if (tmpLock <> 0) then begin
new(tmpFIB);
- if Examine(tmpLock,tmpFIB) and (tmpFIB^.fib_DirEntryType <= 0) then
+ if (Examine(tmpLock,tmpFIB) <> 0) and (tmpFIB^.fib_DirEntryType <= 0) then
result:=true;
Unlock(tmpLock);
dispose(tmpFIB);
@@ -488,48 +526,165 @@ end;
The Diskfree and Disksize functions need a file on the specified drive, since this
is required for the statfs system call.
These filenames are set in drivestr[0..26], and have been preset to :
- 0 - '.' (default drive - hence current dir is ok.)
- 1 - '/fd0/.' (floppy drive 1 - should be adapted to local system )
- 2 - '/fd1/.' (floppy drive 2 - should be adapted to local system )
- 3 - '/' (C: equivalent of dos is the root partition)
+ 0 - ':' (default drive - hence current dir is ok.)
+ 1 - 'DF0:' (floppy drive 1 - should be adapted to local system )
+ 2 - 'DF1:' (floppy drive 2 - should be adapted to local system )
+ 3 - 'SYS:' (C: equivalent of dos is the SYS: partition)
4..26 (can be set by you're own applications)
! Use AddDisk() to Add new drives !
They both return -1 when a failure occurs.
}
-Const
- FixDriveStr : array[0..3] of pchar=(
- '.',
- '/fd0/.',
- '/fd1/.',
- '/.'
- );
var
- Drives : byte;
- DriveStr : array[4..26] of pchar;
+ DeviceList: array[0..26] of string[20];
+ NumDevices: Integer = 0;
+
+const
+ IllegalDevices: array[0..12] of string =(
+ 'PED:',
+ 'PRJ:',
+ 'PIPE:', // Pipes
+ 'XPIPE:', // Extented Pipe
+ 'CON:', // Console
+ 'RAW:', // RAW: Console
+ 'KCON:', // KingCON Console
+ 'KRAW:', // KingCON RAW
+ 'SER:', // serial Ports
+ 'SER0:',
+ 'SER1:',
+ 'PAR:', // Parallel Porty
+ 'PRT:'); // Printer
+
+function IsIllegalDevice(DeviceName: string): Boolean;
+var
+ i: Integer;
+ Str: AnsiString;
+begin
+ IsIllegalDevice := False;
+ Str := UpperCase(DeviceName);
+ for i := Low(IllegalDevices) to High(IllegalDevices) do
+ begin
+ if Str = IllegalDevices[i] then
+ begin
+ IsIllegalDevice := True;
+ Exit;
+ end;
+ end;
+end;
-Procedure AddDisk(const path:string);
+function DeviceByIdx(Idx: Integer): string;
begin
- if not (DriveStr[Drives]=nil) then
- FreeMem(DriveStr[Drives],StrLen(DriveStr[Drives])+1);
- GetMem(DriveStr[Drives],length(Path)+1);
- StrPCopy(DriveStr[Drives],path);
- inc(Drives);
- if Drives>26 then
- Drives:=4;
+ DeviceByIdx := '';
+ if (Idx < 0) or (Idx >= NumDevices) then
+ Exit;
+ DeviceByIdx := DeviceList[Idx];
end;
+function AddDisk(const Path: string): Integer;
+begin
+ // if hit border, restart at 4
+ if NumDevices > 26 then
+ NumDevices := 4;
+ // set the device
+ DeviceList[NumDevices] := Copy(Path, 1, 20);
+ // return the Index increment for next run
+ AddDisk := NumDevices;
+ Inc(NumDevices);
+end;
+function RefreshDeviceList: Integer;
+var
+ List: PDosList;
+ Temp: PChar;
+ Str: string;
+begin
+ NumDevices := 0;
+ AddDisk(':'); // Index 0
+ AddDisk('DF0:'); // Index 1
+ AddDisk('DF1:'); // Index 2
+ AddDisk('SYS:'); // Index 3
+ // Lock the List
+ List := LockDosList(LDF_DEVICES or LDF_READ);
+ // Inspect the List
+ repeat
+ List := NextDosEntry(List, LDF_DEVICES);
+ if List <> nil then
+ begin
+ Temp := BSTR2STRING(List^.dol_Name);
+ Str := strpas(Temp) + ':';
+ if not IsIllegalDevice(str) then
+ AddDisk(Str);
+ end;
+ until List = nil;
+ RefreshDeviceList := NumDevices;
+end;
-Function DiskFree(Drive: Byte): int64;
-Begin
- DiskFree := dos.diskFree(Drive);
-End;
+// New easier DiskSize()
+//
+function DiskSize(Drive: AnsiString): Int64;
+var
+ DirLock: LongInt;
+ Inf: TInfoData;
+ MyProc: PProcess;
+ OldWinPtr: Pointer;
+begin
+ DiskSize := -1;
+ //
+ MyProc := PProcess(FindTask(Nil));
+ OldWinPtr := MyProc^.pr_WindowPtr;
+ MyProc^.pr_WindowPtr := Pointer(-1);
+ //
+ DirLock := Lock(PChar(Drive), SHARED_LOCK);
+ if DirLock <> 0 then
+ begin
+ if Info(DirLock, @Inf) <> 0 then
+ DiskSize := Int64(Inf.id_NumBlocks) * Inf.id_BytesPerBlock;
+ UnLock(DirLock);
+ end;
+ if OldWinPtr <> Pointer(-1) then
+ MyProc^.pr_WindowPtr := OldWinPtr;
+end;
+function DiskSize(Drive: Byte): Int64;
+begin
+ DiskSize := -1;
+ if (Drive < 0) or (Drive >= NumDevices) then
+ Exit;
+ DiskSize := DiskSize(DeviceList[Drive]);
+end;
-Function DiskSize(Drive: Byte): int64;
-Begin
- DiskSize := dos.DiskSize(Drive);
-End;
+// New easier DiskFree()
+//
+function DiskFree(Drive: AnsiString): Int64;
+var
+ DirLock: LongInt;
+ Inf: TInfoData;
+ MyProc: PProcess;
+ OldWinPtr: Pointer;
+begin
+ DiskFree := -1;
+ //
+ MyProc := PProcess(FindTask(Nil));
+ OldWinPtr := MyProc^.pr_WindowPtr;
+ MyProc^.pr_WindowPtr := Pointer(-1);
+ //
+ DirLock := Lock(PChar(Drive), SHARED_LOCK);
+ if DirLock <> 0 then
+ begin
+ if Info(DirLock, @Inf) <> 0 then
+ DiskFree := Int64(Inf.id_NumBlocks - Inf.id_NumBlocksUsed) * Inf.id_BytesPerBlock;
+ UnLock(DirLock);
+ end;
+ if OldWinPtr <> Pointer(-1) then
+ MyProc^.pr_WindowPtr := OldWinPtr;
+end;
+
+function DiskFree(Drive: Byte): Int64;
+begin
+ DiskFree := -1;
+ if (Drive < 0) or (Drive >= NumDevices) then
+ Exit;
+ DiskFree := DiskSize(DeviceList[Drive]);
+end;
function DirectoryExists(const Directory: RawByteString): Boolean;
var
@@ -546,7 +701,7 @@ begin
FIB:=nil; new(FIB);
- if (Examine(tmpLock,FIB)=True) and (FIB^.fib_DirEntryType>0) then
+ if (Examine(tmpLock,FIB) <> 0) and (FIB^.fib_DirEntryType>0) then
result:=True;
if tmpLock<>0 then Unlock(tmpLock);
@@ -562,8 +717,10 @@ end;
Procedure GetLocalTime(var SystemTime: TSystemTime);
var
dayOfWeek: word;
+ Sec100: Word;
begin
- dos.GetTime(SystemTime.Hour, SystemTime.Minute, SystemTime.Second,SystemTime.Millisecond);
+ dos.GetTime(SystemTime.Hour, SystemTime.Minute, SystemTime.Second, Sec100);
+ SystemTime.Millisecond := Sec100 * 10;
dos.GetDate(SystemTime.Year, SystemTime.Month, SystemTime.Day, DayOfWeek);
end;
@@ -615,28 +772,30 @@ end;
var
StrOfPaths: String;
+function SystemTags(const command: PChar; const tags: array of DWord): LongInt;
+begin
+ SystemTags:=SystemTagList(command,@tags);
+end;
+
function GetPathString: String;
var
f : text;
s : string;
- tmpBat: string;
- tmpList: string;
begin
s := '';
result := '';
- tmpBat:='T:'+HexStr(FindTask(nil));
- tmpList:=tmpBat+'_path.tmp';
- tmpBat:=tmpBat+'_path.sh';
-
- assign(f,tmpBat);
+ { Alternatively, this could use PIPE: handler on systems which
+ have this by default (not the case on classic Amiga), but then
+ the child process should be started async, which for a simple
+ Path command probably isn't worth the trouble. (KB) }
+ assign(f,'T:'+HexStr(FindTask(nil))+'_path.tmp');
rewrite(f);
- writeln(f,'path >'+tmpList);
+ { This is a pretty ugly stunt, combining Pascal and Amiga system
+ functions, but works... }
+ SystemTags('C:Path',[SYS_Input, 0, SYS_Output, TextRec(f).Handle, TAG_END]);
close(f);
- exec('C:Execute',tmpBat);
- erase(f);
- assign(f,tmpList);
reset(f);
{ skip the first line, garbage }
if not eof(f) then readln(f,s);
@@ -644,7 +803,7 @@ begin
readln(f,s);
if result = '' then
result := s
- else
+ else
result := result + ';' + s;
end;
close(f);
@@ -753,7 +912,8 @@ Initialization
OnBeep:=Nil; { No SysBeep() on Amiga, for now. Figure out if we want
to use intuition.library/DisplayBeep() for this (KB) }
StrOfPaths:='';
-
+
+ RefreshDeviceList;
Finalization
DoneExceptions;
end.
diff --git a/rtl/amiga/Makefile b/rtl/amiga/Makefile
index 92f323a4b9..d07c104d6d 100644
--- a/rtl/amiga/Makefile
+++ b/rtl/amiga/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -333,13 +333,13 @@ RTL=..
INC=$(RTL)/inc
COMMON=$(RTL)/common
PROCINC=$(RTL)/$(CPU_TARGET)
+AMIINC=$(RTL)/amicommon
UNITPREFIX=rtl
SYSTEMUNIT=system
ifdef RELEASE
override FPCOPT+=-Ur
endif
OBJPASDIR=$(RTL)/objpas
-GRAPHDIR=$(INC)/graph
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst
endif
@@ -409,6 +409,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst
endif
@@ -496,6 +499,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst
endif
@@ -634,6 +640,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -721,6 +730,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -859,6 +871,9 @@ 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
@@ -946,6 +961,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1084,6 +1102,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
@@ -1171,6 +1192,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
@@ -1242,454 +1266,466 @@ 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)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-android)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-android)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),mips-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),mipsel-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),jvm-java)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),jvm-android)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-android)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-android)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),mips-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),mipsel-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),jvm-java)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),jvm-android)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1933,6 +1969,12 @@ 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=
@@ -1978,6 +2020,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2442,7 +2489,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2898,10 +2945,10 @@ dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
$(SYSTEMUNIT)$(PPUEXT)
sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
objpas$(PPUEXT) dos$(PPUEXT) sysconst$(PPUEXT)
- $(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
+ $(COMPILER) -Fi$(OBJPASDIR)/sysutils $(AMIINC)/sysutils.pp
classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) types$(PPUEXT) fgl$(PPUEXT)
- $(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
+ $(COMPILER) -Fi$(OBJPASDIR)/classes $(AMIINC)/classes.pp
typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp $(REDIR)
math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
diff --git a/rtl/amiga/Makefile.fpc b/rtl/amiga/Makefile.fpc
index ed58ad977a..01ffb737cc 100644
--- a/rtl/amiga/Makefile.fpc
+++ b/rtl/amiga/Makefile.fpc
@@ -34,8 +34,8 @@ target=amiga
cpu=powerpc
[compiler]
-includedir=$(INC) $(PROCINC) $(CPU_TARGET)
-sourcedir=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+includedir=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+sourcedir=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
[prerules]
@@ -43,6 +43,7 @@ RTL=..
INC=$(RTL)/inc
COMMON=$(RTL)/common
PROCINC=$(RTL)/$(CPU_TARGET)
+AMIINC=$(RTL)/amicommon
UNITPREFIX=rtl
SYSTEMUNIT=system
@@ -55,7 +56,6 @@ endif
# Paths
OBJPASDIR=$(RTL)/objpas
-GRAPHDIR=$(INC)/graph
[rules]
.NOTPARALLEL:
@@ -126,11 +126,11 @@ dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
objpas$(PPUEXT) dos$(PPUEXT) sysconst$(PPUEXT)
- $(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
+ $(COMPILER) -Fi$(OBJPASDIR)/sysutils $(AMIINC)/sysutils.pp
classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) types$(PPUEXT) fgl$(PPUEXT)
- $(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
+ $(COMPILER) -Fi$(OBJPASDIR)/classes $(AMIINC)/classes.pp
typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp $(REDIR)
diff --git a/rtl/amiga/m68k/doslibf.inc b/rtl/amiga/m68k/doslibf.inc
index 4500edad20..9603b539b8 100644
--- a/rtl/amiga/m68k/doslibf.inc
+++ b/rtl/amiga/m68k/doslibf.inc
@@ -1,11 +1,8 @@
{
This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 Free Pascal development team
- dos functions (V50) for MorphOS/PowerPC
- Copyright (c) 2002 The MorphOS Development Team, All Rights Reserved.
-
- Free Pascal conversion
- Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
+ dos functions (V40) for Amiga/68k
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
@@ -23,7 +20,7 @@ function Open(fname : PChar location 'd1';
accessMode: LongInt location 'd2'): LongInt;
SysCall AOS_DOSBase 30;
-function dosClose(fileh: LongInt location 'd1'): Boolean;
+function dosClose(fileh: LongInt location 'd1'): LongBool;
SysCall AOS_DOSBase 36;
function dosRead(fileh : LongInt location 'd1';
@@ -47,11 +44,11 @@ function dosSeek(fileh : LongInt location 'd1';
posmode : LongInt location 'd3'): LongInt;
SysCall AOS_DOSBase 66;
-function dosDeleteFile(fname: PChar location 'd1'): Boolean;
+function dosDeleteFile(fname: PChar location 'd1'): LongBool;
SysCall AOS_DOSBase 72;
function dosRename(oldName: PChar location 'd1';
- newName: PChar location 'd2'): Boolean;
+ newName: PChar location 'd2'): LongInt;
SysCall AOS_DOSBase 78;
function Lock(lname : PChar location 'd1';
@@ -65,7 +62,7 @@ function DupLock(lock: LongInt location 'd1'): LongInt;
SysCall AOS_DOSBase 096;
function Examine(lock : LongInt location 'd1';
- fileInfoBlock: PFileInfoBlock location 'd2'): Boolean;
+ fileInfoBlock: PFileInfoBlock location 'd2'): LongInt;
SysCall AOS_DOSBase 102;
function ExNext(lock : LongInt location 'd1';
@@ -73,7 +70,7 @@ function ExNext(lock : LongInt location 'd1';
SysCall AOS_DOSBase 108;
function Info(lock : LongInt location 'd1';
- parameterBlock: PInfoData location 'd2'): Boolean;
+ parameterBlock: PInfoData location 'd2'): LongInt;
SysCall AOS_DOSBase 114;
function dosCreateDir(dname: PChar location 'd1'): LongInt;
@@ -104,11 +101,11 @@ function DeviceProc(name: PChar location 'd1'): PMsgPort;
SysCall AOS_DOSBase 174;
function SetComment(name : PChar location 'd1';
- comment: PChar location 'd2'): Boolean;
+ comment: PChar location 'd2'): LongBool;
SysCall AOS_DOSBase 180;
function SetProtection(name: PChar location 'd1';
- mask: LongInt location 'd2'): Boolean;
+ mask: LongInt location 'd2'): LongInt;
SysCall AOS_DOSBase 186;
function DateStamp(date: PDateStamp location 'd1'): PDateStamp;
@@ -118,18 +115,18 @@ procedure Delay(timeout: LongInt location 'd1');
SysCall AOS_DOSBase 198;
function WaitForChar(file1 : LongInt location 'd1';
- timeout: LongInt location 'd2'): Boolean;
+ timeout: LongInt location 'd2'): LongBool;
SysCall AOS_DOSBase 204;
function ParentDir(lock: LongInt location 'd1'): LongInt;
SysCall AOS_DOSBase 210;
-function IsInteractive(file1: LongInt location 'd1'): Boolean;
+function IsInteractive(file1: LongInt location 'd1'): LongBool;
SysCall AOS_DOSBase 216;
function Execute(string1: PChar location 'd1';
file1 : LongInt location 'd2';
- file2 : LongInt location 'd3'): Boolean;
+ file2 : LongInt location 'd3'): LongBool;
SysCall AOS_DOSBase 222;
function AllocDosObject(type1: Cardinal location 'd1';
@@ -204,19 +201,19 @@ function LockRecord(fh : LongInt location 'd1';
offset : Cardinal location 'd2';
length : Cardinal location 'd3';
mode : Cardinal location 'd4';
- timeout: Cardinal location 'd5'): Boolean;
+ timeout: Cardinal location 'd5'): LongBool;
SysCall AOS_DOSBase 270;
function LockRecords(recArray: PRecordLock location 'd1';
- timeout : Cardinal location 'd2'): Boolean;
+ timeout : Cardinal location 'd2'): LongBool;
SysCall AOS_DOSBase 276;
function UnLockRecord(fh : LongInt location 'd1';
offset: Cardinal location 'd2';
- length: Cardinal location 'd3'): Boolean;
+ length: Cardinal location 'd3'): LongBool;
SysCall AOS_DOSBase 282;
-function UnLockRecords(recArray: PRecordLock location 'd1'): Boolean;
+function UnLockRecords(recArray: PRecordLock location 'd1'): LongBool;
SysCall AOS_DOSBase 288;
function SelectInput(fh: LongInt location 'd1'): LongInt;
@@ -285,22 +282,22 @@ SysCall AOS_DOSBase 378;
function ParentOfFH(fh: LongInt location 'd1'): LongInt;
SysCall AOS_DOSBase 384;
-function ExamineFH(fh : LongInt location 'd1';
- fib: PFileInfoBlock location 'd2'): Boolean;
+function ExamineFH(fh : BPTR location 'd1';
+ fib: PFileInfoBlock location 'd2'): LongBool;
SysCall AOS_DOSBase 390;
function SetFileDate(name: PChar location 'd1';
- date: PDateStamp location 'd2'): Boolean;
+ date: PDateStamp location 'd2'): LongBool;
SysCall AOS_DOSBase 396;
function NameFromLock(lock : LongInt location 'd1';
buffer: PChar location 'd2';
- len : LongInt location 'd3'): Boolean;
+ len : LongInt location 'd3'): LongBool;
SysCall AOS_DOSBase 402;
-function NameFromFH(fh : LongInt location 'd1';
+function NameFromFH(fh : BPTR location 'd1';
buffer: PChar location 'd2';
- len : LongInt location 'd3'): LongInt;
+ len : LongInt location 'd3'): LongBool;
SysCall AOS_DOSBase 408;
function SplitName(name : PChar location 'd1';
@@ -322,24 +319,24 @@ function ExAll(lock : LongInt location 'd1';
buffer : PExAllData location 'd2';
size : LongInt location 'd3';
data : LongInt location 'd4';
- control: PExAllControl location 'd5'): Boolean;
+ control: PExAllControl location 'd5'): LongBool;
SysCall AOS_DOSBase 432;
function ReadLink(port : PMsgPort location 'd1';
lock : LongInt location 'd2';
path : PChar location 'd3';
buffer: PChar location 'd4';
- size : Cardinal location 'd5'): Boolean;
+ size : Cardinal location 'd5'): LongBool;
SysCall AOS_DOSBase 438;
function MakeLink(name: PChar location 'd1';
dest: LongInt location 'd2';
- soft: LongInt location 'd3'): Boolean;
+ soft: LongInt location 'd3'): LongBool;
SysCall AOS_DOSBase 444;
function ChangeMode(type1 : LongInt location 'd1';
fh : LongInt location 'd2';
- newmode: LongInt location 'd3'): Boolean;
+ newmode: LongInt location 'd3'): LongBool;
SysCall AOS_DOSBase 450;
function SetFileSize(fh : LongInt location 'd1';
@@ -353,17 +350,17 @@ SysCall AOS_DOSBase 462;
function Fault(code : LongInt location 'd1';
header: PChar location 'd2';
buffer: PChar location 'd3';
- len : LongInt location 'd4'): Boolean;
+ len : LongInt location 'd4'): LongBool;
SysCall AOS_DOSBase 468;
function PrintFault(code : LongInt location 'd1';
- header: PChar location 'd2'): Boolean;
+ header: PChar location 'd2'): LongBool;
SysCall AOS_DOSBase 474;
function ErrorReport(code : LongInt location 'd1';
type1 : LongInt location 'd2';
arg1 : Cardinal location 'd3';
- device: PMsgPort location 'd4'): Boolean;
+ device: PMsgPort location 'd4'): LongBool;
SysCall AOS_DOSBase 480;
function Cli: PCommandLineInterface;
@@ -396,7 +393,7 @@ SysCall AOS_DOSBase 528;
function GetArgStr: PChar;
SysCall AOS_DOSBase 534;
-function SetArgStr(str: PChar location 'd1'): Boolean;
+function SetArgStr(str: PChar location 'd1'): LongBool;
SysCall AOS_DOSBase 540;
function FindCliProc(num: Cardinal location 'd1'): PProcess;
@@ -405,25 +402,25 @@ SysCall AOS_DOSBase 546;
function MaxCli: Cardinal;
SysCall AOS_DOSBase 552;
-function SetCurrentDirName(name: PChar location 'd1'): Boolean;
+function SetCurrentDirName(name: PChar location 'd1'): LongBool;
SysCall AOS_DOSBase 558;
function GetCurrentDirName(buf: PChar location 'd1';
- len: LongInt location 'd2'): Boolean;
+ len: LongInt location 'd2'): LongBool;
SysCall AOS_DOSBase 564;
-function SetProgramName(name: PChar location 'd1'): Boolean;
+function SetProgramName(name: PChar location 'd1'): LongBool;
SysCall AOS_DOSBase 570;
function GetProgramName(buf: PChar location 'd1';
- len: LongInt location 'd2'): Boolean;
+ len: LongInt location 'd2'): LongBool;
SysCall AOS_DOSBase 576;
-function SetPrompt(name: PChar location 'd1'): Boolean;
+function SetPrompt(name: PChar location 'd1'): LongBool;
SysCall AOS_DOSBase 582;
function GetPrompt(buf: PChar location 'd1';
- len: LongInt location 'd2'): Boolean;
+ len: LongInt location 'd2'): LongBool;
SysCall AOS_DOSBase 588;
function SetProgramDir(lock: LongInt location 'd1'): LongInt;
@@ -441,23 +438,23 @@ function dosSystem(command: PChar location 'd1';
SysCall AOS_DOSBase 606;
function AssignLock(name: PChar location 'd1';
- lock: LongInt location 'd2'): Boolean;
+ lock: LongInt location 'd2'): LongBool;
SysCall AOS_DOSBase 612;
function AssignLate(name: PChar location 'd1';
- path: PChar location 'd2'): Boolean;
+ path: PChar location 'd2'): LongBool;
SysCall AOS_DOSBase 618;
function AssignPath(name: PChar location 'd1';
- path: PChar location 'd2'): Boolean;
+ path: PChar location 'd2'): LongBool;
SysCall AOS_DOSBase 624;
function AssignAdd(name: PChar location 'd1';
- lock: LongInt location 'd2'): Boolean;
+ lock: LongInt location 'd2'): LongBool;
SysCall AOS_DOSBase 630;
function RemAssignList(name: PChar location 'd1';
- lock: LongInt location 'd2'): Boolean;
+ lock: LongInt location 'd2'): LongBool;
SysCall AOS_DOSBase 636;
function GetDeviceProc(name: PChar location 'd1';
@@ -476,7 +473,7 @@ SysCall AOS_DOSBase 660;
function AttemptLockDosList(flags: Cardinal location 'd1'): PDosList;
SysCall AOS_DOSBase 666;
-function RemDosEntry(dlist: PDosList location 'd1'): Boolean;
+function RemDosEntry(dlist: PDosList location 'd1'): LongBool;
SysCall AOS_DOSBase 672;
function AddDosEntry(dlist: PDosList location 'd1'): LongInt;
@@ -498,34 +495,34 @@ SysCall AOS_DOSBase 696;
procedure FreeDosEntry(dlist: PDosList location 'd1');
SysCall AOS_DOSBase 702;
-function IsFileSystem(name: PChar location 'd1'): Boolean;
+function IsFileSystem(name: PChar location 'd1'): LongBool;
SysCall AOS_DOSBase 708;
function Format(filesystem: PChar location 'd1';
volumename: PChar location 'd2';
- dostype : Cardinal location 'd3'): Boolean;
+ dostype : Cardinal location 'd3'): LongBool;
SysCall AOS_DOSBase 714;
function Relabel(drive : PChar location 'd1';
- newname: PChar location 'd2'): Boolean;
+ newname: PChar location 'd2'): LongBool;
SysCall AOS_DOSBase 720;
function Inhibit(name : PChar location 'd1';
- onoff: LongInt location 'd2'): Boolean;
+ onoff: LongInt location 'd2'): LongBool;
SysCall AOS_DOSBase 726;
function AddBuffers(name : PChar location 'd1';
- number: LongInt location 'd2'): Boolean;
+ number: LongInt location 'd2'): LongBool;
SysCall AOS_DOSBase 732;
function CompareDates(date1: PDateStamp location 'd1';
date2: PDateStamp location 'd2'): LongInt;
SysCall AOS_DOSBase 738;
-function DateToStr(datetime: _PDateTime location 'd1'): Boolean;
+function DateToStr(datetime: _PDateTime location 'd1'): LongBool;
SysCall AOS_DOSBase 744;
-function StrToDate(datetime: _PDateTime location 'd1'): Boolean;
+function StrToDate(datetime: _PDateTime location 'd1'): LongBool;
SysCall AOS_DOSBase 750;
function InternalLoadSeg(fh : LongInt location 'd0';
@@ -544,7 +541,7 @@ SysCall AOS_DOSBase 768;
function AddSegment(name : PChar location 'd1';
seg : LongInt location 'd2';
- system: LongInt location 'd3'): Boolean;
+ system: LongInt location 'd3'): LongBool;
SysCall AOS_DOSBase 774;
function FindSegment(name : PChar location 'd1';
@@ -552,7 +549,7 @@ function FindSegment(name : PChar location 'd1';
system: LongInt location 'd3'): PSegment;
SysCall AOS_DOSBase 780;
-function RemSegment(seg: PSegment location 'd1'): Boolean;
+function RemSegment(seg: PSegment location 'd1'): LongBool;
SysCall AOS_DOSBase 786;
function CheckSignal(mask: LongInt location 'd1'): LongInt;
@@ -592,7 +589,7 @@ function ParsePattern(pat : PChar location 'd1';
SysCall AOS_DOSBase 840;
function MatchPattern(pat: PChar location 'd1';
- str: PChar location 'd2'): Boolean;
+ str: PChar location 'd2'): LongBool;
SysCall AOS_DOSBase 846;
procedure FreeArgs(args: pRDArgs location 'd1');
@@ -606,10 +603,10 @@ SysCall AOS_DOSBase 876;
function AddPart(dirname: PChar location 'd1';
filename: PChar location 'd2';
- size : Cardinal location 'd3'): Boolean;
+ size : Cardinal location 'd3'): LongBool;
SysCall AOS_DOSBase 882;
-function StartNotify(notify: PNotifyRequest location 'd1'): Boolean;
+function StartNotify(notify: PNotifyRequest location 'd1'): LongBool;
SysCall AOS_DOSBase 888;
procedure EndNotify(notify: PNotifyRequest location 'd1');
@@ -618,7 +615,7 @@ SysCall AOS_DOSBase 894;
function SetVar(name : PChar location 'd1';
buffer: PChar location 'd2';
size : LongInt location 'd3';
- flags : LongInt location 'd4'): Boolean;
+ flags : LongInt location 'd4'): LongBool;
SysCall AOS_DOSBase 900;
function GetVar(name : PChar location 'd1';
@@ -628,7 +625,7 @@ function GetVar(name : PChar location 'd1';
SysCall AOS_DOSBase 906;
function DeleteVar(name : PChar location 'd1';
- flags: Cardinal location 'd2'): Boolean;
+ flags: Cardinal location 'd2'): LongBool;
SysCall AOS_DOSBase 912;
function FindVar(name : PChar location 'd1';
@@ -658,11 +655,11 @@ function ParsePatternNoCase(pat : PChar location 'd1';
SysCall AOS_DOSBase 966;
function MatchPatternNoCase(pat: PChar location 'd1';
- str: PChar location 'd2'): Boolean;
+ str: PChar location 'd2'): LongBool;
SysCall AOS_DOSBase 972;
function SameDevice(lock1: LongInt location 'd1';
- lock2: LongInt location 'd2'): Boolean;
+ lock2: LongInt location 'd2'): LongBool;
SysCall AOS_DOSBase 984;
procedure ExAllEnd(lock : LongInt location 'd1';
@@ -673,7 +670,7 @@ procedure ExAllEnd(lock : LongInt location 'd1';
SysCall AOS_DOSBase 990;
function SetOwner(name : PChar location 'd1';
- owner_info: LongInt location 'd2'): Boolean;
+ owner_info: LongInt location 'd2'): LongBool;
SysCall AOS_DOSBase 996;
function AddSegmentTagList(tags: PTagItem location 'a0'): LongInt;
diff --git a/rtl/amiga/m68k/execf.inc b/rtl/amiga/m68k/execf.inc
index bbb1f2e261..e34f21700e 100644
--- a/rtl/amiga/m68k/execf.inc
+++ b/rtl/amiga/m68k/execf.inc
@@ -1,8 +1,8 @@
{
This file is part of the Free Pascal run time library.
- Copyright (c) 2006 Karoly Balogh
+ Copyright (c) 2014 Free Pascal Development team
- exec functions (V40) for Amiga/PowerPC
+ exec functions (V40) for Amiga/m68k
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
@@ -414,20 +414,6 @@ SysCall AOS_ExecBase 726;
procedure StackSwap(newStack: PStackSwapStruct location 'a0');
SysCall AOS_ExecBase 732;
-function NewGetTaskAttrsA(Task : PTask location 'a0';
- Data : Pointer location 'a1';
- DataSize: Cardinal location 'd0';
- TType : Cardinal location 'd1';
- Tags : PTagItem location 'a2'): Cardinal;
-SysCall AOS_ExecBase 738;
-
-function NewSetTaskAttrsA(Task : PTask location 'a0';
- Data : Pointer location 'a1';
- DataSize: Cardinal location 'd0';
- TType : Cardinal location 'd1';
- Tags : PTagItem location 'a2'): Cardinal;
-SysCall AOS_ExecBase 744;
-
function CachePreDMA(address : Pointer location 'a0';
var length: Cardinal location 'a1';
flags : Cardinal location 'd0'): Pointer;
@@ -447,91 +433,4 @@ SysCall AOS_ExecBase 780;
function ObtainQuickVector(interruptCode: Pointer location 'a0'): Cardinal;
SysCall AOS_ExecBase 786;
-function NewSetFunction(libHandle : PLibrary location 'a0';
- newfunction: Pointer location 'a1';
- offset : LongInt location 'd0';
- tags : PTagItem location 'a2'): Pointer;
-SysCall AOS_ExecBase 792;
-
-function NewCreateLibrary(tags: PTagItem location 'a0'): PLibrary;
-SysCall AOS_ExecBase 798;
-
-function TaggedOpenLibrary(d0arg: LongInt location 'd0'): Pointer;
-SysCall AOS_ExecBase 810;
-
-function ReadGayle: Cardinal;
-SysCall AOS_ExecBase 816;
-
-procedure CacheFlushDataArea(Address: Pointer location 'a0';
- Size : Cardinal location 'd0');
-SysCall AOS_ExecBase 828;
-
-procedure CacheInvalidInstArea(Address: Pointer location 'a0';
- Size : Cardinal location 'd0');
-SysCall AOS_ExecBase 834;
-
-procedure CacheInvalidDataArea(Address: Pointer location 'a0';
- Size : Cardinal location 'd0');
-SysCall AOS_ExecBase 840;
-
-procedure CacheFlushDataInstArea(Address: Pointer location 'a0';
- Size : Cardinal location 'd0');
-SysCall AOS_ExecBase 846;
-
-procedure CacheTrashCacheArea(Address: Pointer location 'a0';
- Size : Cardinal location 'd0');
-SysCall AOS_ExecBase 852;
-
-function AllocTaskPooled(Size: Cardinal location 'd0'): Pointer;
-SysCall AOS_ExecBase 858;
-
-procedure FreeTaskPooled(Address: Pointer location 'a1';
- Size : Cardinal location 'd0');
-SysCall AOS_ExecBase 864;
-
-function AllocVecTaskPooled(Size: Cardinal location 'd0'): Pointer;
-SysCall AOS_ExecBase 870;
-
-procedure FreeVecTaskPooled(Address: Pointer location 'a1');
-SysCall AOS_ExecBase 876;
-
-procedure FlushPool(poolHeader: Pointer location 'a0');
-SysCall AOS_ExecBase 882;
-
-procedure FlushTaskPool;
-SysCall AOS_ExecBase 888;
-
-function AllocVecPooled(poolHeader: Pointer location 'a0';
- memSize : Cardinal location 'd0'): Pointer;
-SysCall AOS_ExecBase 894;
-
-function NewGetSystemAttrsA(Data : Pointer location 'a0';
- DataSize: Cardinal location 'd0';
- TType : Cardinal location 'd1';
- Tags : PTagItem location 'a1'): Cardinal;
-SysCall AOS_ExecBase 906;
-
-function NewSetSystemAttrsA(Data : Pointer location 'a0';
- DataSize: Cardinal location 'd0';
- TType : Cardinal location 'd1';
- Tags : PTagItem location 'a1'): Cardinal;
-SysCall AOS_ExecBase 912;
-
-function NewCreateTaskA(Tags: PTagItem location 'a0'): PTask;
-SysCall AOS_ExecBase 918;
-
-
-function FindExecNode(ttype: Cardinal location 'd0';
- name : PChar location 'a0'): PNode;
-SysCall AOS_ExecBase 960;
-
-function AddExecNodeA(innode : Pointer location 'a0';
- TagItems: PTagItem location 'a1'): Pointer;
-SysCall AOS_ExecBase 966;
-
-function AllocVecDMA(byteSize : Cardinal location 'd0';
- requirements: Cardinal location 'd1'): Pointer;
-SysCall AOS_ExecBase 972;
-
-procedure FreeVecDMA(memoryBlock: Pointer location 'a1');
-SysCall AOS_ExecBase 978;
+{ TODO: v45 functions (OS3.9) }
diff --git a/rtl/amiga/m68k/prt0.as b/rtl/amiga/m68k/prt0.as
index 234b4b0039..60e0783560 100644
--- a/rtl/amiga/m68k/prt0.as
+++ b/rtl/amiga/m68k/prt0.as
@@ -1,6 +1,6 @@
|
| This file is part of the Free Pascal run time library.
-| Copyright (c) 2005 by Karoly Balogh
+| Copyright (c) 2005-2014 by Karoly Balogh
|
| Startup code for Amiga/m68k RTL
|
@@ -24,35 +24,63 @@ __EXESTART:
_start:
start:
movem.l d0-d7/a0-a6,-(sp)
-
+
| Get ExecBase
move.l 0x4,a6
move.l a6,_ExecBase
-
+
+ | Get current stacksize
+ move #0,a1 | nil
+ jsr -294(a6) | FindTask()
+ move.l d0,a0
+ move.l 62(a0),d1 | SPUpper
+ sub.l 58(a0),d1 | SPLower
+
+ | Check if we need a new stack
+ | Only allocate a new stack if the system-provided
+ | stack is smaller than the one set compile time
+ move.l __stklen,d0 | Also an argument for AllocVec() below
+ cmp.l d0,d1
+ blt _allocStack
+
+ move.l d1,__stklen | Store the new stack size
+ moveq.l #0,d0
+ move.l d0,stackArea | Clear the stackArea pointer for exit test
+ move.l sp,stackPtr | Store the stackPointer for restoration
+ bra _noAllocStack
+
+_allocStack:
| Allocating new stack
- move.l __stklen,d0
moveq.l #0,d1 | MEMF_ANY
jsr -684(a6) | AllocVec()
tst.l d0
- beq __exit
+ beq __exit
move.l d0,stackArea
| Setting up StackSwap structure, and do the StackSwap
- lea.l stackSwap,a0
+ lea stackSwap,a0
move.l d0,(a0) | Bottom of the stack
add.l __stklen,d0
move.l d0,4(a0) | Top of the stack
move.l d0,8(a0) | Initial stackpointer
jsr -732(a6) | StackSwap()
+_noAllocStack:
jsr PASCALMAIN
.globl _haltproc
_haltproc:
+ | Check if we need to release a stack
+ tst.l stackArea
+ bne _freeStack
+ move.l stackPtr,sp
+ bra __exit
+
+_freeStack:
| Swapping the stack back
move.l _ExecBase,a6
- lea.l stackSwap,a0
+ lea stackSwap,a0
jsr -732(a6) | StackSwap()
| Freeing up stack area
@@ -64,23 +92,26 @@ __exit:
move.l operatingsystem_result,d0
rts
- .data
+ .bss
.globl _ExecBase
.globl SysBase
- .align 4
+ .balign 4
SysBase:
_ExecBase:
- .long 0
+ .skip 4
.globl stackArea
- .align 4
+ .balign 4
stackArea:
- .long 0
+ .skip 4
+
+ .globl stackPtr
+ .balign 4
+stackPtr:
+ .skip 4
.globl stackSwap
- .align 4
+ .balign 4
stackSwap:
- .long 0
- .long 0
- .long 0
+ .skip 12
diff --git a/rtl/amiga/m68k/utilf.inc b/rtl/amiga/m68k/utilf.inc
index a8e05c060c..c22fbebdc9 100644
--- a/rtl/amiga/m68k/utilf.inc
+++ b/rtl/amiga/m68k/utilf.inc
@@ -55,7 +55,7 @@ procedure RefreshTagItemClones(clone : PTagItem location 'a0';
SysCall AOS_UtilityBase 084;
function TagInArray(tagValue : Cardinal location 'd0';
- var tagArray: Cardinal location 'a0'): Boolean;
+ var tagArray: Cardinal location 'a0'): LongBool;
SysCall AOS_UtilityBase 090;
function FilterTagItems(tagList : PTagItem location 'a0';
@@ -132,7 +132,7 @@ function UnpackStructureTags(pack : Pointer location 'a0';
SysCall AOS_UtilityBase 216;
function AddNamedObject(nameSpace: PNamedObject location 'a0';
- nobject : PNamedObject location 'a1'): Boolean;
+ nobject : PNamedObject location 'a1'): LongBool;
SysCall AOS_UtilityBase 222;
function AllocNamedObjectA(name : PChar location 'a0';
diff --git a/rtl/amiga/powerpc/doslibf.inc b/rtl/amiga/powerpc/doslibf.inc
index 9b1c766ef6..acea7e7a09 100644
--- a/rtl/amiga/powerpc/doslibf.inc
+++ b/rtl/amiga/powerpc/doslibf.inc
@@ -14,29 +14,29 @@
**********************************************************************}
function Open(name: PChar; accessMode: longint): longint; syscall IDOS 76;
-function dosClose(_file: longint): boolean; syscall IDOS 80;
+function dosClose(_file: longint): LongBool; syscall IDOS 80;
function dosRead(_file: longint; buffer: Pointer; length: longint): longint; syscall IDOS 84;
function dosWrite(_file: longint; buffer: Pointer; length: longint): longint; syscall IDOS 88;
function dosInput: longint; syscall IDOS 92;
function dosOutput: longint; syscall IDOS 96;
function dosSeek(_file: longint;position: longint;offset: longint): longint; syscall IDOS 100;
-function dosDeleteFile(name: PChar): boolean; syscall IDOS 104;
-function dosRename(oldName: PChar;newName: PChar): boolean; syscall IDOS 108;
+function dosDeleteFile(name: PChar): LongBool; syscall IDOS 104;
+function dosRename(oldName: PChar;newName: PChar): LongBool; syscall IDOS 108;
function Lock(name: PChar;_type: longint): longint; syscall IDOS 112;
procedure UnLock(lock: longint); syscall IDOS 116;
-function Examine(lock: longint; fileInfoBlock: PFileInfoBlock): boolean; syscall IDOS 124;
+function Examine(lock: longint; fileInfoBlock: PFileInfoBlock): LongBool; syscall IDOS 124;
-function Info(lock: longint; parameterBlock: PInfoData): boolean; syscall IDOS 132;
+function Info(lock: longint; parameterBlock: PInfoData): LongBool; syscall IDOS 132;
function dosCreateDir(name: PChar): longint; syscall IDOS 136;
function CurrentDir(lock: longint): longint; syscall IDOS 140;
function IoErr: longint; syscall IDOS 144;
-function SetProtection(name: PChar; protect: longword): boolean; syscall IDOS 180;
+function SetProtection(name: PChar; protect: longword): LongBool; syscall IDOS 180;
function DateStamp(date: PDateStamp): PDateStamp; syscall IDOS 184;
-function SetFileDate(name: PChar; date: PDateStamp): boolean; syscall IDOS 356;
-function NameFromLock(lock: longint; buffer: PChar; len: longint): boolean; syscall IDOS 360;
+function SetFileDate(name: PChar; date: PDateStamp): LongBool; syscall IDOS 356;
+function NameFromLock(lock: longint; buffer: PChar; len: longint): LongBool; syscall IDOS 360;
function NameFromFH(fh: longint; buffer: PChar; len: longint): longint; syscall IDOS 364;
function SetFileSize(fh: longint; pos: longint; mode: longint): longint; syscall IDOS 396;
@@ -44,9 +44,9 @@ function SetFileSize(fh: longint; pos: longint; mode: longint): longint; syscall
function GetArgStr: PChar; syscall IDOS 456;
function SetArgStr(_string: PChar): PChar; syscall IDOS 460;
-function GetCurrentDirName(buf: PChar; len: longint): boolean; syscall IDOS 476;
+function GetCurrentDirName(buf: PChar; len: longint): LongBool; syscall IDOS 476;
-function GetProgramName(buf: PChar; len: longint): boolean; syscall IDOS 484;
+function GetProgramName(buf: PChar; len: longint): LongBool; syscall IDOS 484;
function GetProgramDir: longint; syscall IDOS 500;
function SystemTagList(command: PChar; tags: PTagItem): longint; syscall IDOS 504;
diff --git a/rtl/amiga/sysfile.inc b/rtl/amiga/sysfile.inc
deleted file mode 100644
index ca600eb56c..0000000000
--- a/rtl/amiga/sysfile.inc
+++ /dev/null
@@ -1,389 +0,0 @@
-{
- This file is part of the Free Pascal run time library.
- Copyright (c) 2005 by Free Pascal development team
-
- Low level 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.
-
- **********************************************************************}
-
-{ Enable this for file handling debug }
-{DEFINE MOSFPC_FILEDEBUG}
-
-{*****************************************************************************
- MorphOS File-handling Support Functions
-*****************************************************************************}
-type
- { AmigaOS does not automatically close opened files on exit back to }
- { the operating system, therefore as a precuation we close all files }
- { manually on exit. }
- PFileList = ^TFileList;
- TFileList = record { no packed, must be correctly aligned }
- handle : LongInt; { Handle to file }
- next : PFileList; { Next file in list }
- buffered : boolean; { used buffered I/O? }
- end;
-
-var
- AOS_fileList: PFileList; public name 'AOS_FILELIST'; { List pointer to opened files }
-
-{ Function to be called at program shutdown, to close all opened files }
-procedure CloseList(l: PFileList);
-var
- tmpNext : PFileList;
- tmpHandle : LongInt;
-begin
- if l=nil then exit;
-
- { First, close all tracked files }
- tmpNext:=l^.next;
- while tmpNext<>nil do begin
- tmpHandle:=tmpNext^.handle;
- if (tmpHandle<>StdInputHandle) and (tmpHandle<>StdOutputHandle)
- and (tmpHandle<>StdErrorHandle) then begin
- dosClose(tmpHandle);
- end;
- tmpNext:=tmpNext^.next;
- end;
-
- { Next, erase the linked list }
- while l<>nil do begin
- tmpNext:=l;
- l:=l^.next;
- dispose(tmpNext);
- end;
-end;
-
-{ Function to be called to add a file to the opened file list }
-procedure AddToList(var l: PFileList; h: LongInt); alias: 'ADDTOLIST'; [public];
-var
- p : PFileList;
- inList: Boolean;
-begin
- inList:=False;
- if l<>nil then begin
- { if there is a valid filelist, search for the value }
- { in the list to avoid double additions }
- p:=l;
- while (p^.next<>nil) and (not inList) do
- if p^.next^.handle=h then inList:=True
- else p:=p^.next;
- p:=nil;
- end else begin
- { if the list is not yet allocated, allocate it. }
- New(l);
- l^.next:=nil;
- end;
-
- if not inList then begin
- New(p);
- p^.handle:=h;
- p^.buffered:=False;
- p^.next:=l^.next;
- l^.next:=p;
- end
-{$IFDEF MOSFPC_FILEDEBUG}
- else
- RawDoFmt('FPC_FILE_DEBUG: Error! Trying add filehandle a filehandle twice: $%lx !'+#10,@h,pointer(1),nil);
-{$ENDIF}
- ;
-end;
-
-{ Function to be called to remove a file from the list }
-function RemoveFromList(var l: PFileList; h: LongInt): boolean; alias: 'REMOVEFROMLIST'; [public];
-var
- p : PFileList;
- inList : Boolean;
- tmpList: PFileList;
-begin
- inList:=False;
- if l=nil then begin
- RemoveFromList:=inList;
- exit;
- end;
-
- p:=l;
- while (p^.next<>nil) and (not inList) do
- if p^.next^.handle=h then inList:=True
- else p:=p^.next;
-
- if inList then begin
- tmpList:=p^.next^.next;
- dispose(p^.next);
- p^.next:=tmpList;
- end
-{$IFDEF MOSFPC_FILEDEBUG}
- else
- RawDoFmt('FPC_FILE_DEBUG: Error! Trying to remove not existing filehandle: $%lx !'+#10,@h,pointer(1),nil);
-{$ENDIF}
- ;
-
- RemoveFromList:=inList;
-end;
-
-{ Function to check if file is in the list }
-function CheckInList(var l: PFileList; h: LongInt): pointer; alias: 'CHECKINLIST'; [public];
-var
- p : PFileList;
- inList : Pointer;
-
-begin
- inList:=nil;
- if l=nil then begin
- CheckInList:=inList;
- exit;
- end;
-
- p:=l;
- while (p^.next<>nil) and (inList=nil) do
- if p^.next^.handle=h then inList:=p^.next
- else p:=p^.next;
-
-{$IFDEF MOSFPC_FILEDEBUG}
- if inList=nil then
- RawDoFmt('FPC_FILE_DEBUG: Warning! Check for not existing filehandle: $%lx !'+#10,@h,pointer(1),nil);
-{$ENDIF}
-
- CheckInList:=inList;
-end;
-
-
-{****************************************************************************
- Low level File Routines
- All these functions can set InOutRes on errors
-****************************************************************************}
-
-{ close a file from the handle value }
-procedure do_close(handle : longint);
-begin
- if RemoveFromList(AOS_fileList,handle) then begin
- { Do _NOT_ check CTRL_C on Close, because it will conflict
- with System_Exit! }
- if not dosClose(handle) then
- dosError2InOut(IoErr);
- end;
-end;
-
-procedure do_erase(p : pchar; pchangeable: boolean);
-var
- tmpStr: array[0..255] of Char;
-begin
- tmpStr:=PathConv(strpas(p))+#0;
- checkCTRLC;
- if not dosDeleteFile(@tmpStr) then
- dosError2InOut(IoErr);
-end;
-
-procedure do_rename(p1,p2 : pchar; p1changeable, p2changeable: boolean);
-{ quite stack-effective code, huh? :) damn path conversions... (KB) }
-var
- tmpStr1: array[0..255] of Char;
- tmpStr2: array[0..255] of Char;
-begin
- tmpStr1:=PathConv(strpas(p1))+#0;
- tmpStr2:=PathConv(strpas(p2))+#0;
- checkCTRLC;
- if not dosRename(@tmpStr1,@tmpStr2) then
- dosError2InOut(IoErr);
-end;
-
-function do_write(h: longint; addr: pointer; len: longint) : longint;
-var dosResult: LongInt;
-begin
- checkCTRLC;
- do_write:=0;
- if (len<=0) or (h<=0) then exit;
-
-{$IFDEF MOSFPC_FILEDEBUG}
- if not ((h=StdOutputHandle) or (h=StdInputHandle) or
- (h=StdErrorHandle)) then CheckInList(AOS_fileList,h);
-{$ENDIF}
-
- dosResult:=dosWrite(h,addr,len);
- if dosResult<0 then begin
- dosError2InOut(IoErr);
- end else begin
- do_write:=dosResult;
- end;
-end;
-
-function do_read(h: longint; addr: pointer; len: longint) : longint;
-var dosResult: LongInt;
-begin
- checkCTRLC;
- do_read:=0;
- if (len<=0) or (h<=0) then exit;
-
-{$IFDEF MOSFPC_FILEDEBUG}
- if not ((h=StdOutputHandle) or (h=StdInputHandle) or
- (h=StdErrorHandle)) then CheckInList(AOS_fileList,h);
-{$ENDIF}
-
- dosResult:=dosRead(h,addr,len);
- if dosResult<0 then begin
- dosError2InOut(IoErr);
- end else begin
- do_read:=dosResult;
- end
-end;
-
-function do_filepos(handle: longint) : longint;
-var dosResult: LongInt;
-begin
- checkCTRLC;
- do_filepos:=-1;
- if CheckInList(AOS_fileList,handle)<>nil then begin
-
- { Seeking zero from OFFSET_CURRENT to find out where we are }
- dosResult:=dosSeek(handle,0,OFFSET_CURRENT);
- if dosResult<0 then begin
- dosError2InOut(IoErr);
- end else begin
- do_filepos:=dosResult;
- end;
- end;
-end;
-
-procedure do_seek(handle, pos: longint);
-begin
- checkCTRLC;
- if CheckInList(AOS_fileList,handle)<>nil then begin
-
- { Seeking from OFFSET_BEGINNING }
- if dosSeek(handle,pos,OFFSET_BEGINNING)<0 then
- dosError2InOut(IoErr);
- end;
-end;
-
-function do_seekend(handle: longint):longint;
-var dosResult: LongInt;
-begin
- checkCTRLC;
- do_seekend:=-1;
- if CheckInList(AOS_fileList,handle)<>nil then begin
-
- { Seeking to OFFSET_END }
- dosResult:=dosSeek(handle,0,OFFSET_END);
- if dosResult<0 then begin
- dosError2InOut(IoErr);
- end else begin
- do_seekend:=dosResult;
- end;
- end;
-end;
-
-function do_filesize(handle : longint) : longint;
-var currfilepos: longint;
-begin
- checkCTRLC;
- do_filesize:=-1;
- if CheckInList(AOS_fileList,handle)<>nil then begin
-
- currfilepos:=do_filepos(handle);
- { We have to do this twice, because seek returns the OLD position }
- do_filesize:=do_seekend(handle);
- do_filesize:=do_seekend(handle);
- do_seek(handle,currfilepos);
-
- end;
-end;
-
-{ truncate at a given position }
-procedure do_truncate(handle, pos: longint);
-begin
- checkCTRLC;
- if CheckInList(AOS_fileList,handle)<>nil then begin
-
- { Seeking from OFFSET_BEGINNING }
- if SetFileSize(handle,pos,OFFSET_BEGINNING)<0 then
- dosError2InOut(IoErr);
- end;
-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 $10) the file will be append
- when (flags and $100) the file will be truncate/rewritten
- when (flags and $1000) there is no check for close (needed for textfiles)
-}
-var
- handle : LongInt;
- openflags: LongInt;
- tmpStr : array[0..255] of Char;
-begin
- tmpStr:=PathConv(strpas(p))+#0;
-
- { close first if opened }
- if ((flags and $10000)=0) then begin
- case filerec(f).mode of
- fminput,fmoutput,fminout : Do_Close(filerec(f).handle);
- fmclosed : ;
- else begin
- inoutres:=102; {not assigned}
- exit;
- end;
- end;
- end;
-
- { reset file handle }
- filerec(f).handle:=UnusedHandle;
-
- { convert filemode to filerec modes }
- { READ/WRITE on existing file }
- { RESET/APPEND }
- openflags:=MODE_OLDFILE;
- case (flags and 3) of
- 0 : filerec(f).mode:=fminput;
- 1 : filerec(f).mode:=fmoutput;
- 2 : filerec(f).mode:=fminout;
- end;
-
- { rewrite (create a new file) }
- if (flags and $1000)<>0 then openflags:=MODE_NEWFILE;
-
- { empty name is special }
- if p[0]=#0 then begin
- case filerec(f).mode of
- fminput :
- filerec(f).handle:=StdInputHandle;
- fmappend,
- fmoutput : begin
- filerec(f).handle:=StdOutputHandle;
- filerec(f).mode:=fmoutput; {fool fmappend}
- end;
- end;
- exit;
- end;
-
- handle:=Open(@tmpStr,openflags);
- if handle=0 then begin
- dosError2InOut(IoErr);
- end else begin
- AddToList(AOS_fileList,handle);
- filerec(f).handle:=handle;
- end;
-
- { append mode }
- if ((Flags and $100)<>0) and
- (FileRec(F).Handle<>UnusedHandle) then begin
- do_seekend(filerec(f).handle);
- filerec(f).mode:=fmoutput; {fool fmappend}
- end;
-end;
-
-function do_isdevice(handle: longint): boolean;
-begin
- if (handle=StdOutputHandle) or (handle=StdInputHandle) or
- (handle=StdErrorHandle) then
- do_isdevice:=True
- else
- do_isdevice:=False;
-end;
diff --git a/rtl/amiga/system.pp b/rtl/amiga/system.pp
index 5f7f3e8412..a8d8affbac 100644
--- a/rtl/amiga/system.pp
+++ b/rtl/amiga/system.pp
@@ -23,6 +23,7 @@ interface
{$define FPC_IS_SYSTEM}
{$I systemh.inc}
+{$I osdebugh.inc}
{$ifdef cpum68k}
{$define fpc_softfpu_interface}
@@ -50,7 +51,7 @@ const
StdErrorHandle : LongInt = 0;
FileNameCaseSensitive : Boolean = False;
- FileNameCasePreserving: boolean = false;
+ FileNameCasePreserving: boolean = True;
CtrlZMarksEOF: boolean = false; (* #26 not considered as end of file *)
sLineBreak = LineEnding;
@@ -77,8 +78,8 @@ var
IUtility : Pointer;
{$ENDIF}
- AOS_heapPool : Pointer; { pointer for the OS pool for growing the heap }
- AOS_origDir : LongInt; { original directory on startup }
+ ASYS_heapPool : Pointer; { pointer for the OS pool for growing the heap }
+ ASYS_origDir : LongInt; { original directory on startup }
AOS_wbMsg : Pointer; public name '_WBenchMsg'; { the "public" part is amunits compatibility kludge }
_WBenchMsg : Pointer; external name '_WBenchMsg'; { amunits compatibility kludge }
AOS_ConName : PChar ='CON:10/30/620/100/FPC Console Output/AUTO/CLOSE/WAIT';
@@ -110,12 +111,19 @@ implementation
{$endif cpum68k}
{$I system.inc}
+{$I osdebug.inc}
-{$IFDEF MOSFPC_FILEDEBUG}
+{$IFDEF AMIGAOS4}
+ // Required to allow opening of utility library interface...
+ {$include utilf.inc}
+{$ENDIF}
+
+
+{$IFDEF ASYS_FPC_FILEDEBUG}
{$WARNING Compiling with file debug enabled!}
{$ENDIF}
-{$IFDEF MOSFPC_MEMDEBUG}
+{$IFDEF ASYS_FPC_MEMDEBUG}
{$WARNING Compiling with memory debug enabled!}
{$ENDIF}
@@ -127,6 +135,8 @@ implementation
procedure haltproc(e:longint);cdecl;external name '_haltproc';
procedure System_exit;
+var
+ oldDirLock: LongInt;
begin
{ We must remove the CTRL-C FLAG here because halt }
{ may call I/O routines, which in turn might call }
@@ -137,11 +147,14 @@ begin
end;
{ Closing opened files }
- CloseList(AOS_fileList);
+ CloseList(ASYS_fileList);
{ Changing back to original directory if changed }
- if AOS_origDir<>0 then begin
- CurrentDir(AOS_origDir);
+ if ASYS_origDir<>0 then begin
+ oldDirLock:=CurrentDir(ASYS_origDir);
+ { unlock our lock if its safe, so we won't leak the lock }
+ if (oldDirLock<>0) and (oldDirLock<>ASYS_origDir) then
+ Unlock(oldDirLock);
end;
{$IFDEF AMIGAOS4}
@@ -152,7 +165,7 @@ begin
if AOS_IntuitionBase<>nil then CloseLibrary(AOS_IntuitionBase); { amunits kludge }
if AOS_UtilityBase<>nil then CloseLibrary(AOS_UtilityBase);
if AOS_DOSBase<>nil then CloseLibrary(AOS_DOSBase);
- if AOS_heapPool<>nil then DeletePool(AOS_heapPool);
+ if ASYS_heapPool<>nil then DeletePool(ASYS_heapPool);
{ If in Workbench mode, replying WBMsg }
if AOS_wbMsg<>nil then begin
@@ -338,8 +351,8 @@ begin
{$ENDIF}
{ Creating the memory pool for growing heap }
- AOS_heapPool:=CreatePool(MEMF_FAST,growheapsize2,growheapsize1);
- if AOS_heapPool=nil then Halt(1);
+ ASYS_heapPool:=CreatePool(MEMF_FAST,growheapsize2,growheapsize1);
+ if ASYS_heapPool=nil then Halt(1);
if AOS_wbMsg=nil then begin
StdInputHandle:=dosInput;
@@ -388,8 +401,8 @@ begin
StackBottom := Sptr - StackLength;
{ OS specific startup }
AOS_wbMsg:=nil;
- AOS_origDir:=0;
- AOS_fileList:=nil;
+ ASYS_origDir:=0;
+ ASYS_fileList:=nil;
envp:=nil;
SysInitAmigaOS;
{ Set up signals handlers }
@@ -405,5 +418,4 @@ begin
{ Arguments }
GenerateArgs;
InitSystemThreads;
- initvariantmanager;
end.
diff --git a/rtl/android/Makefile b/rtl/android/Makefile
index a99d3ff06b..81ca2c36d5 100644
--- a/rtl/android/Makefile
+++ b/rtl/android/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2015-01-04 rev 29399]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -416,6 +416,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 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 classes fgl rtlconsts dos cwstring fpcylix unixcp fpwidestring
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 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 classes fgl rtlconsts dos cwstring fpcylix unixcp fpwidestring
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 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 classes fgl rtlconsts dos cwstring fpcylix unixcp fpwidestring
endif
@@ -503,6 +506,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 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 classes fgl rtlconsts dos cwstring fpcylix unixcp fpwidestring
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 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 classes fgl rtlconsts dos cwstring fpcylix unixcp fpwidestring
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) $(SYSINIT_UNITS) $(CPU_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 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 classes fgl rtlconsts dos cwstring fpcylix unixcp fpwidestring
endif
@@ -641,6 +647,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -728,6 +737,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -866,6 +878,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -953,6 +968,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -1091,6 +1109,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
@@ -1178,6 +1199,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
@@ -1316,6 +1340,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=syslinux linux
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=syslinux linux
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=syslinux linux
endif
@@ -1403,6 +1430,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=syslinux linux
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=syslinux linux
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=syslinux linux
endif
@@ -1542,6 +1572,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
endif
@@ -1629,6 +1662,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(LINUXINC) $(OSPROCINC)
endif
@@ -1767,6 +1803,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
endif
@@ -1854,6 +1893,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON) $(LINUXINC)
endif
@@ -1992,6 +2034,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -2079,6 +2124,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -2391,6 +2439,12 @@ 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=
@@ -2436,6 +2490,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2900,8 +2959,8 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
-ifeq ($(CPU_TARGET),x86_64)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel),)
override FPCOPT+=-Cg
endif
endif
@@ -3355,12 +3414,13 @@ dllprt0$(OEXT) : $(ARCH)/dllprt0.as
$(SYSTEMUNIT)$(PPUEXT) : $(LINUXINC)/$(SYSTEMUNIT).pp $(SYSDEPS)
$(COMPILER) -Us -Sg $(LINUXINC)/$(SYSTEMUNIT).pp
uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
- $(COMPILER) $(INC)/uuchar.pp
+ $(COMPILER) $(INC)/uuchar.pp
objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp
strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc\
$(PROCINC)/strings.inc $(PROCINC)/stringss.inc\
$(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(INC)/strings.pp
unix$(PPUEXT) : $(UNIXINC)/unix.pp strings$(PPUEXT) baseunix$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
$(LINUXINC)/unxconst.inc $(UNIXINC)/timezone.inc $(SYSTEMUNIT)$(PPUEXT) \
$(LINUXINC)/unxfunc.inc
@@ -3377,7 +3437,7 @@ baseunix$(PPUEXT) : $(UNIXINC)/baseunix.pp $(LINUXINC)/errno.inc $(LINUXINC)/pty
$(LINUXINC)/ostypes.inc $(LINUXINC)/osmacro.inc $(UNIXINC)/gensigset.inc \
$(UNIXINC)/genfuncs.inc $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $(UNIXINC)/baseunix.pp
-dl$(PPUEXT) : $(UNIXINC)/dl.pp $(SYSTEMUNIT)$(PPUEXT)
+dl$(PPUEXT) : $(UNIXINC)/dl.pp $(SYSTEMUNIT)$(PPUEXT) dlandroid.inc
$(COMPILER) $(UNIXINC)/dl.pp
dynlibs$(PPUEXT) : $(INC)/dynlibs.pas $(UNIXINC)/dynlibs.inc dl$(PPUEXT) objpas$(PPUEXT)
$(COMPILER) $(INC)/dynlibs.pas
diff --git a/rtl/android/Makefile.fpc b/rtl/android/Makefile.fpc
index 86ca4bca32..92ec2b26ef 100644
--- a/rtl/android/Makefile.fpc
+++ b/rtl/android/Makefile.fpc
@@ -121,7 +121,7 @@ $(SYSTEMUNIT)$(PPUEXT) : $(LINUXINC)/$(SYSTEMUNIT).pp $(SYSDEPS)
$(COMPILER) -Us -Sg $(LINUXINC)/$(SYSTEMUNIT).pp
uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
- $(COMPILER) $(INC)/uuchar.pp
+ $(COMPILER) $(INC)/uuchar.pp
objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp
@@ -129,6 +129,7 @@ objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc\
$(PROCINC)/strings.inc $(PROCINC)/stringss.inc\
$(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(INC)/strings.pp
#
# $(SYSTEMUNIT) Dependent Units
@@ -155,7 +156,7 @@ baseunix$(PPUEXT) : $(UNIXINC)/baseunix.pp $(LINUXINC)/errno.inc $(LINUXINC)/pty
$(UNIXINC)/genfuncs.inc $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $(UNIXINC)/baseunix.pp
-dl$(PPUEXT) : $(UNIXINC)/dl.pp $(SYSTEMUNIT)$(PPUEXT)
+dl$(PPUEXT) : $(UNIXINC)/dl.pp $(SYSTEMUNIT)$(PPUEXT) dlandroid.inc
$(COMPILER) $(UNIXINC)/dl.pp
dynlibs$(PPUEXT) : $(INC)/dynlibs.pas $(UNIXINC)/dynlibs.inc dl$(PPUEXT) objpas$(PPUEXT)
@@ -163,7 +164,7 @@ dynlibs$(PPUEXT) : $(INC)/dynlibs.pas $(UNIXINC)/dynlibs.inc dl$(PPUEXT) objpas$
initc$(PPUEXT) : $(UNIXINC)/initc.pp ctypes$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $(UNIXINC)/initc.pp
-
+
unixcp$(PPUEXT) : $(UNIXINC)/unixcp.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) baseunix$(PPUEXT)
$(COMPILER) $(UNIXINC)/unixcp.pp
diff --git a/rtl/android/dlandroid.inc b/rtl/android/dlandroid.inc
new file mode 100644
index 0000000000..a6552bfdc6
--- /dev/null
+++ b/rtl/android/dlandroid.inc
@@ -0,0 +1,91 @@
+
+// On Android the dladdr() function does not return full path to modules.
+// Emulate dladdr() by reading the /proc/self/maps to get full path to modules.
+
+threadvar
+ _ModuleName: ansistring;
+
+function dladdr(Lib: pointer; info: Pdl_info): Longint; cdecl;
+var
+ F: Text;
+ s, ss, curnode: ansistring;
+ a1, a2, curbase: ptruint;
+ i: longint;
+ p, pp: PAnsiChar;
+begin
+{$PUSH}
+{$I-}
+ dladdr:=0;
+ _ModuleName:='';
+ if info = nil then
+ exit;
+ curbase:=0;
+ curnode:='';
+ Assign(F, '/proc/self/maps');
+ Reset(F);
+ if IoResult <> 0 then
+ exit;
+ while not Eof(F) do
+ begin
+ // Read the address range info
+ ReadLn(F, ss);
+ p:=PAnsiChar(ss);
+ // Starting address
+ pp:=p;
+ while not (p^ in ['-', #0]) do
+ Inc(p);
+ SetString(s, pp, p - pp);
+ Val('$' + s, a1, i);
+ if i = 0 then
+ begin
+ // Ending address
+ Inc(p);
+ pp:=p;
+ while p^ > ' ' do
+ Inc(p);
+ SetString(s, pp, p - pp);
+ Val('$' + s, a2, i);
+ if i = 0 then
+ begin
+ while p^ <= ' ' do Inc(p); // Whitespace
+ while p^ > ' ' do Inc(p); // Skip perms
+ while p^ <= ' ' do Inc(p); // Whitespace
+ while p^ > ' ' do Inc(p); // Skip offset
+ while p^ <= ' ' do Inc(p); // Whitespace
+ while p^ > ' ' do Inc(p); // Skip dev
+ while p^ <= ' ' do Inc(p); // Whitespace
+ // inode
+ pp:=p;
+ while p^ > ' ' do
+ Inc(p);
+ SetString(s, pp, p - pp);
+ if s <> '0' then
+ begin
+ if s <> curnode then
+ begin
+ curnode:=s;
+ curbase:=a1;
+ end;
+
+ if (ptruint(Lib) >= a1) and (ptruint(Lib) < a2) then
+ begin
+ while p^ <= ' ' do Inc(p); // Whitespace
+ // File name
+ if p^ = '/' then
+ begin
+ _ModuleName:=p;
+ info^.dli_fname:=PAnsiChar(_ModuleName);
+ info^.dli_fbase:=pointer(curbase);
+ info^.dli_sname:=nil;
+ info^.dli_saddr:=nil;
+ dladdr:=1;
+ end;
+ break;
+ end;
+ end;
+ end;
+ end;
+ end;
+ Close(F);
+{$POP}
+end;
diff --git a/rtl/android/jvm/Makefile b/rtl/android/jvm/Makefile
index 242d46f976..09fbc392b3 100644
--- a/rtl/android/jvm/Makefile
+++ b/rtl/android/jvm/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -409,6 +409,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas androidr14
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas androidr14
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas androidr14
endif
@@ -496,6 +499,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas androidr14
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas androidr14
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas androidr14
endif
@@ -635,6 +641,9 @@ 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
@@ -722,6 +731,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -860,6 +872,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
@@ -947,6 +962,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
@@ -1258,6 +1276,12 @@ 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=
@@ -1303,6 +1327,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1767,7 +1796,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2194,15 +2223,20 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
$(SYSTEMUNIT)$(PPUEXT) : $(RTL)/java/$(SYSTEMUNIT).pp $(SYSDEPS)
$(COMPILER) -Us -Sg $(RTL)/java/$(SYSTEMUNIT).pp $(REDIR)
uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
+ $(COMPILER) $(INC)/uuchar.pp
objpas$(PPUEXT): $(RTL)/java/objpas.pp
$(COMPILER) $(RTL)/java/objpas.pp $(REDIR)
strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
- $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
- $(SYSTEMUNIT)$(PPUEXT)
+ $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
+ $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(INC)/strings.pp
androidr14$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) androidr14.pas androidr14.inc
+ $(COMPILER) androidr14.pas
dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
$(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) dos.pp
objects$(PPUEXT) : $(INC)/objects.pp dos$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(INC)/objects.pp
sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
objpas$(PPUEXT) dos$(PPUEXT) sysconst$(PPUEXT)
$(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
@@ -2229,7 +2263,10 @@ dateutil$(PPUEXT) : $(OBJPASDIR)/dateutil.pp
macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT)
$(COMPILER) $(INC)/macpas.pp $(REDIR)
ucomplex$(PPUEXT): $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(INC)/ucomplex.pp
getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(INC)/getopts.pp
heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) -Sg $(INC)/heaptrc.pp $(REDIR)
charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(INC)/charset.pp
diff --git a/rtl/android/jvm/Makefile.fpc b/rtl/android/jvm/Makefile.fpc
index ee8edf74be..ed7f2873cf 100644
--- a/rtl/android/jvm/Makefile.fpc
+++ b/rtl/android/jvm/Makefile.fpc
@@ -81,15 +81,18 @@ $(SYSTEMUNIT)$(PPUEXT) : $(RTL)/java/$(SYSTEMUNIT).pp $(SYSDEPS)
$(COMPILER) -Us -Sg $(RTL)/java/$(SYSTEMUNIT).pp $(REDIR)
uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
+ $(COMPILER) $(INC)/uuchar.pp
objpas$(PPUEXT): $(RTL)/java/objpas.pp
$(COMPILER) $(RTL)/java/objpas.pp $(REDIR)
strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
- $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
- $(SYSTEMUNIT)$(PPUEXT)
+ $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
+ $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(INC)/strings.pp
androidr14$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) androidr14.pas androidr14.inc
+ $(COMPILER) androidr14.pas
#
# System Dependent Units
@@ -105,10 +108,12 @@ androidr14$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) androidr14.pas andro
dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
$(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) dos.pp
#crt$(PPUEXT) : crt.pas $(INC)/textrec.inc $(SYSTEMUNIT)$(PPUEXT)
objects$(PPUEXT) : $(INC)/objects.pp dos$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(INC)/objects.pp
#printer$(PPUEXT) : printer.pas $(INC)/textrec.inc $(SYSTEMUNIT)$(PPUEXT)
@@ -163,8 +168,10 @@ macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT)
#
ucomplex$(PPUEXT): $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(INC)/ucomplex.pp
getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(INC)/getopts.pp
heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) -Sg $(INC)/heaptrc.pp $(REDIR)
@@ -172,3 +179,4 @@ heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
#lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT)
charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(INC)/charset.pp
diff --git a/rtl/arm/arm.inc b/rtl/arm/arm.inc
index 83c096634d..61051abb50 100644
--- a/rtl/arm/arm.inc
+++ b/rtl/arm/arm.inc
@@ -962,7 +962,7 @@ begin
in_edsp_test:=true;
asm
bic r0,sp,#7
- ldrd r0,[r0]
+ ldrd r0,r1,[r0]
end;
in_edsp_test:=false;
if cpu_has_edsp then
@@ -1115,5 +1115,4 @@ end;
{$endif}
{include hand-optimized assembler division code}
-{ $i divide.inc}
-
+{$i divide.inc}
diff --git a/rtl/arm/divide.inc b/rtl/arm/divide.inc
new file mode 100644
index 0000000000..14c72eb834
--- /dev/null
+++ b/rtl/arm/divide.inc
@@ -0,0 +1,191 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by the Free Pascal development team.
+
+ Implementation of division helpers
+
+ 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.
+
+ **********************************************************************}
+
+
+{$if defined(CPUARM_HAS_UMULL) and defined(CPUARM_HAS_CLZ)}
+
+{ ARM division helpers using umull to do a 32-bit division based on
+ this paper: http://research.microsoft.com/pubs/70645/tr-2008-141.pdf
+
+ For future optimization and testing, this file is compilable outside
+ the system unit. }
+
+{$ifndef FPC_SYSTEM_HAS_DIV_DWORD}
+{$define FPC_SYSTEM_HAS_DIV_DWORD}
+
+function fpc_div_dword(n,z:dword):dword;assembler;nostackframe;
+{$ifdef FPC_IS_SYSTEM}[public,alias: 'FPC_DIV_DWORD'];{$endif}
+asm
+ // Handle division by zero
+ cmp r0, #0
+ beq .Lhandle_div_by_zero
+
+ stmfd r13!, {r4,lr}
+ // r1 = divisor
+ // r0 = dividend
+ // r2 = k, z
+ // r3 = ty, t, my
+ // ip = temp
+ // r4 = scratch
+
+ // unsigned k = clz(y);
+ clz r2, r0
+
+ // unsigned ty = lsr( lsl(y,k), W-9 ); // prescaling
+ // r3/ty will ALWAYS give a result between 256 and 511
+ mov r3, r0, lsl r2
+ mov r3, r3, lsr #23
+
+ // unsigned t = unrt[ ty - 256 ] + 256; // table lookup
+ adr r4, .LLeading9BitTable - 256
+ ldrb ip, [r4, r3]
+ rsb r3, r2, #31
+ and r3, r3, #255
+ add ip, ip, #256
+
+ // unsigned z = lsr( lsl(t,W-9), W-k-1 );
+ mov ip, ip, lsl #23
+ mov r2, ip, lsr r3
+
+ // unsigned my = 0-y;
+ rsb r3, r0, #0
+
+ // z = z + umulh(z,mul(my,z));
+ mul ip, r3, r2
+ umull r4, ip, r2, ip
+ add r2, r2, ip
+ // z = z + umulh(z,mul(my,z));
+ mul ip, r3, r2
+ umull r4, ip, r2, ip
+ add r2, r2, ip
+
+ // q estimate
+ // q = umulh(x,z);
+ // ip = q
+ umull r4, ip, r1, r2
+
+ // r = x - mul(y,q);
+ // r4 = r
+ mul r4, r0, ip
+ sub r4, r1, r4
+
+ // q refinement
+ // if (r >= y) { r = r - y; q = q + 1; }
+ cmp r0,r4
+ subls r4, r4, r0
+ addls ip, ip, #1
+
+ // if (r >= y) { r = r - y; q = q + 1; }
+ cmp r0,r4
+ subls r4, r4, r0
+ addls ip, ip, #1
+
+ mov r0, ip
+ mov r1, r4
+
+ ldmfd r13!, {r4,pc}
+.LLeading9BitTable:
+ .byte 254, 252, 250, 248, 246, 244, 242, 240, 238, 236, 234, 233, 231, 229, 227, 225
+ .byte 224, 222, 220, 218, 217, 215, 213, 212, 210, 208, 207, 205, 203, 202, 200, 199
+ .byte 197, 195, 194, 192, 191, 189, 188, 186, 185, 183, 182, 180, 179, 178, 176, 175
+ .byte 173, 172, 170, 169, 168, 166, 165, 164, 162, 161, 160, 158, 157, 156, 154, 153
+ .byte 152, 151, 149, 148, 147, 146, 144, 143, 142, 141, 139, 138, 137, 136, 135, 134
+ .byte 132, 131, 130, 129, 128, 127, 126, 125, 123, 122, 121, 120, 119, 118, 117, 116
+ .byte 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 100
+ .byte 99, 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 88, 87, 86, 85
+ .byte 84, 83, 82, 81, 80, 80, 79, 78, 77, 76, 75, 74, 74, 73, 72, 71
+ .byte 70, 70, 69, 68, 67, 66, 66, 65, 64, 63, 62, 62, 61, 60, 59, 59
+ .byte 58, 57, 56, 56, 55, 54, 53, 53, 52, 51, 50, 50, 49, 48, 48, 47
+ .byte 46, 46, 45, 44, 43, 43, 42, 41, 41, 40, 39, 39, 38, 37, 37, 36
+ .byte 35, 35, 34, 33, 33, 32, 32, 31, 30, 30, 29, 28, 28, 27, 27, 26
+ .byte 25, 25, 24, 24, 23, 22, 22, 21, 21, 20, 19, 19, 18, 18, 17, 17
+ .byte 16, 15, 15, 14, 14, 13, 13, 12, 12, 11, 10, 10, 9, 9, 8, 8
+ .byte 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 0, 0
+
+.Lhandle_div_by_zero:
+ mov r0, #200
+ mov r1, r11
+{$ifdef FPC_IS_SYSTEM}
+ b handleerrorframe
+{$endif}
+end;
+
+{It is a compilerproc (systemh.inc), make an alias for internal use.}
+{$ifdef FPC_IS_SYSTEM}
+function fpc_div_dword(n,z:dword):dword;external name 'FPC_DIV_DWORD';
+{$endif}
+{$endif}
+
+{$ifndef FPC_SYSTEM_HAS_DIV_LONGINT}
+{$define FPC_SYSTEM_HAS_DIV_LONGINT}
+function fpc_div_longint(n,z:longint):longint;assembler;nostackframe;
+{$ifdef FPC_IS_SYSTEM}[public,alias: 'FPC_DIV_LONGINT'];{$endif}
+
+asm
+ stmfd sp!, {r4,lr}
+ ands r4, r0, #1<<31 (* r12:=r0 and $80000000 *)
+ rsbmi r0, r0, #0 (* if signed(r0) then r0:=0-r0 *)
+ eors r4, r4, r1, ASR#32 (* r12:=r12 xor (r1 asr 32) *)
+ rsbcs r1, r1, #0 (* if signed(r12) then r1:=0-r1 *)
+ bl fpc_div_dword
+ movs r4, r4, LSL#1 (* carry:=sign(r12) *)
+ rsbcs r0, r0, #0
+ rsbmi r1, r1, #0
+ ldmfd sp!, {r4,pc}
+end;
+
+{It is a compilerproc (systemh.inc), make an alias for internal use.}
+{$ifdef FPC_IS_SYSTEM}
+function fpc_div_longint(n,z:longint):longint;external name 'FPC_DIV_LONGINT';
+{$endif}
+{$endif}
+
+{$ifndef FPC_SYSTEM_HAS_MOD_DWORD}
+{$define FPC_SYSTEM_HAS_MOD_DWORD}
+function fpc_mod_dword(n,z:dword):dword;assembler;nostackframe;
+{$ifdef FPC_IS_SYSTEM}[public,alias: 'FPC_MOD_DWORD'];{$endif}
+
+asm
+ stmfd sp!, {ip,lr}
+ bl fpc_div_dword
+ mov r0, r1
+ ldmfd sp!, {ip,pc}
+end;
+
+{It is a compilerproc (systemh.inc), make an alias for internal use.}
+{$ifdef FPC_IS_SYSTEM}
+function fpc_mod_dword(n,z:dword):dword;external name 'FPC_MOD_DWORD';
+{$endif}
+{$endif}
+
+{$ifndef FPC_SYSTEM_HAS_MOD_LONGINT}
+{$define FPC_SYSTEM_HAS_MOD_LONGINT}
+function fpc_mod_longint(n,z:longint):longint;assembler;nostackframe;
+{$ifdef FPC_IS_SYSTEM}[public,alias: 'FPC_MOD_LONGINT'];{$endif}
+
+asm
+ stmfd sp!, {ip,lr}
+ bl fpc_div_longint
+ mov r0, r1
+ ldmfd sp!, {ip,pc}
+end;
+
+{It is a compilerproc (systemh.inc), make an alias for internal use.}
+{$ifdef FPC_IS_SYSTEM}
+function fpc_mod_longint(n,z:longint):longint;external name 'FPC_MOD_LONGINT';
+{$endif}
+{$endif}
+
+{$endif}
diff --git a/rtl/arm/thumb2.inc b/rtl/arm/thumb2.inc
index e25ac53113..921ae24345 100644
--- a/rtl/arm/thumb2.inc
+++ b/rtl/arm/thumb2.inc
@@ -509,7 +509,7 @@ asm
strex r3, ip, [r0]
cmp r3, #0
bne .Lloop
-
+
mov r0, ip
end;
@@ -522,7 +522,7 @@ asm
strex r3, ip, [r0]
cmp r3, #0
bne .Lloop
-
+
mov r0, ip
end;
@@ -534,7 +534,7 @@ asm
strex r3, r1, [r0]
cmp r3, #0
bne .Lloop
-
+
mov r0, ip
end;
@@ -546,7 +546,7 @@ asm
strex r3, r2, [r0]
cmp r3, #0
bne .Lloop
-
+
mov r0, ip
end;
@@ -560,7 +560,7 @@ asm
movne r3, #0
cmp r3, #0
bne .Lloop
-
+
mov r0, ip
end;
@@ -584,7 +584,7 @@ begin
asm
mov r1,sp
bic r0,r1,#7
- ldrd r0,[r0]
+ ldrd r0,r1,[r0]
end;
in_edsp_test:=false;
if cpu_has_edsp then
diff --git a/rtl/aros/Makefile b/rtl/aros/Makefile
new file mode 100644
index 0000000000..ab35d8be75
--- /dev/null
+++ b/rtl/aros/Makefile
@@ -0,0 +1,2978 @@
+#
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
+#
+default: all
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
+UNIXs = linux $(BSDs) solaris qnx haiku aix
+LIMIT83fs = go32v2 os2 emx watcom msdos
+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=aros
+override CPU_TARGET_DEFAULT=i386
+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),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
+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 units)),)
+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 units)),)
+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 units)),)
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+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
+ifeq ($(CPU_TARGET),mipsel)
+BINUTILSPREFIX=mipsel-linux-android-
+endif
+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 $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
+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=$(RTL)/inc
+COMMON=$(RTL)/common
+PROCINC=$(RTL)/$(CPU_TARGET)
+AMIINC=$(RTL)/amicommon
+UNITPREFIX=rtl
+SYSTEMUNIT=system
+ifdef RELEASE
+override FPCOPT+=-Ur
+endif
+OBJPASDIR=$(RTL)/objpas
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings fpintres dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst character
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+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-qnx)
+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-freebsd)
+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-openbsd)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+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-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-dragonfly)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+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),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-msdos)
+override TARGET_LOADERS+=prt0
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+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)
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(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
+BATCHEXT=.bat
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+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=
+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
+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)
+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)
+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
+ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
+ifeq ($(CPU_TARGET),i386)
+FPCCPUOPT:=-OG2p3
+endif
+ifeq ($(CPU_TARGET),powerpc)
+FPCCPUOPT:=-O1r
+endif
+else
+FPCCPUOPT:=-O2
+endif
+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),)
+ifeq ($(CPU_TARGET),x86_64)
+override FPCOPT+=-Cg
+endif
+endif
+ifdef LINKSHARED
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+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) .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 %$(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)
+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
+override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
+ifneq ($(UNITTARGETDIRPREFIX),)
+override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
+override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
+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: $(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)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
+endif
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
+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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *$(ASMEXT) *_ppas$(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
+ -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+ -$(DEL) *.o *.ppu *.a
+endif
+ -$(DELTREE) *$(SMARTEXT)
+ -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *_ppas$(BATCHEXT)
+ifdef AOUTEXT
+ -$(DEL) *$(AOUTEXT)
+endif
+ifdef DEBUGSYMEXT
+ -$(DEL) *$(DEBUGSYMEXT)
+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
+.NOTPARALLEL:
+include $(INC)/makefile.inc
+SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
+include $(PROCINC)/makefile.cpu
+SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
+SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
+prt0$(OEXT) : $(CPU_TARGET)/prt0.as
+ $(AS) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(CPU_TARGET)/prt0.as
+$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
+ $(COMPILER) -Us -Sg $(SYSTEMUNIT).pp $(REDIR)
+uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
+objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp $(REDIR)
+strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
+ $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
+ $(SYSTEMUNIT)$(PPUEXT)
+dos$(PPUEXT) : $(AMIINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
+ $(SYSTEMUNIT)$(PPUEXT)
+sysutils$(PPUEXT) : $(AMIINC)/sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
+ objpas$(PPUEXT) dos$(PPUEXT) sysconst$(PPUEXT)
+ $(COMPILER) -Fi$(OBJPASDIR)/sysutils $(AMIINC)/sysutils.pp
+classes$(PPUEXT) : $(AMIINC)/classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
+ sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) types$(PPUEXT) fgl$(PPUEXT)
+ $(COMPILER) -Fi$(OBJPASDIR)/classes $(AMIINC)/classes.pp
+typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
+ $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp $(REDIR)
+math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/math.pp $(REDIR)
+character$(PPUEXT): sysutils$(PPUEXT) $(OBJPASDIR)/character.pas objpas$(PPUEXT) rtlconsts$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/character.pas
+fgl$(PPUEXT) : $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) system$(PPUEXT) sysutils$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/fgl.pp
+types$(PPUEXT) : $(OBJPASDIR/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/types.pp
+rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp
+ $(COMPILER) $(OBJPASDIR)/rtlconsts.pp
+sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/sysconst.pp
+dateutil$(PPUEXT) : $(OBJPASDIR)/dateutil.pp
+ $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/dateutil.pp
+macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT)
+ $(COMPILER) $(INC)/macpas.pp $(REDIR)
+ucomplex$(PPUEXT): $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
+heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -Sg $(INC)/heaptrc.pp $(REDIR)
+charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)
+cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) charset$(PPUEXT)
+ $(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas
+fpintres$(PPUEXT) : $(INC)/fpintres.pp $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(INC)/fpintres.pp
diff --git a/rtl/aros/Makefile.fpc b/rtl/aros/Makefile.fpc
new file mode 100644
index 0000000000..65f9ce527a
--- /dev/null
+++ b/rtl/aros/Makefile.fpc
@@ -0,0 +1,235 @@
+#
+# Makefile.fpc for Free Pascal Amiga RTL
+#
+
+[package]
+main=rtl
+
+[target]
+loaders=prt0
+units=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings \
+ fpintres dos heaptrc lineinfo ctypes \
+ sysutils fgl classes math typinfo \
+ charset cpall getopts \
+ types rtlconsts sysconst character
+implicitunits=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 \
+ cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 \
+ unicodedata unicodenumtable
+# \
+# exec timer doslib utility hardware inputevent graphics layers \
+# intuition aboxlib mui \
+# these can be moved to packages later
+# clipboard datatypes asl ahi tinygl get9 muihelper \
+rsts=math rtlconsts typinfo classes sysconst
+#implicitunits=exeinfo
+
+[require]
+nortl=y
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+target=aros
+cpu=i386
+
+[compiler]
+includedir=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC)
+sourcedir=$(INC) $(PROCINC) $(CPU_TARGET) $(AMIINC) $(COMMON)
+
+[prerules]
+RTL=..
+INC=$(RTL)/inc
+COMMON=$(RTL)/common
+PROCINC=$(RTL)/$(CPU_TARGET)
+AMIINC=$(RTL)/amicommon
+
+UNITPREFIX=rtl
+SYSTEMUNIT=system
+
+# Use new feature from 1.0.5 version
+# that generates release PPU files
+# which will not be recompiled
+ifdef RELEASE
+override FPCOPT+=-Ur
+endif
+
+# Paths
+OBJPASDIR=$(RTL)/objpas
+
+[rules]
+.NOTPARALLEL:
+# 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) : $(CPU_TARGET)/prt0.as
+ $(AS) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(CPU_TARGET)/prt0.as
+
+#
+# Base Units (System, strings, os-dependent-base-unit)
+#
+
+$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
+ $(COMPILER) -Us -Sg $(SYSTEMUNIT).pp $(REDIR)
+
+uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
+
+objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp $(REDIR)
+
+strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
+ $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
+ $(SYSTEMUNIT)$(PPUEXT)
+
+#
+# System Dependent Units
+#
+
+#ports$(PPUEXT) : ports.pas objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+
+#doscalls$(PPUEXT) : doscalls.pas strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+
+#
+# TP7 Compatible RTL Units
+#
+
+dos$(PPUEXT) : $(AMIINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
+ $(SYSTEMUNIT)$(PPUEXT)
+
+#crt$(PPUEXT) : crt.pas $(INC)/textrec.inc $(SYSTEMUNIT)$(PPUEXT)
+
+#objects$(PPUEXT) : $(INC)/objects.pp dos$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+
+
+#graph$(PPUEXT) : graph.pp
+
+#
+# Delphi Compatible Units
+#
+
+sysutils$(PPUEXT) : $(AMIINC)/sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
+ objpas$(PPUEXT) dos$(PPUEXT) sysconst$(PPUEXT)
+ $(COMPILER) -Fi$(OBJPASDIR)/sysutils $(AMIINC)/sysutils.pp
+
+classes$(PPUEXT) : $(AMIINC)/classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
+ sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) types$(PPUEXT) fgl$(PPUEXT)
+ $(COMPILER) -Fi$(OBJPASDIR)/classes $(AMIINC)/classes.pp
+
+typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
+ $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp $(REDIR)
+
+math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/math.pp $(REDIR)
+
+#varutils$(PPUEXT) : $(OBJPASDIR)/cvarutil.inc $(OBJPASDIR)/varutils.inc \
+# $(OBJPASDIR)/varutilh.inc varutils.pp
+# $(COMPILER) -I$(OBJPASDIR) varutils.pp $(REDIR)
+
+#fmtbcd$(PPUEXT) : $(OBJPASDIR)/fmtbcd.pp objpas$(PPUEXT) sysutils$(PPUEXT) variants$(PPUEXT) classes$(PPUEXT) system$(PPUEXT)
+# $(COMPILER) $(OBJPASDIR)/fmtbcd.pp
+
+character$(PPUEXT): sysutils$(PPUEXT) $(OBJPASDIR)/character.pas objpas$(PPUEXT) rtlconsts$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/character.pas
+
+fgl$(PPUEXT) : $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) system$(PPUEXT) sysutils$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/fgl.pp
+
+types$(PPUEXT) : $(OBJPASDIR/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/types.pp
+
+rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp
+ $(COMPILER) $(OBJPASDIR)/rtlconsts.pp
+
+sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/sysconst.pp
+
+dateutil$(PPUEXT) : $(OBJPASDIR)/dateutil.pp
+ $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/dateutil.pp
+
+#
+# Mac Pascal Model
+#
+
+macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT)
+ $(COMPILER) $(INC)/macpas.pp $(REDIR)
+
+#
+# Other system-independent RTL Units
+#
+
+ucomplex$(PPUEXT): $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+
+getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
+
+heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -Sg $(INC)/heaptrc.pp $(REDIR)
+
+#lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT)
+
+charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)
+
+cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) charset$(PPUEXT)
+ $(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas
+
+fpintres$(PPUEXT) : $(INC)/fpintres.pp $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(INC)/fpintres.pp
+
+#
+# Other system-dependent RTL Units
+#
+
+#exec$(PPUEXT) : exec.pp execf.inc execd.inc
+
+#timer$(PPUEXT) : timer.pp timerd.inc timerf.inc
+
+#utility$(PPUEXT) : utility.pp exec$(PPUEXT) utilf.inc utild1.inc utild2.inc
+
+#doslib$(PPUEXT) : doslib.pp exec$(PPUEXT) timer$(PPUEXT) doslibd.inc doslibf.inc
+
+#hardware$(PPUEXT): hardware.pas exec$(PPUEXT)
+
+#inputevent$(PPUEXT): inputevent.pas exec$(PPUEXT) timer$(PPUEXT) utility$(PPUEXT)
+
+#graphics$(PPUEXT): graphics.pas exec$(PPUEXT) utility$(PPUEXT) hardware$(PPUEXT)
+
+#layers$(PPUEXT) : layers.pas exec$(PPUEXT) graphics$(PPUEXT) utility$(PPUEXT)
+
+#intuition$(PPUEXT): intuition.pas exec$(PPUEXT) graphics$(PPUEXT) utility$(PPUEXT) \
+# inputevent$(PPUEXT) timer$(PPUEXT) layers$(PPUEXT)
+
+#aboxlib$(PPUEXT): aboxlib.pas
+
+#clipboard$(PPUEXT): clipboard.pas exec$(PPUEXT)
+
+#datatype$(PPUEXT): datatypes.pas exec$(PPUEXT) doslib$(PPUEXT) intuition$(PPUEXT) \
+# utility$(PPUEXT) graphics$(PPUEXT)
+
+#asl$(PPUEXT): asl.pas exec$(PPUEXT) graphics$(PPUEXT) utility$(PPUEXT)
+
+#ahi$(PPUEXT): ahi.pas exec$(PPUEXT) utility$(PPUEXT)
+
+#mui$(PPUEXT): mui.pas exec$(PPUEXT) utility$(PPUEXT) intuition$(PPUEXT) graphics$(PPUEXT)
+
+#tinygl$(PPUEXT): tinygl.pp exec$(PPUEXT)
+
+#get9$(PPUEXT): get9.pas exec$(PPUEXT)
+
+#muihelper$(PPUEXT): muihelper.pas intuition$(PPUEXT) mui$(PPUEXT) doslib$(PPUEXT) utility$(PPUEXT)
diff --git a/rtl/aros/arosthreads.inc b/rtl/aros/arosthreads.inc
new file mode 100644
index 0000000000..fd0d9d0798
--- /dev/null
+++ b/rtl/aros/arosthreads.inc
@@ -0,0 +1,590 @@
+
+type
+ TThreadEntryfunction = function(data: Pointer): Pointer; cdecl;
+
+
+ TMutextKind = (mkExclusive, mkShared);
+
+ TAROSMutex = record
+ Semaphore: TSignalSemaphore;
+ end;
+ PAROSMutex = ^TAROSMutex;
+
+ TCondition = record
+ Lock: TSignalSemaphore;
+ Waiters: array of Pointer;
+ end;
+ PCondition = ^TCondition;
+
+ TAROSThread = record
+ Entry: TThreadEntryfunction;
+ Data: Pointer;
+ ThreadID: LongWord;
+ Priority: LongInt;
+ StackSize: LongInt;
+ Task: PProcess;
+ Lock: TSignalSemaphore;
+ StartupSemaphore: TSignalSemaphore;
+ EndCondition: PCondition;
+ EndMutex: PAROSMutex;
+ EndCount: Integer;
+ end;
+ PAROSThread = ^TAROSThread;
+
+ TAROSThreadStruct = record
+ MutexListSem: TSignalSemaphore;
+ MutexList: array of PAROSMutex;
+ //
+ ThreadListSem: TSignalSemaphore;
+ ThreadList: array of PAROSThread;
+ //
+ ConditionListSem: TSignalSemaphore;
+ ConditionList: array of PCondition;
+ //
+ ThreadMemSem: TSignalSemaphore;
+ EmptySemaphore: TSignalSemaphore;
+ //
+ LastThreadNum: LongWord;
+ end;
+ PAROSThreadStruct = ^TAROSThreadStruct;
+
+var
+ AROSThreadStruct: PAROSThreadStruct external name 'AROS_THREADLIB';
+
+
+function CreateNewProcTags(const Tags: array of PtrUInt): PProcess;
+begin
+ CreateNewProcTags := CreateNewProc(@Tags[0]);
+end;
+
+// Mutexe
+
+function CreateMutex: PAROSMutex;
+var
+ Mutex: PAROSMutex;
+ Idx, i: Integer;
+begin
+ if not Assigned(AROSThreadStruct) then
+ Exit;
+ New(Mutex);
+ InitSemaphore(@(Mutex^.Semaphore));
+ ObtainSemaphore(@(AROSThreadStruct^.MutexListSem));
+ Idx := -1;
+ for i := 0 to High(AROSThreadStruct^.MutexList) do
+ begin
+ if not Assigned(AROSThreadStruct^.MutexList[i]) then
+ begin
+ Idx := i;
+ Break;
+ end;
+ end;
+ if Idx < 0 then
+ begin
+ Idx := Length(AROSThreadStruct^.MutexList);
+ SetLength(AROSThreadStruct^.MutexList, Idx + 1);
+ end;
+ AROSThreadStruct^.MutexList[Idx] := Mutex;
+ ReleaseSemaphore(@(AROSThreadStruct^.MutexListSem));
+ Result := Mutex;
+end;
+
+procedure DestroyMutex(Mutex: PAROSMutex);
+var
+ i: Integer;
+begin
+ if not Assigned(AROSThreadStruct) then
+ Exit;
+ ObtainSemaphore(@(AROSThreadStruct^.MutexListSem));
+ for i := 0 to High(AROSThreadStruct^.MutexList) do
+ begin
+ if AROSThreadStruct^.MutexList[i] = Mutex then
+ begin
+ FillChar(Mutex^.Semaphore, SizeOf(TSignalSemaphore), 0);
+ Dispose(Mutex);
+ AROSThreadStruct^.MutexList[i] := nil;
+ end;
+ end;
+ ReleaseSemaphore(@(AROSThreadStruct^.MutexListSem));
+end;
+
+
+function IsValidMutex(Mutex: PAROSMutex): Boolean;
+var
+ i: Integer;
+begin
+ Result := False;
+ if not Assigned(AROSThreadStruct) then
+ Exit;
+ ObtainSemaphore(@(AROSThreadStruct^.MutexListSem));
+ for i := 0 to High(AROSThreadStruct^.MutexList) do
+ begin
+ if AROSThreadStruct^.MutexList[i] = Mutex then
+ begin
+ Result := True;
+ Break;
+ end;
+ end;
+ ReleaseSemaphore(@(AROSThreadStruct^.MutexListSem));
+end;
+
+procedure LockMutex(Mutex: PAROSMutex);
+begin
+ if IsValidMutex(Mutex) then
+ begin
+ ObtainSemaphore(@(Mutex^.Semaphore));
+ end;
+end;
+
+function TryLockMutex(Mutex: PAROSMutex): Boolean;
+begin
+ Result := False;
+ if IsValidMutex(Mutex) then
+ begin
+ Result := AttemptSemaphore(@(Mutex^.Semaphore)) <> 0;
+ end;
+end;
+
+procedure UnLockMutex(Mutex: PAROSMutex);
+begin
+ if IsValidMutex(Mutex) then
+ begin
+ ReleaseSemaphore(@(Mutex^.Semaphore));
+ end;
+end;
+
+// Conditions
+
+function CreateCondition: PCondition;
+var
+ Idx, i: Integer;
+ NewCond: PCondition;
+begin
+ if not Assigned(AROSThreadStruct) then
+ Exit;
+ New(NewCond);
+ SetLength(NewCond^.Waiters, 0);
+ InitSemaphore(@(NewCond^.Lock));
+ ObtainSemaphore(@(AROSThreadStruct^.ConditionListSem));
+ Idx := -1;
+ for i := 0 to High(AROSThreadStruct^.ConditionList) do
+ begin
+ if not Assigned(AROSThreadStruct^.ConditionList[i]) then
+ begin
+ Idx := i;
+ Break;
+ end;
+ end;
+ if Idx < 0 then
+ begin
+ Idx := Length(AROSThreadStruct^.ConditionList);
+ SetLength(AROSThreadStruct^.ConditionList, Idx + 1);
+ end;
+ AROSThreadStruct^.ConditionList[Idx] := NewCond;
+ ReleaseSemaphore(@(AROSThreadStruct^.ConditionListSem));
+ Result := NewCond;
+end;
+
+function DestroyCondition(Cond: PCondition): boolean;
+var
+ Idx, i: Integer;
+begin
+ if not Assigned(AROSThreadStruct) then
+ Exit;
+ ObtainSemaphore(@(Cond^.Lock));
+ if Length(Cond^.Waiters) > 0 then
+ begin
+ ReleaseSemaphore(@(Cond^.Lock));
+ Result := False;
+ Exit;
+ end;
+ ObtainSemaphore(@(AROSThreadStruct^.ConditionListSem));
+ Idx := -1;
+ for i := 0 to High(AROSThreadStruct^.ConditionList) do
+ begin
+ if AROSThreadStruct^.ConditionList[i] = Cond then
+ begin
+ AROSThreadStruct^.ConditionList[i] := nil;
+ Dispose(Cond);
+ Break;
+ end;
+ end;
+ ReleaseSemaphore(@(AROSThreadStruct^.ConditionListSem));
+ Result := True;
+end;
+
+function WaitCondition(Cond: PCondition; Mutex: PAROSMutex): boolean;
+var
+ Idx: Integer;
+begin
+ if (not Assigned(Cond)) or (not Assigned(Mutex)) then
+ begin
+ Result := False;
+ Exit;
+ end;
+ ObtainSemaphore(@Cond^.Lock);
+ Idx := Length(Cond^.Waiters);
+ SetLength(Cond^.Waiters, Idx + 1);
+ Cond^.Waiters[Idx] := FindTask(nil);
+ ReleaseSemaphore(@Cond^.Lock);
+
+ Forbid();
+ UnLockMutex(Mutex);
+ Wait(SIGF_SINGLE);
+ Permit();
+ LockMutex(Mutex);
+ Result := True;
+end;
+
+procedure SignalCondition(Cond: PCondition);
+var
+ Waiter: PTask;
+ Idx: Integer;
+begin
+ if not Assigned(Cond) then
+ Exit;
+ ObtainSemaphore(@Cond^.Lock);
+ Waiter := nil;
+ //debugln(' found ' + IntToStr(Cond^.Waiters.Count) + ' Waiter');
+ if Length(Cond^.Waiters) > 0 then
+ begin
+ Idx := High(Cond^.Waiters);
+ Waiter := Cond^.Waiters[Idx];
+ SetLength(Cond^.Waiters, Idx);
+ end;
+ ReleaseSemaphore(@Cond^.Lock);
+ if not Assigned(Waiter) then
+ begin
+ //debugln('Waiter not assigned');
+ Exit;
+ end;
+ //debugln('Signal Waiter');
+ Signal(Waiter, SIGF_SINGLE);
+end;
+
+procedure BroadcastCondition(Cond: PCondition);
+var
+ Waiter: PTask;
+ I: Integer;
+begin
+ if not Assigned(Cond) then
+ Exit;
+ Waiter := nil;
+ ObtainSemaphore(@Cond^.Lock);
+ for i := 0 to High(Cond^.Waiters) do
+ begin
+ Waiter := Cond^.Waiters[i];
+ Signal(Waiter, SIGF_SINGLE);
+ end;
+ SetLength(Cond^.Waiters, 0);
+ ReleaseSemaphore(@Cond^.Lock);
+end;
+
+// Threads
+
+procedure StarterFunc; cdecl;
+var
+ NewThread: PAROSThread;
+ StackMem: Pointer;
+ sswap: TStackSwapStruct;
+ Proc: PTask;
+begin
+ Proc := FindTask(nil);
+ NewThread := PAROSThread(Proc^.tc_UserData);
+ // create New Stack
+ StackMem := GetMem(NewThread^.StackSize);
+ sswap.stk_Lower := StackMem;
+ sswap.stk_Upper := Pointer(PtrUInt(sswap.stk_Lower) + NewThread^.StackSize);
+ sswap.stk_Pointer := sswap.stk_Upper;
+ ReleaseSemaphore(@AROSThreadStruct^.ThreadMemSem);
+ // semaphore against too fast startup
+ ReleaseSemaphore(@(NewThread^.StartupSemaphore));
+ // swap stack, run program, swap stack back
+ Stackswap(@sswap);
+ NewThread^.Entry(NewThread^.Data);
+ Stackswap(@sswap);
+ //debugln('5');
+
+ // Free stack memory
+ ObtainSemaphore(@AROSThreadStruct^.ThreadMemSem);
+ FreeMem(StackMem);
+ ReleaseSemaphore(@AROSThreadStruct^.ThreadMemSem);
+ // finished mark as finished
+ ObtainSemaphore(@NewThread^.Lock);
+ NewThread^.Task := nil;
+ ReleaseSemaphore(@NewThread^.Lock);
+ // tell the others we are finished!
+ //Debugln('wait for end ' + IntToStr(NewThread^.ThreadId));
+ LockMutex(NewThread^.EndMutex);
+ BroadcastCondition(NewThread^.EndCondition);
+ UnLockMutex(NewThread^.EndMutex);
+ //Debugln('End ' + IntToStr(NewThread^.ThreadId));
+end;
+
+procedure EmptyFunc;
+begin
+ Delay(1);
+ ReleaseSemaphore(@AROSThreadStruct^.EmptySemaphore);
+end;
+
+
+function AROSCreateThread(Entry: TThreadEntryfunction; data: Pointer; StackSize: Integer = 262144; Priority: Integer = 0): LongWord;
+var
+ NewThread: PAROSThread;
+ Idx, i: Integer;
+begin
+ if not Assigned(AROSThreadStruct) then
+ Exit;
+ New(NewThread);
+ ObtainSemaphore(@AROSThreadStruct^.ThreadListSem);
+ Idx := -1;
+ for i := 0 to High(AROSThreadStruct^.ThreadList) do
+ begin
+ if not Assigned(AROSThreadStruct^.ThreadList[i]) then
+ begin
+ Idx := i;
+ Break;
+ end;
+ end;
+ if Idx < 0 then
+ begin
+ Idx := Length(AROSThreadStruct^.ThreadList);
+ SetLength(AROSThreadStruct^.ThreadList, Idx + 1);
+ end;
+ Inc(AROSThreadStruct^.LastThreadNum);
+ AROSThreadStruct^.ThreadList[Idx] := NewThread;
+ NewThread^.ThreadID := AROSThreadStruct^.LastThreadNum;
+ NewThread^.Entry := Entry;
+ NewThread^.Data := Data;
+ NewThread^.Priority := Priority;
+ NewThread^.StackSize := StackSize;
+ InitSemaphore(@(NewThread^.Lock));
+ InitSemaphore(@(NewThread^.StartupSemaphore));
+ NewThread^.EndCondition := CreateCondition;
+ NewThread^.EndMutex := CreateMutex;
+ NewThread^.EndCount := 0;
+ ReleaseSemaphore(@AROSThreadStruct^.ThreadListSem);
+
+ ObtainSemaphore(@AROSThreadStruct^.ThreadMemSem);
+
+ // Semaphore for too fast startup
+ ObtainSemaphore(@(NewThread^.StartupSemaphore));
+
+ // a very ugly Bugfix, for crashing AROS, on the very first Task after reboot
+ // recheck later if can be removed
+ if NewThread^.ThreadID = 1 then
+ begin
+ //debugln('make empty thread');
+ ObtainSemaphore(@AROSThreadStruct^.EmptySemaphore);
+ NewThread^.Task := CreateNewProcTags([
+ NP_Entry, PtrUInt(@EmptyFunc),
+ TAG_DONE, TAG_END]);
+ ObtainSemaphore(@AROSThreadStruct^.EmptySemaphore);
+ Delay(1);
+ end;
+ //
+ NewThread^.Task := CreateNewProcTags([
+ NP_Entry, PtrUInt(@StarterFunc),
+ //NP_Name, PtrUInt(PChar('Thread' + IntToStr(LastThreadNum))),
+ //NP_StackSize, 10024 * 1024,
+ NP_Priority, Priority,
+ NP_UserData, PtrUInt(NewThread),
+ TAG_DONE, TAG_END]);
+ Result := NewThread^.ThreadID;
+end;
+
+function AROSCurrentThread: LongInt;
+var
+ Task: PProcess;
+ i: Integer;
+begin
+ Result := 0;
+ Task := PProcess(FindTask(nil));
+ ObtainSemaphore(@AROSThreadStruct^.ThreadListSem);
+ for i := 0 to High(AROSThreadStruct^.ThreadList) do
+ begin
+ if Assigned(AROSThreadStruct^.ThreadList[i]) then
+ begin
+ if AROSThreadStruct^.ThreadList[i]^.Task = Task then
+ begin
+ Result := AROSThreadStruct^.ThreadList[i]^.ThreadID;
+ Break;
+ end;
+ end;
+ end;
+ ReleaseSemaphore(@AROSThreadStruct^.ThreadListSem);
+end;
+
+
+function AROSWaitThread(ThreadID: LongWord): Boolean;
+var
+ Thread: PAROSThread;
+ Idx, i: Integer;
+begin
+ if not Assigned(AROSThreadStruct) then
+ Exit;
+ ObtainSemaphore(@AROSThreadStruct^.ThreadListSem);
+ Thread := nil;
+ Idx := -1;
+ for i := 0 to High(AROSThreadStruct^.ThreadList) do
+ begin
+ if Assigned(AROSThreadStruct^.ThreadList[i]) then
+ begin
+ if AROSThreadStruct^.ThreadList[i]^.ThreadID = ThreadID then
+ begin
+ Thread := AROSThreadStruct^.ThreadList[i];
+ Idx := i;
+ break;
+ end;
+ end;
+ end;
+ ReleaseSemaphore(@AROSThreadStruct^.ThreadListSem);
+ if Thread = nil then
+ begin
+ //debugln('Thread not found');
+ Result := False;
+ Exit;
+ end;
+
+ // check some
+ ObtainSemaphore(@Thread^.Lock);
+ // hmm thats me... I do not wait for myself
+ if Thread^.Task = PProcess(FindTask(nil)) then
+ begin
+ //debugln(' hmm its me :O ' + IntToStr(ThreadID));
+ ReleaseSemaphore(@Thread^.Lock);
+ Result := False;
+ Exit;
+ end;
+ // wait that the thread start is finished somehow ;)
+ ObtainSemaphore(@(Thread^.StartupSemaphore));
+ ReleaseSemaphore(@(Thread^.StartupSemaphore));
+ // check if Task is still running
+ if Thread^.Task <> nil then
+ begin
+ Inc(Thread^.EndCount);
+ ReleaseSemaphore(@Thread^.Lock);
+ LockMutex(Thread^.EndMutex);
+ //debugln(' Wait condition ' + IntToStr(ThreadID));
+ WaitCondition(Thread^.EndCondition, Thread^.EndMutex);
+ //debugln(' got condition ' + IntToStr(ThreadID));
+ UnlockMutex(Thread^.EndMutex);
+ ObtainSemaphore(@Thread^.Lock);
+ Dec(Thread^.EndCount);
+ end;
+ if Thread^.EndCount > 0 then
+ begin
+ ReleaseSemaphore(@Thread^.Lock);
+ Result := True;
+ Exit;
+ end;
+ if Assigned(AROSThreadStruct) then
+ begin
+ // destroy Thread
+ ObtainSemaphore(@AROSThreadStruct^.ThreadListSem);
+ AROSThreadStruct^.ThreadList[Idx] := nil;
+ ReleaseSemaphore(@AROSThreadStruct^.ThreadListSem);
+ end;
+ DestroyCondition(Thread^.EndCondition);
+ DestroyMutex(Thread^.EndMutex);
+ Dispose(Thread);
+ Result := true;
+end;
+
+function AROSCurrentThread: LongWord;
+var
+ i: Integer;
+ CurTask: PProcess;
+begin
+ if not Assigned(AROSThreadStruct) then
+ Exit;
+ Result := 0;
+ ObtainSemaphore(@AROSThreadStruct^.ThreadListSem);
+ CurTask := PProcess(FindTask(nil));
+ for i := 0 to High(AROSThreadStruct^.ThreadList) do
+ begin
+ if Assigned(AROSThreadStruct^.ThreadList[i]) then
+ begin
+ if AROSThreadStruct^.ThreadList[i]^.Task = CurTask then
+ begin
+ Result := AROSThreadStruct^.ThreadList[i]^.ThreadID;
+ Break;
+ end;
+ end;
+ end;
+ ReleaseSemaphore(@AROSThreadStruct^.ThreadListSem);
+end;
+
+
+procedure WaitAllThreads;
+var
+ i: Integer;
+ TID: LongWord;
+begin
+ if not Assigned(AROSThreadStruct) then
+ Exit;
+ ObtainSemaphore(@AROSThreadStruct^.ThreadListSem);
+ i := 0;
+ while i <= High(AROSThreadStruct^.ThreadList) do
+ begin
+ if Assigned(AROSThreadStruct^.ThreadList[i]) then
+ begin
+ TID := AROSThreadStruct^.ThreadList[i]^.ThreadID;
+ //
+ ObtainSemaphore(@(AROSThreadStruct^.ThreadList[i]^.StartupSemaphore));
+ ReleaseSemaphore(@(AROSThreadStruct^.ThreadList[i]^.StartupSemaphore));
+ //
+ ReleaseSemaphore(@AROSThreadStruct^.ThreadListSem);
+ AROSWaitThread(TID);
+ ObtainSemaphore(@AROSThreadStruct^.ThreadListSem);
+ end;
+ Inc(i);
+ end;
+ ReleaseSemaphore(@AROSThreadStruct^.ThreadListSem);
+end;
+
+{$ifdef THREAD_SYSTEM}
+
+procedure InitThreadLib;
+begin
+ New(AROSThreadStruct);
+ AROSThreadStruct^.LastThreadNum := 0;
+ InitSemaphore(@(AROSThreadStruct^.MutexListSem));
+ InitSemaphore(@(AROSThreadStruct^.ConditionListSem));
+ InitSemaphore(@(AROSThreadStruct^.ThreadListSem));
+ InitSemaphore(@(AROSThreadStruct^.ThreadMemSem));
+ InitSemaphore(@(AROSThreadStruct^.EmptySemaphore));
+end;
+
+procedure FinishThreadLib;
+var
+ i: Integer;
+begin
+ if not Assigned(AROSThreadStruct) then
+ Exit;
+ WaitAllThreads;
+ ObtainSemaphore(@AROSThreadStruct^.MutexListSem);
+ i := 0;
+ for i := 0 to High(AROSThreadStruct^.MutexList) do
+ begin
+ if Assigned(AROSThreadStruct^.MutexList[i]) then
+ begin
+ Dispose(AROSThreadStruct^.MutexList[i]);
+ end;
+ end;
+ ReleaseSemaphore(@AROSThreadStruct^.MutexListSem);
+ ObtainSemaphore(@AROSThreadStruct^.ConditionListSem);
+ i := 0;
+ for i := 0 to High(AROSThreadStruct^.ConditionList) do
+ begin
+ if Assigned(AROSThreadStruct^.ConditionList[i]) then
+ begin
+ Dispose(AROSThreadStruct^.ConditionList[i]);
+ end;
+ end;
+ ReleaseSemaphore(@AROSThreadStruct^.ConditionListSem);
+ Dispose(AROSThreadStruct);
+ AROSThreadStruct := nil;
+end;
+
+{$endif THREAD_SYSTEM}
+
diff --git a/rtl/aros/doslibd.inc b/rtl/aros/doslibd.inc
new file mode 100644
index 0000000000..8e01a3c23b
--- /dev/null
+++ b/rtl/aros/doslibd.inc
@@ -0,0 +1,1371 @@
+{
+ This file is part of the Free Pascal run time library.
+
+ dos definitions (V50) for MorphOS/PowerPC
+ Copyright (c) 2002 The MorphOS Development Team, All Rights Reserved.
+
+ Free Pascal conversion
+ Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
+
+ AROS conversion
+ Copyright (c) 2011 Marcus Sackrow
+
+ 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.
+
+ **********************************************************************}
+
+
+
+{ * dos global definitions
+ *********************************************************************
+ * }
+
+
+const // Checked OK 04.08.2011 ALB
+ DOSNAME = 'dos.library';
+
+const // Checked OK 04.08.2011 ALB
+ DOSTRUE = -1;
+ DOSFALSE = 0;
+
+const // Checked OK 04.08.2011 ALB
+ MODE_OLDFILE = 1005;
+ MODE_NEWFILE = 1006;
+ MODE_READWRITE = 1004;
+
+const // Checked OK 04.08.2011 ALB
+ OFFSET_BEGINNING = -1;
+ OFFSET_CURRENT = 0;
+ OFFSET_END = 1;
+
+const // Checked OK 04.08.2011 ALB
+ BITSPERBYTE = 8;
+ BYTESPERLONG = 4;
+ BITSPERLONG = 32;
+ _MAXINT = $7FFFFFFF;
+ _MININT = $80000000;
+
+const // Checked OK 04.08.2011 ALB
+ SHARED_LOCK = -2;
+ ACCESS_READ = SHARED_LOCK;
+ EXCLUSIVE_LOCK = -1;
+ ACCESS_WRITE = EXCLUSIVE_LOCK;
+
+type // Checked OK 04.08.2011 ALB
+ PDateStamp = ^TDateStamp;
+ TDateStamp = record
+ ds_Days : LongInt;
+ ds_Minute: LongInt;
+ ds_Tick : LongInt;
+ end;
+
+const // Checked OK 04.08.2011 ALB
+ TICKS_PER_SECOND = 50;
+
+const // Checked OK 04.08.2011 ALB
+ MAXFILENAMELENGTH = 108;
+ MAXCOMMENTLENGTH = 80;
+
+type // Checked OK 04.08.2011 ALB
+ PFileInfoBlock = ^TFileInfoBlock;
+ TFileInfoBlock = record
+ fib_DiskKey : PtrUInt;
+ fib_DirEntryType: LongInt;
+ fib_FileName : array[0..MAXFILENAMELENGTH - 1] of char;
+ fib_Protection : LongInt;
+ fib_EntryType : LongInt;
+ fib_Size : LongInt;
+ fib_NumBlocks : LongInt;
+ fib_Date : TDateStamp;
+ fib_Comment : Array[0..MAXCOMMENTLENGTH - 1] Of char;
+
+ fib_OwnerUID : Word;
+ fib_OwnerGID : Word;
+
+ fib_Reserved : array[0..31] of char;
+ end;
+
+const // Checked OK 04.08.2011 ALB
+ FIBB_OTR_READ = 15;
+ FIBB_OTR_WRITE = 14;
+ FIBB_OTR_EXECUTE = 13;
+ FIBB_OTR_DELETE = 12;
+
+ FIBB_GRP_READ = 11;
+ FIBB_GRP_WRITE = 10;
+ FIBB_GRP_EXECUTE = 9;
+ FIBB_GRP_DELETE = 8;
+
+ FIBB_SCRIPT = 6; // File is a script (DOS or ARexx).
+ FIBB_PURE = 5; // Make program resident on execution.
+ FIBB_ARCHIVE = 4; // File was archived (not used by OS).
+ FIBB_READ = 3; // File is readable.
+ FIBB_WRITE = 2; // File is writable.
+ FIBB_EXECUTE = 1; // File is executable (no scripts!).
+ FIBB_DELETE = 0; // File is deleteable.
+
+const // Checked OK 04.08.2011 ALB
+ FIBF_OTR_READ = (1 shl FIBB_OTR_READ);
+ FIBF_OTR_WRITE = (1 shl FIBB_OTR_WRITE);
+ FIBF_OTR_EXECUTE = (1 shl FIBB_OTR_EXECUTE);
+ FIBF_OTR_DELETE = (1 shl FIBB_OTR_DELETE);
+
+ FIBF_GRP_READ = (1 shl FIBB_GRP_READ);
+ FIBF_GRP_WRITE = (1 shl FIBB_GRP_WRITE);
+ FIBF_GRP_EXECUTE = (1 shl FIBB_GRP_EXECUTE);
+ FIBF_GRP_DELETE = (1 shl FIBB_GRP_DELETE);
+
+ FIBF_SCRIPT = (1 shl FIBB_SCRIPT);
+ FIBF_PURE = (1 shl FIBB_PURE);
+ FIBF_ARCHIVE = (1 shl FIBB_ARCHIVE);
+ FIBF_READ = (1 shl FIBB_READ);
+ FIBF_WRITE = (1 shl FIBB_WRITE);
+ FIBF_EXECUTE = (1 shl FIBB_EXECUTE);
+ FIBF_DELETE = (1 shl FIBB_DELETE);
+
+const // Checked OK 04.08.2011 ALB
+ FAULT_MAX = 82;
+
+
+type // Checked OK 04.08.2011 ALB
+ BPTR = Pointer;
+ BSTR = Pointer;
+
+type // Checked OK 04.08.2011 ALB
+ PInfoData = ^TInfoData;
+ TInfoData = record
+ id_NumSoftErrors: LongInt; // Number of soft errors on device.
+ id_UnitNumber : LongInt; // Unit number of device.
+ id_DiskState : LongInt; // State the current volume is in (see below).
+ id_NumBlocks : LongInt; // Number of blocks on device.
+ id_NumBlocksUsed: LongInt; // Number of blocks in use.
+ id_BytesPerBlock: LongInt; // Bytes per block.
+ id_DiskType : LongInt; // Type of disk (see below).
+ id_VolumeNode : BPTR;
+ id_InUse : PtrUInt; // Set, if device is in use.
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ ID_WRITE_PROTECTED = 80;
+ ID_VALIDATING = 81;
+ ID_VALIDATED = 82;
+
+ ID_NO_DISK_PRESENT = -1;
+ ID_UNREADABLE_DISK = $42414400;
+ ID_DOS_DISK = $444F5300;
+ ID_FFS_DISK = $444F5301;
+ ID_INTER_DOS_DISK = $444F5302;
+ ID_INTER_FFS_DISK = $444F5303;
+ ID_FASTDIR_DOS_DISK = $444F5304;
+ ID_FASTDIR_FFS_DISK = $444F5305;
+ ID_LNFS_DOS_DISK = $444F5306;
+ ID_LNFS_FFS_DISK = $444F5307;
+ ID_NOT_REALLY_DOS = $4E444F53;
+ ID_KICKSTART_DISK = $4B49434B;
+ ID_MSDOS_DISK = $4d534400;
+ ID_SFS_BE_DISK = $53465330;
+ ID_SFS_LE_DISK = $73667330;
+
+const // Checked OK 04.08.2011 ALB
+ ERROR_UNKNOWN = 100;
+ ERROR_NO_FREE_STORE = 103;
+ ERROR_TASK_TABLE_FULL = 105;
+ ERROR_BAD_TEMPLATE = 114;
+ ERROR_BAD_NUMBER = 115;
+ ERROR_REQUIRED_ARG_MISSING = 116;
+ ERROR_KEY_NEEDS_ARG = 117;
+ ERROR_TOO_MANY_ARGS = 118;
+ ERROR_UNMATCHED_QUOTES = 119;
+ ERROR_LINE_TOO_LONG = 120;
+ ERROR_FILE_NOT_OBJECT = 121;
+ ERROR_INVALID_RESIDENT_LIBRARY = 122;
+ ERROR_NO_DEFAULT_DIR = 201;
+ ERROR_OBJECT_IN_USE = 202;
+ ERROR_OBJECT_EXISTS = 203;
+ ERROR_DIR_NOT_FOUND = 204;
+ ERROR_OBJECT_NOT_FOUND = 205;
+ ERROR_BAD_STREAM_NAME = 206;
+ ERROR_OBJECT_TOO_LARGE = 207;
+ ERROR_ACTION_NOT_KNOWN = 209;
+ ERROR_INVALID_COMPONENT_NAME = 210;
+ ERROR_INVALID_LOCK = 211;
+ ERROR_OBJECT_WRONG_TYPE = 212;
+ ERROR_DISK_NOT_VALIDATED = 213;
+ ERROR_DISK_WRITE_PROTECTED = 214;
+ ERROR_RENAME_ACROSS_DEVICES = 215;
+ ERROR_DIRECTORY_NOT_EMPTY = 216;
+ ERROR_TOO_MANY_LEVELS = 217;
+ ERROR_DEVICE_NOT_MOUNTED = 218;
+ ERROR_SEEK_ERROR = 219;
+ ERROR_COMMENT_TOO_BIG = 220;
+ ERROR_DISK_FULL = 221;
+ ERROR_DELETE_PROTECTED = 222;
+ ERROR_WRITE_PROTECTED = 223;
+ ERROR_READ_PROTECTED = 224;
+ ERROR_NOT_A_DOS_DISK = 225;
+ ERROR_NO_DISK = 226;
+ ERROR_NO_MORE_ENTRIES = 232;
+
+ ERROR_IS_SOFT_LINK = 233;
+ ERROR_OBJECT_LINKED = 234;
+ ERROR_BAD_HUNK = 235;
+ ERROR_NOT_IMPLEMENTED = 236;
+ ERROR_RECORD_NOT_LOCKED = 240;
+ ERROR_LOCK_COLLISION = 241;
+ ERROR_LOCK_TIMEOUT = 242;
+ ERROR_UNLOCK_ERROR = 243;
+
+const // Checked OK 04.08.2011 ALB
+ RETURN_OK = 0;
+ RETURN_WARN = 5;
+ RETURN_ERROR = 10;
+ RETURN_FAIL = 20;
+
+const // Checked OK 04.08.2011 ALB
+ SIGBREAKB_CTRL_C = 12;
+ SIGBREAKB_CTRL_D = 13;
+ SIGBREAKB_CTRL_E = 14;
+ SIGBREAKB_CTRL_F = 15;
+
+ SIGBREAKF_CTRL_C = (1 shl SIGBREAKB_CTRL_C);
+ SIGBREAKF_CTRL_D = (1 shl SIGBREAKB_CTRL_D);
+ SIGBREAKF_CTRL_E = (1 shl SIGBREAKB_CTRL_E);
+ SIGBREAKF_CTRL_F = (1 shl SIGBREAKB_CTRL_F);
+
+const // Checked OK 04.08.2011 ALB
+ LOCK_DIFFERENT = -1;
+ LOCK_SAME = 0;
+ LOCK_SAME_VOLUME = 1;
+
+const // Checked OK 04.08.2011 ALB
+ CHANGE_LOCK = 0;
+ CHANGE_FH = 1;
+
+const // Checked OK 04.08.2011 ALB
+ LINK_HARD = 0;
+ LINK_SOFT = 1;
+
+const // Checked OK 04.08.2011 ALB
+ ITEM_EQUAL = -2;
+ ITEM_ERROR = -1;
+ ITEM_NOTHING = 0;
+ ITEM_UNQUOTED = 1;
+ ITEM_QUOTED = 2;
+
+const // Checked OK 04.08.2011 ALB
+ DOS_FILEHANDLE = 0;
+ DOS_EXALLCONTROL = 1;
+ DOS_FIB = 2;
+ DOS_STDPKT = 3;
+ DOS_CLI = 4;
+ DOS_RDARGS = 5;
+
+
+
+{ * dos date/time definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 04.08.2011 ALB
+ { * Required to avoid conflict with default types * }
+ _PDateTime = ^_TDateTime;
+ _TDateTime = record
+ dat_Stamp : TDateStamp;
+ dat_Format : Byte;
+ dat_Flags : Byte;
+ dat_StrDay : PByte;
+ dat_StrDate: PByte;
+ dat_StrTime: PByte;
+ end;
+
+const // Checked OK 04.08.2011 ALB
+ LEN_DATSTRING = 16;
+
+const // Checked OK 04.08.2011 ALB
+ DTB_SUBST = 0;
+ DTF_SUBST = (1 Shl DTB_SUBST);
+ DTB_FUTURE = 1;
+ DTF_FUTURE = (1 Shl DTB_FUTURE);
+
+const // Checked OK 04.08.2011 ALB
+ FORMAT_DOS = 0;
+ FORMAT_INT = 1;
+ FORMAT_USA = 2;
+ FORMAT_CDN = 3;
+ FORMAT_MAX = FORMAT_CDN;
+ FORMAT_DEF = 4;
+
+
+
+{ * dos extended structures definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 04.08.2011 ALB
+ PProcess = ^TProcess;
+ TProcess = record
+ pr_Task : TTask; // Embedded task structure
+ pr_MsgPort : TMsgPort; // Processes standard message-port. Used for various puposes.
+ pr_Pad : Word; // Private
+ pr_SegList : BPTR; // SegList array, used by this process.
+ pr_StackSize : LongInt; // StackSize of the current process.
+ pr_GlobVec : Pointer;
+ pr_TaskNum : LongInt; // CLI process number. This may be 0, in which case the process is not connected to a CLI.
+ pr_StackBase : BPTR; // Pointer to upper end of stack.
+ pr_Result2 : PtrInt; // Secondary return-value
+ pr_CurrentDir : BPTR; // Lock of the current directory
+ pr_CIS : BPTR; { BPTR }
+ pr_COS : BPTR; { BPTR }
+ pr_ConsoleTask : Pointer;
+ pr_FileSystemTask: Pointer;
+ pr_CLI : BPTR; { BPTR }
+ pr_ReturnAddr : Pointer;
+ pr_PktWait : Pointer;
+ pr_WindowPtr : Pointer;
+ pr_HomeDir : BPTR; { BPTR }
+ pr_Flags : LongInt;
+ pr_ExitCode : Pointer; { Procedure }
+ pr_ExitData : PtrUInt;
+ pr_Arguments : PChar;
+ pr_LocalVars : TMinList;
+ pr_ShellPrivate : DWord;
+ pr_CES : BPTR; { BPTR }
+ end;
+
+const // Checked OK 04.08.2011 ALB
+ PRB_FREESEGLIST = 0;
+ PRF_FREESEGLIST = (1 shl PRB_FREESEGLIST);
+
+ PRB_FREECURRDIR = 1;
+ PRF_FREECURRDIR = (1 shl PRB_FREECURRDIR);
+
+ PRB_FREECLI = 2;
+ PRF_FREECLI = (1 shl PRB_FREECLI);
+
+ PRB_CLOSEINPUT = 3;
+ PRF_CLOSEINPUT = (1 shl PRB_CLOSEINPUT);
+
+ PRB_CLOSEOUTPUT = 4;
+ PRF_CLOSEOUTPUT = (1 shl PRB_CLOSEOUTPUT);
+
+ PRB_FREEARGS = 5;
+ PRF_FREEARGS = (1 shl PRB_FREEARGS);
+
+ PRB_CLOSEERROR = 6;
+ PRF_CLOSEERROR = (1 shl PRB_CLOSEERROR);
+
+ PRB_SYNCHRONOUS = 7;
+ PRF_SYNCHRONOUS = (1 shl PRB_SYNCHRONOUS);
+
+ PRB_WAITINGFORCHILD = 8; // This one is subject to change!
+ PRF_WAITINGFORCHILD = (1 shl PRB_WAITINGFORCHILD);
+
+ PRB_NOTIFYONDEATH = 9;
+ PRF_NOTIFYONDEATH = (1 shl PRB_NOTIFYONDEATH);
+
+type // Checked OK 04.08.2011 ALB
+ PFileHandle = ^TFileHandle;
+ TFileHandle = record
+ // The next three are used with packet-based filesystems
+ fh_Flags : DWord;
+ fh_Interactive: PMsgPort; // packet reply port // alias -> fh_Port
+ fh_Type : PMsgPort; // port to send packets to
+
+ fh_Buf : BPTR;
+ fh_Pos : LongInt;
+ fh_End : LongInt;
+
+ fh_Func1 : LongInt;
+ fh_Func2 : LongInt;
+ fh_Func3 : Pointer;
+ fh_Arg1 : PtrInt;
+ fh_Arg2 : Pointer;
+
+ { *** V39+ *** }
+ fh_Size : DWord;
+ fh_Buf2 : BPTR;
+ end;
+
+(* OBSOLETE *************************
+type
+ PDOSPacket = ^TDOSPacket;
+ TDOSPacket = record
+ dp_Link: PMessage;
+ dp_Port: PMsgPort;
+ case Byte of
+ 0 : ( dp_Action : Longint;
+ dp_Status : Longint;
+ dp_Status2: Longint;
+ dp_BufAddr: Longint;
+ );
+ 1 : ( dp_Type: Longint;
+ dp_Res1: Longint;
+ dp_Res2: Longint;
+ dp_Arg1: Longint;
+ dp_Arg2: Longint;
+ dp_Arg3: Longint;
+ dp_Arg4: Longint;
+ dp_Arg5: Longint;
+ dp_Arg6: Longint;
+ dp_Arg7: Longint;
+ );
+ end;
+
+type
+ PStandardPacket = ^TStandardPacket;
+ TStandardPacket = record
+ sp_Msg: TMessage;
+ sp_Pkt: TDOSPacket;
+ end;
+
+
+const
+ ACTION_NIL = 0;
+ ACTION_STARTUP = 0;
+ ACTION_GET_BLOCK = 2; { *** OBSOLETE *** }
+ ACTION_SET_MAP = 4;
+ ACTION_DIE = 5;
+ ACTION_EVENT = 6;
+ ACTION_CURRENT_VOLUME = 7;
+ ACTION_LOCATE_OBJECT = 8;
+ ACTION_RENAME_DISK = 9;
+ ACTION_WRITE = 'W';
+ ACTION_READ = 'R';
+ ACTION_FREE_LOCK = 15;
+ ACTION_DELETE_OBJECT = 16;
+ ACTION_RENAME_OBJECT = 17;
+ ACTION_MORE_CACHE = 18;
+ ACTION_COPY_DIR = 19;
+ ACTION_WAIT_CHAR = 20;
+ ACTION_SET_PROTECT = 21;
+ ACTION_CREATE_DIR = 22;
+ ACTION_EXAMINE_OBJECT = 23;
+ ACTION_EXAMINE_NEXT = 24;
+ ACTION_DISK_INFO = 25;
+ ACTION_INFO = 26;
+ ACTION_FLUSH = 27;
+ ACTION_SET_COMMENT = 28;
+ ACTION_PARENT = 29;
+ ACTION_TIMER = 30;
+ ACTION_INHIBIT = 31;
+ ACTION_DISK_TYPE = 32;
+ ACTION_DISK_CHANGE = 33;
+ ACTION_SET_DATE = 34;
+
+ ACTION_SAME_LOCK = 40;
+
+ ACTION_SCREEN_MODE = 994;
+
+ ACTION_CHANGE_SIGNAL = 995;
+
+ ACTION_READ_RETURN = 1001;
+ ACTION_WRITE_RETURN = 1002;
+ ACTION_SEEK = 1008;
+ ACTION_FINDUPDATE = 1004;
+ ACTION_FINDINPUT = 1005;
+ ACTION_FINDOUTPUT = 1006;
+ ACTION_END = 1007;
+
+ ACTION_FORMAT = 1020;
+ ACTION_MAKE_LINK = 1021;
+
+ ACTION_SET_FILE_SIZE = 1022;
+ ACTION_WRITE_PROTECT = 1023;
+
+ ACTION_READ_LINK = 1024;
+ ACTION_FH_FROM_LOCK = 1026;
+ ACTION_IS_FILESYSTEM = 1027;
+ ACTION_CHANGE_MODE = 1028;
+
+ ACTION_COPY_DIR_FH = 1030;
+ ACTION_PARENT_FH = 1031;
+ ACTION_EXAMINE_ALL = 1033;
+ ACTION_EXAMINE_FH = 1034;
+
+ ACTION_EXAMINE_ALL_END = 1035;
+ ACTION_SET_OWNER = 1036;
+
+ ACTION_LOCK_RECORD = 2008;
+ ACTION_FREE_RECORD = 2009;
+
+ ACTION_ADD_NOTIFY = 4097;
+ ACTION_REMOVE_NOTIFY = 4098;
+
+ ACTION_SERIALIZE_DISK = 4200;
+
+ ACTION_GET_DISK_FSSM = 4201;
+ ACTION_FREE_DISK_FSSM = 4202;
+
+*)
+
+type // Checked OK 04.08.2011 ALB
+ PErrorString = ^TErrorString;
+ TErrorString = record
+ estr_Nums: PLongInt;
+ estr_Strings: PChar;
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PRootNode = ^TRootNode;
+ TRootNode = record
+ rn_TaskArray : BPTR; { BPTR }
+ rn_ConsoleSegment : BPTR; { BPTR }
+ rn_Time : TDateStamp;
+ rn_RestartSeg : Pointer;
+ rn_Info : BPTR; { BPTR }
+ rn_FileHandlerSegment: BPTR; { BPTR }
+ rn_CliList : TMinList;
+ rn_BootProc : PMsgPort;
+ rn_ShellSegment : BPTR; { BPTR }
+ rn_Flags : LongInt;
+ // Aros Special
+ rn_RootLock : TSignalSemaphore;
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ // AROS Specific
+ PCLIInfo = ^TCLIInfo;
+ TCLIInfo = record
+ ci_Node: TNode;
+ ci_Process: PProcess;
+ end;
+
+
+type // Checked OK 05.08.2011 ALB
+ PDOSLibrary = ^TDOSLibrary;
+ TDOSLibrary = record
+ dl_Lib : TLibrary;
+ dl_Root : PRootNode;
+ {$ifdef AROS_BINCOMPAT}
+ dl_GV : Pointer;
+ dl_A2 : LongInt;
+ dl_A5 : LongInt;
+ dl_A6 : LongInt;
+ {$endif}
+ dl_Errors : PErrorString;
+ dl_TimeReq : PTimeRequest;
+ dl_UtilityBase : PLibrary;
+ dl_IntuitionBase: PLibrary;
+ // AROS Specific private Fields
+ dl_TimerBase : PDevice;
+ dl_TimerIO : TTimeRequest;
+ dl_DevInfo : BPTR; //PDosList;
+ dl_SysBase : PExecBase;
+ dl_SegList : BPTR;
+ dl_NulHandler : PDevice;
+ dl_NulLock : PUnit;
+ // LDDemon private Data
+ dl_LDObjectsListSigSem : TSignalSemaphore;
+ dl_LDObjectsList : TEList;
+ dl_LDHandler : TInterrupt;
+ dl_LDDemonPort : PMsgPort;
+ dl_LDDemonTask : PProcess;
+ dl_LDReturn : Cardinal;
+
+ // AROS-specific and private. Can go away in future
+ dl_SYSLock: BPTR;
+ // The flags are ORed with RootNode->rn_Flags. See below for definitions.
+ dl_Flags: Cardinal;
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ RNB_WILDSTAR = 24;
+ RNF_WILDSTAR = (1 Shl RNB_WILDSTAR);
+
+type // Checked OK 04.08.2011 ALB
+ PDOSInfo = ^TDOSInfo;
+ TDOSInfo = record
+ di_McName : BPTR; { BPTR }
+ di_DevInfo : BPTR; { BPTR }
+ di_Devices : BPTR; { BPTR }
+ di_Handlers : BPTR; { BPTR }
+ di_NetHand : BPTR; // Alias di_ResList
+ di_DevLock : TSignalSemaphore;
+ di_EntryLock : TSignalSemaphore;
+ di_DeleteLock: TSignalSemaphore;
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PSegment = ^TSegment;
+ TSegment = record
+ seg_Next : PSegment; // Pointer to next segment.
+ seg_UC : LongInt;
+ seg_Seg : BPTR; { BPTR }
+ seg_Name : Array[0..3] of char;
+ { * seg_Name continues * }
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ CMD_SYSTEM = -1;
+ CMD_INTERNAL = -2;
+ CMD_DISABLED = -999;
+
+type // Checked TODO 04.08.2011 ALB
+ PDeviceList = ^TDeviceList;
+ TDeviceList = record
+ dl_Next : PDeviceList; { BPTR }
+ dl_Type : LongInt;
+ dl_Task : PMsgPort;
+ dl_Lock : BPTR; { BPTR }
+ dl_VolumeDate: TDateStamp;
+ dl_LockList : BPTR; { BPTR }
+ dl_DiskType : LongInt;
+ dl_unused : LongInt;
+ // Padding Bytes?
+ dl_Name : BSTR; { BSTR }
+ // Missing DosListAROSExt
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PFileLock = ^TFileLock;
+ TFileLock = record
+ fl_Link : PFileLock; // (PFileLock) Pointer to next lock.
+ fl_Key : PtrUInt;
+ fl_Access: LongInt;
+ fl_Task : PMsgPort;
+ fl_Volume: PDeviceList; // (BPTR)
+ end;
+
+
+type // Checked OK 04.08.2011 ALB
+ PCommandLineInterface = ^TCommandLineInterface;
+ TCommandLineInterface = record
+ cli_Result2 : LongInt; // Secondary error code, set by last command.
+ cli_SetName : BSTR; // Name of the current directory.
+ cli_CommandDir : PFileLock; // Lock of the first directory in path.
+ cli_ReturnCode : LongInt; // Error code, the last command returned.
+ cli_CommandName : BSTR; // Name of the command that is currently executed.
+ cli_FailLevel : LongInt; // Fail-Level as set by the command "FailAt".
+ cli_Prompt : BSTR; // Current prompt in the CLI window.
+ cli_StandardInput : PFileLock; // Standard/Default input file.
+ cli_CurrentInput : PFileLock; // Current input file.
+ cli_CommandFile : BSTR; // Name of the file that is currently executed.
+ cli_Interactive : LongInt; // TRUE if the currently CLI is connected to a controlling terminal, otherwise FALSE.
+ cli_Background : LongInt; // FALSE if there is no controlling terminal, otherwise TRUE.
+ cli_CurrentOutput : PFileLock; // Current output file. }
+ cli_DefaultStack : LongInt; // Default stack size as set by the command "Stack"
+ cli_StandardOutput: PFileLock; // Standard/Default output file.
+ cli_Module : BPTR; // SegList of currently loaded command.
+ // Aros Specific Part
+ cli_Standard_Error: PFileLock; // Standard/Default Error file.
+ end;
+
+const // Checked OK 04.08.2011 ALB
+ CLI_DEFAULTSTACK_UNIT = SizeOf(PtrUInt);
+
+type // Checked TODO 04.08.2011 ALB
+ PDevInfo = ^TDevInfo;
+ TDevInfo = record
+ dvi_Next : PDevInfo; { BPTR }
+ dvi_Type : LongInt;
+ dvi_Task : PMsgPort;
+ dvi_Lock : BPTR; { BPTR }
+ dvi_Handler : BSTR; { BSTR }
+ dvi_StackSize: LongInt;
+ dvi_Priority : LongInt;
+ dvi_Startup : BPTR;
+ dvi_NoAROS1 : BPTR; { BPTR }
+ dvi_NoAROS2 : BPTR; { BPTR }
+ dvi_Name : BSTR; { BSTR }
+ // missing Aros Extension... DosListAROSExt;
+ end;
+
+type // Checked TODO 04.08.2011 ALB
+ PAssignList = ^TAssignList;
+ TAssignList = record
+ al_Next: PAssignList; // Pointer to next assign node.
+ al_Lock: PFileLock; // Lock of on of the directories.
+ end;
+
+type // Checked TODO 04.08.2011 ALB
+ PDOSList = ^TDOSList;
+ TDOSList = record
+ dol_Next: BPTR; // PDOSList
+ dol_Type: LongInt;
+ dol_Task: PMsgPort;
+ dol_Lock: PFileLock; { BPTR }
+ case Byte of
+ 0: ( dol_handler : record
+ dol_Handler : BSTR; { BSTR }
+ dol_StackSize: LongInt;
+ dol_Priority : LongInt;
+ dol_Startup : BPTR;
+ dol_NoAROS1 : BPTR; { BPTR }
+ dol_NoAROS2 : BPTR; { BPTR }
+ dol_NoAROS3 : BPTR; { BPTR }
+ end;
+ );
+ 1: ( dol_volume : record
+ dol_VolumeDate: TDateStamp;
+ dol_LockList : BPTR; { BPTR }
+ dol_DiskType : LongInt;
+ dol_unused : BPTR;
+ end;
+ );
+ 2: ( dol_assign : record
+ dol_AssignName: PChar;
+ dol_List : PAssignList;
+ end;
+ );
+ 3: ( dol_Misc: array[0..23] of Byte;
+ dol_Name: BSTR;
+ );
+ // missing Aros Extension... DosListAROSExt;
+ end;
+
+const // Checked OK 04.08.2011 ALB
+ DLT_DEVICE = 0;
+ DLT_DIRECTORY = 1;
+ DLT_VOLUME = 2;
+ DLT_LATE = 3;
+ DLT_NONBINDING = 4;
+ DLT_PRIVATE = -1;
+
+
+type // Checked OK 04.08.2011 ALB
+ PDevProc = ^TDevProc;
+ TDevProc = record
+ dvp_Port : PMsgPort;
+ dvp_Lock : PFileLock; { BPTR }
+ dvp_Flags : DWord; // see below
+ dvp_DevNode: PDOSList; // Private
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ DVPB_UNLOCK = 0;
+ DVPF_UNLOCK = (1 shl DVPB_UNLOCK);
+
+ DVPB_ASSIGN = 1;
+ DVPF_ASSIGN = (1 shl DVPB_ASSIGN);
+
+const // Checked OK 04.08.2011 ALB
+ LDB_READ = 0;
+ LDF_READ = (1 shl LDB_READ);
+
+ LDB_WRITE = 1;
+ LDF_WRITE = (1 shl LDB_WRITE);
+
+ LDB_DEVICES = 2;
+ LDF_DEVICES = (1 shl LDB_DEVICES);
+
+ LDB_VOLUMES = 3;
+ LDF_VOLUMES = (1 shl LDB_VOLUMES);
+
+ LDB_ASSIGNS = 4;
+ LDF_ASSIGNS = (1 shl LDB_ASSIGNS);
+
+ LDB_ENTRY = 5;
+ LDF_ENTRY = (1 shl LDB_ENTRY);
+
+ LDB_DELETE = 6;
+ LDF_DELETE = (1 shl LDB_DELETE);
+
+ LDF_ALL = (LDF_DEVICES or LDF_VOLUMES or LDF_ASSIGNS);
+
+
+const // Checked OK 04.08.2011 ALB
+ REPORT_STREAM = 0;
+ REPORT_TASK = 1;
+ REPORT_LOCK = 2;
+ REPORT_VOLUME = 3;
+ REPORT_INSERT = 4;
+
+const // Checked OK 04.08.2011 ALB
+ ABORT_DISK_ERROR = 296;
+ ABORT_BUSY = 288;
+
+const // Checked OK 04.08.2011 ALB
+ RUN_EXECUTE = -1;
+ RUN_SYSTEM = -2;
+ RUN_SYSTEM_ASYNCH = -3;
+
+const // Checked OK 04.08.2011 ALB
+ ST_ROOT = 1;
+ ST_USERDIR = 2;
+ ST_SOFTLINK = 3;
+ ST_LINKDIR = 4;
+ ST_FILE = -3;
+ ST_LINKFILE = -4;
+ ST_PIPEFILE = -5;
+
+
+{ * dos asl definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 04.08.2011 ALB
+ PAChain = ^TAChain;
+ TAChain = record
+ an_Child : PAChain;
+ an_Parent: PAChain;
+ an_Lock : BPTR;
+ an_Info : TFileInfoBlock;
+ an_Flags : ShortInt;
+ an_String: array[0..0] of Char;
+ { * an_String continues * }
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PAnchorPath = ^TAnchorPath;
+ TAnchorPath = record
+ case Byte of // its not defined in AROS struct just by defines...
+ 0 : ( ap_First: PAChain;
+ ap_Last: PAChain;
+ ap_L1: LongInt;
+ ap_L2: LongInt;
+ ap_Length: ShortInt;
+ );
+ 1 : ( ap_Base: PAChain;
+ ap_Current: PAChain;
+ ap_BreakBits: LongInt;
+ ap_FoundBreak: LongInt;
+ ap_Flags: ShortInt;
+ ap_Reserved: ShortInt;
+ ap_Strlen: SmallInt;
+ ap_Info: TFileInfoBlock;
+ ap_Buf: array[0..0] of char;
+ { * an_Buf continues * }
+ );
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ // Please check for wildcards in supplied string.
+ APB_DOWILD = 0;
+ APF_DOWILD = (1 Shl APB_DOWILD);
+ // There is actually a wildcard in the supplied string. READ-ONLY
+ APB_ITSWILD = 1;
+ APF_ITSWILD = (1 Shl APB_ITSWILD);
+ // Set, if a directory is to be entered. Applications may clear this bit to prohibit the
+ // matching-functions from entering a directory.
+ APB_DODIR = 2;
+ APF_DODIR = (1 Shl APB_DODIR);
+ // Set, if directory was already searched. READ-ONLY
+ APB_DIDDIR = 3;
+ APF_DIDDIR = (1 Shl APB_DIDDIR);
+ // Set, if function was out of memory. READ-ONLY
+ APB_NOMEMERR = 4;
+ APF_NOMEMERR = (1 Shl APB_NOMEMERR);
+ // '.' may refer to the current directory (unix-style).
+ APB_DODOT = 5;
+ APF_DODOT = (1 Shl APB_DODOT);
+ // Directory changed since last call.
+ APB_DirChanged = 6;
+ APF_DirChanged = (1 Shl APB_DirChanged);
+ // Follow hardlinks, too.
+ APB_FollowHLinks = 7;
+ APF_FollowHLinks = (1 Shl APB_FollowHLinks);
+
+const // Checked OK 04.08.2011 ALB
+ DDB_PatternBit = 0;
+ DDF_PatternBit = (1 Shl DDB_PatternBit);
+
+ DDB_ExaminedBit = 1;
+ DDF_ExaminedBit = (1 Shl DDB_ExaminedBit);
+
+ DDB_Completed = 2;
+ DDF_Completed = (1 Shl DDB_Completed);
+
+ DDB_AllBit = 3;
+ DDF_AllBit = (1 Shl DDB_AllBit);
+
+ DDB_Single = 4;
+ DDF_Single = (1 Shl DDB_Single);
+
+const // Checked OK 04.08.2011 ALB
+ P_ANY = $80; // Matches everything ('#?' and '*')
+ P_SINGLE = $81; // Any character ('?')
+ P_ORSTART = $82; // Opening parenthesis for OR'ing ('(')
+ P_ORNEXT = $83; // Field delimiter for OR'ing ('|')
+ P_OREND = $84; // Closing parenthesis for OR'ing (')')
+ P_NOT = $85; // Inversion ('~')
+ P_NOTEND = $86; // Inversion end
+ P_NOTCLASS = $87; // Inversion class ('^')
+ P_CLASS = $88; // Class ('[' and ']')
+ P_REPBEG = $89; // Beginning of repetition ('[')
+ P_REPEND = $8A; // End of repetition (']')
+ P_STOP = $8B;
+
+const // Checked OK 04.08.2011 ALB
+ COMPLEX_BIT = 1;
+ EXAMINE_BIT = 2;
+
+const // Checked OK 04.08.2011 ALB
+ ERROR_BUFFER_OVERFLOW = 303;
+ ERROR_BREAK = 304;
+ ERROR_NOT_EXECUTABLE = 305;
+
+
+
+{ * dos hunk definitions
+ *********************************************************************
+ * }
+
+
+const // Checked OK 04.08.2011 ALB
+ HUNK_UNIT = 999;
+ HUNK_NAME = 1000;
+ HUNK_CODE = 1001;
+ HUNK_DATA = 1002;
+ HUNK_BSS = 1003;
+
+ HUNK_RELOC32 = 1004;
+ HUNK_ABSRELOC32 = HUNK_RELOC32;
+
+ HUNK_RELOC16 = 1005;
+ HUNK_RELRELOC16 = HUNK_RELOC16;
+
+ HUNK_RELOC8 = 1006;
+ HUNK_RELRELOC8 = HUNK_RELOC8;
+
+ HUNK_EXT = 1007;
+ HUNK_SYMBOL = 1008;
+ HUNK_DEBUG = 1009;
+ HUNK_END = 1010;
+ HUNK_HEADER = 1011;
+
+ HUNK_OVERLAY = 1013;
+ HUNK_BREAK = 1014;
+
+ HUNK_DREL32 = 1015;
+ HUNK_DREL16 = 1016;
+ HUNK_DREL8 = 1017;
+
+ HUNK_LIB = 1018;
+ HUNK_INDEX = 1019;
+
+ HUNK_RELOC32SHORT = 1020;
+
+ HUNK_RELRELOC32 = 1021;
+ HUNK_ABSRELOC16 = 1022;
+
+const // Checked OK 04.08.2011 ALB
+ HUNKB_ADVISORY = 29;
+ HUNKB_CHIP = 30;
+ HUNKB_FAST = 31;
+
+ HUNKF_ADVISORY = (1 shl HUNKB_ADVISORY);
+ HUNKF_CHIP = (1 shl HUNKB_CHIP);
+ HUNKF_FAST = (1 shl HUNKB_FAST);
+
+const // Checked OK 04.08.2011 ALB
+ EXT_SYMB = 0;
+ EXT_DEF = 1;
+ EXT_ABS = 2;
+
+ EXT_REF32 = 129;
+ EXT_ABSREF32 = EXT_REF32;
+
+ EXT_COMMON = 130;
+ EXT_ABSCOMMON = EXT_COMMON;
+
+ EXT_REF16 = 131;
+ EXT_RELREF16 = EXT_REF16;
+
+ EXT_REF8 = 132;
+ EXT_RELREF8 = EXT_REF8;
+
+ EXT_DEXT32 = 133;
+ EXT_DEXT16 = 134;
+ EXT_DEXT8 = 135;
+
+ EXT_RELREF32 = 136;
+ EXT_RELCOMMON = 137;
+
+ EXT_ABSREF16 = 138;
+
+ EXT_ABSREF8 = 139;
+
+
+
+{ * dos ExAll definitions
+ *********************************************************************
+ * }
+
+
+const // Checked OK 04.08.2011 ALB
+ ED_NAME = 1;
+ ED_TYPE = 2;
+ ED_SIZE = 3;
+ ED_PROTECTION = 4;
+ ED_DATE = 5;
+ ED_COMMENT = 6;
+ ED_OWNER = 7;
+
+
+type // Checked OK 04.08.2011 ALB
+ PExAllData = ^TExAllData;
+ TExAllData = record
+ ed_Next : PExAllData;
+ ed_Name : PChar;
+ ed_Type : LongInt;
+ ed_Size : Cardinal;
+ ed_Prot : Cardinal;
+ ed_Days : Cardinal;
+ ed_Mins : Cardinal;
+ ed_Ticks : Cardinal;
+ ed_Comment : PChar;
+ ed_OwnerUID: Word;
+ ed_OwnerGID: Word;
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PExAllControl = ^TExAllControl;
+ TexAllControl = record
+ eac_Entries : Cardinal;
+ eac_LastKey : PtrUInt; // private
+ eac_MatchString: PChar;
+ eac_MatchFunc : PHook;
+ end;
+
+
+
+{ * dos record definitions
+ *********************************************************************
+ * }
+
+
+const // Checked OK 04.08.2011 ALB
+ REC_EXCLUSIVE = 0;
+ REC_EXCLUSIVE_IMMED = 1;
+ REC_SHARED = 2;
+ REC_SHARED_IMMED = 3;
+
+
+type // Checked OK 04.08.2011 ALB
+ PRecordLock = ^TRecordLock;
+ TRecordLock = record
+ rec_FH : PFileHandle;
+ rec_Offset: Cardinal;
+ rec_Length: Cardinal;
+ rec_Mode : Cardinal;
+ end;
+
+
+
+{ * dos tag definitions
+ *********************************************************************
+ * }
+
+
+const // Checked OK 04.08.2011 ALB
+ SYS_Dummy = (TAG_USER + 32);
+ SYS_Input = (SYS_Dummy + 1);
+ SYS_Output = (SYS_Dummy + 2);
+ SYS_Asynch = (SYS_Dummy + 3);
+ SYS_UserShell = (SYS_Dummy + 4);
+ SYS_CustomShell = (SYS_Dummy + 5);
+
+ { *** Aros Specific *** }
+ SYS_Error = (SYS_Dummy + 10);
+ SYS_ScriptInput = (SYS_Dummy + 11);
+ SYS_Background = (SYS_Dummy + 12);
+ SYS_CliNumPtr = (SYS_Dummy + 13);
+
+ SYS_DupStream = 1;
+
+const // Checked OK 04.08.2011 ALB
+ NP_Dummy = (TAG_USER + 1000);
+ NP_Seglist = (NP_Dummy + 1);
+ NP_FreeSeglist = (NP_Dummy + 2);
+ NP_Entry = (NP_Dummy + 3);
+ NP_Input = (NP_Dummy + 4);
+ NP_Output = (NP_Dummy + 5);
+ NP_CloseInput = (NP_Dummy + 6);
+ NP_CloseOutput = (NP_Dummy + 7);
+ NP_Error = (NP_Dummy + 8);
+ NP_CloseError = (NP_Dummy + 9);
+ NP_CurrentDir = (NP_Dummy + 10);
+ NP_StackSize = (NP_Dummy + 11);
+ NP_Name = (NP_Dummy + 12);
+ NP_Priority = (NP_Dummy + 13);
+ NP_ConsoleTask = (NP_Dummy + 14);
+ NP_WindowPtr = (NP_Dummy + 15);
+ NP_HomeDir = (NP_Dummy + 16);
+ NP_CopyVars = (NP_Dummy + 17);
+ NP_Cli = (NP_Dummy + 18);
+ NP_Path = (NP_Dummy + 19);
+ NP_CommandName = (NP_Dummy + 20);
+ NP_Arguments = (NP_Dummy + 21);
+
+ NP_NotifyOnDeath = (NP_Dummy + 22);
+ NP_Synchronous = (NP_Dummy + 23);
+ NP_ExitCode = (NP_Dummy + 24);
+ NP_ExitData = (NP_Dummy + 25);
+
+ { *** AROS Specific *** }
+ NP_UserData = (NP_Dummy + 26);
+
+const // Checked OK 04.08.2011 ALB
+ ADO_Dummy = (TAG_USER + 2000);
+ ADO_FH_Mode = (ADO_Dummy + 1);
+
+ ADO_DirLen = (ADO_Dummy + 2);
+ ADO_CommNameLen = (ADO_Dummy + 3);
+ ADO_CommFileLen = (ADO_Dummy + 4);
+ ADO_PromptLen = (ADO_Dummy + 5);
+
+
+
+{ * dos stdio definitions
+ *********************************************************************
+ * }
+
+
+const // Checked OK 04.08.2011 ALB
+ BUF_LINE = 0;
+ BUF_FULL = 1;
+ BUF_NONE = 2;
+
+const // Checked OK 04.08.2011 ALB
+ ENDSTREAMCH = -1;
+
+
+
+{ * dos env-var definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 04.08.2011 ALB
+ PLocalVar = ^TLocalVar;
+ TLocalVar = record
+ lv_Node : TNode;
+ lv_Flags: Word;
+ lv_Value: PChar;
+ lv_Len : Cardinal;
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PScanVarsMsg = ^TScanVarsMsg;
+ TScanVarsMsg = record
+ sv_SVMSize: Cardinal; // Size of ScanVarsMsg structure
+ sv_Flags: Cardinal; // The flags parameter given to ScanVars()
+ sv_GDir: PChar; // Directory patch for global variables or empty string "\0" for local variables
+ sv_Name: PChar; // Name of the variable
+ sv_Var: PChar; // Pointer to the contents of the variable
+ sv_VarLen: Cardinal; // Size of the variable
+ end;
+
+const // Checked OK 04.08.2011 ALB
+ LV_VAR = 0;
+ LV_ALIAS = 1;
+
+const // Checked OK 04.08.2011 ALB
+ LVB_IGNORE = 7;
+ LVF_IGNORE = (1 Shl LVB_IGNORE);
+
+ GVB_GLOBAL_ONLY = 8;
+ GVF_GLOBAL_ONLY = (1 Shl GVB_GLOBAL_ONLY);
+
+ GVB_LOCAL_ONLY = 9;
+ GVF_LOCAL_ONLY = (1 Shl GVB_LOCAL_ONLY);
+
+ GVB_BINARY_VAR = 10;
+ GVF_BINARY_VAR = (1 Shl GVB_BINARY_VAR);
+
+ GVB_DONT_NULL_TERM = 11;
+ GVF_DONT_NULL_TERM = (1 Shl GVB_DONT_NULL_TERM);
+
+ GVB_SAVE_VAR = 12;
+ GVF_SAVE_VAR = (1 Shl GVB_SAVE_VAR);
+
+
+
+{ * dos ReadArgs definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 04.08.2011 ALB
+ PCSource = ^TCSource;
+ TCSource = record
+ CS_Buffer: PChar;
+ CS_Length: LongInt;
+ CS_CurChr: LongInt;
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PRDArgs = ^TRDArgs;
+ TRDArgs = record
+ RDA_Source : TCSource;
+ RDA_DAList : PtrUInt;
+ RDA_Buffer : PChar;
+ RDA_BufSiz : LongInt;
+ RDA_ExtHelp: PChar;
+ RDA_Flags : LongInt;
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ RDAB_STDIN = 0;
+ RDAF_STDIN = (1 Shl RDAB_STDIN);
+
+ RDAB_NOALLOC = 1;
+ RDAF_NOALLOC = (1 Shl RDAB_NOALLOC);
+
+ RDAB_NOPROMPT = 2;
+ RDAF_NOPROMPT = (1 Shl RDAB_NOPROMPT);
+
+const // Checked OK 04.08.2011 ALB
+ MAX_TEMPLATE_ITEMS = 100;
+ MAX_MULTIARGS = 128;
+
+
+
+{ * dos filehandler definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 04.08.2011 ALB
+ PDosEnvec = ^TDosEnvec;
+ TDosEnvec = record
+ de_TableSize : PtrUInt;
+ de_SizeBlock : PtrUInt;
+ de_SecOrg : PtrUInt;
+ de_Surfaces : PtrUInt;
+ de_SectorPerBlock: PtrUInt;
+ de_BlocksPerTrack: PtrUInt;
+ de_Reserved : PtrUInt;
+ de_PreAlloc : PtrUInt;
+ de_Interleave : PtrUInt;
+ de_LowCyl : PtrUInt;
+ de_HighCyl : PtrUInt;
+ de_NumBuffers : PtrUInt;
+ de_BufMemType : PtrUInt;
+ de_MaxTransfer : PtrUInt;
+ de_Mask : PtrUInt;
+ de_BootPri : PtrInt;
+ de_DosType : PtrUInt;
+ de_Baud : PtrUInt;
+ de_Control : PtrUInt;
+ de_BootBlocks : PtrUInt;
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ DE_TABLESIZE = 0;
+ DE_SIZEBLOCK = 1;
+ DE_BLOCKSIZE = 2;
+ DE_NUMHEADS = 3;
+ DE_SECSPERBLOCK = 4;
+ DE_BLKSPERTRACK = 5;
+ DE_RESERVEDBLKS = 6;
+ DE_PREFAC = 7;
+ DE_INTERLEAVE = 8;
+ DE_LOWCYL = 9;
+ DE_HIGHCYL = 10;
+ DE_UPPERCYL = DE_HIGHCYL;
+ DE_NUMBUFFERS = 11;
+ DE_BUFMEMTYPE = 12;
+ DE_MEMBUFTYPE = DE_BUFMEMTYPE;
+ DE_MAXTRANSFER = 13;
+ DE_MASK = 14;
+ DE_BOOTPRI = 15;
+ DE_DOSTYPE = 16;
+ DE_BAUD = 17;
+ DE_CONTROL = 18;
+ DE_BOOTBLOCKS = 19;
+
+
+type // Checked OK 04.08.2011 ALB
+ PFileSysStartupMsg = ^TFileSysStartupMsg;
+ TFileSysStartupMsg = record
+ fssm_Unit : PtrUInt;
+ fssm_Device : BSTR;
+ fssm_Environ: BPTR;
+ fssm_Flags : Cardinal;
+ end;
+
+type // Checked TODO 04.08.2011 ALB
+ PDeviceNode = ^TDeviceNode;
+ TDeviceNode = record
+ dn_Next : PDeviceNode;
+ dn_Type : Cardinal;
+ dn_Task : PMsgPort;
+ dn_Lock : BPTR;
+ dn_Handler : BSTR;
+ dn_StackSize: Cardinal;
+ dn_Priority : LongInt;
+ dn_Startup : BPTR;
+ dn_SegList : BPTR;
+ dn_GlobalVec: BPTR;
+ dn_Name : BSTR;
+ // Missing Extension DosListAROSExt
+ end;
+
+{ * dos notification definitions
+ *********************************************************************
+ * }
+
+
+const // Checked OK 04.08.2011 ALB
+ NOTIFY_CLASS = $40000000;
+ NOTIFY_CODE = $1234;
+
+
+type // Checked OK 04.08.2011 ALB
+ PNotifyRequest = ^TNotifyRequest;
+ TNotifyRequest = record
+ nr_Name : PChar;
+ nr_FullName: PChar;
+ nr_UserData: Cardinal;
+ nr_Flags : Cardinal;
+ nr_stuff : record
+ case Byte of
+ 0 : ( nr_Msg : record
+ nr_Port: PMsgPort;
+ end );
+ 1 : ( nr_Signal : record
+ nr_Task : PTask;
+ nr_SignalNum: Byte;
+ nr_pad : array[0..2] of Byte;
+ end );
+ end;
+ nr_Reserved: array[0..3] of Cardinal;
+ nr_MsgCount: Cardinal;
+ nr_Handler : PMsgPort;
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PNotifyMessage = ^TNotifyMessage;
+ TNotifyMessage = record
+ nm_ExecMessage: TMessage;
+ nm_Class : Cardinal;
+ nm_Code : Word;
+ nm_NReq : PNotifyRequest;
+ nm_DoNotTouch : PtrUInt;
+ nm_DoNotTouch2: PtrUInt;
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ NRB_SEND_MESSAGE = 0;
+ NRB_SEND_SIGNAL = 1;
+ NRB_WAIT_REPLY = 3;
+ NRB_NOTIFY_INITIAL = 4;
+ NRB_MAGIC = 31;
+ NRF_SEND_MESSAGE = (1 shl NRB_SEND_MESSAGE);
+ NRF_SEND_SIGNAL = (1 shl NRB_SEND_SIGNAL);
+ NRF_WAIT_REPLY = (1 shl NRB_WAIT_REPLY);
+ NRF_NOTIFY_INITIAL = (1 shl NRB_NOTIFY_INITIAL);
+ NRF_MAGIC = (1 shl NRB_MAGIC);
+
+ NR_HANDLER_FLAGS = $ffff0000;
+
+
+
+
diff --git a/rtl/aros/i386/doslibf.inc b/rtl/aros/i386/doslibf.inc
new file mode 100644
index 0000000000..058608e653
--- /dev/null
+++ b/rtl/aros/i386/doslibf.inc
@@ -0,0 +1,59 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2011 by Marcus Sackrow
+
+ dos.library functions for AROS
+
+ 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 Open(name: PChar; accessMode: longint): Cardinal; syscall AOS_DOSBase 5;
+function dosClose(_file: Cardinal): LongBool; syscall AOS_DOSBase 6;
+function dosRead(_file: Cardinal; buffer: Pointer; length: longint): longint; syscall AOS_DOSBase 7;
+function dosWrite(_file: Cardinal; buffer: Pointer; length: longint): longint; syscall AOS_DOSBase 8;
+function dosInput: Cardinal; syscall AOS_DOSBase 9;
+function dosOutput: Cardinal; syscall AOS_DOSBase 10;
+function DosError1: Cardinal; syscall AOS_DOSBase 142;
+function dosSeek(_file: longint;position: longint;offset: longint): longint; syscall AOS_DOSBase 11;
+function dosDeleteFile(const name: PChar): LongBool; syscall AOS_DOSBase 12;
+function dosRename(const oldName: PChar;newName: PChar): LongInt; syscall AOS_DOSBase 13;
+function Lock(const name: PChar;_type: longint): longint; syscall AOS_DOSBase 14;
+function UnLock(lock: longint): longint; syscall AOS_DOSBase 15;
+function DupLock(Lock: longint): longint; syscall AOS_DOSBase 16;
+function Examine(lock: longint; fileInfoBlock: PFileInfoBlock): LongInt; syscall AOS_DOSBase 17;
+function Info(lock: longint; parameterBlock: PInfoData): LongInt; syscall AOS_DOSBase 19;
+function dosCreateDir(const name: PChar): longint; syscall AOS_DOSBase 20;
+function CurrentDir(lock: longint): longint; syscall AOS_DOSBase 21;
+function IoErr: longint; syscall AOS_DOSBase 22;
+procedure dosExit(ErrCode: longint); syscall AOS_DOSBase 24;
+function SetProtection(const name: PChar; protect: longword): LongInt; syscall AOS_DOSBase 31;
+function DateStamp(date: PDateStamp): PDateStamp; syscall AOS_DOSBase 32;
+procedure Delay(ticks: LongWord); syscall AOS_DOSBase 33;
+function AllocDosObject(Type_: LongWord; const Tags: PTagItem): Pointer; syscall AOS_DOSBase 38;
+procedure FreeDosObject(Type_: LongWord; Ptr: Pointer); syscall AOS_DOSBase 39;
+function SetFileDate(name: PChar; date: PDateStamp): LongBool; syscall AOS_DOSBase 66;
+function NameFromLock(lock: longint; buffer: PChar; len: longint): LongBool; syscall AOS_DOSBase 67;
+function SetFileSize(fh: longint; pos: longint; mode: longint): longint; syscall AOS_DOSBase 76;
+function Cli : pCommandLineInterface; syscall AOS_DOSBase 82;
+function CreateNewProc(const Tags: PTagItem): PProcess; syscall AOS_DOSBase 83;
+function GetArgStr: PChar; syscall AOS_DOSBase 89;
+function GetCurrentDirName(buf: PChar; len: longint): LongBool; syscall AOS_DOSBase 94;
+function GetProgramName(buf: PChar; len: longint): LongBool; syscall AOS_DOSBase 96;
+function GetProgramDir: longint; syscall AOS_DOSBase 100;
+function SystemTagList(command: PChar; tags: PTagItem): longint; syscall AOS_DOSBase 101;
+function LockDosList(flags: longword): PDosList; syscall AOS_DOSBase 109;
+procedure UnLockDosList(flags: longword); syscall AOS_DOSBase 110;
+function NextDosEntry(dlist: PDosList; flags: longword): PDosList; syscall AOS_DOSBase 115;
+function MatchFirst(pat: PChar; anchor: PAnchorPath): longint; syscall AOS_DOSBase 137;
+function MatchNext(anchor: PAnchorPath): longint; syscall AOS_DOSBase 138;
+procedure MatchEnd(anchor: PAnchorPath); syscall AOS_DOSBase 139;
+function GetVar(name: PChar; buffer: PChar; size: longint; flags: longword): longint; syscall AOS_DOSBase 151;
+function ExamineFH(Fh: BPTR; Fib: PFileInfoBlock): LongBool; syscall AOS_DOSBase 65;
+function NameFromFH(Fh: BPTR; Buffer: PChar; Length: LongInt): LongBool; syscall AOS_DOSBase 68;
+
diff --git a/rtl/aros/i386/execd.inc b/rtl/aros/i386/execd.inc
new file mode 100644
index 0000000000..c7a00ee80b
--- /dev/null
+++ b/rtl/aros/i386/execd.inc
@@ -0,0 +1,1792 @@
+{
+ This file is part of the Free Pascal run time library.
+
+ exec definitions (V50) for MorphOS/PowerPC
+ Copyright (c) 2002 The MorphOS Development Team, All Rights Reserved.
+
+ Free Pascal conversion
+ Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
+
+ AROS conversion
+ Copyright (c) 2011 Marcus Sackrow
+
+ 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.
+
+ **********************************************************************}
+
+{include emuld.inc}
+{$include utild1.inc}
+
+
+{ * exec node definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 05.08.2011 ALB
+ PNode = ^TNode;
+ TNode = record
+ ln_Succ: PNode;
+ ln_Pred: PNode;
+{$ifdef AROS_BINCOMPAT}
+ ln_Type: Byte;
+ ln_Pri : ShortInt;
+ ln_Name: PChar;
+{$else}
+ ln_Name: PChar;
+ ln_Type: Byte;
+ ln_Pri : ShortInt;
+{$endif}
+ end;
+
+type // Checked OK 05.08.2011 ALB
+ PMinNode = ^TMinNode;
+ TMinNode = record
+ mln_Succ: PMinNode;
+ mln_Pred: PMinNode;
+ end;
+
+
+const // Checked OK 05.08.2011 ALB
+ NT_UNKNOWN = 0;
+ NT_TASK = 1;
+ NT_INTERRUPT = 2;
+ NT_DEVICE = 3;
+ NT_MSGPORT = 4;
+ NT_MESSAGE = 5;
+ NT_FREEMSG = 6;
+ NT_REPLYMSG = 7;
+ NT_RESOURCE = 8;
+ NT_LIBRARY = 9;
+ NT_MEMORY = 10;
+ NT_SOFTINT = 11;
+ NT_FONT = 12;
+ NT_PROCESS = 13;
+ NT_SEMAPHORE = 14;
+ NT_SIGNALSEM = 15;
+ NT_BOOTNODE = 16;
+ NT_KICKMEM = 17;
+ NT_GRAPHICS = 18;
+ NT_DEATHMESSAGE = 19;
+ NT_HIDD = 20; // AROS specific
+ NT_USER = 254;
+ NT_EXTENDED = 255;
+
+
+
+{ * exec list definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 05.08.2011 ALB
+ PList = ^TEList;
+ TEList = record
+ lh_Head : PNode;
+ lh_Tail : PNode;
+ lh_TailPred: PNode;
+ lh_Type : Byte;
+ lh_pad : Byte;
+ end;
+
+type // Checked OK 05.08.2011 ALB
+ PMinList = ^TMinList;
+ TMinList = record
+ mlh_Head : PMinNode;
+ mlh_Tail : PMinNode;
+ mlh_TailPred: PMinNode;
+ end;
+
+
+
+{ * exec alert definitions (V50)
+ *********************************************************************
+ * }
+
+
+const // Checked OK 04.08.2011 ALB
+// General Types
+ AT_DeadEnd = $80000000; // Alert that crashes
+ AT_Recovery = $00000000; // Alert that returns
+// General Errors
+ AG_NoMemory = $00010000;
+ AG_MakeLib = $00020000;
+ AG_OpenLib = $00030000;
+ AG_OpenDev = $00040000;
+ AG_OpenRes = $00050000;
+ AG_IOError = $00060000;
+ AG_NoSignal = $00070000;
+ AG_BadParm = $00080000;
+ AG_CloseLib = $00090000;
+ AG_CloseDev = $000A0000;
+ AG_ProcCreate = $000B0000;
+// 680x0 Errors
+ ACPU_BusErr = $80000002;
+ ACPU_AddressErr = $80000003;
+ ACPU_InstErr = $80000004;
+ ACPU_DivZero = $80000005;
+ ACPU_CHK = $80000006;
+ ACPU_TRAPV = $80000007;
+ ACPU_PrivErr = $80000008;
+ ACPU_Trace = $80000009;
+ ACPU_LineA = $8000000A;
+ ACPU_LineF = $8000000B;
+ ACPU_Format = $8000000E;
+ ACPU_Spurious = $80000018;
+ ACPU_AutoVec1 = $80000019;
+ ACPU_AutoVec2 = $8000001A;
+ ACPU_AutoVec3 = $8000001B;
+ ACPU_AutoVec4 = $8000001C;
+ ACPU_AutoVec5 = $8000001D;
+ ACPU_AutoVec6 = $8000001E;
+ ACPU_AutoVec7 = $8000001F;
+// Libraries
+ AO_ExecLib = $00008001;
+ AO_GraphicsLib = $00008002;
+ AO_LayersLib = $00008003;
+ AO_Intuition = $00008004;
+ AO_MathLib = $00008005;
+ AO_DOSLib = $00008007;
+ AO_RAMLib = $00008008;
+ AO_IconLib = $00008009;
+ AO_ExpansionLib = $0000800A;
+ AO_DiskfontLib = $0000800B;
+ AO_UtilityLib = $0000800C;
+ AO_KeyMapLib = $0000800D;
+// Devices
+ AO_AudioDev = $00008010;
+ AO_ConsoleDev = $00008011;
+ AO_GamePortDev = $00008012;
+ AO_KeyboardDev = $00008013;
+ AO_TrackDiskDev = $00008014;
+ AO_TimerDev = $00008015;
+// Resources
+ AO_CIARsrc = $00008020;
+ AO_DiskRsrc = $00008021;
+ AO_MiscRsrc = $00008022;
+// Miscellaneous
+ AO_BootStrap = $00008030;
+ AO_Workbench = $00008031;
+ AO_DiskCopy = $00008032;
+ AO_GadTools = $00008033;
+ AO_Unknown = $00008035;
+// AROS Additions, start at 0x40
+ AO_ArosLib = $00008040;
+ AO_OOPLib = $00008041;
+ AO_HiddLib = $00008042;
+
+ { *
+ * exec.library
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_ExecLib = $01000000;
+ AN_ExcptVect = $01000001;
+ AN_BaseChkSum = $01000002;
+ AN_LibChkSum = $01000003;
+ AN_MemCorrupt = $81000005;
+ AN_IntrMem = $81000006;
+ AN_InitAPtr = $01000007;
+ AN_SemCorrupt = $01000008;
+ AN_FreeTwice = $01000009;
+ AN_BogusExcpt = $8100000A;
+ AN_IOUsedTwice = $0100000B;
+ AN_MemoryInsane = $0100000C;
+ AN_IOAfterClose = $0100000D;
+ AN_StackProbe = $0100000E; // stack has wrong size
+ AN_BadFreeAddr = $0100000F;
+ AN_BadSemaphore = $01000010;
+
+ { *
+ * graphics.library
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_GraphicsLib = $02000000;
+ AN_GfxNoMem = $82010000;
+ AN_GfxNoMemMspc = $82010001;
+ AN_LongFrame = $82010006;
+ AN_ShortFrame = $82010007;
+ AN_TextTmpRas = $02010009;
+ AN_BltBitMap = $8201000A;
+ AN_RegionMemory = $8201000B;
+ AN_MakeVPort = $82010030;
+ AN_GfxNewError = $0200000C;
+ AN_GfxFreeError = $0200000D;
+ AN_GfxNoLCM = $82011234;
+ AN_ObsoleteFont = $02000401;
+
+ { *
+ * layers.library
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_LayersLib = $03000000;
+ AN_LayersNoMem = $83010000;
+
+ { *
+ * intuition.library
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_Intuition = $04000000;
+ AN_GadgetType = $84000001;
+ AN_BadGadget = $04000001;
+ AN_CreatePort = $84010002;
+ AN_ItemAlloc = $04010003;
+ AN_SubAlloc = $04010004;
+ AN_PlaneAlloc = $84010005;
+ AN_ItemBoxTop = $84000006;
+ AN_OpenScreen = $84010007;
+ AN_OpenScrnRast = $84010008;
+ AN_SysScrnType = $84000009;
+ AN_AddSWGadget = $8401000A;
+ AN_OpenWindow = $8401000B;
+ AN_BadState = $8400000C;
+ AN_BadMessage = $8400000D;
+ AN_WeirdEcho = $8400000E;
+ AN_NoConsole = $8400000F;
+ AN_NoISem = $04000010;
+ AN_ISemOrder = $04000011;
+
+ { *
+ * math.library
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_MathLib = $05000000;
+
+ { *
+ * dos.library
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_DOSLib = $07000000;
+ AN_StartMem = $07010001;
+ AN_EndTask = $07000002;
+ AN_QPktFail = $07000003;
+ AN_AsyncPkt = $07000004;
+ AN_FreeVec = $07000005;
+ AN_DiskBlkSeq = $07000006;
+ AN_BitMap = $07000007;
+ AN_KeyFree = $07000008;
+ AN_BadChkSum = $07000009;
+ AN_DiskError = $0700000A;
+ AN_KeyRange = $0700000B;
+ AN_BadOverlay = $0700000C;
+ AN_BadInitFunc = $0700000D;
+ AN_FileReclosed = $0700000E;
+
+ { *
+ * ramlib.library
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_RAMLib = $08000000;
+ AN_BadSegList = $08000001;
+
+ { *
+ * icon.library
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_IconLib = $09000000;
+
+ { *
+ * expansion.library
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_ExpansionLib = $0A000000;
+ AN_BadExpansionFree = $0A000001;
+
+ { *
+ * diskfont.library
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_DiskfontLib = $0B000000;
+
+ { *
+ * audio.device
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_AudioDev = $10000000;
+
+ { *
+ * console.device
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_ConsoleDev = $11000000;
+ AN_NoWindow = $11000001;
+
+ { *
+ * gameport.device
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_GamePortDev = $12000000;
+
+ { *
+ * keyboard.device
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_KeyboardDev = $13000000;
+
+ { *
+ * trackdisk.device
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_TrackDiskDev = $14000000;
+ AN_TDCalibSeek = $14000001;
+ AN_TDDelay = $14000002;
+
+ { *
+ * timer.device
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_TimerDev = $15000000;
+ AN_TMBadReq = $15000001;
+ AN_TMBadSupply = $15000002;
+
+ { *
+ * cia.resource
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_CIARsrc = $20000000;
+
+ { *
+ * disk.resource
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_DiskRsrc = $21000000;
+ AN_DRHasDisk = $21000001;
+ AN_DRIntNoAct = $21000002;
+
+ { *
+ * misc.resource
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_MiscRsrc = $22000000;
+
+ { *
+ * bootstrap
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_BootStrap = $30000000;
+ AN_BootError = $30000001;
+
+ { *
+ * Workbench
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_Workbench = $31000000;
+ AN_NoFonts = $B1000001;
+ AN_WBBadStartupMsg1 = $31000001;
+ AN_WBBadStartupMsg2 = $31000002;
+ AN_WBBadIOMsg = $31000003;
+ AN_WBReLayoutToolMenu = $B1010009;
+
+ { *
+ * DiskCopy
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_DiskCopy = $32000000;
+
+ { *
+ * toolkit for Intuition
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_GadTools = $33000000;
+
+ { *
+ * System utility library
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_UtilityLib = $34000000;
+
+ { *
+ * AROS Additions
+ * }
+ AN_Aros = $40000000;
+ AN_OOP = $41000000;
+// Hidd Subsystem */
+ AN_Hidd = $42000000;
+ AN_HiddNoRoot = $C2000001; // Could not create root device
+
+ { *
+ * For use by any application that needs it
+ * }
+const // Checked OK 04.08.2011 ALB
+ AN_Unknown = $35000000;
+
+
+
+{ * exec error definitions
+ *********************************************************************
+ * }
+
+
+const // Checked OK 04.08.2011 ALB
+ IOERR_OPENFAIL = (-1);
+ IOERR_ABORTED = (-2);
+ IOERR_NOCMD = (-3);
+ IOERR_BADLENGTH = (-4);
+ IOERR_BADADDRESS = (-5);
+ IOERR_UNITBUSY = (-6);
+ IOERR_SELFTEST = (-7);
+
+
+
+{ * exec resident definitions
+ *********************************************************************
+ * }
+
+
+type
+ PResident = ^TResident;
+ TResident = record
+ rt_MatchWord: Word;
+ rt_MatchTag : PResident;
+ rt_EndSkip : Pointer;
+ rt_Flags : Byte;
+ rt_Version : Byte;
+ rt_Type : Byte;
+ rt_Pri : Byte;
+ rt_Name : PChar;
+ rt_IdString : PChar;
+ rt_Init : Pointer;
+ { * Only valid when RTF_EXTENDED is set
+ * }
+ rt_Revision : Word; { * Revision Entry * }
+ rt_Tags : Pointer;
+ end;
+
+
+const
+ RTC_MATCHWORD = $4AFC;
+
+ RTF_AUTOINIT = (1 Shl 7);
+ RTF_EXTENDED = (1 Shl 6); { * structure extension is valid * }
+ { * rt_Init points to a PPC function which must be defined as
+ *
+ * struct Library* LIB_Init(struct Library *MyLibBase,
+ * BPTR SegList,
+ * struct ExecBase *SysBase)
+ * }
+ RTF_PPC = (1 Shl 3);
+ RTF_AFTERDOS = (1 Shl 2);
+ RTF_SINGLETASK = (1 Shl 1);
+ RTF_COLDSTART = (1 Shl 0);
+
+ RTW_NEVER = 0;
+ RTW_COLDSTART = 1;
+
+
+
+{ * exec memory definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 05.08.2011 ALB
+ PMemChunk = ^TMemChunk;
+ TMemChunk = record
+ nc_Next : PMemChunk;
+ nc_Bytes: PtrUInt;
+ end;
+
+type // Checked OK 05.08.2011 ALB
+ PMemHeader = ^TMemHeader;
+ TMemHeader = record
+ mh_Node : TNode;
+ mh_Attributes: Word;
+ mh_First : PMemChunk;
+ mh_Lower : Pointer;
+ mh_Upper : Pointer;
+ mh_Free : DWord;
+ end;
+
+type // Checked OK 05.08.2011 ALB
+ PMemEntry = ^TMemEntry;
+ TMemEntry = record
+ me_Un: record
+ case Byte of
+ 0 : (meu_Regs: DWord);
+ 1 : (meu_Addr: Pointer)
+ end;
+ me_Length: DWord;
+ end;
+
+type // Checked OK 05.08.2011 ALB
+ PMemList = ^TMemList;
+ TMemList = record
+ ml_Node : TNode;
+ ml_NumEntries: Word;
+ ml_ME : PMemEntry;
+ end;
+
+
+const // Checked OK 05.08.2011 ALB
+ MEMF_ANY = 0;
+ MEMF_PUBLIC = (1 shl 0);
+ MEMF_CHIP = (1 shl 1);
+ MEMF_FAST = (1 shl 2);
+ MEMF_LOCAL = (1 shl 8);
+ MEMF_24BITDMA = (1 shl 9);
+ MEMF_KICK = (1 shl 10);
+ MEMF_SWAP = (1 shl 11); { * Memory that can be swapped out to disk * }
+ MEMF_31BIT = (1 shl 12);
+
+ MEMF_CLEAR = (1 Shl 16);
+ MEMF_LARGEST = (1 Shl 17);
+ MEMF_REVERSE = (1 Shl 18);
+ MEMF_TOTAL = (1 Shl 19);
+ MEMF_HWALIGNED = (1 Shl 20); // For AllocMem() - align address and size to physical page boundary
+ MEMF_SEM_PROTECTED = (1 Shl 20); { * For CreatePool(): semaphore protection * }
+ MEMF_NO_EXPUNGE = (1 Shl 31);
+
+ MEM_BLOCKSIZE = 8;
+ MEM_BLOCKMASK = (MEM_BLOCKSIZE - 1);
+
+
+type // Checked OK 05.08.2011 ALB
+ PMemHandlerData = ^TMemHandlerData;
+ TMemHandlerData = record
+ memh_RequestSize : DWord;
+ memh_RequestFlags: DWord;
+ memh_Flags : DWord;
+ end;
+
+
+const // Checked OK 05.08.2011 ALB
+ MEMHF_RECYCLE = (1 shl 0);
+
+ MEM_DID_NOTHING = 0;
+ MEM_ALL_DONE = -1;
+ MEM_TRY_AGAIN = 1;
+
+
+
+{ * exec port definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 05.08.2011 ALB
+ PMsgPort = ^TMsgPort;
+ TMsgPort = record
+ mp_Node : TNode;
+ mp_Flags : Byte;
+ mp_SigBit : Byte;
+ mp_SigTask: Pointer;
+ mp_MsgList: TEList;
+ end;
+
+
+const
+ PF_ACTION = 3;
+ PA_SIGNAL = 0;
+ PA_SOFTINT = 1;
+ PA_IGNORE = 2;
+
+
+type
+ PMessage = ^TMessage;
+ TMessage = record
+ mn_Node : TNode;
+ mn_ReplyPort: PMsgPort;
+ mn_Length : Word;
+ end;
+
+
+
+{ * exec task definitions (V50)
+ *********************************************************************
+ * }
+
+
+type
+ PTask = ^TTask;
+ TTask = record
+ tc_Node : TNode;
+ tc_Flags : Byte;
+ tc_State : Byte;
+ tc_IDNestCnt: ShortInt;
+ tc_TDNestCnt: ShortInt;
+ tc_SigAlloc : DWord;
+ tc_SigWait : DWord;
+ tc_SigRecvd : DWord;
+ tc_SigExcept: DWord;
+ {$IF 0}
+ tc_TrapAlloc: Word;
+ tc_TrapAble : Word;
+ {$ELSE}
+ tc_ETask: Pointer;
+ {$ENDIF}
+ tc_ExceptData: Pointer;
+ tc_ExceptCode: Pointer;
+ tc_TrapData : Pointer;
+ tc_TrapCode : Pointer;
+ tc_SPReg : Pointer;
+ tc_SPLower : Pointer;
+ tc_SPUpper : Pointer;
+ tc_Switch : Pointer; { *** OBSOLETE *** }
+ tc_Launch : Pointer; { *** OBSOLETE *** }
+ tc_MemEntry : TEList;
+ tc_UserData : Pointer;
+ end;
+
+
+const
+ TB_PROCTIME = 0;
+ TB_ETASK = 3;
+ TB_STACKCHK = 4;
+ TB_EXCEPT = 5;
+ TB_SWITCH = 6;
+ TB_LAUNCH = 7;
+
+ TF_PROCTIME = (1 Shl TB_PROCTIME);
+ TF_ETASK = (1 Shl TB_ETASK);
+ TF_STACKCHK = (1 Shl TB_STACKCHK);
+ TF_EXCEPT = (1 Shl TB_EXCEPT);
+ TF_SWITCH = (1 Shl TB_SWITCH);
+ TF_LAUNCH = (1 Shl TB_LAUNCH);
+
+ TS_INVALID = 0;
+ TS_ADDED = 1;
+ TS_RUN = 2;
+ TS_READY = 3;
+ TS_WAIT = 4;
+ TS_EXCEPT = 5;
+ TS_REMOVED = 6;
+
+ SIGB_ABORT = 0;
+ SIGB_CHILD = 1;
+ SIGB_BLIT = 4;
+ SIGB_SINGLE = 4;
+ SIGB_INTUITION = 5;
+ SIGB_NET = 7;
+ SIGB_DOS = 8;
+
+ SIGF_ABORT = (1 Shl SIGB_ABORT);
+ SIGF_CHILD = (1 Shl SIGB_CHILD);
+ SIGF_BLIT = (1 Shl SIGB_BLIT);
+ SIGF_SINGLE = (1 Shl SIGB_SINGLE);
+ SIGF_INTUITION = (1 Shl SIGB_INTUITION);
+ SIGF_NET = (1 Shl SIGB_NET);
+ SIGF_DOS = (1 Shl SIGB_DOS);
+
+
+type
+ PTaskTrapMessage = ^TTaskTrapMessage;
+ TTaskTrapMessage = record
+ Message: TMessage; { * Message Header * }
+ Task : TTask; { * connected Task * }
+ Version: DWord; { * version of the structure * }
+ TType : DWord; { * Exception Type * }
+ DAR : DWord; { * Exception Address Register * }
+ DSISR : DWord; { * Exception DSISR Reg * }
+
+ { * This is undiscovered land...
+ * never assume a size of this structure
+ * }
+ end;
+
+
+const
+ VERSION_TASKTRAPMESSAGE = $0;
+
+
+type
+ PETask = ^TETask;
+ TETask = record
+ Message : TMessage;
+ Parent : PTask;
+ UniqueID : DWord;
+ Children : TMinList;
+ TrapAlloc: Word;
+ TrapAble : Word;
+ Result1 : DWord;
+ Result2 : Pointer;
+ MsgPort : TMsgPort;
+
+ { * Don't touch!!!!!!!!!..there'll be an interface
+ * sooner than later.
+ * New Entries...most of the above entries
+ * are only their for structure compatability.
+ * They have no meaning as the OS never supported
+ * them.
+ * }
+
+ { * A Task Pool for the task.
+ * }
+ MemPool: Pointer;
+
+ { * PPC's Stack Lower Ptr
+ * The initial stack is allocated through
+ * AllocVec, so a FreeVec(ETask^.PPCSPLower);
+ * would work.
+ * If you use PPCStackSwap you must allocate
+ * your stack block with AllocVec();
+ * }
+ PPCSPLower: Pointer;
+
+ { * PPC's Stack Upper Ptr
+ * }
+ PPCSPUpper : Pointer;
+ PPCRegFrame: Pointer;
+ PPCLibData : Pointer;
+
+ { * On a PPC exception this msgport
+ * is sent an exception msg...
+ * the task is stopped until somebody
+ * wakes it up again.
+ * (asynchron exception interface)
+ * If this Port is NULL the message is
+ * sent to SysBase->ex_PPCTrapMsgPort.
+ * }
+ PPCTrapMsgPort: PMsgPort;
+ PPCTrapMessage: PTaskTrapMessage;
+
+ { * This is undiscovered land...
+ * never assume a size of this structure
+ * }
+ end;
+
+
+type
+ PTaskInitExtension = ^TTaskInitExtension;
+ TTaskInitExtension = record
+ { * Must be filled with TRAP_PPCTASK
+ * }
+ Trap : Word;
+ Extension: Word; { * Must be set to 0 * }
+ Tags : Pointer;
+ end;
+
+
+const
+ TASKTAG_DUMMY = (TAG_USER + $100000);
+
+ { * Ptr to an ULONG Errorfield where a better error description
+ * can be stored.
+ * }
+ TASKTAG_ERROR = (TASKTAG_DUMMY + $0);
+
+ { * Code type
+ * can be stored.
+ * }
+ TASKTAG_CODETYPE = (TASKTAG_DUMMY + $1);
+
+ { * Start PC
+ * code must be of TASKTAG_CODETYPE
+ * }
+ TASKTAG_PC = (TASKTAG_DUMMY + $2);
+
+ { * Final PC
+ * code must be of TASKTAG_CODETYPE
+ * }
+ TASKTAG_FINALPC = (TASKTAG_DUMMY + $3);
+
+ { * Stacksize...Default 8192
+ * }
+ TASKTAG_STACKSIZE = (TASKTAG_DUMMY + $4);
+
+ { * Std Stacksize...
+ * Default(use the stack defined by tc_SPLower..tc_SPUpper)
+ * }
+ TASKTAG_STACKSIZE_M68K = (TASKTAG_DUMMY + $5);
+
+ { * specify task name, name is copied
+ * }
+ TASKTAG_NAME = (TASKTAG_DUMMY + $6);
+
+ { * tc_UserData
+ * }
+ TASKTAG_USERDATA = (TASKTAG_DUMMY + $7);
+
+ { * Task priority
+ * }
+ TASKTAG_PRI = (TASKTAG_DUMMY + $8);
+
+ { * Pool's Puddlesize
+ * }
+ TASKTAG_POOLPUDDLE = (TASKTAG_DUMMY + $9);
+
+ { * Pool's ThreshSize
+ * }
+ TASKTAG_POOLTHRESH = (TASKTAG_DUMMY + $a);
+
+ { * PPC First Argument..gpr3
+ * }
+ TASKTAG_PPC_ARG1 = (TASKTAG_DUMMY + $10);
+
+ { * PPC First Argument..gpr4
+ * }
+ TASKTAG_PPC_ARG2 = (TASKTAG_DUMMY + $11);
+
+ { * PPC First Argument..gpr5
+ * }
+ TASKTAG_PPC_ARG3 = (TASKTAG_DUMMY + $12);
+
+ { * PPC First Argument..gpr6
+ * }
+ TASKTAG_PPC_ARG4 = (TASKTAG_DUMMY + $13);
+
+ { * PPC First Argument..gpr7
+ * }
+ TASKTAG_PPC_ARG5 = (TASKTAG_DUMMY + $14);
+
+ { * PPC First Argument..gpr8
+ * }
+ TASKTAG_PPC_ARG6 = (TASKTAG_DUMMY + $15);
+
+ { * PPC First Argument..gpr9
+ * }
+ TASKTAG_PPC_ARG7 = (TASKTAG_DUMMY + $16);
+
+ { * PPC First Argument..gpr10
+ * }
+ TASKTAG_PPC_ARG8 = (TASKTAG_DUMMY + $17);
+
+ { *
+ * Startup message to be passed to task/process, ReplyMsg'd at RemTask()
+ * ti_Data: struct Message *
+ * }
+ TASKTAG_STARTUPMSG = (TASKTAG_DUMMY + $18);
+
+ { *
+ * Create internal MsgPort for task/process, deleted at RemTask()
+ * ti_Data: struct MsgPort **, can be NULL
+ * }
+ TASKTAG_TASKMSGPORT = (TASKTAG_DUMMY + $19);
+
+
+const
+ CODETYPE_M68K = $0;
+ { *
+ * System V4 ABI
+ * }
+ CODETYPE_PPC = $1;
+
+const
+ TASKERROR_OK = 0;
+ TASKERROR_NOMEMORY = 1;
+
+
+ { *
+ * Stack swap structure as passed to StackSwap() and PPCStackSwap()
+ * }
+type
+ PStackSwapStruct = ^TStackSwapStruct;
+ TStackSwapStruct = record
+ stk_Lower : Pointer; { * Lowest byte of stack * }
+ stk_Upper : Pointer; { * Upper end of stack (size + Lowert) * }
+ stk_Pointer: Pointer; { * Stack pointer at switch point * }
+ end;
+
+type
+ PPPCStackSwapArgs = ^TPPCStackSwapArgs;
+ TPPCStackSwapArgs = record
+ Args: Array[0..7] Of DWord; { * The C register arguments from gpr3..gpr11 * }
+ end;
+
+
+ { *
+ * NewGetTaskAttrsA(), NewSetTaskAttrsA() tags
+ * }
+const
+ TASKINFOTYPE_ALLTASK = $0;
+ TASKINFOTYPE_NAME = $1;
+ TASKINFOTYPE_PRI = $2;
+ TASKINFOTYPE_TYPE = $3;
+ TASKINFOTYPE_STATE = $4;
+ TASKINFOTYPE_FLAGS = $5;
+ TASKINFOTYPE_SIGALLOC = $6;
+ TASKINFOTYPE_SIGWAIT = $7;
+ TASKINFOTYPE_SIGRECVD = $8;
+ TASKINFOTYPE_SIGEXCEPT = $9;
+ TASKINFOTYPE_EXCEPTDATA = $a;
+ TASKINFOTYPE_EXCEPTCODE = $b;
+ TASKINFOTYPE_TRAPDATA = $c;
+ TASKINFOTYPE_TRAPCODE = $d;
+ TASKINFOTYPE_STACKSIZE_M68K = $e;
+ TASKINFOTYPE_STACKSIZE = $f;
+ TASKINFOTYPE_USEDSTACKSIZE_M68K = $10;
+ TASKINFOTYPE_USEDSTACKSIZE = $11;
+ TASKINFOTYPE_TRAPMSGPORT = $12;
+ TASKINFOTYPE_STARTUPMSG = $13;
+ TASKINFOTYPE_TASKMSGPORT = $14;
+ TASKINFOTYPE_POOLPTR = $15;
+ TASKINFOTYPE_POOLMEMFLAGS = $16;
+ TASKINFOTYPE_POOLPUDDLESIZE = $17;
+ TASKINFOTYPE_POOLTHRESHSIZE = $18;
+
+ { *
+ * Task Scheduler statistics (exec 50.42)
+ * }
+ TASKINFOTYPE_NICE = $19;
+ TASKINFOTYPE_AGETICKS = $1a;
+ TASKINFOTYPE_CPUTIME = $1b;
+ TASKINFOTYPE_LASTSECCPUTIME = $1c;
+ TASKINFOTYPE_RECENTCPUTIME = $1d;
+ TASKINFOTYPE_VOLUNTARYCSW = $1e;
+ TASKINFOTYPE_INVOLUNTARYCSW = $1f;
+ TASKINFOTYPE_LASTSECVOLUNTARYCSW = $20;
+ TASKINFOTYPE_LASTSECINVOLUNTARYCSW = $21;
+ { * Added in exec 50.45 * }
+ TASKINFOTYPE_LAUNCHTIMETICKS = $22;
+ TASKINFOTYPE_LAUNCHTIMETICKS1978 = $23;
+ TASKINFOTYPE_PID = $24;
+
+ TASKINFOTYPE_68K_NEWFRAME = $50;
+
+ TASKINFOTYPE_PPC_SRR0 = $100;
+ TASKINFOTYPE_PPC_SRR1 = $101;
+ TASKINFOTYPE_PPC_LR = $102;
+ TASKINFOTYPE_PPC_CTR = $103;
+ TASKINFOTYPE_PPC_CR = $104;
+ TASKINFOTYPE_PPC_XER = $105;
+ TASKINFOTYPE_PPC_GPR = $106;
+ TASKINFOTYPE_PPC_FPR = $107;
+ TASKINFOTYPE_PPC_FPSCR = $108;
+ TASKINFOTYPE_PPC_VSCR = $109;
+ TASKINFOTYPE_PPC_VMX = $10a;
+ TASKINFOTYPE_PPC_VSAVE = $10b;
+ TASKINFOTYPE_PPC_FRAME = $10c;
+ TASKINFOTYPE_PPC_FRAMESIZE = $10d;
+ TASKINFOTYPE_PPC_NEWFRAME = $10e;
+
+ TASKINFOTAG_DUMMY = (TAG_USER + $110000);
+ { * Used with TASKINFOTYPE_ALLTASK
+ * }
+ TASKINFOTAG_HOOK = (TASKINFOTAG_DUMMY + $0);
+ { * Used with TASKINFOTYPE_PPC_GPR,TASKINFOTYPE_PPC_FPR,TASKINFOTYPE_PPC_VMX
+ * to define the copy area
+ * }
+ TASKINFOTAG_REGSTART = (TASKINFOTAG_DUMMY + $1);
+ { * Used with TASKINFOTYPE_PPC_GPR,TASKINFOTYPE_PPC_FPR,TASKINFOTYPE_PPC_VMX
+ * to define the copy area
+ * }
+ TASKINFOTAG_REGCOUNT = (TASKINFOTAG_DUMMY + $2);
+
+
+ { *
+ * NewSetTaskAttrsA(..,@TaskFrame68k,sizeof(TTaskFrame68k),TASKINFOTYPE_68K_NEWFRAME,...);
+ * }
+type
+ PTaskFrame68k = ^TTaskFrame68k;
+ TTaskFrame68k = record
+ PC: Pointer;
+ SR: Word;
+ Xn: Array[0..14] Of LongInt;
+ end;
+
+
+ { *
+ * Don't depend on these
+ * }
+const
+ DEFAULT_PPCSTACKSIZE = 32768;
+ DEFAULT_M68KSTACKSIZE = 2048;
+ DEFAULT_TASKPUDDLESIZE = 4096;
+ DEFAULT_TASKTHRESHSIZE = 4096;
+
+
+{ * exec interrupt definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 05.08.2011 ALB
+ PInterrupt = ^TInterrupt;
+ TInterrupt = record
+ is_Node: TNode;
+ is_Data: Pointer;
+ is_Code: Pointer; // server code entry
+ end;
+
+type // Checked OK 05.08.2011 ALB
+ PIntVector = ^TIntVector;
+ TIntVector = record
+ iv_Data: Pointer;
+ iv_Code: Pointer;
+ iv_Node: PNode;
+ end;
+
+type // Checked OK 05.08.2011 ALB
+ PSoftIntList = ^TSoftIntList;
+ TSoftIntList = record
+ sh_List: TEList;
+ sh_Pad : Word;
+ end;
+
+
+const // Checked OK 05.08.2011 ALB
+ SIH_PRIMASK = $f0;
+
+ INTB_NMI = 15;
+ INTF_NMI = (1 Shl INTB_NMI);
+
+
+
+{ * exec semaphore definitions (V50)
+ *********************************************************************
+ * }
+
+
+ { *
+ * Shouldn't be available public..
+ * }
+type
+ PSemaphoreRequest = ^TSemaphoreRequest;
+ TSemaphoreRequest = record
+ sr_Link : TMinNode;
+ sr_Waiter: PTask;
+ end;
+
+type
+ PSignalSemaphore = ^TSignalSemaphore;
+ TSignalSemaphore = record
+ ss_Link : TNode;
+ ss_NestCount : SmallInt;
+ ss_WaitQueue : TMinList;
+ ss_MultipleLink: TSemaphoreRequest;
+ ss_Owner : PTask;
+ ss_QueueCount : SmallInt;
+ end;
+
+type
+ PSemaphoreMessage = ^TSemaphoreMessage;
+ TSemaphoreMessage = record
+ ssm_Message : TMessage;
+ ssm_Semaphore: PSignalSemaphore;
+ end;
+
+
+const
+ SM_SHARED = 1;
+ SM_EXCLUSIVE = 0;
+
+
+
+{ * exec machine definitions (V50)
+ *********************************************************************
+ * }
+
+
+const
+ MACHINE_M68k = $0;
+ MACHINE_PPC = $1;
+ MACHINE_NO = $ffffffff;
+
+
+
+{ * exec library definitions
+ *********************************************************************
+ * }
+
+
+const // Checked OK 05.08.2011 ALB
+ LIB_VECTSIZE = 6;
+ LIB_RESERVED = 4;
+ LIB_BASE = (-LIB_VECTSIZE);
+ LIB_USERDEF = (LIB_BASE - (LIB_RESERVED * LIB_VECTSIZE));
+ LIB_NONSTD = (LIB_USERDEF);
+
+ LIB_OPEN = (LIB_BASE * 1);
+ LIB_CLOSE = (LIB_BASE * 2);
+ LIB_EXPUNGE = (LIB_BASE * 3);
+ LIB_EXTFUNC = (LIB_BASE * 4);
+
+
+type // Checked OK 05.08.2011 ALB
+ PLibrary = ^TLibrary;
+ TLibrary = record
+ lib_Node : TNode;
+ lib_Flags : Byte;
+ lib_pad : Byte;
+ lib_NegSize : Word;
+ lib_PosSize : Word;
+ lib_Version : Word;
+ lib_Revision: Word;
+ lib_IdString: PChar;
+ lib_Sum : DWord;
+ lib_OpenCnt : Word;
+ end;
+
+
+const // Checked OK 05.08.2011 ALB
+ LIBF_SUMMING = (1 shl 0);
+ LIBF_CHANGED = (1 shl 1);
+ LIBF_SUMUSED = (1 shl 2);
+ LIBF_DELEXP = (1 shl 3);
+
+const // Checked OK 05.08.2011 ALB
+ {* ID numbers for Exec/TaggedOpenLibrary
+ *}
+ TAGGEDOPEN_GRAPHICS = 1;
+ TAGGEDOPEN_LAYERS = 2;
+ TAGGEDOPEN_INTUITION = 3;
+ TAGGEDOPEN_DOS = 4;
+ TAGGEDOPEN_ICON = 5;
+ TAGGEDOPEN_EXPANSION = 6;
+ TAGGEDOPEN_UTILITY = 7;
+ TAGGEDOPEN_KEYMAP = 8;
+ TAGGEDOPEN_GADTOOLS = 9;
+ TAGGEDOPEN_WORKBENCH = 10;
+
+const
+ SETFUNCTAG_Dummy = (TAG_USER +$01000000);
+
+ { * Set the machine type of the function
+ * Default is 68k
+ * }
+ SETFUNCTAG_MACHINE = (SETFUNCTAG_Dummy + $1);
+
+ { * Function type specifier
+ * }
+ SETFUNCTAG_TYPE = (SETFUNCTAG_Dummy + $2);
+
+ { * ID String
+ * }
+ SETFUNCTAG_IDNAME = (SETFUNCTAG_Dummy + $3);
+
+ { *
+ * Set to TRUE if the replaced function will never be used
+ * again.
+ * }
+ SETFUNCTAG_DELETE = (SETFUNCTAG_Dummy + $4);
+
+
+ { * See emul/emulinterface.h for more informations
+ * }
+
+ { * Save Emulation PPC Registers
+ * Call Function
+ * Restore Emulation PPC Registers
+ * REG_D0 = Result
+ * }
+const
+ SETFUNCTYPE_NORMAL = 0;
+ { * Call Function
+ * Must use the global register settings of the emulation
+ * REG_D0 = Result
+ * }
+ SETFUNCTYPE_QUICK = 1;
+ { * Save Emulation PPC Registers
+ * Call Function
+ * Restore Emulation PPC Registers
+ * No Result
+ * Needed to replace functions like
+ * forbid,obtainsemaphores which are
+ * defined as trashing no registers
+ * }
+ SETFUNCTYPE_NORMALNR = 2;
+ { * Call Function
+ * Must use the global register settings of the emulation
+ * No Result
+ * Needed to replace functions like
+ * forbid,obtainsemaphores which are
+ * defined as trashing no registers
+ * }
+ SETFUNCTYPE_QUICKNR = 3;
+ SETFUNCTYPE_NORMALSR = 4;
+ SETFUNCTYPE_NORMALSRNR = 5;
+ SETFUNCTYPE_NORMALD0_D1 = 6;
+ SETFUNCTYPE_NORMALRESTORE = 7;
+ SETFUNCTYPE_SYSTEMV = 8;
+ SETFUNCTYPE_NORMALD0D1SR = 9;
+ SETFUNCTYPE_NORMALD0D1A0A1SR = 10;
+
+
+ { * CreateLibrary extensions
+ * }
+ LIBTAG_BASE = (TAG_USER + $01000100);
+
+ { *
+ * Function/Vector Array
+ * }
+ LIBTAG_FUNCTIONINIT = (LIBTAG_BASE+$0);
+ { *
+ * Struct Init
+ * }
+ LIBTAG_STRUCTINIT = (LIBTAG_BASE+$1);
+ { *
+ * Library Init
+ * }
+ LIBTAG_LIBRARYINIT = (LIBTAG_BASE+$2);
+ { *
+ * Init Code Type
+ * }
+ LIBTAG_MACHINE = (LIBTAG_BASE+$3);
+ { *
+ * Library Base Size
+ * }
+ LIBTAG_BASESIZE = (LIBTAG_BASE+$4);
+ { *
+ * SegList Ptr
+ * }
+ LIBTAG_SEGLIST = (LIBTAG_BASE+$5);
+ { *
+ * Library Priority
+ * }
+ LIBTAG_PRI = (LIBTAG_BASE+$6);
+ { *
+ * Library Type..Library,Device,Resource,whatever
+ * }
+ LIBTAG_TYPE = (LIBTAG_BASE+$7);
+ { *
+ * Library Version
+ * (UWORD)
+ * }
+ LIBTAG_VERSION = (LIBTAG_BASE+$8);
+ { *
+ * Library Flags
+ * }
+ LIBTAG_FLAGS = (LIBTAG_BASE+$9);
+ { *
+ * Library Name
+ * }
+ LIBTAG_NAME = (LIBTAG_BASE+$a);
+ { *
+ * Library IDString
+ * }
+ LIBTAG_IDSTRING = (LIBTAG_BASE+$b);
+ { *
+ * AddDevice(),AddLibrary(),AddResource()..
+ * depends on LibNode.ln_Type field which
+ * can be set by some Init function, Struct Scripts
+ * or LIBTAG_TYPE.
+ * If you set LIBTAG_PUBLIC the library
+ * is added to the right system list.
+ * }
+ LIBTAG_PUBLIC = (LIBTAG_BASE+$c);
+ { *
+ * Library Revision
+ * (UWORD)
+ * }
+ LIBTAG_REVISION = (LIBTAG_BASE+$d);
+ { *
+ * Library QueryInfo Flag
+ * (Boolean)
+ * }
+ LIBTAG_QUERYINFO = (LIBTAG_BASE+$e);
+
+
+ { * Private
+ * don`t touch...floating design
+ * }
+ {
+type
+ PFuncEntry = ^TFuncEntry;
+ TFuncEntry = record
+ EmulLibEntry : TEmulLibEntry;
+ OldFunction : Pointer; { * Needed for bookkeeping * }
+ end;
+
+ PFuncOldEntry = ^TFuncOldEntry;
+ TFuncOldEntry = record
+ Command : Word;
+ FuncEntry: PFuncEntry;
+ end;
+}
+
+ { *
+ * EmulLibEntry.Extension
+ * }
+const
+ FUNCENTRYEXTF_LIBRARY = $1; { * Entry created by the OS * }
+
+ { *
+ * Functionarray first ULONG ID defines the format
+ * of the functionarray for MakeFunctions()/MakeLibrary().
+ *
+ * If there`s not such id the functionarray is a
+ * 32Bit 68k function ptr array.
+ * (ULONG) $ffffffff stops it
+ * }
+
+ { * 68k 16bit relative functionarray ptrs
+ * (UWORD) $ffff stops it
+ * }
+
+ FUNCARRAY_16BIT_OLD = $ffffffff;
+
+ { * PPC 32bit functionarray ptrs
+ * (ULONG) $ffff stops it
+ * }
+ FUNCARRAY_32BIT_NATIVE = $fffefffe;
+
+ { * Starts a functionarray block.
+ * This way it`s possible to mix 68k and PPC
+ * function definitions.
+ * BASE:
+ * FUNCTIONARRAY_BEGIN
+ * FUNCARRAY_32BIT_NATIVE
+ * FUNC0
+ * FUNC1
+ * .
+ * FUNCn
+ * $ffffffff
+ * FUNCn+1 (No ID->32Bit 68k)
+ * FUNCn+2
+ * .
+ * FUNCm
+ * $ffffffff
+ * FUNCARRAY_16BIT_OLD
+ * FUNCm+1-BASE
+ * FUNCm+2-BASE
+ * .
+ * FUNCo-BASE
+ * $ffff
+ * FUNCTIONARRAY_END
+ * }
+
+ FUNCARRAY_BEGIN = $fffdfffd;
+
+ { * Ends a functionarray block.
+ * }
+ FUNCARRAY_END = $fffcfffc;
+
+ { * PPC 32bit Quick functionarray ptrs.
+ * These functions must comply to the emulation's
+ * register layout which is defined inside the
+ * emul/emulregs.h. That means the register layout
+ * MUST also be valid during interrupts/task switches.
+ * You can't just destroy A7(r31), SR or PC.
+ *
+ * You shouldn't use this for any normal code
+ * as there's no real reason to do so. If you
+ * really think you need to use it please ask
+ * us first on the dev mailinglist.
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_QUICK_NATIVE = $fffbfffb;
+
+ { * PPC 32bit QuickNR(No Result) functionarray ptrs
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_QUICKNR_NATIVE = $fffafffa;
+
+ { * PPC 32bit no result functionarray ptrs
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_NR_NATIVE = $fff9fff9;
+
+ { * PPC 32bit SR functionarray ptrs
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_SR_NATIVE = $fff8fff8;
+
+ { * PPC 32bit SR(no result) functionarray ptrs
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_SRNR_NATIVE = $fff7fff7;
+
+ { * PPC 32bit D0_D1 functionarray ptrs
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_D0D1_NATIVE = $fff6fff6;
+
+ { * PPC 32bit Restore1 functionarray ptrs
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_RESTORE_NATIVE = $fff5fff5;
+
+ { * PPC 32bit SystemV ABI entry
+ * these function entries DON'T comply
+ * to the amiga register modell REG_D0-A6
+ * but comply to the PPC SystemV ABI so
+ * you can directly use PPC C Argument
+ * parsing. That way you're also not limited
+ * with the register count.
+ * Such library functions can't be used
+ * by 68k emulation, so you can only use
+ * them for new code.
+ * As we allow these new functions to be
+ * used with old functions we keep the
+ * 6 bytes function entry steps in the library.
+ * Layout is
+ *
+ * CODE_JMP, &FuncEntry ; Old Entry
+ * CODE_ILLEGAL, Function ; SystemV ABI Entry
+ *
+ *
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_SYSTEMV = $fff4fff4;
+
+ { * PPC 32bit D0D1SR functionarray ptrs
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_D0D1SR_NATIVE = $fff3fff3;
+
+ { * PPC 32bit D0D1A0A1SR functionarray ptrs
+ * (ULONG) $ffffffff stops it
+ * }
+ FUNCARRAY_32BIT_D0D1A0A1SR_NATIVE = $fff2fff2;
+
+
+
+{ * exec device definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 04.08.2011 ALB
+ PDevice = ^TDevice;
+ TDevice = record
+ dd_Library: TLibrary;
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PUnit = ^TUnit;
+ TUnit = record
+ unit_MsgPort: TMsgPort;
+ unit_flags : Byte;
+ unit_pad : Byte;
+ unit_OpenCnt: Word;
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ UNITF_ACTIVE = (1 shl 0);
+ UNITF_INTASK = (1 shl 1);
+
+
+
+{ * exec io definitions
+ *********************************************************************
+ * }
+
+
+type // Checked OK 05.08.2011 ALB
+ PIORequest = ^TIORequest;
+ TIORequest = record
+ io_Message: TMessage;
+ io_Device : PDevice;
+ io_Unit : PUnit;
+ io_Command: Word;
+ io_Flags : Byte;
+ io_Error : ShortInt;
+ end;
+
+type // Checked OK 05.08.2011 ALB
+ PIOStdReq = ^TIOStdReq;
+ TIOStdReq = record
+ io_Message: TMessage;
+ io_Device : PDevice;
+ io_Unit : PUnit;
+ io_Command: Word;
+ io_Flags : Byte;
+ io_Error : ShortInt;
+ io_Actual : DWord;
+ io_Length : DWord;
+ io_Data : Pointer;
+ io_Offset : DWord;
+ end;
+
+
+const // Checked OK 05.08.2011 ALB
+ DEV_BEGINIO = -30;
+ DEV_ABORTIO = -36;
+
+ IOB_QUICK = 0;
+ IOF_QUICK = (1 Shl IOB_QUICK);
+
+ CMD_INVALID = 0;
+ CMD_RESET = 1;
+ CMD_READ = 2;
+ CMD_WRITE = 3;
+ CMD_UPDATE = 4;
+ CMD_CLEAR = 5;
+ CMD_STOP = 6;
+ CMD_START = 7;
+ CMD_FLUSH = 8;
+ CMD_NONSTD = 9;
+
+type
+
+ PArosSupportBase = ^TArosSupportBase;
+ TArosSupportBase = record
+ StdOut: Pointer;
+ kPrintfPtr: Pointer;
+ rkPrintfPtr: Pointer;
+ vkPrintfPtr: Pointer;
+ DebugConfig: Pointer;
+ end;
+
+{ * exec include
+ *********************************************************************
+ * }
+
+
+type // Checked OK 05.08.2011 ALB
+ PExecBase = ^TExecBase;
+ TExecBase = record
+ // lib structure for Exec
+ LIbNode : TLibrary;
+
+ // system constants
+
+ SoftVer : Word; // obsolete
+ LowMemChkSum: SmallInt;
+ ChkBase : PtrUInt;
+ ColdCapture : Pointer;
+ CoolCapture : Pointer;
+ WarmCapture : Pointer;
+ SysStkUpper : Pointer; // System Stack Bounds
+ SysStkLower : Pointer;
+ MaxLocMem : PtrUInt; // Chip Memory Pointer
+ DebugEntry : Pointer;
+ DebugData : Pointer;
+ AlertData : Pointer;
+ MaxExtMem : Pointer; // Extended Memory Pointer (may be nil)
+ ChkSum : Word; // SoftVer to MaxExtMem
+
+ // interrupts
+
+ IntVects : Array[0..15] Of TIntVector;
+
+ // System Variables
+
+ ThisTask : PTask; // Pointer to currently running Task READONLY
+ IdleCount : DWord;
+ DispCount : DWord;
+ Quantum : Word; // # of ticks a task may run
+ Elapsed : Word; // # of ticks the current task has run
+ SysFlags : Word;
+ IDNestCnt : ShortInt;
+ TDNestCnt : ShortInt;
+ AttnFlags : Word; // Attention Flags .. se below
+ AttnResched : Word;
+ ResModules : Pointer;
+
+ TaskTrapCode : Pointer;
+ TaskExceptCode: Pointer;
+ TaskExitCode : Pointer;
+ TaskSigAlloc : DWord;
+ TaskTrapAlloc : Word;
+
+ // Private Lists
+
+ MemList : TEList;
+ ResourceList: TEList;
+ DeviceList : TEList;
+ IntrList : TEList;
+ LibList : TEList;
+ PortList : TEList;
+ TaskReady : TEList;
+ TaskWait : TEList;
+ SoftInts : Array[0..4] Of TSoftIntList;
+
+ //stuff
+
+ LastAlert : Array[0..3] Of LongInt;
+
+ VBlankFrequency : Byte;
+ PowerSupplyFrequency: Byte; // AROS PRIVATE: VBlankFreq * PowerSupplyFreq = Timer Tick Rate
+ SemaphoreList : TEList;
+
+ // Kickstart
+
+ KickMemPtr : Pointer;
+ KickTagPtr : Pointer;
+ KickCheckSum : Pointer;
+
+ // Miscellaneous stuff
+
+ ex_Pad0 : Word;
+ ex_LaunchPoint : PtrUInt;
+ ex_RamLibPrivate : Pointer;
+ ex_EClockFrequency : DWord;
+ ex_CacheControl : DWord;
+ ex_TaskID : DWord;
+ ex_Reserved1 : Array[0..4] Of DWord;
+ ex_MMULock : Pointer;
+ ex_Reserved2 : Array[0..1] Of DWord;
+ ex_DebugFlags : DWord; { * Exec Debug Flags..*private* * }
+
+ ex_MemHandlers : TMinList;
+ ex_MemHandler : Pointer;
+ // Additional field for AROS
+ DebugAROSBase : PArosSupportBase;
+ end;
+
+
+ { *
+ * Outdated 68k cpu informations
+ *
+ * }
+const // Checked OK 05.08.2011 ALB
+ AFB_68010 = 0;
+ AFB_68020 = 1;
+ AFB_68030 = 2;
+ AFB_68040 = 3;
+ AFB_68881 = 4;
+ AFB_68882 = 5;
+ AFB_FPU40 = 6;
+ AFB_68060 = 7;
+ AFB_PRIVATE = 15;
+
+ AFF_68010 = (1 shl AFB_68010);
+ AFF_68020 = (1 shl AFB_68020);
+ AFF_68030 = (1 shl AFB_68030);
+ AFF_68040 = (1 shl AFB_68040);
+ AFF_68881 = (1 shl AFB_68881);
+ AFF_68882 = (1 shl AFB_68882);
+ AFF_FPU40 = (1 shl AFB_FPU40);
+ AFF_68060 = (1 shl AFB_68060);
+ AFF_PRIVATE = (1 shl AFB_PRIVATE);
+
+ { *
+ * Outdated 68k cache functionality
+ * Mostly without function.
+ * }
+const // Checked OK 05.08.2011 ALB
+ CACRF_EnableI = (1 shl 0);
+ CACRF_FreezeI = (1 shl 1);
+ CACRF_ClearI = (1 shl 3);
+ CACRF_IBE = (1 shl 4);
+ CACRF_EnableD = (1 shl 8);
+ CACRF_FreezeD = (1 shl 9);
+ CACRF_ClearD = (1 shl 11);
+ CACRF_DBE = (1 shl 12);
+ CACRF_WriteAllocate = (1 shl 13);
+ CACRF_EnableE = (1 shl 30);
+ CACRF_CopyBack = (1 shl 31);
+
+ DMA_Continue = (1 shl 1);
+ DMA_NoModify = (1 shl 2);
+ DMA_ReadFromRAM = (1 shl 3);
+(*
+ SB_SAR = 15;
+ SB_TQE = 14;
+ SB_SINT = 13;
+
+ SF_SAR = (1 shl SB_SAR);
+ SF_TQE = (1 shl SB_TQE);
+ SF_SINT = (1 shl SB_SINT);
+*)
+
+ { ****** Debug Flags...(don`t depend on them) ********** }
+const // Checked OK 05.08.2011 ALB
+ EXECDEBUGF_INITRESIDENT = $1;
+ EXECDEBUGF_INITCODE = $2;
+ EXECDEBUGF_FINDRESIDENT = $4;
+
+ EXECDEBUGF_CREATELIBRARY = $10;
+ EXECDEBUGF_SETFUNCTION = $20;
+ EXECDEBUGF_NEWSETFUNCTION = $40;
+ EXECDEBUGF_CHIPRAM = $80;
+
+ EXECDEBUGF_ADDTASK = $100;
+ EXECDEBUGF_REMTASK = $200;
+ EXECDEBUGF_GETTASKATTR = $400;
+ EXECDEBUGF_SETTASKATTR = $800;
+
+ EXECDEBUGF_EXCEPTHANDLER = $1000;
+ EXECDEBUGF_ADDDOSNODE = $2000;
+ EXECDEBUGF_PCI = $4000;
+ EXECDEBUGF_RAMLIB = $8000;
+
+ EXECDEBUGF_NOLOGSERVER = $10000;
+ EXECDEBUGF_NOLOGWINDOW = $20000;
+
+ { *
+ * "env:MorphOS/LogPath" contains the logfile path,
+ * If not specified it`s using "ram:.morphoslog"
+ * }
+ EXECDEBUGF_LOGFILE = $40000;
+ EXECDEBUGF_LOGKPRINTF = $80000;
+
+ { * Memory Tracking Flags
+ * }
+ EXECDEBUGF_PERMMEMTRACK = $100000;
+ EXECDEBUGF_MEMTRACK = $200000;
+
+ { * CyberGuardPPC Flags
+ * }
+ EXECDEBUGF_CYBERGUARDDEADLY = $400000;
+
+ { * PPCLib Flags
+ * }
+ EXECDEBUGF_LOADSEG = $01000000;
+ EXECDEBUGF_UNLOADSEG = $02000000;
+ EXECDEBUGF_PPCSTART = $04000000;
+
+ { * UserFlags
+ * }
+
+ { *
+ * Enables debug output for cybergraphx
+ * }
+const // Checked OK 05.08.2011 ALB
+ EXECDEBUGF_CGXDEBUG = $08000000;
+
+ { *
+ * Should be used to control user LibInit/DevInit Debug output
+ * }
+ EXECDEBUGF_INIT = $40000000;
+
+ { *
+ * Should be used to control logging
+ * }
+ EXECDEBUGF_LOG = $80000000;
+
+
+
+{*
+ * The following definitions are private!
+ *}
+const // Checked OK 05.08.2011 ALB
+// SysFlags
+ SFF_SoftInt = (1 shl 5); // There is a software interrupt
+ SFF_QuantumOver = (1 shl 13); // Task's time slice is over
+
+// AttnFlags
+ ARF_AttnSwitch = (1 shl 7); // Delayed Switch() pending
+ ARF_AttnDispatch = (1 shl 15); // Delayed Dispatch() pending
+
+const
+ { *
+ * Execbase list IDs
+ * }
+ EXECLIST_DEVICE = 0;
+ EXECLIST_INTERRUPT = 1;
+ EXECLIST_LIBRARY = 2;
+ EXECLIST_MEMHANDLER = 3;
+ EXECLIST_MEMHEADER = 4;
+ EXECLIST_PORT = 5;
+ EXECLIST_RESOURCE = 6;
+ EXECLIST_SEMAPHORE = 7;
+ EXECLIST_TASK = 8;
+
+
+ { *
+ * Execnotify hook message
+ * }
+type
+ PExecNotifyMessage = ^TExecNotifyMessage;
+ TExecNotifyMessage = record
+ MType : DWord;
+ Flags : DWord;
+ Extra : DWord;
+ Extension: Pointer;
+ end;
+
+
+const
+ EXECNOTIFYF_REMOVE = (1 Shl 0); { * if clear, is ADD * }
+ EXECNOTIFYF_POST = (1 Shl 1); { * if clear, is PRE * }
+
+
+ { *
+ * AddExecNodeTagList tags
+ * }
+const
+ SAL_Dummy = (TAG_USER + 1000);
+ SAL_Type = (SAL_Dummy + 1);
+ SAL_Priority = (SAL_Dummy + 2);
+ SAL_Name = (SAL_Dummy + 3);
+
+{$include utild2.inc}
+
+
+
diff --git a/rtl/aros/i386/execf.inc b/rtl/aros/i386/execf.inc
new file mode 100644
index 0000000000..0a15874015
--- /dev/null
+++ b/rtl/aros/i386/execf.inc
@@ -0,0 +1,89 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2006 Karoly Balogh
+
+ exec functions (V40) for Amiga/PowerPC
+
+ 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
+ LocalExecBase : Pointer; external name '_ExecBase';
+
+procedure Forbid; syscall AOS_ExecBase 22;
+procedure Permit; syscall AOS_ExecBase 23;
+function execAllocMem(byteSize: Cardinal; requirements: Cardinal): Pointer; syscall LocalExecBase 33;
+procedure execFreeMem(memoryBlock: Pointer; byteSize: Cardinal); syscall LocalExecBase 35;
+function FindTask(name: PChar): PTask; syscall LocalExecBase 49;
+function SetSignal(newSignals: Cardinal; signalSet : Cardinal): Cardinal; syscall LocalExecBase 51;
+function Wait(SignalSet: LongWord): LongWord; syscall AOS_ExecBase 53;
+procedure Signal(Task: PTask; SignalSet: LongWord); syscall AOS_ExecBase 54;
+function AllocSignal(signalNum: LongInt): ShortInt; syscall LocalExecBase 55;
+procedure FreeSignal(signalNum: LongInt); syscall LocalExecBase 56;
+procedure AddPort(port: PMsgPort); syscall LocalExecBase 59;
+procedure RemPort(port: PMsgPort); syscall LocalExecBase 60;
+function GetMsg(port: PMsgPort): PMessage; syscall LocalExecBase 62;
+procedure ReplyMsg(message : pMessage); syscall LocalExecBase 63;
+function WaitPort(port: PMsgPort): PMessage; syscall LocalExecBase 64;
+procedure CloseLibrary(libHandle: PLibrary); syscall LocalExecBase 69;
+function OpenDevice(devName: PChar; numunit: Cardinal; ioRequest: pIORequest; flags: Cardinal): ShortInt; syscall LocalExecBase 74;
+procedure CloseDevice(ioRequest: PIORequest); syscall LocalExecBase 75;
+function DoIO(ioRequest: PIORequest): ShortInt; syscall LocalExecBase 76;
+function OpenLibrary(libname: PChar; libver : Cardinal): Pointer; syscall LocalExecBase 92;
+procedure InitSemaphore(SigSem: PSignalSemaphore); syscall AOS_ExecBase 93;
+procedure ObtainSemaphore(SigSem: PSignalSemaphore); syscall AOS_ExecBase 94;
+procedure ReleaseSemaphore(SigSem: PSignalSemaphore); syscall AOS_ExecBase 95;
+function AttemptSemaphore(SigSem: PSignalSemaphore): LongWord; syscall AOS_ExecBase 96;
+function CreatePool(requirements: Cardinal; puddleSize: Cardinal; threshSize: Cardinal): Pointer; syscall LocalExecBase 116;
+procedure DeletePool(poolHeader: Pointer); syscall LocalExecBase 117;
+function AllocPooled(poolHeader: Pointer; memSize: Cardinal): Pointer; syscall LocalExecBase 118;
+function FreePooled(poolHeader: Pointer; memory: Pointer; memSize: Cardinal): Pointer; syscall LocalExecBase 119;
+procedure StackSwap(NewStack: PStackSwapStruct); syscall AOS_ExecBase 122;
+procedure RawPutChar(c: Char); syscall AOS_ExecBase 86;
+
+//function RawDoFmt(const formatString : pCHAR;const dataStream : POINTER; putChProc : tPROCEDURE; putChData : POINTER): pointer;
+function RawDoFmt(const formatString : pCHAR;const dataStream : POINTER; putChProc : POINTER; putChData : POINTER): pointer; syscall LocalExecBase 87;
+
+function GetLibAdress(Base: Pointer; Offset: LongInt): Pointer; inline;
+begin
+ if Base = nil then
+ begin
+ RawDoFmt('FPC_FILE_DEBUG: Error! Illegal library access with not opened library: %d !'+#10,@Offset,pointer(1),nil);
+ Debugln('Illegal library access with not opened library');
+ Halt(1);
+ end;
+ GetLibAdress := Pointer((Base -(Offset * SizeOf(Pointer)))^);
+end;
+
+procedure Debug(s: string);
+type
+ TkPrintf = function(Msg: PChar): Integer; cdecl;
+var
+ kPrintf: TkPrintf;
+ d: string;
+ i: Integer;
+begin
+ if Assigned(AOS_ExecBase) then
+ begin
+ if Assigned(PExecBase(AOS_ExecBase)^.DebugArosBase) then
+ begin
+ kPrintf := TKPrintF(PExecBase(AOS_ExecBase)^.DebugArosBase^.kprintfPtr);
+ if Assigned(kPrintf) then
+ begin
+ d := s + #0;
+ i := kPrintf(@d[1]);
+ end;
+ end;
+ end;
+end;
+
+procedure Debugln(s: string);
+begin
+ Debug(s + #10);
+end;
diff --git a/rtl/aros/i386/prt0.as b/rtl/aros/i386/prt0.as
new file mode 100644
index 0000000000..527dc5cb7e
--- /dev/null
+++ b/rtl/aros/i386/prt0.as
@@ -0,0 +1,162 @@
+#
+# This file is part of the Free Pascal run time library.
+# Copyright (c) 2011 by Marcus Sackrow
+#
+# Startup code for AROS/i386 RTL
+#
+# 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.
+#
+
+# AROS Startup Code
+ .text
+ .align 4
+ .section .aros.startup, "ax"
+ .globl _start
+ .globl start
+ .globl _haltproc
+ .globl haltproc
+_start:
+start:
+
+ /* Save the exec library base */
+ movl 12(%esp),%eax
+ movl %eax,_ExecBase
+
+ /* Save the command line pointer length to CommandLineLen */
+ movl 8(%esp),%eax
+ movl %eax,CommandLineLen
+
+ /* Save the command line pointer to CommandLine */
+ movl 4(%esp),%eax
+ movl %eax,CommandLine
+
+ /* save all registers */
+ pushal
+
+ /* get the pointer to current stack */
+ movl _ExecBase,%eax
+ pushl %eax
+ pushl $0
+ movl -196(%eax),%eax /* FindTask(nil) */
+ call *%eax
+ addl $8,%esp
+
+ movl 64(%eax),%ecx /* SPUpper */
+ subl 60(%eax),%ecx /* SPLower */
+
+/* Uncomment the symbol line below to force system stack use,
+ and do not attempt to reallocate stack if the system-provided
+ stack is smaller than the user specified */
+# FORCE_USE_SYSTEM_STACK:
+
+.ifndef FORCE_USE_SYSTEM_STACK
+ /* Check if we need a new stack
+ Only allocate a new stack if the system-provided
+ stack is smaller than the one set compile time */
+ cmpl __stklen,%ecx
+ jl _allocStack
+.endif
+
+ movl %ecx,__stklen /* Store the new stack size */
+ xorl %eax,%eax
+ movl %eax,StackAreaPtr /* Clear the stackAreaPtr for exit test */
+ jmp _noAllocStack
+
+_allocStack:
+ /* Allocating new stack */
+ movl _ExecBase,%eax
+ pushl %eax
+ pushl $0 /* MEMF_ANY */
+ pushl __stklen
+ movl -456(%eax),%eax /* AllocVec() */
+ call *%eax
+ addl $12,%esp
+
+ testl %eax,%eax
+ je __exit
+ movl %eax,StackAreaPtr
+
+ /* Setting up StackSwap structure, and do the StackSwap */
+ lea StackSwapStruct,%ecx
+ movl %eax,(%ecx) /* Bottom of the stack */
+ addl __stklen,%eax
+ movl %eax,4(%ecx) /* Top of the stack */
+ movl %eax,8(%ecx) /* Initial stackpointer */
+ movl _ExecBase,%eax
+ pushl %eax
+ lea StackSwapArgs,%ebx
+ pushl %ebx
+ lea _initProc,%ebx
+ pushl %ebx
+ pushl %ecx
+ movl -536(%eax),%eax /* NewStackSwap() */
+ call *%eax
+ addl $16,%esp
+ jmp _afterMain
+
+_noAllocStack:
+ call _initProc
+
+_afterMain:
+ /* check if we have a StackArea to free */
+ movl StackAreaPtr,%eax
+ testl %eax,%eax
+ je __exit
+
+_freeStack:
+ /* Freeing up stack area */
+ movl _ExecBase,%eax
+ pushl %eax
+ pushl StackAreaPtr
+ movl -460(%eax),%eax /* FreeVec() */
+ call *%eax
+ addl $8,%esp
+
+__exit:
+ /* get back all registers */
+ popal
+ /* get returncode */
+ movl operatingsystem_result,%eax
+ /* bye bye */
+ ret
+
+ /* This function is getting called from NewStackSwap() or
+ as standalone if we don't do stackswap */
+_initProc:
+ pushal
+ /* Save stack pointer */
+ movl %esp,STKPTR
+
+ /* call the main function */
+ call PASCALMAIN
+
+ /* entry to stop the program */
+_haltproc:
+haltproc:
+ /* restore the old stackPtr and return */
+ movl STKPTR,%esp
+ popal
+ ret
+
+ /*----------------------------------------------------*/
+
+ .bss
+ .global CommandLineLen # byte length of command line
+ .global CommandLine # comandline as PChar
+ .global STKPTR # Used to terminate the program, initial SP
+ .global _ExecBase # exec library base
+ .align 4
+
+CommandLine: .skip 4
+CommandLineLen: .skip 4
+STKPTR: .skip 4
+_ExecBase: .skip 4
+
+StackAreaPtr: .skip 4
+StackSwapStruct: .skip 12
+StackSwapArgs: .skip 32
diff --git a/rtl/aros/i386/utild1.inc b/rtl/aros/i386/utild1.inc
new file mode 100644
index 0000000000..1ba0b964b1
--- /dev/null
+++ b/rtl/aros/i386/utild1.inc
@@ -0,0 +1,153 @@
+{
+ This file is part of the Free Pascal run time library.
+
+ utility definitions (V50) for MorphOS/PowerPC
+ Copyright (c) 2002 The MorphOS Development Team, All Rights Reserved.
+
+ Free Pascal conversion, first part
+ Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
+
+ 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.
+
+ **********************************************************************}
+
+
+{ * utility.library date defines
+ *********************************************************************
+ * }
+
+
+type
+ PClockData = ^TClockData;
+ TClockData = record
+ sec : Word;
+ min : Word;
+ hour : Word;
+ mday : Word;
+ month: Word;
+ year : Word;
+ wday : Word;
+ end;
+
+
+
+{ * utility.library tagitem defines
+ *********************************************************************
+ * }
+
+
+type
+ Tag = Cardinal;
+
+type
+ PPTagItem = ^PTagItem;
+ PTagItem = ^TTagItem;
+ TTagItem = record
+ ti_Tag : Tag;
+ ti_Data: Cardinal;
+ end;
+
+
+const
+ TAG_DONE = 0;
+ TAG_END = 0;
+ TAG_IGNORE = 1;
+ TAG_MORE = 2;
+ TAG_SKIP = 3;
+
+const
+ TAG_USER = 1 Shl 31;
+
+const
+ TAGFILTER_AND = 0;
+ TAGFILTER_NOT = 1;
+
+const
+ MAP_REMOVE_NOT_FOUND = 0;
+ MAP_KEEP_NOT_FOUND = 1;
+
+
+
+{ * utility.library namespace defines
+ *********************************************************************
+ * }
+
+
+type
+ PNamedObject = ^TNamedObject;
+ TNamedObject = record
+ no_Object: Pointer;
+ end;
+
+
+const
+ ANO_NameSpace = 4000;
+ ANO_UserSpace = 4001;
+ ANO_Priority = 4002;
+ ANO_Flags = 4003;
+
+ NSB_NODUPS = 0;
+ NSB_CASE = 1;
+
+ NSF_NODUPS = 1 Shl NSB_NODUPS;
+ NSF_CASE = 1 Shl NSB_CASE;
+
+
+
+{ * utility.library pack attributes and macros
+ *********************************************************************
+ * }
+
+
+const
+ PSTB_SIGNED = 31;
+ PSTB_UNPACK = 30;
+ PSTB_PACK = 29;
+ PSTB_EXISTS = 26;
+
+ PSTF_SIGNED = (1 Shl PSTB_SIGNED);
+ PSTF_UNPACK = (1 Shl PSTB_UNPACK);
+ PSTF_PACK = (1 Shl PSTB_PACK);
+ PSTF_EXISTS = (1 Shl PSTB_EXISTS);
+
+const
+ PKCTRL_PACKUNPACK = $00000000;
+ PKCTRL_PACKONLY = $40000000;
+ PKCTRL_UNPACKONLY = $20000000;
+
+ PKCTRL_BYTE = $80000000;
+ PKCTRL_WORD = $88000000;
+ PKCTRL_LONG = $90000000;
+
+ PKCTRL_UBYTE = $00000000;
+ PKCTRL_UWORD = $08000000;
+ PKCTRL_ULONG = $10000000;
+
+ PKCTRL_BIT = $18000000;
+ PKCTRL_FLIPBIT = $98000000;
+
+{$WARNING FIX ME!!! Some macros to convert}
+{
+ PK_BITNUM1(flg) ((flg) == 0x01 ? 0 : (flg) == 0x02 ? 1 : (flg) == 0x04 ? 2 : (flg) == 0x08 ? 3 : (flg) == 0x10 ? 4 : (flg) == 0x20 ? 5 : (flg) == 0x40 ? 6 : 7)
+ PK_BITNUM2(flg) ((flg < 0x100 ? PK_BITNUM1(flg) : 8 + PK_BITNUM1(flg >> 8)))
+ PK_BITNUM(flg) ((flg < 0x10000 ? PK_BITNUM2(flg) : 16 + PK_BITNUM2(flg >> 16)))
+ PK_WORDOFFSET(flg) ((flg) < 0x100 ? 1 : 0)
+ PK_LONGOFFSET(flg) ((flg) < 0x100 ? 3 : (flg) < 0x10000 ? 2 : (flg) < 0x1000000 ? 1 : 0)
+ PK_CALCOFFSET(type,field) ((ULONG)(&((struct type *)0)->field))
+
+
+ PACK_STARTTABLE(tagbase) (tagbase)
+ PACK_NEWOFFSET(tagbase) (-1L),(tagbase)
+ PACK_ENDTABLE 0
+ PACK_ENTRY(tagbase,tag,type,field,control) (control | ((tag-tagbase) << 16L) | PK_CALCOFFSET(type,field))
+ PACK_BYTEBIT(tagbase,tag,type,field,control,flags) (control | ((tag-tagbase) << 16L) | PK_CALCOFFSET(type,field) | (PK_BITNUM(flags) << 13L))
+ PACK_WORDBIT(tagbase,tag,type,field,control,flags) (control | ((tag-tagbase) << 16L) | (PK_CALCOFFSET(type,field) + PK_WORDOFFSET(flags)) | ((PK_BITNUM(flags) & 7) << 13L))
+ PACK_LONGBIT(tagbase,tag,type,field,control,flags) (control | ((tag-tagbase) << 16L) | (PK_CALCOFFSET(type,field) + PK_LONGOFFSET(flags)) | ((PK_BITNUM(flags) & 7) << 13L))
+}
+
+
diff --git a/rtl/aros/i386/utild2.inc b/rtl/aros/i386/utild2.inc
new file mode 100644
index 0000000000..75992ceacc
--- /dev/null
+++ b/rtl/aros/i386/utild2.inc
@@ -0,0 +1,53 @@
+{
+ This file is part of the Free Pascal run time library.
+
+ utility definitions (V50) for MorphOS/PowerPC
+ Copyright (c) 2002 The MorphOS Development Team, All Rights Reserved.
+
+ Free Pascal conversion, second part
+ Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
+
+ 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.
+
+ **********************************************************************}
+
+
+{ * utility.library include
+ *********************************************************************
+ * }
+
+
+const
+ UtilityName = 'utility.library';
+
+
+type
+ PUtilityBase = ^TUtilityName;
+ TUtilityName = record
+ ub_LibNode : TLibrary;
+ ub_Language: Byte;
+ ub_Reserved: Byte;
+ end;
+
+
+
+{ * utility.library hook defines
+ *********************************************************************
+ * }
+
+
+type
+ PHook = ^THook;
+ THook = record
+ h_MinNode : TMinNode;
+ h_Entry : Cardinal;
+ h_SubEntry: Cardinal;
+ h_Data : Pointer;
+ end;
+
+
diff --git a/rtl/aros/i386/utilf.inc b/rtl/aros/i386/utilf.inc
new file mode 100644
index 0000000000..e0ba18b659
--- /dev/null
+++ b/rtl/aros/i386/utilf.inc
@@ -0,0 +1,18 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2011 by Marcus Sackrow
+
+ utility.library functions for AROS
+
+ 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 Amiga2Date(date_amiga: longword; cd: PClockData); syscall AOS_UtilityBase 20;
+function Date2Amiga(date: PClockData): longword; syscall AOS_UtilityBase 21;
+
diff --git a/rtl/aros/system.pp b/rtl/aros/system.pp
new file mode 100644
index 0000000000..7c5c78b39d
--- /dev/null
+++ b/rtl/aros/system.pp
@@ -0,0 +1,465 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2004-2006 by Karoly Balogh
+
+ AROS conversion
+ Copyright (c) 2011 by Marcus Sackrow
+
+ System unit for AROS
+
+ Uses parts of the Free Pascal 1.0.x for Commodore Amiga/68k port
+ by Carl Eric Codere and Nils Sjoholm
+
+ 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 System;
+
+interface
+
+{$define FPC_IS_SYSTEM}
+
+{$define DISABLE_NO_THREAD_MANAGER}
+
+{$I systemh.inc}
+{$I osdebugh.inc}
+
+const
+ LineEnding = #10;
+ LFNSupport = True;
+ DirectorySeparator = '/';
+ DriveSeparator = ':';
+ ExtensionSeparator = '.';
+ PathSeparator = ';';
+ AllowDirectorySeparators : set of char = ['\','/'];
+ AllowDriveSeparators : set of char = [':'];
+ maxExitCode = 255;
+ MaxPathLen = 256;
+ AllFilesMask = '#?';
+
+const
+ UnusedHandle : THandle = 0;
+ StdInputHandle : THandle = 0;
+ StdOutputHandle : THandle = 0;
+ StdErrorHandle : THandle = 0;
+
+ FileNameCaseSensitive : Boolean = False;
+ FileNameCasePreserving: boolean = True;
+ CtrlZMarksEOF: Boolean = false; (* #26 not considered as end of file *)
+
+ sLineBreak = LineEnding;
+ DefaultTextLineBreakStyle : TTextLineBreakStyle = tlbsLF;
+
+ BreakOn : Boolean = True;
+
+
+
+var
+ AOS_ExecBase : Pointer; external name '_ExecBase';
+ AOS_DOSBase : Pointer;
+ AOS_UtilityBase: Pointer;
+ AROS_ThreadLib : Pointer; public name 'AROS_THREADLIB';
+
+ ASYS_heapPool : Pointer; { pointer for the OS pool for growing the heap }
+ ASYS_origDir : LongInt; { original directory on startup }
+ AOS_wbMsg : Pointer;
+ AOS_ConName : PChar ='CON:10/30/620/100/FPC Console Output/AUTO/CLOSE/WAIT';
+ AOS_ConHandle: THandle;
+
+ argc: LongInt;
+ argv: PPChar;
+ envp: PPChar;
+ killed : Boolean = False;
+
+function GetLibAdress(Base: Pointer; Offset: LongInt): Pointer;
+procedure Debug(s: string);
+procedure Debugln(s: string);
+
+implementation
+
+{$I system.inc}
+{$I osdebug.inc}
+type
+ PWBArg = ^TWBArg;
+ TWBArg = record
+ wa_Lock : LongInt; { a lock descriptor }
+ wa_Name : PChar; { a string relative to that lock }
+ end;
+
+ WBArgList = array[1..100] of TWBArg; { Only 1..smNumArgs are valid }
+ PWBArgList = ^WBArgList;
+
+
+ PWBStartup = ^TWBStartup;
+ TWBStartup = record
+ sm_Message : TMessage; { a standard message structure }
+ sm_Process : Pointer; { the process descriptor for you }
+ sm_Segment : Pointer; { a descriptor for your code }
+ sm_NumArgs : Longint; { the number of elements in ArgList }
+ sm_ToolWindow : Pointer; { description of window }
+ sm_ArgList : PWBArgList; { the arguments themselves }
+ end;
+
+{*****************************************************************************
+ Misc. System Dependent Functions
+*****************************************************************************}
+
+procedure haltproc(e:longint); cdecl; external name '_haltproc';
+
+procedure System_exit;
+var
+ oldDirLock: LongInt;
+begin
+ if Killed then
+ Exit;
+ Killed := True;
+ { Closing opened files }
+ CloseList(ASYS_fileList);
+ //
+ if AOS_wbMsg <> nil then
+ ReplyMsg(AOS_wbMsg);
+ { Changing back to original directory if changed }
+ if ASYS_OrigDir <> 0 then begin
+ oldDirLock:=CurrentDir(ASYS_origDir);
+ { unlock our lock if its safe, so we won't leak the lock }
+ if (oldDirLock<>0) and (oldDirLock<>ASYS_origDir) then
+ Unlock(oldDirLock);
+ end;
+ if AOS_UtilityBase <> nil then
+ CloseLibrary(AOS_UtilityBase);
+ if ASYS_heapPool <> nil then
+ DeletePool(ASYS_heapPool);
+ AOS_UtilityBase := nil;
+ ASYS_HeapPool := nil;
+ //
+ if AOS_DOSBase<>nil then
+ CloseLibrary(AOS_DOSBase);
+ AOS_DOSBase := nil;
+ //
+ HaltProc(ExitCode);
+end;
+
+{ Generates correct argument array on startup }
+procedure GenerateArgs;
+var
+ ArgVLen: LongInt;
+
+ procedure AllocArg(Idx, Len: LongInt);
+ var
+ i, OldArgVLen : LongInt;
+ begin
+ if Idx >= ArgVLen then
+ begin
+ OldArgVLen := ArgVLen;
+ ArgVLen := (Idx + 8) and (not 7);
+ SysReAllocMem(Argv, Argvlen * SizeOf(Pointer));
+ for i := OldArgVLen to ArgVLen - 1 do
+ ArgV[i]:=nil;
+ end;
+ ArgV[Idx] := SysAllocMem(Succ(Len));
+ end;
+
+var
+ Count: Word;
+ Start: Word;
+ Ende: Word;
+ LocalIndex: Word;
+ P : PChar;
+ {$H+}
+ Temp : string;
+ InQuotes: boolean;
+begin
+ P := GetArgStr;
+ ArgVLen := 0;
+
+ { Set argv[0] }
+ Temp := ParamStr(0);
+ AllocArg(0, Length(Temp));
+ Move(Temp[1], Argv[0]^, Length(Temp));
+ Argv[0][Length(Temp)] := #0;
+
+ { check if we're started from Workbench }
+ if AOS_wbMsg <> nil then
+ begin
+ ArgC := 0;
+ Exit;
+ end;
+
+ InQuotes := False;
+ { Handle the other args }
+ Count := 0;
+ { first index is one }
+ LocalIndex := 1;
+ while (P[Count] <> #0) do
+ begin
+ while (p[count]=' ') or (p[count]=#9) or (p[count]=LineEnding) do
+ Inc(count);
+ if p[count] = '"' then
+ begin
+ inQuotes := True;
+ Inc(Count);
+ end;
+ start := count;
+ if inQuotes then
+ begin
+ while (p[count]<>#0) and (p[count]<>'"') and (p[count]<>LineEnding) do
+ begin
+ Inc(Count)
+ end;
+ end else
+ begin
+ while (p[count]<>#0) and (p[count]<>' ') and (p[count]<>#9) and (p[count]<>LineEnding) do
+ inc(count);
+ end;
+ ende := count;
+ if not inQuotes then
+ begin
+ while (p[start]=' ') and (Start < Ende) do
+ Inc(Start)
+ end;
+ if (ende-start>0) then
+ begin
+ allocarg(localindex,ende-start);
+ move(p[start],argv[localindex]^,ende-start);
+ argv[localindex][ende-start]:=#0;
+ if inQuotes and (argv[localindex][(ende-start) - 1] = '"') then
+ argv[localindex][(ende-start)-1] := #0;
+ inc(localindex);
+ end;
+ if inQuotes and (p[count] = '"') then
+ Inc(Count);
+ inQuotes := False;
+ end;
+ argc:=localindex;
+end;
+
+function GetProgDir: String;
+var
+ s1 : String;
+ alock : LongInt;
+ counter: Byte;
+begin
+ GetProgDir:='';
+ SetLength(s1, 256);
+ FillChar(s1,255,#0);
+ { GetLock of program directory }
+
+ alock:=GetProgramDir;
+ if alock<>0 then begin
+ if NameFromLock(alock,@s1[1],255) then begin
+ counter:=1;
+ while (s1[counter]<>#0) and (counter<>0) do Inc(counter);
+ SetLength(s1, counter-1);
+ GetProgDir:=s1;
+ end;
+ end;
+end;
+
+function GetProgramName: String;
+{ Returns ONLY the program name }
+var
+ s1 : String;
+ counter: Byte;
+begin
+ GetProgramName:='';
+ SetLength(s1, 256);
+ FillChar(s1,255,#0);
+
+ if GetProgramName(@s1[1],255) then begin
+ { now check out and assign the length of the string }
+ counter := 1;
+ while (s1[counter]<>#0) and (counter<>0) do Inc(counter);
+ SetLength(s1, counter-1);
+
+ { now remove any component path which should not be there }
+ for counter:=length(s1) downto 1 do
+ if (s1[counter] = '/') or (s1[counter] = ':') then break;
+ { readjust counterv to point to character }
+ if counter<>1 then Inc(counter);
+
+ GetProgramName:=copy(s1,counter,length(s1));
+ end;
+end;
+
+
+{*****************************************************************************
+ ParamStr/Randomize
+*****************************************************************************}
+
+function GetWBArgsNum: Integer;
+var
+ startup: PWBStartup;
+begin
+ GetWBArgsNum := 0;
+ Startup := nil;
+ Startup := PWBStartup(AOS_wbMsg);
+ if Startup <> nil then
+ begin
+ Result := Startup^.sm_NumArgs - 1;
+ end;
+end;
+
+function GetWBArg(Idx: Integer): string;
+var
+ startup: PWBStartup;
+ wbarg: PWBArgList;
+ Path: array[0..254] of Char;
+ strPath: string;
+ Len: Integer;
+begin
+ GetWBArg := '';
+ FillChar(Path[0],255,#0);
+ Startup := PWBStartup(AOS_wbMsg);
+ if Startup <> nil then
+ begin
+ //if (Idx >= 0) and (Idx < Startup^.sm_NumArgs) then
+ begin
+ wbarg := Startup^.sm_ArgList;
+ if NameFromLock(wbarg^[Idx + 1].wa_Lock,@Path[0],255) then
+ begin
+ Len := 0;
+ while (Path[Len] <> #0) and (Len < 254) do
+ Inc(Len);
+ if Len > 0 then
+ if (Path[Len - 1] <> ':') and (Path[Len - 1] <> '/') then
+ Path[Len] := '/';
+ strPath := Path;
+ end;
+ Result := strPath + wbarg^[Idx + 1].wa_Name;
+ end;
+ end;
+end;
+
+{ number of args }
+function paramcount : longint;
+begin
+ if AOS_wbMsg<>nil then
+ paramcount:=GetWBArgsNum
+ else
+ paramcount:=argc-1;
+end;
+
+{ argument number l }
+function paramstr(l : longint) : string;
+var
+ s1: String;
+begin
+ paramstr:='';
+ if AOS_wbMsg<>nil then
+ begin
+ paramstr := GetWBArg(l);
+ end else
+ begin
+ if l=0 then begin
+ s1:=GetProgDir;
+ if s1[length(s1)]=':' then paramstr:=s1+GetProgramName
+ else paramstr:=s1+'/'+GetProgramName;
+ end else begin
+ if (l>0) and (l+1<=argc) then paramstr:=strpas(argv[l]);
+ end;
+ end;
+end;
+
+{ set randseed to a new pseudo random value }
+procedure Randomize;
+var
+ tmpTime: TDateStamp;
+begin
+ DateStamp(@tmpTime);
+ randseed := tmpTime.ds_tick;
+end;
+
+
+
+
+{ AmigaOS specific startup }
+procedure SysInitAmigaOS;
+var
+ self: PProcess;
+begin
+ self := PProcess(FindTask(nil));
+ if self^.pr_CLI = NIL then begin
+ { if we're running from Ambient/Workbench, we catch its message }
+ WaitPort(@self^.pr_MsgPort);
+ AOS_wbMsg:=GetMsg(@self^.pr_MsgPort);
+ end;
+
+ AOS_DOSBase := OpenLibrary('dos.library', 0);
+ if AOS_DOSBase = nil then
+ Halt(1);
+ AOS_UtilityBase := OpenLibrary('utility.library', 0);
+ if AOS_UtilityBase = nil then
+ Halt(1);
+
+ { Creating the memory pool for growing heap }
+ ASYS_heapPool := CreatePool(MEMF_ANY or MEMF_SEM_PROTECTED, growheapsize2, growheapsize1);
+ if ASYS_heapPool = nil then
+ Halt(1);
+
+ if AOS_wbMsg = nil then begin
+ StdInputHandle := THandle(dosInput);
+ StdOutputHandle := THandle(dosOutput);
+ StdErrorHandle := THandle(DosError1);
+ end else begin
+ AOS_ConHandle := Open(AOS_ConName, MODE_OLDFILE);
+ if AOS_ConHandle <> 0 then begin
+ StdInputHandle := AOS_ConHandle;
+ StdOutputHandle := AOS_ConHandle;
+ StdErrorHandle := AOS_ConHandle;
+ end else
+ Halt(1);
+ end;
+end;
+
+
+procedure SysInitStdIO;
+begin
+ OpenStdIO(Input,fmInput,StdInputHandle);
+ OpenStdIO(Output,fmOutput,StdOutputHandle);
+ OpenStdIO(StdOut,fmOutput,StdOutputHandle);
+ OpenStdIO(StdErr,fmOutput,StdErrorHandle);
+end;
+
+function GetProcessID: SizeUInt;
+begin
+ GetProcessID := SizeUInt(FindTask(NIL));
+end;
+
+function CheckInitialStkLen(stklen : SizeUInt) : SizeUInt;
+begin
+ result := stklen;
+end;
+
+begin
+ IsConsole := TRUE;
+ SysResetFPU;
+ if not (IsLibrary) then
+ SysInitFPU;
+ StackLength := CheckInitialStkLen(InitialStkLen);
+ StackBottom := Sptr - StackLength;
+{ OS specific startup }
+ AOS_wbMsg := nil;
+ ASYS_origDir := 0;
+ ASYS_fileList := nil;
+ envp := nil;
+ SysInitAmigaOS;
+{ Set up signals handlers }
+ //InstallSignals;
+{ Setup heap }
+ InitHeap;
+ SysInitExceptions;
+ initunicodestringmanager;
+{ Setup stdin, stdout and stderr }
+ SysInitStdIO;
+{ Reset IO Error }
+ InOutRes:=0;
+ { Arguments }
+ GenerateArgs;
+ InitSystemThreads;
+end.
diff --git a/rtl/aros/systemthreadh.inc b/rtl/aros/systemthreadh.inc
new file mode 100644
index 0000000000..139597f9cb
--- /dev/null
+++ b/rtl/aros/systemthreadh.inc
@@ -0,0 +1,2 @@
+
+
diff --git a/rtl/aros/systhrd.inc b/rtl/aros/systhrd.inc
new file mode 100644
index 0000000000..904d1eb617
--- /dev/null
+++ b/rtl/aros/systhrd.inc
@@ -0,0 +1,359 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2013 by Marcus Sackrow.
+
+ 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
+// TThreadEntryfunction = function(data: Pointer): Pointer; cdecl;
+
+const
+ threadvarblocksize : dword = 0; // total size of allocated threadvars
+ thredvarsmainthread: pointer = nil; // to free the threadvars in the signal handler
+
+var
+ ThreadsVarList: array of Pointer;
+
+{$define THREAD_SYSTEM}
+{$I arosthreads.inc}
+
+// Thread manager:
+procedure SysInitThreadvar(var offset : dword;size : dword);
+begin
+ //offset:=threadvarblocksize;
+ //inc(threadvarblocksize,size);
+end;
+
+procedure SaveThreadVars(t: Pointer);
+var
+ Idx: Integer;
+begin
+ {Idx := AROSCurrentThread();
+ if Idx >= 0 then
+ begin
+ if Idx > High(ThreadsVarList) then
+ SetLength(ThreadsVarList, Idx + 1);
+ ThreadsVarList[Idx] := t;
+ end;}
+end;
+
+function GetThreadV: Pointer;
+var
+ Idx: Integer;
+begin
+ {
+ Result := nil;
+ Idx := AROSCurrentThread();
+ if (Idx >= 0) and (Idx <= High(ThreadsVarList)) then
+ begin
+ Result := ThreadsVarList[Idx];
+ end;
+ }
+end;
+
+function SysRelocateThreadvar (offset: dword): Pointer;
+begin
+ //SysRelocateThreadvar:= GetThreadV + offset;
+end;
+
+procedure SaveThreadV(t: Pointer);
+var
+ Idx: Integer;
+begin
+ {Idx := AROSCurrentThread();
+ if Idx >= 0 then
+ begin
+ if Idx > High(ThreadsVarList) then
+ SetLength(ThreadsVarList, Idx + 1);
+ ThreadsVarList[Idx] := t;
+ end;}
+end;
+
+procedure SysAllocateThreadVars;
+var
+ threadvars: Pointer;
+begin
+ {threadvars := AllocPooled(AOS_heapPool, threadvarblocksize);
+ FillChar(threadvars^, threadvarblocksize, 0);
+ SaveThreadV(threadvars);
+ if thredvarsmainthread = nil then
+ thredvarsmainthread := threadvars;}
+end;
+
+procedure SysReleaseThreadVars;
+var
+ threadvars: Pointer;
+begin
+ { release thread vars }
+ {
+ if threadvarblocksize > 0 then
+ begin
+ threadvars := GetThreadV;
+ if threadvars <> nil then
+ begin
+ FreePooled(AOS_heapPool, threadvars, threadvarblocksize);
+ SaveThreadVars(nil);
+ end;
+ end;}
+end;
+
+type
+ TThreadInfo = record
+ F: TThreadfunc;
+ P: Pointer;
+ end;
+ PThreadinfo = ^TThreadinfo;
+
+function ThreadFunc(Data: Pointer): Pointer; cdecl;
+var
+ Ti: TThreadinfo;
+begin
+ {SysAllocateThreadVars;
+ ti := PThreadInfo(Data)^;
+ Dispose(PThreadInfo(Data));
+ // execute
+ ThreadFunc := Pointer(Ti.f(Ti.p));
+ DoneThread;}
+end;
+
+function SysBeginThread(Sa: Pointer; StackSize: PtrUInt; ThreadFunction: TThreadfunc; p: Pointer; CreationFlags: dword; var ThreadId: TThreadID): TThreadID;
+var
+ Ti: PThreadinfo;
+begin
+ Result := 0;
+ if not IsMultiThread then
+ begin
+ InitThreadVars(@SysRelocateThreadvar);
+ IsMultithread:=true;
+ end;
+ New(Ti);
+ Ti^.f := ThreadFunction;
+ Ti^.p := p;
+ SetLength(ThreadsVarList, 200);
+ //SysBeginThread := CreateThread(@ThreadFunc, Ti);
+ ThreadID := SysBeginThread;
+end;
+
+
+procedure SysEndThread(ExitCode : DWord);
+begin
+ DoneThread;
+ //ExitThread(Pointer(ExitCode));
+end;
+
+
+procedure SysThreadSwitch;
+begin
+ Delay(0);
+end;
+
+function SysSuspendThread(ThreadHandle: THandle): dword;
+begin
+ Result := 0;
+end;
+
+
+function SysResumeThread(ThreadHandle: THandle): dword;
+begin
+ Result := 0;
+end;
+
+
+function SysKillThread(threadHandle: THandle): dword;
+begin
+ SysKillThread := 0; {not supported for AROS}
+end;
+
+function SysWaitForThreadTerminate(threadHandle: THandle; TimeoutMs: LongInt): dword;
+begin
+ Result := 0;
+end;
+
+function SysThreadSetPriority (threadHandle : THandle; Prio: longint): boolean; {-15..+15, 0=normal}
+begin
+ SysThreadSetPriority := true;
+end;
+
+function SysThreadGetPriority (threadHandle : THandle): Longint;
+begin
+ SysThreadGetPriority := 0;
+end;
+
+
+function SysGetCurrentThreadId: LongInt;
+begin
+ SysGetCurrentThreadId := AROSCurrentThread;
+end;
+
+// Close all Semaphores
+procedure SysCloseAllRemainingSemaphores;
+var
+ i: Integer;
+begin
+ ObtainSemaphore(@AROSThreadStruct^.MutexListSem);
+ i := 0;
+ for i := 0 to High(AROSThreadStruct^.MutexList) do
+ begin
+ if Assigned(AROSThreadStruct^.MutexList[i]) then
+ begin
+ Dispose(AROSThreadStruct^.MutexList[i]);
+ end;
+ end;
+ ReleaseSemaphore(@AROSThreadStruct^.MutexListSem);
+end;
+
+// Critical Sections (done by Mutex)
+procedure SysInitCriticalSection(var cs: TRTLCriticalSection);
+begin
+ cs := CreateMutex;
+ //DebugLn('Create Mutex');
+end;
+
+procedure SysDoneCriticalsection(var cs: TRTLCriticalSection);
+begin
+ //DebugLn('Destroy Mutex');
+ if Assigned(cs) then
+ DestroyMutex(TRTLCriticalSection(cs));
+ cs := nil;
+end;
+
+procedure SysEnterCriticalsection(var cs: TRTLCriticalSection);
+begin
+ //DebugLn('EnterMutex');
+ if Assigned(cs) then
+ LockMutex(cs);
+end;
+
+function SysTryEnterCriticalsection(var cs: TRTLCriticalSection): longint;
+begin
+ //DebugLn('TryEnter Mutex');
+ Result := 0;
+ if Assigned(cs) then
+ Result := LongInt(TryLockMutex(cs));
+end;
+
+procedure SysLeaveCriticalsection(var cs: TRTLCriticalSection);
+begin
+ //DebugLn('Leave Mutex');
+ if Assigned(cs) then
+ UnlockMutex(cs);
+end;
+
+function SysSetThreadDataAreaPtr (newPtr:pointer):pointer;
+begin
+end;
+
+function intBasicEventCreate(EventAttributes : Pointer;
+AManualReset,InitialState : Boolean;const Name : ansistring):pEventState;
+begin
+end;
+
+procedure intbasiceventdestroy(state:peventstate);
+begin
+end;
+
+procedure intbasiceventResetEvent(state:peventstate);
+begin
+end;
+
+procedure intbasiceventSetEvent(state:peventstate);
+begin
+end;
+
+function intbasiceventWaitFor(Timeout : Cardinal;state:peventstate) : longint;
+begin
+end;
+
+function intRTLEventCreate: PRTLEvent;
+begin
+end;
+
+procedure intRTLEventDestroy(AEvent: PRTLEvent);
+begin
+end;
+
+procedure intRTLEventSetEvent(AEvent: PRTLEvent);
+begin
+end;
+
+procedure intRTLEventResetEvent(AEvent: PRTLEvent);
+begin
+end;
+
+procedure intRTLEventWaitFor(AEvent: PRTLEvent);
+begin
+end;
+
+procedure intRTLEventWaitForTimeout(AEvent: PRTLEvent;timeout : longint);
+begin
+end;
+
+
+function SysInitManager: Boolean;
+begin
+ InitThreadLib;
+ Result := True;
+end;
+
+function SysDoneManager: Boolean;
+begin
+ FinishThreadLib;
+ Result := True;
+end;
+
+
+Var
+ AROSThreadManager : TThreadManager;
+
+procedure InitSystemThreads;
+begin
+
+ with AROSThreadManager do
+ begin
+ InitManager :=@SysInitManager;
+ DoneManager :=@SysDoneManager;
+ BeginThread :=@SysBeginThread;
+ EndThread :=@SysEndThread;
+ SuspendThread :=@SysSuspendThread;
+ ResumeThread :=@SysResumeThread;
+ KillThread :=@SysKillThread;
+ ThreadSwitch :=@SysThreadSwitch;
+ WaitForThreadTerminate :=@SysWaitForThreadTerminate;
+ ThreadSetPriority :=@SysThreadSetPriority;
+ ThreadGetPriority :=@SysThreadGetPriority;
+ GetCurrentThreadId :=@SysGetCurrentThreadId;
+ InitCriticalSection :=TCriticalSectionHandler(@SysInitCriticalSection);
+ DoneCriticalSection :=TCriticalSectionHandler(@SysDoneCriticalSection);
+ EnterCriticalSection :=TCriticalSectionHandler(@SysEnterCriticalSection);
+ LeaveCriticalSection :=TCriticalSectionHandler(@SysLeaveCriticalSection);
+ InitThreadVar :=@SysInitThreadVar;
+ RelocateThreadVar :=@SysRelocateThreadVar;
+ AllocateThreadVars :=@SysAllocateThreadVars;
+ ReleaseThreadVars :=@SysReleaseThreadVars;
+ BasicEventCreate :=@intBasicEventCreate;
+ basiceventdestroy :=@intbasiceventdestroy;
+ basiceventResetEvent :=@intbasiceventResetEvent;
+ basiceventSetEvent :=@intbasiceventSetEvent;
+ basiceventWaitFor :=@intbasiceventWaitFor;
+ RTLEventCreate :=@intRTLEventCreate;
+ RTLEventDestroy :=@intRTLEventDestroy;
+ RTLEventSetEvent :=@intRTLEventSetEvent;
+ RTLEventResetEvent :=@intRTLEventResetEvent;
+ RTLEventWaitFor :=@intRTLEventWaitFor;
+ RTLEventWaitForTimeout :=@intRTLEventWaitForTimeout;
+ end;
+ SetThreadManager(AROSThreadManager);
+
+end;
+
+
+
diff --git a/rtl/aros/timerd.inc b/rtl/aros/timerd.inc
new file mode 100644
index 0000000000..0ac11a8259
--- /dev/null
+++ b/rtl/aros/timerd.inc
@@ -0,0 +1,67 @@
+{
+ This file is part of the Free Pascal run time library.
+
+ timer.device definitions (V50) for MorphOS/PowerPC
+ Copyright (c) 2002-3 The MorphOS Development Team, All Rights Reserved.
+
+ Free Pascal conversion
+ Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
+
+ AROS conversion
+ Copyright (c) 2011 Marcus Sackrow
+
+ 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.
+
+ **********************************************************************}
+
+
+{ * timer.device definitions
+ *********************************************************************
+ * }
+
+
+const // Checked OK 04.08.2011 ALB
+ UNIT_MICROHZ = 0;
+ UNIT_VBLANK = 1;
+ UNIT_ECLOCK = 2;
+ UNIT_WAITUNTIL = 3;
+ UNIT_WAITECLOCK = 4;
+
+const // Checked OK 04.08.2011 ALB
+ TIMERNAME = 'timer.device';
+
+
+type // Checked OK 04.08.2011 ALB
+ PTimeVal = ^TTimeVal;
+ TTimeVal = record
+ tv_secs : DWord;
+ tv_micro: DWord;
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PEClockVal = ^TEClockVal;
+ TEClockVal = record
+ ev_hi: DWord;
+ ev_lo: DWord;
+ end;
+
+type // Checked OK 04.08.2011 ALB
+ PTimeRequest = ^TTimeRequest;
+ TTimeRequest = record
+ tr_node: TIORequest;
+ tr_time: TTimeVal;
+ end;
+
+
+const // Checked OK 04.08.2011 ALB
+ TR_ADDREQUEST = (CMD_NONSTD + 0);
+ TR_GETSYSTIME = (CMD_NONSTD + 1);
+ TR_SETSYSTIME = (CMD_NONSTD + 2);
+
+
+
diff --git a/rtl/aros/tthread.inc b/rtl/aros/tthread.inc
new file mode 100644
index 0000000000..481533b0cc
--- /dev/null
+++ b/rtl/aros/tthread.inc
@@ -0,0 +1,161 @@
+{$include execd.inc}
+{$include execf.inc}
+{$include timerd.inc}
+{$include doslibd.inc}
+{$include doslibf.inc}
+{$include arosthreads.inc}
+
+function ThreadFunc(Data: Pointer): Pointer; cdecl;
+var
+ LThread: TThread;
+ LFreeOnTerminate: Boolean;
+ ISuspended: Boolean;
+begin
+ //Debugln('Enter ThreadFunc');
+ Result := nil;
+ LThread := TThread(Data);
+ ISuspended := LThread.FInitialSuspended;
+ if ISuspended then
+ begin
+ if not LThread.FTerminated then
+ begin
+ LockMutex(LThread.FSem);
+ WaitCondition(LThread.FCond, LThread.FSem);
+ UnlockMutex(LThread.FSem);
+ end;
+ end;
+ //Sleep(1);
+ if not LThread.FTerminated then
+ begin
+ //Debugln('Execute Thread');
+ try
+ LThread.Execute;
+ except
+ on E: Exception do
+ begin
+ //DebugLn('Exception in Thread '+ e.Classname + e.MEssage);
+ LThread.FFatalException := TObject(AcquireExceptionObject);
+ if E is EThreadDestroyCalled then
+ LThread.FFreeOnTerminate := true;
+ end;
+ end;
+ //Debugln('Back from Thread');
+ //Sleep(1);
+ end;
+ LFreeOnTerminate := LThread.FreeOnTerminate;
+ LThread.DoTerminate;
+ LThread.FFinished := True;
+ if LFreeOnTerminate then
+ LThread.Free;
+ //debugln('Finished Thread?, then what to do now?')
+end;
+
+procedure TThread.SysCreate(CreateSuspended: Boolean; const StackSize: SizeUInt);
+begin
+ if not Assigned(AROSThreadStruct) then
+ raise EThread.CreateFmt(SThreadCreateError, ['ThreadLib not found']);
+
+ FSuspended := CreateSuspended;
+ FInitialSuspended := CreateSuspended;
+
+ // Mutex for suspend actions
+ FSem := CreateMutex;
+ FCond := CreateCondition;
+
+ FHandle := AROSCreateThread(@ThreadFunc, Self, StackSize);
+ FThreadID := FHandle;
+ if FHandle = 0 then
+ raise EThread.CreateFmt(SThreadCreateError, ['Cannot Create Thread']);
+ // exception if Thread cannot be created
+ FFatalException := nil;
+end;
+
+
+procedure TThread.SysDestroy;
+begin
+ if FHandle <> 0 then
+ begin
+ if not FFinished then
+ begin
+ Terminate;
+ if FSuspended then
+ begin
+ SignalCondition(FCond);
+ Sleep(0);
+ end;
+ WaitFor;
+ end;
+ end;
+ FHandle := 0;
+ DestroyCondition(FCond);
+ DestroyMutex(FSem);
+ FFatalException := nil;
+end;
+
+procedure TThread.CallOnTerminate;
+begin
+ FOnTerminate(Self);
+end;
+
+procedure TThread.DoTerminate;
+begin
+ if Assigned(FOnTerminate) then
+ Synchronize(@CallOnTerminate);
+end;
+
+function TThread.GetPriority: TThreadPriority;
+begin
+ //
+end;
+
+procedure TThread.SetPriority(Value: TThreadPriority);
+begin
+ //
+end;
+
+procedure TThread.SetSuspended(Value: Boolean);
+begin
+ if Value <> FSuspended then
+ if Value then
+ Suspend
+ else
+ Resume;
+end;
+
+procedure TThread.Suspend;
+begin
+ if FThreadID = GetCurrentThreadID then
+ begin
+ FSuspended := True;
+ LockMutex(FSem);
+ WaitCondition(FCond, FSem);
+ UnlockMutex(FSem);
+ end else
+ Raise EThread.create('Suspending one thread from inside another one is unsupported (because it is unsafe and deadlock prone) by AROS');
+end;
+
+procedure TThread.Resume;
+begin
+ if FSuspended then
+ begin
+ SignalCondition(FCond);
+ Sleep(100);
+ end;
+ FSuspended := False;
+ FInitialSuspended := False;
+end;
+
+procedure TThread.Terminate;
+begin
+ FTerminated := True;
+end;
+
+function TThread.WaitFor: Integer;
+begin
+ Result := 0;
+ if (not FSuspended) and (FHandle <> 0) then
+ begin
+ Sleep(1);
+ AROSWaitThread(FHandle);
+ end;
+end;
diff --git a/rtl/atari/Makefile b/rtl/atari/Makefile
index 273ead6649..8b1c17203a 100644
--- a/rtl/atari/Makefile
+++ b/rtl/atari/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-03-19 rev 27188]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -409,6 +409,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst
endif
@@ -496,6 +499,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc lineinfo ctypes sysutils fgl classes math typinfo charset cpall getopts types rtlconsts sysconst
endif
@@ -634,6 +640,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -721,6 +730,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -859,6 +871,9 @@ 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
@@ -946,6 +961,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1084,6 +1102,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
@@ -1171,6 +1192,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
@@ -1310,6 +1334,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
endif
@@ -1397,6 +1424,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(CPU_TARGET)
endif
@@ -1535,6 +1565,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
endif
@@ -1622,6 +1655,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(CPU_TARGET) $(COMMON)
endif
@@ -1933,6 +1969,12 @@ 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=
@@ -1978,6 +2020,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2442,7 +2489,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2472,17 +2519,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_loaders
ifneq ($(TARGET_LOADERS),)
override ALLTARGET+=fpc_loaders
diff --git a/rtl/atari/sysfile.inc b/rtl/atari/sysfile.inc
index ce874bbbfd..961bd35666 100644
--- a/rtl/atari/sysfile.inc
+++ b/rtl/atari/sysfile.inc
@@ -324,7 +324,10 @@ begin
move.w d0,i { get handle as SIGNED VALUE... }
end;
if errno <> 0 then
+ begin
Error2InOut;
+ FileRec(f).mode:=fmclosed;
+ end;
filerec(f).handle:=i;
if ((flags and $100) <> 0) and
(FileRec (F).Handle <> UnusedHandle) then
diff --git a/rtl/atari/system.pp b/rtl/atari/system.pp
index 37ce60d793..4409c29f59 100644
--- a/rtl/atari/system.pp
+++ b/rtl/atari/system.pp
@@ -358,5 +358,4 @@ begin
errno := 0;
{ Setup command line arguments }
argc:=GetParamCount(args);
- InitVariantManager;
end.
diff --git a/rtl/beos/Makefile b/rtl/beos/Makefile
index bd6af09fd0..a8adb5f205 100644
--- a/rtl/beos/Makefile
+++ b/rtl/beos/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -409,6 +409,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl sysconst sysutils types charset cpall typinfo classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc cmem dynlibs cwstring unixcp
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl sysconst sysutils types charset cpall typinfo classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc cmem dynlibs cwstring unixcp
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl sysconst sysutils types charset cpall typinfo classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc cmem dynlibs cwstring unixcp
endif
@@ -496,6 +499,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl sysconst sysutils types charset cpall typinfo classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc cmem dynlibs cwstring unixcp
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl sysconst sysutils types charset cpall typinfo classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc cmem dynlibs cwstring unixcp
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl sysconst sysutils types charset cpall typinfo classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc cmem dynlibs cwstring unixcp
endif
@@ -634,6 +640,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -721,6 +730,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -859,6 +871,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
@@ -946,6 +961,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
@@ -1084,6 +1102,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
@@ -1171,6 +1192,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
@@ -1310,6 +1334,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
endif
@@ -1397,6 +1424,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC)
endif
@@ -1535,6 +1565,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
endif
@@ -1622,6 +1655,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET)
endif
@@ -1760,6 +1796,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -1847,6 +1886,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -2158,6 +2200,12 @@ 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=
@@ -2203,6 +2251,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2667,7 +2720,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/beos/system.pp b/rtl/beos/system.pp
index c5d91179b1..37d7b88a5a 100644
--- a/rtl/beos/system.pp
+++ b/rtl/beos/system.pp
@@ -435,9 +435,6 @@ begin
{ Reset IO Error }
InOutRes:=0;
InitSystemThreads;
-{$ifdef HASVARIANT}
- initvariantmanager;
-{$endif HASVARIANT}
setupexecname;
{ restore original signal handlers in case this is a library }
if IsLibrary then
diff --git a/rtl/bsd/ossysc.inc b/rtl/bsd/ossysc.inc
index 267bff29e1..d1be689bbb 100644
--- a/rtl/bsd/ossysc.inc
+++ b/rtl/bsd/ossysc.inc
@@ -212,6 +212,10 @@ begin
dispose(dirp);
end;
+var
+ use_openbsd_getdirentries_49 : boolean = false;
+ use_getdirentries_syscall : boolean = true;
+
function Fpreaddir(dirp : pdir) : pdirent; [public, alias : 'FPC_SYSC_READDIR'];
{Different from Linux, Readdir on BSD is based on Getdents, due to the
@@ -223,18 +227,29 @@ with blockmode have this higher?}
function readbuffer:longint;
var retval :longint;
-{$ifdef USE_GETDIRENTRIES_I49_SYSCALL}
+{$ifdef FPC_USE_GETDIRENTRIES_SYSCALL}
+ basepp : pointer;
+{$ifdef FPC_USE_GETDIRENTRIES_I49_SYSCALL}
{ OpenBSD i49 getDirEntries system call uses off_t type for last parameter }
- basep : off_t;
-{$else not USE_GETDIRENTRIES_I49_SYSCALL}
+ basep_off_t : off_t;
+{$endif not FPC_USE_GETDIRENTRIES_I49_SYSCALL}
basep : clong;
-{$endif not USE_GETDIRENTRIES_I49_SYSCALL}
-begin
-{$ifdef USE_GETDIRENTRIES_SYSCALL}
- Retval:=do_syscall(syscall_nr_getdirentries,TSysParam(dirp^.dd_fd),TSysParam(@dirp^.dd_buf^),DIRBLKSIZ {sizeof(getdentsbuffer)},TSysParam(@basep));
-{$else not USE_GETDIRENTRIES_SYSCALL}
+{$endif FPC_USE_GETDIRENTRIES_SYSCALL}
+begin
+{$ifdef FPC_USE_GETDIRENTRIES_SYSCALL}
+{$ifdef FPC_USE_GETDIRENTRIES_I49_SYSCALL}
+ if use_openbsd_getdirentries_49 then
+ basepp:=@basep_off_t
+ else
+{$endif FPC_USE_GETDIRENTRIES_I49_SYSCALL}
+ basepp:=@basep;
+ if use_getdirentries_syscall then
+ Retval:=do_syscall(syscall_nr_getdirentries,TSysParam(dirp^.dd_fd),TSysParam(@dirp^.dd_buf^),DIRBLKSIZ {sizeof(getdentsbuffer)},TSysParam(basepp))
+ else
+ Retval:=do_syscall(syscall_nr_getdents,TSysParam(dirp^.dd_fd),TSysParam(@dirp^.dd_buf^),DIRBLKSIZ {sizeof(getdentsbuffer)});
+{$else not FPC_USE_GETDIRENTRIES_SYSCALL}
Retval:=do_syscall(syscall_nr_getdents,TSysParam(dirp^.dd_fd),TSysParam(@dirp^.dd_buf^),DIRBLKSIZ {sizeof(getdentsbuffer)});
-{$endif not USE_GETDIRENTRIES_SYSCALL}
+{$endif not FPC_USE_GETDIRENTRIES_SYSCALL}
dirp^.dd_rewind:=TSysParam(dirp^.dd_buf);
if retval=0 then
begin
diff --git a/rtl/bsd/ostypes.inc b/rtl/bsd/ostypes.inc
index 97d8923cb1..ab7395e77a 100644
--- a/rtl/bsd/ostypes.inc
+++ b/rtl/bsd/ostypes.inc
@@ -63,6 +63,30 @@ TYPE
{ file characteristics services }
stat = record { the types are real}
+{$ifdef dragonfly}
+ st_ino : ino_t; // inode's number
+ st_nlink : nlink_t; // number of hard links
+ st_dev : dev_t; // inode's device
+ st_mode : mode_t; // inode protection mode
+ st_padd1 : cuint16;
+ st_uid : uid_t; // user ID of the file's owner
+ st_gid : gid_t; // group ID of the file's group
+ st_rdev : dev_t; // device type
+ st_atime : time_t; // time of last access (half timespec)
+ st_atimensec : clong; // nsec of last access (half timespec)
+ st_mtime : time_t; // time of last data modification
+ st_mtimensec : clong; // nsec of last data modification
+ st_ctime : time_t; // time of last file status change
+ st_ctimensec : clong; // nsec of last file status change
+ st_size : off_t; // file size, in bytes
+ st_blocks : cint64; // blocks allocated for file
+ st_blksize : cuint32; // optimal blocksize for I/O
+ st_flags : cuint32; // user defined flags for file
+ st_gen : cuint32; // file generation number
+ st_lspare : cint32;
+ st_qspare1 : cint64; // was recursive change detect
+ st_qspare2 : cint64;
+{$else dragonfly}
st_dev : dev_t; // inode's device
{$ifdef darwinarm}
st_mode : mode_t; // inode protection mode
@@ -114,6 +138,7 @@ TYPE
st_birthtimensec : clong; // nsec of file creation time
{$endif}
st_qspare : array[0..1] Of cint64;
+{$endif dragonfly}
end;
TStat = stat;
pStat = ^stat;
@@ -221,7 +246,7 @@ CONST
O_APPEND = 8; { Writes append to the file. }
O_NONBLOCK = 4; { Non-blocking I/O. }
-{$ifdef freebsd}
+{$if defined(freebsd) or defined(dragonfly)}
{ Other }
O_SHLOCK = $10; { Open with shared file lock }
O_EXLOCK = $20; { Open with exclusive file lock }
@@ -269,6 +294,13 @@ CONST
F_SetLkW = 13; { F_SETLK; wait if blocked }
F_SetLkRemote = 14; { debugging support for remote locks }
{$endif}
+{$ifdef dragonfly}
+ F_GetLk = 7; { get record locking information}
+ F_SetLk = 8; { set record locking information }
+ F_SetLkW = 9; { F_SETLK; wait if blocked }
+ F_Dup2Fd = 10; { duplicate file descriptor to arg }
+ F_DupFd_CloExec = 17; { close on exec duplicated fd }
+{$endif}
{$ifdef netbsd}
F_GetLk = 7; { get record locking information}
F_SetLk = 8; { set record locking information }
@@ -358,19 +390,18 @@ type
// #define ru_last ru_nivcsw
// #define ru_first ru_ixrss
-{ auto generated by a c prog, statmacr.c}
Const
- S_IFMT = 61440;
- S_IFIFO = 4096;
- S_IFCHR = 8192;
- S_IFDIR = 16384;
- S_IFBLK = 24576;
- S_IFREG = 32768;
- S_IFLNK = 40960;
- S_IFSOCK= 49152;
- S_IFWHT = 57344;
- S_ISVTX = 512;
+ S_IFMT = &170000;
+ S_IFIFO = &10000;
+ S_IFCHR = &20000;
+ S_IFDIR = &40000;
+ S_IFBLK = &60000;
+ S_IFREG = &100000;
+ S_IFLNK = &120000;
+ S_IFSOCK= &140000;
+ S_IFWHT = &160000;
+ S_ISVTX = &1000;
{
* Resource limits from FreeBSD5. To be checked for the others.
@@ -384,7 +415,7 @@ Const
RLIMIT_MEMLOCK = 6; { locked-in-memory address space }
RLIMIT_NPROC = 7; { number of processes }
RLIMIT_NOFILE = 8; { number of open files }
-{$IFDEF FreeBSD}
+{$if defined(freebsd) or defined(dragonfly)}
RLIMIT_SBSIZE = 9; { maximum size of all socket buffers }
RLIMIT_VMEM =10; { virtual process size (inclusive of mmap) }
RLIMIT_AS = RLIMIT_VMEM;
@@ -395,6 +426,9 @@ Const
{$ifdef FreeBSD}
RLIM_NLIMITS =11; { number of resource limits }
{$endif}
+ {$ifdef dragonfly}
+ RLIM_NLIMITS =12; { number of resource limits }
+ {$endif}
{$ifdef Darwin} // OS X 10.3
RLIM_NLIMITS =9; { number of resource limits }
diff --git a/rtl/bsd/sysctl.pp b/rtl/bsd/sysctl.pp
index 8a63b4234f..6eeddd327b 100644
--- a/rtl/bsd/sysctl.pp
+++ b/rtl/bsd/sysctl.pp
@@ -97,7 +97,7 @@ Uses Syscall;
{$ENDIF}
{$ifndef FPC_USE_LIBC}
-{$ifdef FreeBSD}
+{$if defined(FreeBSD) or defined(DragonFly)}
CONST syscall_nr___sysctl = 202;
{$endif}
diff --git a/rtl/bsd/sysos.inc b/rtl/bsd/sysos.inc
index c06f36e98f..cd0be3b717 100644
--- a/rtl/bsd/sysos.inc
+++ b/rtl/bsd/sysos.inc
@@ -22,7 +22,7 @@ const clib = 'c';
type libcint=longint;
plibcint=^libcint;
-{$ifdef FreeBSD} // tested on x86
+{$if defined(FreeBSD) or defined(DragonFly)} // tested on x86
function geterrnolocation: Plibcint; cdecl;external clib name '__error';
{$else}
{$ifdef NetBSD} // from a sparc dump.
diff --git a/rtl/bsd/system.pp b/rtl/bsd/system.pp
index 634b2fbfe4..316840f57a 100644
--- a/rtl/bsd/system.pp
+++ b/rtl/bsd/system.pp
@@ -79,6 +79,10 @@ Implementation
{$I system.inc}
+{$ifdef FPC_HAS_SETSYSNR_INC}
+{$I setsysnr.inc}
+{$endif FPC_HAS_SETSYSNR_INC}
+
{*****************************************************************************
Misc. System Dependent Functions
*****************************************************************************}
@@ -301,7 +305,7 @@ begin
argv:= argvparam;
envp:= envpparam;
{$ifdef cpui386}
- Set8087CW(Default8087CW);
+ Set8087CW(Default8087CW);
{$endif cpui386}
pascalmain; {run the pascal main program}
end;
@@ -327,6 +331,11 @@ Begin
IsConsole := TRUE;
StackLength := CheckInitialStkLen(InitialStkLen);
StackBottom := Sptr - StackLength;
+{$ifdef FPC_HAS_SETSYSNR_INC}
+ { This procedure is needed for openbsd system which re-uses
+ the same syscall numbers depending on OS version }
+ SetSyscallNumbers;
+{$endif FPC_HAS_SETSYSNR_INC}
{ Set up signals handlers (may be needed by init code to test cpu features) }
InstallSignals;
@@ -345,7 +354,6 @@ Begin
SetupCmdLine;
{ threading }
InitSystemThreads;
- initvariantmanager;
{ restore original signal handlers in case this is a library }
if IsLibrary then
RestoreOldSignalHandlers;
diff --git a/rtl/darwin/Makefile b/rtl/darwin/Makefile
index c6403dec18..3bc609f07d 100644
--- a/rtl/darwin/Makefile
+++ b/rtl/darwin/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -427,6 +427,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings sysctl baseunix unixutil unix initc cmem dynlibs $(CPU_UNITS) dos dl blockrtl sysutils typinfo 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-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings sysctl baseunix unixutil unix initc cmem dynlibs $(CPU_UNITS) dos dl sysutils typinfo 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),m68k-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings sysctl baseunix unixutil unix initc cmem dynlibs $(CPU_UNITS) dos dl blockrtl sysutils typinfo 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
@@ -514,6 +517,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings sysctl baseunix unixutil unix initc cmem dynlibs $(CPU_UNITS) dos dl blockrtl sysutils typinfo 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),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings sysctl baseunix unixutil unix initc cmem dynlibs $(CPU_UNITS) dos dl sysutils typinfo 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),arm-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings sysctl baseunix unixutil unix initc cmem dynlibs $(CPU_UNITS) dos dl blockrtl sysutils typinfo 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
@@ -652,6 +658,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -739,6 +748,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -877,6 +889,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
endif
@@ -964,6 +979,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
endif
@@ -1103,6 +1121,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
endif
@@ -1190,6 +1211,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
endif
@@ -1328,6 +1352,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
endif
@@ -1415,6 +1442,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
endif
@@ -1726,6 +1756,12 @@ 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=
@@ -1771,6 +1807,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2235,7 +2276,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2704,9 +2745,9 @@ rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PP
macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT)
$(COMPILER) $(INC)/macpas.pp $(REDIR)
ifeq ($(ARCH),x86_64)
-cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT)
+cpu$(PPUEXT) : $(PROCINC)/cpu.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT)
else
-cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
+cpu$(PPUEXT) : $(PROCINC)/cpu.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
endif
mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
diff --git a/rtl/darwin/Makefile.fpc b/rtl/darwin/Makefile.fpc
index 5f29ccd889..ebb036aa40 100644
--- a/rtl/darwin/Makefile.fpc
+++ b/rtl/darwin/Makefile.fpc
@@ -230,9 +230,9 @@ macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT)
#
ifeq ($(ARCH),x86_64)
-cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT)
+cpu$(PPUEXT) : $(PROCINC)/cpu.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT)
else
-cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
+cpu$(PPUEXT) : $(PROCINC)/cpu.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
endif
mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
diff --git a/rtl/dragonfly/Makefile b/rtl/dragonfly/Makefile
new file mode 100644
index 0000000000..443ba4aa8a
--- /dev/null
+++ b/rtl/dragonfly/Makefile
@@ -0,0 +1,3023 @@
+#
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
+#
+default: all
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
+UNIXs = linux $(BSDs) solaris qnx haiku aix
+LIMIT83fs = go32v2 os2 emx watcom msdos
+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=dragonfly
+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),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
+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 units)),)
+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 units)),)
+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 units)),)
+override FPCDIR:=$(FPCDIR)/..
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+override FPCDIR:=$(BASEDIR)
+ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
+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
+ifeq ($(CPU_TARGET),mipsel)
+BINUTILSPREFIX=mipsel-linux-android-
+endif
+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 $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
+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=$(RTL)/inc
+COMMON=$(RTL)/common
+PROCINC=$(RTL)/$(CPU_TARGET)
+OSPROCINC=$(RTL)/dragonfly/$(CPU_TARGET)
+BSDINC=$(RTL)/bsd
+BSDPROCINC=$(BSDINC)/$(CPU_TARGET)
+UNIXINC=$(RTL)/unix
+UNITPREFIX=rtl
+CPU_UNITS=
+ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
+SYSTEMUNIT=system
+override FPCOPT+=-dNOMOUSE
+loaders+=gprt0
+else
+SYSTEMUNIT=sysbsd
+override FPCOPT+=-dUNIX -dNOMOUSE
+endif
+ifeq ($(ARCH),x86_64)
+CPU_UNITS=x86 ports cpu
+endif
+ifdef RELEASE
+override FPCOPT+=-Ur
+endif
+OBJPASDIR=$(RTL)/objpas
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-go32v2)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-win32)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-os2)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-freebsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-beos)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-haiku)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-netbsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-solaris)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-qnx)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-netware)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-openbsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-wdosx)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-darwin)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-emx)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-watcom)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-netwlibc)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-wince)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-symbian)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-nativent)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-iphonesim)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),m68k-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),m68k-freebsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),m68k-netbsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),m68k-amiga)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),m68k-atari)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),m68k-openbsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),m68k-palmos)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),m68k-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),powerpc-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),powerpc-netbsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),powerpc-amiga)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),powerpc-macos)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),powerpc-darwin)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),powerpc-morphos)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),powerpc-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),powerpc-wii)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),powerpc-aix)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),sparc-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),sparc-netbsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),sparc-solaris)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),sparc-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),x86_64-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),x86_64-freebsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),x86_64-netbsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),x86_64-solaris)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),x86_64-openbsd)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),x86_64-darwin)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),x86_64-win64)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),x86_64-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),arm-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),arm-palmos)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),arm-darwin)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),arm-wince)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),arm-gba)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),arm-nds)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),arm-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),arm-symbian)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),arm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),powerpc64-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),powerpc64-darwin)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),powerpc64-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),powerpc64-aix)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),avr-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),armeb-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),armeb-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),mips-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),mipsel-linux)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),mipsel-embedded)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),mipsel-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),jvm-java)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),jvm-android)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),i8086-msdos)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+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)
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
+ifeq ($(FULL_TARGET),i386-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(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
+BATCHEXT=.bat
+LOADEREXT=.as
+EXEEXT=.exe
+PPLEXT=.ppl
+PPUEXT=.ppu
+OEXT=.o
+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=
+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
+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)
+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)
+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
+ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
+ifeq ($(CPU_TARGET),i386)
+FPCCPUOPT:=-OG2p3
+endif
+ifeq ($(CPU_TARGET),powerpc)
+FPCCPUOPT:=-O1r
+endif
+else
+FPCCPUOPT:=-O2
+endif
+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),)
+ifeq ($(CPU_TARGET),x86_64)
+override FPCOPT+=-Cg
+endif
+endif
+ifdef LINKSHARED
+endif
+ifdef OPT
+override FPCOPT+=$(OPT)
+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) .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 %$(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)
+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
+override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
+ifneq ($(UNITTARGETDIRPREFIX),)
+override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
+override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
+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: $(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)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
+ifdef DEBUGSYMEXT
+override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
+endif
+override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
+override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
+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) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *$(ASMEXT) *_ppas$(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
+ -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
+ifneq ($(PPUEXT),.ppu)
+ -$(DEL) *.o *.ppu *.a
+endif
+ -$(DELTREE) *$(SMARTEXT)
+ -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
+ -$(DEL) *_ppas$(BATCHEXT)
+ifdef AOUTEXT
+ -$(DEL) *$(AOUTEXT)
+endif
+ifdef DEBUGSYMEXT
+ -$(DEL) *$(DEBUGSYMEXT)
+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
+.NOTPARALLEL:
+include $(INC)/makefile.inc
+SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
+include $(PROCINC)/makefile.cpu
+SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
+SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
+prt0$(OEXT) : $(CPU_TARGET)/prt0.as
+ $(AS) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(CPU_TARGET)/prt0.as
+cprt0$(OEXT) : $(CPU_TARGET)/cprt0.as
+ $(AS) -o $(UNITTARGETDIRPREFIX)cprt0$(OEXT) $(CPU_TARGET)/cprt0.as
+gprt0$(OEXT) : $(CPU_TARGET)/gprt0.as
+ $(AS) -o $(UNITTARGETDIRPREFIX)gprt0$(OEXT) $(CPU_TARGET)/gprt0.as
+dllprt0$(OEXT) : $(CPU_TARGET)/dllprt0.as
+ $(AS) -o $(UNITTARGETDIRPREFIX)dllprt0$(OEXT) $(CPU_TARGET)/dllprt0.as
+$(SYSTEMUNIT)$(PPUEXT) : $(BSDINC)/$(SYSTEMUNIT).pp unxconst.inc $(SYSDEPS)
+ $(COMPILER) -Us -Sg $(BSDINC)/$(SYSTEMUNIT).pp
+uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
+objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp
+strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc\
+ $(PROCINC)/strings.inc $(PROCINC)/stringss.inc\
+ $(SYSTEMUNIT)$(PPUEXT)
+unixtype$(PPUEXT): $(UNIXINC)/unixtype.pp $(UNIXINC)/ctypes.inc ptypes.inc $(SYSTEMUNIT)$(PPUEXT)
+baseunix$(PPUEXT) : errno.inc ptypes.inc $(UNIXINC)/ctypes.inc \
+ $(CPU_TARGET)/signal.inc $(UNIXINC)/bunxh.inc \
+ $(BSDINC)/bunxsysc.inc $(BSDPROCINC)/syscallh.inc sysnr.inc \
+ $(BSDINC)/ostypes.inc $(BSDINC)/osmacro.inc $(UNIXINC)/gensigset.inc \
+ $(UNIXINC)/genfuncs.inc sysctl$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+unix$(PPUEXT) : $(UNIXINC)/unix.pp strings$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
+ unxconst.inc $(UNIXINC)/timezone.inc \
+ unxfunc.inc baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+linux$(PPUEXT) : baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+unixcp$(PPUEXT) : $(UNIXINC)/unixcp.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) baseunix$(PPUEXT)
+ $(COMPILER) $(UNIXINC)/unixcp.pp
+dos$(PPUEXT) : $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
+ unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+sysutils$(PPUEXT) : $(UNIXINC)/sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
+ objpas$(PPUEXT) unix$(PPUEXT) errors$(PPUEXT) sysconst$(PPUEXT)
+ $(COMPILER) -Fi$(OBJPASDIR)/sysutils $(UNIXINC)/sysutils.pp
+rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp
+ $(COMPILER) $(OBJPASDIR)/rtlconsts.pp
+classes$(PPUEXT) : $(UNIXINC)/classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
+ sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) fgl$(PPUEXT)
+ $(COMPILER) -Fi$(OBJPASDIR)/classes $(UNIXINC)/classes.pp
+fgl$(PPUEXT) : $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) system$(PPUEXT) sysutils$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/fgl.pp
+typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT) rtlconsts$(PPUEXT)
+ $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
+math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/math.pp
+types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/types.pp
+sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/sysconst.pp
+character$(PPUEXT): sysutils$(PPUEXT) $(OBJPASDIR)/character.pas objpas$(PPUEXT) rtlconsts$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/character.pas
+macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT)
+ $(COMPILER) $(INC)/macpas.pp $(REDIR)
+x86$(PPUEXT) : $(UNIXINC)/x86.pp $(SYSTEMUNIT)$(PPUEXT)
+ifeq ($(ARCH),x86_64)
+cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT)
+else
+cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
+endif
+mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
+heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -Sg $(INC)/heaptrc.pp
+lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT)
+lnfodwrf$(PPUEXT) : $(INC)/lnfodwrf.pp $(SYSTEMUNIT)$(PPUEXT)
+charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)
+cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) charset$(PPUEXT)
+ $(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas
+fpwidestring$(PPUEXT): $(OBJPASDIR)/fpwidestring.pp character$(PPUEXT) unixcp$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/fpwidestring.pp
+errors$(PPUEXT) : $(UNIXINC)/errors.pp strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+callspec$(PPUEXT) : $(INC)/callspec.pp $(SYSTEMUNIT)$(PPUEXT)
+cmem$(PPUEXT) : $(INC)/cmem.pp $(SYSTEMUNIT)$(PPUEXT)
+sysctl$(PPUEXT) : $(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) syscall$(PPUEXT)
+cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp $(SYSTEMUNIT)$(PPUEXT)
+dynlibs$(PPUEXT) : $(INC)/dynlibs.pas $(UNIXINC)/dynlibs.inc dl$(PPUEXT) objpas$(PPUEXT)
+ctypes$(PPUEXT) : $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT)
+cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT) dynlibs$(PPUEXT)
diff --git a/rtl/dragonfly/Makefile.fpc b/rtl/dragonfly/Makefile.fpc
new file mode 100644
index 0000000000..13bf5dd85d
--- /dev/null
+++ b/rtl/dragonfly/Makefile.fpc
@@ -0,0 +1,263 @@
+#
+# Makefile.fpc for Free Pascal DragonFly RTL
+#
+
+[package]
+main=rtl
+
+[install]
+fpcpackage=y
+
+[target]
+loaders=prt0 cprt0 gprt0 dllprt0
+units=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 \
+ strings syscall sysctl baseunix unixutil character \
+ unix rtlconsts initc cmem \
+ dl termio \
+ sysutils math typinfo types classes fgl dynlibs \
+ $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo \
+ errors bsd \
+ console \
+ sysconst cthreads dos cwstring \
+ fpintres unixcp fpwidestring
+implicitunits=exeinfo \
+ cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 \
+ cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 \
+ unicodedata unicodenumtable
+
+rsts=math typinfo classes sysconst
+
+[require]
+nortl=y
+
+[install]
+fpcpackage=y
+
+[default]
+fpcdir=../..
+target=dragonfly
+
+[compiler]
+includedir=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+sourcedir=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+
+
+[lib]
+libname=libfprtl.so
+libversion=2.0.0
+libunits=$(SYSTEMUNIT) objpas strings \
+ unix \
+ dos \
+ sysutils typinfo math \
+ $(CPU_UNITS) getopts heaptrc \
+ errors dynlibs
+
+[prerules]
+RTL=..
+INC=$(RTL)/inc
+COMMON=$(RTL)/common
+PROCINC=$(RTL)/$(CPU_TARGET)
+OSPROCINC=$(RTL)/dragonfly/$(CPU_TARGET)
+BSDINC=$(RTL)/bsd
+BSDPROCINC=$(BSDINC)/$(CPU_TARGET)
+UNIXINC=$(RTL)/unix
+UNITPREFIX=rtl
+CPU_UNITS=
+
+ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
+SYSTEMUNIT=system
+override FPCOPT+=-dNOMOUSE
+loaders+=gprt0
+else
+SYSTEMUNIT=sysbsd
+override FPCOPT+=-dUNIX -dNOMOUSE
+endif
+
+ifeq ($(ARCH),x86_64)
+CPU_UNITS=x86 ports cpu
+endif
+
+
+# Use new feature from 1.0.5 version
+# that generates release PPU files
+# which will not be recompiled
+ifdef RELEASE
+override FPCOPT+=-Ur
+endif
+
+# Paths
+OBJPASDIR=$(RTL)/objpas
+
+[rules]
+.NOTPARALLEL:
+# 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) : $(CPU_TARGET)/prt0.as
+ $(AS) -o $(UNITTARGETDIRPREFIX)prt0$(OEXT) $(CPU_TARGET)/prt0.as
+
+cprt0$(OEXT) : $(CPU_TARGET)/cprt0.as
+ $(AS) -o $(UNITTARGETDIRPREFIX)cprt0$(OEXT) $(CPU_TARGET)/cprt0.as
+
+gprt0$(OEXT) : $(CPU_TARGET)/gprt0.as
+ $(AS) -o $(UNITTARGETDIRPREFIX)gprt0$(OEXT) $(CPU_TARGET)/gprt0.as
+
+dllprt0$(OEXT) : $(CPU_TARGET)/dllprt0.as
+ $(AS) -o $(UNITTARGETDIRPREFIX)dllprt0$(OEXT) $(CPU_TARGET)/dllprt0.as
+
+#
+# System Units (System, Objpas, Strings)
+#
+
+$(SYSTEMUNIT)$(PPUEXT) : $(BSDINC)/$(SYSTEMUNIT).pp unxconst.inc $(SYSDEPS)
+ $(COMPILER) -Us -Sg $(BSDINC)/$(SYSTEMUNIT).pp
+
+uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
+
+objpas$(PPUEXT): $(OBJPASDIR)/objpas.pp $(INC)/except.inc $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -I$(OBJPASDIR) $(OBJPASDIR)/objpas.pp
+
+
+strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc\
+ $(PROCINC)/strings.inc $(PROCINC)/stringss.inc\
+ $(SYSTEMUNIT)$(PPUEXT)
+
+#
+# System Dependent Units
+#
+
+unixtype$(PPUEXT): $(UNIXINC)/unixtype.pp $(UNIXINC)/ctypes.inc ptypes.inc $(SYSTEMUNIT)$(PPUEXT)
+
+baseunix$(PPUEXT) : errno.inc ptypes.inc $(UNIXINC)/ctypes.inc \
+ $(CPU_TARGET)/signal.inc $(UNIXINC)/bunxh.inc \
+ $(BSDINC)/bunxsysc.inc $(BSDPROCINC)/syscallh.inc sysnr.inc \
+ $(BSDINC)/ostypes.inc $(BSDINC)/osmacro.inc $(UNIXINC)/gensigset.inc \
+ $(UNIXINC)/genfuncs.inc sysctl$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+
+
+unix$(PPUEXT) : $(UNIXINC)/unix.pp strings$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
+ unxconst.inc $(UNIXINC)/timezone.inc \
+ unxfunc.inc baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+
+linux$(PPUEXT) : baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+
+unixcp$(PPUEXT) : $(UNIXINC)/unixcp.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) baseunix$(PPUEXT)
+ $(COMPILER) $(UNIXINC)/unixcp.pp
+
+#
+# TP7 Compatible RTL Units
+#
+
+dos$(PPUEXT) : $(UNIXINC)/dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
+ unix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+
+
+#
+# Delphi Compatible Units
+#
+
+sysutils$(PPUEXT) : $(UNIXINC)/sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
+ objpas$(PPUEXT) unix$(PPUEXT) errors$(PPUEXT) sysconst$(PPUEXT)
+ $(COMPILER) -Fi$(OBJPASDIR)/sysutils $(UNIXINC)/sysutils.pp
+
+rtlconsts$(PPUEXT) : $(OBJPASDIR)/rtlconsts.pp
+ $(COMPILER) $(OBJPASDIR)/rtlconsts.pp
+
+classes$(PPUEXT) : $(UNIXINC)/classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
+ sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconsts$(PPUEXT) fgl$(PPUEXT)
+ $(COMPILER) -Fi$(OBJPASDIR)/classes $(UNIXINC)/classes.pp
+
+fgl$(PPUEXT) : $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) system$(PPUEXT) sysutils$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/fgl.pp
+
+typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT) rtlconsts$(PPUEXT)
+ $(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
+
+math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/math.pp
+
+types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/types.pp
+
+sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/sysconst.pp
+
+# let it depend on buildcollations to prevent simultaneous building of unicodedata
+character$(PPUEXT): sysutils$(PPUEXT) $(OBJPASDIR)/character.pas objpas$(PPUEXT) rtlconsts$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/character.pas
+
+#
+# Mac Pascal Model
+#
+
+macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT)
+ $(COMPILER) $(INC)/macpas.pp $(REDIR)
+
+#
+# Other system-independent RTL Units
+#
+
+x86$(PPUEXT) : $(UNIXINC)/x86.pp $(SYSTEMUNIT)$(PPUEXT)
+
+ifeq ($(ARCH),x86_64)
+cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT)
+else
+cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
+endif
+
+mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+
+getopts$(PPUEXT) : $(INC)/getopts.pp $(SYSTEMUNIT)$(PPUEXT)
+
+heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -Sg $(INC)/heaptrc.pp
+
+lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT)
+
+lnfodwrf$(PPUEXT) : $(INC)/lnfodwrf.pp $(SYSTEMUNIT)$(PPUEXT)
+
+charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)
+
+cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) charset$(PPUEXT)
+ $(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas
+
+fpwidestring$(PPUEXT): $(OBJPASDIR)/fpwidestring.pp character$(PPUEXT) unixcp$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/fpwidestring.pp
+#
+# Other system-dependent RTL Units
+#
+
+
+errors$(PPUEXT) : $(UNIXINC)/errors.pp strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+
+callspec$(PPUEXT) : $(INC)/callspec.pp $(SYSTEMUNIT)$(PPUEXT)
+
+cmem$(PPUEXT) : $(INC)/cmem.pp $(SYSTEMUNIT)$(PPUEXT)
+
+sysctl$(PPUEXT) : $(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) syscall$(PPUEXT)
+
+cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp $(SYSTEMUNIT)$(PPUEXT)
+
+dynlibs$(PPUEXT) : $(INC)/dynlibs.pas $(UNIXINC)/dynlibs.inc dl$(PPUEXT) objpas$(PPUEXT)
+
+ctypes$(PPUEXT) : $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT)
+
+cwstring$(PPUEXT) : $(UNIXINC)/cwstring.pp $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT) baseunix$(PPUEXT) unix$(PPUEXT) unixtype$(PPUEXT) ctypes$(PPUEXT) dynlibs$(PPUEXT)
+
diff --git a/rtl/dragonfly/buildrtl.pp b/rtl/dragonfly/buildrtl.pp
new file mode 100644
index 0000000000..208b88ffdf
--- /dev/null
+++ b/rtl/dragonfly/buildrtl.pp
@@ -0,0 +1,20 @@
+{ This unit is only used to edit the rtl with lazarus }
+unit buildrtl;
+
+ interface
+
+ uses
+ system, unixtype, ctypes, baseunix, strings, objpas,macpas, syscall, unixutil,
+ fpintres, heaptrc, lineinfo, lnfodwrf,
+ termio, unix, initc, cmem, mmx,
+ printer,
+ sysutils, typinfo, math, matrix, varutils,
+ charset, ucomplex, getopts,
+ errors, sockets, gpm, ipc, serial, terminfo, dl, dynlibs,
+ variants, types, dateutils, sysconst, fmtbcd,
+ cthreads, classes, fgl, convutils, stdconvs, strutils, rtlconsts, dos, objects, cwstring, fpcylix, clocale,
+ exeinfo;
+
+ implementation
+
+end.
diff --git a/rtl/dragonfly/console.pp b/rtl/dragonfly/console.pp
new file mode 100644
index 0000000000..5cc16ed61b
--- /dev/null
+++ b/rtl/dragonfly/console.pp
@@ -0,0 +1,3474 @@
+{
+ This file is part of the Free Pascal run time library.
+ (c) 2000-2003 by Marco van de Voort
+ member of the Free Pascal development team.
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ Header conversions (with FpIoctl macro expansion) for FreeBSD 4.2's
+ sys/fbio.h sys/consio.h sys/kbdio.h (together these three form
+ machine/console.h) and
+ machine/mouse.h
+
+ Converted to use in a future FreeBSD API to get the IDE running on
+ the physical console with mousesupport.
+
+ As soon as cross unit inlining is ready, all functions should be made
+ inline. (so the FpIoctl and the other very small macro's)
+
+ 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 Console;
+
+{$packrecords C}
+
+interface
+
+{I tried to keep original types as much as possible, only "int" is converted
+to longint because INT is a standard function in TP/FPC}
+
+TYPE
+ uchar = char;
+ uint = dword;
+ u_int = uint;
+ ushort= word;
+ short = integer;
+ long = dword; {?}
+ size_t= longint; {Dunno sure, but it is 32-bit}
+ caddr_t= longint; {idem}
+ vm_offset_t=dword; {idem}
+
+{----------------------------- sys/fbio.h ----------------------------------}
+
+{
+ * Copyright (c) 1992, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * This code is derived from software developed by the Computer Systems
+ * Engineering group at Lawrence Berkeley Laboratory under DARPA
+ * contract BG 91-66 and contributed to Berkeley.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)fbio.h 8.2 (Berkeley) 10/30/93
+ *
+ * $FreeBSD: src/sys/sys/fbio.h,v 1.9.2.1 2000/05/05 09:16:16 nyan Exp $
+ }
+
+{
+ * Frame buffer FpIoctls (from Sprite, trimmed to essentials for X11).
+ }
+
+{
+ * Frame buffer type codes.
+ }
+
+CONST
+
+ FBTYPE_SUN1BW =0; { multibus mono }
+ FBTYPE_SUN1COLOR =1; { multibus color }
+ FBTYPE_SUN2BW =2; { memory mono }
+ FBTYPE_SUN2COLOR =3; { color w/rasterop chips }
+ FBTYPE_SUN2GP =4; { GP1/GP2 }
+ FBTYPE_SUN5COLOR =5; { RoadRunner accelerator }
+ FBTYPE_SUN3COLOR =6; { memory color }
+ FBTYPE_MEMCOLOR =7; { memory 24-bit }
+ FBTYPE_SUN4COLOR =8; { memory color w/overlay }
+
+ FBTYPE_NOTSUN1 =9; { reserved for customer }
+ FBTYPE_NOTSUN2 =10; { reserved for customer }
+ FBTYPE_NOTSUN3 =11; { reserved for customer }
+
+ FBTYPE_SUNFAST_COLOR =12; { accelerated 8bit }
+ FBTYPE_SUNROP_COLOR =13; { MEMCOLOR with rop h/w }
+ FBTYPE_SUNFB_VIDEO =14; { Simple video mixing }
+ FBTYPE_RESERVED5 =15; { reserved, do not use }
+ FBTYPE_RESERVED4 =16; { reserved, do not use }
+ FBTYPE_RESERVED3 =17; { reserved, do not use }
+ FBTYPE_RESERVED2 =18; { reserved, do not use }
+ FBTYPE_RESERVED1 =19; { reserved, do not use }
+
+ FBTYPE_MDA =20;
+ FBTYPE_HERCULES =21;
+ FBTYPE_CGA =22;
+ FBTYPE_EGA =23;
+ FBTYPE_VGA =24;
+ FBTYPE_PC98 =25;
+ FBTYPE_TGA =26;
+
+ FBTYPE_LASTPLUSONE =27; { max number of fbs (change as add) }
+
+{
+ * Frame buffer descriptor as returned by FBIOGTYPE.
+ }
+
+type fbtype = record
+ fb_type : longint; { as defined above }
+ fb_height : longint; { in pixels }
+ fb_width : longint; { in pixels }
+ fb_depth : longint; { bits per pixel }
+ fb_cmsize : longint; { size of color map (entries) }
+ fb_size : longint; { total size in bytes }
+ end;
+
+Function FBIOGTYPE(fd:longint;var param1 : fbtype):boolean;
+
+{
+ * General purpose structure for passing info in and out of frame buffers
+ * (used for gp1) -- unsupported.
+ }
+type fbinfo = record
+ fb_physaddr : longint; { physical frame buffer address }
+ fb_hwwidth : longint; { fb board width }
+ fb_hwheight : longint; { fb board height }
+ fb_addrdelta : longint; { phys addr diff between boards }
+ fb_ropaddr : ^uchar; { fb virtual addr }
+ fb_unit : longint; { minor devnum of fb }
+ end;
+
+Function FBIOGINFO(fd:longint;var param1 : fbinfo):boolean;
+
+type
+{
+ * Color map I/O.
+ }
+ fbcmap = record
+ index : longint; { first element (0 origin) }
+ count : longint; { number of elements }
+ red : ^uchar; { red color map elements }
+ green : ^uchar; { green color map elements }
+ blue : ^uchar; { blue color map elements }
+ end;
+
+Function FBIOPUTCMAP(fd:longint;var param1 : fbcmap):boolean;
+Function FBIOGETCMAP(fd:longint;var param1 : fbcmap):boolean;
+
+{
+ * Set/get attributes.
+ }
+const
+ FB_ATTR_NDEVSPECIFIC =8; { no. of device specific values }
+ FB_ATTR_NEMUTYPES =4; { no. of emulation types }
+
+type fbsattr = record
+ flags:longint; { flags; see below }
+ emu_type : longint; { emulation type (-1 if unused) }
+ dev_specific : array[0..FB_ATTR_NDEVSPECIFIC-1] of longint; { catchall }
+ end;
+const
+ FB_ATTR_AUTOINIT =1; { emulation auto init flag }
+ FB_ATTR_DEVSPECIFIC =2; { dev. specific stuff valid flag }
+
+type fbgattr = record
+ real_type : longint; { real device type }
+ owner : longint; { PID of owner, 0 if myself }
+ _fbtype : fbtype; { fbtype info for real device }
+ sattr : fbsattr; { see above }
+ emu_types : array [0..FB_ATTR_NEMUTYPES-1] OF Longint; { possible emulations }
+ { (-1 if unused) }
+ end;
+
+{ FBIOSATTR _IOW('F', 5, struct fbsattr) -- unsupported }
+
+Function FBIOGATTR(fd:longint;var param1 : fbgattr):boolean;
+
+{
+ * Video control.
+ }
+
+const
+ FBVIDEO_OFF =0;
+ FBVIDEO_ON =1;
+
+Function FBIOSVIDEO(fd:longint;var param1 : longint):boolean;
+Function FBIOGVIDEO(fd:longint;var param1 : longint):boolean;
+
+{
+ * Hardware cursor control (for, e.g., CG6). A rather complex and icky
+ * interface that smells like VMS, but there it is....
+ }
+type fbcurpos = record
+ x : short;
+ y : short;
+ end;
+
+
+
+ fbcursor = record
+ _set : short; { flags; see below }
+ enable : short; { nonzero => cursor on, 0 => cursor off }
+ _pos : fbcurpos; { position on display }
+ hot : fbcurpos; { hot-spot within cursor }
+ cmap : fbcmap; { cursor color map }
+ _size : fbcurpos; { number of valid bits in image & mask }
+ image : caddr_t; { cursor image bits }
+ mask : caddr_t; { cursor mask bits }
+ end;
+
+const
+ FB_CUR_SETCUR =$01; { set on/off (i.e., obey fbcursor.enable) }
+ FB_CUR_SETPOS =$02; { set position }
+ FB_CUR_SETHOT =$04; { set hot-spot }
+ FB_CUR_SETCMAP =$08; { set cursor color map }
+ FB_CUR_SETSHAPE =$10; { set size & bits }
+ FB_CUR_SETALL =(FB_CUR_SETCUR OR FB_CUR_SETPOS OR FB_CUR_SETHOT OR
+ FB_CUR_SETCMAP OR FB_CUR_SETSHAPE);
+
+{ controls for cursor attributes & shape (including position) }
+Function FBIOSCURSOR(fd:longint;var param1 : fbcursor):boolean;
+Function FBIOGCURSOR(fd:longint;var param1 : fbcursor):boolean;
+
+{ controls for cursor position only }
+Function FBIOSCURPOS(fd:longint;var param1 : fbcurpos):boolean;
+Function FBIOGCURPOS(fd:longint;var param1 : fbcurpos):boolean;
+
+{ get maximum cursor size }
+Function FBIOGCURMAX(fd:longint;var param1 : fbcurpos):boolean;
+
+{ The new style frame buffer FpIoctls. }
+
+CONST
+ V_INFO_COLOR =(1 SHL 0);
+ V_INFO_GRAPHICS =(1 SHL 1);
+ V_INFO_LINEAR =(1 SHL 2);
+ V_INFO_VESA =(1 SHL 3);
+ V_INFO_MM_OTHER =(-1);
+ V_INFO_MM_TEXT =0;
+ V_INFO_MM_PLANAR =1;
+ V_INFO_MM_PACKED =2;
+ V_INFO_MM_DIRECT =3;
+ V_INFO_MM_CGA =100;
+ V_INFO_MM_HGC =101;
+ V_INFO_MM_VGAX =102;
+
+TYPE
+{ video mode information block }
+ video_info = record
+ vi_mode : longint; { mode number, see below }
+ vi_flags : longint;
+ vi_width : longint;
+ vi_height : longint;
+ vi_cwidth : longint;
+ vi_cheight : longint;
+ vi_depth : longint;
+ vi_planes : longint;
+ vi_window : uint; { physical address }
+ vi_window_size : size_t;
+ vi_window_gran : size_t;
+ vi_buffer : uint; { physical address }
+ vi_buffer_size : size_t;
+ vi_mem_model : longint;
+ { for MM_PACKED and MM_DIRECT only }
+ vi_pixel_size : longint; { in bytes }
+ { for MM_DIRECT only }
+ vi_pixel_fields : array[0..3] of longint; { RGB and reserved fields }
+ vi_pixel_fsizes : array[0..3] of longint;
+ { reserved }
+ vi_reserved : array[0..63] of uchar;
+ end;
+
+ video_info_t = video_info;
+const
+ KD_OTHER =0; { unknown }
+ KD_MONO =1; { monochrome adapter }
+ KD_HERCULES =2; { hercules adapter }
+ KD_CGA =3; { color graphics adapter }
+ KD_EGA =4; { enhanced graphics adapter }
+ KD_VGA =5; { video graphics adapter }
+ KD_PC98 =6; { PC-98 display }
+ KD_TGA =7; { TGA }
+ V_ADP_COLOR =(1 SHL 0);
+ V_ADP_MODECHANGE=(1 SHL 1);
+ V_ADP_STATESAVE =(1 SHL 2);
+ V_ADP_STATELOAD =(1 SHL 3);
+ V_ADP_FONT =(1 SHL 4);
+ V_ADP_PALETTE =(1 SHL 5);
+ V_ADP_BORDER =(1 SHL 6);
+ V_ADP_VESA =(1 SHL 7);
+ V_ADP_PROBED =(1 SHL 16);
+ V_ADP_INITIALIZED=(1 SHL 17);
+ V_ADP_REGISTERED =(1 SHL 18);
+
+{ adapter infromation block }
+type video_adapter = record
+ va_index : longint;
+ va_type : longint;
+ va_name : pchar;
+ va_unit : longint;
+ va_minor : longint;
+ va_flags : longint;
+ va_io_base : longint;
+ va_io_size : longint;
+ va_crtc_addr : longint;
+ va_mem_base : longint;
+ va_mem_size : longint;
+ va_window : vm_offset_t; { virtual address }
+ va_window_size : size_t;
+ va_window_gran : size_t;
+ va_window_orig : uint;
+ va_buffer : vm_offset_t; { virtual address }
+ va_buffer_size : size_t;
+ va_initial_mode : longint;
+ va_initial_bios_mode : longint;
+ va_mode : longint;
+ va_info : video_info;
+ va_line_width : longint;
+ va_disp_start : record
+ x : longint;
+ y : longint;
+ end;
+ va_token : pointer;
+ end;
+
+ video_adapter_t = video_adapter;
+
+ video_adapter_info = record
+ va_index : longint;
+ va_type : longint;
+ va_name : array[0..15] of char;
+ va_unit : longint;
+ va_flags : longint;
+ va_io_base : longint;
+ va_io_size : longint;
+ va_crtc_addr : longint;
+ va_mem_base : longint;
+ va_mem_size : longint;
+ va_window : uint; { virtual address }
+ va_window_size : size_t;
+ va_window_gran : size_t;
+ va_unused0 : uint;
+ va_buffer_size : size_t;
+ va_initial_mode : longint;
+ va_initial_bios_mode : longint;
+ va_mode : longint;
+ va_line_width : longint;
+ va_disp_start : record
+ x : longint;
+ y : longint;
+ end;
+ va_window_orig : uint;
+ { reserved }
+ va_reserved : array[0..63] OF uchar;
+ end;
+ video_adapter_info_t = video_adapter_info;
+
+CONST
+{ some useful video adapter index }
+ V_ADP_PRIMARY =0;
+ V_ADP_SECONDARY =1;
+
+{ video mode numbers }
+
+ M_B40x25 =0; { black & white 40 columns }
+ M_C40x25 =1; { color 40 columns }
+ M_B80x25 =2; { black & white 80 columns }
+ M_C80x25 =3; { color 80 columns }
+ M_BG320 =4; { black & white graphics 320x200 }
+ M_CG320 =5; { color graphics 320x200 }
+ M_BG640 =6; { black & white graphics 640x200 hi-res }
+ M_EGAMONO80x25 =7; { ega-mono 80x25 }
+ M_CG320_D =13; { ega mode D }
+ M_CG640_E =14; { ega mode E }
+ M_EGAMONOAPA =15; { ega mode F }
+ M_CG640x350 =16; { ega mode 10 }
+ M_ENHMONOAPA2 =17; { ega mode F with extended memory }
+ M_ENH_CG640 =18; { ega mode 10* }
+ M_ENH_B40x25 =19; { ega enhanced black & white 40 columns }
+ M_ENH_C40x25 =20; { ega enhanced color 40 columns }
+ M_ENH_B80x25 =21; { ega enhanced black & white 80 columns }
+ M_ENH_C80x25 =22; { ega enhanced color 80 columns }
+ M_VGA_C40x25 =23; { vga 8x16 font on color }
+ M_VGA_C80x25 =24; { vga 8x16 font on color }
+ M_VGA_M80x25 =25; { vga 8x16 font on mono }
+
+ M_VGA11 =26; { vga 640x480 2 colors }
+ M_BG640x480 =26;
+ M_VGA12 =27; { vga 640x480 16 colors }
+ M_CG640x480 =27;
+ M_VGA13 =28; { vga 320x200 256 colors }
+ M_VGA_CG320 =28;
+
+ M_VGA_C80x50 =30; { vga 8x8 font on color }
+ M_VGA_M80x50 =31; { vga 8x8 font on color }
+ M_VGA_C80x30 =32; { vga 8x16 font on color }
+ M_VGA_M80x30 =33; { vga 8x16 font on color }
+ M_VGA_C80x60 =34; { vga 8x8 font on color }
+ M_VGA_M80x60 =35; { vga 8x8 font on color }
+ M_VGA_CG640 =36; { vga 640x400 256 color }
+ M_VGA_MODEX =37; { vga 320x240 256 color }
+
+ M_VGA_C90x25 =40; { vga 8x16 font on color }
+ M_VGA_M90x25 =41; { vga 8x16 font on mono }
+ M_VGA_C90x30 =42; { vga 8x16 font on color }
+ M_VGA_M90x30 =43; { vga 8x16 font on mono }
+ M_VGA_C90x43 =44; { vga 8x8 font on color }
+ M_VGA_M90x43 =45; { vga 8x8 font on mono }
+ M_VGA_C90x50 =46; { vga 8x8 font on color }
+ M_VGA_M90x50 =47; { vga 8x8 font on mono }
+ M_VGA_C90x60 =48; { vga 8x8 font on color }
+ M_VGA_M90x60 =49; { vga 8x8 font on mono }
+
+ M_ENH_B80x43 =$70; { ega black & white 80x43 }
+ M_ENH_C80x43 =$71; { ega color 80x43 }
+
+ M_PC98_80x25 =98; { PC98 text 80x25 }
+ M_PC98_80x30 =99; { PC98 text 80x30 }
+ M_PC98_EGC640x400 =100; { PC98 graphic 640x400 16 colors }
+ M_PC98_PEGC640x400 =101; { PC98 graphic 640x400 256 colors }
+ M_PC98_PEGC640x480 =102; { PC98 graphic 640x480 256 colors }
+
+ M_HGC_P0 =$e0; { hercules graphics - page 0 @ B0000 }
+ M_HGC_P1 =$e1; { hercules graphics - page 1 @ B8000 }
+ M_MCA_MODE =$ff; { monochrome adapter mode }
+
+ M_TEXT_80x25 =200; { generic text modes }
+ M_TEXT_80x30 =201;
+ M_TEXT_80x43 =202;
+ M_TEXT_80x50 =203;
+ M_TEXT_80x60 =204;
+ M_TEXT_132x25 =205;
+ M_TEXT_132x30 =206;
+ M_TEXT_132x43 =207;
+ M_TEXT_132x50 =208;
+ M_TEXT_132x60 =209;
+
+ M_VESA_BASE =$100; { VESA mode number base }
+ M_VESA_CG640x400 =$100; { 640x400, 256 color }
+ M_VESA_CG640x480 =$101; { 640x480, 256 color }
+ M_VESA_800x600 =$102; { 800x600, 16 color }
+ M_VESA_CG800x600 =$103; { 800x600, 256 color }
+ M_VESA_1024x768 =$104; { 1024x768, 16 color }
+ M_VESA_CG1024x768 =$105; { 1024x768, 256 color }
+ M_VESA_1280x1024 =$106; { 1280x1024, 16 color }
+ M_VESA_CG1280x1024 =$107; { 1280x1024, 256 color }
+ M_VESA_C80x60 =$108; { 8x8 font }
+ M_VESA_C132x25 =$109; { 8x16 font }
+ M_VESA_C132x43 =$10a; { 8x14 font }
+ M_VESA_C132x50 =$10b; { 8x8 font }
+ M_VESA_C132x60 =$10c; { 8x8 font }
+ M_VESA_32K_320 =$10d; { 320x200, 5:5:5 }
+ M_VESA_64K_320 =$10e; { 320x200, 5:6:5 }
+ M_VESA_FULL_320 =$10f; { 320x200, 8:8:8 }
+ M_VESA_32K_640 =$110; { 640x480, 5:5:5 }
+ M_VESA_64K_640 =$111; { 640x480, 5:6:5 }
+ M_VESA_FULL_640 =$112; { 640x480, 8:8:8 }
+ M_VESA_32K_800 =$113; { 800x600, 5:5:5 }
+ M_VESA_64K_800 =$114; { 800x600, 5:6:5 }
+ M_VESA_FULL_800 =$115; { 800x600, 8:8:8 }
+ M_VESA_32K_1024 =$116; { 1024x768, 5:5:5 }
+ M_VESA_64K_1024 =$117; { 1024x768, 5:6:5 }
+ M_VESA_FULL_1024 =$118; { 1024x768, 8:8:8 }
+ M_VESA_32K_1280 =$119; { 1280x1024, 5:5:5 }
+ M_VESA_64K_1280 =$11a; { 1280x1024, 5:6:5 }
+ M_VESA_FULL_1280 =$11b; { 1280x1024, 8:8:8 }
+ M_VESA_MODE_MAX =$1ff;
+
+type
+ video_display_start = record
+ x :longint;
+ y : longint;
+ end;
+
+ video_display_start_t= video_display_start;
+
+ video_color_palette = record
+ index : longint; { first element (zero-based) }
+ count : longint; { number of elements }
+ red : ^uchar; { red }
+ green : ^uchar; { green }
+ blue : ^uchar; { blue }
+ transparent : ^uchar; { may be NULL }
+ end;
+
+ video_color_palette_t = video_color_palette;
+
+{ adapter info. }
+Function FBIO_ADAPTER(fd:longint;var param1 : longint):boolean;
+Function FBIO_ADPTYPE(fd:longint;var param1 : longint):boolean;
+Function FBIO_ADPINFO(fd:longint;var param1 : video_adapter_info):boolean;
+
+{ video mode control }
+Function FBIO_MODEINFO(fd:longint;var param1 : video_info):boolean;
+Function FBIO_FINDMODE(fd:longint;var param1 : video_info):boolean;
+Function FBIO_GETMODE(fd:longint;var param1 : longint):boolean;
+Function FBIO_SETMODE(fd:longint;var param1 : longint):boolean;
+
+{ get/set frame buffer window origin }
+Function FBIO_GETWINORG(fd:longint;var param1 : u_int):boolean;
+Function FBIO_SETWINORG(fd:longint;var param1 : u_int):boolean;
+
+{ get/set display start address }
+Function FBIO_GETDISPSTART(fd:longint;var param1 : video_display_start_t):boolean;
+Function FBIO_SETDISPSTART(fd:longint;var param1 : video_display_start_t):boolean;
+
+{ get/set scan line width }
+Function FBIO_GETLINEWIDTH(fd:longint;var param1 : u_int):boolean;
+Function FBIO_SETLINEWIDTH(fd:longint;var param1 : u_int):boolean;
+
+{ color palette control }
+Function FBIO_GETPALETTE(fd:longint;var param1 : video_color_palette_t):boolean;
+Function FBIO_SETPALETTE(fd:longint;var param1 : video_color_palette_t):boolean;
+
+{----------------------------- sys/consio.h ----------------------------------}
+
+{ version packaged with FreeBSD 4.2-RELEASE
+Translation to FreePascal by Marco van de Voort. (2000-2001), original
+copyright follows:
+
+ * Copyright (c) 1991-1996 Søren Schmidt
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer
+ * in this position and unchanged.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD: src/sys/sys/consio.h,v 1.5.2.1 2000/05/05 09:16:15 nyan Exp $
+
+}
+
+{$define definconsole}
+
+{
+ * Console FpIoctl commands. Some commands are named as KDXXXX, GIO_XXX, and
+ * PIO_XXX, rather than CONS_XXX, for historical and compatibility reasons.
+ * Some other CONS_XXX commands are works as wrapper around frame buffer
+ * FpIoctl commands FBIO_XXX. Do not try to change all these commands,
+ * otherwise we shall have compatibility problems.
+ }
+
+const
+
+{ get/set video mode }
+ KD_TEXT =0; { set text mode restore fonts }
+ KD_TEXT0 =0; { ditto }
+ KD_GRAPHICS =1; { set graphics mode }
+ KD_TEXT1 =2; { set text mode !restore fonts }
+ KD_PIXEL =3; { set pixel mode }
+
+Function KDGETMODE(fd:longint;var param1 : longint):boolean;
+Function KDSETMODE(fd:longint;param1 : longint):boolean;
+
+{ set border color }
+Function KDSBORDER(fd:longint;param1 : longint):boolean;
+
+{ set up raster(pixel) text mode }
+type
+ scr_size = record
+ _scrsize : array[0..2] of longint;
+ end;
+ scr_size_t = scr_size;
+
+Function KDRASTER(fd:longint;var param1 : scr_size_t):boolean;
+
+type
+
+{ get/set screen char map }
+
+ scrmap = record
+ _scrmap : array[0..255] of char;
+ end;
+ scrmap_t = scrmap;
+
+Function GIO_SCRNMAP(fd:longint;var param1 : scrmap_t):boolean;
+Function PIO_SCRNMAP(fd:longint;var param1 : scrmap_t):boolean;
+
+{ get the current text attribute }
+Function GIO_ATTR(fd:longint;var param1 : longint):boolean;
+
+{ get the current text color }
+Function GIO_COLOR(fd:longint;var param1 : longint):boolean;
+
+{ get the adapter type (equivalent to FBIO_ADPTYPE) }
+Function CONS_CURRENT(fd:longint;var param1 : longint):boolean;
+
+{ get the current video mode (equivalent to FBIO_GETMODE) }
+Function CONS_GET(fd:longint;var param1 : longint):boolean;
+
+{ not supported? }
+Function CONS_IO(fd:longint):boolean;
+
+{ set blank time interval }
+Function CONS_BLANKTIME(fd:longint;var param1 : longint):boolean;
+
+{ set/get the screen saver (these FpIoctls are current noop) }
+CONST maxsaver=16;
+
+type ssaver =record
+ name : array[0..maxsaver-1] of char;
+ num : Longint;
+ time : Long;
+ end;
+ ssaver_t = ssaver;
+
+Function CONS_SSAVER(fd:longint;var param1 : ssaver_t):boolean;
+Function CONS_GSAVER(fd:longint;var param1 : ssaver_t):boolean;
+
+{ set the text cursor shape }
+
+CONST
+ CONS_BLINK_CURSOR = (1 shl 0);
+ CONS_CHAR_CURSOR = (1 shl 1);
+
+Function CONS_CURSORTYPE(fd:longint;var param1 : longint):boolean;
+
+{ set the bell type to audible or visual }
+CONST
+ CONS_VISUAL_BELL =(1 shl 0);
+ CONS_QUIET_BELL =(1 shl 1);
+
+Function CONS_BELLTYPE(fd:longint;var param1 : longint):boolean;
+
+{ set the history (scroll back) buffer size (in lines) }
+Function CONS_HISTORY(fd:longint;var param1 : longint):boolean;
+
+{ mouse cursor FpIoctl }
+type
+ mouse_data = record
+ x : longint;
+ y : Longint;
+ z : longint;
+ buttons : longint;
+ end;
+
+ mouse_data_t = mouse_data;
+
+ mouse_mode = record
+ mode : longint;
+ signal : longint;
+ end;
+
+ mouse_mode_t = mouse_mode;
+
+ mouse_event = record
+ id : Longint; { one based }
+ value : longint;
+ end;
+
+ mouse_event_t = mouse_event;
+
+CONST
+ MOUSE_SHOW =$01;
+ MOUSE_HIDE =$02;
+ MOUSE_MOVEABS =$03;
+ MOUSE_MOVEREL =$04;
+ MOUSE_GETINFO =$05;
+ _MOUSE_MODE =$06;
+ MOUSE_ACTION =$07;
+ MOUSE_MOTION_EVENT =$08;
+ MOUSE_BUTTON_EVENT =$09;
+ MOUSE_MOUSECHAR =$0a;
+
+TYPE
+ mouse_info = record
+ operation : longint;
+ u : record
+ case integer of
+ 0: (data : mouse_data_t);
+ 1: (mode : mouse_mode_t);
+ 2: (event: mouse_event_t);
+ 3: (mouse_char : longint);
+ end;
+ end;
+ mouse_info_t = mouse_info;
+
+Function CONS_MOUSECTL(fd:longint;var param1 : mouse_info_t):boolean;
+
+{ see if the vty has been idle }
+Function CONS_IDLE(fd:longint;var param1 : longint):boolean;
+
+{ set the screen saver mode }
+CONST
+ CONS_LKM_SAVER = 0;
+ CONS_USR_SAVER = 1;
+
+Function CONS_SAVERMODE(fd:longint;var param1 : longint):boolean;
+
+{ start the screen saver }
+Function CONS_SAVERSTART(fd:longint;var param1 : longint):boolean;
+
+TYPE
+{ set/get font data }
+ fnt8 = record
+ fnt8x8 : array[0..8*256-1] of char;
+ end;
+
+ fnt8_t = fnt8;
+
+ fnt14 = record
+ fnt8x14: array[0..14*256-1] of char;
+ end;
+
+ fnt14_t = fnt14;
+
+ fnt16 = record
+ fnt8x16: array[0..16*256-1] of char;
+ end;
+ fnt16_t = fnt16;
+
+Function PIO_FONT8x8(fd:longint;var param1 : fnt8_t):boolean;
+Function GIO_FONT8x8(fd:longint;var param1 : fnt8_t):boolean;
+Function PIO_FONT8x14(fd:longint;var param1 : fnt14_t):boolean;
+Function GIO_FONT8x14(fd:longint;var param1 : fnt14_t):boolean;
+Function PIO_FONT8x16(fd:longint;var param1 : fnt16_t):boolean;
+Function GIO_FONT8x16(fd:longint;var param1 : fnt16_t):boolean;
+
+
+{ get video mode information }
+type colors = record
+ fore : char;
+ back : char;
+ end;
+
+ vid_info = record
+ _size : short;
+ m_num : short;
+ mv_row,
+ mv_col : ushort;
+ mv_rsz,
+ mv_csz : ushort;
+ mv_norm,
+ mv_rev,
+ mv_grfc : colors;
+ mv_ovscan : uchar;
+ mk_keylock : uchar;
+ end;
+ vid_info_t = vid_info;
+
+Function CONS_GETINFO(fd:longint;var param1 : vid_info_t):boolean;
+
+{ get version }
+
+Function CONS_GETVERS(fd:longint;var param1 : longint):boolean;
+
+{ get the video adapter index (equivalent to FBIO_ADAPTER) }
+Function CONS_CURRENTADP(fd:longint;var param1 : longint):boolean;
+
+{ get the video adapter information (equivalent to FBIO_ADPINFO) }
+Function CONS_ADPINFO(fd:longint;var param1 : video_adapter_info_t):boolean;
+
+{ get the video mode information (equivalent to FBIO_MODEINFO) }
+Function CONS_MODEINFO(fd:longint;var param1 : video_info_t):boolean;
+
+{ find a video mode (equivalent to FBIO_FINDMODE) }
+Function CONS_FINDMODE(fd:longint;var param1 : video_info_t):boolean;
+
+{ set the frame buffer window origin (equivalent to FBIO_SETWINORG) }
+Function CONS_SETWINORG(fd:longint;param1 : longint):boolean;
+
+{ use the specified keyboard }
+Function CONS_SETKBD(fd:longint;param1 : longint):boolean;
+
+{ release the current keyboard }
+Function CONS_RELKBD(fd:longint):boolean;
+
+{ get/set the current terminal emulator info. }
+CONST
+ TI_NAME_LEN = 32;
+ TI_DESC_LEN = 64;
+
+TYPE
+ term_info = record
+ ti_index : Longint;
+ ti_flags : longint;
+ ti_name : array[0..TI_NAME_LEN-1] of uchar;
+ ti_desc : array[0..TI_DESC_LEN-1] of uchar;
+ end;
+ term_info_t = term_info;
+
+Function CONS_GETTERM(fd:longint;var param1 : term_info_t):boolean;
+Function CONS_SETTERM(fd:longint;var param1 : term_info_t):boolean;
+
+{$ifdef PC98}
+Function ADJUST_CLOCK(fd:longint):boolean;
+{$endif}
+
+{
+* Vty switching FpIoctl commands.
+}
+
+{ get the next available vty }
+Function VT_OPENQRY(fd:longint;var param1 : longint):boolean;
+
+{ set/get vty switching mode }
+const
+ VT_AUTO =0; { switching is automatic }
+ VT_PROCESS =1; { switching controlled by prog }
+ VT_KERNEL =255; { switching controlled in kernel }
+
+TYPE
+ vt_mode = record
+ mode : Char;
+ waitv : char; { not implemented yet SOS }
+ relsig : short;
+ acqsig : short;
+ frsig : short; { not implemented yet SOS }
+ end;
+
+ vtmode_t = vt_mode;
+
+
+Function VT_SETMODE(fd:longint;var param1 : vtmode_t):boolean;
+Function VT_GETMODE(fd:longint;var param1 : vtmode_t):boolean;
+
+
+{ acknowledge release or acquisition of a vty }
+const
+ VT_FALSE = 0;
+ VT_TRUE = 1;
+ VT_ACKACQ = 2;
+
+Function VT_RELDISP(fd:longint;param1 : longint):boolean;
+
+{ activate the specified vty }
+Function VT_ACTIVATE(fd:longint;param1 : longint):boolean;
+
+{ wait until the specified vty is activate }
+Function VT_WAITACTIVE(fd:longint;param1 : longint):boolean;
+
+{ get the currently active vty }
+Function VT_GETACTIVE(fd:longint;var param1 : longint):boolean;
+
+{ get the index of the vty }
+Function VT_GETINDEX(fd:longint;var param1 : longint):boolean;
+
+{
+* Video mode switching FpIoctl. See sys/fbio.h for mode numbers.
+}
+
+Function SW_B40x25(fd:longint):boolean;
+Function SW_C40x25(fd:longint):boolean;
+Function SW_B80x25(fd:longint):boolean;
+Function SW_C80x25(fd:longint):boolean;
+Function SW_BG320(fd:longint):boolean;
+Function SW_CG320(fd:longint):boolean;
+Function SW_BG640(fd:longint):boolean;
+Function SW_EGAMONO80x25(fd:longint):boolean;
+Function SW_CG320_D(fd:longint):boolean;
+Function SW_CG640_E(fd:longint):boolean;
+Function SW_EGAMONOAPA(fd:longint):boolean;
+Function SW_CG640x350(fd:longint):boolean;
+Function SW_ENH_MONOAPA2(fd:longint):boolean;
+Function SW_ENH_CG640(fd:longint):boolean;
+Function SW_ENH_B40x25(fd:longint):boolean;
+Function SW_ENH_C40x25(fd:longint):boolean;
+Function SW_ENH_B80x25(fd:longint):boolean;
+Function SW_ENH_C80x25(fd:longint):boolean;
+Function SW_ENH_B80x43(fd:longint):boolean;
+Function SW_ENH_C80x43(fd:longint):boolean;
+Function SW_MCAMODE(fd:longint):boolean;
+Function SW_VGA_C40x25(fd:longint):boolean;
+Function SW_VGA_C80x25(fd:longint):boolean;
+Function SW_VGA_C80x30(fd:longint):boolean;
+Function SW_VGA_C80x50(fd:longint):boolean;
+Function SW_VGA_C80x60(fd:longint):boolean;
+Function SW_VGA_M80x25(fd:longint):boolean;
+Function SW_VGA_M80x30(fd:longint):boolean;
+Function SW_VGA_M80x50(fd:longint):boolean;
+Function SW_VGA_M80x60(fd:longint):boolean;
+Function SW_VGA11(fd:longint):boolean;
+Function SW_BG640x480(fd:longint):boolean;
+Function SW_VGA12(fd:longint):boolean;
+Function SW_CG640x480(fd:longint):boolean;
+Function SW_VGA13(fd:longint):boolean;
+Function SW_VGA_CG320(fd:longint):boolean;
+Function SW_VGA_CG640(fd:longint):boolean;
+Function SW_VGA_MODEX(fd:longint):boolean;
+Function SW_PC98_80x25(fd:longint):boolean;
+Function SW_PC98_80x30(fd:longint):boolean;
+Function SW_PC98_EGC640x400(fd:longint):boolean;
+Function SW_PC98_PEGC640x400(fd:longint):boolean;
+Function SW_PC98_PEGC640x480(fd:longint):boolean;
+Function SW_VGA_C90x25(fd:longint):boolean;
+Function SW_VGA_M90x25(fd:longint):boolean;
+Function SW_VGA_C90x30(fd:longint):boolean;
+Function SW_VGA_M90x30(fd:longint):boolean;
+Function SW_VGA_C90x43(fd:longint):boolean;
+Function SW_VGA_M90x43(fd:longint):boolean;
+Function SW_VGA_C90x50(fd:longint):boolean;
+Function SW_VGA_M90x50(fd:longint):boolean;
+Function SW_VGA_C90x60(fd:longint):boolean;
+Function SW_VGA_M90x60(fd:longint):boolean;
+Function SW_TEXT_80x25(fd:longint):boolean;
+Function SW_TEXT_80x30(fd:longint):boolean;
+Function SW_TEXT_80x43(fd:longint):boolean;
+Function SW_TEXT_80x50(fd:longint):boolean;
+Function SW_TEXT_80x60(fd:longint):boolean;
+Function SW_TEXT_132x25(fd:longint):boolean;
+Function SW_TEXT_132x30(fd:longint):boolean;
+Function SW_TEXT_132x43(fd:longint):boolean;
+Function SW_TEXT_132x50(fd:longint):boolean;
+Function SW_TEXT_132x60(fd:longint):boolean;
+Function SW_VESA_CG640x400(fd:longint):boolean;
+Function SW_VESA_CG640x480(fd:longint):boolean;
+Function SW_VESA_800x600(fd:longint):boolean;
+Function SW_VESA_CG800x600(fd:longint):boolean;
+Function SW_VESA_1024x768(fd:longint):boolean;
+Function SW_VESA_CG1024x768(fd:longint):boolean;
+Function SW_VESA_1280x1024(fd:longint):boolean;
+Function SW_VESA_CG1280x1024(fd:longint):boolean;
+Function SW_VESA_C80x60(fd:longint):boolean;
+Function SW_VESA_C132x25(fd:longint):boolean;
+Function SW_VESA_C132x43(fd:longint):boolean;
+Function SW_VESA_C132x50(fd:longint):boolean;
+Function SW_VESA_C132x60(fd:longint):boolean;
+Function SW_VESA_32K_320(fd:longint):boolean;
+Function SW_VESA_64K_320(fd:longint):boolean;
+Function SW_VESA_FULL_320(fd:longint):boolean;
+Function SW_VESA_32K_640(fd:longint):boolean;
+Function SW_VESA_64K_640(fd:longint):boolean;
+Function SW_VESA_FULL_640(fd:longint):boolean;
+Function SW_VESA_32K_800(fd:longint):boolean;
+Function SW_VESA_64K_800(fd:longint):boolean;
+Function SW_VESA_FULL_800(fd:longint):boolean;
+Function SW_VESA_32K_1024(fd:longint):boolean;
+Function SW_VESA_64K_1024(fd:longint):boolean;
+Function SW_VESA_FULL_1024(fd:longint):boolean;
+Function SW_VESA_32K_1280(fd:longint):boolean;
+Function SW_VESA_64K_1280(fd:longint):boolean;
+Function SW_VESA_FULL_1280(fd:longint):boolean;
+
+{----------------------------- sys/kbio.h ----------------------------------}
+
+{ version packaged with FreeBSD 4.2-RELEASE
+Translation to FreePascal by Marco van de Voort. (2000-2001), original
+copyright follows: ( I assume BSD licensed)
+
+Based on
+ * $FreeBSD: src/sys/sys/kbio.h,v 1.5.2.1 2000/10/29 16:59:32 dwmalone Exp $
+}
+
+{ get/set keyboard I/O mode}
+const K_RAW =0; { keyboard returns scancodes}
+ K_XLATE =1; { keyboard returns ascii}
+ K_CODE =2; { keyboard returns keycodes}
+
+{After each FpIoctl value, I've put the type of the parameters to be passed:
+ @int -> pass a pointer to an int.
+ int -> pass pointer(int)
+ - -> nothing
+@keymap_t -> pass a pointer to a keymap_t
+ etc.
+}
+
+Function KDGKBMODE(fd:longint;var param1 : longint):boolean;
+Function KDSKBMODE(fd:longint;param1 : longint):boolean;
+
+
+{ make tone}
+Function KDMKTONE(fd:longint;param1 : longint):boolean;
+
+{ see console.h for the definitions of the following FpIoctls}
+{$ifndef definconsole}
+Function KDGETMODE(fd:longint;var param1 : longint):boolean;
+Function KDSETMODE(fd:longint;param1 : longint):boolean;
+Function KDSBORDER(fd:longint;param1 : longint):boolean;
+
+{$endif}
+const
+{ get/set keyboard lock state}
+ CLKED =1; { Caps locked}
+ NLKED =2; { Num locked}
+ SLKED =4; { Scroll locked}
+ ALKED =8; { AltGr locked}
+ LOCK_MASK =CLKED or NLKED or SLKED or ALKED;
+
+Function KDGKBSTATE(fd:longint;var param1 : longint):boolean;
+Function KDSKBSTATE(fd:longint;param1 : longint):boolean;
+
+{ enable/disable I/O access}
+Function KDENABIO(fd:longint):boolean;
+Function KDDISABIO(fd:longint):boolean;
+
+{ make sound}
+Function KIOCSOUND(fd:longint;param1 : longint):boolean;
+
+Const
+{ get keyboard model}
+ KB_OTHER =0; { keyboard not known}
+ KB_84 =1; { 'old' 84 key AT-keyboard}
+ KB_101 =2; { MF-101 or MF-102 keyboard}
+Function KDGKBTYPE(fd:longint;var param1 : longint):boolean;
+
+const
+{ get/set keyboard LED state}
+ LED_CAP =1; { Caps lock LED}
+ LED_NUM =2; { Num lock LED}
+ LED_SCR =4; { Scroll lock LED}
+ LED_MASK =LED_CAP or LED_NUM or LED_SCR;
+Function KDGETLED(fd:longint;var param1 : longint):boolean;
+Function KDSETLED(fd:longint;param1 : longint):boolean;
+
+{ set keyboard repeat rate (obsolete, use KDSETREPEAT below)}
+Function KDSETRAD(fd:longint;param1 : longint):boolean;
+
+{ see console.h for the definition of the following FpIoctl}
+{$ifndef definconsole}
+Function KDRASTER(fd:longint;var param1 : scr_size_t):boolean;
+
+{$endif}
+
+TYPE
+{ get keyboard information}
+ keyboard_info = Record
+ kb_index : longint; { kbdio index#}
+ kb_name : array[0..15] of char; { driver name}
+ kb_unit : longint; { unit#}
+ kb_type : longint; { KB_84, KB_101, KB_OTHER,...}
+ kb_config: longint; { device configuration flags}
+ kb_flags : longint; { internal flags}
+ end;
+ keyboard_info_t=keyboard_info;
+
+Function KDGKBINFO(fd:longint;var param1 : keyboard_info_t):boolean;
+
+Type
+{ set/get keyboard repeat rate (new interface)}
+ keyboard_repeat = record
+ kb_repeat: array[0..1] of longint;
+ end;
+
+keyboard_repeat_t = keyboard_repeat;
+
+Function KDSETREPEAT(fd:longint;var param1 : keyboard_repeat_t):boolean;
+Function KDGETREPEAT(fd:longint;var param1 : keyboard_repeat_t):boolean;
+
+{ get/set key map/accent map/function key strings}
+
+const
+ NUM_KEYS =256; { number of keys in table}
+ NUM_STATES =8; { states per key}
+ ALTGR_OFFSET =128; { offset for altlock keys}
+
+ NUM_DEADKEYS =15; { number of accent keys}
+ NUM_ACCENTCHARS =52; { max number of accent chars}
+
+ NUM_FKEYS =96; { max number of function keys}
+ MAXFK =16; { max length of a function key str}
+
+type
+ keyent_t = record
+ map : array[0..NUM_STATES-1] of uchar;
+ spcl : uchar;
+ flgs : uchar;
+ end;
+
+const
+ FLAG_LOCK_O =0;
+ FLAG_LOCK_C =1;
+ FLAG_LOCK_N =2;
+
+type keymap = record
+ n_keys : ushort;
+ key : array[0..NUM_KEYS-1] OF keyent_t;
+ end;
+
+ keymap_t= keymap;
+
+CONST
+{ defines for "special" keys (spcl bit set in keymap)}
+ NOP =$00; { nothing (dead key)}
+ LSH =$02; { left shift key}
+ RSH =$03; { right shift key}
+ CLK =$04; { caps lock key}
+ NLK =$05; { num lock key}
+ SLK =$06; { scroll lock key}
+ LALT =$07; { left alt key}
+ BTAB =$08; { backwards tab}
+ LCTR =$09; { left control key}
+ NEXT =$0a; { switch to next screen}
+ F_SCR =$0b; { switch to first screen}
+ L_SCR =$1a; { switch to last screen}
+ F_FN =$1b; { first function key}
+ L_FN =$7a; { last function key}
+{ $7b-$7f reserved do not use !}
+ RCTR =$80; { right control key}
+ RALT =$81; { right alt (altgr) key}
+ ALK =$82; { alt lock key}
+ ASH =$83; { alt shift key}
+ META =$84; { meta key}
+ RBT =$85; { boot machine}
+ DBG =$86; { call debugger}
+ SUSP =$87; { suspend power (APM)}
+ SPSC =$88; { toggle splash/text screen}
+
+ DGRA =$89; { grave}
+ F_ACC =DGRA; { first accent key}
+
+ DACU =$8a; { acute}
+ DCIR =$8b; { circumflex}
+ DTIL =$8c; { tilde}
+ DMAC =$8d; { macron}
+ DBRE =$8e; { breve}
+ DDOT =$8f; { dot}
+ DUML =$90; { umlaut/diaresis}
+ DDIA =$90; { diaresis}
+ DSLA =$91; { slash}
+ DRIN =$92; { ring}
+ DCED =$93; { cedilla}
+ DAPO =$94; { apostrophe}
+ DDAC =$95; { double acute}
+ DOGO =$96; { ogonek}
+ DCAR =$97; { caron}
+ L_ACC =DCAR; { last accent key}
+
+ STBY =$98; { Go into standby mode (apm)}
+ PREV =$99; { switch to previous screen}
+ PNC =$9a; { force system panic}
+ LSHA =$9b; { left shift key / alt lock}
+ RSHA =$9c; { right shift key / alt lock}
+ LCTRA =$9d; { left ctrl key / alt lock}
+ RCTRA =$9e; { right ctrl key / alt lock}
+ LALTA =$9f; { left alt key / alt lock}
+ RALTA =$a0; { right alt key / alt lock}
+ HALT =$a1; { halt machine}
+ PDWN =$a2; { halt machine and power down}
+
+function kbio_F(x:longint):longint;
+function kbio_S(x:longint):longint;
+function kbio_ACC(x:longint):longint;
+
+type acc_t = record
+ accchar : uchar;
+ map : array[0..NUM_ACCENTCHARS-1,0..1] of uchar;
+ end;
+
+ accentmap = record
+ n_accs : ushort;
+ acc : array[0..NUM_DEADKEYS-1] of acc_t
+ end;
+
+ accentmap_t = accentmap ;
+
+ keyarg = record
+ keynum : ushort;
+ key : keyent_t;
+ end;
+
+ keyarg_t = keyarg;
+
+ fkeytab = record
+ str : array [0..MAXFK-1] of uchar;
+ len : uchar;
+ end;
+ fkeytab_t = fkeytab;
+
+ fkeyarg =record
+ keynum : ushort;
+ keydef : array[0..MAXFK-1] of char;
+ flen :char;
+ end;
+
+ fkeyarg_t = fkeyarg;
+
+Function GETFKEY(fd:longint;var param1 : fkeyarg_t):boolean;
+Function SETFKEY(fd:longint;var param1 : fkeyarg_t):boolean;
+
+{$ifndef definconsole}
+Function GIO_SCRNMAP(fd:longint;var param1 : scrmap_t):boolean;
+Function PIO_SCRNMAP(fd:longint;var param1 : scrmap_t):boolean;
+{$endif}
+Function GIO_KEYMAP(fd:longint;var param1 : keymap_t):boolean;
+Function PIO_KEYMAP(fd:longint;var param1 : keymap_t):boolean;
+Function GIO_DEADKEYMAP(fd:longint;var param1 : accentmap_t):boolean;
+Function PIO_DEADKEYMAP(fd:longint;var param1 : accentmap_t):boolean;
+Function GIO_KEYMAPENT(fd:longint;var param1 : keyarg_t):boolean;
+Function PIO_KEYMAPENT(fd:longint;var param1 : keyarg_t):boolean;
+
+{ flags set to the return value in the KD_XLATE mode}
+Const
+ NOKEY =$100; { no key pressed marker}
+ FKEY =$200; { function key marker}
+ MKEY =$400; { meta key marker (prepend ESC)}
+ BKEY =$800; { backtab (ESC [ Z)}
+
+ SPCLKEY =$8000; { special key}
+ RELKEY =$4000; { key released}
+ ERRKEY =$2000; { error}
+
+
+function KEYCHAR(c:longint):longint;
+
+function KEYFLAGS(c:longint):longint;
+
+{----------------------------- machine/mouse.h -------------------------------}
+
+{ Based on machine/mouse.h from FreeBSD release 4.2
+
+ * Copyright (c) 1992, 1993 Erik Forsberg.
+ * Copyright (c) 1996, 1997 Kazutaka YOKOTA
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * THIS SOFTWARE IS PROVIDED BY ``AS IS'' AND ANY EXPRESS OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL I BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $FreeBSD: src/sys/i386/include/mouse.h,v 1.15.2.1 2000/03/21 14:44:10 yokota Exp $
+ }
+
+
+{ FpIoctls }
+
+
+{ mouse status block }
+
+type
+ mousestatus = record
+ flags : longint; { state change flags }
+ button : longint; { button status }
+ obutton : longint; { previous button status }
+ dx : longint; { x movement }
+ dy : longint; { y movement }
+ dz : longint; { z movement }
+ end;
+
+ mousestatus_t = mousestatus;
+
+CONST
+
+{ button }
+ MOUSE_BUTTON1DOWN =$0001; { left }
+ MOUSE_BUTTON2DOWN =$0002; { middle }
+ MOUSE_BUTTON3DOWN =$0004; { right }
+ MOUSE_BUTTON4DOWN =$0008;
+ MOUSE_BUTTON5DOWN =$0010;
+ MOUSE_BUTTON6DOWN =$0020;
+ MOUSE_BUTTON7DOWN =$0040;
+ MOUSE_BUTTON8DOWN =$0080;
+ MOUSE_MAXBUTTON =31;
+ MOUSE_STDBUTTONS =$0007; { buttons 1-3 }
+ MOUSE_EXTBUTTONS =$7ffffff8; { the others (28 of them!) }
+ MOUSE_BUTTONS =(MOUSE_STDBUTTONS or MOUSE_EXTBUTTONS);
+
+{ flags }
+ MOUSE_STDBUTTONSCHANGED =MOUSE_STDBUTTONS;
+ MOUSE_EXTBUTTONSCHANGED =MOUSE_EXTBUTTONS;
+ MOUSE_BUTTONSCHANGED =MOUSE_BUTTONS;
+ MOUSE_POSCHANGED =$80000000;
+
+type
+ mousehw =record
+ buttons : longint; { -1 if unknown }
+ iftype : longint; { MOUSE_IF_XXX }
+ _type : longint; { mouse/track ball/pad... }
+ model : longint; { I/F dependent model ID: MOUSE_MODEL_XXX }
+ hwid : longint; { I/F dependent hardware ID}
+ { for the PS/2 mouse, it will be PSM_XXX_ID }
+ end;
+
+ mousehw_t = mousehw;
+
+const
+
+{ iftype }
+ MOUSE_IF_UNKNOWN =(-1);
+ MOUSE_IF_SERIAL =0;
+ MOUSE_IF_BUS =1;
+ MOUSE_IF_INPORT =2;
+ MOUSE_IF_PS2 =3;
+ MOUSE_IF_SYSMOUSE =4;
+ MOUSE_IF_USB =5;
+
+{ type }
+ MOUSE_UNKNOWN =(-1); { should be treated as a mouse }
+ MOUSE_MOUSE =0;
+ MOUSE_TRACKBALL =1;
+ MOUSE_STICK =2;
+ MOUSE_PAD =3;
+
+{ model }
+ MOUSE_MODEL_UNKNOWN =(-1);
+ MOUSE_MODEL_GENERIC =0;
+ MOUSE_MODEL_GLIDEPOINT =1;
+ MOUSE_MODEL_NETSCROLL =2;
+ MOUSE_MODEL_NET =3;
+ MOUSE_MODEL_INTELLI =4;
+ MOUSE_MODEL_THINK =5;
+ MOUSE_MODEL_EASYSCROLL =6;
+ MOUSE_MODEL_MOUSEMANPLUS =7;
+ MOUSE_MODEL_KIDSPAD =8;
+ MOUSE_MODEL_VERSAPAD =9;
+ MOUSE_MODEL_EXPLORER =10;
+ MOUSE_MODEL_4D =11;
+ MOUSE_MODEL_4DPLUS =12;
+
+type mousemode = record
+ protocol : longint; { MOUSE_PROTO_XXX }
+ rate : longint; { report rate (per sec), -1 if unknown }
+ resolution : longint; { MOUSE_RES_XXX, -1 if unknown }
+ accelfactor : longint; { accelation factor (must be 1 or greater) }
+ level : longint; { driver operation level }
+ packetsize : longint; { the length of the data packet }
+ syncmask : array[0..1] of uchar; { sync. data bits in the header byte }
+ end;
+
+type mousemode_t = mousemode;
+
+{ protocol }
+{
+ * Serial protocols:
+ * Microsoft, MouseSystems, Logitech, MM series, MouseMan, Hitachi Tablet,
+ * GlidePoint, IntelliMouse, Thinking Mouse, MouseRemote, Kidspad,
+ * VersaPad
+ * Bus mouse protocols:
+ * bus, InPort
+ * PS/2 mouse protocol:
+ * PS/2
+ }
+ const
+
+ MOUSE_PROTO_UNKNOWN =(-1);
+ MOUSE_PROTO_MS =0; { Microsoft Serial, 3 bytes }
+ MOUSE_PROTO_MSC =1; { Mouse Systems, 5 bytes }
+ MOUSE_PROTO_LOGI =2; { Logitech, 3 bytes }
+ MOUSE_PROTO_MM =3; { MM series, 3 bytes }
+ MOUSE_PROTO_LOGIMOUSEMAN =4; { Logitech MouseMan 3/4 bytes }
+ MOUSE_PROTO_BUS =5; { MS/Logitech bus mouse }
+ MOUSE_PROTO_INPORT =6; { MS/ATI InPort mouse }
+ MOUSE_PROTO_PS2 =7; { PS/2 mouse, 3 bytes }
+ MOUSE_PROTO_HITTAB =8; { Hitachi Tablet 3 bytes }
+ MOUSE_PROTO_GLIDEPOINT =9; { ALPS GlidePoint, 3/4 bytes }
+ MOUSE_PROTO_INTELLI =10; { MS IntelliMouse, 4 bytes }
+ MOUSE_PROTO_THINK =11; { Kensignton Thinking Mouse, 3/4 bytes }
+ MOUSE_PROTO_SYSMOUSE =12; { /dev/sysmouse }
+ MOUSE_PROTO_X10MOUSEREM =13; { X10 MouseRemote, 3 bytes }
+ MOUSE_PROTO_KIDSPAD =14; { Genius Kidspad }
+ MOUSE_PROTO_VERSAPAD =15; { Interlink VersaPad, 6 bytes }
+
+ MOUSE_RES_UNKNOWN =(-1);
+ MOUSE_RES_DEFAULT =0;
+ MOUSE_RES_LOW =(-2);
+ MOUSE_RES_MEDIUMLOW =(-3);
+ MOUSE_RES_MEDIUMHIGH =(-4);
+ MOUSE_RES_HIGH =(-5);
+
+type mousedata = record
+ len : longint; { # of data in the buffer }
+ buf : array [0..15] of longint; { data buffer }
+ end;
+
+ mousedata_t=mousedata;
+
+ mousevar = record
+ _var : array[0..15] of longint;
+ end;
+
+type mousevar_t = mousevar;
+
+Function MOUSE_GETSTATUS(fd:longint;var param1 : mousestatus_t):boolean;
+Function MOUSE_GETHWINFO(fd:longint;var param1 : mousehw_t):boolean;
+Function MOUSE_GETMODE(fd:longint;var param1 : mousemode_t):boolean;
+Function MOUSE_SETMODE(fd:longint;var param1 : mousemode_t):boolean;
+Function MOUSE_GETLEVEL(fd:longint;var param1 : longint):boolean;
+Function MOUSE_SETLEVEL(fd:longint;var param1 : longint):boolean;
+Function MOUSE_GETVARS(fd:longint;var param1 : mousevar_t):boolean;
+Function MOUSE_SETVARS(fd:longint;var param1 : mousevar_t):boolean;
+Function MOUSE_READSTATE(fd:longint;var param1 : mousedata_t):boolean;
+Function MOUSE_READDATA(fd:longint;var param1 : mousedata_t):boolean;
+
+Function MOUSE_SETRESOLUTION(fd:longint;var param1 : longint):boolean;
+Function MOUSE_SETSCALING(fd:longint;var param1 : longint):boolean;
+Function MOUSE_SETRATE(fd:longint;var param1 : longint):boolean;
+Function MOUSE_GETHWID(fd:longint;var param1 : longint):boolean;
+
+
+
+const
+
+{ magic numbers in var[0] }
+ MOUSE_VARS_PS2_SIG = $00325350; { 'PS2' }
+ MOUSE_VARS_BUS_SIG = $00535542; { 'BUS' }
+ MOUSE_VARS_INPORT_SIG = $00504e49; { 'INP' }
+
+{ Microsoft Serial mouse data packet }
+ MOUSE_MSS_PACKETSIZE = 3;
+ MOUSE_MSS_SYNCMASK = $40;
+ MOUSE_MSS_SYNC = $40;
+ MOUSE_MSS_BUTTONS = $30;
+ MOUSE_MSS_BUTTON1DOWN = $20; { left }
+ MOUSE_MSS_BUTTON2DOWN = $00; { no middle button }
+ MOUSE_MSS_BUTTON3DOWN = $10; { right }
+
+{ Logitech MouseMan data packet (M+ protocol) }
+ MOUSE_LMAN_BUTTON2DOWN = $20; { middle button, the 4th byte }
+
+{ ALPS GlidePoint extension (variant of M+ protocol) }
+ MOUSE_ALPS_BUTTON2DOWN = $20; { middle button, the 4th byte }
+ MOUSE_ALPS_TAP = $10; { `tapping' action, the 4th byte }
+
+{ Kinsington Thinking Mouse extension (variant of M+ protocol) }
+ MOUSE_THINK_BUTTON2DOWN = $20; { lower-left button, the 4th byte }
+ MOUSE_THINK_BUTTON4DOWN = $10; { lower-right button, the 4th byte }
+
+{ MS IntelliMouse (variant of MS Serial) }
+ MOUSE_INTELLI_PACKETSIZE = 4;
+ MOUSE_INTELLI_BUTTON2DOWN = $10; { middle button in the 4th byte }
+
+{ Mouse Systems Corp. mouse data packet }
+ MOUSE_MSC_PACKETSIZE = 5;
+ MOUSE_MSC_SYNCMASK = $f8;
+ MOUSE_MSC_SYNC = $80;
+ MOUSE_MSC_BUTTONS = $07;
+ MOUSE_MSC_BUTTON1UP = $04; { left }
+ MOUSE_MSC_BUTTON2UP = $02; { middle }
+ MOUSE_MSC_BUTTON3UP = $01; { right }
+ MOUSE_MSC_MAXBUTTON = 3;
+
+{ MM series mouse data packet }
+ MOUSE_MM_PACKETSIZE = 3;
+ MOUSE_MM_SYNCMASK = $e0;
+ MOUSE_MM_SYNC = $80;
+ MOUSE_MM_BUTTONS = $07;
+ MOUSE_MM_BUTTON1DOWN = $04; { left }
+ MOUSE_MM_BUTTON2DOWN = $02; { middle }
+ MOUSE_MM_BUTTON3DOWN = $01; { right }
+ MOUSE_MM_XPOSITIVE = $10;
+ MOUSE_MM_YPOSITIVE = $08;
+
+{ PS/2 mouse data packet }
+ MOUSE_PS2_PACKETSIZE = 3;
+ MOUSE_PS2_SYNCMASK = $c8;
+ MOUSE_PS2_SYNC = $08;
+ MOUSE_PS2_BUTTONS = $07; { = $03 for 2 button mouse }
+ MOUSE_PS2_BUTTON1DOWN = $01; { left }
+ MOUSE_PS2_BUTTON2DOWN = $04; { middle }
+ MOUSE_PS2_BUTTON3DOWN = $02; { right }
+ MOUSE_PS2_TAP = MOUSE_PS2_SYNC; { GlidePoint (PS/2) `tapping'
+ * Yes! this is the same bit
+ * as SYNC!
+ }
+
+ MOUSE_PS2_XNEG = $10;
+ MOUSE_PS2_YNEG = $20;
+ MOUSE_PS2_XOVERFLOW = $40;
+ MOUSE_PS2_YOVERFLOW = $80;
+
+{ Logitech MouseMan+ (PS/2) data packet (PS/2++ protocol) }
+ MOUSE_PS2PLUS_SYNCMASK = $48;
+ MOUSE_PS2PLUS_SYNC = $48;
+ MOUSE_PS2PLUS_ZNEG = $08; { sign bit }
+ MOUSE_PS2PLUS_BUTTON4DOWN = $10; { 4th button on MouseMan+ }
+ MOUSE_PS2PLUS_BUTTON5DOWN = $20;
+
+{ IBM ScrollPoint (PS/2) also uses PS/2++ protocol }
+ MOUSE_SPOINT_ZNEG = $80; { sign bits }
+ MOUSE_SPOINT_WNEG = $08;
+
+{ MS IntelliMouse (PS/2) data packet }
+ MOUSE_PS2INTELLI_PACKETSIZE = 4;
+{ some compatible mice have additional buttons }
+ MOUSE_PS2INTELLI_BUTTON4DOWN = $40;
+ MOUSE_PS2INTELLI_BUTTON5DOWN = $80;
+
+{ MS IntelliMouse Explorer (PS/2) data packet (variation of IntelliMouse) }
+ MOUSE_EXPLORER_ZNEG = $08; { sign bit }
+{ IntelliMouse Explorer has additional button data in the fourth byte }
+ MOUSE_EXPLORER_BUTTON4DOWN = $10;
+ MOUSE_EXPLORER_BUTTON5DOWN = $20;
+
+{ Interlink VersaPad (serial I/F) data packet }
+ MOUSE_VERSA_PACKETSIZE = 6;
+ MOUSE_VERSA_IN_USE = $04;
+ MOUSE_VERSA_SYNCMASK = $c3;
+ MOUSE_VERSA_SYNC = $c0;
+ MOUSE_VERSA_BUTTONS = $30;
+ MOUSE_VERSA_BUTTON1DOWN = $20; { left }
+ MOUSE_VERSA_BUTTON2DOWN = $00; { middle }
+ MOUSE_VERSA_BUTTON3DOWN = $10; { right }
+ MOUSE_VERSA_TAP = $08;
+
+{ Interlink VersaPad (PS/2 I/F) data packet }
+ MOUSE_PS2VERSA_PACKETSIZE = 6;
+ MOUSE_PS2VERSA_IN_USE = $10;
+ MOUSE_PS2VERSA_SYNCMASK = $e8;
+ MOUSE_PS2VERSA_SYNC = $c8;
+ MOUSE_PS2VERSA_BUTTONS = $05;
+ MOUSE_PS2VERSA_BUTTON1DOWN = $04; { left }
+ MOUSE_PS2VERSA_BUTTON2DOWN = $00; { middle }
+ MOUSE_PS2VERSA_BUTTON3DOWN = $01; { right }
+ MOUSE_PS2VERSA_TAP = $02;
+
+{ A4 Tech 4D Mouse (PS/2) data packet }
+ MOUSE_4D_PACKETSIZE = 3;
+ MOUSE_4D_WHEELBITS = $f0;
+
+{ A4 Tech 4D+ Mouse (PS/2) data packet }
+ MOUSE_4DPLUS_PACKETSIZE = 3;
+ MOUSE_4DPLUS_ZNEG = $04; { sign bit }
+ MOUSE_4DPLUS_BUTTON4DOWN = $08;
+
+{ sysmouse extended data packet }
+{
+ * /dev/sysmouse sends data in two formats, depending on the protocol
+ * level. At the level 0, format is exactly the same as MousSystems'
+ * five byte packet. At the level 1, the first five bytes are the same
+ * as at the level 0. There are additional three bytes which shows
+ * `dz' and the states of additional buttons. `dz' is expressed as the
+ * sum of the byte 5 and 6 which contain signed seven bit values.
+ * The states of the button 4 though 10 are in the bit 0 though 6 in
+ * the byte 7 respectively: 1 indicates the button is up.
+ }
+ MOUSE_SYS_PACKETSIZE = 8;
+ MOUSE_SYS_SYNCMASK = $f8;
+ MOUSE_SYS_SYNC = $80;
+ MOUSE_SYS_BUTTON1UP = $04; { left, 1st byte }
+ MOUSE_SYS_BUTTON2UP = $02; { middle, 1st byte }
+ MOUSE_SYS_BUTTON3UP = $01; { right, 1st byte }
+ MOUSE_SYS_BUTTON4UP = $0001; { 7th byte }
+ MOUSE_SYS_BUTTON5UP = $0002;
+ MOUSE_SYS_BUTTON6UP = $0004;
+ MOUSE_SYS_BUTTON7UP = $0008;
+ MOUSE_SYS_BUTTON8UP = $0010;
+ MOUSE_SYS_BUTTON9UP = $0020;
+ MOUSE_SYS_BUTTON10UP = $0040;
+ MOUSE_SYS_MAXBUTTON = 10;
+ MOUSE_SYS_STDBUTTONS = $07;
+ MOUSE_SYS_EXTBUTTONS = $7f; { the others }
+
+{ Mouse remote socket }
+ _PATH_MOUSEREMOTE ='/var/run/MouseRemote';
+
+
+{fbio FpIoctl numbers}
+ nr_FBIOGTYPE =$40184600;
+ nr_FBIOGINFO =$40184602;
+ nr_FBIOPUTCMAP =$80144603;
+ nr_FBIOGETCMAP =$80144604;
+ nr_FBIOGATTR =$40584606;
+ nr_FBIOSVIDEO =$80044607;
+ nr_FBIOGVIDEO =$40044608;
+ nr_FBIOSCURSOR =$802c4618;
+ nr_FBIOGCURSOR =$c02c4619;
+ nr_FBIOSCURPOS =$8004461a;
+ nr_FBIOGCURPOS =$8004461b;
+ nr_FBIOGCURMAX =$4004461c;
+ nr_FBIO_ADAPTER =$40044664;
+ nr_FBIO_ADPTYPE =$40044665;
+ nr_FBIO_ADPINFO =$40a44666;
+ nr_FBIO_MODEINFO =$c09c4667;
+ nr_FBIO_FINDMODE =$c09c4668;
+ nr_FBIO_GETMODE =$40044669;
+ nr_FBIO_SETMODE =$8004466a;
+ nr_FBIO_GETWINORG =$4004466b;
+ nr_FBIO_SETWINORG =$8004466c;
+ nr_FBIO_GETDISPSTART =$4008466d;
+ nr_FBIO_SETDISPSTART =$8008466e;
+ nr_FBIO_GETLINEWIDTH =$4004466f;
+ nr_FBIO_SETLINEWIDTH =$80044670;
+ nr_FBIO_GETPALETTE =$80184671;
+ nr_FBIO_SETPALETTE =$80184672;
+
+{consio FpIoctl numbers}
+
+ nr_KDGETMODE =$40044b09;
+ nr_KDSETMODE =$20004b0a;
+ nr_KDSBORDER =$20004b0d;
+ nr_KDRASTER =$800c4b64;
+ nr_GIO_SCRNMAP =$41006b02;
+ nr_PIO_SCRNMAP =$81006b03;
+ nr_GIO_ATTR =$40046100;
+ nr_GIO_COLOR =$40046300;
+ nr_CONS_CURRENT =$40046301;
+ nr_CONS_GET =$40046302;
+ nr_CONS_IO =$20006303;
+ nr_CONS_BLANKTIME =$80046304;
+ nr_CONS_SSAVER =$80186305;
+ nr_CONS_GSAVER =$c0186306;
+ nr_CONS_CURSORTYPE =$80046307;
+ nr_CONS_BELLTYPE =$80046308;
+ nr_CONS_HISTORY =$80046309;
+ nr_CONS_MOUSECTL =$c014630a;
+ nr_CONS_IDLE =$4004630b;
+ nr_CONS_SAVERMODE =$8004630c;
+ nr_CONS_SAVERSTART =$8004630d;
+ nr_PIO_FONT8x8 =$88006340;
+ nr_GIO_FONT8x8 =$48006341;
+ nr_PIO_FONT8x14 =$8e006342;
+ nr_GIO_FONT8x14 =$4e006343;
+ nr_PIO_FONT8x16 =$90006344;
+ nr_GIO_FONT8x16 =$50006345;
+ nr_CONS_GETINFO =$c0146349;
+ nr_CONS_GETVERS =$4004634a;
+ nr_CONS_CURRENTADP =$40046364;
+ nr_CONS_ADPINFO =$c0a46365;
+ nr_CONS_MODEINFO =$c09c6366;
+ nr_CONS_FINDMODE =$c09c6367;
+ nr_CONS_SETWINORG =$20006368;
+ nr_CONS_SETKBD =$2000636e;
+ nr_CONS_RELKBD =$2000636f;
+ nr_CONS_GETTERM =$c0686370;
+ nr_CONS_SETTERM =$80686371;
+ nr_ADJUST_CLOCK =$20007464;
+ nr_VT_OPENQRY =$40047601;
+ nr_VT_SETMODE =$80087602;
+ nr_VT_GETMODE =$40087603;
+ nr_VT_RELDISP =$20007604;
+ nr_VT_ACTIVATE =$20007605;
+ nr_VT_WAITACTIVE =$20007606;
+ nr_VT_GETACTIVE =$40047607;
+ nr_VT_GETINDEX =$40047608;
+ nr_SW_B40x25 =$20005300;
+ nr_SW_C40x25 =$20005301;
+ nr_SW_B80x25 =$20005302;
+ nr_SW_C80x25 =$20005303;
+ nr_SW_BG320 =$20005304;
+ nr_SW_CG320 =$20005305;
+ nr_SW_BG640 =$20005306;
+ nr_SW_EGAMONO80x25 =$20005307;
+ nr_SW_CG320_D =$2000530d;
+ nr_SW_CG640_E =$2000530e;
+ nr_SW_EGAMONOAPA =$2000530f;
+ nr_SW_CG640x350 =$20005310;
+ nr_SW_ENH_MONOAPA2 =$20005311;
+ nr_SW_ENH_CG640 =$20005312;
+ nr_SW_ENH_B40x25 =$20005313;
+ nr_SW_ENH_C40x25 =$20005314;
+ nr_SW_ENH_B80x25 =$20005315;
+ nr_SW_ENH_C80x25 =$20005316;
+ nr_SW_ENH_B80x43 =$20005370;
+ nr_SW_ENH_C80x43 =$20005371;
+ nr_SW_MCAMODE =$200053ff;
+ nr_SW_VGA_C40x25 =$20005317;
+ nr_SW_VGA_C80x25 =$20005318;
+ nr_SW_VGA_C80x30 =$20005320;
+ nr_SW_VGA_C80x50 =$2000531e;
+ nr_SW_VGA_C80x60 =$20005322;
+ nr_SW_VGA_M80x25 =$20005319;
+ nr_SW_VGA_M80x30 =$20005321;
+ nr_SW_VGA_M80x50 =$2000531f;
+ nr_SW_VGA_M80x60 =$20005323;
+ nr_SW_VGA11 =$2000531a;
+ nr_SW_BG640x480 =$2000531a;
+ nr_SW_VGA12 =$2000531b;
+ nr_SW_CG640x480 =$2000531b;
+ nr_SW_VGA13 =$2000531c;
+ nr_SW_VGA_CG320 =$2000531c;
+ nr_SW_VGA_CG640 =$20005324;
+ nr_SW_VGA_MODEX =$20005325;
+ nr_SW_PC98_80x25 =$20005362;
+ nr_SW_PC98_80x30 =$20005363;
+ nr_SW_PC98_EGC640x400 =$20005364;
+ nr_SW_PC98_PEGC640x400 =$20005365;
+ nr_SW_PC98_PEGC640x480 =$20005366;
+ nr_SW_VGA_C90x25 =$20005328;
+ nr_SW_VGA_M90x25 =$20005329;
+ nr_SW_VGA_C90x30 =$2000532a;
+ nr_SW_VGA_M90x30 =$2000532b;
+ nr_SW_VGA_C90x43 =$2000532c;
+ nr_SW_VGA_M90x43 =$2000532d;
+ nr_SW_VGA_C90x50 =$2000532e;
+ nr_SW_VGA_M90x50 =$2000532f;
+ nr_SW_VGA_C90x60 =$20005330;
+ nr_SW_VGA_M90x60 =$20005331;
+ nr_SW_TEXT_80x25 =$200053c8;
+ nr_SW_TEXT_80x30 =$200053c9;
+ nr_SW_TEXT_80x43 =$200053ca;
+ nr_SW_TEXT_80x50 =$200053cb;
+ nr_SW_TEXT_80x60 =$200053cc;
+ nr_SW_TEXT_132x25 =$200053cd;
+ nr_SW_TEXT_132x30 =$200053ce;
+ nr_SW_TEXT_132x43 =$200053cf;
+ nr_SW_TEXT_132x50 =$200053d0;
+ nr_SW_TEXT_132x60 =$200053d1;
+ nr_SW_VESA_CG640x400 =$20005600;
+ nr_SW_VESA_CG640x480 =$20005601;
+ nr_SW_VESA_800x600 =$20005602;
+ nr_SW_VESA_CG800x600 =$20005603;
+ nr_SW_VESA_1024x768 =$20005604;
+ nr_SW_VESA_CG1024x768 =$20005605;
+ nr_SW_VESA_1280x1024 =$20005606;
+ nr_SW_VESA_CG1280x1024 =$20005607;
+ nr_SW_VESA_C80x60 =$20005608;
+ nr_SW_VESA_C132x25 =$20005609;
+ nr_SW_VESA_C132x43 =$2000560a;
+ nr_SW_VESA_C132x50 =$2000560b;
+ nr_SW_VESA_C132x60 =$2000560c;
+ nr_SW_VESA_32K_320 =$2000560d;
+ nr_SW_VESA_64K_320 =$2000560e;
+ nr_SW_VESA_FULL_320 =$2000560f;
+ nr_SW_VESA_32K_640 =$20005610;
+ nr_SW_VESA_64K_640 =$20005611;
+ nr_SW_VESA_FULL_640 =$20005612;
+ nr_SW_VESA_32K_800 =$20005613;
+ nr_SW_VESA_64K_800 =$20005614;
+ nr_SW_VESA_FULL_800 =$20005615;
+ nr_SW_VESA_32K_1024 =$20005616;
+ nr_SW_VESA_64K_1024 =$20005617;
+ nr_SW_VESA_FULL_1024 =$20005618;
+ nr_SW_VESA_32K_1280 =$20005619;
+ nr_SW_VESA_64K_1280 =$2000561a;
+ nr_SW_VESA_FULL_1280 =$2000561b;
+
+{kbdsio FpIoctl numbers}
+
+ nr_KDGKBMODE =$40044b06;
+ nr_KDSKBMODE =$20004b07;
+ nr_KDMKTONE =$20004b08;
+{$ifndef definconsole}
+ nr_KDGETMODE =$40044b09;
+ nr_KDSETMODE =$20004b0a;
+ nr_KDSBORDER =$20004b0d;
+{$endif}
+ nr_KDGKBSTATE =$40044b13;
+ nr_KDSKBSTATE =$20004b14;
+ nr_KDENABIO =$20004b3c;
+ nr_KDDISABIO =$20004b3d;
+ nr_KIOCSOUND =$20004b3f;
+ nr_KDGKBTYPE =$40044b40;
+ nr_KDGETLED =$40044b41;
+ nr_KDSETLED =$20004b42;
+ nr_KDSETRAD =$20004b43;
+{$ifndef definconsole}
+ nr_KDRASTER =$800c4b64;
+{$endif}
+ nr_KDGKBINFO =$40244b65;
+ nr_KDSETREPEAT =$80084b66;
+ nr_KDGETREPEAT =$40084b67;
+ nr_GETFKEY =$c0146b00;
+ nr_SETFKEY =$c0146b01;
+{$ifndef definconsole}
+ nr_GIO_SCRNMAP =$41006b02;
+ nr_PIO_SCRNMAP =$81006b03;
+{$endif}
+ nr_GIO_KEYMAP =$4a026b06;
+ nr_PIO_KEYMAP =$8a026b07;
+ nr_GIO_DEADKEYMAP =$462a6b08;
+ nr_PIO_DEADKEYMAP =$862a6b09;
+ nr_GIO_KEYMAPENT =$c00c6b0a;
+ nr_PIO_KEYMAPENT =$800c6b0b;
+
+
+
+{mouse FpIoctl numbers}
+ nr_MOUSE_GETSTATUS =$40184d00;
+ nr_MOUSE_GETHWINFO =$40144d01;
+ nr_MOUSE_GETMODE =$401c4d02;
+ nr_MOUSE_SETMODE =$801c4d03;
+ nr_MOUSE_GETLEVEL =$40044d04;
+ nr_MOUSE_SETLEVEL =$80044d05;
+ nr_MOUSE_GETVARS =$40404d06;
+ nr_MOUSE_SETVARS =$80404d07;
+ nr_MOUSE_READSTATE =$c0444d08;
+ nr_MOUSE_READDATA =$c0444d09;
+ nr_MOUSE_SETRESOLUTION =$80044d0a;
+ nr_MOUSE_SETSCALING =$80044d0b;
+ nr_MOUSE_SETRATE =$80044d0c;
+ nr_MOUSE_GETHWID =$40044d0d;
+
+{------------- Added procedures ---------------}
+
+function physicalconsole(fd:longint) : boolean;
+
+IMPLEMENTATION
+
+Uses BaseUnix,termio;
+
+function physicalconsole(fd:longint) : boolean;
+
+var name:string;
+
+begin
+ if (isatty(fd)<>-1) then
+ begin
+ name:=ttyname(fd);
+ if Copy(name,1,8)<>'/dev/tty' then
+ physicalconsole:=false {isatty is true, but not /dev/tty.
+ Could be /dev/pts support, but
+ I reserve the case}
+ else
+ begin
+ if name[9]='v' then {ttyv is phys console. see /etc/ttys}
+ physicalconsole:=true
+ else
+ physicalconsole:=false;
+ end;
+ end
+ else
+ physicalconsole:=false; {Not a tty, then I don't know what it is}
+end;
+
+{other macros (not FpIoctl)}
+
+function KEYCHAR(c:longint):longint;
+
+begin
+ c:=c and $FF;
+end;
+
+function KEYFLAGS(c:longint):longint;
+
+begin
+ c:=c and NOT $FF;
+end;
+
+function kbio_F(x:longint):longint;
+begin
+ kbio_f:=x+F_FN-1;
+end;
+
+function kbio_S(x:longint):longint;
+begin
+ kbio_S:=x+F_SCR-1;
+end;
+
+function kbio_ACC(x:longint):longint;
+begin
+ kbio_ACC:=x+F_ACC;
+end;
+
+{fbio.h FpIoctl's}
+
+Function FBIOGTYPE(fd:longint;var param1 : fbtype):boolean;
+{IOR('F',0,sizeof(struct fbtype) }
+
+Begin
+ FBIOGTYPE:=FpIoctl(fd,nr_FBIOGTYPE,@param1)=0;
+end;
+
+Function FBIOGINFO(fd:longint;var param1 : fbinfo):boolean;
+{IOR('F',2,sizeof(struct fbinfo) }
+
+Begin
+ FBIOGINFO:=FpIoctl(fd,nr_FBIOGINFO,@param1)=0;
+end;
+
+Function FBIOPUTCMAP(fd:longint;var param1 : fbcmap):boolean;
+{IOW('F',3,sizeof(struct fbcmap) }
+
+Begin
+ FBIOPUTCMAP:=FpIoctl(fd,nr_FBIOPUTCMAP,@param1)=0;
+end;
+
+Function FBIOGETCMAP(fd:longint;var param1 : fbcmap):boolean;
+{IOW('F',4,sizeof(struct fbcmap) }
+
+Begin
+ FBIOGETCMAP:=FpIoctl(fd,nr_FBIOGETCMAP,@param1)=0;
+end;
+
+Function FBIOGATTR(fd:longint;var param1 : fbgattr):boolean;
+{IOR('F',6,sizeof(struct fbgattr) }
+
+Begin
+ FBIOGATTR:=FpIoctl(fd,nr_FBIOGATTR,@param1)=0;
+end;
+
+Function FBIOSVIDEO(fd:longint;var param1 : longint):boolean;
+{IOW('F',7,sizeof(int) }
+
+Begin
+ FBIOSVIDEO:=FpIoctl(fd,nr_FBIOSVIDEO,@param1)=0;
+end;
+
+Function FBIOGVIDEO(fd:longint;var param1 : longint):boolean;
+{IOR('F',8,sizeof(int) }
+
+Begin
+ FBIOGVIDEO:=FpIoctl(fd,nr_FBIOGVIDEO,@param1)=0;
+end;
+
+Function FBIOSCURSOR(fd:longint;var param1 : fbcursor):boolean;
+{IOW('F',24,sizeof(struct fbcursor) }
+
+Begin
+ FBIOSCURSOR:=FpIoctl(fd,nr_FBIOSCURSOR,@param1)=0;
+end;
+
+Function FBIOGCURSOR(fd:longint;var param1 : fbcursor):boolean;
+{IOWR('F',25,sizeof(struct fbcursor) }
+
+Begin
+ FBIOGCURSOR:=FpIoctl(fd,nr_FBIOGCURSOR,@param1)=0;
+end;
+
+Function FBIOSCURPOS(fd:longint;var param1 : fbcurpos):boolean;
+{IOW('F',26,sizeof(struct fbcurpos) }
+
+Begin
+ FBIOSCURPOS:=FpIoctl(fd,nr_FBIOSCURPOS,@param1)=0;
+end;
+
+Function FBIOGCURPOS(fd:longint;var param1 : fbcurpos):boolean;
+{IOW('F',27,sizeof(struct fbcurpos) }
+
+Begin
+ FBIOGCURPOS:=FpIoctl(fd,nr_FBIOGCURPOS,@param1)=0;
+end;
+
+Function FBIOGCURMAX(fd:longint;var param1 : fbcurpos):boolean;
+{IOR('F',28,sizeof(struct fbcurpos) }
+
+Begin
+ FBIOGCURMAX:=FpIoctl(fd,nr_FBIOGCURMAX,@param1)=0;
+end;
+
+Function FBIO_ADAPTER(fd:longint;var param1 : longint):boolean;
+{IOR('F',100,sizeof(int) }
+
+Begin
+ FBIO_ADAPTER:=FpIoctl(fd,nr_FBIO_ADAPTER,@param1)=0;
+end;
+
+Function FBIO_ADPTYPE(fd:longint;var param1 : longint):boolean;
+{IOR('F',101,sizeof(int) }
+
+Begin
+ FBIO_ADPTYPE:=FpIoctl(fd,nr_FBIO_ADPTYPE,@param1)=0;
+end;
+
+Function FBIO_ADPINFO(fd:longint;var param1 : video_adapter_info):boolean;
+{IOR('F',102,sizeof(struct video_adapter_info) }
+
+Begin
+ FBIO_ADPINFO:=FpIoctl(fd,nr_FBIO_ADPINFO,@param1)=0;
+end;
+
+Function FBIO_MODEINFO(fd:longint;var param1 : video_info):boolean;
+{IOWR('F',103,sizeof(struct video_info) }
+
+Begin
+ FBIO_MODEINFO:=FpIoctl(fd,nr_FBIO_MODEINFO,@param1)=0;
+end;
+
+Function FBIO_FINDMODE(fd:longint;var param1 : video_info):boolean;
+{IOWR('F',104,sizeof(struct video_info) }
+
+Begin
+ FBIO_FINDMODE:=FpIoctl(fd,nr_FBIO_FINDMODE,@param1)=0;
+end;
+
+Function FBIO_GETMODE(fd:longint;var param1 : longint):boolean;
+{IOR('F',105,sizeof(int) }
+
+Begin
+ FBIO_GETMODE:=FpIoctl(fd,nr_FBIO_GETMODE,@param1)=0;
+end;
+
+Function FBIO_SETMODE(fd:longint;var param1 : longint):boolean;
+{IOW('F',106,sizeof(int) }
+
+Begin
+ FBIO_SETMODE:=FpIoctl(fd,nr_FBIO_SETMODE,@param1)=0;
+end;
+
+Function FBIO_GETWINORG(fd:longint;var param1 : u_int):boolean;
+{IOR('F',107,sizeof(u_int) }
+
+Begin
+ FBIO_GETWINORG:=FpIoctl(fd,nr_FBIO_GETWINORG,@param1)=0;
+end;
+
+Function FBIO_SETWINORG(fd:longint;var param1 : u_int):boolean;
+{IOW('F',108,sizeof(u_int) }
+
+Begin
+ FBIO_SETWINORG:=FpIoctl(fd,nr_FBIO_SETWINORG,@param1)=0;
+end;
+
+Function FBIO_GETDISPSTART(fd:longint;var param1 : video_display_start_t):boolean;
+{IOR('F',109,sizeof(video_display_start_t) }
+
+Begin
+ FBIO_GETDISPSTART:=FpIoctl(fd,nr_FBIO_GETDISPSTART,@param1)=0;
+end;
+
+Function FBIO_SETDISPSTART(fd:longint;var param1 : video_display_start_t):boolean;
+{IOW('F',110,sizeof(video_display_start_t) }
+
+Begin
+ FBIO_SETDISPSTART:=FpIoctl(fd,nr_FBIO_SETDISPSTART,@param1)=0;
+end;
+
+Function FBIO_GETLINEWIDTH(fd:longint;var param1 : u_int):boolean;
+{IOR('F',111,sizeof(u_int) }
+
+Begin
+ FBIO_GETLINEWIDTH:=FpIoctl(fd,nr_FBIO_GETLINEWIDTH,@param1)=0;
+end;
+
+Function FBIO_SETLINEWIDTH(fd:longint;var param1 : u_int):boolean;
+{IOW('F',112,sizeof(u_int) }
+
+Begin
+ FBIO_SETLINEWIDTH:=FpIoctl(fd,nr_FBIO_SETLINEWIDTH,@param1)=0;
+end;
+
+Function FBIO_GETPALETTE(fd:longint;var param1 : video_color_palette_t):boolean;
+{IOW('F',113,sizeof(video_color_palette_t) }
+
+Begin
+ FBIO_GETPALETTE:=FpIoctl(fd,nr_FBIO_GETPALETTE,@param1)=0;
+end;
+
+Function FBIO_SETPALETTE(fd:longint;var param1 : video_color_palette_t):boolean;
+{IOW('F',114,sizeof(video_color_palette_t) }
+
+Begin
+ FBIO_SETPALETTE:=FpIoctl(fd,nr_FBIO_SETPALETTE,@param1)=0;
+end;
+
+
+{consio.h FpIoctl's}
+
+Function KDGETMODE(fd:longint;var param1 : longint):boolean;
+{IOR('K',9,sizeof(int) }
+
+Begin
+ KDGETMODE:=FpIoctl(fd,nr_KDGETMODE,@param1)=0;
+end;
+
+Function KDSETMODE(fd:longint;param1 : longint):boolean;
+{IO('K',10 /* int */));
+ }
+
+Begin
+ KDSETMODE:=FpIoctl(fd,nr_KDSETMODE,pointer(param1))=0;
+end;
+
+Function KDSBORDER(fd:longint;param1 : longint):boolean;
+{IO('K',13 /* int */));
+ }
+
+Begin
+ KDSBORDER:=FpIoctl(fd,nr_KDSBORDER,pointer(param1))=0;
+end;
+
+Function KDRASTER(fd:longint;var param1 : scr_size_t):boolean;
+{IOW('K',100,sizeof(scr_size_t) }
+
+Begin
+ KDRASTER:=FpIoctl(fd,nr_KDRASTER,@param1)=0;
+end;
+
+Function GIO_SCRNMAP(fd:longint;var param1 : scrmap_t):boolean;
+{IOR('k',2,sizeof(scrmap_t) }
+
+Begin
+ GIO_SCRNMAP:=FpIoctl(fd,nr_GIO_SCRNMAP,@param1)=0;
+end;
+
+Function PIO_SCRNMAP(fd:longint;var param1 : scrmap_t):boolean;
+{IOW('k',3,sizeof(scrmap_t) }
+
+Begin
+ PIO_SCRNMAP:=FpIoctl(fd,nr_PIO_SCRNMAP,@param1)=0;
+end;
+
+Function GIO_ATTR(fd:longint;var param1 : longint):boolean;
+{IOR('a',0,sizeof(int) }
+
+Begin
+ GIO_ATTR:=FpIoctl(fd,nr_GIO_ATTR,@param1)=0;
+end;
+
+Function GIO_COLOR(fd:longint;var param1 : longint):boolean;
+{IOR('c',0,sizeof(int) }
+
+Begin
+ GIO_COLOR:=FpIoctl(fd,nr_GIO_COLOR,@param1)=0;
+end;
+
+Function CONS_CURRENT(fd:longint;var param1 : longint):boolean;
+{IOR('c',1,sizeof(int) }
+
+Begin
+ CONS_CURRENT:=FpIoctl(fd,nr_CONS_CURRENT,@param1)=0;
+end;
+
+Function CONS_GET(fd:longint;var param1 : longint):boolean;
+{IOR('c',2,sizeof(int) }
+
+Begin
+ CONS_GET:=FpIoctl(fd,nr_CONS_GET,@param1)=0;
+end;
+
+Function CONS_IO(fd:longint):boolean;
+{IO('c',3));
+ }
+
+Begin
+ CONS_IO:=FpIoctl(fd,nr_CONS_IO,nil)=0;
+end;
+
+Function CONS_BLANKTIME(fd:longint;var param1 : longint):boolean;
+{IOW('c',4,sizeof(int) }
+
+Begin
+ CONS_BLANKTIME:=FpIoctl(fd,nr_CONS_BLANKTIME,@param1)=0;
+end;
+
+Function CONS_SSAVER(fd:longint;var param1 : ssaver_t):boolean;
+{IOW('c',5,sizeof(ssaver_t) }
+
+Begin
+ CONS_SSAVER:=FpIoctl(fd,nr_CONS_SSAVER,@param1)=0;
+end;
+
+Function CONS_GSAVER(fd:longint;var param1 : ssaver_t):boolean;
+{IOWR('c',6,sizeof(ssaver_t) }
+
+Begin
+ CONS_GSAVER:=FpIoctl(fd,nr_CONS_GSAVER,@param1)=0;
+end;
+
+Function CONS_CURSORTYPE(fd:longint;var param1 : longint):boolean;
+{IOW('c',7,sizeof(int) }
+
+Begin
+ CONS_CURSORTYPE:=FpIoctl(fd,nr_CONS_CURSORTYPE,@param1)=0;
+end;
+
+Function CONS_BELLTYPE(fd:longint;var param1 : longint):boolean;
+{IOW('c',8,sizeof(int) }
+
+Begin
+ CONS_BELLTYPE:=FpIoctl(fd,nr_CONS_BELLTYPE,@param1)=0;
+end;
+
+Function CONS_HISTORY(fd:longint;var param1 : longint):boolean;
+{IOW('c',9,sizeof(int) }
+
+Begin
+ CONS_HISTORY:=FpIoctl(fd,nr_CONS_HISTORY,@param1)=0;
+end;
+
+Function CONS_MOUSECTL(fd:longint;var param1 : mouse_info_t):boolean;
+{IOWR('c',10,sizeof(mouse_info_t) }
+
+Begin
+ CONS_MOUSECTL:=FpIoctl(fd,nr_CONS_MOUSECTL,@param1)=0;
+end;
+
+Function CONS_IDLE(fd:longint;var param1 : longint):boolean;
+{IOR('c',11,sizeof(int) }
+
+Begin
+ CONS_IDLE:=FpIoctl(fd,nr_CONS_IDLE,@param1)=0;
+end;
+
+Function CONS_SAVERMODE(fd:longint;var param1 : longint):boolean;
+{IOW('c',12,sizeof(int) }
+
+Begin
+ CONS_SAVERMODE:=FpIoctl(fd,nr_CONS_SAVERMODE,@param1)=0;
+end;
+
+Function CONS_SAVERSTART(fd:longint;var param1 : longint):boolean;
+{IOW('c',13,sizeof(int) }
+
+Begin
+ CONS_SAVERSTART:=FpIoctl(fd,nr_CONS_SAVERSTART,@param1)=0;
+end;
+
+Function PIO_FONT8x8(fd:longint;var param1 : fnt8_t):boolean;
+{IOW('c',64,sizeof(fnt8_t) }
+
+Begin
+ PIO_FONT8x8:=FpIoctl(fd,nr_PIO_FONT8x8,@param1)=0;
+end;
+
+Function GIO_FONT8x8(fd:longint;var param1 : fnt8_t):boolean;
+{IOR('c',65,sizeof(fnt8_t) }
+
+Begin
+ GIO_FONT8x8:=FpIoctl(fd,nr_GIO_FONT8x8,@param1)=0;
+end;
+
+Function PIO_FONT8x14(fd:longint;var param1 : fnt14_t):boolean;
+{IOW('c',66,sizeof(fnt14_t) }
+
+Begin
+ PIO_FONT8x14:=FpIoctl(fd,nr_PIO_FONT8x14,@param1)=0;
+end;
+
+Function GIO_FONT8x14(fd:longint;var param1 : fnt14_t):boolean;
+{IOR('c',67,sizeof(fnt14_t) }
+
+Begin
+ GIO_FONT8x14:=FpIoctl(fd,nr_GIO_FONT8x14,@param1)=0;
+end;
+
+Function PIO_FONT8x16(fd:longint;var param1 : fnt16_t):boolean;
+{IOW('c',68,sizeof(fnt16_t) }
+
+Begin
+ PIO_FONT8x16:=FpIoctl(fd,nr_PIO_FONT8x16,@param1)=0;
+end;
+
+Function GIO_FONT8x16(fd:longint;var param1 : fnt16_t):boolean;
+{IOR('c',69,sizeof(fnt16_t) }
+
+Begin
+ GIO_FONT8x16:=FpIoctl(fd,nr_GIO_FONT8x16,@param1)=0;
+end;
+
+Function CONS_GETINFO(fd:longint;var param1 : vid_info_t):boolean;
+{IOWR('c',73,sizeof(vid_info_t) }
+
+Begin
+ CONS_GETINFO:=FpIoctl(fd,nr_CONS_GETINFO,@param1)=0;
+end;
+
+Function CONS_GETVERS(fd:longint;var param1 : longint):boolean;
+{IOR('c',74,sizeof(int) }
+
+Begin
+ CONS_GETVERS:=FpIoctl(fd,nr_CONS_GETVERS,@param1)=0;
+end;
+
+Function CONS_CURRENTADP(fd:longint;var param1 : longint):boolean;
+{IOR('c',100,sizeof(int) }
+
+Begin
+ CONS_CURRENTADP:=FpIoctl(fd,nr_CONS_CURRENTADP,@param1)=0;
+end;
+
+Function CONS_ADPINFO(fd:longint;var param1 : video_adapter_info_t):boolean;
+{IOWR('c',101,sizeof(video_adapter_info_t) }
+
+Begin
+ CONS_ADPINFO:=FpIoctl(fd,nr_CONS_ADPINFO,@param1)=0;
+end;
+
+Function CONS_MODEINFO(fd:longint;var param1 : video_info_t):boolean;
+{IOWR('c',102,sizeof(video_info_t) }
+
+Begin
+ CONS_MODEINFO:=FpIoctl(fd,nr_CONS_MODEINFO,@param1)=0;
+end;
+
+Function CONS_FINDMODE(fd:longint;var param1 : video_info_t):boolean;
+{IOWR('c',103,sizeof(video_info_t) }
+
+Begin
+ CONS_FINDMODE:=FpIoctl(fd,nr_CONS_FINDMODE,@param1)=0;
+end;
+
+Function CONS_SETWINORG(fd:longint;param1 : longint):boolean;
+{IO('c',104 /* int */));
+ }
+
+Begin
+ CONS_SETWINORG:=FpIoctl(fd,nr_CONS_SETWINORG,pointer(param1))=0;
+end;
+
+Function CONS_SETKBD(fd:longint;param1 : longint):boolean;
+{IO('c',110 /* int */));
+ }
+
+Begin
+ CONS_SETKBD:=FpIoctl(fd,nr_CONS_SETKBD,pointer(param1))=0;
+end;
+
+Function CONS_RELKBD(fd:longint):boolean;
+{IO('c',111));
+ }
+
+Begin
+ CONS_RELKBD:=FpIoctl(fd,nr_CONS_RELKBD,nil)=0;
+end;
+
+Function CONS_GETTERM(fd:longint;var param1 : term_info_t):boolean;
+{IOWR('c',112,sizeof(term_info_t) }
+
+Begin
+ CONS_GETTERM:=FpIoctl(fd,nr_CONS_GETTERM,@param1)=0;
+end;
+
+Function CONS_SETTERM(fd:longint;var param1 : term_info_t):boolean;
+{IOW('c',113,sizeof(term_info_t) }
+
+Begin
+ CONS_SETTERM:=FpIoctl(fd,nr_CONS_SETTERM,@param1)=0;
+end;
+
+Function ADJUST_CLOCK(fd:longint):boolean;
+{IO('t',100));
+ }
+
+Begin
+ ADJUST_CLOCK:=FpIoctl(fd,nr_ADJUST_CLOCK,nil)=0;
+end;
+
+Function VT_OPENQRY(fd:longint;var param1 : longint):boolean;
+{IOR('v',1,sizeof(int) }
+
+Begin
+ VT_OPENQRY:=FpIoctl(fd,nr_VT_OPENQRY,@param1)=0;
+end;
+
+Function VT_SETMODE(fd:longint;var param1 : vtmode_t):boolean;
+{IOW('v',2,sizeof(vtmode_t) }
+
+Begin
+ VT_SETMODE:=FpIoctl(fd,nr_VT_SETMODE,@param1)=0;
+end;
+
+Function VT_GETMODE(fd:longint;var param1 : vtmode_t):boolean;
+{IOR('v',3,sizeof(vtmode_t) }
+
+Begin
+ VT_GETMODE:=FpIoctl(fd,nr_VT_GETMODE,@param1)=0;
+end;
+
+Function VT_RELDISP(fd:longint;param1 : longint):boolean;
+{IO('v',4 /* int */));
+ }
+
+Begin
+ VT_RELDISP:=FpIoctl(fd,nr_VT_RELDISP,pointer(param1))=0;
+end;
+
+Function VT_ACTIVATE(fd:longint;param1 : longint):boolean;
+{IO('v',5 /* int */));
+ }
+
+Begin
+ VT_ACTIVATE:=FpIoctl(fd,nr_VT_ACTIVATE,pointer(param1))=0;
+end;
+
+Function VT_WAITACTIVE(fd:longint;param1 : longint):boolean;
+{IO('v',6 /* int */));
+ }
+
+Begin
+ VT_WAITACTIVE:=FpIoctl(fd,nr_VT_WAITACTIVE,pointer(param1))=0;
+end;
+
+Function VT_GETACTIVE(fd:longint;var param1 : longint):boolean;
+{IOR('v',7,sizeof(int) }
+
+Begin
+ VT_GETACTIVE:=FpIoctl(fd,nr_VT_GETACTIVE,@param1)=0;
+end;
+
+Function VT_GETINDEX(fd:longint;var param1 : longint):boolean;
+{IOR('v',8,sizeof(int) }
+
+Begin
+ VT_GETINDEX:=FpIoctl(fd,nr_VT_GETINDEX,@param1)=0;
+end;
+
+Function SW_B40x25(fd:longint):boolean;
+{IO('S',M_B40x25));
+ }
+
+Begin
+ SW_B40x25:=FpIoctl(fd,nr_SW_B40x25,nil)=0;
+end;
+
+Function SW_C40x25(fd:longint):boolean;
+{IO('S',M_C40x25));
+ }
+
+Begin
+ SW_C40x25:=FpIoctl(fd,nr_SW_C40x25,nil)=0;
+end;
+
+Function SW_B80x25(fd:longint):boolean;
+{IO('S',M_B80x25));
+ }
+
+Begin
+ SW_B80x25:=FpIoctl(fd,nr_SW_B80x25,nil)=0;
+end;
+
+Function SW_C80x25(fd:longint):boolean;
+{IO('S',M_C80x25));
+ }
+
+Begin
+ SW_C80x25:=FpIoctl(fd,nr_SW_C80x25,nil)=0;
+end;
+
+Function SW_BG320(fd:longint):boolean;
+{IO('S',M_BG320));
+ }
+
+Begin
+ SW_BG320:=FpIoctl(fd,nr_SW_BG320,nil)=0;
+end;
+
+Function SW_CG320(fd:longint):boolean;
+{IO('S',M_CG320));
+ }
+
+Begin
+ SW_CG320:=FpIoctl(fd,nr_SW_CG320,nil)=0;
+end;
+
+Function SW_BG640(fd:longint):boolean;
+{IO('S',M_BG640));
+ }
+
+Begin
+ SW_BG640:=FpIoctl(fd,nr_SW_BG640,nil)=0;
+end;
+
+Function SW_EGAMONO80x25(fd:longint):boolean;
+{IO('S',M_EGAMONO80x25));
+ }
+
+Begin
+ SW_EGAMONO80x25:=FpIoctl(fd,nr_SW_EGAMONO80x25,nil)=0;
+end;
+
+Function SW_CG320_D(fd:longint):boolean;
+{IO('S',M_CG320_D));
+ }
+
+Begin
+ SW_CG320_D:=FpIoctl(fd,nr_SW_CG320_D,nil)=0;
+end;
+
+Function SW_CG640_E(fd:longint):boolean;
+{IO('S',M_CG640_E));
+ }
+
+Begin
+ SW_CG640_E:=FpIoctl(fd,nr_SW_CG640_E,nil)=0;
+end;
+
+Function SW_EGAMONOAPA(fd:longint):boolean;
+{IO('S',M_EGAMONOAPA));
+ }
+
+Begin
+ SW_EGAMONOAPA:=FpIoctl(fd,nr_SW_EGAMONOAPA,nil)=0;
+end;
+
+Function SW_CG640x350(fd:longint):boolean;
+{IO('S',M_CG640x350));
+ }
+
+Begin
+ SW_CG640x350:=FpIoctl(fd,nr_SW_CG640x350,nil)=0;
+end;
+
+Function SW_ENH_MONOAPA2(fd:longint):boolean;
+{IO('S',M_ENHMONOAPA2));
+ }
+
+Begin
+ SW_ENH_MONOAPA2:=FpIoctl(fd,nr_SW_ENH_MONOAPA2,nil)=0;
+end;
+
+Function SW_ENH_CG640(fd:longint):boolean;
+{IO('S',M_ENH_CG640));
+ }
+
+Begin
+ SW_ENH_CG640:=FpIoctl(fd,nr_SW_ENH_CG640,nil)=0;
+end;
+
+Function SW_ENH_B40x25(fd:longint):boolean;
+{IO('S',M_ENH_B40x25));
+ }
+
+Begin
+ SW_ENH_B40x25:=FpIoctl(fd,nr_SW_ENH_B40x25,nil)=0;
+end;
+
+Function SW_ENH_C40x25(fd:longint):boolean;
+{IO('S',M_ENH_C40x25));
+ }
+
+Begin
+ SW_ENH_C40x25:=FpIoctl(fd,nr_SW_ENH_C40x25,nil)=0;
+end;
+
+Function SW_ENH_B80x25(fd:longint):boolean;
+{IO('S',M_ENH_B80x25));
+ }
+
+Begin
+ SW_ENH_B80x25:=FpIoctl(fd,nr_SW_ENH_B80x25,nil)=0;
+end;
+
+Function SW_ENH_C80x25(fd:longint):boolean;
+{IO('S',M_ENH_C80x25));
+ }
+
+Begin
+ SW_ENH_C80x25:=FpIoctl(fd,nr_SW_ENH_C80x25,nil)=0;
+end;
+
+Function SW_ENH_B80x43(fd:longint):boolean;
+{IO('S',M_ENH_B80x43));
+ }
+
+Begin
+ SW_ENH_B80x43:=FpIoctl(fd,nr_SW_ENH_B80x43,nil)=0;
+end;
+
+Function SW_ENH_C80x43(fd:longint):boolean;
+{IO('S',M_ENH_C80x43));
+ }
+
+Begin
+ SW_ENH_C80x43:=FpIoctl(fd,nr_SW_ENH_C80x43,nil)=0;
+end;
+
+Function SW_MCAMODE(fd:longint):boolean;
+{IO('S',M_MCA_MODE));
+ }
+
+Begin
+ SW_MCAMODE:=FpIoctl(fd,nr_SW_MCAMODE,nil)=0;
+end;
+
+Function SW_VGA_C40x25(fd:longint):boolean;
+{IO('S',M_VGA_C40x25));
+ }
+
+Begin
+ SW_VGA_C40x25:=FpIoctl(fd,nr_SW_VGA_C40x25,nil)=0;
+end;
+
+Function SW_VGA_C80x25(fd:longint):boolean;
+{IO('S',M_VGA_C80x25));
+ }
+
+Begin
+ SW_VGA_C80x25:=FpIoctl(fd,nr_SW_VGA_C80x25,nil)=0;
+end;
+
+Function SW_VGA_C80x30(fd:longint):boolean;
+{IO('S',M_VGA_C80x30));
+ }
+
+Begin
+ SW_VGA_C80x30:=FpIoctl(fd,nr_SW_VGA_C80x30,nil)=0;
+end;
+
+Function SW_VGA_C80x50(fd:longint):boolean;
+{IO('S',M_VGA_C80x50));
+ }
+
+Begin
+ SW_VGA_C80x50:=FpIoctl(fd,nr_SW_VGA_C80x50,nil)=0;
+end;
+
+Function SW_VGA_C80x60(fd:longint):boolean;
+{IO('S',M_VGA_C80x60));
+ }
+
+Begin
+ SW_VGA_C80x60:=FpIoctl(fd,nr_SW_VGA_C80x60,nil)=0;
+end;
+
+Function SW_VGA_M80x25(fd:longint):boolean;
+{IO('S',M_VGA_M80x25));
+ }
+
+Begin
+ SW_VGA_M80x25:=FpIoctl(fd,nr_SW_VGA_M80x25,nil)=0;
+end;
+
+Function SW_VGA_M80x30(fd:longint):boolean;
+{IO('S',M_VGA_M80x30));
+ }
+
+Begin
+ SW_VGA_M80x30:=FpIoctl(fd,nr_SW_VGA_M80x30,nil)=0;
+end;
+
+Function SW_VGA_M80x50(fd:longint):boolean;
+{IO('S',M_VGA_M80x50));
+ }
+
+Begin
+ SW_VGA_M80x50:=FpIoctl(fd,nr_SW_VGA_M80x50,nil)=0;
+end;
+
+Function SW_VGA_M80x60(fd:longint):boolean;
+{IO('S',M_VGA_M80x60));
+ }
+
+Begin
+ SW_VGA_M80x60:=FpIoctl(fd,nr_SW_VGA_M80x60,nil)=0;
+end;
+
+Function SW_VGA11(fd:longint):boolean;
+{IO('S',M_VGA11));
+ }
+
+Begin
+ SW_VGA11:=FpIoctl(fd,nr_SW_VGA11,nil)=0;
+end;
+
+Function SW_BG640x480(fd:longint):boolean;
+{IO('S',M_VGA11));
+ }
+
+Begin
+ SW_BG640x480:=FpIoctl(fd,nr_SW_BG640x480,nil)=0;
+end;
+
+Function SW_VGA12(fd:longint):boolean;
+{IO('S',M_VGA12));
+ }
+
+Begin
+ SW_VGA12:=FpIoctl(fd,nr_SW_VGA12,nil)=0;
+end;
+
+Function SW_CG640x480(fd:longint):boolean;
+{IO('S',M_VGA12));
+ }
+
+Begin
+ SW_CG640x480:=FpIoctl(fd,nr_SW_CG640x480,nil)=0;
+end;
+
+Function SW_VGA13(fd:longint):boolean;
+{IO('S',M_VGA13));
+ }
+
+Begin
+ SW_VGA13:=FpIoctl(fd,nr_SW_VGA13,nil)=0;
+end;
+
+Function SW_VGA_CG320(fd:longint):boolean;
+{IO('S',M_VGA13));
+ }
+
+Begin
+ SW_VGA_CG320:=FpIoctl(fd,nr_SW_VGA_CG320,nil)=0;
+end;
+
+Function SW_VGA_CG640(fd:longint):boolean;
+{IO('S',M_VGA_CG640));
+ }
+
+Begin
+ SW_VGA_CG640:=FpIoctl(fd,nr_SW_VGA_CG640,nil)=0;
+end;
+
+Function SW_VGA_MODEX(fd:longint):boolean;
+{IO('S',M_VGA_MODEX));
+ }
+
+Begin
+ SW_VGA_MODEX:=FpIoctl(fd,nr_SW_VGA_MODEX,nil)=0;
+end;
+
+Function SW_PC98_80x25(fd:longint):boolean;
+{IO('S',M_PC98_80x25));
+ }
+
+Begin
+ SW_PC98_80x25:=FpIoctl(fd,nr_SW_PC98_80x25,nil)=0;
+end;
+
+Function SW_PC98_80x30(fd:longint):boolean;
+{IO('S',M_PC98_80x30));
+ }
+
+Begin
+ SW_PC98_80x30:=FpIoctl(fd,nr_SW_PC98_80x30,nil)=0;
+end;
+
+Function SW_PC98_EGC640x400(fd:longint):boolean;
+{IO('S',M_PC98_EGC640x400));
+ }
+
+Begin
+ SW_PC98_EGC640x400:=FpIoctl(fd,nr_SW_PC98_EGC640x400,nil)=0;
+end;
+
+Function SW_PC98_PEGC640x400(fd:longint):boolean;
+{IO('S',M_PC98_PEGC640x400));
+ }
+
+Begin
+ SW_PC98_PEGC640x400:=FpIoctl(fd,nr_SW_PC98_PEGC640x400,nil)=0;
+end;
+
+Function SW_PC98_PEGC640x480(fd:longint):boolean;
+{IO('S',M_PC98_PEGC640x480));
+ }
+
+Begin
+ SW_PC98_PEGC640x480:=FpIoctl(fd,nr_SW_PC98_PEGC640x480,nil)=0;
+end;
+
+Function SW_VGA_C90x25(fd:longint):boolean;
+{IO('S',M_VGA_C90x25));
+ }
+
+Begin
+ SW_VGA_C90x25:=FpIoctl(fd,nr_SW_VGA_C90x25,nil)=0;
+end;
+
+Function SW_VGA_M90x25(fd:longint):boolean;
+{IO('S',M_VGA_M90x25));
+ }
+
+Begin
+ SW_VGA_M90x25:=FpIoctl(fd,nr_SW_VGA_M90x25,nil)=0;
+end;
+
+Function SW_VGA_C90x30(fd:longint):boolean;
+{IO('S',M_VGA_C90x30));
+ }
+
+Begin
+ SW_VGA_C90x30:=FpIoctl(fd,nr_SW_VGA_C90x30,nil)=0;
+end;
+
+Function SW_VGA_M90x30(fd:longint):boolean;
+{IO('S',M_VGA_M90x30));
+ }
+
+Begin
+ SW_VGA_M90x30:=FpIoctl(fd,nr_SW_VGA_M90x30,nil)=0;
+end;
+
+Function SW_VGA_C90x43(fd:longint):boolean;
+{IO('S',M_VGA_C90x43));
+ }
+
+Begin
+ SW_VGA_C90x43:=FpIoctl(fd,nr_SW_VGA_C90x43,nil)=0;
+end;
+
+Function SW_VGA_M90x43(fd:longint):boolean;
+{IO('S',M_VGA_M90x43));
+ }
+
+Begin
+ SW_VGA_M90x43:=FpIoctl(fd,nr_SW_VGA_M90x43,nil)=0;
+end;
+
+Function SW_VGA_C90x50(fd:longint):boolean;
+{IO('S',M_VGA_C90x50));
+ }
+
+Begin
+ SW_VGA_C90x50:=FpIoctl(fd,nr_SW_VGA_C90x50,nil)=0;
+end;
+
+Function SW_VGA_M90x50(fd:longint):boolean;
+{IO('S',M_VGA_M90x50));
+ }
+
+Begin
+ SW_VGA_M90x50:=FpIoctl(fd,nr_SW_VGA_M90x50,nil)=0;
+end;
+
+Function SW_VGA_C90x60(fd:longint):boolean;
+{IO('S',M_VGA_C90x60));
+ }
+
+Begin
+ SW_VGA_C90x60:=FpIoctl(fd,nr_SW_VGA_C90x60,nil)=0;
+end;
+
+Function SW_VGA_M90x60(fd:longint):boolean;
+{IO('S',M_VGA_M90x60));
+ }
+
+Begin
+ SW_VGA_M90x60:=FpIoctl(fd,nr_SW_VGA_M90x60,nil)=0;
+end;
+
+Function SW_TEXT_80x25(fd:longint):boolean;
+{IO('S',M_TEXT_80x25));
+ }
+
+Begin
+ SW_TEXT_80x25:=FpIoctl(fd,nr_SW_TEXT_80x25,nil)=0;
+end;
+
+Function SW_TEXT_80x30(fd:longint):boolean;
+{IO('S',M_TEXT_80x30));
+ }
+
+Begin
+ SW_TEXT_80x30:=FpIoctl(fd,nr_SW_TEXT_80x30,nil)=0;
+end;
+
+Function SW_TEXT_80x43(fd:longint):boolean;
+{IO('S',M_TEXT_80x43));
+ }
+
+Begin
+ SW_TEXT_80x43:=FpIoctl(fd,nr_SW_TEXT_80x43,nil)=0;
+end;
+
+Function SW_TEXT_80x50(fd:longint):boolean;
+{IO('S',M_TEXT_80x50));
+ }
+
+Begin
+ SW_TEXT_80x50:=FpIoctl(fd,nr_SW_TEXT_80x50,nil)=0;
+end;
+
+Function SW_TEXT_80x60(fd:longint):boolean;
+{IO('S',M_TEXT_80x60));
+ }
+
+Begin
+ SW_TEXT_80x60:=FpIoctl(fd,nr_SW_TEXT_80x60,nil)=0;
+end;
+
+Function SW_TEXT_132x25(fd:longint):boolean;
+{IO('S',M_TEXT_132x25));
+ }
+
+Begin
+ SW_TEXT_132x25:=FpIoctl(fd,nr_SW_TEXT_132x25,nil)=0;
+end;
+
+Function SW_TEXT_132x30(fd:longint):boolean;
+{IO('S',M_TEXT_132x30));
+ }
+
+Begin
+ SW_TEXT_132x30:=FpIoctl(fd,nr_SW_TEXT_132x30,nil)=0;
+end;
+
+Function SW_TEXT_132x43(fd:longint):boolean;
+{IO('S',M_TEXT_132x43));
+ }
+
+Begin
+ SW_TEXT_132x43:=FpIoctl(fd,nr_SW_TEXT_132x43,nil)=0;
+end;
+
+Function SW_TEXT_132x50(fd:longint):boolean;
+{IO('S',M_TEXT_132x50));
+ }
+
+Begin
+ SW_TEXT_132x50:=FpIoctl(fd,nr_SW_TEXT_132x50,nil)=0;
+end;
+
+Function SW_TEXT_132x60(fd:longint):boolean;
+{IO('S',M_TEXT_132x60));
+ }
+
+Begin
+ SW_TEXT_132x60:=FpIoctl(fd,nr_SW_TEXT_132x60,nil)=0;
+end;
+
+Function SW_VESA_CG640x400(fd:longint):boolean;
+{IO('V',M_VESA_CG640x400 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_CG640x400:=FpIoctl(fd,nr_SW_VESA_CG640x400,nil)=0;
+end;
+
+Function SW_VESA_CG640x480(fd:longint):boolean;
+{IO('V',M_VESA_CG640x480 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_CG640x480:=FpIoctl(fd,nr_SW_VESA_CG640x480,nil)=0;
+end;
+
+Function SW_VESA_800x600(fd:longint):boolean;
+{IO('V',M_VESA_800x600 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_800x600:=FpIoctl(fd,nr_SW_VESA_800x600,nil)=0;
+end;
+
+Function SW_VESA_CG800x600(fd:longint):boolean;
+{IO('V',M_VESA_CG800x600 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_CG800x600:=FpIoctl(fd,nr_SW_VESA_CG800x600,nil)=0;
+end;
+
+Function SW_VESA_1024x768(fd:longint):boolean;
+{IO('V',M_VESA_1024x768 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_1024x768:=FpIoctl(fd,nr_SW_VESA_1024x768,nil)=0;
+end;
+
+Function SW_VESA_CG1024x768(fd:longint):boolean;
+{IO('V',M_VESA_CG1024x768 - M_VESA_BAS));
+ }
+
+Begin
+ SW_VESA_CG1024x768:=FpIoctl(fd,nr_SW_VESA_CG1024x768,nil)=0;
+end;
+
+Function SW_VESA_1280x1024(fd:longint):boolean;
+{IO('V',M_VESA_1280x1024 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_1280x1024:=FpIoctl(fd,nr_SW_VESA_1280x1024,nil)=0;
+end;
+
+Function SW_VESA_CG1280x1024(fd:longint):boolean;
+{IO('V',M_VESA_CG1280x1024 - M_VESA_BA));
+ }
+
+Begin
+ SW_VESA_CG1280x1024:=FpIoctl(fd,nr_SW_VESA_CG1280x1024,nil)=0;
+end;
+
+Function SW_VESA_C80x60(fd:longint):boolean;
+{IO('V',M_VESA_C80x60 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_C80x60:=FpIoctl(fd,nr_SW_VESA_C80x60,nil)=0;
+end;
+
+Function SW_VESA_C132x25(fd:longint):boolean;
+{IO('V',M_VESA_C132x25 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_C132x25:=FpIoctl(fd,nr_SW_VESA_C132x25,nil)=0;
+end;
+
+Function SW_VESA_C132x43(fd:longint):boolean;
+{IO('V',M_VESA_C132x43 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_C132x43:=FpIoctl(fd,nr_SW_VESA_C132x43,nil)=0;
+end;
+
+Function SW_VESA_C132x50(fd:longint):boolean;
+{IO('V',M_VESA_C132x50 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_C132x50:=FpIoctl(fd,nr_SW_VESA_C132x50,nil)=0;
+end;
+
+Function SW_VESA_C132x60(fd:longint):boolean;
+{IO('V',M_VESA_C132x60 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_C132x60:=FpIoctl(fd,nr_SW_VESA_C132x60,nil)=0;
+end;
+
+Function SW_VESA_32K_320(fd:longint):boolean;
+{IO('V',M_VESA_32K_320 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_32K_320:=FpIoctl(fd,nr_SW_VESA_32K_320,nil)=0;
+end;
+
+Function SW_VESA_64K_320(fd:longint):boolean;
+{IO('V',M_VESA_64K_320 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_64K_320:=FpIoctl(fd,nr_SW_VESA_64K_320,nil)=0;
+end;
+
+Function SW_VESA_FULL_320(fd:longint):boolean;
+{IO('V',M_VESA_FULL_320 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_FULL_320:=FpIoctl(fd,nr_SW_VESA_FULL_320,nil)=0;
+end;
+
+Function SW_VESA_32K_640(fd:longint):boolean;
+{IO('V',M_VESA_32K_640 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_32K_640:=FpIoctl(fd,nr_SW_VESA_32K_640,nil)=0;
+end;
+
+Function SW_VESA_64K_640(fd:longint):boolean;
+{IO('V',M_VESA_64K_640 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_64K_640:=FpIoctl(fd,nr_SW_VESA_64K_640,nil)=0;
+end;
+
+Function SW_VESA_FULL_640(fd:longint):boolean;
+{IO('V',M_VESA_FULL_640 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_FULL_640:=FpIoctl(fd,nr_SW_VESA_FULL_640,nil)=0;
+end;
+
+Function SW_VESA_32K_800(fd:longint):boolean;
+{IO('V',M_VESA_32K_800 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_32K_800:=FpIoctl(fd,nr_SW_VESA_32K_800,nil)=0;
+end;
+
+Function SW_VESA_64K_800(fd:longint):boolean;
+{IO('V',M_VESA_64K_800 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_64K_800:=FpIoctl(fd,nr_SW_VESA_64K_800,nil)=0;
+end;
+
+Function SW_VESA_FULL_800(fd:longint):boolean;
+{IO('V',M_VESA_FULL_800 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_FULL_800:=FpIoctl(fd,nr_SW_VESA_FULL_800,nil)=0;
+end;
+
+Function SW_VESA_32K_1024(fd:longint):boolean;
+{IO('V',M_VESA_32K_1024 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_32K_1024:=FpIoctl(fd,nr_SW_VESA_32K_1024,nil)=0;
+end;
+
+Function SW_VESA_64K_1024(fd:longint):boolean;
+{IO('V',M_VESA_64K_1024 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_64K_1024:=FpIoctl(fd,nr_SW_VESA_64K_1024,nil)=0;
+end;
+
+Function SW_VESA_FULL_1024(fd:longint):boolean;
+{IO('V',M_VESA_FULL_1024 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_FULL_1024:=FpIoctl(fd,nr_SW_VESA_FULL_1024,nil)=0;
+end;
+
+Function SW_VESA_32K_1280(fd:longint):boolean;
+{IO('V',M_VESA_32K_1280 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_32K_1280:=FpIoctl(fd,nr_SW_VESA_32K_1280,nil)=0;
+end;
+
+Function SW_VESA_64K_1280(fd:longint):boolean;
+{IO('V',M_VESA_64K_1280 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_64K_1280:=FpIoctl(fd,nr_SW_VESA_64K_1280,nil)=0;
+end;
+
+Function SW_VESA_FULL_1280(fd:longint):boolean;
+{IO('V',M_VESA_FULL_1280 - M_VESA_BASE));
+ }
+
+Begin
+ SW_VESA_FULL_1280:=FpIoctl(fd,nr_SW_VESA_FULL_1280,nil)=0;
+end;
+
+{----------------------------- kbio.h FpIoctl's ---------------------------}
+
+Function KDGKBMODE(fd:longint;var param1 : longint):boolean;
+{IOR('K',6,sizeof(int) }
+
+Begin
+ KDGKBMODE:=FpIoctl(fd,nr_KDGKBMODE,@param1)=0;
+end;
+
+Function KDSKBMODE(fd:longint;param1 : longint):boolean;
+{IO('K',7 /* int */));
+ }
+
+Begin
+ KDSKBMODE:=FpIoctl(fd,nr_KDSKBMODE,pointer(param1))=0;
+end;
+
+Function KDMKTONE(fd:longint;param1 : longint):boolean;
+{IO('K',8 /* int */));
+ }
+
+Begin
+ KDMKTONE:=FpIoctl(fd,nr_KDMKTONE,pointer(param1))=0;
+end;
+
+{$ifndef definconsole}
+Function KDGETMODE(fd:longint;var param1 : longint):boolean;
+{IOR('K',9,sizeof(int) }
+
+Begin
+ KDGETMODE:=FpIoctl(fd,nr_KDGETMODE,@param1)=0;
+end;
+
+Function KDSETMODE(fd:longint;param1 : longint):boolean;
+{IO('K',10 /* int */));
+ }
+
+Begin
+ KDSETMODE:=FpIoctl(fd,nr_KDSETMODE,pointer(param1))=0;
+end;
+
+Function KDSBORDER(fd:longint;param1 : longint):boolean;
+{IO('K',13 /* int */));
+ }
+
+Begin
+ KDSBORDER:=FpIoctl(fd,nr_KDSBORDER,pointer(param1))=0;
+end;
+{$endif}
+Function KDGKBSTATE(fd:longint;var param1 : longint):boolean;
+{IOR('K',19,sizeof(int) }
+
+Begin
+ KDGKBSTATE:=FpIoctl(fd,nr_KDGKBSTATE,@param1)=0;
+end;
+
+Function KDSKBSTATE(fd:longint;param1 : longint):boolean;
+{IO('K',20 /* int */));
+ }
+
+Begin
+ KDSKBSTATE:=FpIoctl(fd,nr_KDSKBSTATE,pointer(param1))=0;
+end;
+
+Function KDENABIO(fd:longint):boolean;
+{IO('K',60));
+ }
+
+Begin
+ KDENABIO:=FpIoctl(fd,nr_KDENABIO,nil)=0;
+end;
+
+Function KDDISABIO(fd:longint):boolean;
+{IO('K',61));
+ }
+
+Begin
+ KDDISABIO:=FpIoctl(fd,nr_KDDISABIO,nil)=0;
+end;
+
+Function KIOCSOUND(fd:longint;param1 : longint):boolean;
+{IO('K',63 /* int */));
+ }
+
+Begin
+ KIOCSOUND:=FpIoctl(fd,nr_KIOCSOUND,pointer(param1))=0;
+end;
+
+Function KDGKBTYPE(fd:longint;var param1 : longint):boolean;
+{IOR('K',64,sizeof(int) }
+
+Begin
+ KDGKBTYPE:=FpIoctl(fd,nr_KDGKBTYPE,@param1)=0;
+end;
+
+Function KDGETLED(fd:longint;var param1 : longint):boolean;
+{IOR('K',65,sizeof(int) }
+
+Begin
+ KDGETLED:=FpIoctl(fd,nr_KDGETLED,@param1)=0;
+end;
+
+Function KDSETLED(fd:longint;param1 : longint):boolean;
+{IO('K',66 /* int */));
+ }
+
+Begin
+ KDSETLED:=FpIoctl(fd,nr_KDSETLED,pointer(param1))=0;
+end;
+
+Function KDSETRAD(fd:longint;param1 : longint):boolean;
+{IO('K',67 /* int */));
+ }
+
+Begin
+ KDSETRAD:=FpIoctl(fd,nr_KDSETRAD,pointer(param1))=0;
+end;
+{$ifndef definconsole}
+
+Function KDRASTER(fd:longint;var param1 : scr_size_t):boolean;
+{IOW('K',100,sizeof(scr_size_t) }
+
+Begin
+ KDRASTER:=FpIoctl(fd,nr_KDRASTER,@param1)=0;
+end;
+{$endif}
+Function KDGKBINFO(fd:longint;var param1 : keyboard_info_t):boolean;
+{IOR('K',101,sizeof(keyboard_info_t) }
+
+Begin
+ KDGKBINFO:=FpIoctl(fd,nr_KDGKBINFO,@param1)=0;
+end;
+
+Function KDSETREPEAT(fd:longint;var param1 : keyboard_repeat_t):boolean;
+{IOW('K',102,sizeof(keyboard_repeat_t) }
+
+Begin
+ KDSETREPEAT:=FpIoctl(fd,nr_KDSETREPEAT,@param1)=0;
+end;
+
+Function KDGETREPEAT(fd:longint;var param1 : keyboard_repeat_t):boolean;
+{IOR('K',103,sizeof(keyboard_repeat_t) }
+
+Begin
+ KDGETREPEAT:=FpIoctl(fd,nr_KDGETREPEAT,@param1)=0;
+end;
+
+Function GETFKEY(fd:longint;var param1 : fkeyarg_t):boolean;
+{IOWR('k',0,sizeof(fkeyarg_t) }
+
+Begin
+ GETFKEY:=FpIoctl(fd,nr_GETFKEY,@param1)=0;
+end;
+
+Function SETFKEY(fd:longint;var param1 : fkeyarg_t):boolean;
+{IOWR('k',1,sizeof(fkeyarg_t) }
+
+Begin
+ SETFKEY:=FpIoctl(fd,nr_SETFKEY,@param1)=0;
+end;
+{$ifndef definconsole}
+Function GIO_SCRNMAP(fd:longint;var param1 : scrmap_t):boolean;
+{IOR('k',2,sizeof(scrmap_t) }
+
+Begin
+ GIO_SCRNMAP:=FpIoctl(fd,nr_GIO_SCRNMAP,@param1)=0;
+end;
+
+Function PIO_SCRNMAP(fd:longint;var param1 : scrmap_t):boolean;
+{IOW('k',3,sizeof(scrmap_t) }
+
+Begin
+ PIO_SCRNMAP:=FpIoctl(fd,nr_PIO_SCRNMAP,@param1)=0;
+end;
+{$endif}
+Function GIO_KEYMAP(fd:longint;var param1 : keymap_t):boolean;
+{IOR('k',6,sizeof(keymap_t) }
+
+Begin
+ GIO_KEYMAP:=FpIoctl(fd,nr_GIO_KEYMAP,@param1)=0;
+end;
+
+Function PIO_KEYMAP(fd:longint;var param1 : keymap_t):boolean;
+{IOW('k',7,sizeof(keymap_t) }
+
+Begin
+ PIO_KEYMAP:=FpIoctl(fd,nr_PIO_KEYMAP,@param1)=0;
+end;
+
+Function GIO_DEADKEYMAP(fd:longint;var param1 : accentmap_t):boolean;
+{IOR('k',8,sizeof(accentmap_t) }
+
+Begin
+ GIO_DEADKEYMAP:=FpIoctl(fd,nr_GIO_DEADKEYMAP,@param1)=0;
+end;
+
+Function PIO_DEADKEYMAP(fd:longint;var param1 : accentmap_t):boolean;
+{IOW('k',9,sizeof(accentmap_t) }
+
+Begin
+ PIO_DEADKEYMAP:=FpIoctl(fd,nr_PIO_DEADKEYMAP,@param1)=0;
+end;
+
+Function GIO_KEYMAPENT(fd:longint;var param1 : keyarg_t):boolean;
+{IOWR('k',10,sizeof(keyarg_t) }
+
+Begin
+ GIO_KEYMAPENT:=FpIoctl(fd,nr_GIO_KEYMAPENT,@param1)=0;
+end;
+
+Function PIO_KEYMAPENT(fd:longint;var param1 : keyarg_t):boolean;
+{IOW('k',11,sizeof(keyarg_t) }
+
+Begin
+ PIO_KEYMAPENT:=FpIoctl(fd,nr_PIO_KEYMAPENT,@param1)=0;
+end;
+
+
+
+{----------------------------- mouse.h FpIoctl's ---------------------------}
+
+Function MOUSE_GETSTATUS(fd:longint;var param1 : mousestatus_t):boolean;
+{IOR('M',0,sizeof(mousestatus_t)));
+}
+
+Begin
+ MOUSE_GETSTATUS:=FpIoctl(fd,nr_MOUSE_GETSTATUS,@param1)=0;
+end;
+
+Function MOUSE_GETHWINFO(fd:longint;var param1 : mousehw_t):boolean;
+{IOR('M',1,sizeof(mousehw_t)));
+}
+
+Begin
+ MOUSE_GETHWINFO:=FpIoctl(fd,nr_MOUSE_GETHWINFO,@param1)=0;
+end;
+
+Function MOUSE_GETMODE(fd:longint;var param1 : mousemode_t):boolean;
+{IOR('M',2,sizeof(mousemode_t)));
+}
+
+Begin
+ MOUSE_GETMODE:=FpIoctl(fd,nr_MOUSE_GETMODE,@param1)=0;
+end;
+
+Function MOUSE_SETMODE(fd:longint;var param1 : mousemode_t):boolean;
+{IOW('M',3,sizeof(mousemode_t)));
+}
+
+Begin
+ MOUSE_SETMODE:=FpIoctl(fd,nr_MOUSE_SETMODE,@param1)=0;
+end;
+
+Function MOUSE_GETLEVEL(fd:longint;var param1 : longint):boolean;
+{IOR('M',4,sizeof(int)));
+}
+
+Begin
+ MOUSE_GETLEVEL:=FpIoctl(fd,nr_MOUSE_GETLEVEL,@param1)=0;
+end;
+
+Function MOUSE_SETLEVEL(fd:longint;var param1 : longint):boolean;
+{IOW('M',5,sizeof(int)));
+}
+
+Begin
+ MOUSE_SETLEVEL:=FpIoctl(fd,nr_MOUSE_SETLEVEL,@param1)=0;
+end;
+
+Function MOUSE_GETVARS(fd:longint;var param1 : mousevar_t):boolean;
+{IOR('M',6,sizeof(mousevar_t)));
+}
+
+Begin
+ MOUSE_GETVARS:=FpIoctl(fd,nr_MOUSE_GETVARS,@param1)=0;
+end;
+
+Function MOUSE_SETVARS(fd:longint;var param1 : mousevar_t):boolean;
+{IOW('M',7,sizeof(mousevar_t)));
+}
+
+Begin
+ MOUSE_SETVARS:=FpIoctl(fd,nr_MOUSE_SETVARS,@param1)=0;
+end;
+
+Function MOUSE_READSTATE(fd:longint;var param1 : mousedata_t):boolean;
+{IOWR('M',8,sizeof(mousedata_t)));
+}
+
+Begin
+ MOUSE_READSTATE:=FpIoctl(fd,nr_MOUSE_READSTATE,@param1)=0;
+end;
+
+Function MOUSE_READDATA(fd:longint;var param1 : mousedata_t):boolean;
+{IOWR('M',9,sizeof(mousedata_t)));
+}
+
+Begin
+ MOUSE_READDATA:=FpIoctl(fd,nr_MOUSE_READDATA,@param1)=0;
+end;
+
+Function MOUSE_SETRESOLUTION(fd:longint;var param1 : longint):boolean;
+{IOW('M',10,sizeof(int)));
+}
+
+Begin
+ MOUSE_SETRESOLUTION:=FpIoctl(fd,nr_MOUSE_SETRESOLUTION,@param1)=0;
+end;
+
+Function MOUSE_SETSCALING(fd:longint;var param1 : longint):boolean;
+{IOW('M',11,sizeof(int)));
+}
+
+Begin
+ MOUSE_SETSCALING:=FpIoctl(fd,nr_MOUSE_SETSCALING,@param1)=0;
+end;
+
+Function MOUSE_SETRATE(fd:longint;var param1 : longint):boolean;
+{IOW('M',12,sizeof(int)));
+}
+
+Begin
+ MOUSE_SETRATE:=FpIoctl(fd,nr_MOUSE_SETRATE,@param1)=0;
+end;
+
+Function MOUSE_GETHWID(fd:longint;var param1 : longint):boolean;
+{IOR('M',13,sizeof(int)));
+}
+
+Begin
+ MOUSE_GETHWID:=FpIoctl(fd,nr_MOUSE_GETHWID,@param1)=0;
+end;
+
+end.
diff --git a/rtl/dragonfly/errno.inc b/rtl/dragonfly/errno.inc
new file mode 100644
index 0000000000..c2337fb23e
--- /dev/null
+++ b/rtl/dragonfly/errno.inc
@@ -0,0 +1,143 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 1999-2000 by Michael Van Canneyt,
+ member of the Free Pascal development team.
+
+ 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.
+
+ **********************************************************************}
+{
+
+ Errno.inc : define all error numbers
+
+}
+Const
+
+
+ ESysEPERM = 1; { Operation not permitted }
+ ESysENOENT = 2; { No such file or directory }
+ ESysESRCH = 3; { No such process }
+ ESysEINTR = 4; { Interrupted system call }
+ ESysEIO = 5; { Input/output error }
+ ESysENXIO = 6; { Device not configured }
+ ESysE2BIG = 7; { Argument list too long }
+ ESysENOEXEC = 8; { Exec format error }
+ ESysEBADF = 9; { Bad file descriptor }
+ ESysECHILD = 10; { No child processes }
+ ESysEDEADLK = 11; { Resource deadlock avoided }
+ ESysENOMEM = 12; { Cannot allocate memory }
+ ESysEACCES = 13; { Permission denied }
+ ESysEFAULT = 14; { Bad address }
+ ESysENOTBLK = 15; { Block device required }
+ ESysEBUSY = 16; { Device busy }
+ ESysEEXIST = 17; { File exists }
+ ESysEXDEV = 18; { Cross-device link }
+ ESysENODEV = 19; { Operation not supported by device }
+ ESysENOTDIR = 20; { Not a directory }
+ ESysEISDIR = 21; { Is a directory }
+ ESysEINVAL = 22; { Invalid argument }
+ ESysENFILE = 23; { Too many open files in system }
+ ESysEMFILE = 24; { Too many open files }
+ ESysENOTTY = 25; { Inappropriate ioctl for device }
+ ESysETXTBSY = 26; { Text file busy }
+ ESysEFBIG = 27; { File too large }
+ ESysENOSPC = 28; { No space left on device }
+ ESysESPIPE = 29; { Illegal seek }
+ ESysEROFS = 30; { Read-only file system }
+ ESysEMLINK = 31; { Too many links }
+ ESysEPIPE = 32; { Broken pipe }
+
+{ math software }
+ ESysEDOM = 33; { Numerical argument out of domain }
+ ESysERANGE = 34; { Result too large }
+
+{ non-blocking and interrupt i/o }
+ ESysEAGAIN = 35; { Resource temporarily unavailable }
+ ESysEWOULDBLOCK = ESysEAGAIN; { Operation would block }
+ ESysEINPROGRESS = 36; { Operation now in progress }
+ ESysEALREADY = 37; { Operation already in progress }
+
+{ ipc/network software - - argument errors }
+ ESysENOTSOCK = 38; { Socket operation on non-socket }
+ ESysEDESTADDRREQ = 39; { Destination address required }
+ ESysEMSGSIZE = 40; { Message too long }
+ ESysEPROTOTYPE = 41; { Protocol wrong type for socket }
+ ESysENOPROTOOPT = 42; { Protocol not available }
+ ESysEPROTONOSUPPORT = 43; { Protocol not supported }
+ ESysESOCKTNOSUPPORT = 44; { Socket type not supported }
+ ESysEOPNOTSUPP = 45; { Operation not supported }
+ ESysENOTSUP = ESysEOPNOTSUPP; { Operation not supported }
+ ESysEPFNOSUPPORT = 46; { Protocol family not supported }
+ ESysEAFNOSUPPORT = 47; { Address family not supported by protocol family }
+ ESysEADDRINUSE = 48; { Address already in use }
+ ESysEADDRNOTAVAIL = 49; { Can't assign requested address }
+
+{ ipc/network software - - operational errors }
+ ESysENETDOWN = 50; { Network is down }
+ ESysENETUNREACH = 51; { Network is unreachable }
+ ESysENETRESET = 52; { Network dropped connection on reset }
+ ESysECONNABORTED = 53; { Software caused connection abort }
+ ESysECONNRESET = 54; { Connection reset by peer }
+ ESysENOBUFS = 55; { No buffer space available }
+ ESysEISCONN = 56; { Socket is already connected }
+ ESysENOTCONN = 57; { Socket is not connected }
+ ESysESHUTDOWN = 58; { Can't send after socket shutdown }
+ ESysETOOMANYREFS = 59; { Too many references: can't splice }
+ ESysETIMEDOUT = 60; { Operation timed out }
+ ESysECONNREFUSED = 61; { Connection refused }
+
+ ESysELOOP = 62; { Too many levels of symbolic links }
+ ESysENAMETOOLONG = 63; { File name too long }
+
+{ should be rearranged }
+ ESysEHOSTDOWN = 64; { Host is down }
+ ESysEHOSTUNREACH = 65; { No route to host }
+ ESysENOTEMPTY = 66; { Directory not empty }
+
+{ quotas & mush }
+ ESysEPROCLIM = 67; { Too many processes }
+ ESysEUSERS = 68; { Too many users }
+ ESysEDQUOT = 69; { Disc quota exceeded }
+
+{ Network File System }
+ ESysESTALE = 70; { Stale NFS file handle }
+ ESysEREMOTE = 71; { Too many levels of remote in path }
+ ESysEBADRPC = 72; { RPC struct is bad }
+ ESysERPCMISMATCH = 73; { RPC version wrong }
+ ESysEPROGUNAVAIL = 74; { RPC prog. not avail }
+ ESysEPROGMISMATCH = 75; { Program version wrong }
+ ESysEPROCUNAVAIL = 76; { Bad procedure for program }
+
+ ESysENOLCK = 77; { No locks available }
+ ESysENOSYS = 78; { Function not implemented }
+
+ ESysEFTYPE = 79; { Inappropriate file type or format }
+ ESysEAUTH = 80; { Authentication error }
+ ESysENEEDAUTH = 81; { Need authenticator }
+ ESysEIDRM = 82; { Identifier removed }
+ ESysENOMSG = 83; { No message of desired type }
+ ESysEOVERFLOW = 84; { Value too large to be stored in data type }
+ ESysECANCELED = 85; { Operation canceled }
+ ESysEILSEQ = 86; { Illegal byte sequence }
+ ESysNOATTR = 87; { Attribute not found }
+ ESysEDOOFUS = 88; { Programming Error }
+
+ ESysBADMSG = 89; { Bad message }
+ ESysMULTIHOP = 90; { Multihop attempted }
+ ESysNOLINK = 91; { Link has been severed }
+ ESysPROTO = 92; { Protocol error }
+
+ ESysNOMEDIUM = 93; { linux }
+ ESysUNUSED94 = 94;
+ ESysUNUSED95 = 95;
+ ESysUNUSED96 = 96;
+ ESysUNUSED97 = 97;
+ ESysUNUSED98 = 98;
+
+ ESysASYNC = 99; { XXX }
+ ESysELAST = 99; { Must be equal largest errno }
diff --git a/rtl/dragonfly/errnostr.inc b/rtl/dragonfly/errnostr.inc
new file mode 100644
index 0000000000..28e1ef394a
--- /dev/null
+++ b/rtl/dragonfly/errnostr.inc
@@ -0,0 +1,119 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2005 by Ales Katona
+
+ Contains BSD specific errors for error.pp in rtl/unix
+
+ 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.
+
+ **********************************************************************}
+
+const
+ sys_errn=100;
+ sys_errlist:array[0..sys_errn-1] of pchar = (
+ 'Success', { 0 }
+ 'Operation not permitted', { EPERM }
+ 'No such file or directory', { ENOENT }
+ 'No such process', { ESRCH }
+ 'Interrupted system call', { EINTR }
+ 'I/O error', { EIO }
+ 'No such device or address', { ENXIO }
+ 'Arg list too long', { E2BIG }
+ 'Exec format error', { ENOEXEC }
+ 'Bad file number', { EBADF }
+ 'No child processes', { ECHILD }
+ 'Resource deadlock avoided', { EDEADLK }
+ 'Out of memory', { ENOMEM }
+ 'Permission denied', { EACCES }
+ 'Bad address', { EFAULT }
+ 'Block device required', { ENOTBLK }
+ 'Device or resource busy', { EBUSY }
+ 'File exists', { EEXIST }
+ 'Cross-device link', { EXDEV }
+ 'No such device', { ENODEV }
+ 'Not a directory', { ENOTDIR }
+ 'Is a directory', { EISDIR }
+ 'Invalid argument', { EINVAL }
+ 'File table overflow', { ENFILE }
+ 'Too many open files', { EMFILE }
+ 'Not a typewriter', { ENOTTY }
+ 'Text (code segment) file busy', { ETXTBSY }
+ 'File too large', { EFBIG }
+ 'No space left on device', { ENOSPC }
+ 'Illegal seek', { ESPIPE }
+ 'Read-only file system', { EROFS }
+ 'Too many links', { EMLINK }
+ 'Broken pipe', { EPIPE }
+ 'Math argument out of domain of func', { EDOM }
+ 'Math result not representable', { ERANGE }
+ 'Resource temporarily unavailable', { EAGAIN }
+ 'Operation now in progress', { EINPROGRESS }
+ 'Operation already in progress', { EALREADY }
+ 'Socket operation on non-socket', { ENOTSOCK }
+ 'Destination address required', { EDESTADDRREQ }
+ 'Message too long', { EMSGSIZE }
+ 'Protocol wrong type for socket', { EPROTOTYPE }
+ 'Protocol not available', { ENOPROTOOPT }
+ 'Protocol not supported', { EPROTONOSUPPORT }
+ 'Socket type not supported', { ESOCKTNOSUPPORT }
+ 'Operation not supported', { EOPNOTSUPP }
+ 'Protocol family not supported', { EPFNOSUPPORT }
+ 'Address family not supported by protocol family', { EAFNOSUPPORT }
+ 'Address already in use', { EADDRINUSE }
+ 'Can''t assign requested address', { EADDRNOTAVAIL }
+ 'Network is down', { ENETDOWN }
+ 'Network is unreachable', { ENETUNREACH }
+ 'Network dropped connection on reset', { ENETRESET }
+ 'Software caused connection abort', { ECONNABORTED }
+ 'Connection reset by peer', { ECONNRESET }
+ 'No buffer space available', { ENOBUFS }
+ 'Socket is already connected', { EISCONN }
+ 'Socket is not connected', { ENOTCONN }
+ 'Can''t send after socket shutdown', { ESHUTDOWN }
+ 'Too many references: can''t splice', { ETOOMANYREFS }
+ 'Operation timed out', { ETIMEDOUT }
+ 'Connection refused', { ECONNREFUSED }
+ 'Too many levels of symbolic links', { ELOOP }
+ 'File name too long', { ENAMETOOLONG }
+ 'Host is down', { EHOSTDOWN }
+ 'No route to host', { EHOSTUNREACH }
+ 'Directory not empty', { ENOTEMPTY }
+ 'Too many processes', { EPROCLIM }
+ 'Too many users', { EUSERS }
+ 'Disc quota exceeded', { EDQUOT }
+ 'Stale NFS file handle', { ESTALE }
+ 'Too many levels of remote in path', { EREMOTE }
+ 'RPC struct is bad', { EBADRPC }
+ 'RPC version wrong', { ERPCMISMATCH }
+ 'RPC prog. not avail', { EPROGUNAVAIL }
+ 'Program version wrong', { EPROGMISMATCH }
+ 'Bad procedure for program', { EPROCUNAVAIL }
+ 'No locks available', { ENOLCK }
+ 'Function not implemented', { ENOSYS }
+ 'Inappropriate file type or format', { EFTYPE }
+ 'Authentication error', { EAUTH }
+ 'Need authenticator', { ENEEDAUTH }
+ 'Identifier removed', { EIDRM }
+ 'No message of desired type', { ENOMSG }
+ 'Value too large to be stored in data type', { EOVERFLOW }
+ 'Operation canceled', { ECANCELED }
+ 'Illegal byte sequence', { EILSEQ }
+ 'Attribute not found', { ENOATTR }
+ 'Programming error', { EDOOFUS }
+ 'Bad message', { EBADMSG }
+ 'Multihop attempted', { EMULTIHOP }
+ 'Link has been severed', { ENOLINK }
+ 'Protocol error', { EPROTO }
+ 'No medium found', { ENOMEDIUM }
+ 'Unused 94', { EUNUSED94 }
+ 'Unused 95', { EUNUSED95 }
+ 'Unused 96', { EUNUSED96 }
+ 'Unused 97', { EUNUSED97 }
+ 'Unused 98', { EUNUSED98 }
+ 'XXX' { EASYNC }
+);
diff --git a/rtl/dragonfly/pmutext.inc b/rtl/dragonfly/pmutext.inc
new file mode 100644
index 0000000000..b609b4c239
--- /dev/null
+++ b/rtl/dragonfly/pmutext.inc
@@ -0,0 +1,18 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 1999-2000 by Peter Vreman
+ member of the Free Pascal development team.
+
+ 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.
+
+ **********************************************************************}
+
+{ definition of pthread_mutex_t, because needed in both ptypes.inc and }
+{ in sysosh.inc }
+
+pointer;
diff --git a/rtl/dragonfly/pthread.inc b/rtl/dragonfly/pthread.inc
new file mode 100644
index 0000000000..c7f5af4901
--- /dev/null
+++ b/rtl/dragonfly/pthread.inc
@@ -0,0 +1,121 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 1999-2000 by Peter Vreman
+ member of the Free Pascal development team.
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This file contains a pthread.h headerconversion,
+ and should contain an interface to the threading library to be
+ used by systhrd, preferably in a somewhat compatible notation
+ (compared to the other OSes).
+
+ As a start, I simply used libc_r
+
+ 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.
+
+ **********************************************************************}
+
+CONST PTHREAD_EXPLICIT_SCHED = 0;
+ PTHREAD_CREATE_DETACHED = 1;
+ PTHREAD_SCOPE_PROCESS = 0;
+ SEM_SAFE = 255;
+
+ TYPE
+ ppthread_t = ^pthread_t;
+ ppthread_key_t = ^pthread_key_t;
+ ppthread_mutex_t= ^pthread_mutex_t;
+ ppthread_attr_t = ^pthread_attr_t;
+ ppthread_cond_t = ^pthread_cond_t;
+ ppthread_condattr_t = ^pthread_condattr_t;
+
+ __destr_func_t = procedure (p :pointer);cdecl;
+ __startroutine_t= function (p :pointer):pointer;cdecl;
+ ppthread_mutexattr_t = ^pthread_mutexattr_t;
+ ppthread_mutex_attr_t = ^pthread_mutexattr_t;
+
+{
+ From FreeBSD 8.2 sys/_semaphore.h
+}
+
+(*
+struct sem {
+#define SEM_MAGIC ((u_int32_t) 0x09fa4012)
+ u_int32_t magic;
+ pthread_mutex_t lock;
+ pthread_cond_t gtzero;
+ u_int32_t count;
+ u_int32_t nwaiters;
+#define SEM_USER (NULL)
+ semid_t semid; /* semaphore id if kernel (shared) semaphore */
+ int syssem; /* 1 if kernel (shared) semaphore */
+ LIST_ENTRY(sem) entry;
+ struct sem **backpointer;
+}; *)
+ semid_t = pointer;
+ psem_t = ^sem_t;
+ ppsem_t = ^psem_t;
+ sem_t = record
+ magic : cuint32;
+ lock : pthread_mutex_t;
+ gtzero : pthread_cond_t;
+ count : cuint32;
+ nwaiters: cuint32;
+ semid : semid_t;
+ sysse : cint;
+ entry : psem_t;
+ backpointer : ppsem_t;
+ spare : array[0..SEM_SAFE] of char;
+
+ end;
+
+ TSemaphore = sem_t;
+ PSemaphore = ^TSemaphore;
+
+function pthread_getspecific (t : pthread_key_t):pointer; cdecl; external;
+function pthread_setspecific (t : pthread_key_t;p:pointer):cint; cdecl; external;
+function pthread_key_create (p : ppthread_key_t;f: __destr_func_t):cint; cdecl;external;
+function pthread_attr_init (p : ppthread_attr_t):cint; cdecl; external;
+function pthread_attr_setinheritsched(p : ppthread_attr_t;i:cint):cint; cdecl; external;
+function pthread_attr_setscope (p : ppthread_attr_t;i:cint):cint;cdecl;external;
+function pthread_attr_setdetachstate(p : ppthread_attr_t;i:cint):cint;cdecl;external;
+function pthread_attr_setstacksize (p : ppthread_attr_t; stacksize: size_t):cint;cdecl;external;
+function pthread_attr_destroy (p : ppthread_attr_t):cint;cdecl;external;
+function pthread_create ( p: ppthread_t;attr : ppthread_attr_t;f:__startroutine_t;arg:pointer):cint;cdecl;external;
+procedure pthread_exit ( p: pointer); cdecl;external;
+function pthread_self:pthread_t; cdecl;external;
+function pthread_mutex_init (p:ppthread_mutex_t;o:ppthread_mutex_attr_t):cint; cdecl;external;
+function pthread_mutex_destroy (p:ppthread_mutex_attr_t):cint; cdecl;external;
+function pthread_mutex_lock (p:ppthread_mutex_attr_t):cint; cdecl;external;
+function pthread_mutex_trylock (p:ppthread_mutex_attr_t):cint; cdecl;external;
+function pthread_mutex_unlock (p:ppthread_mutex_attr_t):cint; cdecl;external;
+function pthread_cancel(_para1:pthread_t):cint;cdecl;external;
+function pthread_detach(_para1:pthread_t):cint;cdecl;external;
+function pthread_join(_para1:pthread_t; _para2:Ppointer):cint;cdecl;external;
+function pthread_cond_destroy(_para1:Ppthread_cond_t):cint;cdecl;external;
+function pthread_cond_init(_para1:Ppthread_cond_t;_para2:Ppthread_condattr_t):cint;cdecl;external;
+function pthread_cond_signal(_para1:Ppthread_cond_t):cint;cdecl;external;
+function pthread_cond_broadcast(_para1:Ppthread_cond_t):cint;cdecl;external;
+function pthread_cond_wait(_para1:Ppthread_cond_t;_para2:Ppthread_mutex_t):cint;cdecl;external;
+function pthread_kill(__thread:pthread_t; __signo:cint):cint;cdecl;external;
+function pthread_sigmask(how: cint; nset: psigset; oset: psigset): cint; cdecl; external;
+
+function sem_init(__sem:Psem_t; __pshared:cint;__value:dword):cint;cdecl; external;
+function sem_destroy(__sem:Psem_t):cint;cdecl;external ;
+function sem_close(__sem:Psem_t):cint;cdecl;external ;
+function sem_unlink(__name:Pchar):cint;cdecl;external ;
+function sem_wait(__sem:Psem_t):cint;cdecl;external ;
+function sem_trywait(__sem:Psem_t):cint;cdecl;external ;
+function sem_post(__sem:Psem_t):cint;cdecl;external ;
+function sem_getvalue(__sem:Psem_t; __sval:Pcint):cint;cdecl;external;
+function pthread_mutexattr_init(_para1:Ppthread_mutexattr_t):cint;cdecl;external;
+function pthread_mutexattr_destroy(_para1:Ppthread_mutexattr_t):cint;cdecl;external;
+function pthread_mutexattr_gettype(_para1:Ppthread_mutexattr_t; _para2:Pcint):cint;cdecl;external;
+function pthread_mutexattr_settype(_para1:Ppthread_mutexattr_t; _para2:cint):cint;cdecl;external;
+function pthread_cond_timedwait(__cond:ppthread_cond_t; __mutex:ppthread_mutex_t; __abstime:ptimespec):longint;cdecl;external;
+
+
+
diff --git a/rtl/dragonfly/ptypes.inc b/rtl/dragonfly/ptypes.inc
new file mode 100644
index 0000000000..0592812b21
--- /dev/null
+++ b/rtl/dragonfly/ptypes.inc
@@ -0,0 +1,236 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2001 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.
+
+ **********************************************************************}
+
+{***********************************************************************}
+{ POSIX TYPE DEFINITIONS }
+{***********************************************************************}
+
+{$I ctypes.inc}
+{$packrecords c}
+
+const
+ SEM_SAFE=255;
+type
+
+ dev_t = cuint32; { used for device numbers }
+ TDev = dev_t;
+ pDev = ^dev_t;
+
+ gid_t = cuint32; { used for group IDs }
+ TGid = gid_t;
+ pGid = ^gid_t;
+ TIOCtlRequest = cuLong;
+
+ ino_t = cuint64; { used for inode numbers }
+ TIno = ino_t;
+ pIno = ^ino_t;
+
+ mode_t = cuint16; { used for file attributes }
+ TMode = mode_t;
+ pMode = ^mode_t;
+
+ nlink_t = cuint32; { used for link counts }
+ TnLink = nlink_t;
+ pnLink = ^nlink_t;
+
+ off_t = cint64; { used for file sizes }
+ TOff = off_t;
+ pOff = ^off_t;
+
+ pid_t = cint32; { used as process identifier }
+ TPid = pid_t;
+ pPid = ^pid_t;
+
+{$ifdef CPU64}
+ size_t = cuint64;
+{$else}
+ size_t = cuint32; { as definied in the C standard}
+{$endif}
+ TSize = size_t;
+ pSize = ^size_t;
+ pSize_t = ^size_t;
+
+{$ifdef CPU64}
+ ssize_t = cint64; { used by function for returning number of bytes }
+{$else}
+ ssize_t = cint32; { used by function for returning number of bytes}
+{$endif}
+
+ TsSize = ssize_t;
+ psSize = ^ssize_t;
+
+ uid_t = cuint32; { used for user ID type }
+ TUid = Uid_t;
+ pUid = ^Uid_t;
+
+ wint_t = cint32;
+ wchar_t = cint32;
+ pwchar_t = ^wchar_t;
+
+
+ clock_t = culong;
+ TClock = clock_t;
+ pClock = ^clock_t;
+
+ time_t = clong; { used for returning the time }
+ pTime = ^time_t;
+ ptime_t = ^time_t;
+
+ socklen_t= cuint32;
+ TSocklen = socklen_t;
+ pSocklen = ^socklen_t;
+
+ timeval = packed record
+ tv_sec,tv_usec:clong;
+ end;
+ ptimeval = ^timeval;
+ TTimeVal = timeval;
+
+ timespec = packed record
+ tv_sec : time_t; // should be time_t, bug compability
+ tv_nsec : clong;
+ end;
+ ptimespec= ^timespec;
+ Ttimespec= timespec;
+
+ pthread_t_rec = record end;
+ pthread_attr_t_rec = record end;
+// pthread_mutex_t_rec = record end;
+ pthread_mutexattr_t_rec = record end;
+ pthread_cond_t_rec = record end;
+ pthread_condattr_t_rec = record end;
+ pthread_rwlock_t_rec = record end;
+ pthread_rwlockattr_t_rec = record end;
+
+ pthread_t = ^pthread_t_rec;
+ pthread_attr_t = ^pthread_attr_t_rec;
+ pthread_mutex_t = {$i pmutext.inc}
+ pthread_mutexattr_t = ^pthread_mutexattr_t_rec;
+ pthread_cond_t = ^pthread_cond_t_rec;
+ pthread_condattr_t = ^pthread_condattr_t_rec;
+ pthread_key_t = cint;
+ pthread_rwlock_t = ^pthread_rwlock_t_rec;
+ pthread_rwlockattr_t = ^pthread_rwlockattr_t_rec;
+
+ psem_t = ^sem_t;
+ ppsem_t= ^psem_t;
+ semid_t= pointer;
+ sem_t = record
+ magic : cuint32;
+ lock : pthread_mutex_t;
+ gtzero : pthread_cond_t;
+ count : cuint32;
+ nwaiters: cuint32;
+ semid : semid_t;
+ sysse : cint;
+ entry : psem_t;
+ backpointer : ppsem_t;
+ spare : array[0..SEM_SAFE] of char;
+
+ end;
+
+ rlim_t = int64;
+ TRlim = rlim_t;
+ {
+ Mutex types (Single UNIX Specification, Version 2, 1997).
+
+ Note that a mutex attribute with one of the following types:
+
+ PTHREAD_MUTEX_NORMAL
+ PTHREAD_MUTEX_RECURSIVE
+ MUTEX_TYPE_FAST (deprecated)
+ MUTEX_TYPE_COUNTING_FAST (deprecated)
+
+ will deviate from POSIX specified semantics.
+ }
+
+ pthread_mutextype = (
+ { Default POSIX mutex }
+ _PTHREAD_MUTEX_ERRORCHECK := 1,
+ { Recursive mutex }
+ _PTHREAD_MUTEX_RECURSIVE := 2,
+ { No error checking }
+ _PTHREAD_MUTEX_NORMAL := 3,
+ _MUTEX_TYPE_MAX
+ );
+
+type
+ fsid_t = array[0..1] of cint32;
+
+Const
+ MNAMELEN = 80;
+ MFSNAMELEN = 16;
+
+Type TStatFS = Record
+ spare2 : clong; { placeholder }
+ bsize : clong; { fundamental filesystem fragment size }
+ iosize : clong; { optimal transfer block size }
+ blocks : clong; { total data blocks in filesystem }
+ bfree : clong; { free blocks in filesystem }
+ bavail : clong; { free blocks avail to non-superuser }
+ files : clong; { total file nodes in filesystem }
+ ffree : clong; { free file nodes in filesystem }
+ fsid : fsid_t; { filesystem id }
+ fowner : tuid; { user that mounted the filesystem }
+ ftype : cint32; { type of filesystem }
+ fflags : cint32; { copy of mount exported flags }
+ fsyncwrites : clong; { count of sync writes since mount }
+ fasyncwrites : clong; { count of async writes since mount }
+ fstypename : array[0..MFSNAMELEN-1] of char; { filesystem type name }
+ mntonname : array[0.. MNAMELEN-1] of char; { directory on which mounted }
+ fsyncreads : clong; { count of sync reads since mount }
+ fasyncreads : clong; { count of async reads since mount }
+ fspares1 : cshort; { unused spare }
+ mntfromname : array[0.. MNAMELEN-1] of char; { mounted filesystem }
+ fspares2 : cshort; { unused spare }
+ fspares3 : clong; { unused spare }
+ fspares4 : clong; { unused spare }
+ end;
+ PStatFS=^TStatFS;
+
+ mbstate_t = record
+ case byte of
+ 0: (__mbstate8: array[0..127] of char);
+ 1: (_mbstateL: cint64); { for alignment }
+ end;
+ pmbstate_t = ^mbstate_t;
+
+ ITimerVal= Record
+ It_Interval,
+ It_Value : TimeVal;
+ end;
+
+const
+ _PTHREAD_MUTEX_DEFAULT = _PTHREAD_MUTEX_ERRORCHECK;
+ _MUTEX_TYPE_FAST = _PTHREAD_MUTEX_NORMAL;
+ _MUTEX_TYPE_COUNTING_FAST = _PTHREAD_MUTEX_RECURSIVE;
+
+ _PTHREAD_KEYS_MAX = 256;
+ _PTHREAD_STACK_MIN = 1024;
+
+ { System limits, POSIX value in parentheses, used for buffer and stack allocation }
+ ARG_MAX = 262144; {4096} { Maximum number of argument size }
+ NAME_MAX = 255; {14} { Maximum number of bytes in filename }
+ PATH_MAX = 1024; {255} { Maximum number of bytes in pathname }
+ SYS_NMLN = 32; { BSD utsname struct limit, kernel mode }
+ SIG_MAXSIG = 128; { highest signal version }
+
+ { For getting/setting priority }
+ Prio_Process = 0;
+ Prio_PGrp = 1;
+ Prio_User = 2;
+
diff --git a/rtl/morphos/rtldefs.inc b/rtl/dragonfly/rtldefs.inc
index 3376428f5e..3376428f5e 100644
--- a/rtl/morphos/rtldefs.inc
+++ b/rtl/dragonfly/rtldefs.inc
diff --git a/rtl/morphos/timer.pp b/rtl/dragonfly/si_crt.pp
index 47f74ee60a..08e819d8d5 100644
--- a/rtl/morphos/timer.pp
+++ b/rtl/dragonfly/si_crt.pp
@@ -1,11 +1,7 @@
{
This file is part of the Free Pascal run time library.
- Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
-
- timer.device interface unit for MorphOS/PowerPC
-
- MorphOS port was done on a free Pegasos II/G4 machine
- provided by Genesi S.a.r.l. <www.genesi.lu>
+ Copyright (c) 2005 by Michael Van Canneyt, Peter Vreman,
+ & Daniel Mantione, members of the Free Pascal development team.
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
@@ -16,20 +12,15 @@
**********************************************************************}
-unit timer;
+unit si_crt;
interface
-uses
- exec;
-
-var
- TimerBase : Pointer;
-
-{$include timerd.inc}
-{$include timerf.inc}
+{$i si_intf.inc}
implementation
-begin
+{$i sysnr.inc}
+{$i si_crt.inc}
+
end.
diff --git a/rtl/dragonfly/si_intf.inc b/rtl/dragonfly/si_intf.inc
new file mode 100644
index 0000000000..469d15927e
--- /dev/null
+++ b/rtl/dragonfly/si_intf.inc
@@ -0,0 +1,7 @@
+{$SMARTLINK OFF}
+
+var
+ initialstkptr: pointer; public name '__stkptr';
+ operatingsystem_parameter_envp: ppchar; public name 'operatingsystem_parameter_envp';
+ operatingsystem_parameter_argc: ptruint; public name 'operatingsystem_parameter_argc';
+ operatingsystem_parameter_argv: ppchar; public name 'operatingsystem_parameter_argv';
diff --git a/rtl/dragonfly/sysctlh.inc b/rtl/dragonfly/sysctlh.inc
new file mode 100644
index 0000000000..93913a2fe1
--- /dev/null
+++ b/rtl/dragonfly/sysctlh.inc
@@ -0,0 +1,898 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2001 by Marco van de Voort
+
+ The OS dependant sysctl constants.
+
+ 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.
+
+ **********************************************************************}
+
+
+CONST
+
+{
+ * Definitions for sysctl call. The sysctl call uses a hierarchical name
+ * for objects that can be examined or modified. The name is expressed as
+ * a sequence of integers. Like a file path name, the meaning of each
+ * component depends on its place in the hierarchy. The top-level and kern
+ * identifiers are defined here, and other identifiers are defined in the
+ * respective subsystem header files.
+}
+
+ CTL_MAXNAME = 12; { largest number of components supported }
+
+{
+ * Each subsystem defined by sysctl defines a list of variables
+ * for that subsystem. Each name is either a node with further
+ * levels defined below it, or it is a leaf of some particular
+ * type given below. Each sysctl level defines a set of name/type
+ * pairs to be used by sysctl(1) in manipulating the subsystem.
+}
+
+Type
+ ctlname = record
+ ctl_name : pchar; { subsystem name }
+ ctl_type : cint { type of name }
+ End;
+
+Const
+ CTLTYPE = $f; { Mask for the type }
+ CTLTYPE_NODE = 1; { name is a node }
+ CTLTYPE_INT = 2; { name describes an integer }
+ CTLTYPE_STRING = 3; { name describes a string }
+ CTLTYPE_QUAD = 4; { name describes a 64-bit number }
+ CTLTYPE_OPAQUE = 5; { name describes a structure }
+ CTLTYPE_STRUCT = CTLTYPE_OPAQUE; { name describes a structure }
+ CTLTYPE_UINT = 6; { name describes an unsigned integer }
+ CTLTYPE_LONG = 7; { name describes a long }
+ CTLTYPE_ULONG = 8; { name describes an unsigned long }
+ CTLTYPE_UQUAD = 9; { name describes an unsigned 64-bit number }
+
+ CTLFLAG_RD = $80000000; { Allow reads of variable }
+ CTLFLAG_WR = $40000000; { Allow writes to the variable }
+ CTLFLAG_RW = (CTLFLAG_RD OR CTLFLAG_WR);
+ CTLFLAG_NOLOCK = $20000000; { XXX Don't Lock }
+ CTLFLAG_ANYBODY = $10000000; { All users can set this var }
+ CTLFLAG_SECURE = $8000000; { Permit set only if securelevel<=0 }
+ CTLFLAG_PRISON = $4000000; { Prisoned roots can fiddle }
+ CTLFLAG_DYN = $2000000; { Dynamic oid - can be freed }
+ CTLFLAG_SKIP = $1000000; { Skip this sysctl when listing }
+ CTLMASK_SECURE = $F00000; { Secure level }
+ CTLFLAG_DYING = $1000; { Oid is being removed }
+
+{
+ * USE THIS instead of a hardwired number from the categories below
+ * to get dynamically assigned sysctl entries using the linker-set
+ * technology. This is the way nearly all new sysctl variables should
+ * be implemented.
+ * e.g. SYSCTL_INT(_parent, OID_AUTO, name, CTLFLAG_RW, &variable, 0, "");
+ }
+ OID_AUTO = (-1);
+
+{
+ * Top-level identifiers
+ }
+ CTL_UNSPEC = 0;
+ CTL_KERN = 1; { "high kernel": proc, limits }
+ CTL_VM = 2; { virtual memory }
+ CTL_VFS = 3; { file system, mount type is next }
+ CTL_NET = 4; { network, see socket.h }
+ CTL_DEBUG = 5; { debugging parameters }
+ CTL_HW = 6; { generic cpu/io }
+ CTL_MACHDEP = 7; { machine dependent }
+ CTL_USER = 8; { user-level }
+ CTL_P1003_1B = 9; { POSIX 1003.1B }
+ CTL_LWKT = 10; { light-weight kernel threads }
+ CTL_MAXID = 11; { number of top-level ids }
+
+
+{
+ * CTL_KERN identifiers
+ }
+ KERN_OSTYPE = 1; { string: system version }
+ KERN_OSRELEASE = 2; { string: system release }
+ KERN_OSREV = 3; { int: system revision }
+ KERN_VERSION = 4; { string: compile time info }
+ KERN_MAXVNODES = 5; { int: max vnodes }
+ KERN_MAXPROC = 6; { int: max processes }
+ KERN_MAXFILES = 7; { int: max open files }
+ KERN_ARGMAX = 8; { int: max arguments to exec }
+ KERN_SECURELVL = 9; { int: system security level }
+ KERN_HOSTNAME = 10; { string: hostname }
+ KERN_HOSTID = 11; { int: host identifier }
+ KERN_CLOCKRATE = 12; { struct: struct clockrate }
+ KERN_VNODE = 13; { struct: vnode structures }
+ KERN_PROC = 14; { struct: process entries }
+ KERN_FILE = 15; { struct: file entries }
+ KERN_PROF = 16; { node: kernel profiling info }
+ KERN_POSIX1 = 17; { int: POSIX.1 version }
+ KERN_NGROUPS = 18; { int: # of supplemental group ids }
+ KERN_JOB_CONTROL = 19; { int: is job control available }
+ KERN_SAVED_IDS = 20; { int: saved set-user/group-ID }
+ KERN_BOOTTIME = 21; { struct: time kernel was booted }
+ KERN_NISDOMAINNAME = 22; { string: YP domain name }
+ KERN_UPDATEINTERVAL = 23; { int: update process sleep time }
+ KERN_OSRELDATE = 24; { int: OS release date }
+ KERN_NTP_PLL = 25; { node: NTP PLL control }
+ KERN_BOOTFILE = 26; { string: name of booted kernel }
+ KERN_MAXFILESPERPROC = 27; { int: max open files per proc }
+ KERN_MAXPROCPERUID = 28; { int: max processes per uid }
+ KERN_DUMPDEV = 29; { dev_t: device to dump on }
+ KERN_IPC = 30; { node: anything related to IPC }
+ KERN_DUMMY = 31; { unused }
+ KERN_PS_STRINGS = 32; { int: address of PS_STRINGS }
+ KERN_USRSTACK = 33; { int: address of USRSTACK }
+ KERN_LOGSIGEXIT = 34; { int: do we log sigexit procs? }
+ KERN_IOV_MAX = 35; { int: value of UIO_MAXIOV }
+ KERN_MAXPOSIXLOCKSPERUID= 36; { int: max POSIX locks per uid }
+ KERN_MAXID = 37; { number of valid kern ids }
+
+
+{
+ * KERN_PROC subtypes
+ }
+ KERN_PROC_ALL = 0; { everything }
+ KERN_PROC_PID = 1; { by process id }
+ KERN_PROC_PGRP = 2; { by process group id }
+ KERN_PROC_SESSION = 3; { by session of pid }
+ KERN_PROC_TTY = 4; { by controlling tty }
+ KERN_PROC_UID = 5; { by effective uid }
+ KERN_PROC_RUID = 6; { by real uid }
+ KERN_PROC_ARGS = 7; { get/set arguments/proctitle }
+ KERN_PROC_CWD = 8; { get cwd }
+ KERN_PROC_PATHNAME = 9; { path to executable }
+
+{
+ * KERN_IPC identifiers
+ }
+ KIPC_MAXSOCKBUF = 1; { int: max size of a socket buffer }
+ KIPC_SOCKBUF_WASTE = 2; { int: wastage factor in sockbuf }
+ KIPC_SOMAXCONN = 3; { int: max length of connection q }
+ KIPC_MAX_LINKHDR = 4; { int: max length of link header }
+ KIPC_MAX_PROTOHDR = 5; { int: max length of network header }
+ KIPC_MAX_HDR = 6; { int: max total length of headers }
+ KIPC_MAX_DATALEN = 7; { int: max length of data? }
+ KIPC_MBSTAT = 8; { struct: mbuf usage statistics }
+ KIPC_NMBCLUSTERS = 9; { int: maximum mbuf clusters }
+
+{
+ * CTL_HW identifiers
+ }
+ HW_MACHINE = 1; { string: machine class }
+ HW_MODEL = 2; { string: specific machine model }
+ HW_NCPU = 3; { int: number of cpus }
+ HW_BYTEORDER = 4; { int: machine byte order }
+ HW_PHYSMEM = 5; { int: total memory }
+ HW_USERMEM = 6; { int: non-kernel memory }
+ HW_PAGESIZE = 7; { int: software page size }
+ HW_DISKNAMES = 8; { strings: disk drive names }
+ HW_DISKSTATS = 9; { struct: diskstats[] }
+ HW_FLOATINGPT = 10; { int: has HW floating point? }
+ HW_MACHINE_ARCH = 11; { string: machine architecture }
+ HW_MACHINE_PLATFORM = 12; { string: platform architecture }
+ HW_SENSORS = 13; { node: hardware sensors }
+ HW_MAXID = 14; { number of valid hw ids }
+
+
+{
+ * CTL_USER definitions
+ }
+ USER_CS_PATH = 1; { string: _CS_PATH }
+ USER_BC_BASE_MAX = 2; { int: BC_BASE_MAX }
+ USER_BC_DIM_MAX = 3; { int: BC_DIM_MAX }
+ USER_BC_SCALE_MAX = 4; { int: BC_SCALE_MAX }
+ USER_BC_STRING_MAX = 5; { int: BC_STRING_MAX }
+ USER_COLL_WEIGHTS_MAX = 6; { int: COLL_WEIGHTS_MAX }
+ USER_EXPR_NEST_MAX = 7; { int: EXPR_NEST_MAX }
+ USER_LINE_MAX = 8; { int: LINE_MAX }
+ USER_RE_DUP_MAX = 9; { int: RE_DUP_MAX }
+ USER_POSIX2_VERSION = 10; { int: POSIX2_VERSION }
+ USER_POSIX2_C_BIND = 11; { int: POSIX2_C_BIND }
+ USER_POSIX2_C_DEV = 12; { int: POSIX2_C_DEV }
+ USER_POSIX2_CHAR_TERM = 13; { int: POSIX2_CHAR_TERM }
+ USER_POSIX2_FORT_DEV = 14; { int: POSIX2_FORT_DEV }
+ USER_POSIX2_FORT_RUN = 15; { int: POSIX2_FORT_RUN }
+ USER_POSIX2_LOCALEDEF = 16; { int: POSIX2_LOCALEDEF }
+ USER_POSIX2_SW_DEV = 17; { int: POSIX2_SW_DEV }
+ USER_POSIX2_UPE = 18; { int: POSIX2_UPE }
+ USER_STREAM_MAX = 19; { int: POSIX2_STREAM_MAX }
+ USER_TZNAME_MAX = 20; { int: POSIX2_TZNAME_MAX }
+ USER_MAXID = 21; { number of valid user ids }
+
+
+ CTL_P1003_1B_ASYNCHRONOUS_IO = 1 ; { boolean }
+ CTL_P1003_1B_MAPPED_FILES = 2 ; { boolean }
+ CTL_P1003_1B_MEMLOCK = 3 ; { boolean }
+ CTL_P1003_1B_MEMLOCK_RANGE = 4 ; { boolean }
+ CTL_P1003_1B_MEMORY_PROTECTION = 5 ; { boolean }
+ CTL_P1003_1B_MESSAGE_PASSING = 6 ; { boolean }
+ CTL_P1003_1B_PRIORITIZED_IO = 7 ; { boolean }
+ CTL_P1003_1B_PRIORITY_SCHEDULING = 8 ; { boolean }
+ CTL_P1003_1B_REALTIME_SIGNALS = 9 ; { boolean }
+ CTL_P1003_1B_SEMAPHORES = 10; { boolean }
+ CTL_P1003_1B_FSYNC = 11; { boolean }
+ CTL_P1003_1B_SHARED_MEMORY_OBJECTS = 12; { boolean }
+ CTL_P1003_1B_SYNCHRONIZED_IO = 13; { boolean }
+ CTL_P1003_1B_TIMERS = 14; { boolean }
+ CTL_P1003_1B_AIO_LISTIO_MAX = 15; { int }
+ CTL_P1003_1B_AIO_MAX = 16; { int }
+ CTL_P1003_1B_AIO_PRIO_DELTA_MAX = 17; { int }
+ CTL_P1003_1B_DELAYTIMER_MAX = 18; { int }
+ CTL_P1003_1B_MQ_OPEN_MAX = 19; { int }
+ CTL_P1003_1B_PAGESIZE = 20; { int }
+ CTL_P1003_1B_RTSIG_MAX = 21; { int }
+ CTL_P1003_1B_SEM_NSEMS_MAX = 22; { int }
+ CTL_P1003_1B_SEM_VALUE_MAX = 23; { int }
+ CTL_P1003_1B_SIGQUEUE_MAX = 24; { int }
+ CTL_P1003_1B_TIMER_MAX = 25; { int }
+
+ CTL_P1003_1B_MAXID = 26;
+
+{ LongestStringInCtlNames = 21;}
+
+
+Const
+
+ CTL_NAMES : Array[0..10] OF CtlNameRec = (
+ ( Name: ''; CtlType: 0 ),
+ ( Name: 'kern'; CtlType : CTLTYPE_NODE ),
+ ( Name: 'vm'; CtlType : CTLTYPE_NODE ),
+ ( Name: 'vfs'; CtlType : CTLTYPE_NODE ),
+ ( Name: 'net'; CtlType : CTLTYPE_NODE ),
+ ( Name: 'debug'; CtlType : CTLTYPE_NODE ),
+ ( Name: 'hw'; CtlType : CTLTYPE_NODE ),
+ ( Name: 'machdep'; CtlType : CTLTYPE_NODE ),
+ ( Name: 'user'; CtlType : CTLTYPE_NODE ),
+ ( Name: 'p1003_1b'; CtlType : CTLTYPE_NODE ),
+ ( Name: 'lwkt'; CtlType : CTLTYPE_NODE));
+
+ CTL_KERN_NAME : Array[0..35] OF CtlNameRec = (
+ ( Name: ''; CtlType: 0 ),
+ ( Name: 'ostype'; CtlType : CTLTYPE_STRING ),
+ ( Name: 'osrelease'; CtlType : CTLTYPE_STRING ),
+ ( Name: 'osrevision'; CtlType : CTLTYPE_INT ),
+ ( Name: 'version'; CtlType : CTLTYPE_STRING ),
+ ( Name: 'maxvnodes'; CtlType : CTLTYPE_INT ),
+ ( Name: 'maxproc'; CtlType : CTLTYPE_INT ),
+ ( Name: 'maxfiles'; CtlType : CTLTYPE_INT ),
+ ( Name: 'argmax'; CtlType : CTLTYPE_INT ),
+ ( Name: 'securelevel'; CtlType : CTLTYPE_INT ),
+ ( Name: 'hostname'; CtlType : CTLTYPE_STRING ),
+ ( Name: 'hostid'; CtlType : CTLTYPE_UINT ),
+ ( Name: 'clockrate'; CtlType : CTLTYPE_STRUCT ),
+ ( Name: 'vnode'; CtlType : CTLTYPE_STRUCT ),
+ ( Name: 'proc'; CtlType : CTLTYPE_STRUCT ),
+ ( Name: 'file'; CtlType : CTLTYPE_STRUCT ),
+ ( Name: 'profiling'; CtlType : CTLTYPE_NODE ),
+ ( Name: 'posix1version'; CtlType : CTLTYPE_INT ),
+ ( Name: 'ngroups'; CtlType : CTLTYPE_INT ),
+ ( Name: 'job_control'; CtlType : CTLTYPE_INT ),
+ ( Name: 'saved_ids'; CtlType : CTLTYPE_INT ),
+ ( Name: 'boottime'; CtlType : CTLTYPE_STRUCT ),
+ ( Name: 'nisdomainname'; CtlType : CTLTYPE_STRING ),
+ ( Name: 'update'; CtlType : CTLTYPE_INT ),
+ ( Name: 'osreldate'; CtlType : CTLTYPE_INT ),
+ ( Name: 'ntp_pll'; CtlType : CTLTYPE_NODE ),
+ ( Name: 'bootfile'; CtlType : CTLTYPE_STRING ),
+ ( Name: 'maxfilesperproc'; CtlType : CTLTYPE_INT ),
+ ( Name: 'maxprocperuid'; CtlType : CTLTYPE_INT ),
+ ( Name: 'dumpdev'; CtlType : CTLTYPE_STRUCT ), { we lie; don't print as int }
+ ( Name: 'ipc'; CtlType : CTLTYPE_NODE ),
+ ( Name: 'dummy'; CtlType : CTLTYPE_INT ),
+ ( Name: 'ps_strings'; CtlType : CTLTYPE_INT ),
+ ( Name: 'usrstack'; CtlType : CTLTYPE_INT ),
+ ( Name: 'iov_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'maxposixlocksperuid'; CtlType : CTLTYPE_INT ));
+
+{
+ * CTL_VFS identifiers
+}
+ CTL_VFS_NAMES : array[0..0] of CTLNameRec = (
+ ( Name: 'vfsconf'; CtlType : CTLTYPE_STRUCT ));
+
+
+ CTL_HW_NAMES : array[0..13] of CTLNameRec = (
+ ( Name: ''; CtlType: 0 ),
+ ( Name: 'machine'; CtlType : CTLTYPE_STRING ),
+ ( Name: 'model'; CtlType : CTLTYPE_STRING ),
+ ( Name: 'ncpu'; CtlType : CTLTYPE_INT ),
+ ( Name: 'byteorder'; CtlType : CTLTYPE_INT ),
+ ( Name: 'physmem'; CtlType : CTLTYPE_UINT ),
+ ( Name: 'usermem'; CtlType : CTLTYPE_UINT ),
+ ( Name: 'pagesize'; CtlType : CTLTYPE_INT ),
+ ( Name: 'disknames'; CtlType : CTLTYPE_STRUCT ),
+ ( Name: 'diskstats'; CtlType : CTLTYPE_STRUCT ),
+ ( Name: 'floatingpoint'; CtlType : CTLTYPE_INT ),
+ ( Name: 'arch'; CtlType : CTLTYPE_STRING ),
+ ( Name: 'platform'; CtlType : CTLTYPE_STRING ),
+ ( Name: 'sensors'; CtlType : CTLTYPE_NODE ));
+
+
+ CTL_USER_NAMES : array[0..20] of CTLNameRec = (
+ ( Name :''; CtlType: 0 ),
+ ( Name: 'cs_path'; CtlType : CTLTYPE_STRING ),
+ ( Name: 'bc_base_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'bc_dim_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'bc_scale_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'bc_string_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'coll_weights_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'expr_nest_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'line_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 're_dup_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'posix2_version'; CtlType : CTLTYPE_INT ),
+ ( Name: 'posix2_c_bind'; CtlType : CTLTYPE_INT ),
+ ( Name: 'posix2_c_dev'; CtlType : CTLTYPE_INT ),
+ ( Name: 'posix2_char_term'; CtlType : CTLTYPE_INT ),
+ ( Name: 'posix2_fort_dev'; CtlType : CTLTYPE_INT ),
+ ( Name: 'posix2_fort_run'; CtlType : CTLTYPE_INT ),
+ ( Name: 'posix2_localedef'; CtlType : CTLTYPE_INT ),
+ ( Name: 'posix2_sw_dev'; CtlType : CTLTYPE_INT ),
+ ( Name: 'posix2_upe'; CtlType : CTLTYPE_INT ),
+ ( Name: 'stream_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'tzname_max'; CtlType : CTLTYPE_INT ));
+
+ CTL_P1003_1B_NAMES : array[0..25] of CTLNameRec = (
+ ( Name: ''; CtlType: 0 ),
+ ( Name: 'asynchronous_io'; CtlType : CTLTYPE_INT ),
+ ( Name: 'mapped_files'; CtlType : CTLTYPE_INT ),
+ ( Name: 'memlock'; CtlType : CTLTYPE_INT ),
+ ( Name: 'memlock_range'; CtlType : CTLTYPE_INT ),
+ ( Name: 'memory_protection'; CtlType : CTLTYPE_INT ),
+ ( Name: 'message_passing'; CtlType : CTLTYPE_INT ),
+ ( Name: 'prioritized_io'; CtlType : CTLTYPE_INT ),
+ ( Name: 'priority_scheduling'; CtlType : CTLTYPE_INT ),
+ ( Name: 'realtime_signals'; CtlType : CTLTYPE_INT ),
+ ( Name: 'semaphores'; CtlType : CTLTYPE_INT ),
+ ( Name: 'fsync'; CtlType : CTLTYPE_INT ),
+ ( Name: 'shared_memory_objects'; CtlType : CTLTYPE_INT ),
+ ( Name: 'synchronized_io'; CtlType : CTLTYPE_INT ),
+ ( Name: 'timers'; CtlType : CTLTYPE_INT ),
+ ( Name: 'aio_listio_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'aio_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'aio_prio_delta_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'delaytimer_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'mq_open_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'pagesize'; CtlType : CTLTYPE_INT ),
+ ( Name: 'rtsig_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'nsems_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'sem_value_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'sigqueue_max'; CtlType : CTLTYPE_INT ),
+ ( Name: 'timer_max'; CtlType : CTLTYPE_INT ));
+
+
+const
+{
+ * Types
+}
+ SOCK_STREAM = 1; { stream socket }
+ SOCK_DGRAM = 2; { datagram socket }
+ SOCK_RAW = 3; { raw-protocol interface }
+ SOCK_RDM = 4; { reliably-delivered message }
+ SOCK_SEQPACKET = 5; { sequenced packet stream }
+
+{
+ * Address families.
+}
+ AF_UNSPEC = 0; { unspecified }
+ AF_LOCAL = 1; { local to host (Name:pipes;CtlType: portals) }
+ AF_UNIX = AF_LOCAL; { backward compatibility }
+ AF_INET = 2; { internetwork: UDP, TCP, etc. }
+ AF_IMPLINK = 3; { arpanet imp addresses }
+ AF_PUP = 4; { pup protocols: e.g. BSP }
+ AF_CHAOS = 5; { mit CHAOS protocols }
+ AF_NS = 6; { XEROX NS protocols }
+ AF_ISO = 7; { ISO protocols }
+ AF_OSI = AF_ISO;
+ AF_ECMA = 8; { European computer manufacturers }
+ AF_DATAKIT = 9; { datakit protocols }
+ AF_CCITT = 10; { CCITT protocols, X.25 etc }
+ AF_SNA = 11; { IBM SNA }
+ AF_DECnet = 12; { DECnet }
+ AF_DLI = 13; { DEC Direct data link interface }
+ AF_LAT = 14; { LAT }
+ AF_HYLINK = 15; { NSC Hyperchannel }
+ AF_APPLETALK = 16; { Apple Talk }
+ AF_ROUTE = 17; { Internal Routing Protocol }
+ AF_LINK = 18; { Link layer interface }
+ pseudo_AF_XTP = 19; { eXpress Transfer Protocol (Name:no AF) }
+ AF_COIP = 20; { connection-oriented IP, aka ST II }
+ AF_CNT = 21; { Computer Network Technology }
+ pseudo_AF_RTIP = 22; { Help Identify RTIP packets }
+ AF_IPX = 23; { Novell Internet Protocol }
+ AF_SIP = 24; { Simple Internet Protocol }
+ pseudo_AF_PIP = 25; { Help Identify PIP packets }
+ AF_ISDN = 26; { Integrated Services Digital Network}
+ AF_E164 = AF_ISDN; { CCITT E.164 recommendation }
+ pseudo_AF_KEY = 27; { Internal key-management function }
+ AF_INET6 = 28; { IPv6 }
+ AF_NATM = 29; { native ATM access }
+ AF_ATM = 30; { ATM }
+ pseudo_AF_HDRCMPLT = 31; { Used by BPF to not rewrite headers }
+ AF_NETGRAPH = 32; { Netgraph sockets }
+ AF_BLUETOOTH = 33; { Bluetooth }
+ AF_MPLS = 34; { Multi-Protocol Label Switching }
+ AF_IEEE80211 = 35; { IEEE 802.11 protocol }
+
+ AF_MAX = 36;
+
+{
+ * Protocol families, same as address families for now.
+}
+
+{
+ * Definitions for network related sysctl, CTL_NET.
+ *
+ * Second level is protocol family.
+ * Third level is protocol number.
+ *
+ * Further levels are defined by the individual families below.
+}
+ NET_MAXID = AF_MAX;
+
+ CTL_NET_NAMES : Array[0..33] OF CtlNameRec = (
+ (Name: '';CtlType: 0 ),
+ (Name: 'unix';CtlType: CTLTYPE_NODE ),
+ (Name: 'inet';CtlType: CTLTYPE_NODE ),
+ (Name: 'implink';CtlType: CTLTYPE_NODE ),
+ (Name: 'pup';CtlType: CTLTYPE_NODE ),
+ (Name: 'chaos';CtlType: CTLTYPE_NODE ),
+ (Name: 'xerox_ns';CtlType: CTLTYPE_NODE ),
+ (Name: 'iso';CtlType: CTLTYPE_NODE ),
+ (Name: 'emca';CtlType: CTLTYPE_NODE ),
+ (Name: 'datakit';CtlType: CTLTYPE_NODE ),
+ (Name: 'ccitt';CtlType: CTLTYPE_NODE ),
+ (Name: 'ibm_sna';CtlType: CTLTYPE_NODE ),
+ (Name: 'decnet';CtlType: CTLTYPE_NODE ),
+ (Name: 'dec_dli';CtlType: CTLTYPE_NODE ),
+ (Name: 'lat';CtlType: CTLTYPE_NODE ),
+ (Name: 'hylink';CtlType: CTLTYPE_NODE ),
+ (Name: 'appletalk';CtlType: CTLTYPE_NODE ),
+ (Name: 'route';CtlType: CTLTYPE_NODE ),
+ (Name: 'link_layer';CtlType: CTLTYPE_NODE ),
+ (Name: 'xtp';CtlType: CTLTYPE_NODE ),
+ (Name: 'coip';CtlType: CTLTYPE_NODE ),
+ (Name: 'cnt';CtlType: CTLTYPE_NODE ),
+ (Name: 'rtip';CtlType: CTLTYPE_NODE ),
+ (Name: 'ipx';CtlType: CTLTYPE_NODE ),
+ (Name: 'sip';CtlType: CTLTYPE_NODE ),
+ (Name: 'pip';CtlType: CTLTYPE_NODE ),
+ (Name: 'isdn';CtlType: CTLTYPE_NODE ),
+ (Name: 'key';CtlType: CTLTYPE_NODE ),
+ (Name: 'inet6';CtlType: CTLTYPE_NODE ),
+ (Name: 'natm';CtlType: CTLTYPE_NODE ),
+ (Name: 'atm';CtlType: CTLTYPE_NODE ),
+ (Name: 'hdrcomplete';CtlType: CTLTYPE_NODE ),
+ (Name: 'netgraph';CtlType: CTLTYPE_NODE ),
+ (Name: 'bluetooth';CtlType: CTLTYPE_NODE ));
+
+{
+ * PF_ROUTE - Routing table
+ *
+ * Three additional levels are defined:
+ * Fourth: address family, 0 is wildcard
+ * Fifth: type of info, defined below
+ * Sixth: flag(Name:s) to mask with for NET_RT_FLAGS
+}
+ NET_RT_DUMP = 1; { dump; may limit to a.f. }
+ NET_RT_FLAGS = 2; { by flags, e.g. RESOLVING }
+ NET_RT_IFLIST = 3; { survey interface list }
+ NET_RT_MAXID = 4;
+
+ CTL_NET_RT_NAMES : Array[0..3] OF CtlNameRec = (
+ (Name: '';CtlType: 0 ),
+ (Name: 'dump';CtlType: CTLTYPE_STRUCT ),
+ (Name: 'flags';CtlType: CTLTYPE_STRUCT ),
+ (Name: 'iflist';CtlType: CTLTYPE_STRUCT ));
+
+{
+ * Possible states of profiling.
+}
+ GMON_PROF_ON = 0;
+ GMON_PROF_BUSY = 1;
+ GMON_PROF_ERROR = 2;
+ GMON_PROF_OFF = 3;
+ GMON_PROF_HIRES = 4;
+
+{
+ * Sysctl definitions for extracting profiling information from the kernel.
+}
+ GPROF_STATE = 0; { int: profiling enabling variable }
+ GPROF_COUNT = 1; { struct: profile tick count buffer }
+ GPROF_FROMS = 2; { struct: from location hash bucket }
+ GPROF_TOS = 3; { struct: destination/count structure }
+ GPROF_GMONPARAM = 4; { struct: profiling parameters (Name:see above) }
+
+{
+ * CTL_VM identifiers
+}
+ VM_METER = 1; { struct vmmeter }
+ VM_LOADAVG = 2; { struct loadavg }
+ VM_V_FREE_MIN = 3; { cnt.v_free_min }
+ VM_V_FREE_TARGET = 4; { cnt.v_free_target }
+ VM_V_FREE_RESERVED = 5; { cnt.v_free_reserved }
+ VM_V_INACTIVE_TARGET = 6; { cnt.v_inactive_target }
+ VM_V_CACHE_MIN = 7; { cnt.v_cache_max }
+ VM_V_CACHE_MAX = 8; { cnt.v_cache_min }
+ VM_V_PAGEOUT_FREE_MIN = 9; { cnt.v_pageout_free_min }
+ VM_PAGEOUT_ALGORITHM = 10; { pageout algorithm }
+ VM_SWAPPING_ENABLED = 11; { swapping enabled }
+ VM_MAXID = 12; { number of valid vm ids }
+
+ CTL_VM_NAMES : Array[0..11] OF CtlNameRec = (
+ (Name: '';CtlType: 0 ),
+ (Name: 'vmmeter';CtlType: CTLTYPE_STRUCT ),
+ (Name: 'loadavg';CtlType: CTLTYPE_STRUCT ),
+ (Name: 'v_free_min';CtlType: CTLTYPE_INT ),
+ (Name: 'v_free_target';CtlType: CTLTYPE_INT ),
+ (Name: 'v_free_reserved';CtlType: CTLTYPE_INT ),
+ (Name: 'v_inactive_target';CtlType: CTLTYPE_INT ),
+ (Name: 'v_cache_min';CtlType: CTLTYPE_INT ),
+ (Name: 'v_cache_max';CtlType: CTLTYPE_INT ),
+ (Name: 'v_pageout_free_min';CtlType: CTLTYPE_INT),
+ (Name: 'pageout_algorithm';CtlType: CTLTYPE_INT),
+ (Name: 'swapping_enabled';CtlType: CTLTYPE_INT));
+
+{
+ * Protocols (Name:RFC 1700)
+}
+ IPPROTO_IP = 0; { dummy for IP }
+ IPPROTO_HOPOPTS = 0; { IP6 hop-by-hop options }
+ IPPROTO_ICMP = 1; { control message protocol }
+ IPPROTO_IGMP = 2; { group mgmt protocol }
+ IPPROTO_GGP = 3; { gateway^2 (Name:deprecated) }
+ IPPROTO_IPV4 = 4; { IPv4 encapsulation }
+ IPPROTO_IPIP = IPPROTO_IPV4; { for compatibility }
+ IPPROTO_TCP = 6; { tcp }
+ IPPROTO_ST = 7; { Stream protocol II }
+ IPPROTO_EGP = 8; { exterior gateway protocol }
+ IPPROTO_PIGP = 9; { private interior gateway }
+ IPPROTO_RCCMON = 10; { BBN RCC Monitoring }
+ IPPROTO_NVPII = 11; { network voice protocol}
+ IPPROTO_PUP = 12; { pup }
+ IPPROTO_ARGUS = 13; { Argus }
+ IPPROTO_EMCON = 14; { EMCON }
+ IPPROTO_XNET = 15; { Cross Net Debugger }
+ IPPROTO_CHAOS = 16; { Chaos}
+ IPPROTO_UDP = 17; { user datagram protocol }
+ IPPROTO_MUX = 18; { Multiplexing }
+ IPPROTO_MEAS = 19; { DCN Measurement Subsystems }
+ IPPROTO_HMP = 20; { Host Monitoring }
+ IPPROTO_PRM = 21; { Packet Radio Measurement }
+ IPPROTO_IDP = 22; { xns idp }
+ IPPROTO_TRUNK1 = 23; { Trunk-1 }
+ IPPROTO_TRUNK2 = 24; { Trunk-2 }
+ IPPROTO_LEAF1 = 25; { Leaf-1 }
+ IPPROTO_LEAF2 = 26; { Leaf-2 }
+ IPPROTO_RDP = 27; { Reliable Data }
+ IPPROTO_IRTP = 28; { Reliable Transaction }
+ IPPROTO_TP = 29; { tp-4 w/ class negotiation }
+ IPPROTO_BLT = 30; { Bulk Data Transfer }
+ IPPROTO_NSP = 31; { Network Services }
+ IPPROTO_INP = 32; { Merit Internodal }
+ IPPROTO_SEP = 33; { Sequential Exchange }
+ IPPROTO_3PC = 34; { Third Party Connect }
+ IPPROTO_IDPR = 35; { InterDomain Policy Routing }
+ IPPROTO_XTP = 36; { XTP }
+ IPPROTO_DDP = 37; { Datagram Delivery }
+ IPPROTO_CMTP = 38; { Control Message Transport }
+ IPPROTO_TPXX = 39; { TP++ Transport }
+ IPPROTO_IL = 40; { IL transport protocol }
+ IPPROTO_IPV6 = 41; { IP6 header }
+ IPPROTO_SDRP = 42; { Source Demand Routing }
+ IPPROTO_ROUTING = 43; { IP6 routing header }
+ IPPROTO_FRAGMENT = 44; { IP6 fragmentation header }
+ IPPROTO_IDRP = 45; { InterDomain Routing}
+ IPPROTO_RSVP = 46; { resource reservation }
+ IPPROTO_GRE = 47; { General Routing Encap. }
+ IPPROTO_MHRP = 48; { Mobile Host Routing }
+ IPPROTO_BHA = 49; { BHA }
+ IPPROTO_ESP = 50; { IP6 Encap Sec. Payload }
+ IPPROTO_AH = 51; { IP6 Auth Header }
+ IPPROTO_INLSP = 52; { Integ. Net Layer Security }
+ IPPROTO_SWIPE = 53; { IP with encryption }
+ IPPROTO_NHRP = 54; { Next Hop Resolution }
+{ 55-57: Unassigned }
+ IPPROTO_ICMPV6 = 58; { ICMP6 }
+ IPPROTO_NONE = 59; { IP6 no next header }
+ IPPROTO_DSTOPTS = 60; { IP6 destination option }
+ IPPROTO_AHIP = 61; { any host internal protocol }
+ IPPROTO_CFTP = 62; { CFTP }
+ IPPROTO_HELLO = 63; { 'hello' routing protocol }
+ IPPROTO_SATEXPAK = 64; { SATNET/Backroom EXPAK }
+ IPPROTO_KRYPTOLAN = 65; { Kryptolan }
+ IPPROTO_RVD = 66; { Remote Virtual Disk }
+ IPPROTO_IPPC = 67; { Pluribus Packet Core }
+ IPPROTO_ADFS = 68; { Any distributed FS }
+ IPPROTO_SATMON = 69; { Satnet Monitoring }
+ IPPROTO_VISA = 70; { VISA Protocol }
+ IPPROTO_IPCV = 71; { Packet Core Utility }
+ IPPROTO_CPNX = 72; { Comp. Prot. Net. Executive }
+ IPPROTO_CPHB = 73; { Comp. Prot. HeartBeat }
+ IPPROTO_WSN = 74; { Wang Span Network }
+ IPPROTO_PVP = 75; { Packet Video Protocol }
+ IPPROTO_BRSATMON = 76; { BackRoom SATNET Monitoring }
+ IPPROTO_ND = 77; { Sun net disk proto (Name:temp.) }
+ IPPROTO_WBMON = 78; { WIDEBAND Monitoring }
+ IPPROTO_WBEXPAK = 79; { WIDEBAND EXPAK }
+ IPPROTO_EON = 80; { ISO cnlp }
+ IPPROTO_VMTP = 81; { VMTP }
+ IPPROTO_SVMTP = 82; { Secure VMTP }
+ IPPROTO_VINES = 83; { Banyon VINES }
+ IPPROTO_TTP = 84; { TTP }
+ IPPROTO_IGP = 85; { NSFNET-IGP }
+ IPPROTO_DGP = 86; { dissimilar gateway prot. }
+ IPPROTO_TCF = 87; { TCF }
+ IPPROTO_IGRP = 88; { Cisco/GXS IGRP }
+ IPPROTO_OSPFIGP = 89; { OSPFIGP }
+ IPPROTO_SRPC = 90; { Strite RPC protocol }
+ IPPROTO_LARP = 91; { Locus Address Resoloution }
+ IPPROTO_MTP = 92; { Multicast Transport }
+ IPPROTO_AX25 = 93; { AX.25 Frames }
+ IPPROTO_IPEIP = 94; { IP encapsulated in IP }
+ IPPROTO_MICP = 95; { Mobile Int.ing control }
+ IPPROTO_SCCSP = 96; { Semaphore Comm. security }
+ IPPROTO_ETHERIP = 97; { Ethernet IP encapsulation }
+ IPPROTO_ENCAP = 98; { encapsulation header }
+ IPPROTO_APES = 99; { any private encr. scheme }
+ IPPROTO_GMTP = 100; { GMTP}
+ IPPROTO_IPCOMP = 108; { payload compression (Name:IPComp) }
+{ 101-254: Partly Unassigned }
+ IPPROTO_PIM = 103; { Protocol Independent Mcast }
+ IPPROTO_PGM = 113; { PGM }
+{ 255: Reserved }
+{ BSD Private, local use, namespace incursion }
+ IPPROTO_DIVERT = 254; { divert pseudo-protocol }
+ IPPROTO_RAW = 255; { raw IP packet }
+ IPPROTO_MAX = 256;
+
+{ last return value of *_input(Name:);CtlType: meaning 'all job for this pkt is done'. }
+ IPPROTO_DONE = 257;
+
+
+{
+ * Options for use with [gs]etsockopt at the IP level.
+ * First word of comment is data type; bool is stored in int.
+}
+ IP_OPTIONS = 1; { buf/ip_opts; set/get IP options }
+ IP_HDRINCL = 2; { int; header is included with data }
+ IP_TOS = 3; { int; IP type of service and preced. }
+ IP_TTL = 4; { int; IP time to live }
+ IP_RECVOPTS = 5; { bool; receive all IP opts w/dgram }
+ IP_RECVRETOPTS = 6; { bool; receive IP opts for response }
+ IP_RECVDSTADDR = 7; { bool; receive IP dst addr w/dgram }
+ IP_RETOPTS = 8; { ip_opts; set/get IP options }
+ IP_MULTICAST_IF = 9; { u_char; set/get IP multicast i/f }
+ IP_MULTICAST_TTL = 10; { u_char; set/get IP multicast ttl }
+ IP_MULTICAST_LOOP = 11; { u_char; set/get IP multicast loopback }
+ IP_ADD_MEMBERSHIP = 12; { ip_mreq; add an IP group membership }
+ IP_DROP_MEMBERSHIP = 13; { ip_mreq; drop an IP group membership }
+ IP_MULTICAST_VIF = 14; { set/get IP mcast virt. iface }
+ IP_RSVP_ON = 15; { enable RSVP in kernel }
+ IP_RSVP_OFF = 16; { disable RSVP in kernel }
+ IP_RSVP_VIF_ON = 17; { set RSVP per-vif socket }
+ IP_RSVP_VIF_OFF = 18; { unset RSVP per-vif socket }
+ IP_PORTRANGE = 19; { int; range to choose for unspec port }
+ IP_RECVIF = 20; { bool; receive reception if w/dgram }
+{ for IPSEC }
+ IP_IPSEC_POLICY = 21; { int; set/get security policy }
+ IP_FAITH = 22; { bool; accept FAITH'ed connections }
+
+ IP_FW_ADD = 50; { add a firewall rule to chain }
+ IP_FW_DEL = 51; { delete a firewall rule from chain }
+ IP_FW_FLUSH = 52; { flush firewall rule chain }
+ IP_FW_ZERO = 53; { clear single/all firewall counter(Name:s) }
+ IP_FW_GET = 54; { get entire firewall rule chain }
+ IP_FW_RESETLOG = 55; { reset logging counters }
+
+ IP_DUMMYNET_CONFIGURE = 60; { add/configure a dummynet pipe }
+ IP_DUMMYNET_DEL = 61; { delete a dummynet pipe from chain }
+ IP_DUMMYNET_FLUSH = 62; { flush dummynet }
+ IP_DUMMYNET_GET = 64; { get entire dummynet pipes }
+
+ IP_RECVTTL = 65; { bool; receive IP TTL }
+ IP_MINTTL = 66; { minimum TTL for packet or drop }
+
+{
+ * Defaults and limits for options
+}
+ IP_DEFAULT_MULTICAST_TTL = 1; { normally limit m'casts to 1 hop }
+ IP_DEFAULT_MULTICAST_LOOP = 1; { normally hear sends if a member }
+ IP_MAX_MEMBERSHIPS = 20; { per socket }
+
+{
+ * Argument for IP_PORTRANGE:
+ * - which range to search when port is unspecified at bind(Name:) or connect()
+}
+ IP_PORTRANGE_DEFAULT = 0; { default range }
+ IP_PORTRANGE_HIGH = 1; { 'high' - request firewall bypass }
+ IP_PORTRANGE_LOW = 2; { 'low' - vouchsafe security }
+
+{
+ * Definitions for inet sysctl operations.
+ *
+ * Third level is protocol number.
+ * Fourth level is desired variable within that protocol.
+}
+ IPPROTO_MAXID = (IPPROTO_AH + 1); { don't list to IPPROTO_MAX }
+
+ CTL_IPPROTO_NAMES : Array[0..51] OF CtlNameRec = (
+ (Name: 'ip';CtlType: CTLTYPE_NODE ),
+ (Name: 'icmp';CtlType: CTLTYPE_NODE ),
+ (Name: 'igmp';CtlType: CTLTYPE_NODE ),
+ (Name: 'ggp';CtlType: CTLTYPE_NODE ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: 'tcp';CtlType: CTLTYPE_NODE ),
+ (Name: '';CtlType: 0 ),
+ (Name: 'egp';CtlType: CTLTYPE_NODE ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: 'pup';CtlType: CTLTYPE_NODE ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: 'udp';CtlType: CTLTYPE_NODE ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: 'idp';CtlType: CTLTYPE_NODE ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: 'ipsec';CtlType: CTLTYPE_NODE ));
+
+{
+ * Names for IP sysctl objects
+}
+ IPCTL_FORWARDING = 1; { act as router }
+ IPCTL_SENDREDIRECTS = 2; { may send redirects when forwarding }
+ IPCTL_DEFTTL = 3; { default TTL }
+{$ifdef notyettunable}
+ IPCTL_DEFMTU = 4; { default MTU }
+{$endif}
+ IPCTL_RTEXPIRE = 5; { cloned route expiration time }
+ IPCTL_RTMINEXPIRE = 6; { min value for expiration time }
+ IPCTL_RTMAXCACHE = 7; { trigger level for dynamic expire }
+ IPCTL_SOURCEROUTE = 8; { may perform source routes }
+ IPCTL_DIRECTEDBROADCAST = 9; { may re-broadcast received packets }
+ IPCTL_INTRQMAXLEN = 10; { max length of netisr queue }
+ IPCTL_INTRQDROPS = 11; { number of netisr q drops }
+ IPCTL_STATS = 12; { ipstat structure }
+ IPCTL_ACCEPTSOURCEROUTE = 13; { may accept source routed packets }
+ IPCTL_FASTFORWARDING = 14; { use fast IP forwarding code }
+ IPCTL_KEEPFAITH = 15; { FAITH IPv4->IPv6 translater ctl }
+ IPCTL_GIF_TTL = 16; { default TTL for gif encap packet }
+ IPCTL_MAXID = 17;
+
+ IPCTL_NAMES : Array[0..14] OF CtlNameRec = (
+ (Name: '';CtlType: 0 ),
+ (Name: 'forwarding';CtlType: CTLTYPE_INT ),
+ (Name: 'redirect';CtlType: CTLTYPE_INT ),
+ (Name: 'ttl';CtlType: CTLTYPE_INT ),
+ (Name: 'mtu';CtlType: CTLTYPE_INT ),
+ (Name: 'rtexpire';CtlType: CTLTYPE_INT ),
+ (Name: 'rtminexpire';CtlType: CTLTYPE_INT ),
+ (Name: 'rtmaxcache';CtlType: CTLTYPE_INT ),
+ (Name: 'sourceroute';CtlType: CTLTYPE_INT ),
+ (Name: 'directed-broadcast';CtlType: CTLTYPE_INT ),
+ (Name: 'intr-queue-maxlen';CtlType: CTLTYPE_INT ),
+ (Name: 'intr-queue-drops';CtlType: CTLTYPE_INT ),
+ (Name: 'stats';CtlType: CTLTYPE_STRUCT ),
+ (Name: 'accept_sourceroute';CtlType: CTLTYPE_INT ),
+ (Name: 'fastforwarding';CtlType: CTLTYPE_INT ));
+
+{
+ * Names for ICMP sysctl objects
+}
+ ICMPCTL_MASKREPL = 1; { allow replies to netmask requests }
+ ICMPCTL_STATS = 2; { statistics (Name:read-only) }
+ ICMPCTL_ICMPLIM = 3;
+ ICMPCTL_MAXID = 4;
+
+ ICMPCTL_NAMES : Array[0..3] OF CtlNameRec = (
+ (Name: '';CtlType: 0 ),
+ (Name: 'maskrepl';CtlType: CTLTYPE_INT ),
+ (Name: 'stats';CtlType: CTLTYPE_STRUCT ),
+ (Name: 'icmplim';CtlType: CTLTYPE_INT ));
+
+{
+ * Names for ICMP sysctl objects
+}
+ ICMPV6CTL_STATS = 1;
+ ICMPV6CTL_REDIRACCEPT = 2; { accept/process redirects }
+ ICMPV6CTL_REDIRTIMEOUT = 3; { redirect cache time }
+{$ifdef obsolete} {obsoleted}
+ ICMPV6CTL_ERRRATELIMIT = 5; { ICMPv6 error rate limitation }
+{$endif}
+ ICMPV6CTL_ND6_PRUNE = 6;
+ ICMPV6CTL_ND6_DELAY = 8;
+ ICMPV6CTL_ND6_UMAXTRIES = 9;
+ ICMPV6CTL_ND6_MMAXTRIES = 10;
+ ICMPV6CTL_ND6_USELOOPBACK = 11;
+//define ICMPV6CTL_ND6_PROXYALL = 12; obsoleted, do not reuse here
+ ICMPV6CTL_NODEINFO = 13;
+ ICMPV6CTL_ERRPPSLIMIT = 14; { ICMPv6 error pps limitation }
+ ICMPV6CTL_ND6_MAXNUDHINT= 15;
+ ICMPV6CTL_MTUDISC_HIWAT = 16;
+ ICMPV6CTL_MTUDISC_LOWAT = 17;
+ ICMPV6CTL_ND6_DEBUG = 18;
+ ICMPV6CTL_ND6_DRLIST = 19;
+ ICMPV6CTL_ND6_PRLIST = 20;
+ ICMPV6CTL_MAXID = 21;
+
+ ICMPV6CTL_NAMES : Array[0..20] OF CtlNameRec = (
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: 'rediraccept';CtlType: CTLTYPE_INT ),
+ (Name: 'redirtimeout';CtlType: CTLTYPE_INT ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ),
+ (Name: 'nd6_prune';CtlType: CTLTYPE_INT ),
+ (Name: '';CtlType: 0 ),
+ (Name: 'nd6_delay';CtlType: CTLTYPE_INT ),
+ (Name: 'nd6_umaxtries';CtlType: CTLTYPE_INT ),
+ (Name: 'nd6_mmaxtries';CtlType: CTLTYPE_INT ),
+ (Name: 'nd6_useloopback';CtlType: CTLTYPE_INT ),
+ (Name: '';CtlType: 0 ),
+ (Name: 'nodeinfo';CtlType: CTLTYPE_INT ),
+ (Name: 'errppslimit';CtlType: CTLTYPE_INT ),
+ (Name: 'nd6_maxnudhint';CtlType: CTLTYPE_INT ),
+ (Name: 'mtudisc_hiwat';CtlType: CTLTYPE_INT ),
+ (Name: 'mtudisc_lowat';CtlType: CTLTYPE_INT ),
+ (Name: 'nd6_debug';CtlType: CTLTYPE_INT ),
+ (Name: '';CtlType: 0 ),
+ (Name: '';CtlType: 0 ));
+
+
+{
+ * Names for UDP sysctl objects
+}
+ UDPCTL_CHECKSUM = 1; { checksum UDP packets }
+ UDPCTL_STATS = 2; { statistics (Name:read-only) }
+ UDPCTL_MAXDGRAM = 3; { max datagram size }
+ UDPCTL_RECVSPACE = 4; { default receive buffer space }
+ UDPCTL_PCBLIST = 5; { list of PCBs for UDP sockets }
+ UDPCTL_MAXID = 6;
+
+ UDPCTL_NAMES : Array[0..5] OF CtlNameRec = (
+ (Name: '';CtlType: 0 ),
+ (Name: 'checksum';CtlType: CTLTYPE_INT ),
+ (Name: 'stats';CtlType: CTLTYPE_STRUCT ),
+ (Name: 'maxdgram';CtlType: CTLTYPE_INT ),
+ (Name: 'recvspace';CtlType: CTLTYPE_INT ),
+ (Name: 'pcblist';CtlType: CTLTYPE_STRUCT ));
+
diff --git a/rtl/dragonfly/sysnr.inc b/rtl/dragonfly/sysnr.inc
new file mode 100644
index 0000000000..689297fd04
--- /dev/null
+++ b/rtl/dragonfly/sysnr.inc
@@ -0,0 +1,343 @@
+{
+ This file is part of the Free Pascal run time library.
+ member of the Free Pascal development team.
+
+ 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.
+
+ **********************************************************************}
+
+const
+ syscall_nr_exit = 1;
+ syscall_nr_fork = 2;
+ syscall_nr_read = 3;
+ syscall_nr_write = 4;
+ syscall_nr_open = 5;
+ syscall_nr_close = 6;
+ syscall_nr_waitpid = 7;
+ { 8 is old creat }
+ syscall_nr_link = 9;
+ syscall_nr_unlink = 10;
+ { 11 obsolete execv }
+ syscall_nr_chdir = 12;
+ syscall_nr_fchdir = 13;
+ syscall_nr_mknod = 14;
+ syscall_nr_chmod = 15;
+ syscall_nr_chown = 16;
+ syscall_nr_break = 17;
+ syscall_nr_getfsstat = 18;
+ { 19 is old lseek }
+ syscall_nr_getpid = 20;
+ syscall_nr_mount = 21;
+ syscall_nr_umount = 22;
+ syscall_nr_setuid = 23;
+ syscall_nr_getuid = 24;
+ syscall_nr_geteuid = 25;
+ syscall_nr_ptrace = 26;
+ syscall_nr_recvmsg = 27;
+ syscall_nr_sendmsg = 28;
+ syscall_nr_recvfrom = 29;
+ syscall_nr_accept = 30;
+ syscall_nr_getpeername = 31;
+ syscall_nr_getsockname = 32;
+ syscall_nr_access = 33;
+ syscall_nr_chflags = 34;
+ syscall_nr_fchflags = 35;
+ syscall_nr_sync = 36;
+ syscall_nr_kill = 37;
+ { 38 is old stat }
+ syscall_nr_getppid = 39;
+ { 40 is old lstat }
+ syscall_nr_dup = 41;
+ syscall_nr_pipe = 42;
+ syscall_nr_getegid = 43;
+ syscall_nr_profil = 44;
+ syscall_nr_ktrace = 45;
+ { 46 is obsolete fbsd3_sigaction }
+ syscall_nr_getgid = 47;
+ { 48 is obsolete fbsd3_sigprocmask }
+ syscall_nr_getlogin = 49;
+ syscall_nr_setlogin = 50;
+ syscall_nr_acct = 51;
+ { 52 is obsolete fbsd3_sigpending }
+ syscall_nr_sigaltstack = 53;
+ syscall_nr_ioctl = 54;
+ syscall_nr_reboot = 55;
+ syscall_nr_revoke = 56;
+ syscall_nr_symlink = 57;
+ syscall_nr_readlink = 58;
+ syscall_nr_execve = 59;
+ syscall_nr_umask = 60;
+ syscall_nr_chroot = 61;
+ { 62 is old fstat }
+ { 63 is old getkerninfo }
+ { 64 is old getpagesize }
+ syscall_nr_msync = 65;
+ syscall_nr_vfork = 66;
+ { 67 is obsolete vread }
+ { 68 is obsolete vwrite }
+ syscall_nr_sbrk = 69;
+ syscall_nr_sstk = 70;
+ { 71 is old map }
+ { 72 is old vadvise }
+ syscall_nr_munmap = 73;
+ syscall_nr_mprotect = 74;
+ syscall_nr_madvise = 75;
+ { 76 is obsolete vhangup }
+ { 77 is obsolete vlimit }
+ syscall_nr_mincore = 78;
+ syscall_nr_getgroups = 79;
+ syscall_nr_setgroups = 80;
+ syscall_nr_getpgrp = 81;
+ syscall_nr_setpgid = 82;
+ syscall_nr_setitimer = 83;
+ { 84 is old wait }
+ syscall_nr_swapon = 85;
+ syscall_nr_getitimer = 86;
+ { 87 is old gethostname }
+ { 88 is old sethostname }
+ syscall_nr_getdtablesize = 89;
+ syscall_nr_dup2 = 90;
+ { 91 empty }
+ syscall_nr_fcntl = 92;
+ syscall_nr_select = 93;
+ { 94 empty }
+ syscall_nr_fsync = 95;
+ syscall_nr_setpriority = 96;
+ syscall_nr_socket = 97;
+ syscall_nr_connect = 98;
+ { 99 is old accept }
+ syscall_nr_getpriority = 100;
+ { 101 is old send }
+ { 102 is old recv }
+ { 103 is obsolete fbsd3_sigreturn }
+ syscall_nr_bind = 104;
+ syscall_nr_setsockopt = 105;
+ syscall_nr_listen = 106;
+ { 107 is obsolete vtimes }
+ { 108 is old sigvec }
+ { 109 is old sigblock }
+ { 110 is old sigsetmask }
+ { 111 is old fbsd3_sigsuspend }
+ { 112 is old sigstack }
+ { 113 is old recvmsg }
+ { 114 is old sendmsg }
+ { 115 is obsolete vtract }
+ syscall_nr_gettimeofday = 116;
+ syscall_nr_getrusage = 117;
+ syscall_nr_getsockopt = 118;
+ { 119 empty }
+ syscall_nr_readv = 120;
+ syscall_nr_writev = 121;
+ syscall_nr_settimeofday = 122;
+ syscall_nr_fchown = 123;
+ syscall_nr_fchmod = 124;
+ { 125 is old recfrom }
+ syscall_nr_setreuid = 126;
+ syscall_nr_setregid = 127;
+ syscall_nr_rename = 128;
+ { 129 is old truncate }
+ { 130 is old ftruncate }
+ syscall_nr_flock = 131;
+ syscall_nr_mkfifo = 132;
+ syscall_nr_sendto = 133;
+ syscall_nr_shutdown = 134;
+ syscall_nr_socketpair = 135;
+ syscall_nr_mkdir = 136;
+ syscall_nr_rmdir = 137;
+ syscall_nr_utimes = 138;
+ { 139 is obsolete 4.2 sigreturn }
+ syscall_nr_adjtime = 140;
+ { 141 is old getpeername }
+ { 142 is old gethostid }
+ { 143 is old sethostid }
+ { 144 is old getrlimit }
+ { 145 is old setrlimit }
+ { 146 is old killpg }
+ syscall_nr_setsid = 147;
+ syscall_nr_quotactl = 148;
+ { 149 is old quota }
+ { 150 is old getsockname }
+ { 151 -- 154 empty }
+ syscall_nr_nfssvc = 155;
+ { 156 is old getdirentries }
+ syscall_nr_statfs = 157;
+ syscall_nr_fstatfs = 158;
+ { 159 empty }
+ { 160 empty }
+ syscall_nr_getfh = 161;
+ syscall_nr_getdomainname = 162;
+ syscall_nr_setdomainname = 163;
+ syscall_nr_uname = 164;
+ syscall_nr_sysarch = 165;
+ { 166 --- 168 empty }
+ { 169 is old semsys }
+ { 170 is old msgsys }
+ { 171 is old shmsys }
+ { 172 empty }
+ syscall_nr_pread = 173; { extpread }
+ syscall_nr_pwrite = 174; { extpwrite }
+ { 175 empty }
+ syscall_nr_ntp_adjtime = 176;
+ { 180 empty }
+ syscall_nr_setgid = 181;
+ syscall_nr_setegid = 182;
+ syscall_nr_seteuid = 183;
+ { 184 --- 187 empty }
+ { 188 is old stat }
+ { 189 is old fstat }
+ { 190 is old lstat }
+ syscall_nr_pathconf = 191;
+ syscall_nr_fpathconf = 192;
+ { 193 empty }
+ syscall_nr_getrlimit = 194;
+ syscall_nr_setrlimit = 195;
+ { 196 is old getdirentries }
+ syscall_nr_mmap = 197;
+ syscall_nr___syscall = 198;
+ syscall_nr_lseek = 199;
+ syscall_nr_truncate = 200;
+ syscall_nr_ftruncate = 201;
+ syscall_nr___sysctl = 202;
+ syscall_nr_mlock = 203;
+ syscall_nr_munlock = 204;
+ syscall_nr_undelete = 205;
+ syscall_nr_futimes = 206;
+ syscall_nr_getpgid = 207;
+ { 208 empty }
+ syscall_nr_poll = 209;
+ { 210 --- 219 empty }
+ syscall_nr___semctl = 220;
+ syscall_nr_semget = 221;
+ syscall_nr_semop = 222;
+ { 223 empty }
+ syscall_nr_msgctl = 224;
+ syscall_nr_msgget = 225;
+ syscall_nr_msgsnd = 226;
+ syscall_nr_msgrcv = 227;
+ syscall_nr_shmat = 228;
+ syscall_nr_shmctl = 229;
+ syscall_nr_shmdt = 230;
+ syscall_nr_shmget = 231;
+ syscall_nr_clock_gettime = 232;
+ syscall_nr_clock_settime = 233;
+ syscall_nr_clock_getres = 234;
+ { 235 --- 239 empty }
+ syscall_nr_nanosleep = 240;
+ { 241 --- 249 empty }
+ syscall_nr_minherit = 250;
+ syscall_nr_rfork = 251;
+ syscall_nr_openbsd_poll = 252;
+ syscall_nr_issetugid = 253;
+ syscall_nr_lchown = 254;
+ { 255 --- 271 empty }
+ { 272 is old getdents }
+ { 273 empty }
+ syscall_nr_lchmod = 274;
+ syscall_nr_netbsd_lchown = 275;
+ syscall_nr_lutimes = 276;
+ syscall_nr_netbsd_msync = 277;
+ { 278 --- 288 empty }
+ syscall_nr_extpreadv = 289;
+ syscall_nr_extwritev = 290;
+ { 291 --- 296 empty }
+ syscall_nr_fhstatfs = 297;
+ syscall_nr_fhopen = 298;
+ { 299 is old fhstat }
+ syscall_nr_modnext = 300;
+ syscall_nr_modstat = 301;
+ syscall_nr_modfnext = 302;
+ syscall_nr_modofind = 303;
+ syscall_nr_kldload = 304;
+ syscall_nr_kldunload = 305;
+ syscall_nr_kldfind = 306;
+ syscall_nr_kldnext = 307;
+ syscall_nr_kldstat = 308;
+ syscall_nr_kldfirstmod = 309;
+ syscall_nr_getsid = 310;
+ syscall_nr_setresuid = 311;
+ syscall_nr_setresgid = 312;
+ { 313 is obsolete signanosleep }
+ { 314 -- 320 aio/lio syscalls }
+ syscall_nr_yield = 321;
+ { 322 -- 323 empty }
+ syscall_nr_mlockall = 324;
+ syscall_nr_munlockall = 325;
+ syscall_nr___getcwd = 326;
+ { 327 -- 334 scheduler syscalls }
+ syscall_nr_utrace = 335;
+ { 336 is obsolete fbsd4_sendfile }
+ syscall_nr_kldsym = 337;
+ syscall_nr_jail = 338;
+ { 339 empty }
+ syscall_nr_sigprocmask = 340;
+ syscall_nr_sigsuspend = 341;
+ syscall_nr_sigaction = 342;
+ syscall_nr_sigpending = 343;
+ syscall_nr_sigreturn = 344;
+ syscall_nr_sigtimedwait = 345;
+ syscall_nr_sigwaitinfo = 346;
+ { 347 --- 354 acl syscalls }
+ { 355 --- 358 extattr syscalls }
+ syscall_nr_aio_waitcomplete = 359;
+ syscall_nr_getresuid = 360;
+ syscall_nr_getresgid = 361;
+ syscall_nr_kqueue = 362;
+ syscall_nr_kevent = 363;
+ syscall_nr_sctp_peeloff = 364;
+ { 365 --- 390 empty }
+ syscall_lchflags = 391;
+ syscall_nr_uuidgen = 392;
+ syscall_nr_sendfile = 393;
+ { 394 --- 449 empty }
+ { 450 --- 452 varsym syscalls }
+ { 453 --- 464 obsolete caps }
+ syscall_nr_exec_sys_register = 465;
+ syscall_nr_exec_sys_unregister = 466;
+ syscall_nr_sys_checkpoint = 467;
+ syscall_nr_mountctl = 468;
+ syscall_nr_umtx_sleep = 469;
+ syscall_nr_umtx_wakeup = 470;
+ syscall_nr_jail_attach = 471;
+ syscall_nr_set_tls_area = 472;
+ syscall_nr_get_tls_area = 473;
+ syscall_nr_closefrom = 474;
+ syscall_nr_stat = 475;
+ syscall_nr_fstat = 476;
+ syscall_nr_lstat = 477;
+ syscall_nr_fhstat = 478;
+ syscall_nr_getdirentries = 479;
+ syscall_nr_getdents = 480;
+ syscall_nr_usched_set = 481;
+ syscall_nr_extaccept = 482;
+ syscall_nr_extconnect = 483;
+ { 484 is obsolete syslink }
+ { 485 --- 498 vmspace/lwp syscalls }
+ syscall_nr_pselect = 499;
+ syscall_nr_statvfs = 500;
+ syscall_nr_fstatvfs = 501;
+ syscall_nr_fhstatvfs = 502;
+ syscall_nr_getvfsstat = 503;
+ syscall_nr_openat = 504;
+ syscall_nr_fstatat = 505;
+ syscall_nr_fchmodat = 506;
+ syscall_nr_fchownat = 507;
+ syscall_nr_unlinkat = 508;
+ syscall_nr_faccessat = 509;
+ { 510 --- 521 mq/ioprio syscalls }
+ syscall_nr_chroot_kernel = 522;
+ syscall_nr_renameat = 523;
+ syscall_nr_mkdirat = 524;
+ syscall_nr_mkfifoat = 525;
+ syscall_nr_mknodat = 526;
+ syscall_nr_readlinkat = 527;
+ syscall_nr_symlinkat = 528;
+ syscall_nr_swapoff = 529;
+ syscall_nr_vquotactl = 530;
+ syscall_nr_linkat = 531;
+ syscall_nr_eaccess = 532;
+ syscall_nr_lpathconf = 533;
diff --git a/rtl/dragonfly/termio.pp b/rtl/dragonfly/termio.pp
new file mode 100644
index 0000000000..f2fa007789
--- /dev/null
+++ b/rtl/dragonfly/termio.pp
@@ -0,0 +1,39 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 1999-2000 by Peter Vreman
+ member of the Free Pascal development team.
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ This file contains the termios interface.
+
+ 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 termio;
+
+interface
+{$inline on}
+Uses BaseUnix; // load base unix typing
+
+// load types + consts
+
+{$i termios.inc}
+
+// load default prototypes from unix dir.
+
+{$i termiosh.inc}
+
+implementation
+
+// load implementation for prototypes from current dir.
+{$i termiosproc.inc}
+
+// load ttyname from unix dir.
+{$i ttyname.inc}
+
+end.
diff --git a/rtl/dragonfly/termios.inc b/rtl/dragonfly/termios.inc
new file mode 100644
index 0000000000..7befec911b
--- /dev/null
+++ b/rtl/dragonfly/termios.inc
@@ -0,0 +1,375 @@
+{
+ This file is part of the Free Pascal run time library.
+ (c) 2000-2003 by Marco van de Voort
+ member of the Free Pascal development team.
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ Termios header for FreeBSD
+
+ 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.
+}
+
+CONST
+
+{
+ * Special Control Characters
+ *
+ * Index into c_cc[] character array.
+ *
+ * Name Subscript Enabled by
+ }
+ VEOF =0;
+ VEOL =1;
+ VEOL2 =2;
+ VERASE =3;
+ VWERASE =4;
+ VKILL =5;
+ VREPRINT =6;
+{ =7; spare 1 }
+ VINTR =8;
+ VQUIT =9;
+ VSUSP =10;
+ VDSUSP =11;
+ VSTART =12;
+ VSTOP =13;
+ VLNEXT =14;
+ VDISCARD =15;
+ VMIN =16;
+ VTIME =17;
+ VSTATUS =18;
+{ =19 spare 2 }
+ NCCS =20;
+
+Type
+ winsize = packed record
+ ws_row,
+ ws_col,
+ ws_xpixel,
+ ws_ypixel : word;
+ end;
+ TWinSize=winsize;
+
+
+type
+ Termios = packed record
+ c_iflag,
+ c_oflag,
+ c_cflag,
+ c_lflag : longint;
+// c_line : char;
+ c_cc : array[0..NCCS-1] of byte;
+ {$IFDEF BSD}
+ c_ispeed,
+ c_ospeed : longint;
+ {$endif}
+ end;
+ TTermios=Termios;
+
+CONST
+
+
+ POSIX_VDISABLE=Chr($ff);
+{
+
+#define CCEQ(val, c) ((c) == (val) ? (val) != _POSIX_VDISABLE : 0)
+}
+
+{ * Input flags - software input processing}
+
+ IGNBRK = $1; { ignore BREAK condition }
+ BRKINT = $2; { map BREAK to SIGINTR }
+ IGNPAR = $4; { ignore (discard) parity errors }
+ PARMRK = $8; { mark parity and framing errors }
+ INPCK = $10; { enable checking of parity errors }
+ ISTRIP = $20; { strip 8th bit off chars }
+ INLCR = $40; { map NL into CR }
+ IGNCR = $80; { ignore CR }
+ ICRNL = $100; { map CR to NL (ala CRMOD) }
+ IXON = $200; { enable output flow control }
+ IXOFF = $400; { enable input flow control }
+ IXANY = $800; { any char will restart after stop }
+ IMAXBEL = $2000; { ring bell on input queue full }
+
+{
+ * Output flags - software output processing
+}
+ OPOST = $1; { enable following output processing }
+ ONLCR = $2; { map NL to CR-NL (ala CRMOD) }
+ OXTABS = $4; { expand tabs to spaces }
+ ONOEOT = $8; { discard EOT's (^D) on output) }
+
+{
+ * Control flags - hardware control of terminal
+}
+ CIGNORE = $1; { ignore control flags }
+ CSIZE = $300; { character size mask }
+ CS5 = $0; { 5 bits (pseudo) }
+ CS6 = $100; { 6 bits }
+ CS7 = $200; { 7 bits }
+ CS8 = $300; { 8 bits }
+ CSTOPB = $400; { send 2 stop bits }
+ CREAD = $800; { enable receiver }
+ PARENB = $1000; { parity enable }
+ PARODD = $2000; { odd parity, else even }
+ HUPCL = $4000; { hang up on last close }
+ CLOCAL = $8000; { ignore modem status lines }
+ CCTS_OFLOW = $10000; { CTS flow control of output }
+ CRTS_IFLOW = $20000; { RTS flow control of input }
+ CRTSCTS = (CCTS_OFLOW or CRTS_IFLOW);
+ CDTR_IFLOW = $40000; { DTR flow control of input }
+ CDSR_OFLOW = $80000; { DSR flow control of output }
+ CCAR_OFLOW = $100000; { DCD flow control of output }
+ MDMBUF = $100000; { old name for CCAR_OFLOW }
+
+{
+ * "Local" flags - dumping ground for other state
+ *
+ * Warning: some flags in this structure begin with
+ * the letter "I" and look like they belong in the
+ * input flag.
+ }
+
+ ECHOKE = $1; { visual erase for line kill }
+ ECHOE = $2; { visually erase chars }
+ ECHOK = $4; { echo NL after line kill }
+ ECHO = $8; { enable echoing }
+ ECHONL = $10; { echo NL even if ECHO is off }
+ ECHOPRT = $20; { visual erase mode for hardcopy }
+ ECHOCTL = $40; { echo control chars as ^(Char) }
+ ISIG = $80; { enable signals INTR, QUIT, [D]SUSP }
+ ICANON = $100; { canonicalize input lines }
+ ALTWERASE = $200; { use alternate WERASE algorithm }
+ IEXTEN = $400; { enable DISCARD and LNEXT }
+ EXTPROC = $800; { external processing }
+ TOSTOP = $400000; { stop background jobs from output }
+ FLUSHO = $800000; { output being flushed (state) }
+ NOKERNINFO = $2000000; { no kernel output from VSTATUS }
+ PENDIN =$20000000; { XXX retype pending input (state) }
+ NOFLSH =$80000000; { don't flush after interrupt }
+
+
+
+{
+ * Commands passed to tcsetattr() for setting the termios structure.
+}
+
+CONST
+
+ TCSANOW =0; { make change immediate }
+ TCSADRAIN =1; { drain output, then change }
+ TCSAFLUSH =2; { drain output, flush input }
+ TCSASOFT =$10; { flag - don't alter h.w. state }
+
+{
+ * Standard speeds
+}
+ B0 = 0;
+ B50 = 50;
+ B75 = 75;
+ B110 = 110;
+ B134 = 134;
+ B150 = 150;
+ B200 = 200;
+ B300 = 300;
+ B600 = 600;
+ B1200 = 1200;
+ B1800 = 1800;
+ B2400 = 2400;
+ B4800 = 4800;
+ B9600 = 9600;
+ B19200 = 19200;
+ B38400 = 38400;
+ B7200 = 7200;
+ B14400 = 14400;
+ B28800 = 28800;
+ B57600 = 57600;
+ B76800 = 76800;
+ B115200 =115200;
+ B230400 =230400;
+ B460800 =460800;
+ B921600 =921600;
+ EXTA = 19200;
+ EXTB = 38400;
+
+ TCIFLUSH =1;
+ TCOFLUSH =2;
+ TCIOFLUSH =3;
+ TCOOFF =1;
+ TCOON =2;
+ TCIOFF =3;
+ TCION =4;
+
+{
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+speed_t cfgetispeed __P((const struct termios *));
+speed_t cfgetospeed __P((const struct termios *));
+int cfsetispeed __P((struct termios *, speed_t));
+int cfsetospeed __P((struct termios *, speed_t));
+int tcgetattr __P((int, struct termios *));
+int tcsetattr __P((int, int, const struct termios *));
+int tcdrain __P((int));
+int tcflow __P((int, int));
+int tcflush __P((int, int));
+int tcsendbreak __P((int, int));
+
+#ifndef _POSIX_SOURCE
+void cfmakeraw __P((struct termios *));
+int cfsetspeed __P((struct termios *, speed_t));
+#endif { !_POSIX_SOURCE }
+__END_DECLS
+
+#endif { !_KERNEL }
+
+
+
+struct winsize {
+ unsigned short ws_row; { rows, in characters }
+ unsigned short ws_col; { columns, in characters }
+ unsigned short ws_xpixel; { horizontal size, pixels }
+ unsigned short ws_ypixel; { vertical size, pixels }
+};
+
+}
+ IOCTLREAD = $40000000;
+ IOCTLWRITE = $80000000;
+ IOCTLVOID = $20000000;
+
+ TIOCMODG = IOCTLREAD+$47400+ 3; { get modem control state }
+ TIOCMODS = IOCTLWRITE+$47400+ 4; { set modem control state }
+ TIOCM_LE =$0001; { line enable }
+ TIOCM_DTR =$0002; { data terminal ready }
+ TIOCM_RTS =$0004; { request to send }
+ TIOCM_ST =$0010; { secondary transmit }
+ TIOCM_SR =$0020; { secondary receive }
+ TIOCM_CTS =$0040; { clear to send }
+ TIOCM_CAR =$0100; { carrier detect }
+ TIOCM_CD =TIOCM_CAR;
+ TIOCM_RNG =$0200; { ring }
+ TIOCM_RI =TIOCM_RNG;
+ TIOCM_DSR =$0400; { data set ready }
+ { 8-10 compat }
+ TIOCEXCL =IOCTLVOID+$7400+ 13; { set exclusive use of tty }
+ TIOCNXCL =IOCTLVOID+$7400+ 14; { reset exclusive use of tty }
+ { 15 unused }
+ TIOCFLUSH =IOCTLWRITE+$47400+ 16; { flush buffers }
+ { 17-18 compat }
+ TIOCGETA =IOCTLREAD+$2C7400+ 19; { get termios struct }
+ TIOCSETA =IOCTLWRITE+$2C7400+ 20; { set termios struct }
+ TIOCSETAW =IOCTLWRITE+$2C7400+ 21; { drain output, set }
+ TIOCSETAF =IOCTLWRITE+$2C7400+ 22; { drn out, fls in, set }
+ TIOCGETD =IOCTLREAD+$47400+ 26; { get line discipline }
+ TIOCSETD =IOCTLWRITE+$47400+ 27; { set line discipline }
+ { 127-124 compat }
+ TIOCSBRK =IOCTLVOID+$7400+ 123; { set break bit }
+ TIOCCBRK =IOCTLVOID+$7400+ 122; { clear break bit }
+ TIOCSDTR =IOCTLVOID+$7400+ 121; { set data terminal ready }
+ TIOCCDTR =IOCTLVOID+$7400+ 120; { clear data terminal ready }
+ TIOCGPGRP =IOCTLREAD+$47400+ 119; { get pgrp of tty }
+ TIOCSPGRP =IOCTLWRITE+$47400+ 118; { set pgrp of tty }
+ { 117-116 compat }
+ TIOCOUTQ =IOCTLREAD+$47400+ 115; { output queue size }
+ TIOCSTI =IOCTLWRITE+$17400+ 114; { simulate terminal input }
+ TIOCNOTTY =IOCTLVOID+$7400+ 113; { void tty association }
+ TIOCPKT =IOCTLWRITE+$47400+ 112; { pty: set/clear packet mode }
+ TIOCPKT_DATA =$00; { data packet }
+ TIOCPKT_FLUSHREAD =$01; { flush packet }
+ TIOCPKT_FLUSHWRITE =$02; { flush packet }
+ TIOCPKT_STOP =$04; { stop output }
+ TIOCPKT_START =$08; { start output }
+ TIOCPKT_NOSTOP =$10; { no more ^S, ^Q }
+ TIOCPKT_DOSTOP =$20; { now do ^S ^Q }
+ TIOCPKT_IOCTL =$40; { state change of pty driver }
+ TIOCSTOP =IOCTLVOID+$7400+ 111; { stop output, like ^S }
+ TIOCSTART =IOCTLVOID+$7400+ 110; { start output, like ^Q }
+ TIOCMSET =IOCTLWRITE+$47400+ 109; { set all modem bits }
+ TIOCMBIS =IOCTLWRITE+$47400+ 108; { bis modem bits }
+ TIOCMBIC =IOCTLWRITE+$47400+ 107; { bic modem bits }
+ TIOCMGET =IOCTLREAD+$47400+ 106; { get all modem bits }
+ TIOCREMOTE =IOCTLWRITE+$47400+ 105; { remote input editing }
+ TIOCGWINSZ =IOCTLREAD+$87400+ 104; { get window size }
+ TIOCSWINSZ =IOCTLWRITE+$87400+ 103; { set window size }
+ TIOCUCNTL =IOCTLWRITE+$47400+ 102; { pty: set/clr usr cntl mode }
+ TIOCSTAT =IOCTLVOID+$7400+ 101; { simulate ^T status message }
+ // UIOCCMD(n) _IO('u', n) { usr cntl op "n" }
+ TIOCCONS =IOCTLWRITE+$47400+ 98; { become virtual console }
+ TIOCSCTTY =IOCTLVOID+$7400+ 97; { become controlling tty }
+ TIOCEXT =IOCTLWRITE+$47400+ 96; { pty: external processing }
+ TIOCSIG =IOCTLVOID+$7400+ 95; { pty: generate signal }
+ TIOCDRAIN =IOCTLVOID+$7400+ 94; { wait till output drained }
+ TIOCMSDTRWAIT =IOCTLWRITE+$47400+ 91; { modem: set wait on close }
+ TIOCMGDTRWAIT =IOCTLREAD+$47400+ 90; { modem: get wait on close }
+ TIOCTIMESTAMP =IOCTLREAD+$87400+ 89; { enable/get timestamp
+ * of last input event }
+ TIOCDCDTIMESTAMP =IOCTLREAD+$87400+ 88; { enable/get timestamp
+ * of last DCd rise }
+ TIOCSDRAINWAIT =IOCTLWRITE+$47400+ 87; { set ttywait timeout }
+ TIOCGDRAINWAIT =IOCTLREAD+$47400+ 86; { get ttywait timeout }
+
+ TTYDISC = 0; { termios tty line discipline }
+ SLIPDISC = 4; { serial IP discipline }
+ PPPDISC = 5; { PPP discipline }
+ NETGRAPHDISC = 6; { Netgraph tty node discipline }
+
+ FIOCLEX = IOCTLVOID +$6600+ 1; { set close on exec on fd }
+ FIONCLEX = IOCTLVOID +$6600+ 2; { remove close on exec }
+ FIONREAD = IOCTLREAD +$46600+127; { get # bytes to read }
+ FIONBIO = IOCTLWRITE+$46600+126; { set/clear non-blocking i/o }
+ FIOASYNC = IOCTLWRITE+$46600+125; { set/clear async i/o }
+ FIOSETOWN = IOCTLWRITE+$46600+124; { set owner }
+ FIOGETOWN = IOCTLREAD +$46600+123; { get owner }
+ FIODTYPE = IOCTLREAD +$46600+122; { get d_flags type part }
+ FIOGETLBA = IOCTLREAD +$46600+121; { get start blk # }
+
+{
+ * Defaults on "first" open.
+ }
+ TTYDEF_IFLAG =(BRKINT or ICRNL or IMAXBEL or IXON or IXANY);
+ TTYDEF_OFLAG =(OPOST or ONLCR);
+ TTYDEF_LFLAG =(ECHO or ICANON or ISIG or IEXTEN or ECHOE or ECHOKE or ECHOCTL);
+ TTYDEF_CFLAG =(CREAD or CS8 or HUPCL);
+ TTYDEF_SPEED =(B9600);
+
+
+
+{
+ * Control Character Defaults
+ }
+ CtrlMask = $1f; {\037}
+ CEOF =chr( ORD('d') and CtrlMask);
+ CEOL =chr( $ff and CtrlMask);{ XXX avoid _POSIX_VDISABLE }
+ CERASE =chr( $7F and CtrlMask);
+ CINTR =chr(ORD('c') and CtrlMask);
+ CSTATUS =chr(ORD('t') and CtrlMask);
+ CKILL =chr(ORD('u') and CtrlMask);
+ CMIN =chr(1);
+ CQUIT =chr(034 and CtrlMask); { FS, ^\ }
+ CSUSP =chr(ORD('z') and CtrlMask);
+ CTIME =chr(0);
+ CDSUSP =chr(ORD('y') and CtrlMask);
+ CSTART =chr(ORD('q') and CtrlMask);
+ CSTOP =chr(ORD('s') and CtrlMask);
+ CLNEXT =chr(ORD('v') and CtrlMask);
+ CDISCARD =chr(ORD('o') and CtrlMask);
+ CWERASE =chr(ORD('w') and CtrlMask);
+ CREPRINT =chr(ORD('r') and CtrlMask);
+ CEOT =CEOF;
+{ compat }
+ CBRK =CEOL;
+ CRPRNT =CREPRINT;
+ CFLUSH =CDISCARD;
+
+
+{
+ * TTYDEFCHARS to include an array of default control characters.
+}
+ ttydefchars : array[0..NCCS-1] OF char =(
+ CEOF, CEOL, CEOL, CERASE, CWERASE, CKILL, CREPRINT,
+ POSIX_VDISABLE, CINTR, CQUIT, CSUSP, CDSUSP, CSTART, CSTOP, CLNEXT,
+ CDISCARD, CMIN, CTIME, CSTATUS, POSIX_VDISABLE);
+
diff --git a/rtl/dragonfly/termiosproc.inc b/rtl/dragonfly/termiosproc.inc
new file mode 100644
index 0000000000..491129ae2a
--- /dev/null
+++ b/rtl/dragonfly/termiosproc.inc
@@ -0,0 +1,181 @@
+{
+ This file is part of the Free Pascal run time library.
+ (c) 2000-2003 by Marco van de Voort
+ member of the Free Pascal development team.
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ Termios implementation for FreeBSD
+
+ 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.
+}
+
+
+{******************************************************************************
+ IOCtl and Termios calls
+******************************************************************************}
+
+Function TCGetAttr(fd:cint;var tios:TermIOS):cint; {$ifdef VER2_0}inline;{$endif}
+begin
+ TCGETAttr:=fpIoCtl(Fd,TIOCGETA,@tios);
+end;
+
+
+Function TCSetAttr(fd:cint;OptAct:cint;const tios:TermIOS):cint;
+var
+ nr: TIoCtlRequest;
+begin
+ case OptAct of
+ {the three constants TIOCSETA, TIOCSETAW and TIOCSETAF are
+ unsigned values above $80000000, so that they give range check errors
+ on 32-bit systems
+ Solved by using TIoCtlRequest type for FpIOCtl second parameter }
+ TCSANOW : nr:=TIOCSETA;
+ TCSADRAIN : nr:=TIOCSETAW;
+ TCSAFLUSH : nr:=TIOCSETAF;
+ else
+ begin
+ fpsetErrNo(ESysEINVAL);
+ TCSetAttr:=-1;
+ exit;
+ end;
+ end;
+ TCSetAttr:=fpIOCtl(fd,nr,@Tios);
+end;
+
+
+Procedure CFSetISpeed(var tios:TermIOS;speed:Cardinal); {$ifdef VER2_0}inline;{$endif}
+begin
+ tios.c_ispeed:=speed; {Probably the Bxxxx speed constants}
+end;
+
+
+Procedure CFSetOSpeed(var tios:TermIOS;speed:Cardinal); {$ifdef VER2_0}inline;{$endif}
+begin
+ tios.c_ospeed:=speed;
+end;
+
+
+
+Procedure CFMakeRaw(var tios:TermIOS);
+begin
+ with tios do
+ begin
+ c_iflag:=c_iflag and (not (IMAXBEL or IXOFF or INPCK or BRKINT or
+ PARMRK or ISTRIP or INLCR or IGNCR or ICRNL or IXON or
+ IGNPAR));
+ c_iflag:=c_iflag OR IGNBRK;
+ c_oflag:=c_oflag and (not OPOST);
+ c_lflag:=c_lflag and (not (ECHO or ECHOE or ECHOK or ECHONL or ICANON or
+ ISIG or IEXTEN or NOFLSH or TOSTOP or PENDIN));
+ c_cflag:=(c_cflag and (not (CSIZE or PARENB))) or (CS8 OR cread);
+ c_cc[VMIN]:=1;
+ c_cc[VTIME]:=0;
+ end;
+end;
+
+Function TCSendBreak(fd,duration:cint):cint; {$ifdef VER2_0}inline;{$endif}
+var
+ sleepytime : ttimeval;
+begin
+ sleepytime.tv_sec := 0;
+ sleepytime.tv_usec := 400000;
+ if fpioctl(fd, TIOCSBRK, nil) = -1 then
+ exit(-1);
+ fpselect(0, nil, nil, nil, @sleepytime);
+ if fpioctl(fd, TIOCCBRK, nil) = -1 then
+ exit(-1);
+ TCSendBreak:=0;
+end;
+
+Function TCSetPGrp(fd,id:cint):cint; {$ifdef VER2_0}inline;{$endif}
+begin
+ TCSetPGrp:=fpIOCtl(fd,TIOCSPGRP,pointer(id));
+end;
+
+
+Function TCGetPGrp(fd:cint;var id:cint):cint; {$ifdef VER2_0}inline;{$endif}
+begin
+ TCGetPGrp:=fpIOCtl(fd,TIOCGPGRP,@id);
+end;
+
+Function TCDrain(fd:cint):cint; {$ifdef VER2_0}inline;{$endif}
+begin
+ TCDrain:=fpIOCtl(fd,TIOCDRAIN,nil); {Should set timeout to 1 first?}
+end;
+
+const
+ _POSIX_VDISABLE = $ff;
+
+Function TCFlow(fd,act:cint):cint; {$ifdef VER2_0}inline;{$endif}
+var
+ term:Termios;
+ c : cuchar;
+ tmp : cint;
+begin
+ case act OF
+ TCOOFF : TCFlow:=fpIoctl(fd,TIOCSTOP,nil);
+ TCOOn : TCFlow:=fpIOctl(Fd,TIOCStart,nil);
+ TCION,
+ TCIOFF : begin
+ if tcgetattr(fd, term) = -1 then
+ exit(-1);
+ if act=TCIOFF then
+ tmp:=VSTOP
+ else
+ tmp:=VSTART;
+ c:=term.c_cc[tmp];
+ if (c <> _POSIX_VDISABLE) and
+ (fpwrite(fd, c, sizeof(c)) = -1) then
+ exit (-1);
+ TCFlow:=0;
+ end;
+ else
+ begin
+ errno := esysEINVAL;
+ exit(-1);
+ end;
+ end;
+end;
+
+const FREAD = 1; // marked "BSD visible"
+ FWRITE = 2;
+
+Function TCFlush(fd,qsel:cint):cint; {$ifdef VER2_0}inline;{$endif}
+var comval : cint;
+begin
+ case qsel of
+ TCIFlush : comval:=FREAD;
+ TCOFlush : comval:=FWRITE;
+ TCIOFlush : comval:=FREAD or FWRITE;
+ else
+ begin
+ errno:=ESysEINVAL;
+ exit(-1);
+ end;
+ end;
+ TCFlush:=fpIOCtl(fd,TIOCFLUSH,pointer(@comval));
+end;
+
+Function IsATTY (Handle:cint):cint;
+{
+ Check if the filehandle described by 'handle' is a TTY (Terminal)
+}
+var
+ t : Termios;
+begin
+ IsAtty:=ord(TCGetAttr(Handle,t) <> -1);
+end;
+
+
+Function IsATTY(var f: text):cint; {$ifdef VER2_0}inline;{$endif}
+{
+ Idem as previous, only now for text variables.
+}
+begin
+ IsATTY:=IsaTTY(textrec(f).handle);
+end;
+
diff --git a/rtl/dragonfly/unxconst.inc b/rtl/dragonfly/unxconst.inc
new file mode 100644
index 0000000000..b9974e8207
--- /dev/null
+++ b/rtl/dragonfly/unxconst.inc
@@ -0,0 +1,112 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 1999-2000 by Michael Van Canneyt,
+ member of the Free Pascal development team.
+
+ Constants for Unix unit.
+
+ 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.
+
+ **********************************************************************}
+
+
+const
+
+ { Things for LSEEK call}
+ Seek_set = 0;
+ Seek_Cur = 1;
+ Seek_End = 2;
+
+ { Things for OPEN call - after include/sys/fcntl.h,
+ BSD specifies these constants in hex }
+ Open_Accmode = 3;
+ Open_RdOnly = 0;
+ Open_WrOnly = 1;
+ Open_RdWr = 2;
+ Open_NonBlock = 4;
+ Open_Append = 8;
+ Open_ShLock = $10;
+ Open_ExLock = $20;
+ Open_ASync = $40;
+ Open_FSync = $80;
+ Open_NoFollow = $100;
+ Open_Create = $200; {BSD convention}
+ Open_Creat = $200; {Linux convention}
+ Open_Trunc = $400;
+ Open_Excl = $800;
+ Open_NoCTTY = $8000;
+
+ { The waitpid uses the following options:}
+ Wait_NoHang = 1;
+ Wait_UnTraced = 2;
+ Wait_Any = -1;
+ Wait_MyPGRP = 0;
+
+
+ { Constants to check stat.mode - checked all STAT constants with BSD}
+ STAT_IFMT = $f000; {00170000 }
+ STAT_IFSOCK = $c000; {0140000 }
+ STAT_IFLNK = $a000; {0120000 }
+ STAT_IFREG = $8000; {0100000 }
+ STAT_IFBLK = $6000; {0060000 }
+ STAT_IFDIR = $4000; {0040000 }
+ STAT_IFCHR = $2000; {0020000 }
+ STAT_IFIFO = $1000; {0010000 }
+ STAT_ISUID = $0800; {0004000 }
+ STAT_ISGID = $0400; {0002000 }
+ STAT_ISVTX = $0200; {0001000}
+ { Constants to check permissions all }
+ STAT_IRWXO = $7;
+ STAT_IROTH = $4;
+ STAT_IWOTH = $2;
+ STAT_IXOTH = $1;
+
+ STAT_IRWXG = STAT_IRWXO shl 3;
+ STAT_IRGRP = STAT_IROTH shl 3;
+ STAT_IWGRP = STAT_IWOTH shl 3;
+ STAT_IXGRP = STAT_IXOTH shl 3;
+
+ STAT_IRWXU = STAT_IRWXO shl 6;
+ STAT_IRUSR = STAT_IROTH shl 6;
+ STAT_IWUSR = STAT_IWOTH shl 6;
+ STAT_IXUSR = STAT_IXOTH shl 6;
+
+ { Constants to test the type of filesystem }
+ fs_old_ext2 = $ef51;
+ fs_ext2 = $ef53;
+ fs_ext = $137d;
+ fs_iso = $9660;
+ fs_minix = $137f;
+ fs_minix_30 = $138f;
+ fs_minux_V2 = $2468;
+ fs_msdos = $4d44;
+ fs_nfs = $6969;
+ fs_proc = $9fa0;
+ fs_xia = $012FD16D;
+
+ {Constansts Termios/Ioctl (used in Do_IsDevice) }
+ IOCtl_TCGETS= $40000000+$2C7400+ 19; // TCGETS is also in termios.inc, but the sysunix needs only this
+
+ ITimer_Real =0;
+ ITimer_Virtual =1;
+ ITimer_Prof =2;
+
+{
+ {Checked for BSD using Linuxthreads port}
+ { cloning flags }
+ CSIGNAL = $000000ff; // signal mask to be sent at exit
+ CLONE_VM = $00000100; // set if VM shared between processes
+ CLONE_FS = $00000200; // set if fs info shared between processes
+ CLONE_FILES = $00000400; // set if open files shared between processes
+ CLONE_SIGHAND = $00000800; // set if signal handlers shared
+ CLONE_PID = $00001000; // set if pid shared
+
+type
+ TCloneFunc=function(args:pointer):longint;cdecl;
+}
+
diff --git a/rtl/dragonfly/unxfunc.inc b/rtl/dragonfly/unxfunc.inc
new file mode 100644
index 0000000000..fda17c389c
--- /dev/null
+++ b/rtl/dragonfly/unxfunc.inc
@@ -0,0 +1,57 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2000 by Marco van de Voort
+ member of the Free Pascal development team.
+
+ 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.
+
+**********************************************************************}
+
+{$ifndef HAS_LIBC_PIPING}
+Function PClose(Var F:file) : cint;
+var
+ pl : ^cint;
+ res : cint;
+
+begin
+ fpclose(filerec(F).Handle);
+{ closed our side, Now wait for the other - this appears to be needed ?? }
+ pl:=@(filerec(f).userdata[2]);
+ fpwaitpid(pl^,@res,0);
+ pclose:=res shr 8;
+end;
+
+Function PClose(Var F:text) :cint;
+var
+ pl : ^longint;
+ res : longint;
+
+begin
+ fpclose(Textrec(F).Handle);
+{ closed our side, Now wait for the other - this appears to be needed ?? }
+ pl:=@(textrec(f).userdata[2]);
+ fpwaitpid(pl^,@res,0);
+ pclose:=res shr 8;
+end;
+{$ENDIF}
+
+
+Function AssignPipe(var pipe_in,pipe_out:cint):cint; [public, alias : 'FPC_SYSC_ASSIGNPIPE'];
+{
+ Sets up a pair of file variables, which act as a pipe. The first one can
+ be read from, the second one can be written to.
+ If the operation was unsuccesful, errno is set.
+}
+var
+ pip : tfildes;
+begin
+ assignPipe:=fppipe(pip);
+ pipe_in:=pip[0];
+ pipe_out:=pip[1];
+end;
+
diff --git a/rtl/dragonfly/unxsysc.inc b/rtl/dragonfly/unxsysc.inc
new file mode 100644
index 0000000000..538e1fcf2e
--- /dev/null
+++ b/rtl/dragonfly/unxsysc.inc
@@ -0,0 +1,91 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2003 Marco van de Voort
+ member of the Free Pascal development team.
+
+ 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 clone(func:TCloneFunc;sp:pointer;flags:longint;args:pointer):longint;
+{NOT IMPLEMENTED YET UNDER BSD}
+begin // perhaps it is better to implement the hack from solaris then this msg
+ HALT;
+END;
+
+ if (pointer(func)=nil) or (sp=nil) then
+ begin
+ Lfpseterrno(EsysEInval);
+ exit(-1);
+ end;
+ asm
+ { Insert the argument onto the new stack. }
+ movl sp,%ecx
+ subl $8,%ecx
+ movl args,%eax
+ movl %eax,4(%ecx)
+
+ { Save the function pointer as the zeroth argument.
+ It will be popped off in the child in the ebx frobbing below. }
+ movl func,%eax
+ movl %eax,0(%ecx)
+
+ { Do the system call }
+ pushl %ebx
+ pushl %ebx
+ // movl flags,%ebx
+ movl $251,%eax
+ int $0x80
+ popl %ebx
+ popl %ebx
+ test %eax,%eax
+ jnz .Lclone_end
+
+ { We're in the new thread }
+ subl %ebp,%ebp { terminate the stack frame }
+ call *%ebx
+ { exit process }
+ movl %eax,%ebx
+ movl $1,%eax
+ int $0x80
+
+.Lclone_end:
+ movl %eax,__RESULT
+ end;
+end;
+*)
+
+Function fpfStatFS (Fd: cint; Info:pstatfs):cint;
+begin
+ fpfstatfs:=do_SysCall(SysCall_nr_fstatfs,fd,TSysParam(info))
+end;
+
+Function fpStatFS (Path:pchar; Info:pstatfs):cint;
+
+begin
+ fpstatfs:=do_SysCall(SysCall_nr_statfs,TSysParam(path),TSysParam(Info))
+end;
+
+Function fpfsync (fd : cint) : cint;
+
+begin
+ fpfsync:=do_SysCall(syscall_nr_fsync, fd);
+end;
+
+Function fpFlock (fd,mode : longint) : cint;
+
+begin
+ fpFlock:=do_syscall(syscall_nr_flock,fd,mode);
+end;
+
+function MUnMap (P : Pointer; Size : size_t) : cint;
+begin
+ MUnMap:=do_syscall(syscall_nr_munmap,TSysParam(P),Size);
+end;
+
diff --git a/rtl/dragonfly/x86_64/bsyscall.inc b/rtl/dragonfly/x86_64/bsyscall.inc
new file mode 100644
index 0000000000..33c542fccc
--- /dev/null
+++ b/rtl/dragonfly/x86_64/bsyscall.inc
@@ -0,0 +1 @@
+{ empty bsyscall }
diff --git a/rtl/dragonfly/x86_64/cprt0.as b/rtl/dragonfly/x86_64/cprt0.as
new file mode 100644
index 0000000000..10dedb9593
--- /dev/null
+++ b/rtl/dragonfly/x86_64/cprt0.as
@@ -0,0 +1,198 @@
+#
+# This file is part of the Free Pascal run time library.
+# Copyright (c) 1999-2000 by Marco van de Voort, Pierre Mueller
+# members of the Free Pascal development team.
+#
+# 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.
+#
+#**********************************************************************}
+#
+# DragonFly ELF startup code for Free Pascal for dynamical linking to libc.
+#
+# To avoid needing a "COMPAT" system, patch the constant following the
+# "DragonFly" field in the abitag to the relevant ABI number
+
+ .file "crt1.c"
+ .section .note.ABI-tag,"a",@progbits
+ .align 4
+ .type abitag, @object
+ .size abitag, 28
+abitag:
+ .long 10
+ .long 4
+ .long 1
+ .string "DragonFly"
+ .align 4
+ .long 400000
+.globl __progname
+ .section .rodata
+.LC0:
+ .string ""
+ .data
+ .align 8
+ .type __progname, @object
+ .size __progname, 8
+__progname:
+ .quad .LC0
+ .text
+ .p2align 4,,15
+.globl _start
+ .type _start, @function
+_start:
+.LFB5:
+ pushq %rbp
+.LCFI0:
+ movq %rsp, %rbp
+.LCFI1:
+ subq $48, %rsp
+.LCFI2:
+ movq %rdi, -40(%rbp)
+ movq %rsi, -48(%rbp)
+ movq -40(%rbp), %rax
+ movq (%rax), %rax
+ movl %eax, -28(%rbp)
+ movl %eax, operatingsystem_parameter_argc(%rip)
+ movq -40(%rbp), %rax
+ addq $8, %rax
+ movq %rax, -24(%rbp)
+ movq %rax, operatingsystem_parameter_argv(%rip)
+ movq -40(%rbp), %rdx
+ addq $16, %rdx
+ movl -28(%rbp), %eax
+ cltq
+ salq $3, %rax
+ leaq (%rdx,%rax), %rax
+ movq %rax, -16(%rbp)
+ movq -16(%rbp), %rax
+ movq %rax, operatingsystem_parameter_envp(%rip)
+ movq %rax, environ(%rip)
+ cmpl $0, -28(%rbp)
+ jle .L2
+ movq -24(%rbp), %rax
+ movq (%rax), %rax
+ testq %rax, %rax
+ je .L2
+ movq -24(%rbp), %rax
+ movq (%rax), %rax
+ movq %rax, __progname(%rip)
+ movq __progname(%rip), %rax
+ movq %rax, -8(%rbp)
+ jmp .L5
+.L6:
+ movq -8(%rbp), %rax
+ movzbl (%rax), %eax
+ cmpb $47, %al
+ jne .L7
+ movq -8(%rbp), %rax
+ addq $1, %rax
+ movq %rax, __progname(%rip)
+.L7:
+ addq $1, -8(%rbp)
+.L5:
+ movq -8(%rbp), %rax
+ movzbl (%rax), %eax
+ testb %al, %al
+ jne .L6
+.L2:
+ movl $_DYNAMIC, %eax
+ testq %rax, %rax
+ je .L9
+ movq -48(%rbp), %rdi
+ call atexit
+ jmp .L11
+.L9:
+ call _init_tls
+.L11:
+ movl $_fini, %edi
+ call atexit
+ call _init
+# movq -16(%rbp), %rdx
+# movq -24(%rbp), %rsi
+# movl -28(%rbp), %edi
+ xorq %rbp,%rbp
+ call main
+ movl %eax, %edi
+ call exit
+.LFE5:
+ .size _start, .-_start
+.weak __error
+.type __error, @function
+__error:
+.LFB9:
+
+ pushq %rbp
+ movq %rsp, %rbp
+ movq %fs:0, %rdx
+ movq errno@gottpoff(%rip), %rax
+ addq %rdx, %rax
+ popq %rbp
+ ret
+
+.LFE9:
+ .size __error, .-__error
+
+.bss
+ .type __stkptr,@object
+ .size __stkptr,8
+ .global __stkptr
+__stkptr:
+ .skip 8
+
+ .type operatingsystem_parameters,@object
+ .size operatingsystem_parameters,24
+operatingsystem_parameters:
+ .skip 3*8
+
+ .global operatingsystem_parameter_envp
+ .global operatingsystem_parameter_argc
+ .global operatingsystem_parameter_argv
+ .set operatingsystem_parameter_envp,operatingsystem_parameters+0
+ .set operatingsystem_parameter_argc,operatingsystem_parameters+8
+ .set operatingsystem_parameter_argv,operatingsystem_parameters+16
+
+ .comm environ,8,8
+ .weak _DYNAMIC
+ .section .eh_frame,"a",@progbits
+.Lframe1:
+ .long .LECIE1-.LSCIE1
+.LSCIE1:
+ .long 0x0
+ .byte 0x1
+ .string "zR"
+ .uleb128 0x1
+ .sleb128 -8
+ .byte 0x10
+ .uleb128 0x1
+ .byte 0x3
+ .byte 0xc
+ .uleb128 0x7
+ .uleb128 0x8
+ .byte 0x90
+ .uleb128 0x1
+ .align 8
+.LECIE1:
+.LSFDE1:
+ .long .LEFDE1-.LASFDE1
+.LASFDE1:
+ .long .LASFDE1-.Lframe1
+ .long .LFB5
+ .long .LFE5-.LFB5
+ .uleb128 0x0
+ .byte 0x4
+ .long .LCFI0-.LFB5
+ .byte 0xe
+ .uleb128 0x10
+ .byte 0x86
+ .uleb128 0x2
+ .byte 0x4
+ .long .LCFI1-.LCFI0
+ .byte 0xd
+ .uleb128 0x6
+ .align 8
+.LEFDE1:
+ .ident "[DragonFly]"
diff --git a/rtl/dragonfly/x86_64/dllprt0.as b/rtl/dragonfly/x86_64/dllprt0.as
new file mode 100644
index 0000000000..969acd24c9
--- /dev/null
+++ b/rtl/dragonfly/x86_64/dllprt0.as
@@ -0,0 +1,70 @@
+#
+# This file is part of the Free Pascal run time library.
+# Copyright (c) 1999-2000 by Marco van de Voort, Michael Van Canneyt
+# and Peter Vreman
+# members of the Free Pascal development team.
+#
+# 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.
+#
+#**********************************************************************}
+#
+# DragonFly standard (shared) ELF startup code for Free Pascal
+#
+# DragonFly RunTime dynamic loader only
+# calls the functions specified by -init
+# as functions without parameters
+# Thus, it is not possible to retrieve argc, argv and envp
+# for libraries.
+# On x86_64 CPU, using weak for the operatingsystem_parameter_XXX
+# allows to bind to main program parameters,
+# but this does not seem to work for i386 loader.
+
+ .file "crt1.c"
+ .section .note.ABI-tag,"a",@progbits
+ .p2align 2
+ .type abitag, @object
+ .size abitag, 28
+abitag:
+ .long 10
+ .long 4
+ .long 1
+ .string "DragonFly"
+ .align 4
+ .long 400000
+
+ .text
+ .p2align 2,,3
+ .globl FPC_LIB_START
+ .type FPC_LIB_START,@function
+FPC_LIB_START:
+ .globl FPC_SHARED_LIB_START
+ .type FPC_SHARED_LIB_START,@function
+FPC_SHARED_LIB_START:
+ # jmp _startlib@PLT
+ movb $1,operatingsystem_islibrary(%rip)
+ #movq operatingsystem_islibrary@GOTPCREL(%rip),%rax
+ #movb $1,(%rax)
+ call PASCALMAIN@PLT
+ ret
+ .p2align 2,,3
+ .globl _haltproc
+ .type _haltproc,@function
+/* this routine is only called when the halt() routine of the RTL embedded in
+ the shared library is called */
+_haltproc:
+ call FPC_LIB_EXIT@PLT
+ movl $1,%eax /* exit syscall */
+ movq operatingsystem_result(%rip),%rbx
+ movzwl (%rbx),%edi
+ syscall
+ jmp _haltproc@PLT
+ /* Do not fail linkage if argc, argv and envp are not found. */
+ .weak operatingsystem_parameter_argc
+ .weak operatingsystem_parameter_argv
+ .weak operatingsystem_parameter_envp
+
diff --git a/rtl/dragonfly/x86_64/gprt0.as b/rtl/dragonfly/x86_64/gprt0.as
new file mode 100644
index 0000000000..3a0fedf716
--- /dev/null
+++ b/rtl/dragonfly/x86_64/gprt0.as
@@ -0,0 +1,136 @@
+ .file "crt1.c"
+ .section .note.ABI-tag,"a",@progbits
+ .p2align 2
+ .type abitag, @object
+ .size abitag, 28
+abitag:
+ .long 10
+ .long 4
+ .long 1
+ .string "DragonFly"
+ .align 4
+ .long 400000
+ .section .rodata
+.LC0:
+ .string ""
+.globl __progname
+ .data
+ .p2align 3
+ .type __progname, @object
+ .size __progname, 8
+__progname:
+ .quad .LC0
+ .text
+ .p2align 2,,3
+.globl _start
+ .type _start, @function
+_start:
+.LFB9:
+ pushq %rbp
+.LCFI0:
+ movq %rsp, %rbp
+.LCFI1:
+ subq $48, %rsp
+.LCFI2:
+ movq %rdi, -8(%rbp)
+ movq %rsi, -16(%rbp)
+ movq -8(%rbp), %rax
+ movl (%rax), %eax
+ movl %eax, -20(%rbp)
+ movl %eax, operatingsystem_parameter_argc(%rip)
+ movq -8(%rbp), %rax
+ addq $8, %rax
+ movq %rax, -32(%rbp)
+ movq %rax, operatingsystem_parameter_argv(%rip)
+ movl -20(%rbp), %eax
+ cltq
+ salq $3, %rax
+ addq -8(%rbp), %rax
+ addq $16, %rax
+ movq %rax, -40(%rbp)
+ movq %rax, operatingsystem_parameter_envp(%rip)
+ movq -40(%rbp), %rax
+ movq %rax, environ(%rip)
+ cmpl $0, -20(%rbp)
+ jle .L5
+ movq -32(%rbp), %rax
+ cmpq $0, (%rax)
+ je .L5
+ movq -32(%rbp), %rax
+ movq (%rax), %rax
+ movq %rax, __progname(%rip)
+ movq __progname(%rip), %rax
+ movq %rax, -48(%rbp)
+.L6:
+ movq -48(%rbp), %rax
+ cmpb $0, (%rax)
+ jne .L9
+ jmp .L5
+.L9:
+ movq -48(%rbp), %rax
+ cmpb $47, (%rax)
+ jne .L8
+ movq -48(%rbp), %rax
+ incq %rax
+ movq %rax, __progname(%rip)
+.L8:
+ leaq -48(%rbp), %rax
+ incq (%rax)
+ jmp .L6
+.L5:
+# movl $_DYNAMIC, %eax
+# testq %rax, %rax
+# je .L11
+# movq -16(%rbp), %rdi
+# call atexit
+.L11:
+# movl $_fini, %edi
+# call atexit
+# call _init
+# movq -40(%rbp), %rdx #env
+# movq -32(%rbp), %rsi #argv
+# movl -20(%rbp), %edi # argc
+ xorq %rbp,%rbp
+ call main
+ movl %eax, %edi
+ call exit
+.LFE9:
+ .size _start, .-_start
+ .comm environ,8,8
+ .weak _DYNAMIC
+ .section .eh_frame,"a",@progbits
+.Lframe1:
+ .long .LECIE1-.LSCIE1
+.LSCIE1:
+ .long 0x0
+ .byte 0x1
+ .string ""
+ .uleb128 0x1
+ .sleb128 -8
+ .byte 0x10
+ .byte 0xc
+ .uleb128 0x7
+ .uleb128 0x8
+ .byte 0x90
+ .uleb128 0x1
+ .p2align 3
+.LECIE1:
+.LSFDE1:
+ .long .LEFDE1-.LASFDE1
+.LASFDE1:
+ .long .LASFDE1-.Lframe1
+ .quad .LFB9
+ .quad .LFE9-.LFB9
+ .byte 0x4
+ .long .LCFI0-.LFB9
+ .byte 0xe
+ .uleb128 0x10
+ .byte 0x86
+ .uleb128 0x2
+ .byte 0x4
+ .long .LCFI1-.LCFI0
+ .byte 0xd
+ .uleb128 0x6
+ .p2align 3
+.LEFDE1:
+ .ident "[DragonFly]"
diff --git a/rtl/dragonfly/x86_64/prt0.as b/rtl/dragonfly/x86_64/prt0.as
new file mode 100644
index 0000000000..0bdfa38611
--- /dev/null
+++ b/rtl/dragonfly/x86_64/prt0.as
@@ -0,0 +1,158 @@
+ .file "crt1.c"
+ .section .note.ABI-tag,"a",@progbits
+ .p2align 2
+ .type abitag, @object
+ .size abitag, 28
+abitag:
+ .long 10
+ .long 4
+ .long 1
+ .string "DragonFly"
+ .align 4
+ .long 400000
+
+ .section .rodata
+.LC0:
+ .string ""
+.globl __progname
+ .data
+ .p2align 3
+ .type __progname, @object
+ .size __progname, 8
+__progname:
+ .quad .LC0
+ .text
+ .p2align 2,,3
+.globl _start
+ .type _start, @function
+_start:
+.LFB9:
+ pushq %rbp
+.LCFI0:
+ movq %rsp, %rbp
+.LCFI1:
+ subq $48, %rsp
+.LCFI2:
+ movq %rdi, -8(%rbp)
+ movq %rsi, -16(%rbp)
+ movq -8(%rbp), %rax
+ movl (%rax), %eax
+ movl %eax, -20(%rbp)
+ movl %eax, operatingsystem_parameter_argc(%rip)
+ movq -8(%rbp), %rax
+ addq $8, %rax
+ movq %rax, -32(%rbp)
+ movq %rax, operatingsystem_parameter_argv(%rip)
+ movl -20(%rbp), %eax
+ cltq
+ salq $3, %rax
+ addq -8(%rbp), %rax
+ addq $16, %rax
+ movq %rax, -40(%rbp)
+ movq %rax, operatingsystem_parameter_envp(%rip)
+ movq -40(%rbp), %rax
+ movq %rax, environ(%rip)
+ cmpl $0, -20(%rbp)
+ jle .L5
+ movq -32(%rbp), %rax
+ cmpq $0, (%rax)
+ je .L5
+ movq -32(%rbp), %rax
+ movq (%rax), %rax
+ movq %rax, __progname(%rip)
+ movq __progname(%rip), %rax
+ movq %rax, -48(%rbp)
+.L6:
+ movq -48(%rbp), %rax
+ cmpb $0, (%rax)
+ jne .L9
+ jmp .L5
+.L9:
+ movq -48(%rbp), %rax
+ cmpb $47, (%rax)
+ jne .L8
+ movq -48(%rbp), %rax
+ incq %rax
+ movq %rax, __progname(%rip)
+.L8:
+ leaq -48(%rbp), %rax
+ incq (%rax)
+ jmp .L6
+.L5:
+# movl $_DYNAMIC, %eax
+# testq %rax, %rax
+# je .L11
+# movq -16(%rbp), %rdi
+# call atexit
+.L11:
+# movl $_fini, %edi
+# call atexit
+# call _init
+# movq -40(%rbp), %rdx #env
+# movq -32(%rbp), %rsi #argv
+# movl -20(%rbp), %edi # argc
+ xorq %rbp,%rbp
+ call main
+ movl %eax, %edi
+# call exit
+.LFE9:
+ .size _start, .-_start
+
+.bss
+ .type __stkptr,@object
+ .size __stkptr,8
+ .global __stkptr
+__stkptr:
+ .skip 8
+
+ .type operatingsystem_parameters,@object
+ .size operatingsystem_parameters,24
+operatingsystem_parameters:
+ .skip 3*8
+
+ .global operatingsystem_parameter_envp
+ .global operatingsystem_parameter_argc
+ .global operatingsystem_parameter_argv
+ .set operatingsystem_parameter_envp,operatingsystem_parameters+0
+ .set operatingsystem_parameter_argc,operatingsystem_parameters+8
+ .set operatingsystem_parameter_argv,operatingsystem_parameters+16
+
+
+ .comm environ,8,8
+ .weak _DYNAMIC
+ .section .eh_frame,"a",@progbits
+.Lframe1:
+ .long .LECIE1-.LSCIE1
+.LSCIE1:
+ .long 0x0
+ .byte 0x1
+ .string ""
+ .uleb128 0x1
+ .sleb128 -8
+ .byte 0x10
+ .byte 0xc
+ .uleb128 0x7
+ .uleb128 0x8
+ .byte 0x90
+ .uleb128 0x1
+ .p2align 3
+.LECIE1:
+.LSFDE1:
+ .long .LEFDE1-.LASFDE1
+.LASFDE1:
+ .long .LASFDE1-.Lframe1
+ .quad .LFB9
+ .quad .LFE9-.LFB9
+ .byte 0x4
+ .long .LCFI0-.LFB9
+ .byte 0xe
+ .uleb128 0x10
+ .byte 0x86
+ .uleb128 0x2
+ .byte 0x4
+ .long .LCFI1-.LCFI0
+ .byte 0xd
+ .uleb128 0x6
+ .p2align 3
+.LEFDE1:
+ .ident "[DragonFly]"
diff --git a/rtl/dragonfly/x86_64/si_c.inc b/rtl/dragonfly/x86_64/si_c.inc
new file mode 100644
index 0000000000..a450e232f5
--- /dev/null
+++ b/rtl/dragonfly/x86_64/si_c.inc
@@ -0,0 +1,92 @@
+
+Type
+ TCleanup = procedure; cdecl;
+
+var
+ environ : ppchar; cvar; public name '__environ';
+ progname: pchar = #0#0; cvar; public name '__progname';
+ dynamic : pchar; external name '_DYNAMIC'; // #pragma weak
+
+procedure atexit(prc:TCleanup); cdecl external name 'atexit';
+procedure cleanup(prc:TCleanup); cdecl external name 'cleanup';
+procedure init_tls; cdecl; external name 'init_tls';
+procedure fini; cdecl; external name '_fini';
+procedure init; cdecl; external name '_init';
+procedure libc_exit(exitcode:longint);cdecl; external name 'exit';
+function main(nrarg:longint;pp:ppchar;env:ppchar):longint; cdecl; external name 'main';
+
+{$ifdef gcrt}
+ procedure cmcleanup; cdecl; external name '_mcleanup';
+ procedure monstratup(p,p2:pointer); cdecl; external name 'monstartup';
+
+var
+ eprol:longint; external name 'eprol';
+ etext:longint; external name 'etext';
+{$endif}
+
+procedure start(ap:ppchar;cleanup:TCleanup);
+
+var argc: longint;
+ argv: ppchar;
+ env : ppchar;
+ s : pchar;
+begin
+ argc:=plongint(ap)^;
+ argv:=ppchar(ap[1]);
+ env:= ppchar(ap[2+argc]);
+ environ:=env;
+ if (argc>0) and (argv[0]<>#0) Then
+ begin
+ progname:=argv[0];
+ s:=progname;
+ while s^<>#0 do
+ begin
+ if s^='/' then
+ progname:=@s[1];
+ inc(s);
+ end;
+ end;
+ if assigned(pchar(@dynamic)) then // I suspect this is a trick to find
+ // out runtime if we are shared
+ // linking, so the same code can be used
+ // for static and shared linking
+ atexit(cleanup)
+ else
+ init_tls;
+ {$ifdef GCRT}
+ atexit(@_mcleanup);
+ {$endif}
+ atexit(@fini);
+ {$ifdef GCRT}
+ monstartup(@eprol,@etext);
+ {$endif}
+ init;
+ {$ifdef GCRT}
+ asm
+ eprol:
+ end;
+ {$endif}
+
+ libc_exit(main(argc,argv,env)); // doesn't return
+ asm
+ { We need this stuff to make gdb behave itself, otherwise
+ gdb will chokes with SIGILL when trying to debug apps.
+ }
+ .section ".note.ABI-tag", "a"
+ .align 4
+ .long 10
+ .long 4
+ .long 1
+ .asciz "DragonFly"
+ .align 4
+ .long 400000
+ .align 4
+ .section .note.GNU-stack,"",@progbits
+ end;
+end;
+
+
+
+begin
+end.
+
diff --git a/rtl/dragonfly/x86_64/sighnd.inc b/rtl/dragonfly/x86_64/sighnd.inc
new file mode 100644
index 0000000000..0cc842284e
--- /dev/null
+++ b/rtl/dragonfly/x86_64/sighnd.inc
@@ -0,0 +1,54 @@
+{
+ This file is part of the Free Pascal run time library.
+ (c) 2000-2003 by Marco van de Voort
+ member of the Free Pascal development team.
+
+ See the file COPYING.FPC, included in this distribution,
+ for details about the copyright.
+
+ Signalhandler for DragonFly
+
+ 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 SignalToRunerror(Sig: cint; info : psiginfo; SigContext:PSigContext); public name '_FPC_DEFAULTSIGHANDLER'; cdecl;
+
+var
+ res : word;
+
+begin
+ res:=0;
+ case sig of
+ SIGFPE :
+ begin
+ Case Info^.si_code Of
+ FPE_INTDIV : Res:=200; {integer divide fault. Div0?}
+ FPE_FLTOVF : Res:=205; {Overflow trap}
+ FPE_FLTUND : Res:=206; {Stack over/underflow}
+ FPE_FLTRES : Res:=216; {Device not available}
+ FPE_FLTINV : Res:=216; {Invalid floating point operation}
+ Else
+ Res:=208; {coprocessor error}
+ End;
+ sysResetFPU;
+ End;
+ SIGILL,
+ SIGBUS,
+ SIGSEGV :
+ res:=216;
+ SIGINT:
+ res:=217;
+ SIGQUIT:
+ res:=233;
+ end;
+ {$ifdef FPC_USE_SIGPROCMASK}
+ reenable_signal(sig);
+ {$endif }
+{ give runtime error at the position where the signal was raised }
+ if res<>0 then
+ begin
+ HandleError(res);
+ end;
+end;
diff --git a/rtl/dragonfly/x86_64/signal.inc b/rtl/dragonfly/x86_64/signal.inc
new file mode 100644
index 0000000000..fb6be920cd
--- /dev/null
+++ b/rtl/dragonfly/x86_64/signal.inc
@@ -0,0 +1,201 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 1999-2000 by Jonas Maebe,
+ member of the Free Pascal development team.
+
+ 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.
+
+ **********************************************************************}
+
+
+Const { For sending a signal }
+
+ SA_NOCLDSTOP = 8;
+ SA_ONSTACK = $001; { take signal on signal stack }
+ SA_RESTART = $002; { restart system call on signal return }
+ SA_RESETHAND = $004; { reset to SIG_DFL when taking signal }
+ SA_NODEFER = $010; { don't mask the signal we're delivering }
+ SA_NOCLDWAIT = $020; { don't keep zombies around }
+ SA_SIGINFO = $040; { signal handler with SA_SIGINFO args }
+
+ SIG_BLOCK = 1;
+ SIG_UNBLOCK = 2;
+ SIG_SETMASK = 3;
+
+{BSD Checked}
+ SIG_DFL = 0 ;
+ SIG_IGN = 1 ;
+ SIG_ERR = -1 ;
+
+ SIGHUP = 1;
+ SIGINT = 2;
+ SIGQUIT = 3;
+ SIGILL = 4;
+ SIGTRAP = 5;
+ SIGABRT = 6;
+ SIGIOT = 6;
+ SIGEMT = 7;
+ SIGFPE = 8;
+ SIGKILL = 9;
+ SIGBUS = 10;
+ SIGSEGV = 11;
+ SIGSYS = 12;
+ SIGPIPE = 13;
+ SIGALRM = 14;
+ SIGTERM = 15;
+ SIGURG = 16;
+ SIGSTOP = 17;
+ SIGTSTP = 18;
+ SIGCONT = 19;
+ SIGCHLD = 20;
+ SIGTTIN = 21;
+ SIGTTOU = 22;
+ SIGIO = 23;
+ SIGXCPU = 24;
+ SIGXFSZ = 25;
+ SIGVTALRM = 26;
+ SIGPROF = 27;
+ SIGWINCH = 28;
+ SIGINFO = 29;
+ SIGUSR1 = 30;
+ SIGUSR2 = 31;
+
+
+{$packrecords C}
+const
+ SI_PAD_SIZE = ((128/sizeof(longint)) - 3);
+
+{
+ * The sequence of the fields/registers in struct sigcontext should match
+ * those in mcontext_t.
+ }
+
+type sigset_t = array[0..3] of Longint;
+
+ psigcontext = ^sigcontextrec;
+ PSigContextRec = ^SigContextRec;
+ SigContextRec = record
+ sc_mask : sigset_t; { signal mask to restore }
+ sc_onstack : cint64; { sigstack state to restore }
+
+ sc_rdi : cint64; { machine state (struct trapframe): }
+ sc_rsi : cint64;
+ sc_rdx : cint64;
+ sc_rcx : cint64;
+ sc_r8 : cint64;
+ sc_r9 : cint64;
+ sc_rax : cint64;
+ sc_rbx : cint64;
+ sc_rbp : cint64;
+ sc_r10 : cint64;
+ sc_r11 : cint64;
+ sc_r12 : cint64;
+ sc_r13 : cint64;
+ sc_r14 : cint64;
+ sc_r15 : cint64;
+ sc_xflags : cint64;
+ sc_trapno : cint64;
+ sc_addr : cint64;
+ sc_flags : cint64;
+ sc_err : cint64;
+ sc_rip : cint64;
+ sc_cs : cint64;
+ sc_rflags : cint64;
+ sc_rsp : cint64;
+ sc_ss : cint64;
+ sc_len : cuint32;
+ sc_fpformat : cuint32;
+ sc_ownedfp : cuint32;
+ sc_reserved : cuint32;
+ sc_unused : array[0..7] of cuint32;
+ sc_pregs : array[0..255] of cuint32;
+ end;
+
+
+
+ Sigval = Record
+ Case Boolean OF
+ { Members as suggested by Annex C of POSIX 1003.1b. }
+ false : (sigval_int : Longint);
+ True : (sigval_ptr : Pointer);
+ End;
+
+
+ PSigInfo = ^SigInfo_t;
+ PSigInfo_t = ^SigInfo_t;
+ SigInfo_t = record
+ si_signo, { signal number }
+ si_errno, { errno association }
+ {
+ * Cause of signal, one of the SI_ macros or signal-specific
+ * values, i.e. one of the FPE_... values for SIGFPE. This
+ * value is equivalent to the second argument to an old-style
+ * FreeBSD signal handler.
+ }
+ si_code, { signal code }
+ si_pid : cint32; { sending process }
+ si_uid : cuint32; { sender's ruid }
+ si_status : cint32; { exit value }
+ si_addr : Pointer; { faulting instruction }
+ si_value : SigVal; { signal value }
+ si_band : cint32; { band event for SIGPOLL }
+ __spare : array[0..6] of cint32; { gimme some slack }
+ end;
+ TSigInfo = SigInfo_t;
+ TSigInfo_t = TSigInfo;
+
+
+
+ SignalHandler = Procedure(Sig : Longint);cdecl;
+ TSignalHandler = Procedure(Sig : Longint);cdecl;
+ PSignalHandler = ^SignalHandler;
+ SignalRestorer = Procedure;cdecl;
+ PSignalRestorer = ^SignalRestorer;
+ sigActionHandler = procedure(Sig: Longint; sininfo:psiginfo; SigContext: PSigContext);cdecl;
+
+ TSigset=sigset_t;
+ sigset=tsigset;
+ PSigSet = ^TSigSet;
+
+ SigActionRec = packed record
+{ Handler : record
+ case byte of
+ 0: (Sh: SignalHandler);
+ 1: (Sa: TSigAction);
+ end;}
+ sa_handler : sigActionHandler;
+ Sa_Flags : Longint;
+ Sa_Mask : TSigSet;
+ end;
+ PSigActionRec = ^SigActionRec;
+
+
+ pstack_t = ^stack_t;
+ stack_t = record
+ ss_sp : pChar; {* signal stack base *}
+ ss_size : size_t; {* signal stack length *}
+ ss_flags: cint32; {* SS_DISABLE and/or SS_ONSTACK *}
+ end;
+ TStack = stack_t;
+ PStack = pstack_t;
+
+{
+ Change action of process upon receipt of a signal.
+ Signum specifies the signal (all except SigKill and SigStop).
+ If Act is non-nil, it is used to specify the new action.
+ If OldAct is non-nil the previous action is saved there.
+}
+const
+ FPE_INTOVF =1; { integer overflow }
+ FPE_INTDIV =2; { integer divide by zero }
+ FPE_FLTDIV =3; { floating point divide by zero }
+ FPE_FLTOVF =4; { floating point overflow }
+ FPE_FLTUND =5; { floating point underflow }
+ FPE_FLTRES =6; { floating point inexact result }
+ FPE_FLTINV =7; { invalid floating point operation }
+ FPE_FLTSUB =8; { subscript out of range }
diff --git a/rtl/embedded/Makefile b/rtl/embedded/Makefile
index 182df5c4bf..c21de699aa 100644
--- a/rtl/embedded/Makefile
+++ b/rtl/embedded/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -447,6 +447,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas heapmgr consoleio $(CPU_SPECIFIC_COMMON_UNITS)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas heapmgr consoleio $(CPU_SPECIFIC_COMMON_UNITS)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas heapmgr consoleio $(CPU_SPECIFIC_COMMON_UNITS)
endif
@@ -534,6 +537,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas heapmgr consoleio $(CPU_SPECIFIC_COMMON_UNITS)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas heapmgr consoleio $(CPU_SPECIFIC_COMMON_UNITS)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) $(CPU_UNITS) uuchar objpas heapmgr consoleio $(CPU_SPECIFIC_COMMON_UNITS)
endif
@@ -672,6 +678,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -759,6 +768,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -898,6 +910,9 @@ 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
@@ -985,6 +1000,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1123,6 +1141,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
@@ -1210,6 +1231,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
@@ -1521,6 +1545,12 @@ 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=
@@ -1566,6 +1596,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2030,7 +2065,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/embedded/heapmgr.pp b/rtl/embedded/heapmgr.pp
index 681bb1f6af..0c67a04b37 100644
--- a/rtl/embedded/heapmgr.pp
+++ b/rtl/embedded/heapmgr.pp
@@ -37,7 +37,7 @@ Unit heapmgr;
procedure InternalFreeMem(Addr: Pointer; Size: ptruint); forward;
- function FindSize(p: pointer): ptruint;
+ function FindSize(p: pointer): ptruint; inline;
begin
FindSize := PPtrUInt(p)[-1];
end;
diff --git a/rtl/embedded/system.pp b/rtl/embedded/system.pp
index c4d73d75a3..6c6dfdcb6a 100644
--- a/rtl/embedded/system.pp
+++ b/rtl/embedded/system.pp
@@ -211,13 +211,12 @@ var
{$endif FPC_HAS_FEATURE_STACKCHECK}
begin
-{$ifdef FPC_HAS_FEATURE_FPU}
- { Beware: The same code is executed from fpc_cpuinit, which is included
- per-cpu unconditionally }
+ { FPU (hard or soft) is initialized from fpc_cpuinit, which is included
+ per-cpu unconditionally.
SysResetFPU;
if not(IsLibrary) then
SysInitFPU;
-{$endif FPC_HAS_FEATURE_FPU}
+ }
{$ifdef FPC_HAS_FEATURE_CONSOLEIO}
IsConsole := TRUE;
@@ -249,10 +248,6 @@ begin
InitSystemThreads;
{$endif FPC_HAS_FEATURE_THREADING}
-{$ifdef FPC_HAS_FEATURE_VARIANTS}
- initvariantmanager;
-{$endif FPC_HAS_FEATURE_VARIANTS}
-
{$ifdef FPC_HAS_FEATURE_WIDESTRINGS}
// initunicodestringmanager;
{$endif FPC_HAS_FEATURE_WIDESTRINGS}
diff --git a/rtl/emx/Makefile b/rtl/emx/Makefile
index aae628e63d..5c31b598bd 100644
--- a/rtl/emx/Makefile
+++ b/rtl/emx/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -345,229 +345,235 @@ endif
OBJPASDIR=$(RTL)/objpas
GRAPHDIR=$(INC)/graph
ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i386-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),arm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),mips-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),mipsel-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),jvm-java)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),jvm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils classes fgl math typinfo charset cpall cpu mmx getopts heaptrc lnfodwrf lineinfo dynlibs types rtlconst sysconst ctypes
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos 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 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
@@ -638,6 +644,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -725,6 +734,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -863,6 +875,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=prt0 prt1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=prt0 prt1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=prt0 prt1
endif
@@ -950,6 +965,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=prt0 prt1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=prt0 prt1
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=prt0 prt1
endif
@@ -1088,6 +1106,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo pmhelp classes sysconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo pmhelp classes sysconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo pmhelp classes sysconst
endif
@@ -1175,6 +1196,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo pmhelp classes sysconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo pmhelp classes sysconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo pmhelp classes sysconst
endif
@@ -1314,6 +1338,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
endif
@@ -1401,6 +1428,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(OS2INC)
endif
@@ -1539,6 +1569,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
endif
@@ -1626,6 +1659,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(OS2INC)
endif
@@ -1937,6 +1973,12 @@ 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=
@@ -1982,6 +2024,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2446,7 +2493,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2904,6 +2951,7 @@ kbdcalls$(PPUEXT) : $(OS2INC)/kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT)
moucalls$(PPUEXT) : $(OS2INC)/moucalls.pas $(SYSTEMUNIT)$(PPUEXT)
moncalls$(PPUEXT) : $(OS2INC)/moncalls.pas strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
os2def$(PPUEXT) : $(OS2INC)/os2def.pas $(SYSTEMUNIT)$(PPUEXT)
+doscall2$(PPUEXT) : $(OS2INC)/doscall2.pas doscalls$(PPUEXT) os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
pmwin$(PPUEXT) : $(OS2INC)/pmwin.pas os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
pmbitmap$(PPUEXT) : $(OS2INC)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT)
pmgpi$(PPUEXT) : $(OS2INC)/pmgpi.pas pmbitmap$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
diff --git a/rtl/emx/Makefile.fpc b/rtl/emx/Makefile.fpc
index 26b1579571..dde900d96c 100644
--- a/rtl/emx/Makefile.fpc
+++ b/rtl/emx/Makefile.fpc
@@ -8,7 +8,7 @@ main=rtl
[target]
loaders=prt0 prt1
units=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings \
- ports os2def doscalls moncalls kbdcalls moucalls viocalls \
+ ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls \
pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi \
dos \
sysutils classes fgl math typinfo \
@@ -118,6 +118,8 @@ moncalls$(PPUEXT) : $(OS2INC)/moncalls.pas strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEX
os2def$(PPUEXT) : $(OS2INC)/os2def.pas $(SYSTEMUNIT)$(PPUEXT)
+doscall2$(PPUEXT) : $(OS2INC)/doscall2.pas doscalls$(PPUEXT) os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+
pmwin$(PPUEXT) : $(OS2INC)/pmwin.pas os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
pmbitmap$(PPUEXT) : $(OS2INC)/pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT)
diff --git a/rtl/emx/sysfile.inc b/rtl/emx/sysfile.inc
index ab1cd005dc..3f86765a80 100644
--- a/rtl/emx/sysfile.inc
+++ b/rtl/emx/sysfile.inc
@@ -368,7 +368,9 @@ begin
do_seekend (FileRec (F).Handle);
FileRec (F).Mode := fmOutput; {fool fmappend}
end;
- end;
+ end
+ else
+ FileRec(f).mode:=fmclosed;
if oldp<>p then
freemem(p);
end;
diff --git a/rtl/emx/system.pas b/rtl/emx/system.pas
index 9e46379485..3da446cdce 100644
--- a/rtl/emx/system.pas
+++ b/rtl/emx/system.pas
@@ -591,8 +591,6 @@ begin
InitSystemThreads;
- InitVariantManager;
-
if os_Mode in [osDOS,osDPMI] then
DosEnvInit;
diff --git a/rtl/fpmake.inc b/rtl/fpmake.inc
index 27ba60b07e..15697eeeb7 100644
--- a/rtl/fpmake.inc
+++ b/rtl/fpmake.inc
@@ -2,7 +2,7 @@
Const
GraphDir = 'inc/graph/';
SysUtilsDir = 'objpas/sysutils/';
- Unixes = [darwin,freebsd,linux,netbsd,openbsd];
+ Unixes = [darwin,dragonfly,freebsd,linux,netbsd,openbsd];
Function CurrentOS : String;
diff --git a/rtl/fpmake.pp b/rtl/fpmake.pp
index 8f604f24d6..7247a1cc64 100644
--- a/rtl/fpmake.pp
+++ b/rtl/fpmake.pp
@@ -16,7 +16,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:='rtl';
{$endif ALLPACKAGES}
- P.Version:='2.2.0';
+ P.Version:='3.1.1';
// Where to find the sources using firstmatch
P.SourcePath.Add('$(OS)');
diff --git a/rtl/freebsd/Makefile b/rtl/freebsd/Makefile
index e9f8cffc35..944b721c87 100644
--- a/rtl/freebsd/Makefile
+++ b/rtl/freebsd/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -425,6 +425,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),m68k-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd freebsd console sysconst cthreads dos cwstring fpintres unixcp fpwidestring
endif
@@ -512,6 +515,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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),arm-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd freebsd console sysconst cthreads dos cwstring fpintres unixcp fpwidestring
endif
@@ -650,6 +656,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -737,6 +746,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -875,6 +887,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
endif
@@ -962,6 +977,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=prt0 cprt0 gprt0 dllprt0
endif
@@ -1100,6 +1118,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1187,6 +1208,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1326,6 +1350,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
endif
@@ -1413,6 +1440,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(OSPROCINC)
endif
@@ -1551,6 +1581,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
endif
@@ -1638,6 +1671,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(COMMON)
endif
@@ -1949,6 +1985,12 @@ 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=
@@ -1994,6 +2036,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2458,7 +2505,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/freebsd/freebsd.pas b/rtl/freebsd/freebsd.pas
index 4e72209531..ff09905bb3 100644
--- a/rtl/freebsd/freebsd.pas
+++ b/rtl/freebsd/freebsd.pas
@@ -207,6 +207,33 @@ function kernproc_getgenvalue(pid:pid_t;kernproc_variable:cint;var s:ansistring)
function kernproc_getargs(pid:pid_t;var fn:ansistring):cint;
function kernproc_getpath(pid:pid_t;var fn:ansistring):cint;
+
+// Taken from /usr/include/time.h
+const
+ CLOCK_REALTIME = 0;
+ CLOCK_VIRTUAL = 1;
+ CLOCK_PROF = 2;
+ CLOCK_MONOTONIC = 4;
+ // FreeBSD specific
+ CLOCK_UPTIME = 5;
+ CLOCK_UPTIME_PRECISE = 7;
+ CLOCK_UPTIME_FAST = 8;
+ CLOCK_REALTIME_PRECISE = 9;
+ CLOCK_REALTIME_FAST = 10;
+ CLOCK_MONOTONIC_PRECISE = 11;
+ CLOCK_MONOTONIC_FAST = 12;
+ CLOCK_SECOND = 13;
+ CLOCK_THREAD_CPUTIME_ID = 14;
+ CLOCK_PROCESS_CPUTIME_ID = 15;
+
+Type
+ clockid_t = cint;
+
+function clock_getres(clk_id: clockid_t; res: ptimespec): cint; {$ifdef FPC_USE_LIBC} cdecl; external name 'clock_getres'; {$ENDIF}
+function clock_gettime(clk_id: clockid_t; tp: ptimespec): cint; {$ifdef FPC_USE_LIBC} cdecl; external name 'clock_gettime'; {$ENDIF}
+function clock_settime(clk_id: clockid_t; tp: ptimespec): cint; {$ifdef FPC_USE_LIBC} cdecl; external name 'clock_settime'; {$ENDIF}
+
+
implementation
Uses Sysctl,
@@ -307,6 +334,22 @@ function fpgetfsstat(buf:pstatfs;bufsize:clong;flags:cint):cint;
begin
fpgetfsstat:=do_syscall(syscall_nr_getfsstat,TSysParam(buf),TSysParam(Bufsize),TSysParam(Flags));
end;
+
+function clock_getres(clk_id: clockid_t; res: ptimespec): cint;
+begin
+ clock_getres := do_SysCall(syscall_nr_clock_getres,tsysparam(clk_id),tsysparam(res));
+end;
+
+function clock_gettime(clk_id: clockid_t; tp: ptimespec): cint;
+begin
+ clock_gettime := do_SysCall(syscall_nr_clock_gettime,tsysparam(clk_id),tsysparam(tp));
+end;
+
+function clock_settime(clk_id: clockid_t; tp: ptimespec): cint;
+begin
+ clock_settime := do_SysCall(syscall_nr_clock_settime,tsysparam(clk_id),tsysparam(tp));
+end;
+
{$ENDIF}
function kernproc_getgenvalue(pid:pid_t;kernproc_variable:cint;var s:ansistring):cint;
diff --git a/rtl/freebsd/sysnr.inc b/rtl/freebsd/sysnr.inc
index b74101a2fb..202a59a24a 100644
--- a/rtl/freebsd/sysnr.inc
+++ b/rtl/freebsd/sysnr.inc
@@ -106,6 +106,9 @@ const
syscall_nr_munmap = 73;
syscall_nr_getsockopt = 118;
syscall_nr_rfork = 251;
+ syscall_nr_clock_gettime = 232;
+ syscall_nr_clock_settime = 233;
+ syscall_nr_clock_getres = 234;
syscall_nr_nanosleep = 240;
syscall_nr_getrusage = 117;
syscall_nr_uuidgen = 392; { 5.x+}
diff --git a/rtl/freebsd/x86_64/gprt0.as b/rtl/freebsd/x86_64/gprt0.as
index 2322a1c780..a68b4f1fae 100644
--- a/rtl/freebsd/x86_64/gprt0.as
+++ b/rtl/freebsd/x86_64/gprt0.as
@@ -11,7 +11,7 @@ abitag:
.long 4
.long 1
.string "FreeBSD"
- .long 502110
+ .long 900044
.section .rodata
.LC0:
.string ""
diff --git a/rtl/gba/Makefile b/rtl/gba/Makefile
index 5bc59fca73..8f79b5f88a 100644
--- a/rtl/gba/Makefile
+++ b/rtl/gba/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -341,229 +341,466 @@ endif
OBJPASDIR=$(RTL)/objpas
GRAPHDIR=$(INC)/graph
ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),mips-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),mipsel-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),jvm-java)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),jvm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts 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 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=prt0 cprt0
@@ -634,6 +871,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=prt0 cprt0
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=prt0 cprt0
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=prt0 cprt0
endif
@@ -721,6 +961,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=prt0 cprt0
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=prt0 cprt0
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=prt0 cprt0
endif
@@ -860,6 +1103,9 @@ 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
@@ -947,6 +1193,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1085,6 +1334,9 @@ 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
@@ -1172,6 +1424,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1483,6 +1738,12 @@ 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=
@@ -1528,6 +1789,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1992,7 +2258,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/gba/Makefile.fpc b/rtl/gba/Makefile.fpc
index 566a61f50c..8ec8edccea 100644
--- a/rtl/gba/Makefile.fpc
+++ b/rtl/gba/Makefile.fpc
@@ -12,7 +12,7 @@ units=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings \
sysutils \
classes math typinfo ctypes \
charset cpall getopts \
- types rtlconsts sysconst lineinfo fgl \
+ types rtlconsts sysconst lineinfo fgl
# exec timer doslib utility hardware inputevent graphics layers \
# these can be moved to packages later
# clipboard datatypes asl ahi tinygl get9 muihelper \
diff --git a/rtl/gba/system.pp b/rtl/gba/system.pp
index f740660f65..e784382a48 100644
--- a/rtl/gba/system.pp
+++ b/rtl/gba/system.pp
@@ -194,5 +194,4 @@ begin
{ threading }
InitSystemThreads;
{$endif FPC_HAS_FEATURE_THREADING}
- initvariantmanager;
end.
diff --git a/rtl/go32v2/Makefile b/rtl/go32v2/Makefile
index 266a63d0a3..b3aed6f67a 100644
--- a/rtl/go32v2/Makefile
+++ b/rtl/go32v2/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -414,6 +414,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos cmem sysutils classes math typinfo cpu mmx getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset cpall types sysconst rtlconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos cmem sysutils classes math typinfo cpu mmx getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset cpall types sysconst rtlconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos cmem sysutils classes math typinfo cpu mmx getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset cpall types sysconst rtlconst
endif
@@ -501,6 +504,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos cmem sysutils classes math typinfo cpu mmx getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset cpall types sysconst rtlconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos cmem sysutils classes math typinfo cpu mmx getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset cpall types sysconst rtlconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 strings go32 dpmiexcp initc ports profile dxetype dxeload emu387 dos cmem sysutils classes math typinfo cpu mmx getopts heaptrc lineinfo lnfodwrf ctypes fgl msmouse charset cpall types sysconst rtlconst
endif
@@ -639,6 +645,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -726,6 +735,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -864,6 +876,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=prt0 exceptn fpu
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=prt0 exceptn fpu
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=prt0 exceptn fpu
endif
@@ -951,6 +966,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=prt0 exceptn fpu
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=prt0 exceptn fpu
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=prt0 exceptn fpu
endif
@@ -1089,6 +1107,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1176,6 +1197,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1315,6 +1339,9 @@ 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
@@ -1402,6 +1429,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1540,6 +1570,9 @@ 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
@@ -1627,6 +1660,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1938,6 +1974,12 @@ 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=
@@ -1983,6 +2025,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2447,7 +2494,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/go32v2/dos.pp b/rtl/go32v2/dos.pp
index bcc80344cf..d4e42066c3 100644
--- a/rtl/go32v2/dos.pp
+++ b/rtl/go32v2/dos.pp
@@ -284,7 +284,7 @@ var
current_arg:='';
proxy_argc:=0;
end_of_arg:=false;
- while TB + current_dos_buffer_pos mod 16 <> 0 do
+ while (TB + current_dos_buffer_pos) mod 16 <> 0 do
inc(current_dos_buffer_pos);
la_proxy_seg:=(TB + current_dos_buffer_pos) shr 4;
{ Also copy parameter 0 }
diff --git a/rtl/go32v2/sysfile.inc b/rtl/go32v2/sysfile.inc
index fdbec9fa85..5721c7029f 100644
--- a/rtl/go32v2/sysfile.inc
+++ b/rtl/go32v2/sysfile.inc
@@ -400,6 +400,7 @@ begin
GetInOutRes(lo(regs.realeax));
if oldp<>p then
freemem(p);
+ FileRec(f).mode:=fmclosed;
exit;
end
else
diff --git a/rtl/go32v2/system.pp b/rtl/go32v2/system.pp
index 1ed6f950fc..5ac32ef479 100644
--- a/rtl/go32v2/system.pp
+++ b/rtl/go32v2/system.pp
@@ -688,5 +688,4 @@ Begin
InitDPMIExcp;
InstallDefaultHandlers;
{$endif EXCEPTIONS_IN_SYSTEM}
- initvariantmanager;
End.
diff --git a/rtl/haiku/Makefile b/rtl/haiku/Makefile
index f73dfc4a9b..51798a1ff6 100644
--- a/rtl/haiku/Makefile
+++ b/rtl/haiku/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -410,6 +410,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl sysconst sysutils types charset cpall character typinfo classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc cmem dynlibs cwstring cthreads fpintres unixcp
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl sysconst sysutils types charset cpall character typinfo classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc cmem dynlibs cwstring cthreads fpintres unixcp
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl sysconst sysutils types charset cpall character typinfo classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc cmem dynlibs cwstring cthreads fpintres unixcp
endif
@@ -497,6 +500,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl sysconst sysutils types charset cpall character typinfo classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc cmem dynlibs cwstring cthreads fpintres unixcp
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl sysconst sysutils types charset cpall character typinfo classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc cmem dynlibs cwstring cthreads fpintres unixcp
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=system uuchar baseunix unixtype ctypes objpas macpas iso7185 strings errors dos dl sysconst sysutils types charset cpall character typinfo classes fgl math cpu mmx getopts heaptrc lineinfo lnfodwrf rtlconsts syscall unix unixutil termio initc cmem dynlibs cwstring cthreads fpintres unixcp
endif
@@ -635,6 +641,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -722,6 +731,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -860,6 +872,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
@@ -947,6 +962,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=prt0 cprt0 func dllprt
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=prt0 cprt0 func dllprt
endif
@@ -1085,6 +1103,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
@@ -1172,6 +1193,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
@@ -1311,6 +1335,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
endif
@@ -1398,6 +1425,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(OSPROCINC) $(HAIKUINC)
endif
@@ -1536,6 +1566,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
endif
@@ -1623,6 +1656,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(CPU_TARGET) $(HAIKUINC)
endif
@@ -1761,6 +1797,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -1848,6 +1887,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -2159,6 +2201,12 @@ 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=
@@ -2204,6 +2252,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2668,7 +2721,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/haiku/system.pp b/rtl/haiku/system.pp
index 914c65209a..c4e6a64de3 100644
--- a/rtl/haiku/system.pp
+++ b/rtl/haiku/system.pp
@@ -469,9 +469,6 @@ begin
{ Reset IO Error }
InOutRes:=0;
InitSystemThreads;
-{$ifdef HASVARIANT}
- initvariantmanager;
-{$endif HASVARIANT}
setupexecname;
{ restore original signal handlers in case this is a library }
if IsLibrary then
diff --git a/rtl/i386/int64p.inc b/rtl/i386/int64p.inc
index 37fbf6c920..8556588015 100644
--- a/rtl/i386/int64p.inc
+++ b/rtl/i386/int64p.inc
@@ -15,6 +15,203 @@
{$Q- no overflow checking }
{$R- no range checking }
+{$define FPC_SYSTEM_HAS_DIV_INT64}
+ function fpc_div_int64(n,z : int64) : int64;assembler;[public,alias: 'FPC_DIV_INT64']; compilerproc;
+ var
+ saveebx,saveedi,saveesi : longint;
+ asm
+ movl %ebx,saveebx
+ movl %esi,saveesi
+ movl %edi,saveedi
+ { the following piece of code is taken from the }
+ { AMD Athlon Processor x86 Code Optimization manual }
+ movl n+4,%ecx
+ movl n,%ebx
+ movl %ecx,%eax
+ orl %ebx,%eax
+ jnz .Lnodivzero
+ movl %ebp,%edx
+ movl $200,%eax
+ call HandleErrorFrame
+ jmp .Lexit
+.Lnodivzero:
+ movl z+4,%edx
+ movl z,%eax
+ movl %ecx,%esi
+ xorl %edx,%esi
+ sarl $31,%esi
+ movl %edx,%edi
+ sarl $31,%edi
+ xorl %edi,%eax
+ xorl %edi,%edx
+ subl %edi,%eax
+ sbbl %edi,%edx
+ movl %ecx,%edi
+ sarl $31,%edi
+ xorl %edi,%ebx
+ xorl %edi,%ecx
+ subl %edi,%ebx
+ sbbl %edi,%ecx
+ jnz .Lbigdivisor
+ cmpl %ebx,%edx
+ jae .Ltwo_divs
+ divl %ebx
+ movl %ecx,%edx
+ xorl %esi,%eax
+ xorl %esi,%edx
+ subl %esi,%eax
+ sbbl %esi,%edx
+ jmp .Lexit
+.Ltwo_divs:
+ movl %eax,%ecx
+ movl %edx,%eax
+ xorl %edx,%edx
+ divl %ebx
+ xchgl %ecx,%eax
+ divl %ebx
+ movl %ecx,%edx
+ jmp .Lexit
+.Lbigdivisor:
+ subl $12,%esp
+ movl %eax,(%esp)
+ movl %ebx,4(%esp)
+ movl %edx,8(%esp)
+ movl %ecx,%edi
+ shrl $1,%edx
+ rcrl $1,%eax
+ rorl $1,%edi
+ rcrl $1,%ebx
+ bsrl %ecx,%ecx
+ shrdl %cl,%edi,%ebx
+ shrdl %cl,%edx,%eax
+ shrl %cl,%edx
+ roll $1,%edi
+ divl %ebx
+ movl (%esp),%ebx
+ movl %eax,%ecx
+ imull %eax,%edi
+ mull 4(%esp)
+ addl %edi,%edx
+ subl %eax,%ebx
+ movl %ecx,%eax
+ movl 8(%esp),%ecx
+ sbbl %edx,%ecx
+ sbbl $0,%eax
+ xorl %edx,%edx
+ addl $12,%esp
+.Lmake_sign:
+ xorl %esi,%eax
+ xorl %esi,%edx
+ subl %esi,%eax
+ sbbl %esi,%edx
+.Lexit:
+ movl saveebx,%ebx
+ movl saveesi,%esi
+ movl saveedi,%edi
+ end;
+
+{$define FPC_SYSTEM_HAS_MOD_INT64}
+ function fpc_mod_int64(n,z : int64) : int64;assembler;[public,alias: 'FPC_MOD_INT64']; compilerproc;
+ var
+ saveebx,saveedi,saveesi : longint;
+ asm
+ movl %ebx,saveebx
+ movl %esi,saveesi
+ movl %edi,saveedi
+ { the following piece of code is taken from the }
+ { AMD Athlon Processor x86 Code Optimization manual }
+ movl n+4,%ecx
+ movl n,%ebx
+ movl %ecx,%eax
+ orl %ebx,%eax
+ jnz .Lnodivzero
+ movl %ebp,%edx
+ movl $200,%eax
+ call HandleErrorFrame
+ jmp .Lexit
+.Lnodivzero:
+ movl z+4,%edx
+ movl z,%eax
+ movl %edx,%esi
+ sarl $31,%esi
+ movl %edx,%edi
+ sarl $31,%edi
+ xorl %edi,%eax
+ xorl %edi,%edx
+ subl %edi,%eax
+ sbbl %edi,%edx
+ movl %ecx,%edi
+ sarl $31,%edi
+ xorl %edi,%ebx
+ xorl %edi,%ecx
+ subl %edi,%ebx
+ sbbl %edi,%ecx
+ jnz .Lbig_divisor
+ cmpl %ebx,%edx
+ jae .Ltwo_divs
+ divl %ebx
+ movl %edx,%eax
+ movl %ecx,%edx
+ xorl %esi,%eax
+ xorl %esi,%edx
+ subl %esi,%eax
+ sbbl %esi,%edx
+ jmp .Lexit
+.Ltwo_divs:
+ movl %eax,%ecx
+ movl %edx,%eax
+ xorl %edx,%edx
+ divl %ebx
+ movl %ecx,%eax
+ divl %ebx
+ movl %edx,%eax
+ xorl %edx,%edx
+ jmp .Lmake_sign
+.Lbig_divisor:
+ subl $16,%esp
+ movl %eax,(%esp)
+ movl %ebx,4(%esp)
+ movl %edx,8(%esp)
+ movl %ecx,12(%esp)
+ movl %ecx,%edi
+ shrl $1,%edx
+ rcrl $1,%eax
+ rorl $1,%edi
+ rcrl $1,%ebx
+ bsrl %ecx,%ecx
+ shrdl %cl,%edi,%ebx
+ shrdl %cl,%edx,%eax
+ shrl %cl,%edx
+ roll $1,%edi
+ divl %ebx
+ movl (%esp),%ebx
+ movl %eax,%ecx
+ imull %eax,%edi
+ mull 4(%esp)
+ addl %edi,%edx
+ subl %eax,%ebx
+ movl 8(%esp),%ecx
+ sbbl %edx,%ecx
+ sbbl %eax,%eax
+ movl 12(%esp),%edx
+ andl %eax,%edx
+ andl 4(%esp),%eax
+ addl %ebx,%eax
+ addl %ecx,%edx
+ addl $16,%esp
+
+.Lmake_sign:
+ xorl %esi,%eax
+ xorl %esi,%edx
+ subl %esi,%eax
+ sbbl %esi,%edx
+
+.Lexit:
+ movl saveebx,%ebx
+ movl saveesi,%esi
+ movl saveedi,%edi
+ end;
+
{$define FPC_SYSTEM_HAS_DIV_QWORD}
function fpc_div_qword(n,z : qword) : qword;assembler;[public,alias: 'FPC_DIV_QWORD']; compilerproc;
var
diff --git a/rtl/i8086/i8086.inc b/rtl/i8086/i8086.inc
index 8c8b1e66c6..4e99bdff69 100644
--- a/rtl/i8086/i8086.inc
+++ b/rtl/i8086/i8086.inc
@@ -586,10 +586,6 @@ const
FPU_StackOverflow = $40;
FPU_ExceptionMask = $ff;
- { use Default8087CW instead
- fpucw : word = $1300 or FPU_StackUnderflow or FPU_Underflow or FPU_Denormal;
- }
-
{ Detects the FPU and initializes the Test8087 variable (and Default8087CW):
0 = NO FPU
1 = 8087
diff --git a/rtl/inc/astrings.inc b/rtl/inc/astrings.inc
index e9fda39988..772d4d7e60 100644
--- a/rtl/inc/astrings.inc
+++ b/rtl/inc/astrings.inc
@@ -1404,20 +1404,36 @@ end;
{$endif FPC_HAS_ANSISTR_OF_CHAR}
-Procedure SetString(Out S : AnsiString; Buf : PAnsiChar; Len : SizeInt); inline;
+{$ifdef FPC_HAS_CPSTRING}
+Procedure fpc_setstring_ansistr_pansichar(out S : RawByteString; Buf : PAnsiChar; Len : SizeInt; cp: TSystemCodePage); rtlproc; compilerproc;
+{$else}
+Procedure SetString(out S : AnsiString; Buf : PAnsiChar; Len : SizeInt);
+{$endif}
begin
SetLength(S,Len);
+{$ifdef FPC_HAS_CPSTRING}
+ SetCodePage(S,cp,false);
+{$endif}
If (Buf<>Nil) then
fpc_pchar_ansistr_intern_charmove(Buf,0,S,0,Len);
end;
-Procedure SetString(Out S : AnsiString; Buf : PWideChar; Len : SizeInt);
+{$ifdef FPC_HAS_CPSTRING}
+Procedure fpc_setstring_ansistr_pwidechar(out S : RawByteString; Buf : PWideChar; Len : SizeInt; cp: TSystemCodePage); rtlproc; compilerproc;
+{$else}
+Procedure SetString(out S : AnsiString; Buf : PWideChar; Len : SizeInt);
+{$endif}
begin
if (Buf<>nil) and (Len>0) then
- widestringmanager.Wide2AnsiMoveProc(Buf,RawByteString(S),DefaultSystemCodePage,Len)
+ widestringmanager.Wide2AnsiMoveProc(Buf,S,{$ifdef FPC_HAS_CPSTRING}cp{$else}DefaultSystemCodePage{$endif},Len)
else
- SetLength(S, Len);
+ begin
+ SetLength(S, Len);
+{$ifdef FPC_HAS_CPSTRING}
+ SetCodePage(S,cp,false);
+{$endif}
+ end;
end;
diff --git a/rtl/inc/charset.pp b/rtl/inc/charset.pp
index b50b313cfc..b3bc902131 100644
--- a/rtl/inc/charset.pp
+++ b/rtl/inc/charset.pp
@@ -73,15 +73,15 @@ unit charset;
) : punicodemap;overload;
procedure registermapping(p : punicodemap);
function registerbinarymapping(const directory,cpname : string):Boolean;
- function getmap(const s : string) : punicodemap;
- function getmap(cp : word) : punicodemap;
+ function getmap(const s : string) : punicodemap;
+ function getmap(cp : word) : punicodemap;
function mappingavailable(const s : string) : boolean;inline;
function mappingavailable(cp :word) : boolean;inline;
function getunicode(c : char;p : punicodemap) : tunicodechar;inline;
function getunicode(
AAnsiStr : pansichar;
AAnsiLen : LongInt;
- AMap : punicodemap;
+ AMap : punicodemap;
ADest : tunicodestring
) : LongInt;
function getascii(c : tunicodechar;p : punicodemap) : string;
@@ -421,10 +421,7 @@ unit charset;
Assign(f,filename);
Reset(f);
if (IOResult<>0) then
- begin
- Close(f);
- exit;
- end;
+ exit;
locSize:=FileSize(f);
if (locSize<SizeOf(TSerializedMapHeader)) then
begin
@@ -624,7 +621,7 @@ unit charset;
function getunicode(
AAnsiStr : pansichar;
AAnsiLen : LongInt;
- AMap : punicodemap;
+ AMap : punicodemap;
ADest : tunicodestring
) : LongInt;
@@ -632,11 +629,11 @@ unit charset;
i, c, k, destLen : longint;
ps : pansichar;
pd : ^tunicodechar;
-
+
begin
if (AAnsiStr=nil) or (AAnsiLen<=0) then
exit(0);
- ps:=AAnsiStr;
+ ps:=AAnsiStr;
if (ADest=nil) then
begin
c:=AAnsiLen-1;
@@ -651,12 +648,12 @@ unit charset;
Inc(ps);
i:=i+1;
end;
- end;
- i:=i+1;
+ end;
+ i:=i+1;
Inc(ps);
destLen:=destLen+1;
- end;
- exit(destLen);
+ end;
+ exit(destLen);
end;
pd:=ADest;
@@ -668,7 +665,7 @@ unit charset;
begin
if (AMap^.map[ord(ps^)].flag=umf_leadbyte) then
begin
- if (i<c) then
+ if (i<c) then
begin
k:=(Ord(ps^)*256);
Inc(ps);
@@ -681,16 +678,16 @@ unit charset;
end
else
pd^:=UNKNOW_CHAR_W;
- end
- else
+ end
+ else
pd^:=AMap^.map[ord(ps^)].unicode
- end
+ end
else
pd^:=UNKNOW_CHAR_W;
- i:=i+1;
+ i:=i+1;
Inc(ps);
Inc(pd);
- end;
+ end;
result:=((PtrUInt(pd)-PtrUInt(ADest)) div SizeOf(tunicodechar));
end;
diff --git a/rtl/inc/compproc.inc b/rtl/inc/compproc.inc
index a2f8db1aa6..5c37f2079b 100644
--- a/rtl/inc/compproc.inc
+++ b/rtl/inc/compproc.inc
@@ -507,7 +507,7 @@ function fpc_variant_to_idispatch(const v : variant) : idispatch;compilerproc;
function fpc_idispatch_to_variant(const i : idispatch) : variant;compilerproc;
procedure fpc_vararray_get(var d : variant;const s : variant;indices : plongint;len : sizeint);compilerproc;
procedure fpc_vararray_put(var d : variant;const s : variant;indices : plongint;len : sizeint);compilerproc;
-procedure fpc_dispinvoke_variant(dest : pvardata;const source : tvardata; calldesc : pcalldesc;params : pointer);compilerproc;
+procedure fpc_dispinvoke_variant(dest : pvardata;var source : tvardata; calldesc : pcalldesc;params : pointer);compilerproc;
{$endif FPC_HAS_FEATURE_VARIANTS}
{$ifdef FPC_HAS_FEATURE_TEXTIO}
@@ -747,7 +747,7 @@ function fpc_longword_to_double(i: longword): double; compilerproc;
function fpc_setjmp(var s : jmp_buf) : {$ifdef CPU16}smallint{$else}longint{$endif}; compilerproc;
procedure fpc_longjmp(var s : jmp_buf; value : {$ifdef CPU16}smallint{$else}longint{$endif}); compilerproc;
-{$ifdef i8086}
+{$ifdef cpui8086}
{ i8086 huge pointer helpers }
function fpc_hugeptr_add_longint(p: HugePointer; n: LongInt): HugePointer; compilerproc;
function fpc_hugeptr_add_longint_normalized(p: HugePointer; n: LongInt): HugePointer; compilerproc;
@@ -765,4 +765,4 @@ function fpc_hugeptr_cmp_normalized_b(p1, p2: HugePointer): Boolean; compilerpro
function fpc_hugeptr_cmp_normalized_be(p1, p2: HugePointer): Boolean; compilerproc;
function fpc_hugeptr_cmp_normalized_a(p1, p2: HugePointer): Boolean; compilerproc;
function fpc_hugeptr_cmp_normalized_ae(p1, p2: HugePointer): Boolean; compilerproc;
-{$endif i8086}
+{$endif cpui8086}
diff --git a/rtl/inc/dynarr.inc b/rtl/inc/dynarr.inc
index 76771c15d1..214fd3b5b8 100644
--- a/rtl/inc/dynarr.inc
+++ b/rtl/inc/dynarr.inc
@@ -30,7 +30,7 @@ type
packed
{$endif FPC_REQUIRES_PROPER_ALIGNMENT}
record
- elSize : PtrUInt;
+ elSize : SizeUInt;
elType2 : Pointer;
varType : Longint;
end;
@@ -303,6 +303,88 @@ function fpc_dynarray_copy(psrc : pointer;ti : pointer;
procedure DynArraySetLength(var a: Pointer; typeInfo: Pointer; dimCnt: SizeInt; lengthVec: PSizeInt);
external name 'FPC_DYNARR_SETLENGTH';
+function DynArraySize(a : pointer): tdynarrayindex;
+ external name 'FPC_DYNARRAY_LENGTH';
+
+procedure DynArrayClear(var a: Pointer; typeInfo: Pointer);
+ external name 'FPC_DYNARRAY_CLEAR';
+
+function DynArrayDim(typeInfo: Pointer): Integer;
+ begin
+ result:=0;
+ while (typeInfo <> nil) and (pdynarraytypeinfo(typeInfo)^.kind = tkDynArray) do
+ begin
+ { skip kind and name }
+ typeInfo:=aligntoptr(typeInfo+2+PByte(typeInfo)[1]);
+
+ { element type info}
+ typeInfo:=pdynarraytypedata(typeInfo)^.elType2;
+
+ Inc(result);
+ end;
+ end;
+
+function DynArrayBounds(a: Pointer; typeInfo: Pointer): TBoundArray;
+ var
+ i,dim: sizeint;
+ begin
+ dim:=DynArrayDim(typeInfo);
+ SetLength(result, dim);
+
+ for i:=0 to pred(dim) do
+ if a = nil then
+ exit
+ else
+ begin
+ result[i]:=DynArraySize(a)-1;
+ a:=PPointerArray(a)^[0];
+ end;
+ end;
+
+function IsDynArrayRectangular(a: Pointer; typeInfo: Pointer): Boolean;
+ var
+ i,j: sizeint;
+ dim,count: sizeint;
+ begin
+ dim:=DynArrayDim(typeInfo);
+ for i:=1 to pred(dim) do
+ begin
+ count:=DynArraySize(PPointerArray(a)^[0]);
+
+ for j:=1 to Pred(DynArraySize(a)) do
+ if count<>DynArraySize(PPointerArray(a)^[j]) then
+ exit(false);
+
+ a:=PPointerArray(a)^[0];
+ end;
+ result:=true;
+ end;
+
+function DynArrayIndex(a: Pointer; const indices: array of SizeInt; typeInfo: Pointer): Pointer;
+ var
+ i,h: sizeint;
+ begin
+ h:=High(indices);
+ for i:=0 to h do
+ begin
+ if i<h then
+ a := PPointerArray(a)^[indices[i]];
+
+ { skip kind and name }
+ typeInfo:=(typeInfo+2+PByte(typeInfo)[1]);
+ { element type info}
+ typeInfo:=pdynarraytypedata(typeInfo)^.elType2;
+
+ if typeInfo=nil then
+ exit(nil);
+ end;
+
+ { skip kind and name }
+ typeInfo:=(typeInfo+2+PByte(typeInfo)[1]);
+
+ result:=@(PByte(a)[indices[h]*pdynarraytypedata(typeInfo)^.elSize]);
+ end;
+
{ obsolete but needed for bootstrapping }
procedure fpc_dynarray_decr_ref(var p : pointer;ti : pointer); [Public,Alias:'FPC_DYNARRAY_DECR_REF']; compilerproc;
begin
diff --git a/rtl/inc/dynarrh.inc b/rtl/inc/dynarrh.inc
index c355227d4c..515dd3c3fd 100644
--- a/rtl/inc/dynarrh.inc
+++ b/rtl/inc/dynarrh.inc
@@ -30,4 +30,12 @@ type
end;
procedure DynArraySetLength(var a: Pointer; typeInfo: Pointer; dimCnt: SizeInt; lengthVec: PSizeInt);
+function DynArraySize(a : pointer): tdynarrayindex;
+procedure DynArrayClear(var a: Pointer; typeInfo: Pointer);
+function DynArrayDim(typeInfo: Pointer): Integer;
+function DynArrayBounds(a: Pointer; typeInfo: Pointer): TBoundArray;
+
+function IsDynArrayRectangular(a: Pointer; typeInfo: Pointer): Boolean;
+function DynArrayIndex(a: Pointer; const indices: array of SizeInt; typeInfo: Pointer): Pointer;
+
procedure fpc_dynarray_rangecheck(p : pointer;i : tdynarrayindex); compilerproc;
diff --git a/rtl/inc/exeinfo.pp b/rtl/inc/exeinfo.pp
index 198f3265bf..1dc9b70108 100644
--- a/rtl/inc/exeinfo.pp
+++ b/rtl/inc/exeinfo.pp
@@ -109,7 +109,7 @@ uses
Executable Loaders
****************************************************************************}
-{$if defined(freebsd) or defined(netbsd) or defined (openbsd) or defined(linux) or defined(sunos) or defined(android)}
+{$if defined(freebsd) or defined(netbsd) or defined (openbsd) or defined(linux) or defined(sunos) or defined(android) or defined(dragonfly)}
{$ifdef cpu64}
{$define ELF64}
{$else}
diff --git a/rtl/inc/fexpand.inc b/rtl/inc/fexpand.inc
index 599e47536a..411283d160 100644
--- a/rtl/inc/fexpand.inc
+++ b/rtl/inc/fexpand.inc
@@ -79,6 +79,10 @@ begin
OldInOutRes := InOutRes;
InOutRes := 0;
GetDir (DriveNr, Dir);
+{$IF defined(FPC_FEXPAND_SYSUTILS) and not defined(SYSUTILSUNICODE)}
+ { set the same codepage as used for the strings in fexpand itself }
+ SetCodePage(Dir,DefaultFileSystemCodePage);
+{$ENDIF FPC_FEXPAND_SYSUTILS and not SYSUTILSUNICODE}
InOutRes := OldInOutRes;
end;
@@ -599,7 +603,10 @@ begin
then
Delete (PA,length(PA),1);
{$ENDIF FPC_FEXPAND_DIRSEP_IS_UPDIR}
-
+{$IF defined(FPC_FEXPAND_SYSUTILS) and not defined(SYSUTILSUNICODE)}
+ { return result in expected code page }
+ SetCodePage(Pa,DefaultRTLFileSystemCodePage);
+{$ENDIF FPC_FEXPAND_SYSUTILS and not SYSUTILSUNICODE}
FExpand := Pa;
end;
diff --git a/rtl/inc/file.inc b/rtl/inc/file.inc
index 8b986df03f..464fcd7f36 100644
--- a/rtl/inc/file.inc
+++ b/rtl/inc/file.inc
@@ -441,6 +441,7 @@ Begin
End;
+{$ifdef FPC_HAS_FEATURE_WIDESTRINGS}
Procedure Rename(var f : File; const S : UnicodeString);[IOCheck];
{$ifdef FPCRTL_FILESYSTEM_SINGLE_BYTE_API}
var
@@ -471,8 +472,10 @@ Begin
{$endif FPC_ANSI_TEXTFILEREC}
{$endif FPCRTL_FILESYSTEM_SINGLE_BYTE_API}
End;
+{$endif FPC_HAS_FEATURE_WIDESTRINGS}
+{$ifdef FPC_HAS_FEATURE_ANSISTRINGS}
Procedure Rename(var f : File;const s : RawByteString);[IOCheck];
var
{$ifdef FPCRTL_FILESYSTEM_SINGLE_BYTE_API}
@@ -517,6 +520,7 @@ Begin
FileRec(f).Name:=fs
{$endif FPC_ANSI_TEXTFILEREC and not FPCRTL_FILESYSTEM_SINGLE_BYTE_API}
End;
+{$endif FPC_HAS_FEATURE_ANSISTRINGS}
Procedure Rename(var f : File;const s : ShortString);[IOCheck];
@@ -542,7 +546,7 @@ Begin
End;
{$else FPC_HAS_FEATURE_ANSISTRINGS}
var
- len: SizeInt
+ len: SizeInt;
Begin
if InOutRes<>0 then
exit;
@@ -551,7 +555,7 @@ Begin
InOutRes:=102;
exit;
end;
- Do_Rename(PFileTextRecChar(@FileRec(f).Name),p,false);
+ Do_Rename(PFileTextRecChar(@FileRec(f).Name),p,false,false);
{ check error code of do_rename }
if InOutRes=0 then
begin
diff --git a/rtl/inc/generic.inc b/rtl/inc/generic.inc
index b146f57404..4774d639e4 100644
--- a/rtl/inc/generic.inc
+++ b/rtl/inc/generic.inc
@@ -1854,45 +1854,35 @@ function SwapEndian(const AValue: Word): Word;{$ifdef SYSTEMINLINE}inline;{$endi
function SwapEndian(const AValue: LongInt): LongInt;
begin
- Result := (AValue shl 24)
- or ((AValue and $0000FF00) shl 8)
- or ((AValue and $00FF0000) shr 8)
- or (AValue shr 24);
+ Result := ((AValue shl 8) and $FF00FF00) or ((AValue shr 8) and $00FF00FF);
+ Result := (Result shl 16) or (Result shr 16);
end;
{$ifndef cpujvm}
function SwapEndian(const AValue: DWord): DWord;
begin
- Result := (AValue shl 24)
- or ((AValue and $0000FF00) shl 8)
- or ((AValue and $00FF0000) shr 8)
- or (AValue shr 24);
+ Result := ((AValue shl 8) and $FF00FF00) or ((AValue shr 8) and $00FF00FF);
+ Result := (Result shl 16) or (Result shr 16);
end;
{$endif}
function SwapEndian(const AValue: Int64): Int64;
begin
- Result := (AValue shl 56)
- or ((AValue and $000000000000FF00) shl 40)
- or ((AValue and $0000000000FF0000) shl 24)
- or ((AValue and $00000000FF000000) shl 8)
- or ((AValue and $000000FF00000000) shr 8)
- or ((AValue and $0000FF0000000000) shr 24)
- or ((AValue and $00FF000000000000) shr 40)
- or (AValue shr 56);
+ Result := ((AValue shl 8) and $FF00FF00FF00FF00) or
+ ((AValue shr 8) and $00FF00FF00FF00FF);
+ Result := ((Result shl 16) and $FFFF0000FFFF0000) or
+ ((Result shr 16) and $0000FFFF0000FFFF);
+ Result := (Result shl 32) or ((Result shr 32));
end;
{$ifndef cpujvm}
function SwapEndian(const AValue: QWord): QWord;
begin
- Result := (AValue shl 56)
- or ((AValue and $000000000000FF00) shl 40)
- or ((AValue and $0000000000FF0000) shl 24)
- or ((AValue and $00000000FF000000) shl 8)
- or ((AValue and $000000FF00000000) shr 8)
- or ((AValue and $0000FF0000000000) shr 24)
- or ((AValue and $00FF000000000000) shr 40)
- or (AValue shr 56);
+ Result := ((AValue shl 8) and $FF00FF00FF00FF00) or
+ ((AValue shr 8) and $00FF00FF00FF00FF);
+ Result := ((Result shl 16) and $FFFF0000FFFF0000) or
+ ((Result shr 16) and $0000FFFF0000FFFF);
+ Result := (Result shl 32) or ((Result shr 32));
end;
{$endif}
{$endif FPC_SYSTEM_HAS_SWAPENDIAN}
@@ -2376,11 +2366,8 @@ function BsrByte(Const AValue: Byte): Byte;
{$ifndef FPC_HAS_INTERNAL_BSF_WORD}
function BsfWord(Const AValue: Word): {$ifdef CPU16}byte{$else}cardinal{$endif};
begin
- result:=$ff;
- if lo(AValue)<>0 then
- result:=BsfByte(lo(AValue))
- else if hi(AValue) <> 0 then
- result:=BsfByte(hi(AValue))+8
+ result:=ord(lo(AValue)=0)*8;
+ result:=result or BsfByte(byte(AValue shr result));
end;
{$endif}
{$endif}
@@ -2389,10 +2376,8 @@ function BsfWord(Const AValue: Word): {$ifdef CPU16}byte{$else}cardinal{$endif};
{$ifndef FPC_HAS_INTERNAL_BSR_WORD}
function BsrWord(Const AValue: Word): {$ifdef CPU16}byte{$else}cardinal{$endif};
begin
- if hi(AValue)<>0 then
- result:=BsrByte(hi(AValue))+8
- else
- result:=BsrByte(lo(AValue))
+ result:=ord(AValue>255)*8;
+ result:=result or BsrByte(byte(AValue shr result));
end;
{$endif}
{$endif}
@@ -2400,37 +2385,47 @@ function BsrWord(Const AValue: Word): {$ifdef CPU16}byte{$else}cardinal{$endif};
{$ifndef FPC_HAS_INTERNAL_BSF_DWORD}
{$ifndef FPC_SYSTEM_HAS_BSF_DWORD}
function BsfDWord(Const AValue : DWord): {$ifdef CPU16}byte{$else}cardinal{$endif};
-begin
- result:=$ff;
- if lo(AValue)<>0 then
- result:=BsfWord(lo(AValue))
- else if hi(AValue) <> 0 then
- result:=BsfWord(hi(AValue))+16
-end;
+ var
+ tmp: DWord;
+ begin
+ result:=ord(lo(AValue)=0)*16;
+ tmp:=AValue shr result;
+ result:=result or (ord((tmp and $FF)=0)*8);
+ tmp:=tmp shr (result and 8);
+ result:=result or BsfByte(byte(tmp));
+ end;
{$endif}
{$endif}
{$ifndef FPC_HAS_INTERNAL_BSR_DWORD}
{$ifndef FPC_SYSTEM_HAS_BSR_DWORD}
function BsrDWord(Const AValue : DWord): {$ifdef CPU16}byte{$else}cardinal{$endif};
-begin
- if hi(AValue)<>0 then
- result:=BsrWord(hi(AValue))+16
- else
- result:=BsrWord(lo(AValue))
-end;
+ var
+ tmp: DWord;
+ begin
+ result:=ord(AValue>$FFFF)*16;
+ tmp:=AValue shr result;
+ result:=result or (ord(tmp>$FF)*8);
+ tmp:=tmp shr (result and 8);
+ result:=result or BsrByte(byte(tmp));
+ end;
{$endif}
{$endif}
{$ifndef FPC_HAS_INTERNAL_BSF_QWORD}
{$ifndef FPC_SYSTEM_HAS_BSF_QWORD}
function BsfQWord(Const AValue : QWord): {$ifdef CPU16}byte{$else}cardinal{$endif};
+ var
+ tmp: DWord;
begin
- result:=$ff;
- if lo(AValue) <> 0 then
- result:=BsfDWord(lo(AValue))
- else if hi(AValue) <> 0 then
- result:=BsfDWord(hi(AValue)) + 32;
+ result:=0;
+ tmp:=lo(AValue);
+ if (tmp=0) then
+ begin
+ tmp:=hi(AValue);
+ result:=32;
+ end;
+ result:=result or BsfDword(tmp);
end;
{$endif}
{$endif}
@@ -2438,11 +2433,17 @@ function BsfQWord(Const AValue : QWord): {$ifdef CPU16}byte{$else}cardinal{$endi
{$ifndef FPC_HAS_INTERNAL_BSR_QWORD}
{$ifndef FPC_SYSTEM_HAS_BSR_QWORD}
function BsrQWord(Const AValue : QWord): {$ifdef CPU16}byte{$else}cardinal{$endif};
+ var
+ tmp: DWord;
begin
- if hi(AValue) <> 0 then
- result:=BsrDWord(hi(AValue)) + 32
- else
- result:=BsrDWord(lo(AValue))
+ result:=32;
+ tmp:=hi(AValue);
+ if (tmp=0) then
+ begin
+ tmp:=lo(AValue);
+ result:=0;
+ end;
+ result:=result or BsrDword(tmp);
end;
{$endif}
{$endif}
diff --git a/rtl/inc/genmath.inc b/rtl/inc/genmath.inc
index 6eac64fd77..88c86bf195 100644
--- a/rtl/inc/genmath.inc
+++ b/rtl/inc/genmath.inc
@@ -90,7 +90,9 @@ const
lossth = 1.073741824e9;
MAXLOG = 8.8029691931113054295988E1; { log(2**127) }
MINLOG = -8.872283911167299960540E1; { log(2**-128) }
-
+ H2_54: double = 18014398509481984.0; {2^54}
+ huge: double = 1e300;
+ one: double = 1.0;
zero: double = 0;
{$if not defined(FPC_SYSTEM_HAS_SIN) or not defined(FPC_SYSTEM_HAS_COS)}
@@ -397,9 +399,6 @@ type
{* ldexp() multiplies x by 2**n. *}
var
i: integer;
- const
- H2_54: double = 18014398509481984.0; {2^54}
- huge: double = 1e300;
begin
i := (float64high(x) and $7ff00000) shr 20;
{if +-INF, NaN, 0 or if e=0 return d}
@@ -1128,9 +1127,7 @@ type
}
function fpc_exp_real(d: ValReal):ValReal;compilerproc;
const
- one: double = 1.0;
halF : array[0..1] of double = (0.5,-0.5);
- huge: double = 1.0e+300;
twom1000: double = 9.33263618503218878990e-302; { 2**-1000=0x01700000,0}
o_threshold: double = 7.09782712893383973096e+02; { 0x40862E42, 0xFEFA39EF }
u_threshold: double = -7.45133219101941108420e+02; { 0xc0874910, 0xD52D3051 }
@@ -1466,7 +1463,7 @@ type
k := 0;
if (hx < $00100000) then { x < 2**-1022 }
begin
- if (((hx and $7fffffff) or lx)=0) then
+ if (((hx and $7fffffff) or longint(lx))=0) then
exit(-two54/zero); { log(+-0)=-inf }
if (hx<0) then
exit((d-d)/zero); { log(-#) = NaN }
@@ -1702,9 +1699,6 @@ type
1.62858201153657823623e-02 { 0x3F90AD3A, 0xE322DA11 }
);
- one: double = 1.0;
- huge: double = 1.0e300;
-
var
w,s1,s2,z: double;
ix,hx,id: longint;
@@ -1927,3 +1921,310 @@ function FPower10(val: Extended; Power: Longint): Extended;
end;
end;
{$endif SUPPORT_EXTENDED}
+
+{$ifdef SUPPORT_EXTENDED}
+function TExtended80Rec.Mantissa : QWord;
+ begin
+ Result:=Frac and $7fffffffffffffff;
+ end;
+
+
+function TExtended80Rec.Fraction : Extended;
+ begin
+ Result:=system.frac(Value);
+ end;
+
+
+function TExtended80Rec.Exponent : Longint;
+ begin
+ Result:=Exp-16383;
+ end;
+
+
+function TExtended80Rec.GetExp : QWord;
+ begin
+ Result:=_Exp and $7fff;
+ end;
+
+
+procedure TExtended80Rec.SetExp(e : QWord);
+ begin
+ _Exp:=(_Exp and $8000) or (e and $7fff);
+ end;
+
+
+function TExtended80Rec.GetSign : Boolean;
+ begin
+ Result:=(_Exp and $8000)<>0;
+ end;
+
+
+procedure TExtended80Rec.SetSign(s : Boolean);
+ begin
+ _Exp:=(_Exp and $7ffff) or (ord(s) shl 15);
+ end;
+
+{
+ Based on information taken from http://en.wikipedia.org/wiki/Extended_precision#x86_Extended_Precision_Format
+}
+function TExtended80Rec.SpecialType : TFloatSpecial;
+ const
+ Denormal : array[boolean] of TFloatSpecial = (fsDenormal,fsNDenormal);
+ begin
+ case Exp of
+ 0:
+ begin
+ if Mantissa=0 then
+ begin
+ if Sign then
+ Result:=fsNZero
+ else
+ Result:=fsZero
+ end
+ else
+ Result:=Denormal[Sign];
+ end;
+ $7fff:
+ case (Frac shr 62) and 3 of
+ 0,1:
+ Result:=fsInvalidOp;
+ 2:
+ begin
+ if (Frac and $3fffffffffffffff)=0 then
+ begin
+ if Sign then
+ Result:=fsNInf
+ else
+ Result:=fsInf;
+ end
+ else
+ Result:=fsNaN;
+ end;
+ 3:
+ Result:=fsNaN;
+ end
+ else
+ begin
+ if (Frac and $8000000000000000)=0 then
+ Result:=fsInvalidOp
+ else
+ begin
+ if Sign then
+ Result:=fsNegative
+ else
+ Result:=fsPositive;
+ end;
+ end;
+ end;
+ end;
+
+{
+procedure TExtended80Rec.BuildUp(const _Sign : Boolean; const _Mantissa : QWord; const Exponent : Longint);
+ begin
+ end;
+}
+{$endif SUPPORT_EXTENDED}
+
+
+{$ifdef SUPPORT_DOUBLE}
+function TDoubleRec.Mantissa : QWord;
+ begin
+ Result:=Data and $fffffffffffff;
+ end;
+
+
+function TDoubleRec.Fraction : ValReal;
+ begin
+ Result:=system.frac(Value);
+ end;
+
+
+function TDoubleRec.Exponent : Longint;
+ begin
+ Result:=Exp-1023;
+ end;
+
+
+function TDoubleRec.GetExp : QWord;
+ begin
+ Result:=(Data and $7ff0000000000000) shr 52;
+ end;
+
+
+procedure TDoubleRec.SetExp(e : QWord);
+ begin
+ Data:=(Data and $800fffffffffffff) or ((e and $7ff) shl 52);
+ end;
+
+
+function TDoubleRec.GetSign : Boolean;
+ begin
+ Result:=(Data and $8000000000000000)<>0;
+ end;
+
+
+procedure TDoubleRec.SetSign(s : Boolean);
+ begin
+ Data:=(Data and $7fffffffffffffff) or (QWord(ord(s)) shl 63);
+ end;
+
+
+function TDoubleRec.GetFrac : QWord;
+ begin
+ Result:=$10000000000000 or Mantissa;
+ end;
+
+
+procedure TDoubleRec.SetFrac(e : QWord);
+ begin
+ Data:=(Data and $7ff0000000000000) or (e and $fffffffffffff);
+ end;
+
+{
+ Based on information taken from http://en.wikipedia.org/wiki/Double_precision#x86_Extended_Precision_Format
+}
+function TDoubleRec.SpecialType : TFloatSpecial;
+ const
+ Denormal : array[boolean] of TFloatSpecial = (fsDenormal,fsNDenormal);
+ begin
+ case Exp of
+ 0:
+ begin
+ if Mantissa=0 then
+ begin
+ if Sign then
+ Result:=fsNZero
+ else
+ Result:=fsZero
+ end
+ else
+ Result:=Denormal[Sign];
+ end;
+ $7ff:
+ if Mantissa=0 then
+ begin
+ if Sign then
+ Result:=fsNInf
+ else
+ Result:=fsInf;
+ end
+ else
+ Result:=fsNaN;
+ else
+ begin
+ if Sign then
+ Result:=fsNegative
+ else
+ Result:=fsPositive;
+ end;
+ end;
+ end;
+
+{
+procedure TDoubleRec.BuildUp(const _Sign : Boolean; const _Mantissa : QWord; const Exponent : Longint);
+ begin
+ end;
+}
+{$endif SUPPORT_DOUBLE}
+
+
+{$ifdef SUPPORT_SINGLE}
+function TSingleRec.Mantissa : QWord;
+ begin
+ Result:=Data and $7fffff;
+ end;
+
+
+function TSingleRec.Fraction : ValReal;
+ begin
+ Result:=system.frac(Value);
+ end;
+
+
+function TSingleRec.Exponent : Longint;
+ begin
+ Result:=Exp-127;
+ end;
+
+
+function TSingleRec.GetExp : QWord;
+ begin
+ Result:=(Data and $7f800000) shr 23;
+ end;
+
+
+procedure TSingleRec.SetExp(e : QWord);
+ begin
+ Data:=(Data and $807fffff) or ((e and $ff) shl 23);
+ end;
+
+
+function TSingleRec.GetSign : Boolean;
+ begin
+ Result:=(Data and $80000000)<>0;
+ end;
+
+
+procedure TSingleRec.SetSign(s : Boolean);
+ begin
+ Data:=(Data and $7fffffff) or (DWord(ord(s)) shl 31);
+ end;
+
+
+function TSingleRec.GetFrac : QWord;
+ begin
+ Result:=$8000000 or Mantissa;
+ end;
+
+
+procedure TSingleRec.SetFrac(e : QWord);
+ begin
+ Data:=(Data and $ff800000) or (e and $7fffff);
+ end;
+
+{
+ Based on information taken from http://en.wikipedia.org/wiki/Single_precision#x86_Extended_Precision_Format
+}
+function TSingleRec.SpecialType : TFloatSpecial;
+ const
+ Denormal : array[boolean] of TFloatSpecial = (fsDenormal,fsNDenormal);
+ begin
+ case Exp of
+ 0:
+ begin
+ if Mantissa=0 then
+ begin
+ if Sign then
+ Result:=fsNZero
+ else
+ Result:=fsZero
+ end
+ else
+ Result:=Denormal[Sign];
+ end;
+ $ff:
+ if Mantissa=0 then
+ begin
+ if Sign then
+ Result:=fsNInf
+ else
+ Result:=fsInf;
+ end
+ else
+ Result:=fsNaN;
+ else
+ begin
+ if Sign then
+ Result:=fsNegative
+ else
+ Result:=fsPositive;
+ end;
+ end;
+ end;
+
+{
+procedure TSingleRec.BuildUp(const _Sign : Boolean; const _Mantissa : QWord; const Exponent : Longint);
+ begin
+ end;
+}
+{$endif SUPPORT_SINGLE}
diff --git a/rtl/inc/innr.inc b/rtl/inc/innr.inc
index aec400c1b3..83d6fbeffd 100644
--- a/rtl/inc/innr.inc
+++ b/rtl/inc/innr.inc
@@ -88,6 +88,8 @@ const
fpc_in_box_x = 77; { managed platforms: wrap in class instance }
fpc_in_unbox_x_y = 78; { manage platforms: extract from class instance }
fpc_in_popcnt_x = 79;
+ fpc_in_aligned_x = 80;
+ fpc_in_setstring_x_y_z = 81;
{ Internal constant functions }
fpc_in_const_sqr = 100;
diff --git a/rtl/inc/int64.inc b/rtl/inc/int64.inc
index 5abd5b4e04..70096ca9ab 100644
--- a/rtl/inc/int64.inc
+++ b/rtl/inc/int64.inc
@@ -122,6 +122,12 @@
shift,lzz,lzn : longint;
begin
+ { Use the usually faster 32-bit division if possible }
+ if (hi(z) = 0) and (hi(n) = 0) then
+ begin
+ fpc_div_qword := Dword(z) div Dword(n);
+ exit;
+ end;
fpc_div_qword:=0;
if n=0 then
HandleErrorAddrFrameInd(200,get_pc_addr,get_frame);
@@ -134,6 +140,7 @@
{ then d is greater than the n }
if lzn>lzz then
exit;
+
shift:=lzz-lzn;
n:=n shl shift;
for shift:=shift downto 0 do
@@ -156,6 +163,12 @@
shift,lzz,lzn : longint;
begin
+ { Use the usually faster 32-bit mod if possible }
+ if (hi(z) = 0) and (hi(n) = 0) then
+ begin
+ fpc_mod_qword := Dword(z) mod Dword(n);
+ exit;
+ end;
fpc_mod_qword:=0;
if n=0 then
HandleErrorAddrFrameInd(200,get_pc_addr,get_frame);
diff --git a/rtl/inc/mathh.inc b/rtl/inc/mathh.inc
index bb079d9982..88f9a20242 100644
--- a/rtl/inc/mathh.inc
+++ b/rtl/inc/mathh.inc
@@ -115,6 +115,86 @@ procedure float_raise(i: TFPUExceptionMask);
operator := (b:real48) e:extended;
{$endif SUPPORT_EXTENDED}
+ type
+ TFloatSpecial = (fsZero,fsNZero,fsDenormal,fsNDenormal,fsPositive,fsNegative,
+ fsInf,fsNInf,fsNaN,fsInvalidOp);
+
+{$ifdef SUPPORT_EXTENDED}
+ TExtended80Rec = packed record
+ private
+ function GetExp : QWord;
+ procedure SetExp(e : QWord);
+ function GetSign : Boolean;
+ procedure SetSign(s : Boolean);
+ public
+ function Mantissa : QWord;
+ function Fraction : Extended;
+ function Exponent : Longint;
+ property Sign : Boolean read GetSign write SetSign;
+ property Exp : QWord read GetExp write SetExp;
+ function SpecialType : TFloatSpecial;
+ // procedure BuildUp(const _Sign : Boolean; const _Mantissa : QWord; const Exponent : Longint);
+ case byte of
+ 0: (Bytes : array[0..9] of Byte);
+ 1: (Words : array[0..4] of Word);
+{$ifdef ENDIAN_LITTLE}
+ 2: (Frac : QWord; _Exp: Word);
+{$else ENDIAN_LITTLE}
+ 2: (_Exp: Word; Frac : QWord);
+{$endif ENDIAN_LITTLE}
+ 3: (Value: Extended);
+ end;
+{$endif SUPPORT_EXTENDED}
+
+{$ifdef SUPPORT_DOUBLE}
+ TDoubleRec = packed record
+ private
+ function GetExp : QWord;
+ procedure SetExp(e : QWord);
+ function GetSign : Boolean;
+ procedure SetSign(s : Boolean);
+ function GetFrac : QWord;
+ procedure SetFrac(e : QWord);
+ public
+ function Mantissa : QWord;
+ function Fraction : ValReal;
+ function Exponent : Longint;
+ property Sign : Boolean read GetSign write SetSign;
+ property Exp : QWord read GetExp write SetExp;
+ property Frac : QWord read Getfrac write SetFrac;
+ function SpecialType : TFloatSpecial;
+ case byte of
+ 0: (Bytes : array[0..7] of Byte);
+ 1: (Words : array[0..3] of Word);
+ 2: (Data : QWord);
+ 3: (Value: Double);
+ end;
+{$endif SUPPORT_DOUBLE}
+
+{$ifdef SUPPORT_SINGLE}
+ TSingleRec = packed record
+ private
+ function GetExp : QWord;
+ procedure SetExp(e : QWord);
+ function GetSign : Boolean;
+ procedure SetSign(s : Boolean);
+ function GetFrac : QWord;
+ procedure SetFrac(e : QWord);
+ public
+ function Mantissa : QWord;
+ function Fraction : ValReal;
+ function Exponent : Longint;
+ property Sign : Boolean read GetSign write SetSign;
+ property Exp : QWord read GetExp write SetExp;
+ property Frac : QWord read Getfrac write SetFrac;
+ function SpecialType : TFloatSpecial;
+ case byte of
+ 0: (Bytes : array[0..3] of Byte);
+ 1: (Words : array[0..1] of Word);
+ 2: (Data : DWord);
+ 3: (Value: Single);
+ end;
+{$endif SUPPORT_SINGLE}
function FMASingle(s1,s2,s3 : single) : single;[internproc:fpc_in_fma_single];
{$ifdef SUPPORT_DOUBLE}
diff --git a/rtl/inc/objpash.inc b/rtl/inc/objpash.inc
index 9eb394404e..4af69c8c49 100644
--- a/rtl/inc/objpash.inc
+++ b/rtl/inc/objpash.inc
@@ -154,10 +154,10 @@
tinterfaceentrytype = (etStandard,
etVirtualMethodResult,
etStaticMethodResult,
- etFieldValue,
+ etFieldValue,
etVirtualMethodClass,
etStaticMethodClass,
- etFieldValueClass
+ etFieldValueClass
);
pinterfaceentry = ^tinterfaceentry;
@@ -376,9 +376,9 @@
vtInteger = 0;
vtBoolean = 1;
vtChar = 2;
-{$ifndef FPUNONE}
+{$ifndef FPUNONE}
vtExtended = 3;
-{$endif}
+{$endif}
vtString = 4;
vtPointer = 5;
vtPChar = 6;
@@ -399,23 +399,23 @@
PVarRec = ^TVarRec;
TVarRec = record
case VType : sizeint of
-{$ifdef ENDIAN_BIG}
+{$ifdef ENDIAN_BIG}
vtInteger : ({$IFDEF CPU64}integerdummy1 : Longint;{$ENDIF CPU64}VInteger: Longint);
vtBoolean : ({$IFDEF CPU64}booldummy : Longint;{$ENDIF CPU64}booldummy1,booldummy2,booldummy3: byte; VBoolean: Boolean);
vtChar : ({$IFDEF CPU64}chardummy : Longint;{$ENDIF CPU64}chardummy1,chardummy2,chardummy3: byte; VChar: Char);
vtWideChar : ({$IFDEF CPU64}widechardummy : Longint;{$ENDIF CPU64}wchardummy1,VWideChar: WideChar);
-{$else ENDIAN_BIG}
+{$else ENDIAN_BIG}
vtInteger : (VInteger: Longint);
vtBoolean : (VBoolean: Boolean);
vtChar : (VChar: Char);
vtWideChar : (VWideChar: WideChar);
-{$endif ENDIAN_BIG}
-{$ifndef FPUNONE}
+{$endif ENDIAN_BIG}
+{$ifndef FPUNONE}
vtExtended : (VExtended: PExtended);
-{$endif}
+{$endif}
vtString : (VString: PShortString);
vtPointer : (VPointer: Pointer);
- vtPChar : (VPChar: PChar);
+ vtPChar : (VPChar: PAnsiChar);
vtObject : (VObject: TObject);
vtClass : (VClass: TClass);
vtPWideChar : (VPWideChar: PWideChar);
diff --git a/rtl/inc/rtti.inc b/rtl/inc/rtti.inc
index fdf3954759..6991b573f2 100644
--- a/rtl/inc/rtti.inc
+++ b/rtl/inc/rtti.inc
@@ -392,3 +392,19 @@ procedure fpc_decref_array(data,typeinfo: pointer; count: SizeInt); [public,alia
int_finalizeArray(data,typeinfo,count);
end;
+procedure InitializeArray(p, typeInfo: Pointer; count: SizeInt);
+ external name 'FPC_INITIALIZE_ARRAY';
+
+procedure FinalizeArray(p, typeInfo: Pointer; count: SizeInt);
+ external name 'FPC_FINALIZE_ARRAY';
+
+procedure CopyArray(dest, source, typeInfo: Pointer; count: SizeInt);
+ var
+ i, size: SizeInt;
+ begin
+ size:=RTTISize(typeInfo);
+ if size>0 then
+ for i:=0 to count-1 do
+ fpc_Copy_internal(source+size*i, dest+size*i, typeInfo);
+ end;
+
diff --git a/rtl/inc/rttih.inc b/rtl/inc/rttih.inc
new file mode 100644
index 0000000000..d092088fc6
--- /dev/null
+++ b/rtl/inc/rttih.inc
@@ -0,0 +1,18 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 1999-2014 by Maciej Izak
+
+ 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 InitializeArray(p, typeInfo: Pointer; count: SizeInt);
+procedure FinalizeArray(p, typeInfo: Pointer; count: SizeInt);
+procedure CopyArray(dest, source, typeInfo: Pointer; count: SizeInt);
+
+
diff --git a/rtl/inc/softfpu.pp b/rtl/inc/softfpu.pp
index 3ad877dd9d..d9f23c16c5 100644
--- a/rtl/inc/softfpu.pp
+++ b/rtl/inc/softfpu.pp
@@ -132,15 +132,6 @@ TYPE
2: (dummy : double);
end;
- int64rec = record
- case byte of
- 1: (low,high : bits32);
- // force the record to be aligned like a double
- // else *_to_double will fail for cpus like sparc
- // and avoid expensive unpacking/packing operations
- 2: (dummy : int64);
- end;
-
floatx80 = record
case byte of
1: (low : qword;high : word);
@@ -167,15 +158,6 @@ TYPE
2: (dummy : double);
end;
- int64rec = record
- case byte of
- 1: (high,low : bits32);
- // force the record to be aligned like a double
- // else *_to_double will fail for cpus like sparc
- // and avoid expensive unpacking/packing operations
- 2: (dummy : int64);
-end;
-
floatx80 = record
case byte of
1: (high : word;low : qword);
@@ -604,14 +586,14 @@ end;
function roundAndPackInt32( zSign: flag; absZ : bits64): int32;
var
roundingMode: TFPURoundingMode;
- roundNearestEven: flag;
+ roundNearestEven: boolean;
roundIncrement, roundBits: int8;
z: int32;
begin
roundingMode := softfloat_rounding_mode;
- roundNearestEven := ord( roundingMode = float_round_nearest_even );
+ roundNearestEven := (roundingMode = float_round_nearest_even);
roundIncrement := $40;
- if ( roundNearestEven=0 ) then
+ if not roundNearestEven then
begin
if ( roundingMode = float_round_to_zero ) then
begin
@@ -630,13 +612,13 @@ begin
end;
end;
end;
- roundBits := absZ and $7F;
+ roundBits := lo(absZ) and $7F;
absZ := ( absZ + roundIncrement ) shr 7;
- absZ := absZ and not( ord( ( roundBits xor $40 ) = 0 ) and roundNearestEven );
+ absZ := absZ and not( bits64( ord( ( roundBits xor $40 ) = 0 ) and ord(roundNearestEven) ));
z := absZ;
if ( zSign<>0 ) then
z := - z;
- if ( ( absZ shr 32 ) or ( z and ( ord( z < 0 ) xor zSign ) ) )<>0 then
+ if ( longint(hi( absZ )) or ( z and ( ord( z < 0 ) xor zSign ) ) )<>0 then
begin
float_raise( float_flag_invalid );
if zSign<>0 then
@@ -1341,9 +1323,9 @@ Var
aHigh, aLow, bHigh, bLow: bits16;
z0, zMiddleA, zMiddleB, z1: bits32;
Begin
- aLow := a and $ffff;
+ aLow := bits16(a);
aHigh := a shr 16;
- bLow := b and $ffff;
+ bLow := bits16(b);
bHigh := b shr 16;
z1 := ( bits32( aLow) ) * bLow;
zMiddleA := ( bits32 (aLow) ) * bHigh;
@@ -1620,7 +1602,7 @@ Begin
z := ( z shl 15 );
if ( z <= a ) then
Begin
- estimateSqrt32 := bits32 ( ( sbits32 (a )) shr 1 );
+ estimateSqrt32 := bits32 ( SarLongint( sbits32 (a)) );
exit;
End;
End;
@@ -2335,7 +2317,7 @@ var
Returns the fraction bits of the single-precision floating-point value `a'.
-------------------------------------------------------------------------------
*}
-Function ExtractFloat32Frac(a : Float32) : Bits32;
+Function ExtractFloat32Frac(a : Float32) : Bits32; inline;
Begin
ExtractFloat32Frac := A AND $007FFFFF;
End;
@@ -2345,7 +2327,7 @@ Function ExtractFloat32Frac(a : Float32) : Bits32;
Returns the exponent bits of the single-precision floating-point value `a'.
-------------------------------------------------------------------------------
*}
-Function extractFloat32Exp( a: float32 ): Int16;
+Function extractFloat32Exp( a: float32 ): Int16; inline;
Begin
extractFloat32Exp := (a shr 23) AND $FF;
End;
@@ -2355,7 +2337,7 @@ Function extractFloat32Exp( a: float32 ): Int16;
Returns the sign bit of the single-precision floating-point value `a'.
-------------------------------------------------------------------------------
*}
-Function extractFloat32Sign( a: float32 ): Flag;
+Function extractFloat32Sign( a: float32 ): Flag; inline;
Begin
extractFloat32Sign := a shr 31;
End;
@@ -2390,7 +2372,7 @@ than the desired result exponent whenever `zSig' is a complete, normalized
significand.
-------------------------------------------------------------------------------
*}
-Function packFloat32( zSign: Flag; zExp : Int16; zSig: Bits32 ): Float32;
+Function packFloat32( zSign: Flag; zExp : Int16; zSig: Bits32 ): Float32; inline;
Begin
packFloat32 := ( ( bits32( zSign) ) shl 31 ) + ( ( bits32 (zExp) ) shl 23 )
@@ -2423,19 +2405,14 @@ Binary Floating-Point Arithmetic.
Function roundAndPackFloat32( zSign : Flag; zExp : Int16; zSig : Bits32 ) : float32;
Var
roundingMode : TFPURoundingMode;
- roundNearestEven : Flag;
+ roundNearestEven : boolean;
roundIncrement, roundBits : BYTE;
- IsTiny : Flag;
+ IsTiny : boolean;
Begin
roundingMode := softfloat_rounding_mode;
- if (roundingMode = float_round_nearest_even) then
- Begin
- roundNearestEven := Flag(TRUE);
- end
- else
- roundNearestEven := Flag(FALSE);
+ roundNearestEven := (roundingMode = float_round_nearest_even);
roundIncrement := $40;
- if ( Boolean(roundNearestEven) = FALSE) then
+ if not roundNearestEven then
Begin
if ( roundingMode = float_round_to_zero ) Then
Begin
@@ -2466,23 +2443,22 @@ Function roundAndPackFloat32( zSign : Flag; zExp : Int16; zSig : Bits32 ) : floa
if ( zExp < 0 ) then
Begin
isTiny :=
- flag(( softfloat_detect_tininess = float_tininess_before_rounding )
+ ( softfloat_detect_tininess = float_tininess_before_rounding )
OR ( zExp < -1 )
- OR ( (zSig + roundIncrement) < $80000000 ));
+ OR ( (zSig + roundIncrement) < $80000000 );
shift32RightJamming( zSig, - zExp, zSig );
zExp := 0;
roundBits := zSig AND $7F;
- if ( (isTiny = flag(TRUE)) and (roundBits<>0) ) then
+ if ( isTiny and (roundBits<>0) ) then
float_raise( float_flag_underflow );
End;
End;
if ( roundBits )<> 0 then
set_inexact_flag;
zSig := ( zSig + roundIncrement ) shr 7;
- zSig := zSig AND not bits32( bits32( ( roundBits XOR $40 ) = 0 ) and roundNearestEven );
+ zSig := zSig AND not bits32( bits32( ( roundBits XOR $40 ) = 0 ) and ord(roundNearestEven) );
if ( zSig = 0 ) then zExp := 0;
roundAndPackFloat32 := packFloat32( zSign, zExp, zSig );
- exit;
End;
{*
@@ -2509,7 +2485,7 @@ Returns the most-significant 20 fraction bits of the double-precision
floating-point value `a'.
-------------------------------------------------------------------------------
*}
-Function extractFloat64Frac0(a: float64): bits32;
+Function extractFloat64Frac0(a: float64): bits32; inline;
Begin
extractFloat64Frac0 := a.high and $000FFFFF;
End;
@@ -2520,14 +2496,14 @@ Returns the least-significant 32 fraction bits of the double-precision
floating-point value `a'.
-------------------------------------------------------------------------------
*}
-Function extractFloat64Frac1(a: float64): bits32;
+Function extractFloat64Frac1(a: float64): bits32; inline;
Begin
extractFloat64Frac1 := a.low;
End;
{$define FPC_SYSTEM_HAS_extractFloat64Frac}
-Function extractFloat64Frac(a: float64): bits64;
+Function extractFloat64Frac(a: float64): bits64; inline;
Begin
extractFloat64Frac := bits64(a) and $000FFFFFFFFFFFFF;
End;
@@ -2537,7 +2513,7 @@ Function extractFloat64Frac(a: float64): bits64;
Returns the exponent bits of the double-precision floating-point value `a'.
-------------------------------------------------------------------------------
*}
-Function extractFloat64Exp(a: float64): int16;
+Function extractFloat64Exp(a: float64): int16; inline;
Begin
extractFloat64Exp:= ( a.high shr 20 ) AND $7FF;
End;
@@ -2547,7 +2523,7 @@ Function extractFloat64Exp(a: float64): int16;
Returns the sign bit of the double-precision floating-point value `a'.
-------------------------------------------------------------------------------
*}
-Function extractFloat64Sign(a: float64) : flag;
+Function extractFloat64Sign(a: float64) : flag; inline;
Begin
extractFloat64Sign := a.high shr 31;
End;
@@ -2885,6 +2861,25 @@ Procedure
End;
{*
+----------------------------------------------------------------------------
+Takes an abstract floating-point value having sign `zSign', exponent `zExp',
+and significand `zSig', and returns the proper double-precision floating-
+point value corresponding to the abstract input. This routine is just like
+`roundAndPackFloat64' except that `zSig' does not have to be normalized.
+Bit 63 of `zSig' must be zero, and `zExp' must be 1 less than the ``true''
+floating-point exponent.
+----------------------------------------------------------------------------
+*}
+
+function normalizeRoundAndPackFloat64(zSign: flag; zExp: int16; zSig: bits64): float64;
+ var
+ shiftCount: int8;
+ begin
+ shiftCount := countLeadingZeros64( zSig ) - 1;
+ result := roundAndPackFloat64( zSign, zExp - shiftCount, zSig shl shiftCount);
+ end;
+
+{*
-------------------------------------------------------------------------------
Returns the result of converting the 32-bit two's complement integer `a' to
the single-precision floating-point format. The conversion is performed
@@ -3756,7 +3751,7 @@ Function float32_mul(a: float32rec; b: float32rec ) : float32rec; compilerproc;
float32_mul.float32 := propagateFloat32NaN( a.float32, b.float32 );
exit;
End;
- if ( ( bExp OR bSig ) = 0 ) then
+ if ( ( bits32(bExp) OR bSig ) = 0 ) then
Begin
float_raise( float_flag_invalid );
float32_mul.float32 := float32_default_nan;
@@ -3772,7 +3767,7 @@ Function float32_mul(a: float32rec; b: float32rec ) : float32rec; compilerproc;
float32_mul.float32 := propagateFloat32NaN( a.float32, b.float32 );
exit;
End;
- if ( ( aExp OR aSig ) = 0 ) then
+ if ( ( bits32(aExp) OR aSig ) = 0 ) then
Begin
float_raise( float_flag_invalid );
float32_mul.float32 := float32_default_nan;
@@ -3867,7 +3862,7 @@ Function float32_div(a: float32rec;b: float32rec ): float32rec; compilerproc;
Begin
if ( bSig = 0 ) Then
Begin
- if ( ( aExp OR aSig ) = 0 ) then
+ if ( ( bits32(aExp) OR aSig ) = 0 ) then
Begin
float_raise( float_flag_invalid );
float32_div.float32 := float32_default_nan;
@@ -4065,7 +4060,7 @@ Begin
End;
if ( aSign <> 0) then
Begin
- if ( ( aExp OR aSig ) = 0 ) then
+ if ( ( bits32(aExp) OR aSig ) = 0 ) then
Begin
float32_sqrt := a;
exit;
@@ -4423,7 +4418,7 @@ Var
Begin
if ( aExp < $3FF ) then
Begin
- if ( aExp OR aSig0 OR aSig1 )<>0 then
+ if ( bits32(aExp) OR aSig0 OR aSig1 )<>0 then
Begin
set_inexact_flag;
End;
@@ -5071,7 +5066,7 @@ Begin
propagateFloat64NaN( a, b, result );
exit;
End;
- if ( ( bExp OR bSig0 OR bSig1 ) = 0 ) then goto invalid;
+ if ( ( bits32(bExp) OR bSig0 OR bSig1 ) = 0 ) then goto invalid;
packFloat64( zSign, $7FF, 0, 0, result );
exit;
End;
@@ -5186,7 +5181,7 @@ Begin
Begin
if ( ( bSig0 OR bSig1 ) = 0 ) then
Begin
- if ( ( aExp OR aSig0 OR aSig1 ) = 0 ) then
+ if ( ( bits32(aExp) OR aSig0 OR aSig1 ) = 0 ) then
Begin
invalid:
float_raise( float_flag_invalid );
@@ -5418,7 +5413,7 @@ Begin
End;
if ( aSign <> 0 ) then
Begin
- if ( ( aExp OR aSig0 OR aSig1 ) = 0 ) then
+ if ( ( bits32(aExp) OR aSig0 OR aSig1 ) = 0 ) then
Begin
result := a;
exit;
@@ -5761,7 +5756,6 @@ var
zSign : flag;
absA : uint64;
shiftCount: int8;
- intval : int64rec;
Begin
if ( a = 0 ) then
begin
@@ -5785,14 +5779,7 @@ Begin
begin
shiftCount := shiftCount + 7;
if ( shiftCount < 0 ) then
- begin
- intval.low := int64rec(AbsA).low;
- intval.high := int64rec(AbsA).high;
- shift64RightJamming( intval.high, intval.low, - shiftCount,
- intval.high, intval.low);
- int64rec(absA).low := intval.low;
- int64rec(absA).high := intval.high;
- end
+ shift64RightJamming( absA, - shiftCount, absA )
else
absA := absA shl shiftCount;
int64_to_float32.float32:=roundAndPackFloat32( zSign, $9C - shiftCount, absA );
@@ -5807,38 +5794,28 @@ End;
*----------------------------------------------------------------------------*}
function qword_to_float32( a: qword ): float32rec; compilerproc;
var
- zSign : flag;
absA : uint64;
shiftCount: int8;
- intval : int64rec;
Begin
if ( a = 0 ) then
begin
qword_to_float32.float32 := 0;
exit;
end;
- zSign := flag(FALSE);
absA := a;
shiftCount := countLeadingZeros64( absA ) - 40;
if ( 0 <= shiftCount ) then
begin
- qword_to_float32.float32:= packFloat32( zSign, $95 - shiftCount, absA shl shiftCount );
+ qword_to_float32.float32:= packFloat32( 0, $95 - shiftCount, absA shl shiftCount );
end
else
begin
shiftCount := shiftCount + 7;
if ( shiftCount < 0 ) then
- begin
- intval.low := int64rec(AbsA).low;
- intval.high := int64rec(AbsA).high;
- shift64RightJamming( intval.high, intval.low, - shiftCount,
- intval.high, intval.low);
- int64rec(absA).low := intval.low;
- int64rec(absA).high := intval.high;
- end
+ shift64RightJamming( absA, - shiftCount, absA )
else
absA := absA shl shiftCount;
- qword_to_float32.float32:=roundAndPackFloat32( zSign, $9C - shiftCount, absA );
+ qword_to_float32.float32:=roundAndPackFloat32( 0, $9C - shiftCount, absA );
end;
End;
@@ -5851,33 +5828,25 @@ End;
function qword_to_float64( a: qword ): float64;
{$ifdef fpc}[public,Alias:'QWORD_TO_FLOAT64'];compilerproc;{$endif}
var
- zSign : flag;
- float_result : float64;
- AbsA : bits64;
- shiftcount : int8;
- zSig0, zSig1 : bits32;
+ shiftCount: int8;
Begin
- if ( a = 0 ) then
- Begin
- packFloat64( 0, 0, 0, 0, result );
- exit;
- end;
- zSign := flag(FALSE);
- AbsA := a;
- shiftCount := countLeadingZeros64( absA ) - 11;
- if ( 0 <= shiftCount ) then
- Begin
- absA := absA shl shiftcount;
- zSig0:=int64rec(absA).high;
- zSig1:=int64rec(absA).low;
- End
- else
- Begin
- shift64Right( int64rec(absA).high, int64rec(absA).low,
- - shiftCount, zSig0, zSig1 );
- End;
- packFloat64( zSign, $432 - shiftCount, zSig0, zSig1, float_result );
- qword_to_float64:= float_result;
+ if ( a = 0 ) then
+ result := packFloat64( 0, 0, 0 )
+ else
+ begin
+ shiftCount := countLeadingZeros64(a) - 1;
+ { numbers with <= 53 significant bits are converted exactly }
+ if (shiftCount > 9) then
+ result := packFloat64(0, $43c - shiftCount, a shl (shiftCount-10))
+ else if (shiftCount>=0) then
+ result := roundAndPackFloat64( 0, $43c - shiftCount, a shl shiftCount)
+ else
+ begin
+ { the only possible negative value is -1, in case bit 63 of 'a' is set }
+ shift64RightJamming(a, 1, a);
+ result := roundAndPackFloat64(0, $43d, a);
+ end;
+ end;
End;
@@ -5889,37 +5858,15 @@ End;
*----------------------------------------------------------------------------*}
function int64_to_float64( a: int64 ): float64;
{$ifdef fpc}[public,Alias:'INT64_TO_FLOAT64'];compilerproc;{$endif}
-var
- zSign : flag;
- float_result : float64;
- AbsA : bits64;
- shiftcount : int8;
- zSig0, zSig1 : bits32;
Begin
- if ( a = 0 ) then
- Begin
- packFloat64( 0, 0, 0, 0, result );
- exit;
- end;
- zSign := flag( a < 0 );
- if ZSign<>0 then
- AbsA := -a
- else
- AbsA := a;
- shiftCount := countLeadingZeros64( absA ) - 11;
- if ( 0 <= shiftCount ) then
- Begin
- absA := absA shl shiftcount;
- zSig0:=int64rec(absA).high;
- zSig1:=int64rec(absA).low;
- End
- else
- Begin
- shift64Right( int64rec(absA).high, int64rec(absA).low,
- - shiftCount, zSig0, zSig1 );
- End;
- packFloat64( zSign, $432 - shiftCount, zSig0, zSig1, float_result );
- int64_to_float64:= float_result;
+ if ( a = 0 ) then
+ result := packFloat64( 0, 0, 0 )
+ else if (a = int64($8000000000000000)) then
+ result := packFloat64( 1, $43e, 0 )
+ else if (a < 0) then
+ result := normalizeRoundAndPackFloat64( 1, $43c, -a )
+ else
+ result := normalizeRoundAndPackFloat64( 0, $43c, a );
End;
diff --git a/rtl/inc/sstrings.inc b/rtl/inc/sstrings.inc
index 23dad25481..f16f2c910f 100644
--- a/rtl/inc/sstrings.inc
+++ b/rtl/inc/sstrings.inc
@@ -2080,7 +2080,7 @@ end;
{$ifndef FPC_HAS_SETSTRING_SHORTSTR}
{$define FPC_HAS_SETSTRING_SHORTSTR}
-Procedure SetString (Out S : Shortstring; Buf : PChar; Len : SizeInt);
+Procedure {$ifdef FPC_HAS_CPSTRING}fpc_setstring_shortstr{$else}SetString{$endif}(Out S : Shortstring; Buf : PChar; Len : SizeInt); {$ifdef FPC_HAS_CPSTRING} compilerproc; {$endif FPC_HAS_CPSTRING}
begin
If Len > High(S) then
Len := High(S);
diff --git a/rtl/inc/system.fpd b/rtl/inc/system.fpd
index 7bd5fc3859..dfd8504aeb 100644
--- a/rtl/inc/system.fpd
+++ b/rtl/inc/system.fpd
@@ -19,6 +19,8 @@ Type
Char = #0..#255;
Longint = -2147483648..2147483647;
Longword= 0..4294967295;
+ Int64 = =-9223372036854775808.. 9223372036854775807;
+ QWord = 0..18446744073709551615;
Shortint= -128 .. 127;
Smallint= -32768 .. 32767;
Word = 0 .. 65535;
diff --git a/rtl/inc/system.inc b/rtl/inc/system.inc
index 8f64474bc3..ea7a80d7c0 100644
--- a/rtl/inc/system.inc
+++ b/rtl/inc/system.inc
@@ -352,22 +352,22 @@ End;
Function Swap (X : Longint) : Longint;{$ifdef SYSTEMINLINE}inline;{$endif}
Begin
- Swap:=(X and $ffff) shl 16 + (X shr 16)
+ Swap:=(X shl 16) + (X shr 16);
End;
Function Swap (X : Cardinal) : Cardinal;{$ifdef SYSTEMINLINE}inline;{$endif}
Begin
- Swap:=(X and $ffff) shl 16 + (X shr 16)
+ Swap:=(X shl 16) + (X shr 16);
End;
Function Swap (X : QWord) : QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
Begin
- Swap:=(X and $ffffffff) shl 32 + (X shr 32);
+ Swap:=(X shl 32) + (X shr 32);
End;
-Function swap (X : Int64) : Int64;{$ifdef SYSTEMINLINE}inline;{$endif}
+Function Swap (X : Int64) : Int64;{$ifdef SYSTEMINLINE}inline;{$endif}
Begin
- Swap:=(X and $ffffffff) shl 32 + (X shr 32);
+ Swap:=(X shl 32) + (X shr 32);
End;
{$ifdef SUPPORT_DOUBLE}
@@ -1519,6 +1519,7 @@ begin
end;
+{$ifdef FPC_HAS_FEATURE_ANSISTRINGS}
procedure DoDirSeparators(var ps:RawByteString);
var
i : longint;
@@ -1538,7 +1539,10 @@ begin
p[i-1]:=DirectorySeparator;
end;
end;
+{$endif FPC_HAS_FEATURE_ANSISTRINGS}
+
+{$ifdef FPC_HAS_FEATURE_UNICODESTRINGS}
procedure DoDirSeparators(var ps:UnicodeString);
var
i : longint;
@@ -1558,6 +1562,7 @@ begin
p[i-1]:=DirectorySeparator;
end;
end;
+{$endif FPC_HAS_FEATURE_UNICODESTRINGS}
{$endif FPC_HAS_FEATURE_FILEIO}
@@ -1642,8 +1647,20 @@ end;
{$endif FPC_HAS_FEATURE_FILEIO}
+{ helper for targets supporting no ansistrings, it is used
+ by non-ansistring code }
+function min(v1,v2 : SizeInt) : SizeInt;
+ begin
+ if v1<v2 then
+ result:=v1
+ else
+ result:=v2;
+ end;
+
+{$ifdef FPC_HAS_FEATURE_TEXTIO}
{ Text file }
{$i text.inc}
+{$endif FPC_HAS_FEATURE_TEXTIO}
{$ifdef FPC_HAS_FEATURE_FILEIO}
{ Untyped file }
diff --git a/rtl/inc/systemh.inc b/rtl/inc/systemh.inc
index 9cd447fa8c..69b489ad9f 100644
--- a/rtl/inc/systemh.inc
+++ b/rtl/inc/systemh.inc
@@ -20,6 +20,7 @@
{$I-,Q-,H-,R-,V-}
{$mode objfpc}
+{$modeswitch advancedrecords}
{ At least 2.4.0 is required }
{$if defined(VER1) or defined(VER2_0) or defined(VER2_2) }
@@ -412,6 +413,7 @@ Type
AnsiChar = Char;
PAnsiChar = PChar;
PPAnsiChar = PPChar;
+ PPPAnsiChar = PPPChar;
UCS4Char = type 0..$10ffff;
PUCS4Char = ^UCS4Char;
@@ -524,7 +526,8 @@ Type
{ the size of textrec/filerec is hardcoded in the 2.6 compiler binary }
{$define FPC_ANSI_TEXTFILEREC}
{$endif}
- TFileTextRecChar = {$ifdef FPC_ANSI_TEXTFILEREC}AnsiChar{$else}UnicodeChar{$endif};
+
+ TFileTextRecChar = {$if defined(FPC_ANSI_TEXTFILEREC) or not(defined(FPC_HAS_FEATURE_WIDESTRINGS))}AnsiChar{$else}UnicodeChar{$endif};
PFileTextRecChar = ^TFileTextRecChar;
TTextLineBreakStyle = (tlbsLF,tlbsCRLF,tlbsCR);
@@ -1070,10 +1073,16 @@ Function Pos(const substr:shortstring;const s:shortstring):SizeInt;
Function Pos(C:Char;const s:shortstring):SizeInt;
{$ifdef FPC_HAS_FEATURE_ANSISTRINGS}
Function Pos(const Substr : ShortString; const Source : RawByteString) : SizeInt;
+
+{$ifdef FPC_HAS_CPSTRING}
+Procedure fpc_setstring_ansistr_pansichar(out S : RawByteString; Buf : PAnsiChar; Len : SizeInt; cp: TSystemCodePage); rtlproc; compilerproc;
+Procedure fpc_setstring_ansistr_pwidechar(out S : RawByteString; Buf : PWideChar; Len : SizeInt; cp: TSystemCodePage); rtlproc; compilerproc;
+{$else}
Procedure SetString(out S : AnsiString; Buf : PAnsiChar; Len : SizeInt);
Procedure SetString(out S : AnsiString; Buf : PWideChar; Len : SizeInt);
+{$endif}
{$endif FPC_HAS_FEATURE_ANSISTRINGS}
-Procedure SetString (out S : Shortstring; Buf : PChar; Len : SizeInt);
+Procedure {$ifdef FPC_HAS_CPSTRING}fpc_setstring_shortstr{$else}SetString{$endif}(out S : Shortstring; Buf : PChar; Len : SizeInt); {$ifdef FPC_HAS_CPSTRING} compilerproc; {$endif FPC_HAS_CPSTRING}
function ShortCompareText(const S1, S2: shortstring): SizeInt;
Function upCase(const s:shortstring):shortstring;
Function lowerCase(const s:shortstring):shortstring; overload;
@@ -1469,6 +1478,14 @@ const
{$endif FPC_HAS_FEATURE_VARIANTS}
{*****************************************************************************
+ RTTI support
+*****************************************************************************}
+
+{$ifdef FPC_HAS_FEATURE_RTTI}
+{$i rttih.inc}
+{$endif FPC_HAS_FEATURE_RTTI}
+
+{*****************************************************************************
Internal helper routines support
*****************************************************************************}
diff --git a/rtl/inc/text.inc b/rtl/inc/text.inc
index 75379c70da..fa89f8672c 100644
--- a/rtl/inc/text.inc
+++ b/rtl/inc/text.inc
@@ -200,10 +200,15 @@ Begin
TextRec(t).mode:=mode;
TextRec(t).bufpos:=0;
TextRec(t).bufend:=0;
- {$ifdef FPC_HAS_CPSTRING}
+
+{$ifdef FPC_HAS_CPSTRING}
+{$ifdef FPC_HAS_FEATURE_ANSISTRINGS}
{ if no codepage is yet assigned then assign default ansi codepage }
TextRec(t).CodePage:=TranslatePlaceholderCP(TextRec(t).CodePage);
- {$endif}
+{$else FPC_HAS_FEATURE_ANSISTRINGS}
+ TextRec(t).CodePage:=0;
+{$endif FPC_HAS_FEATURE_ANSISTRINGS}
+{$endif FPC_HAS_CPSTRING}
FileFunc(TextRec(t).OpenFunc)(TextRec(t));
{ reset the mode to closed when an error has occured }
if InOutRes<>0 then
@@ -266,6 +271,7 @@ Begin
End;
+{$ifdef FPC_HAS_FEATURE_WIDESTRINGS}
Procedure Rename(var t : Text;const s : unicodestring);[IOCheck];
{$ifdef FPCRTL_FILESYSTEM_SINGLE_BYTE_API}
var
@@ -296,8 +302,11 @@ Begin
{$endif FPC_ANSI_TEXTFILEREC}
{$endif FPCRTL_FILESYSTEM_SINGLE_BYTE_API}
End;
+{$endif FPC_HAS_FEATURE_WIDESTRINGS}
+
+{$ifdef FPC_HAS_FEATURE_ANSISTRINGS}
Procedure Rename(var t : Text;const s : rawbytestring);[IOCheck];
var
{$ifdef FPCRTL_FILESYSTEM_SINGLE_BYTE_API}
@@ -342,6 +351,7 @@ Begin
TextRec(t).Name:=fs
{$endif FPC_ANSI_TEXTTextRec and not FPCRTL_FILESYSTEM_SINGLE_BYTE_API}
End;
+{$endif FPC_HAS_FEATURE_ANSISTRINGS}
Procedure Rename(var t : Text;const s : ShortString);[IOCheck];
@@ -366,16 +376,16 @@ Begin
End;
{$else FPC_HAS_FEATURE_ANSISTRINGS}
var
- len: SizeInt
+ len: SizeInt;
Begin
if InOutRes<>0 then
exit;
- if TextRec(f).mode<>fmClosed then
+ if TextRec(t).mode<>fmClosed then
begin
InOutRes:=102;
exit;
end;
- Do_Rename(PFileTextRecChar(@TextRec(t).Name),p,false);
+ Do_Rename(PFileTextRecChar(@TextRec(t).Name),p,false,false);
{ check error code of do_rename }
if InOutRes=0 then
begin
@@ -602,16 +612,17 @@ End;
function GetTextCodePage(var T: Text): TSystemCodePage;
begin
-{$ifdef FPC_HAS_CPSTRING}
+{$if defined(FPC_HAS_CPSTRING) and defined(FPC_HAS_FEATURE_ANSISTRINGS)}
GetTextCodePage:=TextRec(T).CodePage;
{$else}
GetTextCodePage:=0;
{$endif}
end;
+
procedure SetTextCodePage(var T: Text; CodePage: TSystemCodePage);
begin
-{$ifdef FPC_HAS_CPSTRING}
+{$if defined(FPC_HAS_CPSTRING) and defined(FPC_HAS_FEATURE_ANSISTRINGS)}
TextRec(T).CodePage:=TranslatePlaceholderCP(CodePage);
{$endif}
end;
@@ -631,7 +642,15 @@ end;
Procedure fpc_textinit_iso(var t : Text;nr : DWord);compilerproc;
begin
+{$ifdef FPC_HAS_FEATURE_COMMANDARGS}
assign(t,paramstr(nr));
+{$else FPC_HAS_FEATURE_COMMANDARGS}
+ { primitive workaround for targets supporting no command line arguments,
+ invent some file name, this will be fixed later on anways because
+ the current way of handling iso program parameters is apparently
+ wrong }
+ assign(t,chr((nr mod 16)+65));
+{$endif FPC_HAS_FEATURE_COMMANDARGS}
reset(t);
end;
@@ -2450,9 +2469,9 @@ begin
t.mode:=fmOutput;
t.OpenFunc:=nil;
t.CloseFunc:=nil;
- {$ifdef FPC_HAS_CPSTRING}
+{$if defined(FPC_HAS_CPSTRING) and defined(FPC_HAS_FEATURE_ANSISTRINGS)}
t.CodePage:=TranslatePlaceholderCP(cp);
- {$endif}
+{$endif}
end;
@@ -2561,7 +2580,7 @@ begin
t.mode:=fmInput;
t.OpenFunc:=nil;
t.CloseFunc:=nil;
- {$ifdef FPC_HAS_CPSTRING}
+{$if defined(FPC_HAS_CPSTRING) and defined(FPC_HAS_FEATURE_ANSISTRINGS)}
t.CodePage:=TranslatePlaceholderCP(cp);
{$endif}
PSizeInt(@t.userdata[BytesReadIndex])^:=0;
diff --git a/rtl/inc/tinyheap.inc b/rtl/inc/tinyheap.inc
index 38fa5421b2..155417b67c 100644
--- a/rtl/inc/tinyheap.inc
+++ b/rtl/inc/tinyheap.inc
@@ -13,74 +13,149 @@
**********************************************************************}
- const
- TinyHeapMinBlock = 4*sizeof(pointer);
+{ The heap, implemented here is TP7-compatible in the i8086 far data memory
+ models. It's basically a linked list of free blocks, which are kept ordered by
+ start address. The FreeList variable points to the start of the list. Each
+ free block, except the last one, contains a TTinyHeapBlock structure, which
+ holds the block size and a pointer to the next free block. The HeapPtr
+ variable points to the last free block, indicating the end of the list. The
+ last block is special in that it doesn't contain a TTinyHeapBlock structure.
+ Instead its size is determined by the pointer difference (HeapEnd-HeapPtr).
+ It *can* become zero sized, when all the memory inside of it is allocated, in
+ which case, HeapPtr will become equal to HeapEnd. }
+
+{$ifdef FPC_TINYHEAP_HUGE}
+ {$HugePointerArithmeticNormalization On}
+ {$HugePointerComparisonNormalization On}
+{$endif FPC_TINYHEAP_HUGE}
type
+ { TTinyHeapMemBlockSize holds the size of an *allocated* memory block,
+ and is written at position:
+ memblockstart-sizeof(TTinyHeapMemBlockSize) }
+ PTinyHeapMemBlockSize = ^TTinyHeapMemBlockSize; {$ifdef FPC_TINYHEAP_HUGE}huge;{$endif}
+ TTinyHeapMemBlockSize = PtrUInt;
+
+ { TTinyHeapFreeBlockSize holds the size of a *free* memory block, as a
+ part of the TTinyHeapBlock structure }
+{$ifdef FPC_TINYHEAP_HUGE}
+ TTinyHeapFreeBlockSize = record
+ OfsSize: Word;
+ SegSize: Word;
+ end;
+{$else FPC_TINYHEAP_HUGE}
+ TTinyHeapFreeBlockSize = PtrUInt;
+{$endif FPC_TINYHEAP_HUGE}
+
+ TTinyHeapPointerArithmeticType = ^Byte; {$ifdef FPC_TINYHEAP_HUGE}huge;{$endif}
+
PTinyHeapBlock = ^TTinyHeapBlock;
TTinyHeapBlock = record
- Size: ptruint;
Next: PTinyHeapBlock;
- EndAddr: pointer;
+ Size: TTinyHeapFreeBlockSize;
end;
- var
- TinyHeapBlocks: PTinyHeapBlock = nil;
+ const
+ TinyHeapMinBlock = sizeof(TTinyHeapBlock);
- procedure InternalTinyFreeMem(Addr: Pointer; Size: ptruint); forward;
+ TinyHeapAllocGranularity = sizeof(TTinyHeapBlock);
- function FindSize(p: pointer): ptruint;
+ function EncodeTinyHeapFreeBlockSize(Size: PtrUInt): TTinyHeapFreeBlockSize; inline;
begin
- FindSize := PPtrUInt(p)[-1];
+{$ifdef FPC_TINYHEAP_HUGE}
+ EncodeTinyHeapFreeBlockSize.OfsSize := Size and 15;
+ EncodeTinyHeapFreeBlockSize.SegSize := Size shr 4;
+{$else FPC_TINYHEAP_HUGE}
+ EncodeTinyHeapFreeBlockSize := Size;
+{$endif FPC_TINYHEAP_HUGE}
+ end;
+
+ function DecodeTinyHeapFreeBlockSize(Size: TTinyHeapFreeBlockSize): PtrUInt; inline;
+ begin
+{$ifdef FPC_TINYHEAP_HUGE}
+ DecodeTinyHeapFreeBlockSize := (PtrUInt(Size.SegSize) shl 4) + Size.OfsSize;
+{$else FPC_TINYHEAP_HUGE}
+ DecodeTinyHeapFreeBlockSize := Size;
+{$endif FPC_TINYHEAP_HUGE}
+ end;
+
+ procedure InternalTinyFreeMem(Addr: Pointer; Size: PtrUInt); forward;
+
+ function FindSize(p: pointer): TTinyHeapMemBlockSize;
+ begin
+ FindSize := PTinyHeapMemBlockSize(p)[-1];
end;
function SysTinyGetMem(Size: ptruint): pointer;
var
- p, prev: PTinyHeapBlock;
+ p, prev, p2: PTinyHeapBlock;
AllocSize, RestSize: ptruint;
begin
{$ifdef DEBUG_TINY_HEAP}
Write('SysTinyGetMem(', Size, ')=');
{$endif DEBUG_TINY_HEAP}
- AllocSize := align(size+sizeof(ptruint), sizeof(pointer));
+ AllocSize := align(size+sizeof(TTinyHeapMemBlockSize), TinyHeapAllocGranularity);
- p := TinyHeapBlocks;
+ p := FreeList;
prev := nil;
- while assigned(p) and (p^.Size < AllocSize) do
+ while (p<>HeapPtr) and (DecodeTinyHeapFreeBlockSize(p^.Size) < AllocSize) do
begin
prev := p;
p := p^.Next;
end;
- if assigned(p) then
+ if p<>HeapPtr then
begin
- result := @pptruint(p)[1];
+ result := @PTinyHeapMemBlockSize(p)[1];
- if p^.Size-AllocSize >= TinyHeapMinBlock then
- RestSize := p^.Size-AllocSize
+ if DecodeTinyHeapFreeBlockSize(p^.Size)-AllocSize >= TinyHeapMinBlock then
+ RestSize := DecodeTinyHeapFreeBlockSize(p^.Size)-AllocSize
else
begin
- AllocSize := p^.Size;
+ AllocSize := DecodeTinyHeapFreeBlockSize(p^.Size);
RestSize := 0;
end;
- if prev = nil then
- TinyHeapBlocks := p^.Next
+ if RestSize > 0 then
+ begin
+ p2 := pointer(TTinyHeapPointerArithmeticType(p)+AllocSize);
+ p2^.Next := p^.Next;
+ p2^.Size := EncodeTinyHeapFreeBlockSize(RestSize);
+ if prev = nil then
+ FreeList := p2
+ else
+ prev^.next := p2;
+ end
else
- prev^.next := p^.next;
-
- pptruint(p)^ := size;
+ begin
+ if prev = nil then
+ FreeList := p^.Next
+ else
+ prev^.next := p^.next;
+ end;
- if RestSize > 0 then
- InternalTinyFreeMem(pointer(ptruint(p)+AllocSize), RestSize);
+ PTinyHeapMemBlockSize(p)^ := size;
end
else
- if ReturnNilIfGrowHeapFails then
- Result := nil
- else
- HandleError(203);
+ begin
+ { p=HeapPtr }
+ if PtrUInt(TTinyHeapPointerArithmeticType(HeapEnd)-TTinyHeapPointerArithmeticType(HeapPtr))<AllocSize then
+ if ReturnNilIfGrowHeapFails then
+ Result := nil
+ else
+ HandleError(203);
+
+ result := @PTinyHeapMemBlockSize(HeapPtr)[1];
+ PTinyHeapMemBlockSize(HeapPtr)^ := size;
+
+ HeapPtr := pointer(TTinyHeapPointerArithmeticType(HeapPtr)+AllocSize);
+ if prev = nil then
+ FreeList := HeapPtr
+ else
+ prev^.next := HeapPtr;
+ end;
{$ifdef DEBUG_TINY_HEAP}
- Writeln(ptruint(Result));
+ Writeln(HexStr(Result));
{$endif DEBUG_TINY_HEAP}
end;
@@ -95,80 +170,52 @@
begin
mem := GetMem(Size+Alignment-1);
memp := align(ptruint(mem), Alignment);
- InternalTinyFreeMem(mem, ptruint(memp)-ptruint(mem));
+ InternalTinyFreeMem(mem, TTinyHeapPointerArithmeticType(memp)-TTinyHeapPointerArithmeticType(mem));
result := pointer(memp);
end;
end;
- procedure InternalTinyFreeMem(Addr: Pointer; Size: ptruint);
- var
- b, p, prev: PTinyHeapBlock;
- concatenated: boolean;
+ procedure InternalTinyFreeMem(Addr: Pointer; Size: PtrUInt);
+ var
+ p, prev: PTinyHeapBlock;
begin
- repeat
- concatenated := false;
- b := addr;
+ p := FreeList;
+ prev := nil;
- b^.Next := TinyHeapBlocks;
- b^.Size := Size;
- b^.EndAddr := pointer(ptruint(addr)+size);
+ while (p<>HeapPtr) and (TTinyHeapPointerArithmeticType(p) < TTinyHeapPointerArithmeticType(Addr)) do
+ begin
+ prev := p;
+ p := p^.Next;
+ end;
- if TinyHeapBlocks = nil then
- TinyHeapBlocks := b
+ { join with previous block? }
+ if assigned(prev) and ((TTinyHeapPointerArithmeticType(prev)+DecodeTinyHeapFreeBlockSize(prev^.Size)) = TTinyHeapPointerArithmeticType(Addr)) then
+ begin
+ Addr:=prev;
+ Size:=DecodeTinyHeapFreeBlockSize(prev^.size)+Size;
+ end
+ else
+ if assigned(prev) then
+ prev^.Next := Addr
else
- begin
- p := TinyHeapBlocks;
- prev := nil;
-
- while assigned(p) do
- begin
- if p^.EndAddr = addr then
- begin
- addr:=p;
- size:=p^.size+size;
- if prev = nil then
- TinyHeapBlocks:=p^.next
- else
- prev^.next:=p^.next;
- concatenated:=true;
- break;
- end
- else if p = b^.EndAddr then
- begin
- size:=p^.size+size;
- if prev = nil then
- TinyHeapBlocks:=p^.next
- else
- prev^.next:=p^.next;
- concatenated:=true;
- break;
- end;
-
- prev := p;
- p := p^.next;
- end;
-
- if not concatenated then
- begin
- p := TinyHeapBlocks;
- prev := nil;
-
- while assigned(p) and (p^.Size < size) do
- begin
- prev := p;
- p := p^.Next;
- end;
-
- if assigned(prev) then
- begin
- b^.Next := p;
- prev^.Next := b;
- end
- else
- TinyHeapBlocks := b;
- end;
- end;
- until not concatenated;
+ FreeList := Addr;
+
+ { join with next block? }
+ if TTinyHeapPointerArithmeticType(p)=(TTinyHeapPointerArithmeticType(Addr)+Size) then
+ begin
+ if p=HeapPtr then
+ HeapPtr:=Addr
+ else
+ begin
+ PTinyHeapBlock(Addr)^.Next:=p^.Next;
+ PTinyHeapBlock(Addr)^.Size:=EncodeTinyHeapFreeBlockSize(Size+DecodeTinyHeapFreeBlockSize(p^.Size));
+ end;
+ end
+ else
+ begin
+ PTinyHeapBlock(Addr)^.Next:=p;
+ PTinyHeapBlock(Addr)^.Size:=EncodeTinyHeapFreeBlockSize(Size);
+ end;
end;
function SysTinyFreeMem(Addr: Pointer): ptruint;
@@ -176,16 +223,19 @@
sz: ptruint;
begin
{$ifdef DEBUG_TINY_HEAP}
- Writeln('SysTinyFreeMem(', ptruint(Addr), ')');
+ Writeln('SysTinyFreeMem(', HexStr(Addr), ')');
{$endif DEBUG_TINY_HEAP}
if addr=nil then
begin
result:=0;
exit;
end;
- sz := Align(FindSize(addr)+SizeOf(ptruint), sizeof(pointer));
+ if (TTinyHeapPointerArithmeticType(addr) < TTinyHeapPointerArithmeticType(HeapOrg)) or
+ (TTinyHeapPointerArithmeticType(addr) >= TTinyHeapPointerArithmeticType(HeapPtr)) then
+ HandleError(204);
+ sz := Align(FindSize(addr)+SizeOf(TTinyHeapMemBlockSize), TinyHeapAllocGranularity);
- InternalTinyFreeMem(@pptruint(addr)[-1], sz);
+ InternalTinyFreeMem(@PTinyHeapMemBlockSize(addr)[-1], sz);
result := sz;
end;
@@ -209,46 +259,300 @@
function SysTinyReAllocMem(var p: pointer; size: ptruint):pointer;
var
- sz: ptruint;
+ oldsize, OldAllocSize, NewAllocSize: ptruint;
+ after_block, before_block, before_before_block: PTinyHeapBlock;
+ after_block_size, before_block_size: PtrUInt;
+ new_after_block: PTinyHeapBlock;
begin
{$ifdef DEBUG_TINY_HEAP}
- Write('SysTinyReAllocMem(', ptruint(p), ',', size, ')=');
+ Write('SysTinyReAllocMem(', HexStr(p), ',', size, ')=');
{$endif DEBUG_TINY_HEAP}
if size=0 then
- result := nil
+ begin
+ SysTinyFreeMem(p);
+ result := nil;
+ p := nil;
+ end
+ else if p=nil then
+ begin
+ result := AllocMem(size);
+ p := result;
+ end
else
- result := AllocMem(size);
- if result <> nil then
begin
- if p <> nil then
+ if (TTinyHeapPointerArithmeticType(p) < TTinyHeapPointerArithmeticType(HeapOrg)) or
+ (TTinyHeapPointerArithmeticType(p) >= TTinyHeapPointerArithmeticType(HeapPtr)) then
+ HandleError(204);
+ oldsize := FindSize(p);
+ OldAllocSize := align(oldsize+sizeof(TTinyHeapMemBlockSize), TinyHeapAllocGranularity);
+ NewAllocSize := align(size+sizeof(TTinyHeapMemBlockSize), TinyHeapAllocGranularity);
+ if OldAllocSize = NewAllocSize then
+ begin
+ { old and new size are the same after alignment, so the memory block is already allocated }
+ { we just need to update the size }
+ PTinyHeapMemBlockSize(p)[-1] := size;
+ if size > oldsize then
+ FillChar((TTinyHeapPointerArithmeticType(p)+oldsize)^, size-oldsize, 0);
+ end
+ else if OldAllocSize > NewAllocSize then
begin
- sz := FindSize(p);
- if sz > size then
- sz := size;
- move(pbyte(p)^, pbyte(result)^, sz);
+ { we're decreasing the memory block size, so we can just free the remaining memory at the end }
+ PTinyHeapMemBlockSize(p)[-1] := size;
+ InternalTinyFreeMem(Pointer(TTinyHeapPointerArithmeticType(p)+(NewAllocSize-PtrUInt(SizeOf(TTinyHeapMemBlockSize)))), OldAllocSize-NewAllocSize);
+ end
+ else
+ begin
+ { we're increasing the memory block size. First, find if there are free memory blocks immediately
+ before and after our memory block. }
+ after_block := FreeList;
+ before_block := nil;
+ before_before_block := nil;
+ while (after_block<>HeapPtr) and (TTinyHeapPointerArithmeticType(after_block) < TTinyHeapPointerArithmeticType(p)) do
+ begin
+ before_before_block := before_block;
+ before_block := after_block;
+ after_block := after_block^.Next;
+ end;
+ { is after_block immediately after our block? }
+ if after_block=Pointer(TTinyHeapPointerArithmeticType(p)+(OldAllocSize-PtrUInt(SizeOf(TTinyHeapMemBlockSize)))) then
+ begin
+ if after_block = HeapPtr then
+ after_block_size := PtrUInt(TTinyHeapPointerArithmeticType(HeapEnd)-TTinyHeapPointerArithmeticType(HeapPtr))
+ else
+ after_block_size := DecodeTinyHeapFreeBlockSize(after_block^.size);
+ end
+ else
+ after_block_size := 0;
+ { is there enough room after the block? }
+ if (OldAllocSize+after_block_size)>=NewAllocSize then
+ begin
+ if after_block = HeapPtr then
+ begin
+ HeapPtr:=Pointer(TTinyHeapPointerArithmeticType(HeapPtr)+(NewAllocSize-OldAllocSize));
+ if assigned(before_block) then
+ before_block^.Next := HeapPtr
+ else
+ FreeList := HeapPtr;
+ end
+ else
+ begin
+ if (NewAllocSize-OldAllocSize)=after_block_size then
+ begin
+ if assigned(before_block) then
+ before_block^.Next := after_block^.Next
+ else
+ FreeList := after_block^.Next;
+ end
+ else
+ begin
+ new_after_block := PTinyHeapBlock(TTinyHeapPointerArithmeticType(after_block)+(NewAllocSize-OldAllocSize));
+ new_after_block^.Next:=after_block^.Next;
+ new_after_block^.Size:=EncodeTinyHeapFreeBlockSize(after_block_size-(NewAllocSize-OldAllocSize));
+ if assigned(before_block) then
+ before_block^.Next := new_after_block
+ else
+ FreeList := new_after_block;
+ end;
+ end;
+ PTinyHeapMemBlockSize(p)[-1] := size;
+ FillChar((TTinyHeapPointerArithmeticType(p)+oldsize)^, size-oldsize, 0);
+ end
+ else
+ begin
+ { is before_block immediately before our block? }
+ if assigned(before_block) and (Pointer(TTinyHeapPointerArithmeticType(before_block)+DecodeTinyHeapFreeBlockSize(before_block^.Size))=Pointer(TTinyHeapPointerArithmeticType(p)-SizeOf(TTinyHeapMemBlockSize))) then
+ before_block_size := DecodeTinyHeapFreeBlockSize(before_block^.Size)
+ else
+ before_block_size := 0;
+
+ { if there's enough space, we can slide our current block back and reclaim before_block }
+ if (before_block_size<NewAllocSize) and ((before_block_size+OldAllocSize+after_block_size)>=NewAllocSize) and
+ { todo: implement this also for after_block_size>0 }
+ (after_block_size>0) then
+ begin
+ if (before_block_size+OldAllocSize+after_block_size)=NewAllocSize then
+ begin
+ if after_block=HeapPtr then
+ begin
+ HeapPtr := HeapEnd;
+ if assigned(before_before_block) then
+ before_before_block^.Next := HeapPtr
+ else
+ FreeList := HeapPtr;
+ end
+ else
+ if assigned(before_before_block) then
+ before_before_block^.Next := after_block^.Next
+ else
+ FreeList := after_block^.Next;
+ end;
+ Result := Pointer(TTinyHeapPointerArithmeticType(before_block)+SizeOf(TTinyHeapMemBlockSize));
+ Move(p^, Result^, oldsize);
+ PTinyHeapMemBlockSize(before_block)^ := size;
+ if (before_block_size+OldAllocSize+after_block_size)>NewAllocSize then
+ begin
+ new_after_block := PTinyHeapBlock(TTinyHeapPointerArithmeticType(before_block)+NewAllocSize);
+ new_after_block^.Next:=after_block^.Next;
+ new_after_block^.Size:=EncodeTinyHeapFreeBlockSize(before_block_size+after_block_size-(NewAllocSize-OldAllocSize));
+ if assigned(before_before_block) then
+ before_before_block^.Next := new_after_block
+ else
+ FreeList := new_after_block;
+ end;
+ FillChar((TTinyHeapPointerArithmeticType(Result)+oldsize)^, size-oldsize, 0);
+ p := Result;
+ end
+ else
+ begin
+ result := AllocMem(size);
+ if result <> nil then
+ begin
+ if oldsize > size then
+ oldsize := size;
+ move(pbyte(p)^, pbyte(result)^, oldsize);
+ end;
+ SysTinyFreeMem(p);
+ p := result;
+ end;
+ end;
end;
end;
- SysTinyFreeMem(p);
- p := result;
{$ifdef DEBUG_TINY_HEAP}
- Writeln(ptruint(result));
+ Writeln(HexStr(result));
+{$endif DEBUG_TINY_HEAP}
+ end;
+
+ function MemAvail: {$ifdef FPC_TINYHEAP_HUGE}LongInt{$else}PtrUInt{$endif};
+ var
+ p: PTinyHeapBlock;
+ begin
+ MemAvail := PtrUInt(TTinyHeapPointerArithmeticType(HeapEnd)-TTinyHeapPointerArithmeticType(HeapPtr));
+ if MemAvail > 0 then
+ Dec(MemAvail, SizeOf(TTinyHeapMemBlockSize));
+
+ p := FreeList;
+ while p <> HeapPtr do
+ begin
+ Inc(MemAvail, DecodeTinyHeapFreeBlockSize(p^.Size)-SizeOf(TTinyHeapMemBlockSize));
+ p := p^.Next;
+ end;
+ end;
+
+ function MaxAvail: {$ifdef FPC_TINYHEAP_HUGE}LongInt{$else}PtrUInt{$endif};
+ var
+ p: PTinyHeapBlock;
+ begin
+ MaxAvail := PtrUInt(TTinyHeapPointerArithmeticType(HeapEnd)-TTinyHeapPointerArithmeticType(HeapPtr));
+
+ p := FreeList;
+ while p <> HeapPtr do
+ begin
+ if DecodeTinyHeapFreeBlockSize(p^.Size) > MaxAvail then
+ MaxAvail := DecodeTinyHeapFreeBlockSize(p^.Size);
+ p := p^.Next;
+ end;
+
+ if MaxAvail > 0 then
+ Dec(MaxAvail, SizeOf(TTinyHeapMemBlockSize));
+ end;
+
+ procedure Mark(var p: Pointer);
+ begin
+ p := HeapPtr;
+ end;
+
+ procedure Release(var p: Pointer);
+ begin
+ HeapPtr := p;
+ FreeList := p;
+ end;
+
+ procedure InternalTinyAlign(var AAddress: Pointer; ASize: PtrUInt);
+ var
+ alignment_inc: smallint;
+ begin
+ alignment_inc := TTinyHeapPointerArithmeticType(align(AAddress,TinyHeapAllocGranularity))-TTinyHeapPointerArithmeticType(AAddress);
+ Inc(AAddress,alignment_inc);
+ Dec(ASize,alignment_inc);
+ Dec(ASize,ASize mod TinyHeapAllocGranularity);
+ end;
+
+ { Strongly simplified version of RegisterTinyHeapBlock, which can be used when
+ the heap is only a single contiguous memory block. If you want to add
+ multiple blocks to the heap, you should use RegisterTinyHeapBlock instead. }
+ procedure RegisterTinyHeapBlock_Simple(AAddress: Pointer; ASize: PtrUInt);
+ begin
+{$ifdef DEBUG_TINY_HEAP}
+ Writeln('RegisterTinyHeapBlock_Simple(', HexStr(AAddress), ',', ASize, ')');
+{$endif DEBUG_TINY_HEAP}
+ InternalTinyAlign(AAddress, ASize);
+ HeapOrg:=AAddress;
+ HeapPtr:=AAddress;
+ FreeList:=AAddress;
+ HeapEnd:=Pointer(TTinyHeapPointerArithmeticType(AAddress)+ASize);
+ end;
+
+ { Strongly simplified version of RegisterTinyHeapBlock, which can be used when
+ the heap is only a single contiguous memory block and the address and size
+ are already aligned on a TinyHeapAllocGranularity boundary. }
+ procedure RegisterTinyHeapBlock_Simple_Prealigned(AAddress: Pointer; ASize: PtrUInt);
+ begin
+{$ifdef DEBUG_TINY_HEAP}
+ Writeln('RegisterTinyHeapBlock_Simple_Prealigned(', HexStr(AAddress), ',', ASize, ')');
{$endif DEBUG_TINY_HEAP}
+ HeapOrg:=AAddress;
+ HeapPtr:=AAddress;
+ FreeList:=AAddress;
+ HeapEnd:=Pointer(TTinyHeapPointerArithmeticType(AAddress)+ASize);
end;
procedure RegisterTinyHeapBlock(AAddress: pointer; ASize: ptruint);
+ var
+ alignment_inc: smallint;
+ p: PTinyHeapBlock;
begin
{$ifdef DEBUG_TINY_HEAP}
- Writeln('RegisterTinyHeapBlock(', ptruint(AAddress), ',', ASize, ')');
+ Writeln('RegisterTinyHeapBlock(', HexStr(AAddress), ',', ASize, ')');
{$endif DEBUG_TINY_HEAP}
- if (ptruint(AAddress) and 1) <> 0 then
+ InternalTinyAlign(AAddress, ASize);
+ if HeapOrg=nil then
+ begin
+ HeapOrg:=AAddress;
+ HeapPtr:=AAddress;
+ FreeList:=AAddress;
+ HeapEnd:=Pointer(TTinyHeapPointerArithmeticType(AAddress)+ASize);
+ end
+ else
begin
- Inc(AAddress);
- Dec(ASize);
+ if (TTinyHeapPointerArithmeticType(HeapOrg) > TTinyHeapPointerArithmeticType(AAddress)) then
+ HeapOrg:=AAddress;
+ if TTinyHeapPointerArithmeticType(AAddress) > TTinyHeapPointerArithmeticType(HeapEnd) then
+ begin
+ if TTinyHeapPointerArithmeticType(HeapPtr) = TTinyHeapPointerArithmeticType(HeapEnd) then
+ begin
+ if FreeList=HeapPtr then
+ FreeList:=AAddress
+ else
+ begin
+ p:=FreeList;
+ while p^.Next<>HeapPtr do
+ p:=p^.Next;
+ PTinyHeapBlock(HeapPtr)^.Next:=AAddress;
+ end;
+ end
+ else
+ begin
+ PTinyHeapBlock(HeapPtr)^.Size:=EncodeTinyHeapFreeBlockSize(TTinyHeapPointerArithmeticType(HeapEnd)-TTinyHeapPointerArithmeticType(HeapPtr));
+ PTinyHeapBlock(HeapPtr)^.Next:=AAddress;
+ end;
+ HeapPtr:=AAddress;
+ HeapEnd:=Pointer(TTinyHeapPointerArithmeticType(AAddress)+ASize);
+ end
+ else if TTinyHeapPointerArithmeticType(AAddress) = TTinyHeapPointerArithmeticType(HeapEnd) then
+ HeapEnd:=Pointer(TTinyHeapPointerArithmeticType(AAddress)+ASize)
+ else
+ InternalTinyFreeMem(AAddress, ASize);
end;
- if (ASize and 1) <> 0 then
- Dec(ASize);
- pptruint(AAddress)^ := ASize - SizeOf(ptruint);
- FreeMem(pptruint(AAddress) + 1, ASize - SizeOf(ptruint));
end;
const
diff --git a/rtl/inc/tnyheaph.inc b/rtl/inc/tnyheaph.inc
new file mode 100644
index 0000000000..a7f1a37f8a
--- /dev/null
+++ b/rtl/inc/tnyheaph.inc
@@ -0,0 +1,32 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by the Free Pascal development team.
+
+ Tiny heap manager for the i8086 near heap, embedded targets, etc.
+
+ 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.
+
+ **********************************************************************}
+
+{$ifdef cpui8086}
+ {$if defined(FPC_X86_DATA_FAR) or defined(FPC_X86_DATA_HUGE)}
+ {$define FPC_TINYHEAP_HUGE}
+ {$endif}
+{$endif cpui8086}
+
+ var
+ { these vars are TP7-compatible }
+ HeapOrg: Pointer = nil; { start of heap }
+ HeapEnd: Pointer = nil; { end of heap }
+ FreeList: Pointer = nil; { pointer to the first free block }
+ HeapPtr: Pointer = nil; { pointer to the last free block }
+
+ function MemAvail: {$ifdef FPC_TINYHEAP_HUGE}LongInt{$else}PtrUInt{$endif};
+ function MaxAvail: {$ifdef FPC_TINYHEAP_HUGE}LongInt{$else}PtrUInt{$endif};
+ procedure Mark(var p: Pointer);
+ procedure Release(var p: Pointer);
diff --git a/rtl/inc/ustringh.inc b/rtl/inc/ustringh.inc
index 5fdf8a4380..c856cd0078 100644
--- a/rtl/inc/ustringh.inc
+++ b/rtl/inc/ustringh.inc
@@ -30,8 +30,8 @@ Function LowerCase(c:UnicodeChar):UnicodeChar;
Procedure Insert (Const Source : UnicodeString; Var S : UnicodeString; Index : SizeInt);
Procedure Delete (Var S : UnicodeString; Index,Size: SizeInt);
-Procedure SetString (Out S : UnicodeString; Buf : PUnicodeChar; Len : SizeInt);
-Procedure SetString (Out S : UnicodeString; Buf : PChar; Len : SizeInt);
+Procedure {$ifdef FPC_HAS_CPSTRING}fpc_setstring_unicodestr_pwidechar{$else}SetString{$endif}(Out S : UnicodeString; Buf : PUnicodeChar; Len : SizeInt); {$ifdef FPC_HAS_CPSTRING} compilerproc; {$endif FPC_HAS_CPSTRING}
+Procedure {$ifdef FPC_HAS_CPSTRING}fpc_setstring_unicodestr_pansichar{$else}SetString{$endif}(Out S : UnicodeString; Buf : PChar; Len : SizeInt); {$ifdef FPC_HAS_CPSTRING} compilerproc; {$endif FPC_HAS_CPSTRING}
function WideCharToString(S : PWideChar) : UnicodeString;
function StringToWideChar(const Src : RawByteString;Dest : PWideChar;DestSize : SizeInt) : PWideChar;
diff --git a/rtl/inc/ustrings.inc b/rtl/inc/ustrings.inc
index c5c52b2f4d..09ea7dd0df 100644
--- a/rtl/inc/ustrings.inc
+++ b/rtl/inc/ustrings.inc
@@ -817,7 +817,7 @@ begin
len := length(src);
{ make sure we don't dereference src if it can be nil (JM) }
if len > 0 then
- widestringmanager.ansi2widemoveproc(pchar(@src[1]),StringCodePage(src),temp,len);
+ widestringmanager.ansi2widemoveproc(pchar(@src[1]),TranslatePlaceholderCP(StringCodePage(src)),temp,len);
len := length(temp);
if len > length(res) then
len := length(res);
@@ -1351,7 +1351,7 @@ end;
{$ifndef FPC_HAS_SETSTRING_UNICODESTR_PUNICODECHAR}
{$define FPC_HAS_SETSTRING_UNICODESTR_PUNICODECHAR}
-Procedure SetString (Out S : UnicodeString; Buf : PUnicodeChar; Len : SizeInt);
+Procedure {$ifdef FPC_HAS_CPSTRING}fpc_setstring_unicodestr_pwidechar{$else}SetString{$endif}(Out S : UnicodeString; Buf : PUnicodeChar; Len : SizeInt); {$ifdef FPC_HAS_CPSTRING} compilerproc; {$endif FPC_HAS_CPSTRING}
begin
SetLength(S,Len);
If (Buf<>Nil) and (Len>0) then
@@ -1362,7 +1362,7 @@ end;
{$ifndef FPC_HAS_SETSTRING_UNICODESTR_PCHAR}
{$define FPC_HAS_SETSTRING_UNICODESTR_PCHAR}
-Procedure SetString (Out S : UnicodeString; Buf : PChar; Len : SizeInt);
+Procedure {$ifdef FPC_HAS_CPSTRING}fpc_setstring_unicodestr_pansichar{$else}SetString{$endif}(Out S : UnicodeString; Buf : PChar; Len : SizeInt); {$ifdef FPC_HAS_CPSTRING} compilerproc; {$endif FPC_HAS_CPSTRING}
begin
If (Buf<>Nil) and (Len>0) then
widestringmanager.Ansi2UnicodeMoveProc(Buf,DefaultSystemCodePage,S,Len)
@@ -2286,19 +2286,22 @@ function StringCodePage(const S: UnicodeString): TSystemCodePage; overload;
{$warnings off}
-function GenericUnicodeCase(const s : UnicodeString) : UnicodeString;
+function StubUnicodeCase(const s : UnicodeString) : UnicodeString;
begin
unimplementedunicodestring;
end;
-
-function CompareUnicodeString(const s1, s2 : UnicodeString) : PtrInt;
+function StubCompareUnicodeString(const s1, s2 : UnicodeString) : PtrInt;
begin
unimplementedunicodestring;
end;
+function StubWideCase(const s: WideString): WideString;
+ begin
+ unimplementedunicodestring;
+ end;
-function CompareTextUnicodeString(const s1, s2 : UnicodeString): PtrInt;
+function StubCompareWideString(const s1, s2 : WideString) : PtrInt;
begin
unimplementedunicodestring;
end;
@@ -2307,24 +2310,23 @@ function CompareTextUnicodeString(const s1, s2 : UnicodeString): PtrInt;
procedure initunicodestringmanager;
begin
{$ifndef HAS_WIDESTRINGMANAGER}
- widestringmanager.Unicode2AnsiMoveProc:=@DefaultUnicode2AnsiMove;
- widestringmanager.Ansi2UnicodeMoveProc:=@DefaultAnsi2UnicodeMove;
- widestringmanager.UpperUnicodeStringProc:=@GenericUnicodeCase;
- widestringmanager.LowerUnicodeStringProc:=@GenericUnicodeCase;
-{$endif HAS_WIDESTRINGMANAGER}
- widestringmanager.CompareUnicodeStringProc:=@CompareUnicodeString;
- widestringmanager.CompareTextUnicodeStringProc:=@CompareTextUnicodeString;
-
{$ifdef FPC_WIDESTRING_EQUAL_UNICODESTRING}
-{$ifndef HAS_WIDESTRINGMANAGER}
- widestringmanager.Wide2AnsiMoveProc:=@defaultUnicode2AnsiMove;
widestringmanager.Ansi2WideMoveProc:=@defaultAnsi2UnicodeMove;
- widestringmanager.UpperWideStringProc:=@GenericUnicodeCase;
- widestringmanager.LowerWideStringProc:=@GenericUnicodeCase;
-{$endif HAS_WIDESTRINGMANAGER}
- widestringmanager.CompareWideStringProc:=@CompareUnicodeString;
- widestringmanager.CompareTextWideStringProc:=@CompareTextUnicodeString;
+{$else FPC_WIDESTRING_EQUAL_UNICODESTRING}
+ widestringmanager.Ansi2WideMoveProc:=@DefaultAnsi2WideMove;
{$endif FPC_WIDESTRING_EQUAL_UNICODESTRING}
+ widestringmanager.Wide2AnsiMoveProc:=@DefaultUnicode2AnsiMove;
+ widestringmanager.UpperWideStringProc:=@StubWideCase;
+ widestringmanager.LowerWideStringProc:=@StubWideCase;
+ widestringmanager.Unicode2AnsiMoveProc:=@DefaultUnicode2AnsiMove;
+ widestringmanager.Ansi2UnicodeMoveProc:=@DefaultAnsi2UnicodeMove;
+ widestringmanager.UpperUnicodeStringProc:=@StubUnicodeCase;
+ widestringmanager.LowerUnicodeStringProc:=@StubUnicodeCase;
+{$endif HAS_WIDESTRINGMANAGER}
+ widestringmanager.CompareWideStringProc:=@StubCompareWideString;
+ widestringmanager.CompareTextWideStringProc:=@StubCompareWideString;
+ widestringmanager.CompareUnicodeStringProc:=@StubCompareUnicodeString;
+ widestringmanager.CompareTextUnicodeStringProc:=@StubCompareUnicodeString;
widestringmanager.CharLengthPCharProc:=@DefaultCharLengthPChar;
widestringmanager.CodePointLengthProc:=@DefaultCodePointLength;
widestringmanager.GetStandardCodePageProc:=@DefaultGetStandardCodePage;
diff --git a/rtl/inc/variant.inc b/rtl/inc/variant.inc
index 440fe80bc5..d39eaf1437 100644
--- a/rtl/inc/variant.inc
+++ b/rtl/inc/variant.inc
@@ -142,7 +142,7 @@ function fpc_idispatch_to_variant(const i : idispatch) : variant;compilerproc;
end;
-procedure fpc_dispinvoke_variant(dest : pvardata;const source : tvardata;
+procedure fpc_dispinvoke_variant(dest : pvardata;var source : tvardata;
calldesc : pcalldesc;params : pointer); compilerproc;
begin
variantmanager.dispinvoke(dest,source,calldesc,params);
@@ -1093,9 +1093,6 @@ begin
VariantManager:=VarMgr;
end;
-procedure initvariantmanager;
- begin
- end;
Function Pos (c : Char; Const v : Variant) : SizeInt;{$ifdef SYSTEMINLINE}inline;{$endif}
begin
diff --git a/rtl/inc/varianth.inc b/rtl/inc/varianth.inc
index 4eda494522..336a6ee149 100644
--- a/rtl/inc/varianth.inc
+++ b/rtl/inc/varianth.inc
@@ -204,7 +204,7 @@ type
varcast : procedure(var dest : variant;const source : variant;vartype : longint);
varcastole : procedure(var dest : variant; const source : variant;vartype : longint);
- dispinvoke: procedure(dest : pvardata;const source : tvardata;
+ dispinvoke: procedure(dest : pvardata;var source : tvardata;
calldesc : pcalldesc;params : pointer);cdecl;
vararrayredim : procedure(var a : variant;highbound : SizeInt);
diff --git a/rtl/inc/wstringh.inc b/rtl/inc/wstringh.inc
index 57ca32a987..fde3bf756a 100644
--- a/rtl/inc/wstringh.inc
+++ b/rtl/inc/wstringh.inc
@@ -28,8 +28,8 @@ Function UpCase(const s : WideString) : WideString;
Procedure Insert (Const Source : WideString; Var S : WideString; Index : SizeInt);
Procedure Delete (Var S : WideString; Index,Size: SizeInt);
-Procedure SetString (Out S : WideString; Buf : PWideChar; Len : SizeInt);
-Procedure SetString (Out S : WideString; Buf : PChar; Len : SizeInt);
+Procedure {$ifdef FPC_HAS_CPSTRING}fpc_setstring_widestr_pwidechar{$else}SetString{$endif}(Out S : WideString; Buf : PWideChar; Len : SizeInt); {$ifdef FPC_HAS_CPSTRING} compilerproc; {$endif FPC_HAS_CPSTRING}
+Procedure {$ifdef FPC_HAS_CPSTRING}fpc_setstring_widestr_pansichar{$else}SetString{$endif}(Out S : WideString; Buf : PChar; Len : SizeInt); {$ifdef FPC_HAS_CPSTRING} compilerproc; {$endif FPC_HAS_CPSTRING}
procedure DefaultAnsi2WideMove(source:pchar;cp : TSystemCodePage;var dest:widestring;len:SizeInt);
diff --git a/rtl/inc/wstrings.inc b/rtl/inc/wstrings.inc
index 403b8c9552..1a366db4cd 100644
--- a/rtl/inc/wstrings.inc
+++ b/rtl/inc/wstrings.inc
@@ -723,7 +723,7 @@ begin
end;
-Procedure SetString (Out S : WideString; Buf : PWideChar; Len : SizeInt);
+Procedure {$ifdef FPC_HAS_CPSTRING}fpc_setstring_widestr_pwidechar{$else}SetString{$endif}(Out S : WideString; Buf : PWideChar; Len : SizeInt); {$ifdef FPC_HAS_CPSTRING} compilerproc; {$endif FPC_HAS_CPSTRING}
begin
SetLength(S,Len);
If (Buf<>Nil) and (Len>0) then
@@ -731,7 +731,7 @@ begin
end;
-Procedure SetString (Out S : WideString; Buf : PChar; Len : SizeInt);
+Procedure {$ifdef FPC_HAS_CPSTRING}fpc_setstring_widestr_pansichar{$else}SetString{$endif}(Out S : WideString; Buf : PChar; Len : SizeInt); {$ifdef FPC_HAS_CPSTRING} compilerproc; {$endif FPC_HAS_CPSTRING}
begin
If (Buf<>Nil) and (Len>0) then
widestringmanager.Ansi2WideMoveProc(Buf,DefaultSystemCodePage,S,Len)
@@ -942,38 +942,4 @@ function UTF8Encode(const s : WideString) : RawByteString;
end;
end;
-procedure unimplementedunicodestring; forward;
-{$warnings off}
-function GenericWideCase(const s : WideString) : WideString;
- begin
- unimplementedunicodestring;
- end;
-
-
-function CompareWideString(const s1, s2 : WideString) : PtrInt;
- begin
- unimplementedunicodestring;
- end;
-
-
-function CompareTextWideString(const s1, s2 : WideString): PtrInt;
- begin
- unimplementedunicodestring;
- end;
-
-{$warnings on}
-
-
-procedure initwidestringmanager;
- begin
- fillchar(widestringmanager,sizeof(widestringmanager),0);
-{$ifndef HAS_WIDESTRINGMANAGER}
- widestringmanager.Wide2AnsiMoveProc:=@DefaultUnicode2AnsiMove;
- widestringmanager.Ansi2WideMoveProc:=@DefaultAnsi2WideMove;
- widestringmanager.UpperWideStringProc:=@GenericWideCase;
- widestringmanager.LowerWideStringProc:=@GenericWideCase;
-{$endif HAS_WIDESTRINGMANAGER}
- widestringmanager.CompareWideStringProc:=@CompareWideString;
- widestringmanager.CompareTextWideStringProc:=@CompareTextWideString;
- end;
diff --git a/rtl/java/Makefile b/rtl/java/Makefile
index 50dc34d176..7600da224f 100644
--- a/rtl/java/Makefile
+++ b/rtl/java/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -413,6 +413,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
endif
@@ -500,6 +503,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas jdk15
endif
@@ -639,6 +645,9 @@ 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
@@ -726,6 +735,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -864,6 +876,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
@@ -951,6 +966,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(ARCH)
endif
@@ -1262,6 +1280,12 @@ 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=
@@ -1307,6 +1331,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1771,7 +1800,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2197,13 +2226,15 @@ SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
$(COMPILER) -Us -Sg $(SYSTEMUNIT).pp $(REDIR)
-uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
-objpas$(PPUEXT): objpas.pp
+uuchar$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
+ $(COMPILER) $(INC)/uuchar.pp $(REDIR)
+objpas$(PPUEXT) : objpas.pp
$(COMPILER) objpas.pp $(REDIR)
strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
$(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
$(SYSTEMUNIT)$(PPUEXT)
-jdk15$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) jdk15.inc jdk15.pas
+ $(COMPILER) $(INC)/strings.pp $(REDIR)
+jdk15$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) jdk15.inc jdk15.pas
dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
$(SYSTEMUNIT)$(PPUEXT)
objects$(PPUEXT) : $(INC)/objects.pp dos$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
diff --git a/rtl/java/Makefile.fpc b/rtl/java/Makefile.fpc
index 41793cf44b..c561fe0f2f 100644
--- a/rtl/java/Makefile.fpc
+++ b/rtl/java/Makefile.fpc
@@ -84,16 +84,18 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
$(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
$(COMPILER) -Us -Sg $(SYSTEMUNIT).pp $(REDIR)
-uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
+uuchar$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
+ $(COMPILER) $(INC)/uuchar.pp $(REDIR)
-objpas$(PPUEXT): objpas.pp
+objpas$(PPUEXT) : objpas.pp
$(COMPILER) objpas.pp $(REDIR)
strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
$(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
$(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) $(INC)/strings.pp $(REDIR)
-jdk15$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) jdk15.inc jdk15.pas
+jdk15$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) jdk15.inc jdk15.pas
#
# System Dependent Units
diff --git a/rtl/java/jcompproc.inc b/rtl/java/jcompproc.inc
index a2114883b3..0c4e31afb5 100644
--- a/rtl/java/jcompproc.inc
+++ b/rtl/java/jcompproc.inc
@@ -531,7 +531,7 @@ function fpc_variant_to_idispatch(const v : variant) : idispatch;compilerproc;
function fpc_idispatch_to_variant(const i : idispatch) : variant;compilerproc;
procedure fpc_vararray_get(var d : variant;const s : variant;indices : plongint;len : sizeint);compilerproc;
procedure fpc_vararray_put(var d : variant;const s : variant;indices : plongint;len : sizeint);compilerproc;
-procedure fpc_dispinvoke_variant(dest : pvardata;const source : tvardata; calldesc : pcalldesc;params : pointer);compilerproc;
+procedure fpc_dispinvoke_variant(dest : pvardata;var source : tvardata; calldesc : pcalldesc;params : pointer);compilerproc;
{$endif FPC_HAS_FEATURE_VARIANTS}
{$ifdef FPC_HAS_FEATURE_TEXTIO}
diff --git a/rtl/java/jsstrings.inc b/rtl/java/jsstrings.inc
index d35fb84a0f..79b2d7b10f 100644
--- a/rtl/java/jsstrings.inc
+++ b/rtl/java/jsstrings.inc
@@ -363,7 +363,7 @@ Function int_Val_SInt_ShortStr(DestSize: SizeInt; Const S: ShortString; out Code
{$define FPC_HAS_SETSTRING_SHORTSTR}
-Procedure SetString (Out S : Shortstring; Buf : PChar; Len : SizeInt);
+Procedure fpc_setstring_shortstr(Out S : Shortstring; Buf : PChar; Len : SizeInt); compilerproc;
begin
If Len > High(S) then
Len := High(S);
diff --git a/rtl/java/jsystem.inc b/rtl/java/jsystem.inc
index f4b4fd57c7..ec7df434fa 100644
--- a/rtl/java/jsystem.inc
+++ b/rtl/java/jsystem.inc
@@ -67,20 +67,6 @@ Const
Local types
****************************************************************************}
-{
- TextRec and FileRec are put in a separate file to make it available to other
- units without putting it explicitly in systemh.
- This way we keep TP compatibility, and the TextRec definition is available
- for everyone who needs it.
-}
-{$ifdef FPC_HAS_FEATURE_FILEIO}
-{$i filerec.inc}
-{$endif FPC_HAS_FEATURE_FILEIO}
-
-{$ifndef CPUJVM}
-{$i textrec.inc}
-{$endif CPUJVM}
-
{$ifdef FPC_HAS_FEATURE_EXITCODE}
{$ifdef FPC_OBJFPC_EXTENDED_IF}
{$if High(errorcode)<>maxExitCode}
@@ -108,7 +94,7 @@ const
(*
{ For Error Handling.}
- ErrorBase : Pointer = nil; public name 'FPC_ERRORBASE';
+ ErrorBase : Pointer = nil;public name 'FPC_ERRORBASE';
*)
{$ifndef cpujvm}
@@ -382,22 +368,22 @@ End;
Function Swap (X : Longint) : Longint;{$ifdef SYSTEMINLINE}inline;{$endif}
Begin
- Swap:=(X and $ffff) shl 16 + (X shr 16)
+ Swap:=(X shl 16) + (X shr 16);
End;
//Function Swap (X : Cardinal) : Cardinal;{$ifdef SYSTEMINLINE}inline;{$endif}
//Begin
-// Swap:=(X and $ffff) shl 16 + (X shr 16)
+// Swap:=(X shl 16) + (X shr 16);
//End;
//Function Swap (X : QWord) : QWord;{$ifdef SYSTEMINLINE}inline;{$endif}
//Begin
-// Swap:=(X and $ffffffff) shl 32 + (X shr 32);
+// Swap:=(X shl 32) + (X shr 32);
//End;
-Function swap (X : Int64) : Int64;{$ifdef SYSTEMINLINE}inline;{$endif}
+Function Swap (X : Int64) : Int64;{$ifdef SYSTEMINLINE}inline;{$endif}
Begin
- Swap:=(X and $ffffffff) shl 32 + (X shr 32);
+ Swap:=(X shl 32) + (X shr 32);
End;
{$ifdef SUPPORT_DOUBLE}
@@ -1576,6 +1562,7 @@ begin
end;
+{$ifdef FPC_HAS_FEATURE_ANSISTRINGS}
procedure DoDirSeparators(var ps:RawByteString);
var
i : longint;
@@ -1595,7 +1582,10 @@ begin
p[i-1]:=DirectorySeparator;
end;
end;
+{$endif FPC_HAS_FEATURE_ANSISTRINGS}
+
+{$ifdef FPC_HAS_FEATURE_UNICODESTRINGS}
procedure DoDirSeparators(var ps:UnicodeString);
var
i : longint;
@@ -1615,6 +1605,7 @@ begin
p[i-1]:=DirectorySeparator;
end;
end;
+{$endif FPC_HAS_FEATURE_UNICODESTRINGS}
{$endif FPC_HAS_FEATURE_FILEIO}
@@ -1699,10 +1690,23 @@ end;
{$endif FPC_HAS_FEATURE_FILEIO}
+(* already declared earlier in system.pp for java
+
+{ helper for targets supporting no ansistrings, it is used
+ by non-ansistring code }
+function min(v1,v2 : SizeInt) : SizeInt;
+ begin
+ if v1<v2 then
+ result:=v1
+ else
+ result:=v2;
+ end;
+*)
+
+{$ifdef FPC_HAS_FEATURE_TEXTIO}
{ Text file }
-{$ifndef CPUJVM}
{$i text.inc}
-{$endif CPUJVM}
+{$endif FPC_HAS_FEATURE_TEXTIO}
{$ifdef FPC_HAS_FEATURE_FILEIO}
{ Untyped file }
diff --git a/rtl/java/jsystemh.inc b/rtl/java/jsystemh.inc
index 7950369f92..af0776f196 100644
--- a/rtl/java/jsystemh.inc
+++ b/rtl/java/jsystemh.inc
@@ -175,7 +175,12 @@ Function abs(l:longint):longint;[internproc:fpc_in_abs_long];
{$else FPC_HAS_INTERNAL_ABS_LONG}
Function abs(l:Longint):Longint;[internconst:fpc_in_const_abs];{$ifdef SYSTEMINLINE}inline;{$endif}
{$endif FPC_HAS_INTERNAL_ABS_LONG}
+{$ifdef FPC_HAS_INTERNAL_ABS_INT64}
+{$define FPC_SYSTEM_HAS_ABS_INT64}
+Function abs(l:Int64):Int64;[internproc:fpc_in_abs_long];
+{$else FPC_HAS_INTERNAL_ABS_INT64}
Function abs(l:Int64):Int64;[internconst:fpc_in_const_abs];{$ifdef SYSTEMINLINE}inline;{$endif}
+{$endif FPC_HAS_INTERNAL_ABS_INT64}
Function sqr(l:Longint):Longint;[internconst:fpc_in_const_sqr];{$ifdef SYSTEMINLINE}inline;{$endif}
Function sqr(l:Int64):Int64;[internconst:fpc_in_const_sqr];{$ifdef SYSTEMINLINE}inline;{$endif}
Function sqr(l:QWord):QWord;[internconst:fpc_in_const_sqr]; external;
@@ -451,10 +456,16 @@ Function Pos(const substr:shortstring;const s:shortstring):SizeInt;
Function Pos(C:Char;const s:shortstring):SizeInt;
{$ifdef FPC_HAS_FEATURE_ANSISTRINGS}
Function Pos(const Substr : ShortString; const Source : RawByteString) : SizeInt;
+
+{$ifdef FPC_HAS_CPSTRING}
+Procedure fpc_setstring_ansistr_pansichar(out S : RawByteString; Buf : PAnsiChar; Len : SizeInt; cp: TSystemCodePage); rtlproc; compilerproc;
+Procedure fpc_setstring_ansistr_pwidechar(out S : RawByteString; Buf : PWideChar; Len : SizeInt; cp: TSystemCodePage); rtlproc; compilerproc;
+{$else}
Procedure SetString(out S : AnsiString; Buf : PAnsiChar; Len : SizeInt);
Procedure SetString(out S : AnsiString; Buf : PWideChar; Len : SizeInt);
+{$endif}
{$endif FPC_HAS_FEATURE_ANSISTRINGS}
-Procedure SetString (out S : Shortstring; Buf : PChar; Len : SizeInt);
+Procedure {$ifdef FPC_HAS_CPSTRING}fpc_setstring_shortstr{$else}SetString{$endif}(out S : Shortstring; Buf : PChar; Len : SizeInt); {$ifdef FPC_HAS_CPSTRING} compilerproc; {$endif FPC_HAS_CPSTRING}
function ShortCompareText(const S1, S2: shortstring): SizeInt;
Function upCase(const s:shortstring):shortstring;
Function lowerCase(const s:shortstring):shortstring; overload;
@@ -471,6 +482,7 @@ Function binStr(Val:qword;cnt:byte):shortstring; {$ifdef cpujvm}external;{$endi
{$ifdef CPUI8086}
Function hexStr(Val:NearPointer):shortstring;
Function hexStr(Val:FarPointer):shortstring;
+Function hexStr(Val:HugePointer):shortstring;{$ifdef SYSTEMINLINE}inline;{$endif}
{$else CPUI8086}
Function hexStr(Val:Pointer):shortstring;
{$endif CPUI8086}
@@ -758,7 +770,7 @@ Function ParamStr(l:Longint):string;
{$endif FPC_HAS_FEATURE_COMMANDARGS}
{$ifndef JVM}
-Procedure Dump_Stack(var f : text;bp:pointer;addr : pointer = nil);
+Procedure Dump_Stack(var f : text;fp:pointer;addr : codepointer = nil);
{$ifdef FPC_HAS_FEATURE_EXCEPTIONS}
procedure DumpExceptionBackTrace(var f:text);
{$endif FPC_HAS_FEATURE_EXCEPTIONS}
diff --git a/rtl/java/jsystemh_types.inc b/rtl/java/jsystemh_types.inc
index 4320b9ecfb..78595a2458 100644
--- a/rtl/java/jsystemh_types.inc
+++ b/rtl/java/jsystemh_types.inc
@@ -507,7 +507,8 @@ Type
{ the size of textrec/filerec is hardcoded in the 2.6 compiler binary }
{$define FPC_ANSI_TEXTFILEREC}
{$endif}
- TFileTextRecChar = {$ifdef FPC_ANSI_TEXTFILEREC}AnsiChar{$else}UnicodeChar{$endif};
+
+ TFileTextRecChar = {$if defined(FPC_ANSI_TEXTFILEREC) or not(defined(FPC_HAS_FEATURE_WIDESTRINGS))}AnsiChar{$else}UnicodeChar{$endif};
PFileTextRecChar = ^TFileTextRecChar;
TTextLineBreakStyle = (tlbsLF,tlbsCRLF,tlbsCR);
@@ -703,6 +704,8 @@ Var
{ Stack checking }
StackBottom : Pointer;
StackLength : SizeUInt;
+
+function StackTop: Pointer;
*)
{ Numbers for routines that have compiler magic }
diff --git a/rtl/java/justrings.inc b/rtl/java/justrings.inc
index 1c1b3b6903..e3f3ff1c4a 100644
--- a/rtl/java/justrings.inc
+++ b/rtl/java/justrings.inc
@@ -760,7 +760,7 @@ end;
{$define FPC_HAS_SETSTRING_UNICODESTR_PUNICODECHAR}
-Procedure SetString (Out S : UnicodeString; Buf : PUnicodeChar; Len : SizeInt);
+Procedure fpc_setstring_unicodestr_pwidechar(Out S : UnicodeString; Buf : PUnicodeChar; Len : SizeInt); compilerproc;
begin
if assigned(buf) and (Len>0) then
s:=JLString.Create(TJCharArray(Buf),0,Len)
diff --git a/rtl/linux/Makefile b/rtl/linux/Makefile
index 75c86228ea..bcc1d2d484 100644
--- a/rtl/linux/Makefile
+++ b/rtl/linux/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -430,6 +430,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 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 classes fgl rtlconsts dos cwstring fpcylix
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 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 classes fgl rtlconsts dos cwstring fpcylix
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 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 classes fgl rtlconsts dos cwstring fpcylix
endif
@@ -517,6 +520,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 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 classes fgl rtlconsts dos cwstring fpcylix
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 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 classes fgl rtlconsts dos cwstring fpcylix
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) fpintres $(SYSINIT_UNITS) uuchar unixtype ctypes baseunix strings objpas macpas iso7185 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 classes fgl rtlconsts dos cwstring fpcylix
endif
@@ -655,6 +661,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -742,6 +751,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -880,6 +892,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -967,6 +982,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -1105,6 +1123,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
@@ -1192,6 +1213,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo sysconst rtlconsts
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo sysconst rtlconsts
endif
@@ -1330,6 +1354,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=syslinux linux
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=syslinux linux
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=syslinux linux
endif
@@ -1417,6 +1444,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=syslinux linux
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=syslinux linux
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=syslinux linux
endif
@@ -1556,6 +1586,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
endif
@@ -1643,6 +1676,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH)
endif
@@ -1781,6 +1817,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
endif
@@ -1868,6 +1907,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(ARCH) $(COMMON)
endif
@@ -2006,6 +2048,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -2093,6 +2138,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -2405,6 +2453,12 @@ 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=
@@ -2450,6 +2504,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2914,7 +2973,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/linux/arm/gprt0.as b/rtl/linux/arm/gprt0.as
index d7c3b8c929..dd7ebd0363 100644
--- a/rtl/linux/arm/gprt0.as
+++ b/rtl/linux/arm/gprt0.as
@@ -1,79 +1,136 @@
-/*
- At this entry point, most registers' values are unspecified, except:
-
- a1 Contains a function pointer to be registered with `atexit'.
- This is how the dynamic linker arranges to have DT_FINI
- functions called for shared libraries that have been loaded
- before this code runs.
-
- sp The stack contains the arguments and environment:
- 0(sp) argc
- 4(sp) argv[0]
- ...
- (4*argc)(sp) NULL
- (4*(argc+1))(sp) envp[0]
- ...
- NULL
+/* Startup code for ARM & ELF
+ Copyright (C) 1995, 1996, 1997, 1998, 2001, 2002 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA. */
+
+/* This is the canonical entry point, usually the first thing in the text
+ segment.
+
+ Note that the code in the .init section has already been run.
+ This includes _init and _libc_init
+
+
+ At this entry point, most registers' values are unspecified, except:
+
+ a1 Contains a function pointer to be registered with `atexit'.
+ This is how the dynamic linker arranges to have DT_FINI
+ functions called for shared libraries that have been loaded
+ before this code runs.
+
+ sp The stack contains the arguments and environment:
+ 0(sp) argc
+ 4(sp) argv[0]
+ ...
+ (4*argc)(sp) NULL
+ (4*(argc+1))(sp) envp[0]
+ ...
+ NULL
*/
- .text
- .globl _start
- .type _start,#function
+ .text
+ .globl _start
+ .type _start,#function
_start:
- /* Clear the frame pointer since this is the outermost frame. */
- mov fp, #0
- ldmia sp!, {a2}
+ /* Clear the frame pointer since this is the outermost frame. */
+ mov fp, #0
+ ldmia sp!, {a2}
- /* Pop argc off the stack and save a pointer to argv */
- ldr ip,=operatingsystem_parameter_argc
- ldr a3,=operatingsystem_parameter_argv
- str a2,[ip]
+ /* Pop argc off the stack and save a pointer to argv */
+ ldr ip,=operatingsystem_parameter_argc
+ ldr a3,=operatingsystem_parameter_argv
+ str a2,[ip]
- /* calc envp */
- add a2,a2,#1
- add a2,sp,a2,LSL #2
- ldr ip,=operatingsystem_parameter_envp
+ /* calc envp */
+ add a4,a2,#1
+ add a4,sp,a4,LSL #2
+ ldr ip,=operatingsystem_parameter_envp
- str sp,[a3]
- str a2,[ip]
+ str sp,[a3]
+ str a4,[ip]
- ldr r1,=_etext /* Initialize gmon */
+ /* Save initial stackpointer */
+ ldr ip,=__stkptr
+ str sp,[ip]
+
+ /* Initialize gmon */
+ mov r2,#1
+ ldr r1,=_etext
ldr r0,=_start
- bl monstartup
+ bl __monstartup
ldr r0,=_mcleanup
bl atexit
- /* Save initial stackpointer */
- ldr ip,=__stkptr
- str sp,[ip]
- /* align sp again to 8 byte boundary, needed by eabi */
- sub sp,sp,#4
+ /* argc already loaded to a2*/
+ ldr ip, =operatingsystem_parameter_argc
+ ldr a2,[ip]
+
+ /* Fetch address of fini */
+ ldr ip, =_fini
+
+ /* load argv */
+ mov a3, sp
+
+ /* Push stack limit */
+ str a3, [sp, #-4]!
- /* Let the libc call main and exit with its return code. */
- bl PASCALMAIN
+ /* Push rtld_fini */
+ str a1, [sp, #-4]!
- .globl _haltproc
- .type _haltproc,#function
+ /* Set up the other arguments in registers */
+ ldr a1, =PASCALMAIN
+ ldr a4, =_init
+
+ /* Push fini */
+ str ip, [sp, #-4]!
+
+ /* __libc_start_main (main, argc, argv, init, fini, rtld_fini, stack_end) */
+
+ /* Let the libc call main and exit with its return code. */
+ bl __libc_start_main
+
+ /* should never get here....*/
+ bl abort
+
+ .globl _haltproc
+ .type _haltproc,#function
_haltproc:
- /* r0 contains exitcode */
- swi 0x900001
- b _haltproc
+ ldr r0,=operatingsystem_result
+ ldrb r0,[r0]
+ swi 0x900001
+ b _haltproc
- .globl _haltproc_eabi
+ .globl _haltproc_eabi
.type _haltproc_eabi,#function
_haltproc_eabi:
- /* r0 contains exitcode */
+ bl exit /* libc exit */
+
+ ldr r0,=operatingsystem_result
+ ldrb r0,[r0]
mov r7,#248
- swi 0x0
- b _haltproc_eabi
+ swi 0x0
+ b _haltproc_eabi
/* Define a symbol for the first piece of initialized data. */
- .data
- .globl __data_start
+ .data
+ .globl __data_start
__data_start:
- .long 0
- .weak data_start
- data_start = __data_start
+ .long 0
+ .weak data_start
+ data_start = __data_start
.bss
.comm __stkptr,4
@@ -82,9 +139,9 @@ __data_start:
.comm operatingsystem_parameter_argc,4
.comm operatingsystem_parameter_argv,4
- .section ".comment"
- .byte 0
- .ascii "generated by FPC http://www.freepascal.org\0"
+ .section ".comment"
+ .byte 0
+ .ascii "generated by FPC http://www.freepascal.org\0"
/* We need this stuff to make gdb behave itself, otherwise
gdb will chokes with SIGILL when trying to debug apps.
diff --git a/rtl/linux/buildrtl.lpi b/rtl/linux/buildrtl.lpi
index 563b207aad..6aafdcc117 100644
--- a/rtl/linux/buildrtl.lpi
+++ b/rtl/linux/buildrtl.lpi
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="9"/>
@@ -36,7 +36,6 @@
<Unit0>
<Filename Value="buildrtl.pp"/>
<IsPartOfProject Value="True"/>
- <UnitName Value="buildrtl"/>
</Unit0>
</Units>
</ProjectOptions>
@@ -58,7 +57,6 @@
<ShowNotes Value="False"/>
<ShowHints Value="False"/>
</Verbosity>
- <CompilerPath Value="$(CompPath)"/>
<ExecuteBefore>
<Command Value="cmd.exe /c &quot;if not exist ../units/$(TargetCPU)-linux mkdir ../units/$(TargetCPU)-linux&quot;"/>
<ShowAllMessages Value="True"/>
diff --git a/rtl/linux/i386/syscall.inc b/rtl/linux/i386/syscall.inc
index 9bf75db668..9c2e4f47c5 100644
--- a/rtl/linux/i386/syscall.inc
+++ b/rtl/linux/i386/syscall.inc
@@ -62,15 +62,16 @@ begin
auxv := PElf32AuxiliaryVector(ep);
- repeat
- if auxv^.a_type = AT_SYSINFO then begin
- psysinfo := auxv^.a_un.a_val;
- if psysinfo <> 0 then
- sysenter_supported := 1; // descision factor in asm syscall routines
- Break;
+ while auxv^.a_type <> AT_NULL do
+ begin
+ if auxv^.a_type = AT_SYSINFO then begin
+ psysinfo := auxv^.a_un.a_val;
+ if psysinfo <> 0 then
+ sysenter_supported := 1; // descision factor in asm syscall routines
+ Break;
+ end;
+ Inc(auxv);
end;
- Inc(auxv);
- until auxv^.a_type = AT_NULL;
end;
{***********************SYSENTER CODE END******************************}
diff --git a/rtl/linux/m68k/prt0.as b/rtl/linux/m68k/prt0.as
index a6ab51ad97..e7ed4fd743 100644
--- a/rtl/linux/m68k/prt0.as
+++ b/rtl/linux/m68k/prt0.as
@@ -50,6 +50,7 @@ _start:
move.l %a0, operatingsystem_parameter_argv
lea.l 8(%sp,%d0.l*4), %a0
move.l %a0, operatingsystem_parameter_envp
+ move.l %sp, __stkptr
# move.l 8(%sp), %d0
# move.l %d0, operatingsystem_parameter_envp
@@ -95,4 +96,5 @@ operatingsystem_parameters:
.set operatingsystem_parameter_envp,operatingsystem_parameters+0
.set operatingsystem_parameter_argc,operatingsystem_parameters+4
.set operatingsystem_parameter_argv,operatingsystem_parameters+8
+.section .note.GNU-stack,"",%progbits
diff --git a/rtl/linux/mips/syscall.inc b/rtl/linux/mips/syscall.inc
index 8410f89153..e850f8faf1 100644
--- a/rtl/linux/mips/syscall.inc
+++ b/rtl/linux/mips/syscall.inc
@@ -16,11 +16,6 @@
{$UNDEF SYSCALL_DEBUG}
{$ENDIF SYS_LINUX}
-{ This variable is needed in syscall.inc assembler code }
-var
- fpc_threadvar_relocate_proc : TRelocateThreadVarHandler; public name 'FPC_THREADVAR_RELOCATE';
-{$define THREADVAR_RELOCATED_ALREADY_DEFINED}
-
{$define FPC_SYSTEM_HAS_FPFORK}
{
diff --git a/rtl/linux/osmacro.inc b/rtl/linux/osmacro.inc
index 48138f6ecc..89757d655a 100644
--- a/rtl/linux/osmacro.inc
+++ b/rtl/linux/osmacro.inc
@@ -102,19 +102,19 @@ function __xmknod(__ver : cint; Pathname: PChar; Mode: mode_t; var Device: dev_t
{$define FPC_HAS_BASEUNIX_STAT}
function FpFstat(fd : cint; var sb : stat): cint;inline;
begin
- __fxstat(_STAT_VER,fd,sb);
+ FpFstat:=__fxstat(_STAT_VER,fd,sb);
end;
function fpLstat(path:pchar;Info:pstat):cint;inline;
begin
- __lxstat(_STAT_VER,path,Info^);
+ fpLstat:=__lxstat(_STAT_VER,path,Info^);
end;
function FpStat(path: pchar; var buf : stat): cint;inline;
begin
- __xstat(_STAT_VER,path,buf);
+ FpStat:=__xstat(_STAT_VER,path,buf);
end;
{$ifndef fs32bit}
diff --git a/rtl/linux/ostypes.inc b/rtl/linux/ostypes.inc
index ba79a28369..c8afeca30c 100644
--- a/rtl/linux/ostypes.inc
+++ b/rtl/linux/ostypes.inc
@@ -75,10 +75,15 @@ TYPE
{ include /include/asm-<cpu>/posix-types.h }
const
+{$ifndef cpux86_64}
_STAT_VER_LINUX_OLD = 1;
_STAT_VER_KERNEL = 1;
_STAT_VER_SVR4 = 2;
_STAT_VER_LINUX = 3;
+{$else}
+ _STAT_VER_KERNEL = 0;
+ _STAT_VER_LINUX = 1;
+{$endif}
_STAT_VER = _STAT_VER_LINUX;
type
diff --git a/rtl/linux/system.pp b/rtl/linux/system.pp
index a337d87cf6..82dae436e4 100644
--- a/rtl/linux/system.pp
+++ b/rtl/linux/system.pp
@@ -368,7 +368,6 @@ begin
InOutRes:=0;
{ threading }
InitSystemThreads;
- initvariantmanager;
{ restore original signal handlers in case this is a library }
if IsLibrary then
RestoreOldSignalHandlers;
diff --git a/rtl/m68k/m68k.inc b/rtl/m68k/m68k.inc
index 7033ce4456..57349b8ea4 100644
--- a/rtl/m68k/m68k.inc
+++ b/rtl/m68k/m68k.inc
@@ -99,7 +99,9 @@ asm
ble @LMEMSET5
{$ifdef CPUM68K_HAS_DBRA}
{ FIXME: Any reason why not always just use DBRA mode on
- CPUs which support it? (KB) }
+ CPUs which support it? (KB)
+ - DBRA does only 16-bit decrements, so handling more than 65535 bytes
+ requires additional code anyway (Sergei) }
cmpi.l #65535, d1 { check, if this is a word move }
ble @LMEMSET3 { use fast dbra mode }
{$endif CPUM68K_HAS_DBRA}
@@ -374,3 +376,176 @@ function InterlockedCompareExchange(var Target: longint; NewValue: longint; Comp
if Target = Comperand then
Target := NewValue;
end;
+
+{$if defined(CPUM68K_HAS_BYTEREV) or defined(CPUM68K_HAS_ROLROR)}
+{ Disabled for now, because not all cases below were tested. (KB) }
+{.$define FPC_SYSTEM_HAS_SWAPENDIAN}
+{$endif}
+
+{$if defined(FPC_SYSTEM_HAS_SWAPENDIAN)}
+function SwapEndian(const AValue: SmallInt): SmallInt; assembler; nostackframe;
+asm
+{$if defined(CPUM68K_HAS_ROLROR)}
+ move.w avalue, d0
+ ror.w #8, d0
+{$elseif defined(CPUM68K_HAS_BYTEREV)}
+ move.w avalue, d0
+ byterev d0
+ swap d0
+{$else}
+ // only ISA A/B ColdFire can end in this branch, so use long ops everywhere
+ clr.l d0
+ move.w avalue, d0
+ move.w d0, d1
+ lsr.l #8, d0
+ lsl.l #8, d1
+ or.l d1, d0
+{$endif}
+end;
+
+
+function SwapEndian(const AValue: Word): Word; assembler; nostackframe;
+asm
+{$if defined(CPUM68K_HAS_ROLROR)}
+ move.w avalue, d0
+ ror.w #8, d0
+{$elseif defined(CPUM68K_HAS_BYTEREV)}
+ move.w avalue, d0
+ byterev d0
+ swap d0
+{$else}
+ // only ISA A/B ColdFire can end in this branch, so use long ops everywhere
+ clr.l d0
+ move.w avalue, d0
+ move.w d0, d1
+ lsr.l #8, d0
+ lsl.l #8, d1
+ or.l d1, d0
+{$endif}
+end;
+
+
+function SwapEndian(const AValue: LongInt): LongInt; assembler; nostackframe;
+asm
+{$if defined(CPUM68K_HAS_ROLROR)}
+ move.l avalue, d0
+ ror.w #8, d0
+ swap d0
+ ror.w #8, d0
+{$elseif defined(CPUM68K_HAS_BYTEREV)}
+ move.l avalue, d0
+ byterev d0
+{$else}
+ // only ISA A/B ColdFire can end in this branch, so use long ops everywhere
+ move.l avalue, d0
+ move.l d0, d1
+ andi.l #$ff00ff00, d0
+ andi.l #$00ff00ff, d1
+ lsr.l #8, d0
+ lsl.l #8, d1
+ or.l d1, d0
+ swap d0
+{$endif}
+end;
+
+function SwapEndian(const AValue: DWord): DWord; assembler; nostackframe;
+asm
+{$if defined(CPUM68K_HAS_ROLROR)}
+ move.l avalue, d0
+ ror.w #8, d0
+ swap d0
+ ror.w #8, d0
+{$elseif defined(CPUM68K_HAS_BYTEREV)}
+ move.l avalue, d0
+ byterev d0
+{$else}
+ // only ISA A/B ColdFire can end in this branch, so use long ops everywhere
+ move.l avalue, d0
+ move.l d0, d1
+ andi.l #$ff00ff00, d0
+ andi.l #$00ff00ff, d1
+ lsr.l #8, d0
+ lsl.l #8, d1
+ or.l d1, d0
+ swap d0
+{$endif}
+end;
+
+function SwapEndian(const AValue: Int64): Int64; assembler; nostackframe;
+asm
+{$if defined(CPUM68K_HAS_ROLROR)}
+ move.l avalue+4, d0
+ ror.w #8, d0
+ swap d0
+ ror.w #8, d0
+ move.l avalue, d1
+ ror.w #8, d1
+ swap d1
+ ror.w #8, d1
+{$elseif defined(CPUM68K_HAS_BYTEREV)}
+ move.l avalue+4, d0
+ move.l avalue, d1
+ byterev d0
+ byterev d1
+{$else}
+ // only ISA A/B ColdFire can end in this branch, so use long ops everywhere
+ move.l d2, -(sp)
+ move.l avalue+4, d0
+ move.l d0, d1
+ andi.l #$ff00ff00, d0
+ andi.l #$00ff00ff, d1
+ lsr.l #8, d0
+ lsl.l #8, d1
+ or.l d1, d0
+ swap d0
+ move.l avalue, d1
+ move.l d1, d2
+ andi.l #$ff00ff00, d1
+ andi.l #$00ff00ff, d2
+ lsr.l #8, d1
+ lsl.l #8, d2
+ or.l d2, d1
+ swap d1
+ move.l (sp)+, d2
+{$endif}
+end;
+
+function SwapEndian(const AValue: QWord): QWord; assembler; nostackframe;
+asm
+{$if defined(CPUM68K_HAS_ROLROR)}
+ move.l avalue+4, d0
+ ror.w #8, d0
+ swap d0
+ ror.w #8, d0
+ move.l avalue, d1
+ ror.w #8, d1
+ swap d1
+ ror.w #8, d1
+{$elseif defined(CPUM68K_HAS_BYTEREV)}
+ move.l avalue+4, d0
+ move.l avalue, d1
+ byterev d0
+ byterev d1
+{$else}
+ // only ISA A/B ColdFire can end in this branch, so use long ops everywhere
+ move.l d2, -(sp)
+ move.l avalue+4, d0
+ move.l d0, d1
+ andi.l #$ff00ff00, d0
+ andi.l #$00ff00ff, d1
+ lsr.l #8, d0
+ lsl.l #8, d1
+ or.l d1, d0
+ swap d0
+ move.l avalue, d1
+ move.l d1, d2
+ andi.l #$ff00ff00, d1
+ andi.l #$00ff00ff, d2
+ lsr.l #8, d1
+ lsl.l #8, d2
+ or.l d2, d1
+ swap d1
+ move.l (sp)+, d2
+{$endif}
+end;
+{$endif FPC_SYSTEM_HAS_SWAPENDIAN}
diff --git a/rtl/macos/Makefile b/rtl/macos/Makefile
index b1e530f3a4..9dff71cd5d 100644
--- a/rtl/macos/Makefile
+++ b/rtl/macos/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -413,6 +413,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=system uuchar strings objpas macpas iso7185 heaptrc getopts macostp macutils unixutil dos cmem charset cpall ctypes
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=system uuchar strings objpas macpas iso7185 heaptrc getopts macostp macutils unixutil dos cmem charset cpall ctypes
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=system uuchar strings objpas macpas iso7185 heaptrc getopts macostp macutils unixutil dos cmem charset cpall ctypes
endif
@@ -500,6 +503,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=system uuchar strings objpas macpas iso7185 heaptrc getopts macostp macutils unixutil dos cmem charset cpall ctypes
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=system uuchar strings objpas macpas iso7185 heaptrc getopts macostp macutils unixutil dos cmem charset cpall ctypes
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=system uuchar strings objpas macpas iso7185 heaptrc getopts macostp macutils unixutil dos cmem charset cpall ctypes
endif
@@ -638,6 +644,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp932 cp936 cp949 cp950 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp932 cp936 cp949 cp950 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp932 cp936 cp949 cp950 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -725,6 +734,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp932 cp936 cp949 cp950 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp932 cp936 cp949 cp950 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp932 cp936 cp949 cp950 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -864,6 +876,9 @@ 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
@@ -951,6 +966,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1089,6 +1107,9 @@ 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
@@ -1176,6 +1197,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1487,6 +1511,12 @@ 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=
@@ -1532,6 +1562,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1996,7 +2031,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/macos/sysfile.inc b/rtl/macos/sysfile.inc
index 8e6b7f438a..28359199e1 100644
--- a/rtl/macos/sysfile.inc
+++ b/rtl/macos/sysfile.inc
@@ -289,7 +289,10 @@ begin
InOutRes:= MacOSErr2RTEerr(err);
end;
if InOutRes <> 0 then
- exit;
+ begin
+ FileRec(f).mode:=fmclosed;
+ exit;
+ end;
p:= PChar(fullPath);
end;
@@ -319,8 +322,10 @@ begin
filerec(f).handle:= fh;
end
else
- filerec(f).handle:= UnusedHandle;
-
+ begin
+ filerec(f).handle:= UnusedHandle;
+ FileRec(f).mode:=fmclosed;
+ end;
{$else}
InOutRes:=1;
@@ -343,6 +348,7 @@ begin
if (filerec(f).handle=UnusedHandle) then
begin
+ FileRec(f).mode:=fmclosed;
//errno:=GetLastError;
//Errno2InoutRes;
end;
diff --git a/rtl/macos/system.pp b/rtl/macos/system.pp
index 780dd4c08b..54d2b00f7e 100644
--- a/rtl/macos/system.pp
+++ b/rtl/macos/system.pp
@@ -559,7 +559,6 @@ begin
InOutRes:=0;
errno:=0;
InitSystemThreads;
- initvariantmanager;
if StandAlone = 0 then
begin
diff --git a/rtl/mips/mips.inc b/rtl/mips/mips.inc
index 92ab707309..e215f6b63a 100644
--- a/rtl/mips/mips.inc
+++ b/rtl/mips/mips.inc
@@ -55,6 +55,7 @@ const
fpu_all_bits = fpu_enable_mask or fpu_flags_mask or fpu_cause_mask or fpu_rounding_mask;
+{$if defined(FPUMIPS2) or defined(FPUMIPS3)}
{$define FPC_SYSTEM_HAS_SYSINITFPU}
procedure SysInitFPU;
begin
@@ -66,13 +67,16 @@ procedure SysInitFPU;
procedure SysResetFPU;
begin
end;
+{$endif FPUMIPS2 or FPUMIPS3}
procedure fpc_cpuinit;
begin
+{$ifndef FPUNONE}
SysResetFPU;
if (not IsLibrary) then
SysInitFPU;
+{$endif FPUNONE}
end;
@@ -200,6 +204,63 @@ function Sptr:Pointer;assembler;nostackframe;
move $2,$sp
end;
+{$ifndef FPC_SYSTEM_HAS_FILLCHAR}
+{$define FPC_SYSTEM_HAS_FILLCHAR}
+procedure FillChar(var x;count:SizeInt;value:byte);assembler;nostackframe;
+// x=$a0, count=$a1, value=$a2
+// $t0 and $t1 used as temps
+ asm
+ // correctness of this routine depends on instructions in delay slots!!
+ slti $t1, $a1, 8
+ bne $t1, $0, .Lless8
+ andi $a2, 0xff
+
+ beq $a2, $0, .L1 // if value is zero, expansion can be skipped
+ sll $t1, $a2, 8
+ or $a2, $t1
+ sll $t1, $a2, 16
+ or $a2, $t1
+.L1:
+ subu $t1, $0, $a0 // negate
+ andi $t1, 3 // misalignment 0..3
+ beq $t1, $0, .L2
+ subu $a1, $t1 // decrease count (if branching, this is no-op because $t1=0)
+{$ifdef ENDIAN_BIG}
+ swl $a2, 0($a0)
+{$else ENDIAN_BIG}
+ swr $a2, 0($a0)
+{$endif ENDIAN_BIG}
+ addu $a0, $t1 // add misalignment to address, making it dword-aligned
+.L2:
+ andi $t1, $a1, 7 // $t1=count mod 8
+ beq $t1, $a1, .L3 // (count and 7)=count => (count and (not 7))=0
+ subu $t0, $a1, $t1 // $t0=count div 8
+ addu $t0, $a0 // $t0=last loop address
+ move $a1, $t1
+.Lloop8: // do 2 dwords per iteration
+ addiu $a0, 8
+ sw $a2, -8($a0)
+ bne $a0, $t0, .Lloop8
+ sw $a2, -4($a0)
+.L3:
+ andi $t1, $a1, 4 // handle a single dword separately
+ beq $t1, $0, .Lless8
+ subu $a1, $t1
+ sw $a2, 0($a0)
+ addiu $a0, 4
+
+.Lless8:
+ ble $a1, $0, .Lexit
+ addu $t0, $a1, $a0
+.L4:
+ addiu $a0, 1
+ bne $a0, $t0, .L4
+ sb $a2, -1($a0)
+.Lexit:
+ end;
+{$endif FPC_SYSTEM_HAS_FILLCHAR}
+
+
{$ifdef USE_MIPS_STK2_ASM}
{$ifndef FPC_SYSTEM_HAS_MOVE}
(* Disabled for now
@@ -407,132 +468,20 @@ procedure Move(const source;var dest;count:longint);[public, alias: 'FPC_MOVE'];
end;
*)
{$endif FPC_SYSTEM_HAS_MOVE}
-{****************************************************************************
- Integer math
-****************************************************************************}
-
-var
- fpc_system_lock : longint; export name 'fpc_system_lock';
-
+{$endif def USE_MIPS_STK2_ASM}
{$define FPC_SYSTEM_HAS_DECLOCKED_LONGINT}
-function declocked(var l : longint) : boolean;assembler;nostackframe;
-{ input: address of l in $4 }
-{ output: boolean indicating whether l is zero after decrementing }
-asm
- sw $4,0($23)
- sw $5,-4($23)
- sw $6,-8($23)
- sw $7,-12($23)
- sw $8,-16($23)
- sw $9,-20($23)
- sw $10,-24($23)
- sw $11,-28($23)
- sw $12,-32($23)
- sw $13,-36($23)
- sw $14,-40($23)
- addiu $23,$23,-44
-
-
-
-.Ldeclocked1:
- lui $5,%hi(fpc_system_lock)
- addiu $5,$5,%lo(fpc_system_lock)
- ll $6,0($5)
- ori $7,$6,1
- beq $7,$6,.Ldeclocked1
- nop
- sc $7,0($5)
-
- beq $7,$0,.Ldeclocked1
- nop
-
- lw $5,0($4)
- addiu $5,$5,-1
- sw $5,0($4)
- seq $2,$5,$0
-
-
- { unlock }
- lui $5,%hi(fpc_system_lock)
- addiu $5,$5,%lo(fpc_system_lock)
- sw $0,0($5)
-
- addiu $23,$23,44
- lw $4,0($23)
- lw $5,-4($23)
- lw $6,-8($23)
- lw $7,-12($23)
- lw $8,-16($23)
- lw $9,-20($23)
- lw $10,-24($23)
- lw $11,-28($23)
- lw $12,-32($23)
- lw $13,-36($23)
- lw $14,-40($23)
+function declocked(var l: longint) : boolean; inline;
+begin
+ Result:=InterLockedDecrement(l) = 0;
end;
{$define FPC_SYSTEM_HAS_INCLOCKED_LONGINT}
-procedure inclocked(var l : longint);assembler;nostackframe;
-asm
- { usually, we shouldn't lock here so saving the stack frame for these extra intructions is
- worse the effort, especially while waiting :)
- }
-
- { unlock }
-
- sw $4,0($23)
- sw $5,-4($23)
- sw $6,-8($23)
- sw $7,-12($23)
- sw $8,-16($23)
- sw $9,-20($23)
- sw $10,-24($23)
- sw $11,-28($23)
- sw $12,-32($23)
- sw $13,-36($23)
- sw $14,-40($23)
- addiu $23,$23,-44
-
-
-.Ldeclocked1:
- lui $5,%hi(fpc_system_lock)
- addiu $5,$5,%lo(fpc_system_lock)
- ll $6,0($5)
- ori $7,$6,1
- beq $7,$6,.Ldeclocked1
- nop
- sc $7,0($5)
-
- beq $7,$0,.Ldeclocked1
- nop
-
- lw $5,0($4)
- addiu $5,$5,1
- sw $5,0($4)
-
-
- { unlock }
- lui $5,%hi(fpc_system_lock)
- addiu $5,$5,%lo(fpc_system_lock)
- sw $0,0($5)
-
- addiu $23,$23,44
- lw $4,0($23)
- lw $5,-4($23)
- lw $6,-8($23)
- lw $7,-12($23)
- lw $8,-16($23)
- lw $9,-20($23)
- lw $10,-24($23)
- lw $11,-28($23)
- lw $12,-32($23)
- lw $13,-36($23)
- lw $14,-40($23)
-
+procedure inclocked(var l: longint); inline;
+begin
+ InterLockedIncrement(l);
end;
-{$endif def USE_MIPS_STK2_ASM}
function InterLockedDecrement (var Target: longint) : longint; assembler; nostackframe;
asm
diff --git a/rtl/mips/setjump.inc b/rtl/mips/setjump.inc
index 43074f3bfa..5e5eae29f0 100644
--- a/rtl/mips/setjump.inc
+++ b/rtl/mips/setjump.inc
@@ -27,6 +27,7 @@ procedure fpc_longjmp(var s : jmp_buf;value:longint);assembler;nostackframe;[Pub
lw $s7,jmp_buf.s7($a0)
lw $fp,jmp_buf.fp($a0)
lw $gp,jmp_buf.gp($a0)
+{$if defined(FPUMIPS2) or defined(FPUMIPS3)}
lw $v0,jmp_buf._fcsr($a0)
ctc1 $v0,$31
lwc1 $f20,jmp_buf.f20($a0)
@@ -41,7 +42,7 @@ procedure fpc_longjmp(var s : jmp_buf;value:longint);assembler;nostackframe;[Pub
lwc1 $f29,jmp_buf.f29($a0)
lwc1 $f30,jmp_buf.f30($a0)
lwc1 $f31,jmp_buf.f31($a0)
-
+{$endif FPUMIPS2 or FPUMIPS3}
// Put value into register $2 as in setjmp
move $v0,$a1
bne $a1,$zero,.L1
@@ -65,6 +66,7 @@ function fpc_setjmp(var S:jmp_buf):longint;assembler;nostackframe;[Public,alias:
sw $s7,jmp_buf.s7($a0)
sw $fp,jmp_buf.fp($a0)
sw $gp,jmp_buf.gp($a0)
+{$if defined(FPUMIPS2) or defined(FPUMIPS3)}
cfc1 $v0,$31
sw $v0,jmp_buf._fcsr($a0)
swc1 $f20,jmp_buf.f20($a0)
@@ -79,5 +81,6 @@ function fpc_setjmp(var S:jmp_buf):longint;assembler;nostackframe;[Public,alias:
swc1 $f29,jmp_buf.f29($a0)
swc1 $f30,jmp_buf.f30($a0)
swc1 $f31,jmp_buf.f31($a0)
+{$endif FPUMIPS2 or FPUMIPS3}
move $v0,$zero
end;
diff --git a/rtl/mips/setjumph.inc b/rtl/mips/setjumph.inc
index f1d29ec8e8..4c45f86fe4 100644
--- a/rtl/mips/setjumph.inc
+++ b/rtl/mips/setjumph.inc
@@ -17,7 +17,9 @@
type
jmp_buf=packed record
ra,sp,s0,s1,s2,s3,s4,s5,s6,s7,fp,gp: longint;
+{$if defined(FPUMIPS2) or defined(FPUMIPS3)}
_fcsr,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31: longint;
+{$endif FPUMIPS2 or FPUMIPS3}
end;
Pjmp_buf=^jmp_buf;
diff --git a/rtl/morphos/Makefile b/rtl/morphos/Makefile
index 882d392583..92f1fc150d 100644
--- a/rtl/morphos/Makefile
+++ b/rtl/morphos/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -333,6 +333,7 @@ RTL=..
INC=$(RTL)/inc
COMMON=$(RTL)/common
PROCINC=$(RTL)/$(CPU_TARGET)
+AMIINC=$(RTL)/amicommon
UNITPREFIX=rtl
SYSTEMUNIT=system
ifdef RELEASE
@@ -341,229 +342,235 @@ endif
OBJPASDIR=$(RTL)/objpas
GRAPHDIR=$(INC)/graph
ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),arm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),mips-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),mipsel-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),jvm-java)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),jvm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst exec timer doslib utility hardware inputevent keymap graphics layers intuition aboxlib mui kvm clipboard datatypes asl ahi tinygl get9 muihelper
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings dos heaptrc ctypes sysutils classes fgl math typinfo charset cpall getopts types rtlconsts sysconst
endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
@@ -634,6 +641,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -721,6 +731,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -859,6 +872,9 @@ 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
@@ -946,6 +962,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1084,6 +1103,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
@@ -1171,6 +1193,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
@@ -1242,454 +1267,466 @@ override TARGET_RSTS+=math rtlconsts typinfo classes sysconst
endif
override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-android)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),arm-android)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),mips-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),mipsel-embedded)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),jvm-java)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),jvm-android)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(AMIINC)
endif
ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i386-android)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),arm-android)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),mips-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),mipsel-embedded)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),jvm-java)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),jvm-android)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
endif
ifdef REQUIRE_UNITSDIR
override UNITSDIR+=$(REQUIRE_UNITSDIR)
@@ -1933,6 +1970,12 @@ 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=
@@ -1978,6 +2021,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2442,7 +2490,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2897,10 +2945,10 @@ dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
$(SYSTEMUNIT)$(PPUEXT)
sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
objpas$(PPUEXT) dos$(PPUEXT) sysconst$(PPUEXT)
- $(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
+ $(COMPILER) -Fi$(OBJPASDIR)/sysutils $(AMIINC)/sysutils.pp
classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
sysutils$(PPUEXT) rtlconsts$(PPUEXT) typinfo$(PPUEXT) types$(PPUEXT) fgl$(PPUEXT)
- $(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
+ $(COMPILER) -Fi$(OBJPASDIR)/classes $(AMIINC)/classes.pp
fgl$(PPUEXT) : $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) system$(PPUEXT) sysutils$(PPUEXT)
$(COMPILER) $(OBJPASDIR)/fgl.pp
typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT)
diff --git a/rtl/morphos/Makefile.fpc b/rtl/morphos/Makefile.fpc
index ef63a5513c..99f0c57076 100644
--- a/rtl/morphos/Makefile.fpc
+++ b/rtl/morphos/Makefile.fpc
@@ -11,15 +11,16 @@ units=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings \
dos heaptrc ctypes \
sysutils classes fgl math typinfo \
charset cpall getopts \
- types rtlconsts sysconst \
- exec timer doslib utility hardware inputevent keymap graphics layers \
- intuition aboxlib mui \
+ types rtlconsts sysconst
+
+# exec timer doslib utility hardware inputevent keymap graphics layers
+# intuition aboxlib mui
# these units are here, because they depend on system interface units above
- kvm \
+# kvm \
# disabled temporarily because it doesn't build
# sockets \
# these can be moved to packages later
- clipboard datatypes asl ahi tinygl get9 muihelper
+# clipboard datatypes asl ahi tinygl get9 muihelper
#implicitunits=exeinfo\
implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 \
cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
@@ -38,8 +39,8 @@ target=morphos
cpu=powerpc
[compiler]
-includedir=$(INC) $(PROCINC)
-sourcedir=$(INC) $(PROCINC) $(COMMON)
+includedir=$(INC) $(PROCINC) $(AMIINC)
+sourcedir=$(INC) $(PROCINC) $(AMIINC) $(COMMON)
[prerules]
@@ -47,6 +48,7 @@ RTL=..
INC=$(RTL)/inc
COMMON=$(RTL)/common
PROCINC=$(RTL)/$(CPU_TARGET)
+AMIINC=$(RTL)/amicommon
UNITPREFIX=rtl
SYSTEMUNIT=system
@@ -121,11 +123,11 @@ dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
sysutils$(PPUEXT) : sysutils.pp $(wildcard $(OBJPASDIR)/sysutils/*.inc) \
objpas$(PPUEXT) dos$(PPUEXT) sysconst$(PPUEXT)
- $(COMPILER) -Fi$(OBJPASDIR)/sysutils sysutils.pp
+ $(COMPILER) -Fi$(OBJPASDIR)/sysutils $(AMIINC)/sysutils.pp
classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
sysutils$(PPUEXT) rtlconsts$(PPUEXT) typinfo$(PPUEXT) types$(PPUEXT) fgl$(PPUEXT)
- $(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
+ $(COMPILER) -Fi$(OBJPASDIR)/classes $(AMIINC)/classes.pp
fgl$(PPUEXT) : $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) system$(PPUEXT) sysutils$(PPUEXT)
$(COMPILER) $(OBJPASDIR)/fgl.pp
diff --git a/rtl/morphos/classes.pp b/rtl/morphos/classes.pp
deleted file mode 100644
index 465233af08..0000000000
--- a/rtl/morphos/classes.pp
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- This file is part of the Free Component Library (FCL)
- Copyright (c) 1999-2002 by the Free Pascal development team
-
- Classes unit for MorphOS
-
- 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}
-
-{ determine the type of the resource/form file }
-{$define Win16Res}
-
-unit Classes;
-
-interface
-
-uses
- sysutils,
- rtlconsts,
- types,
-{$ifdef FPC_TESTGENERICS}
- fgl,
-{$endif}
- typinfo;
-
-{$i classesh.inc}
-
-
-implementation
-
-
-{ OS - independent class implementations are in /inc directory. }
-{$i classes.inc}
-
-
-initialization
- CommonInit;
-
-finalization
- CommonCleanup;
-
-end.
diff --git a/rtl/morphos/dos.pp b/rtl/morphos/dos.pp
deleted file mode 100644
index 4691d9f2f2..0000000000
--- a/rtl/morphos/dos.pp
+++ /dev/null
@@ -1,1016 +0,0 @@
-{
- This file is part of the Free Pascal run time library.
- Copyright (c) 2004 by Karoly Balogh for Genesi S.a.r.l.
-
- Heavily based on the Commodore Amiga/m68k RTL by Nils Sjoholm and
- Carl Eric Codere
-
- MorphOS port was done on a free Pegasos II/G4 machine
- provided by Genesi S.a.r.l. <www.genesi.lu>
-
- 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.
-
- **********************************************************************}
-{$INLINE ON}
-
-unit Dos;
-
-{--------------------------------------------------------------------}
-{ LEFT TO DO: }
-{--------------------------------------------------------------------}
-{ o DiskFree / Disksize don't work as expected }
-{ o Implement EnvCount,EnvStr }
-{ o FindFirst should only work with correct attributes }
-{--------------------------------------------------------------------}
-
-
-interface
-
-type
- SearchRec = Packed Record
- { watch out this is correctly aligned for all processors }
- { don't modify. }
- { Replacement for Fill }
-{0} AnchorPtr : Pointer; { Pointer to the Anchorpath structure }
-{4} Fill: Array[1..15] of Byte; {future use}
- {End of replacement for fill}
- Attr : BYTE; {attribute of found file}
- Time : LongInt; {last modify date of found file}
- Size : LongInt; {file size of found file}
- Name : String[255]; {name of found file}
- End;
-
-{$I dosh.inc}
-
-implementation
-
-{$DEFINE HAS_GETMSCOUNT}
-{$DEFINE HAS_GETCBREAK}
-{$DEFINE HAS_SETCBREAK}
-
-{$DEFINE FPC_FEXPAND_VOLUMES} (* Full paths begin with drive specification *)
-{$DEFINE FPC_FEXPAND_DRIVESEP_IS_ROOT}
-{$DEFINE FPC_FEXPAND_NO_DEFAULT_PATHS}
-{$I dos.inc}
-
-
-{ * include MorphOS specific functions & definitions * }
-
-{$include execd.inc}
-{$include execf.inc}
-{$include timerd.inc}
-{$include doslibd.inc}
-{$include doslibf.inc}
-{$include utilf.inc}
-
-const
- DaysPerMonth : Array[1..12] of ShortInt =
- (031,028,031,030,031,030,031,031,030,031,030,031);
- DaysPerYear : Array[1..12] of Integer =
- (031,059,090,120,151,181,212,243,273,304,334,365);
- DaysPerLeapYear : Array[1..12] of Integer =
- (031,060,091,121,152,182,213,244,274,305,335,366);
- SecsPerYear : LongInt = 31536000;
- SecsPerLeapYear : LongInt = 31622400;
- SecsPerDay : LongInt = 86400;
- SecsPerHour : Integer = 3600;
- SecsPerMinute : ShortInt = 60;
- TICKSPERSECOND = 50;
-
-
-{******************************************************************************
- --- Internal routines ---
-******************************************************************************}
-
-{ * PathConv is implemented in the system unit! * }
-function PathConv(path: string): string; external name 'PATHCONV';
-
-function dosLock(const name: String;
- accessmode: Longint) : LongInt;
-var
- buffer: array[0..255] of Char;
-begin
- move(name[1],buffer,length(name));
- buffer[length(name)]:=#0;
- dosLock:=Lock(buffer,accessmode);
-end;
-
-function BADDR(bval: LongInt): Pointer; Inline;
-begin
- BADDR:=Pointer(bval Shl 2);
-end;
-
-function BSTR2STRING(s : LongInt): PChar; Inline;
-begin
- BSTR2STRING:=PChar(BADDR(s))+1;
-end;
-
-function IsLeapYear(Source : Word) : Boolean;
-begin
- if (source Mod 400 = 0) or ((source Mod 4 = 0) and (source Mod 100 <> 0)) then
- IsLeapYear:=True
- else
- IsLeapYear:=False;
-end;
-
-procedure Amiga2DateStamp(Date : LongInt; var TotalDays,Minutes,Ticks: longint);
-{ Converts a value in seconds past 1978 to a value in AMIGA DateStamp format }
-{ Taken from SWAG and modified to work with the Amiga format - CEC }
-var
- LocalDate : LongInt;
- Done : Boolean;
- TotDays : Integer;
- Y: Word;
- H: Word;
- Min: Word;
- S : Word;
-begin
- Y := 1978; H := 0; Min := 0; S := 0;
- TotalDays := 0;
- Minutes := 0;
- Ticks := 0;
- LocalDate := Date;
- Done := false;
- while not Done do
- begin
- if LocalDate >= SecsPerYear then
- begin
- Inc(Y,1);
- Dec(LocalDate,SecsPerYear);
- Inc(TotalDays,DaysPerYear[12]);
- end else
- Done := true;
- if (IsLeapYear(Y+1)) and (LocalDate >= SecsPerLeapYear) and
- (Not Done) then
- begin
- Inc(Y,1);
- Dec(LocalDate,SecsPerLeapYear);
- Inc(TotalDays,DaysPerLeapYear[12]);
- end;
- end; { END WHILE }
-
- TotDays := LocalDate Div SecsPerDay;
- { Total number of days }
- TotalDays := TotalDays + TotDays;
- Dec(LocalDate,TotDays*SecsPerDay);
- { Absolute hours since start of day }
- H := LocalDate Div SecsPerHour;
- { Convert to minutes }
- Minutes := H*60;
- Dec(LocalDate,(H * SecsPerHour));
- { Find the remaining minutes to add }
- Min := LocalDate Div SecsPerMinute;
- Dec(LocalDate,(Min * SecsPerMinute));
- Minutes:=Minutes+Min;
- { Find the number of seconds and convert to ticks }
- S := LocalDate;
- Ticks:=TICKSPERSECOND*S;
-end;
-
-
-function dosSetProtection(const name: string; mask:longint): Boolean;
-var
- buffer : array[0..255] of Char;
-begin
- move(name[1],buffer,length(name));
- buffer[length(name)]:=#0;
- dosSetProtection:=SetProtection(buffer,mask);
-end;
-
-function dosSetFileDate(name: string; p : PDateStamp): Boolean;
-var
- buffer : array[0..255] of Char;
-begin
- move(name[1],buffer,length(name));
- buffer[length(name)]:=#0;
- dosSetFileDate:=SetFileDate(buffer,p);
-end;
-
-
-{******************************************************************************
- --- Info / Date / Time ---
-******************************************************************************}
-
-function DosVersion: Word;
-var p: PLibrary;
-begin
- p:=PLibrary(MOS_DOSBase);
- DosVersion:= p^.lib_Version or (p^.lib_Revision shl 8);
-end;
-
-{ Here are a lot of stuff just for setdate and settime }
-
-var
- TimerBase : Pointer;
-
-
-procedure NewList (list: pList);
-begin
- with list^ do begin
- lh_Head := pNode(@lh_Tail);
- lh_Tail := NIL;
- lh_TailPred := pNode(@lh_Head)
- end;
-end;
-
-function CreateExtIO (port: pMsgPort; size: Longint): pIORequest;
-var
- IOReq: pIORequest;
-begin
- IOReq := NIL;
- if port <> NIL then
- begin
- IOReq := execAllocMem(size, MEMF_CLEAR);
- if IOReq <> NIL then
- begin
- IOReq^.io_Message.mn_Node.ln_Type := 7;
- IOReq^.io_Message.mn_Length := size;
- IOReq^.io_Message.mn_ReplyPort := port;
- end;
- end;
- CreateExtIO := IOReq;
-end;
-
-procedure DeleteExtIO (ioReq: pIORequest);
-begin
- if ioReq <> NIL then
- begin
- ioReq^.io_Message.mn_Node.ln_Type := $FF;
- ioReq^.io_Message.mn_ReplyPort := pMsgPort(-1);
- ioReq^.io_Device := pDevice(-1);
- execFreeMem(ioReq, ioReq^.io_Message.mn_Length);
- end
-end;
-
-function Createport(name : PChar; pri : longint): pMsgPort;
-var
- sigbit : ShortInt;
- port : pMsgPort;
-begin
- sigbit := AllocSignal(-1);
- if sigbit = -1 then CreatePort := nil;
- port := execAllocMem(sizeof(tMsgPort),MEMF_CLEAR);
- if port = nil then begin
- FreeSignal(sigbit);
- CreatePort := nil;
- end;
- with port^ do begin
- if assigned(name) then
- mp_Node.ln_Name := name
- else mp_Node.ln_Name := nil;
- mp_Node.ln_Pri := pri;
- mp_Node.ln_Type := 4;
- mp_Flags := 0;
- mp_SigBit := sigbit;
- mp_SigTask := FindTask(nil);
- end;
- if assigned(name) then AddPort(port)
- else NewList(addr(port^.mp_MsgList));
- CreatePort := port;
-end;
-
-procedure DeletePort (port: pMsgPort);
-begin
- if port <> NIL then
- begin
- if port^.mp_Node.ln_Name <> NIL then
- RemPort(port);
-
- port^.mp_Node.ln_Type := $FF;
- port^.mp_MsgList.lh_Head := pNode(-1);
- FreeSignal(port^.mp_SigBit);
- execFreeMem(port, sizeof(tMsgPort));
- end;
-end;
-
-
-function Create_Timer(theUnit : longint) : pTimeRequest;
-var
- Error : longint;
- TimerPort : pMsgPort;
- TimeReq : pTimeRequest;
-begin
- TimerPort := CreatePort(Nil, 0);
- if TimerPort = Nil then
- Create_Timer := Nil;
- TimeReq := pTimeRequest(CreateExtIO(TimerPort,sizeof(tTimeRequest)));
- if TimeReq = Nil then begin
- DeletePort(TimerPort);
- Create_Timer := Nil;
- end;
- Error := OpenDevice(TIMERNAME, theUnit, pIORequest(TimeReq), 0);
- if Error <> 0 then begin
- DeleteExtIO(pIORequest(TimeReq));
- DeletePort(TimerPort);
- Create_Timer := Nil;
- end;
- TimerBase := pointer(TimeReq^.tr_Node.io_Device);
- Create_Timer := pTimeRequest(TimeReq);
-end;
-
-Procedure Delete_Timer(WhichTimer : pTimeRequest);
-var
- WhichPort : pMsgPort;
-begin
-
- WhichPort := WhichTimer^.tr_Node.io_Message.mn_ReplyPort;
- if assigned(WhichTimer) then begin
- CloseDevice(pIORequest(WhichTimer));
- DeleteExtIO(pIORequest(WhichTimer));
- end;
- if assigned(WhichPort) then
- DeletePort(WhichPort);
-end;
-
-function set_new_time(secs, micro : longint): longint;
-var
- tr : ptimerequest;
-begin
- tr := create_timer(UNIT_MICROHZ);
-
- { non zero return says error }
- if tr = nil then set_new_time := -1;
-
- tr^.tr_time.tv_secs := secs;
- tr^.tr_time.tv_micro := micro;
- tr^.tr_node.io_Command := TR_SETSYSTIME;
- DoIO(pIORequest(tr));
-
- delete_timer(tr);
- set_new_time := 0;
-end;
-
-function get_sys_time(tv : ptimeval): longint;
-var
- tr : ptimerequest;
-begin
- tr := create_timer( UNIT_MICROHZ );
-
- { non zero return says error }
- if tr = nil then get_sys_time := -1;
-
- tr^.tr_node.io_Command := TR_GETSYSTIME;
- DoIO(pIORequest(tr));
-
- { structure assignment }
- tv^ := tr^.tr_time;
-
- delete_timer(tr);
- get_sys_time := 0;
-end;
-
-procedure GetDate(Var Year, Month, MDay, WDay: Word);
-var
- cd : pClockData;
- oldtime : ttimeval;
-begin
- new(cd);
- get_sys_time(@oldtime);
- Amiga2Date(oldtime.tv_secs,cd);
- Year := cd^.year;
- Month := cd^.month;
- MDay := cd^.mday;
- WDay := cd^.wday;
- dispose(cd);
-end;
-
-procedure SetDate(Year, Month, Day: Word);
-var
- cd : pClockData;
- oldtime : ttimeval;
-begin
- new(cd);
- get_sys_time(@oldtime);
- Amiga2Date(oldtime.tv_secs,cd);
- cd^.year := Year;
- cd^.month := Month;
- cd^.mday := Day;
- set_new_time(Date2Amiga(cd),0);
- dispose(cd);
-end;
-
-procedure GetTime(Var Hour, Minute, Second, Sec100: Word);
-var
- cd : pClockData;
- oldtime : ttimeval;
-begin
- new(cd);
- get_sys_time(@oldtime);
- Amiga2Date(oldtime.tv_secs,cd);
- Hour := cd^.hour;
- Minute := cd^.min;
- Second := cd^.sec;
- Sec100 := oldtime.tv_micro div 10000;
- dispose(cd);
-end;
-
-
-Procedure SetTime(Hour, Minute, Second, Sec100: Word);
-var
- cd : pClockData;
- oldtime : ttimeval;
-begin
- new(cd);
- get_sys_time(@oldtime);
- Amiga2Date(oldtime.tv_secs,cd);
- cd^.hour := Hour;
- cd^.min := Minute;
- cd^.sec := Second;
- set_new_time(Date2Amiga(cd), Sec100 * 10000);
- dispose(cd);
-end;
-
-
-function GetMsCount: int64;
-var
- TV: TTimeVal;
-begin
- Get_Sys_Time (@TV);
- GetMsCount := int64 (TV.TV_Secs) * 1000 + TV.TV_Micro div 1000;
-end;
-
-{******************************************************************************
- --- Exec ---
-******************************************************************************}
-
-
-procedure Exec(const Path: PathStr; const ComLine: ComStr);
-var
- tmpPath: array[0..515] of char;
- result : longint;
- tmpLock: longint;
-begin
- DosError:= 0;
- LastDosExitCode:=0;
- tmpPath:=PathConv(Path)+#0+ComLine+#0; // hacky... :)
-
- { Here we must first check if the command we wish to execute }
- { actually exists, because this is NOT handled by the }
- { _SystemTagList call (program will abort!!) }
-
- { Try to open with shared lock }
- tmpLock:=Lock(tmpPath,SHARED_LOCK);
- if tmpLock<>0 then
- begin
- { File exists - therefore unlock it }
- Unlock(tmpLock);
- tmpPath[length(Path)]:=' '; // hacky... replaces first #0 from above, to get the whole string. :)
- result:=SystemTagList(tmpPath,nil);
- { on return of -1 the shell could not be executed }
- { probably because there was not enough memory }
- if result = -1 then
- DosError:=8
- else
- LastDosExitCode:=word(result);
- end
- else
- DosError:=3;
-end;
-
-
-procedure GetCBreak(Var BreakValue: Boolean);
-begin
- breakvalue := system.BreakOn;
-end;
-
-procedure SetCBreak(BreakValue: Boolean);
-begin
- system.Breakon := BreakValue;
-end;
-
-
-{******************************************************************************
- --- Disk ---
-******************************************************************************}
-
-{ How to solve the problem with this: }
-{ We could walk through the device list }
-{ at startup to determine possible devices }
-
-const
-
- not_to_use_devs : array[0..12] of string =(
- 'DF0:',
- 'DF1:',
- 'DF2:',
- 'DF3:',
- 'PED:',
- 'PRJ:',
- 'PIPE:',
- 'RAM:',
- 'CON:',
- 'RAW:',
- 'SER:',
- 'PAR:',
- 'PRT:');
-
-var
- deviceids : array[1..20] of byte;
- devicenames : array[1..20] of string[20];
- numberofdevices : Byte;
-
-Function DiskFree(Drive: Byte): int64;
-Var
- MyLock : LongInt;
- Inf : pInfoData;
- Free : Longint;
- myproc : pProcess;
- OldWinPtr : Pointer;
-Begin
- Free := -1;
- { Here we stop systemrequesters to appear }
- myproc := pProcess(FindTask(nil));
- OldWinPtr := myproc^.pr_WindowPtr;
- myproc^.pr_WindowPtr := Pointer(-1);
- { End of systemrequesterstop }
- New(Inf);
- MyLock := dosLock(devicenames[deviceids[Drive]],SHARED_LOCK);
- If MyLock <> 0 then begin
- if Info(MyLock,Inf) then begin
- Free := (Inf^.id_NumBlocks * Inf^.id_BytesPerBlock) -
- (Inf^.id_NumBlocksUsed * Inf^.id_BytesPerBlock);
- end;
- Unlock(MyLock);
- end;
- Dispose(Inf);
- { Restore systemrequesters }
- myproc^.pr_WindowPtr := OldWinPtr;
- diskfree := Free;
-end;
-
-
-
-Function DiskSize(Drive: Byte): int64;
-Var
- MyLock : LongInt;
- Inf : pInfoData;
- Size : Longint;
- myproc : pProcess;
- OldWinPtr : Pointer;
-Begin
- Size := -1;
- { Here we stop systemrequesters to appear }
- myproc := pProcess(FindTask(nil));
- OldWinPtr := myproc^.pr_WindowPtr;
- myproc^.pr_WindowPtr := Pointer(-1);
- { End of systemrequesterstop }
- New(Inf);
- MyLock := dosLock(devicenames[deviceids[Drive]],SHARED_LOCK);
- If MyLock <> 0 then begin
- if Info(MyLock,Inf) then begin
- Size := (Inf^.id_NumBlocks * Inf^.id_BytesPerBlock);
- end;
- Unlock(MyLock);
- end;
- Dispose(Inf);
- { Restore systemrequesters }
- myproc^.pr_WindowPtr := OldWinPtr;
- disksize := Size;
-end;
-
-
-procedure FindFirst(const Path: PathStr; Attr: Word; Var f: SearchRec);
-var
- tmpStr: array[0..255] of Char;
- Anchor: PAnchorPath;
- Result: LongInt;
-begin
- tmpStr:=PathConv(path)+#0;
- DosError:=0;
-
- new(Anchor);
- FillChar(Anchor^,sizeof(TAnchorPath),#0);
-
- Result:=MatchFirst(@tmpStr,Anchor);
- f.AnchorPtr:=Anchor;
- if Result = ERROR_NO_MORE_ENTRIES then
- DosError:=18
- else
- if Result<>0 then DosError:=3;
-
- if DosError=0 then begin
- {-------------------------------------------------------------------}
- { Here we fill up the SearchRec attribute, but we also do check }
- { something else, if the it does not match the mask we are looking }
- { for we should go to the next file or directory. }
- {-------------------------------------------------------------------}
- with Anchor^.ap_Info do begin
- f.Time := fib_Date.ds_Days * (24 * 60 * 60) +
- fib_Date.ds_Minute * 60 +
- fib_Date.ds_Tick div 50;
- f.attr := 0;
- {*------------------------------------*}
- {* Determine if is a file or a folder *}
- {*------------------------------------*}
- if fib_DirEntryType>0 then f.attr:=f.attr OR DIRECTORY;
-
- {*------------------------------------*}
- {* Determine if Read only *}
- {* Readonly if R flag on and W flag *}
- {* off. *}
- {* Should we check also that EXEC *}
- {* is zero? for read only? *}
- {*------------------------------------*}
- if ((fib_Protection and FIBF_READ) <> 0) and
- ((fib_Protection and FIBF_WRITE) = 0) then f.attr:=f.attr or READONLY;
- f.Name := strpas(fib_FileName);
- f.Size := fib_Size;
- end; { end with }
- end;
-end;
-
-
-procedure FindNext(Var f: SearchRec);
-var
- Result: longint;
- Anchor: PAnchorPath;
-begin
- DosError:=0;
- Result:=MatchNext(f.AnchorPtr);
- if Result = ERROR_NO_MORE_ENTRIES then
- DosError:=18
- else
- if Result <> 0 then DosError:=3;
-
- if DosError=0 then begin
- { Fill up the Searchrec information }
- { and also check if the files are with }
- { the correct attributes }
- Anchor:=pAnchorPath(f.AnchorPtr);
- with Anchor^.ap_Info do begin
- f.Time := fib_Date.ds_Days * (24 * 60 * 60) +
- fib_Date.ds_Minute * 60 +
- fib_Date.ds_Tick div 50;
- f.attr := 0;
- {*------------------------------------*}
- {* Determine if is a file or a folder *}
- {*------------------------------------*}
- if fib_DirEntryType > 0 then f.attr:=f.attr OR DIRECTORY;
-
- {*------------------------------------*}
- {* Determine if Read only *}
- {* Readonly if R flag on and W flag *}
- {* off. *}
- {* Should we check also that EXEC *}
- {* is zero? for read only? *}
- {*------------------------------------*}
- if ((fib_Protection and FIBF_READ) <> 0) and
- ((fib_Protection and FIBF_WRITE) = 0) then f.attr:=f.attr or READONLY;
- f.Name := strpas(fib_FileName);
- f.Size := fib_Size;
- end; { end with }
- end;
-end;
-
-procedure FindClose(Var f: SearchRec);
-begin
- MatchEnd(f.AnchorPtr);
- if assigned(f.AnchorPtr) then
- Dispose(PAnchorPath(f.AnchorPtr));
-end;
-
-
-{******************************************************************************
- --- File ---
-******************************************************************************}
-
-function FSearch(path: PathStr; dirlist: String) : PathStr;
-var
- p1 : LongInt;
- tmpSR : SearchRec;
- newdir : PathStr;
-begin
- { No wildcards allowed in these things }
- if (pos('?',path)<>0) or (pos('*',path)<>0) or (path='') then
- FSearch:=''
- else begin
- repeat
- p1:=pos(';',dirlist);
- if p1<>0 then begin
- newdir:=Copy(dirlist,1,p1-1);
- Delete(dirlist,1,p1);
- end else begin
- newdir:=dirlist;
- dirlist:='';
- end;
- if (newdir<>'') and (not (newdir[length(newdir)] in ['/',':'])) then
- newdir:=newdir+'/';
- FindFirst(newdir+path,anyfile,tmpSR);
- if doserror=0 then
- newdir:=newdir+path
- else
- newdir:='';
- until (dirlist='') or (newdir<>'');
- FSearch:=newdir;
- end;
-end;
-
-
-Procedure getftime (var f; var time : longint);
-{
- This function returns a file's date and time as the number of
- seconds after January 1, 1978 that the file was created.
-}
-var
- FInfo : pFileInfoBlock;
- FTime : Longint;
- FLock : Longint;
- Str : String;
- i : integer;
-begin
- DosError:=0;
- FTime := 0;
-{$ifdef FPC_ANSI_TEXTFILEREC}
- Str := strpas(filerec(f).Name);
-{$else}
- Str := ToSingleByteFileSystemEncodedFileName(filerec(f).Name);
-{$endif}
- DoDirSeparators(Str);
- FLock := dosLock(Str, SHARED_LOCK);
- IF FLock <> 0 then begin
- New(FInfo);
- if Examine(FLock, FInfo) then begin
- with FInfo^.fib_Date do
- FTime := ds_Days * (24 * 60 * 60) +
- ds_Minute * 60 +
- ds_Tick div 50;
- end else begin
- FTime := 0;
- end;
- Unlock(FLock);
- Dispose(FInfo);
- end
- else
- DosError:=6;
- time := FTime;
-end;
-
-
- Procedure setftime(var f; time : longint);
- var
- DateStamp: pDateStamp;
- Str: String;
- i: Integer;
- Days, Minutes,Ticks: longint;
- FLock: longint;
- Begin
- new(DateStamp);
-{$ifdef FPC_ANSI_TEXTFILEREC}
- Str := strpas(filerec(f).Name);
-{$else}
- Str := ToSingleByteFileSystemEncodedFileName(filerec(f).Name);
-{$endif}
- DoDirSeparators(str);
- { Check first of all, if file exists }
- FLock := dosLock(Str, SHARED_LOCK);
- IF FLock <> 0 then
- begin
- Unlock(FLock);
- Amiga2DateStamp(time,Days,Minutes,ticks);
- DateStamp^.ds_Days:=Days;
- DateStamp^.ds_Minute:=Minutes;
- DateStamp^.ds_Tick:=Ticks;
- if dosSetFileDate(Str,DateStamp) then
- DosError:=0
- else
- DosError:=6;
- end
- else
- DosError:=2;
- if assigned(DateStamp) then Dispose(DateStamp);
- End;
-
-procedure getfattr(var f; var attr : word);
-var
- info : pFileInfoBlock;
- MyLock : Longint;
- flags: word;
- Str: String;
- i: integer;
-begin
- DosError:=0;
- flags:=0;
- New(info);
-{$ifdef FPC_ANSI_TEXTFILEREC}
- Str := strpas(filerec(f).Name);
-{$else}
- Str := ToSingleByteFileSystemEncodedFileName(filerec(f).Name);
-{$endif}
- DoDirSeparators(str);
- { open with shared lock to check if file exists }
- MyLock:=dosLock(Str,SHARED_LOCK);
- if MyLock <> 0 then
- Begin
- Examine(MyLock,info);
- {*------------------------------------*}
- {* Determine if is a file or a folder *}
- {*------------------------------------*}
- if info^.fib_DirEntryType > 0 then
- flags:=flags OR DIRECTORY;
-
- {*------------------------------------*}
- {* Determine if Read only *}
- {* Readonly if R flag on and W flag *}
- {* off. *}
- {* Should we check also that EXEC *}
- {* is zero? for read only? *}
- {*------------------------------------*}
- if ((info^.fib_Protection and FIBF_READ) <> 0)
- AND ((info^.fib_Protection and FIBF_WRITE) = 0)
- then
- flags:=flags OR ReadOnly;
- Unlock(mylock);
- end
- else
- DosError:=3;
- attr:=flags;
- Dispose(info);
- End;
-
-
-procedure setfattr(var f; attr : word);
-var
- flags: longint;
- tmpLock : longint;
-{$ifndef FPC_ANSI_TEXTFILEREC}
- r : rawbytestring;
-{$endif not FPC_ANSI_TEXTFILEREC}
- p : pchar;
-begin
-{$ifdef FPC_ANSI_TEXTFILEREC}
- p := @filerec(f).Name;
-{$else}
- r := ToSingleByteFileSystemEncodedFileName(filerec(f).Name);
- p := pchar(r);
-{$endif}
- DosError:=0;
- flags:=FIBF_WRITE;
-
- { By default files are read-write }
- if attr and ReadOnly <> 0 then flags:=FIBF_READ; { Clear the Fibf_write flags }
-
- { no need for path conversion here, because file opening already }
- { converts the path (KB) }
-
- { create a shared lock on the file }
- tmpLock:=Lock(p,SHARED_LOCK);
- if tmpLock <> 0 then begin
- Unlock(tmpLock);
- if not SetProtection(p,flags) then DosError:=5;
- end else
- DosError:=3;
-end;
-
-
-
-{******************************************************************************
- --- Environment ---
-******************************************************************************}
-
-var
- strofpaths : string;
-
-function getpathstring: string;
-var
- f : text;
- s : string;
- found : boolean;
- temp : string[255];
- tmpBat: string[31];
- tmpList: string[31];
-begin
- found := true;
- temp := '';
-
- tmpBat:='T:'+HexStr(FindTask(nil));
- tmpList:=tmpBat+'_path.tmp';
- tmpBat:=tmpBat+'_path.sh';
-
- assign(f,tmpBat);
- rewrite(f);
- writeln(f,'path >'+tmpList);
- close(f);
- exec('C:Execute',tmpBat);
- erase(f);
-
- assign(f,tmpList);
- reset(f);
- { skip the first line, garbage }
- if not eof(f) then readln(f,s);
- while not eof(f) do begin
- readln(f,s);
- if found then begin
- temp := s;
- found := false;
- end else begin;
- if (length(s) + length(temp)) < 255 then
- temp := temp + ';' + s;
- end;
- end;
- close(f);
- erase(f);
-
- getpathstring := temp;
-end;
-
-
-function EnvCount: Longint;
-{ HOW TO GET THIS VALUE: }
-{ Each time this function is called, we look at the }
-{ local variables in the Process structure (2.0+) }
-{ And we also read all files in the ENV: directory }
-begin
- EnvCount := 0;
-end;
-
-
-function EnvStr(Index: LongInt): String;
-begin
- EnvStr:='';
-end;
-
-
-function GetEnv(envvar : String): String;
-var
- bufarr : array[0..255] of char;
- strbuffer : array[0..255] of char;
- temp : Longint;
-begin
- GetEnv := '';
- if UpCase(envvar) = 'PATH' then begin
- if StrOfpaths = '' then StrOfPaths := GetPathString;
- GetEnv := StrOfPaths;
- end else begin
- if (Pos(DriveSeparator,envvar) <> 0) or
- (Pos(DirectorySeparator,envvar) <> 0) then exit;
- move(envvar[1],strbuffer,length(envvar));
- strbuffer[length(envvar)] := #0;
- temp := GetVar(strbuffer,bufarr,255,$100);
- if temp <> -1 then
- GetEnv := StrPas(bufarr);
- end;
-end;
-
-
-procedure AddDevice(str : String);
-begin
- inc(numberofdevices);
- deviceids[numberofdevices] := numberofdevices;
- devicenames[numberofdevices] := str;
-end;
-
-function MakeDeviceName(str : pchar): string;
-var
- temp : string[20];
-begin
- temp := strpas(str);
- temp := temp + ':';
- MakeDeviceName := temp;
-end;
-
-function IsInDeviceList(str : string): boolean;
-var
- i : byte;
- theresult : boolean;
-begin
- theresult := false;
- for i := low(not_to_use_devs) to high(not_to_use_devs) do
- begin
- if str = not_to_use_devs[i] then begin
- theresult := true;
- break;
- end;
- end;
- IsInDeviceList := theresult;
-end;
-
-procedure ReadInDevices;
-var
- dl : pDosList;
- temp : pchar;
- str : string[20];
-begin
- dl := LockDosList(LDF_DEVICES or LDF_READ );
- repeat
- dl := NextDosEntry(dl,LDF_DEVICES );
- if dl <> nil then begin
- temp := BSTR2STRING(dl^.dol_Name);
- str := MakeDeviceName(temp);
- if not IsInDeviceList(str) then
- AddDevice(str);
- end;
- until dl = nil;
- UnLockDosList(LDF_DEVICES or LDF_READ );
-end;
-
-begin
- DosError:=0;
- numberofdevices := 0;
- StrOfPaths := '';
- ReadInDevices;
-end.
diff --git a/rtl/morphos/doslib.pp b/rtl/morphos/doslib.pp
deleted file mode 100644
index 68c72371f5..0000000000
--- a/rtl/morphos/doslib.pp
+++ /dev/null
@@ -1,136 +0,0 @@
-{
- This file is part of the Free Pascal run time library.
- Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
-
- dos.library interface unit for MorphOS/PowerPC
-
- MorphOS port was done on a free Pegasos II/G4 machine
- provided by Genesi S.a.r.l. <www.genesi.lu>
-
- 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.
-
- **********************************************************************}
-{$INLINE ON}
-
-unit doslib;
-
-interface
-
-uses Exec, Timer;
-
-var
- DosBase: Pointer;
-
-
-{$include doslibd.inc}
-{$include doslibf.inc}
-
-
-{ * dos global definitions (V50)
- *********************************************************************
- * }
-
-function BADDR(x: LongInt): Pointer; Inline;
-function MKBADDR(x: Pointer): LongInt; Inline;
-
-
-{ * dos stdio definitions
- *********************************************************************
- * }
-
-function ReadChar: LongInt; Inline;
-function WriteChar(ch: Char): LongInt; Inline;
-function UnReadChar(ch: Char): LongInt; Inline;
-function ReadChars(buf: Pointer; num: LongInt): LongInt; Inline;
-function dosReadLn(buf: PChar; num: LongInt): PChar; Inline;
-function WriteStr(str: PChar): LongInt; Inline;
-procedure VWritef(format: PChar; argv: Pointer); Inline;
-
-
-{ * calls with tags workarounds (should be removed later)
- *********************************************************************
- * }
-
-function CreateNewProcTags(tags: array of dword): PProcess; Inline;
-
-
-
-implementation
-
-
-{ * dos stdio definitions
- *********************************************************************
- * }
-
-function ReadChar: LongInt; Inline;
-begin
- ReadChar:=FGetC(dosInput);
-end;
-
-function WriteChar(ch: Char): LongInt; Inline;
-begin
- WriteChar:=FPutC(dosOutput,Byte(ch));
-end;
-
-function UnReadChar(ch: Char): LongInt; Inline;
-begin
- UnReadChar:=UnGetC(dosInput,Byte(ch));
-end;
-
-function ReadChars(buf: Pointer; num: LongInt): LongInt; Inline;
-begin
- ReadChars:=FRead(dosInput,buf,1,num);
-end;
-
-function dosReadLn(buf: PChar; num: LongInt): PChar; Inline;
-begin
- dosReadLn:=FGets(dosInput,buf,num);
-end;
-
-function WriteStr(str: PChar): LongInt; Inline;
-begin
- WriteStr:=FPuts(dosOutput,str);
-end;
-
-procedure VWritef(format: PChar; argv: Pointer); Inline;
-begin
- VFWritef(dosOutput,format,argv);
-end;
-
-
-
-{ * dos global definitions (V50)
- *********************************************************************
- * }
-
-
-function BADDR(x: LongInt): Pointer; Inline;
-begin
- BADDR:=Pointer(x Shl 2);
-end;
-
-function MKBADDR(x: Pointer): LongInt; Inline;
-begin
- MKBADDR:=LongInt(x) Shr 2;
-end;
-
-
-
-{ * calls with tags workarounds (should be removed later)
- *********************************************************************
- * }
-
-function CreateNewProcTags(tags: array of DWord): PProcess; Inline;
-begin
- CreateNewProcTags:=CreateNewProc(@tags);
-end;
-
-
-begin
- DosBase:=MOS_DOSBase;
-end.
diff --git a/rtl/morphos/doslibf.inc b/rtl/morphos/doslibf.inc
index 82cbf47169..e4f9816ba9 100644
--- a/rtl/morphos/doslibf.inc
+++ b/rtl/morphos/doslibf.inc
@@ -5,7 +5,7 @@
Copyright (c) 2002 The MorphOS Development Team, All Rights Reserved.
Free Pascal conversion
- Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
+ Copyright (c) 2004-2014 by Karoly Balogh
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
@@ -23,7 +23,7 @@ function Open(fname : PChar location 'd1';
accessMode: LongInt location 'd2'): LongInt;
SysCall MOS_DOSBase 30;
-function dosClose(fileh: LongInt location 'd1'): Boolean;
+function dosClose(fileh: LongInt location 'd1'): LongBool;
SysCall MOS_DOSBase 36;
function dosRead(fileh : LongInt location 'd1';
@@ -47,11 +47,11 @@ function dosSeek(fileh : LongInt location 'd1';
posmode : LongInt location 'd3'): LongInt;
SysCall MOS_DOSBase 66;
-function dosDeleteFile(fname: PChar location 'd1'): Boolean;
+function dosDeleteFile(fname: PChar location 'd1'): LongBool;
SysCall MOS_DOSBase 72;
function dosRename(oldName: PChar location 'd1';
- newName: PChar location 'd2'): Boolean;
+ newName: PChar location 'd2'): LongInt;
SysCall MOS_DOSBase 78;
function Lock(lname : PChar location 'd1';
@@ -65,7 +65,7 @@ function DupLock(lock: LongInt location 'd1'): LongInt;
SysCall MOS_DOSBase 096;
function Examine(lock : LongInt location 'd1';
- fileInfoBlock: PFileInfoBlock location 'd2'): Boolean;
+ fileInfoBlock: PFileInfoBlock location 'd2'): LongInt;
SysCall MOS_DOSBase 102;
function ExNext(lock : LongInt location 'd1';
@@ -73,7 +73,7 @@ function ExNext(lock : LongInt location 'd1';
SysCall MOS_DOSBase 108;
function Info(lock : LongInt location 'd1';
- parameterBlock: PInfoData location 'd2'): Boolean;
+ parameterBlock: PInfoData location 'd2'): LongInt;
SysCall MOS_DOSBase 114;
function dosCreateDir(dname: PChar location 'd1'): LongInt;
@@ -104,11 +104,11 @@ function DeviceProc(name: PChar location 'd1'): PMsgPort;
SysCall MOS_DOSBase 174;
function SetComment(name : PChar location 'd1';
- comment: PChar location 'd2'): Boolean;
+ comment: PChar location 'd2'): LongBool;
SysCall MOS_DOSBase 180;
function SetProtection(name: PChar location 'd1';
- mask: LongInt location 'd2'): Boolean;
+ mask: LongInt location 'd2'): LongInt;
SysCall MOS_DOSBase 186;
function DateStamp(date: PDateStamp location 'd1'): PDateStamp;
@@ -118,18 +118,18 @@ procedure Delay(timeout: LongInt location 'd1');
SysCall MOS_DOSBase 198;
function WaitForChar(file1 : LongInt location 'd1';
- timeout: LongInt location 'd2'): Boolean;
+ timeout: LongInt location 'd2'): LongBool;
SysCall MOS_DOSBase 204;
function ParentDir(lock: LongInt location 'd1'): LongInt;
SysCall MOS_DOSBase 210;
-function IsInteractive(file1: LongInt location 'd1'): Boolean;
+function IsInteractive(file1: LongInt location 'd1'): LongBool;
SysCall MOS_DOSBase 216;
function Execute(string1: PChar location 'd1';
file1 : LongInt location 'd2';
- file2 : LongInt location 'd3'): Boolean;
+ file2 : LongInt location 'd3'): LongBool;
SysCall MOS_DOSBase 222;
function AllocDosObject(type1: Cardinal location 'd1';
@@ -204,19 +204,19 @@ function LockRecord(fh : LongInt location 'd1';
offset : Cardinal location 'd2';
length : Cardinal location 'd3';
mode : Cardinal location 'd4';
- timeout: Cardinal location 'd5'): Boolean;
+ timeout: Cardinal location 'd5'): LongBool;
SysCall MOS_DOSBase 270;
function LockRecords(recArray: PRecordLock location 'd1';
- timeout : Cardinal location 'd2'): Boolean;
+ timeout : Cardinal location 'd2'): LongBool;
SysCall MOS_DOSBase 276;
function UnLockRecord(fh : LongInt location 'd1';
offset: Cardinal location 'd2';
- length: Cardinal location 'd3'): Boolean;
+ length: Cardinal location 'd3'): LongBool;
SysCall MOS_DOSBase 282;
-function UnLockRecords(recArray: PRecordLock location 'd1'): Boolean;
+function UnLockRecords(recArray: PRecordLock location 'd1'): LongBool;
SysCall MOS_DOSBase 288;
function SelectInput(fh: LongInt location 'd1'): LongInt;
@@ -286,21 +286,21 @@ function ParentOfFH(fh: LongInt location 'd1'): LongInt;
SysCall MOS_DOSBase 384;
function ExamineFH(fh : LongInt location 'd1';
- fib: PFileInfoBlock location 'd2'): Boolean;
+ fib: PFileInfoBlock location 'd2'): LongBool;
SysCall MOS_DOSBase 390;
function SetFileDate(name: PChar location 'd1';
- date: PDateStamp location 'd2'): Boolean;
+ date: PDateStamp location 'd2'): LongBool;
SysCall MOS_DOSBase 396;
function NameFromLock(lock : LongInt location 'd1';
buffer: PChar location 'd2';
- len : LongInt location 'd3'): Boolean;
+ len : LongInt location 'd3'): LongBool;
SysCall MOS_DOSBase 402;
function NameFromFH(fh : LongInt location 'd1';
buffer: PChar location 'd2';
- len : LongInt location 'd3'): LongInt;
+ len : LongInt location 'd3'): LongBool;
SysCall MOS_DOSBase 408;
function SplitName(name : PChar location 'd1';
@@ -322,24 +322,24 @@ function ExAll(lock : LongInt location 'd1';
buffer : PExAllData location 'd2';
size : LongInt location 'd3';
data : LongInt location 'd4';
- control: PExAllControl location 'd5'): Boolean;
+ control: PExAllControl location 'd5'): LongBool;
SysCall MOS_DOSBase 432;
function ReadLink(port : PMsgPort location 'd1';
lock : LongInt location 'd2';
path : PChar location 'd3';
buffer: PChar location 'd4';
- size : Cardinal location 'd5'): Boolean;
+ size : Cardinal location 'd5'): LongBool;
SysCall MOS_DOSBase 438;
function MakeLink(name: PChar location 'd1';
dest: LongInt location 'd2';
- soft: LongInt location 'd3'): Boolean;
+ soft: LongInt location 'd3'): LongBool;
SysCall MOS_DOSBase 444;
function ChangeMode(type1 : LongInt location 'd1';
fh : LongInt location 'd2';
- newmode: LongInt location 'd3'): Boolean;
+ newmode: LongInt location 'd3'): LongBool;
SysCall MOS_DOSBase 450;
function SetFileSize(fh : LongInt location 'd1';
@@ -353,17 +353,17 @@ SysCall MOS_DOSBase 462;
function Fault(code : LongInt location 'd1';
header: PChar location 'd2';
buffer: PChar location 'd3';
- len : LongInt location 'd4'): Boolean;
+ len : LongInt location 'd4'): LongBool;
SysCall MOS_DOSBase 468;
function PrintFault(code : LongInt location 'd1';
- header: PChar location 'd2'): Boolean;
+ header: PChar location 'd2'): LongBool;
SysCall MOS_DOSBase 474;
function ErrorReport(code : LongInt location 'd1';
type1 : LongInt location 'd2';
arg1 : Cardinal location 'd3';
- device: PMsgPort location 'd4'): Boolean;
+ device: PMsgPort location 'd4'): LongBool;
SysCall MOS_DOSBase 480;
function Cli: PCommandLineInterface;
@@ -396,7 +396,7 @@ SysCall MOS_DOSBase 528;
function GetArgStr: PChar;
SysCall MOS_DOSBase 534;
-function SetArgStr(str: PChar location 'd1'): Boolean;
+function SetArgStr(str: PChar location 'd1'): LongBool;
SysCall MOS_DOSBase 540;
function FindCliProc(num: Cardinal location 'd1'): PProcess;
@@ -405,25 +405,25 @@ SysCall MOS_DOSBase 546;
function MaxCli: Cardinal;
SysCall MOS_DOSBase 552;
-function SetCurrentDirName(name: PChar location 'd1'): Boolean;
+function SetCurrentDirName(name: PChar location 'd1'): LongBool;
SysCall MOS_DOSBase 558;
function GetCurrentDirName(buf: PChar location 'd1';
- len: LongInt location 'd2'): Boolean;
+ len: LongInt location 'd2'): LongBool;
SysCall MOS_DOSBase 564;
-function SetProgramName(name: PChar location 'd1'): Boolean;
+function SetProgramName(name: PChar location 'd1'): LongBool;
SysCall MOS_DOSBase 570;
function GetProgramName(buf: PChar location 'd1';
- len: LongInt location 'd2'): Boolean;
+ len: LongInt location 'd2'): LongBool;
SysCall MOS_DOSBase 576;
-function SetPrompt(name: PChar location 'd1'): Boolean;
+function SetPrompt(name: PChar location 'd1'): LongBool;
SysCall MOS_DOSBase 582;
function GetPrompt(buf: PChar location 'd1';
- len: LongInt location 'd2'): Boolean;
+ len: LongInt location 'd2'): LongBool;
SysCall MOS_DOSBase 588;
function SetProgramDir(lock: LongInt location 'd1'): LongInt;
@@ -441,23 +441,23 @@ function dosSystem(command: PChar location 'd1';
SysCall MOS_DOSBase 606;
function AssignLock(name: PChar location 'd1';
- lock: LongInt location 'd2'): Boolean;
+ lock: LongInt location 'd2'): LongBool;
SysCall MOS_DOSBase 612;
function AssignLate(name: PChar location 'd1';
- path: PChar location 'd2'): Boolean;
+ path: PChar location 'd2'): LongBool;
SysCall MOS_DOSBase 618;
function AssignPath(name: PChar location 'd1';
- path: PChar location 'd2'): Boolean;
+ path: PChar location 'd2'): LongBool;
SysCall MOS_DOSBase 624;
function AssignAdd(name: PChar location 'd1';
- lock: LongInt location 'd2'): Boolean;
+ lock: LongInt location 'd2'): LongBool;
SysCall MOS_DOSBase 630;
function RemAssignList(name: PChar location 'd1';
- lock: LongInt location 'd2'): Boolean;
+ lock: LongInt location 'd2'): LongBool;
SysCall MOS_DOSBase 636;
function GetDeviceProc(name: PChar location 'd1';
@@ -476,7 +476,7 @@ SysCall MOS_DOSBase 660;
function AttemptLockDosList(flags: Cardinal location 'd1'): PDosList;
SysCall MOS_DOSBase 666;
-function RemDosEntry(dlist: PDosList location 'd1'): Boolean;
+function RemDosEntry(dlist: PDosList location 'd1'): LongBool;
SysCall MOS_DOSBase 672;
function AddDosEntry(dlist: PDosList location 'd1'): LongInt;
@@ -498,34 +498,34 @@ SysCall MOS_DOSBase 696;
procedure FreeDosEntry(dlist: PDosList location 'd1');
SysCall MOS_DOSBase 702;
-function IsFileSystem(name: PChar location 'd1'): Boolean;
+function IsFileSystem(name: PChar location 'd1'): LongBool;
SysCall MOS_DOSBase 708;
function Format(filesystem: PChar location 'd1';
volumename: PChar location 'd2';
- dostype : Cardinal location 'd3'): Boolean;
+ dostype : Cardinal location 'd3'): LongBool;
SysCall MOS_DOSBase 714;
function Relabel(drive : PChar location 'd1';
- newname: PChar location 'd2'): Boolean;
+ newname: PChar location 'd2'): LongBool;
SysCall MOS_DOSBase 720;
function Inhibit(name : PChar location 'd1';
- onoff: LongInt location 'd2'): Boolean;
+ onoff: LongInt location 'd2'): LongBool;
SysCall MOS_DOSBase 726;
function AddBuffers(name : PChar location 'd1';
- number: LongInt location 'd2'): Boolean;
+ number: LongInt location 'd2'): LongBool;
SysCall MOS_DOSBase 732;
function CompareDates(date1: PDateStamp location 'd1';
date2: PDateStamp location 'd2'): LongInt;
SysCall MOS_DOSBase 738;
-function DateToStr(datetime: _PDateTime location 'd1'): Boolean;
+function DateToStr(datetime: _PDateTime location 'd1'): LongBool;
SysCall MOS_DOSBase 744;
-function StrToDate(datetime: _PDateTime location 'd1'): Boolean;
+function StrToDate(datetime: _PDateTime location 'd1'): LongBool;
SysCall MOS_DOSBase 750;
function InternalLoadSeg(fh : LongInt location 'd0';
@@ -544,7 +544,7 @@ SysCall MOS_DOSBase 768;
function AddSegment(name : PChar location 'd1';
seg : LongInt location 'd2';
- system: LongInt location 'd3'): Boolean;
+ system: LongInt location 'd3'): LongBool;
SysCall MOS_DOSBase 774;
function FindSegment(name : PChar location 'd1';
@@ -552,7 +552,7 @@ function FindSegment(name : PChar location 'd1';
system: LongInt location 'd3'): PSegment;
SysCall MOS_DOSBase 780;
-function RemSegment(seg: PSegment location 'd1'): Boolean;
+function RemSegment(seg: PSegment location 'd1'): LongBool;
SysCall MOS_DOSBase 786;
function CheckSignal(mask: LongInt location 'd1'): LongInt;
@@ -592,7 +592,7 @@ function ParsePattern(pat : PChar location 'd1';
SysCall MOS_DOSBase 840;
function MatchPattern(pat: PChar location 'd1';
- str: PChar location 'd2'): Boolean;
+ str: PChar location 'd2'): LongBool;
SysCall MOS_DOSBase 846;
procedure FreeArgs(args: pRDArgs location 'd1');
@@ -606,10 +606,10 @@ SysCall MOS_DOSBase 876;
function AddPart(dirname: PChar location 'd1';
filename: PChar location 'd2';
- size : Cardinal location 'd3'): Boolean;
+ size : Cardinal location 'd3'): LongBool;
SysCall MOS_DOSBase 882;
-function StartNotify(notify: PNotifyRequest location 'd1'): Boolean;
+function StartNotify(notify: PNotifyRequest location 'd1'): LongBool;
SysCall MOS_DOSBase 888;
procedure EndNotify(notify: PNotifyRequest location 'd1');
@@ -618,7 +618,7 @@ SysCall MOS_DOSBase 894;
function SetVar(name : PChar location 'd1';
buffer: PChar location 'd2';
size : LongInt location 'd3';
- flags : LongInt location 'd4'): Boolean;
+ flags : LongInt location 'd4'): LongBool;
SysCall MOS_DOSBase 900;
function GetVar(name : PChar location 'd1';
@@ -628,7 +628,7 @@ function GetVar(name : PChar location 'd1';
SysCall MOS_DOSBase 906;
function DeleteVar(name : PChar location 'd1';
- flags: Cardinal location 'd2'): Boolean;
+ flags: Cardinal location 'd2'): LongBool;
SysCall MOS_DOSBase 912;
function FindVar(name : PChar location 'd1';
@@ -658,11 +658,11 @@ function ParsePatternNoCase(pat : PChar location 'd1';
SysCall MOS_DOSBase 966;
function MatchPatternNoCase(pat: PChar location 'd1';
- str: PChar location 'd2'): Boolean;
+ str: PChar location 'd2'): LongBool;
SysCall MOS_DOSBase 972;
function SameDevice(lock1: LongInt location 'd1';
- lock2: LongInt location 'd2'): Boolean;
+ lock2: LongInt location 'd2'): LongBool;
SysCall MOS_DOSBase 984;
procedure ExAllEnd(lock : LongInt location 'd1';
@@ -673,7 +673,7 @@ procedure ExAllEnd(lock : LongInt location 'd1';
SysCall MOS_DOSBase 990;
function SetOwner(name : PChar location 'd1';
- owner_info: LongInt location 'd2'): Boolean;
+ owner_info: LongInt location 'd2'): LongBool;
SysCall MOS_DOSBase 996;
function AddSegmentTagList(tags: PTagItem location 'a0'): LongInt;
@@ -683,4 +683,3 @@ function FindSegmentTagList(tags: PTagItem location 'a0'): PSegment;
SysCall MOS_DOSBase 1008;
-
diff --git a/rtl/morphos/exec.pp b/rtl/morphos/exec.pp
deleted file mode 100644
index 60b27d690a..0000000000
--- a/rtl/morphos/exec.pp
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- This file is part of the Free Pascal run time library.
- Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
-
- exec.library interface unit for MorphOS/PowerPC
-
- MorphOS port was done on a free Pegasos II/G4 machine
- provided by Genesi S.a.r.l. <www.genesi.lu>
-
- 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 exec;
-
-interface
-
-var
- ExecBase: Pointer;
-
-{$include execd.inc}
-{$include execf.inc}
-
-
-function NewGetTaskAttrs(Task : PTask;
- Data : Pointer;
- DataSize: Cardinal;
- TType : Cardinal;
- Tags : array of DWord): Cardinal; Inline;
-
-implementation
-
-
-function NewGetTaskAttrs(Task : PTask;
- Data : Pointer;
- DataSize: Cardinal;
- TType : Cardinal;
- Tags : array of DWord): Cardinal; Inline;
-begin
- NewGetTaskAttrs:=NewGetTaskAttrsA(Task,Data,DataSize,TType,@Tags);
-end;
-
-
-begin
- ExecBase:=MOS_ExecBase;
-end.
diff --git a/rtl/morphos/sysdir.inc b/rtl/morphos/sysdir.inc
deleted file mode 100644
index 11f9d2512d..0000000000
--- a/rtl/morphos/sysdir.inc
+++ /dev/null
@@ -1,98 +0,0 @@
-{
- This file is part of the Free Pascal run time library.
- Copyright (c) 2006 by Free Pascal development team
-
- Low level directory 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.
-
- **********************************************************************}
-
-
-{*****************************************************************************
- Directory Handling
-*****************************************************************************}
-Procedure do_MkDir(const s: rawbytestring);
-var
- tmpStr : rawbytestring;
- tmpLock: LongInt;
-begin
- checkCTRLC;
- tmpStr:=PathConv(s);
- tmpLock:=dosCreateDir(pchar(tmpStr));
- if tmpLock=0 then begin
- dosError2InOut(IoErr);
- exit;
- end;
- UnLock(tmpLock);
-end;
-
-Procedure do_RmDir(const s: rawbytestring);
-var
- tmpStr : rawbytestring;
-begin
- checkCTRLC;
- if (s='.') then
- begin
- InOutRes:=16;
- exit;
- end;
- tmpStr:=PathConv(s);
- if not dosDeleteFile(pchar(tmpStr)) then
- dosError2InOut(IoErr);
-end;
-
-Procedure do_ChDir(const s: rawbytestring);
-var
- tmpStr : rawbytestring;
- tmpLock: LongInt;
- FIB : PFileInfoBlock;
-begin
- checkCTRLC;
- tmpStr:=PathConv(s);
- tmpLock:=0;
-
- { Changing the directory is a pretty complicated affair }
- { 1) Obtain a lock on the directory }
- { 2) CurrentDir the lock }
- tmpLock:=Lock(pchar(tmpStr),SHARED_LOCK);
- if tmpLock=0 then begin
- dosError2InOut(IoErr);
- exit;
- end;
-
- FIB:=nil;
- new(FIB);
-
- if (Examine(tmpLock,FIB)=True) and (FIB^.fib_DirEntryType>0) then begin
- tmpLock:=CurrentDir(tmpLock);
- if MOS_OrigDir=0 then begin
- MOS_OrigDir:=tmpLock;
- tmpLock:=0;
- end;
- end else begin
- dosError2InOut(ERROR_DIR_NOT_FOUND);
- end;
-
- if tmpLock<>0 then Unlock(tmpLock);
- if assigned(FIB) then dispose(FIB);
-end;
-
-procedure do_GetDir (DriveNr: byte; var Dir: RawByteString);
-var tmpbuf: array[0..255] of char;
-begin
- checkCTRLC;
- Dir:='';
- if not GetCurrentDirName(tmpbuf,256) then
- dosError2InOut(IoErr)
- else
- begin
- Dir:=tmpbuf;
- SetCodePage(Dir,DefaultFileSystemCodePage,false);
- end;
-end;
diff --git a/rtl/morphos/sysheap.inc b/rtl/morphos/sysheap.inc
deleted file mode 100644
index 50f9db727f..0000000000
--- a/rtl/morphos/sysheap.inc
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- 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.
-
- **********************************************************************}
-
-{ Enable this for memory allocation debugging }
-{DEFINE MOSFPC_MEMDEBUG}
-
-{*****************************************************************************
- OS Memory allocation / deallocation
- ****************************************************************************}
-
-function SysOSAlloc(size: ptruint): pointer;
-{$IFDEF MOSFPC_MEMDEBUG}
-var values: array[0..2] of dword;
-{$ENDIF}
-begin
- result:=AllocPooled(MOS_heapPool,size);
-{$IFDEF MOSFPC_MEMDEBUG}
- values[0]:=dword(result);
- values[1]:=dword(size);
- values[2]:=DWord(Sptr-StackBottom);
- RawDoFmt('FPC_MEM_DEBUG: $%lx:=SysOSAlloc(%lu), free stack: %ld bytes'+#10,@values,pointer(1),nil);
-{$ENDIF}
-end;
-
-{$define HAS_SYSOSFREE}
-
-procedure SysOSFree(p: pointer; size: ptruint);
-{$IFDEF MOSFPC_MEMDEBUG}
-var values: array[0..2] of dword;
-{$ENDIF}
-begin
- FreePooled(MOS_heapPool,p,size);
-{$IFDEF MOSFPC_MEMDEBUG}
- values[0]:=dword(p);
- values[1]:=dword(size);
- values[2]:=DWord(Sptr-StackBottom);
- RawDoFmt('FPC_MEM_DEBUG: SysOSFree($%lx,%lu), free stack: %ld bytes'+#10,@values,pointer(1),nil);
-{$ENDIF}
-end;
diff --git a/rtl/morphos/sysos.inc b/rtl/morphos/sysos.inc
deleted file mode 100644
index efbba2ae71..0000000000
--- a/rtl/morphos/sysos.inc
+++ /dev/null
@@ -1,176 +0,0 @@
-{
- This file is part of the Free Pascal run time library.
- Copyright (c) 2001 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.
-
- **********************************************************************}
-
-{*****************************************************************************
- MorphOS structures
-*****************************************************************************}
-
-{$include execd.inc}
-{$include timerd.inc}
-{$include doslibd.inc}
-
-
-{*****************************************************************************
- MorphOS functions
-*****************************************************************************}
-
-{ exec.library functions }
-
-{$include execf.inc}
-{$include doslibf.inc}
-
-
-{*****************************************************************************
- System Dependent Structures/Consts
-*****************************************************************************}
-
-const
- CTRL_C = 20; { Error code on CTRL-C press }
-
-{ Used for CTRL_C checking in I/O calls }
-procedure checkCTRLC;
-begin
- if BreakOn then begin
- if (SetSignal(0,0) And SIGBREAKF_CTRL_C)<>0 then begin
- { Clear CTRL-C signal }
- SetSignal(0,SIGBREAKF_CTRL_C);
- Halt(CTRL_C);
- end;
- end;
-end;
-
-
-{ Converts a MorphOS dos.library error code to a TP compatible error code }
-{ Based on 1.0.x Amiga RTL }
-procedure dosError2InOut(errno: LongInt);
-begin
- case errno of
- ERROR_BAD_NUMBER,
- ERROR_ACTION_NOT_KNOWN,
- ERROR_NOT_IMPLEMENTED : InOutRes := 1;
-
- ERROR_OBJECT_NOT_FOUND : InOutRes := 2;
- ERROR_DIR_NOT_FOUND : InOutRes := 3;
- ERROR_DISK_WRITE_PROTECTED : InOutRes := 150;
- ERROR_OBJECT_WRONG_TYPE : InOutRes := 151;
-
- ERROR_OBJECT_EXISTS,
- ERROR_DELETE_PROTECTED,
- ERROR_WRITE_PROTECTED,
- ERROR_READ_PROTECTED,
- ERROR_OBJECT_IN_USE,
- ERROR_DIRECTORY_NOT_EMPTY : InOutRes := 5;
-
- ERROR_NO_MORE_ENTRIES : InOutRes := 18;
- ERROR_RENAME_ACROSS_DEVICES : InOutRes := 17;
- ERROR_DISK_FULL : InOutRes := 101;
- ERROR_INVALID_RESIDENT_LIBRARY : InoutRes := 153;
- ERROR_BAD_HUNK : InOutRes := 153;
- ERROR_NOT_A_DOS_DISK : InOutRes := 157;
-
- ERROR_NO_DISK,
- ERROR_DISK_NOT_VALIDATED,
- ERROR_DEVICE_NOT_MOUNTED : InOutRes := 152;
-
- ERROR_SEEK_ERROR : InOutRes := 156;
-
- ERROR_LOCK_COLLISION,
- ERROR_LOCK_TIMEOUT,
- ERROR_UNLOCK_ERROR,
- ERROR_INVALID_LOCK,
- ERROR_INVALID_COMPONENT_NAME,
- ERROR_BAD_STREAM_NAME,
- ERROR_FILE_NOT_OBJECT : InOutRes := 6;
- else
- InOutres := errno;
- end;
-end;
-
-
-{ Converts an Unix-like path to Amiga-like path }
-function PathConv(path: string): string; alias: 'PATHCONV'; [public];
-var tmppos: longint;
-begin
- { check for short paths }
- if length(path)<=2 then begin
- if (path='.') or (path='./') then path:='' else
- if path='..' then path:='/' else
- if path='*' then path:='#?';
- end else begin
- { convert parent directories }
- tmppos:=pos('../',path);
- while tmppos<>0 do begin
- { delete .. to have / as parent dir sign }
- delete(path,tmppos,2);
- tmppos:=pos('../',path);
- end;
- { convert current directories }
- tmppos:=pos('./',path);
- while tmppos<>0 do begin
- { delete ./ since we doesn't need to sign current directory }
- delete(path,tmppos,2);
- tmppos:=pos('./',path);
- end;
- { convert wildstar to #? }
- tmppos:=pos('*',path);
- while tmppos<>0 do begin
- delete(path,tmppos,1);
- insert('#?',path,tmppos);
- tmppos:=pos('*',path);
- end;
- end;
- PathConv:=path;
-end;
-
-
-{ Converts an Unix-like path to Amiga-like path }
-function PathConv(const path: rawbytestring): rawbytestring; alias: 'PATHCONVRBS'; [public];
-var tmppos: longint;
-begin
- { check for short paths }
- if length(path)<=2 then begin
- if (path='.') or (path='./') then PathConv:='' else
- if path='..' then PathConv:='/' else
- if path='*' then PathConv:='#?'
- else PathConv:=path;
- end else begin
- { convert parent directories }
- PathConv:=path;
- tmppos:=pos('../',PathConv);
- while tmppos<>0 do begin
- { delete .. to have / as parent dir sign }
- delete(PathConv,tmppos,2);
- tmppos:=pos('../',PathConv);
- end;
- { convert current directories }
- tmppos:=pos('./',PathConv);
- while tmppos<>0 do begin
- { delete ./ since we doesn't need to sign current directory }
- delete(PathConv,tmppos,2);
- tmppos:=pos('./',PathConv);
- end;
- { convert wildstar to #? }
- tmppos:=pos('*',PathConv);
- while tmppos<>0 do begin
- delete(PathConv,tmppos,1);
- insert('#?',PathConv,tmppos);
- tmppos:=pos('*',PathConv);
- end;
- end;
-end;
-
-
diff --git a/rtl/morphos/system.pp b/rtl/morphos/system.pp
index 25c559f15f..335c465a08 100644
--- a/rtl/morphos/system.pp
+++ b/rtl/morphos/system.pp
@@ -26,6 +26,7 @@ interface
{$define FPC_IS_SYSTEM}
{$I systemh.inc}
+{$I osdebugh.inc}
const
LineEnding = #10;
@@ -58,11 +59,12 @@ const
var
MOS_ExecBase : Pointer; external name '_ExecBase';
- MOS_DOSBase : Pointer;
+ MOS_DOSBase : Pointer; public name 'AOS_DOSBASE';
+ AOS_DOSBase : Pointer; external name 'AOS_DOSBASE'; { common Amiga code compatibility kludge }
MOS_UtilityBase: Pointer;
- MOS_heapPool : Pointer; { pointer for the OS pool for growing the heap }
- MOS_origDir : LongInt; { original directory on startup }
+ ASYS_heapPool : Pointer; { pointer for the OS pool for growing the heap }
+ ASYS_origDir : LongInt; { original directory on startup }
MOS_ambMsg : Pointer;
MOS_ConName : PChar ='CON:10/30/620/100/FPC Console Output/AUTO/CLOSE/WAIT';
MOS_ConHandle: LongInt;
@@ -75,6 +77,7 @@ var
implementation
{$I system.inc}
+{$I osdebug.inc}
{$IFDEF MOSFPC_FILEDEBUG}
{$WARNING Compiling with file debug enabled!}
@@ -92,6 +95,8 @@ implementation
procedure haltproc(e:longint);cdecl;external name '_haltproc';
procedure System_exit;
+var
+ oldDirLock: LongInt;
begin
{ We must remove the CTRL-C FLAG here because halt }
{ may call I/O routines, which in turn might call }
@@ -102,11 +107,14 @@ begin
end;
{ Closing opened files }
- CloseList(MOS_fileList);
+ CloseList(ASYS_fileList);
{ Changing back to original directory if changed }
- if MOS_origDir<>0 then begin
- CurrentDir(MOS_origDir);
+ if ASYS_origDir<>0 then begin
+ oldDirLock:=CurrentDir(ASYS_origDir);
+ { unlock our lock if its safe, so we won't leak the lock }
+ if (oldDirLock<>0) and (oldDirLock<>ASYS_origDir) then
+ Unlock(oldDirLock);
end;
{ Closing CON: when in Ambient mode }
@@ -114,7 +122,7 @@ begin
if MOS_UtilityBase<>nil then CloseLibrary(MOS_UtilityBase);
if MOS_DOSBase<>nil then CloseLibrary(MOS_DOSBase);
- if MOS_heapPool<>nil then DeletePool(MOS_heapPool);
+ if ASYS_heapPool<>nil then DeletePool(ASYS_heapPool);
{ If in Ambient mode, replying WBMsg }
if MOS_ambMsg<>nil then begin
@@ -357,8 +365,8 @@ begin
if MOS_UtilityBase=nil then Halt(1);
{ Creating the memory pool for growing heap }
- MOS_heapPool:=CreatePool(MEMF_FAST,growheapsize2,growheapsize1);
- if MOS_heapPool=nil then Halt(1);
+ ASYS_heapPool:=CreatePool(MEMF_FAST,growheapsize2,growheapsize1);
+ if ASYS_heapPool=nil then Halt(1);
if MOS_ambMsg=nil then begin
MOS_ConHandle:=0;
@@ -404,8 +412,8 @@ begin
StackBottom := Sptr - StackLength;
{ OS specific startup }
MOS_ambMsg:=nil;
- MOS_origDir:=0;
- MOS_fileList:=nil;
+ ASYS_origDir:=0;
+ ASYS_fileList:=nil;
envp:=nil;
SysInitMorphOS;
{ Set up signals handlers }
@@ -421,5 +429,4 @@ begin
{ Arguments }
GenerateArgs;
InitSystemThreads;
- initvariantmanager;
end.
diff --git a/rtl/morphos/sysutils.pp b/rtl/morphos/sysutils.pp
deleted file mode 100644
index 95624ae341..0000000000
--- a/rtl/morphos/sysutils.pp
+++ /dev/null
@@ -1,759 +0,0 @@
-{
- This file is part of the Free Pascal run time library.
- Copyright (c) 2004-2013 by Karoly Balogh
-
- Sysutils unit for MorphOS
-
- Based on Amiga version by Carl Eric Codere, and other
- parts of the RTL
-
- 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 sysutils;
-
-interface
-
-{$MODE objfpc}
-{$MODESWITCH OUT}
-{ force ansistrings }
-{$H+}
-
-{$DEFINE OS_FILESETDATEBYNAME}
-{$DEFINE HAS_SLEEP}
-{$DEFINE HAS_OSERROR}
-
-{ used OS file system APIs use ansistring }
-{$define SYSUTILS_HAS_ANSISTR_FILEUTIL_IMPL}
-{ OS has an ansistring/single byte environment variable API }
-{$define SYSUTILS_HAS_ANSISTR_ENVVAR_IMPL}
-
-{ Include platform independent interface part }
-{$i sysutilh.inc}
-
-{ Platform dependent calls }
-
-Procedure AddDisk(const path:string);
-
-
-implementation
-
-uses dos,sysconst;
-
-{$DEFINE FPC_FEXPAND_VOLUMES} (* Full paths begin with drive specification *)
-{$DEFINE FPC_FEXPAND_DRIVESEP_IS_ROOT}
-{$DEFINE FPC_FEXPAND_NO_DEFAULT_PATHS}
-
-{ Include platform independent implementation part }
-{$i sysutils.inc}
-
-
-{ * Include MorphOS specific includes * }
-{$include execd.inc}
-{$include execf.inc}
-{$include timerd.inc}
-{$include doslibd.inc}
-{$include doslibf.inc}
-{$include utilf.inc}
-
-{ * Followings are implemented in the system unit! * }
-function PathConv(path: shortstring): shortstring; external name 'PATHCONV';
-function PathConv(path: RawByteString): RawByteString; external name 'PATHCONVRBS';
-procedure AddToList(var l: Pointer; h: LongInt); external name 'ADDTOLIST';
-function RemoveFromList(var l: Pointer; h: LongInt): boolean; external name 'REMOVEFROMLIST';
-function CheckInList(var l: Pointer; h: LongInt): pointer; external name 'CHECKINLIST';
-
-var
- MOS_fileList: Pointer; external name 'MOS_FILELIST';
-
-
-function AmigaFileDateToDateTime(aDate: TDateStamp; out success: boolean): TDateTime;
-var
- tmpSecs: DWord;
- tmpDate: TDateTime;
- tmpTime: TDateTime;
- clockData: TClockData;
-begin
- with aDate do
- tmpSecs:=(ds_Days * (24 * 60 * 60)) + (ds_Minute * 60) + (ds_Tick div TICKS_PER_SECOND);
-
- Amiga2Date(tmpSecs,@clockData);
-{$HINT TODO: implement msec values, if possible}
- with clockData do begin
- success:=TryEncodeDate(year,month,mday,tmpDate) and
- TryEncodeTime(hour,min,sec,0,tmpTime);
- end;
-
- result:=ComposeDateTime(tmpDate,tmpTime);
-end;
-
-function DateTimeToAmigaDateStamp(dateTime: TDateTime): TDateStamp;
-var
- tmpSecs: DWord;
- clockData: TClockData;
- tmpMSec: Word;
-begin
-{$HINT TODO: implement msec values, if possible}
- with clockData do begin
- DecodeDate(dateTime,year,month,mday);
- DecodeTime(dateTime,hour,min,sec,tmpMSec);
- end;
-
- tmpSecs:=Date2Amiga(@clockData);
-
- with result do begin
- ds_Days:= tmpSecs div (24 * 60 * 60);
- ds_Minute:= (tmpSecs div 60) mod ds_Days;
- ds_Tick:= (((tmpSecs mod 60) mod ds_Minute) mod ds_Days) * TICKS_PER_SECOND;
- end;
-end;
-
-
-{****************************************************************************
- File Functions
-****************************************************************************}
-{$I-}{ Required for correct usage of these routines }
-
-
-(****** non portable routines ******)
-
-function FileOpen(const FileName: rawbytestring; Mode: Integer): LongInt;
-var
- SystemFileName: RawByteString;
- dosResult: LongInt;
-begin
- SystemFileName:=PathConv(ToSingleByteFileSystemEncodedFileName(FileName));
- {$WARNING FIX ME! To do: FileOpen Access Modes}
- dosResult:=Open(PChar(SystemFileName),MODE_OLDFILE);
- if dosResult=0 then
- dosResult:=-1
- else
- AddToList(MOS_fileList,dosResult);
-
- FileOpen:=dosResult;
-end;
-
-
-function FileGetDate(Handle: LongInt) : LongInt;
-var
- tmpFIB : PFileInfoBlock;
- tmpDateTime: TDateTime;
- validFile: boolean;
-begin
- validFile:=false;
-
- if (Handle <> 0) then begin
- new(tmpFIB);
- if ExamineFH(Handle,tmpFIB) then begin
- tmpDateTime:=AmigaFileDateToDateTime(tmpFIB^.fib_Date,validFile);
- end;
- dispose(tmpFIB);
- end;
-
- if validFile then
- result:=DateTimeToFileDate(tmpDateTime)
- else
- result:=-1;
-end;
-
-
-function FileSetDate(Handle, Age: LongInt) : LongInt;
-var
- tmpDateStamp: TDateStamp;
- tmpName: array[0..255] of char;
-begin
- result:=0;
- if (Handle <> 0) then begin
- if (NameFromFH(Handle, @tmpName, 256) = dosTrue) then begin
- tmpDateStamp:=DateTimeToAmigaDateStamp(FileDateToDateTime(Age));
- if not SetFileDate(@tmpName,@tmpDateStamp) then begin
- IoErr(); // dump the error code for now (TODO)
- result:=-1;
- end;
- end;
- end;
-end;
-
-
-function FileSetDate(const FileName: RawByteString; Age: LongInt) : LongInt;
-var
- tmpDateStamp: TDateStamp;
- SystemFileName: RawByteString;
-begin
- result:=0;
- SystemFileName:=PathConv(ToSingleByteFileSystemEncodedFileName(FileName));
- tmpDateStamp:=DateTimeToAmigaDateStamp(FileDateToDateTime(Age));
- if not SetFileDate(PChar(SystemFileName),@tmpDateStamp) then begin
- IoErr(); // dump the error code for now (TODO)
- result:=-1;
- end;
-end;
-
-
-function FileCreate(const FileName: RawByteString) : LongInt;
-var
- SystemFileName: RawByteString;
- dosResult: LongInt;
-begin
- dosResult:=-1;
-
- { Open file in MODDE_READWRITE, then truncate it by hand rather than
- opening it in MODE_NEWFILE, because that returns an exclusive lock
- so some operations might fail with it (KB) }
- SystemFileName:=PathConv(ToSingleByteFileSystemEncodedFileName(FileName));
- dosResult:=Open(PChar(SystemFileName),MODE_READWRITE);
- if dosResult = 0 then exit;
-
- if SetFileSize(dosResult, 0, OFFSET_BEGINNING) = 0 then
- AddToList(MOS_fileList,dosResult)
- else begin
- dosClose(dosResult);
- dosResult:=-1;
- end;
-
- FileCreate:=dosResult;
-end;
-
-function FileCreate(const FileName: RawByteString; Rights: integer): LongInt;
-begin
- {$WARNING FIX ME! To do: FileCreate Access Modes}
- FileCreate:=FileCreate(FileName);
-end;
-
-function FileCreate(const FileName: RawByteString; ShareMode: integer; Rights : integer): LongInt;
-begin
- {$WARNING FIX ME! To do: FileCreate Access Modes}
- FileCreate:=FileCreate(FileName);
-end;
-
-
-function FileRead(Handle: LongInt; out Buffer; Count: LongInt): LongInt;
-begin
- FileRead:=-1;
- if (Count<=0) or (Handle<=0) then exit;
-
- FileRead:=dosRead(Handle,@Buffer,Count);
-end;
-
-
-function FileWrite(Handle: LongInt; const Buffer; Count: LongInt): LongInt;
-begin
- FileWrite:=-1;
- if (Count<=0) or (Handle<=0) then exit;
-
- FileWrite:=dosWrite(Handle,@Buffer,Count);
-end;
-
-
-function FileSeek(Handle, FOffset, Origin: LongInt) : LongInt;
-var
- seekMode: LongInt;
-begin
- FileSeek:=-1;
- if (Handle<=0) then exit;
-
- case Origin of
- fsFromBeginning: seekMode:=OFFSET_BEGINNING;
- fsFromCurrent : seekMode:=OFFSET_CURRENT;
- fsFromEnd : seekMode:=OFFSET_END;
- end;
-
- FileSeek:=dosSeek(Handle, FOffset, seekMode);
-end;
-
-function FileSeek(Handle: LongInt; FOffset: Int64; Origin: Longint): Int64;
-begin
- {$WARNING Need to add 64bit call }
- FileSeek:=FileSeek(Handle,LongInt(FOffset),LongInt(Origin));
-end;
-
-
-procedure FileClose(Handle: LongInt);
-begin
- if (Handle<=0) then exit;
-
- dosClose(Handle);
- RemoveFromList(MOS_fileList,Handle);
-end;
-
-
-function FileTruncate(Handle: THandle; Size: Int64): Boolean;
-var
- dosResult: LongInt;
-begin
- FileTruncate:=False;
-
- if Size > high (longint) then exit;
-{$WARNING Possible support for 64-bit FS to be checked!}
-
- if (Handle<=0) then exit;
-
- dosResult:=SetFileSize(Handle, Size, OFFSET_BEGINNING);
- if (dosResult<0) then exit;
-
- FileTruncate:=True;
-end;
-
-
-function DeleteFile(const FileName: RawByteString) : Boolean;
-var
- SystemFileName: RawByteString;
-begin
- SystemFileName:=PathConv(ToSingleByteFileSystemEncodedFileName(FileName));
- DeleteFile:=dosDeleteFile(PChar(SystemFileName));
-end;
-
-
-function RenameFile(const OldName, NewName: RawByteString): Boolean;
-var
- OldSystemFileName, NewSystemFileName: RawByteString;
-begin
- OldSystemFileName:=PathConv(ToSingleByteFileSystemEncodedFileName(OldName));
- NewSystemFileName:=PathConv(ToSingleByteFileSystemEncodedFileName(NewName));
- RenameFile:=dosRename(PChar(OldSystemFileName), PChar(NewSystemFileName));
-end;
-
-
-(****** end of non portable routines ******)
-
-
-function FileAge (const FileName : RawByteString): Longint;
-var
- tmpLock: Longint;
- tmpFIB : PFileInfoBlock;
- tmpDateTime: TDateTime;
- validFile: boolean;
- SystemFileName: RawByteString;
-begin
- validFile:=false;
- SystemFileName := PathConv(ToSingleByteFileSystemEncodedFileName(FileName));
- tmpLock := Lock(PChar(SystemFileName), SHARED_LOCK);
-
- if (tmpLock <> 0) then begin
- new(tmpFIB);
- if Examine(tmpLock,tmpFIB) then begin
- tmpDateTime:=AmigaFileDateToDateTime(tmpFIB^.fib_Date,validFile);
- end;
- Unlock(tmpLock);
- dispose(tmpFIB);
- end;
-
- if validFile then
- result:=DateTimeToFileDate(tmpDateTime)
- else
- result:=-1;
-end;
-
-
-function FileExists (const FileName : RawByteString) : Boolean;
-var
- tmpLock: LongInt;
- tmpFIB : PFileInfoBlock;
- SystemFileName: RawByteString;
-begin
- result:=false;
- SystemFileName := PathConv(ToSingleByteFileSystemEncodedFileName(FileName));
- tmpLock := Lock(PChar(SystemFileName), SHARED_LOCK);
-
- if (tmpLock <> 0) then begin
- new(tmpFIB);
- if Examine(tmpLock,tmpFIB) and (tmpFIB^.fib_DirEntryType <= 0) then
- result:=true;
- Unlock(tmpLock);
- dispose(tmpFIB);
- end;
-end;
-
-
-Function InternalFindFirst (Const Path : RawByteString; Attr : Longint; out Rslt : TAbstractSearchRec; var Name: RawByteString) : Longint;
-var
- tmpStr: RawByteString;
- Anchor: PAnchorPath;
- tmpDateTime: TDateTime;
- validDate: boolean;
-begin
- result:=-1; { We emulate Linux/Unix behaviour, and return -1 on errors. }
-
- tmpStr:=PathConv(ToSingleByteFileSystemEncodedFileName(Path));
-
- { $1e = faHidden or faSysFile or faVolumeID or faDirectory }
- Rslt.ExcludeAttr := (not Attr) and ($1e);
- Rslt.FindHandle := 0;
-
- new(Anchor);
- FillChar(Anchor^,sizeof(TAnchorPath),#0);
-
- if MatchFirst(pchar(tmpStr),Anchor)<>0 then exit;
- Rslt.FindHandle := longint(Anchor);
-
- with Anchor^.ap_Info do begin
- Name := fib_FileName;
- SetCodePage(Name,DefaultFileSystemCodePage,False);
-
- Rslt.Size := fib_Size;
- Rslt.Time := DateTimeToFileDate(AmigaFileDateToDateTime(fib_Date,validDate));
- if not validDate then exit;
-
- { "128" is Windows "NORMALFILE" attribute. Some buggy code depend on this... :( (KB) }
- Rslt.Attr := 128;
-
- if fib_DirEntryType > 0 then Rslt.Attr:=Rslt.Attr or faDirectory;
- if ((fib_Protection and FIBF_READ) <> 0) and
- ((fib_Protection and FIBF_WRITE) = 0) then Rslt.Attr:=Rslt.Attr or faReadOnly;
-
- result:=0; { Return zero if everything went OK }
- end;
-end;
-
-
-Function InternalFindNext (var Rslt : TAbstractSearchRec; var Name : RawByteString) : Longint;
-var
- Anchor: PAnchorPath;
- validDate: boolean;
-begin
- result:=-1;
-
- Anchor:=PAnchorPath(Rslt.FindHandle);
- if not assigned(Anchor) then exit;
- if MatchNext(Anchor) <> 0 then exit;
-
- with Anchor^.ap_Info do begin
- Name := fib_FileName;
- SetCodePage(Name,DefaultFileSystemCodePage,False);
- Rslt.Size := fib_Size;
- Rslt.Time := DateTimeToFileDate(AmigaFileDateToDateTime(fib_Date,validDate));
- if not validDate then exit;
-
- { "128" is Windows "NORMALFILE" attribute. Some buggy code depend on this... :( (KB) }
- Rslt.Attr := 128;
- if fib_DirEntryType > 0 then Rslt.Attr:=Rslt.Attr or faDirectory;
- if ((fib_Protection and FIBF_READ) <> 0) and
- ((fib_Protection and FIBF_WRITE) = 0) then Rslt.Attr:=Rslt.Attr or faReadOnly;
-
- result:=0; { Return zero if everything went OK }
- end;
-end;
-
-
-Procedure InternalFindClose(var Handle: THandle);
-var
- Anchor: PAnchorPath;
-begin
- Anchor:=PAnchorPath(Handle);
- if not assigned(Anchor) then exit;
- MatchEnd(Anchor);
- Dispose(Anchor);
- Handle:=THandle(nil);
-end;
-
-
-(****** end of non portable routines ******)
-
-Function FileGetAttr (Const FileName : RawByteString) : Longint;
-var
- F: file;
- attr: word;
-begin
- Assign(F,FileName);
- dos.GetFAttr(F,attr);
- if DosError <> 0 then
- FileGetAttr := -1
- else
- FileGetAttr := Attr;
-end;
-
-
-Function FileSetAttr (Const Filename : RawByteString; Attr: longint) : Longint;
-var
- F: file;
-begin
- Assign(F, FileName);
- Dos.SetFAttr(F, Attr and $ffff);
- FileSetAttr := DosError;
-end;
-
-
-
-{****************************************************************************
- Disk Functions
-****************************************************************************}
-
-{
- The Diskfree and Disksize functions need a file on the specified drive, since this
- is required for the statfs system call.
- These filenames are set in drivestr[0..26], and have been preset to :
- 0 - '.' (default drive - hence current dir is ok.)
- 1 - '/fd0/.' (floppy drive 1 - should be adapted to local system )
- 2 - '/fd1/.' (floppy drive 2 - should be adapted to local system )
- 3 - '/' (C: equivalent of dos is the root partition)
- 4..26 (can be set by you're own applications)
- ! Use AddDisk() to Add new drives !
- They both return -1 when a failure occurs.
-}
-Const
- FixDriveStr : array[0..3] of pchar=(
- '.',
- '/fd0/.',
- '/fd1/.',
- '/.'
- );
-var
- Drives : byte;
- DriveStr : array[4..26] of pchar;
-
-Procedure AddDisk(const path:string);
-begin
- if not (DriveStr[Drives]=nil) then
- FreeMem(DriveStr[Drives],StrLen(DriveStr[Drives])+1);
- GetMem(DriveStr[Drives],length(Path)+1);
- StrPCopy(DriveStr[Drives],path);
- inc(Drives);
- if Drives>26 then
- Drives:=4;
-end;
-
-
-
-Function DiskFree(Drive: Byte): int64;
-Begin
- DiskFree := dos.diskFree(Drive);
-End;
-
-
-Function DiskSize(Drive: Byte): int64;
-Begin
- DiskSize := dos.DiskSize(Drive);
-End;
-
-function DirectoryExists(const Directory: RawByteString): Boolean;
-var
- tmpLock: LongInt;
- FIB : PFileInfoBlock;
- SystemDirName: RawByteString;
-begin
- result:=false;
- if (Directory='') or (InOutRes<>0) then exit;
-
- SystemDirName:=PathConv(ToSingleByteFileSystemEncodedFileName(Directory));
- tmpLock:=Lock(PChar(SystemDirName),SHARED_LOCK);
- if tmpLock=0 then exit;
-
- FIB:=nil; new(FIB);
-
- if (Examine(tmpLock,FIB)=True) and (FIB^.fib_DirEntryType>0) then
- result:=True;
-
- if tmpLock<>0 then Unlock(tmpLock);
- if assigned(FIB) then dispose(FIB);
-end;
-
-
-
-{****************************************************************************
- Locale Functions
-****************************************************************************}
-
-Procedure GetLocalTime(var SystemTime: TSystemTime);
-var
- dayOfWeek: word;
-begin
- dos.GetTime(SystemTime.Hour, SystemTime.Minute, SystemTime.Second,SystemTime.Millisecond);
- dos.GetDate(SystemTime.Year, SystemTime.Month, SystemTime.Day, DayOfWeek);
-end;
-
-
-Procedure InitAnsi;
-Var
- i : longint;
-begin
- { Fill table entries 0 to 127 }
- for i := 0 to 96 do
- UpperCaseTable[i] := chr(i);
- for i := 97 to 122 do
- UpperCaseTable[i] := chr(i - 32);
- for i := 123 to 191 do
- UpperCaseTable[i] := chr(i);
- Move (CPISO88591UCT,UpperCaseTable[192],SizeOf(CPISO88591UCT));
-
- for i := 0 to 64 do
- LowerCaseTable[i] := chr(i);
- for i := 65 to 90 do
- LowerCaseTable[i] := chr(i + 32);
- for i := 91 to 191 do
- LowerCaseTable[i] := chr(i);
- Move (CPISO88591LCT,UpperCaseTable[192],SizeOf(CPISO88591UCT));
-end;
-
-
-Procedure InitInternational;
-begin
- InitInternationalGeneric;
- InitAnsi;
-end;
-
-function SysErrorMessage(ErrorCode: Integer): String;
-
-begin
-{ Result:=StrError(ErrorCode);}
-end;
-
-function GetLastOSError: Integer;
-begin
- result:=-1;
-end;
-
-{****************************************************************************
- OS utility functions
-****************************************************************************}
-
-var
- StrOfPaths: String;
-
-function GetPathString: String;
-var
- f : text;
- s : string;
- tmpBat: string;
- tmpList: string;
-begin
- s := '';
- result := '';
-
- tmpBat:='T:'+HexStr(FindTask(nil));
- tmpList:=tmpBat+'_path.tmp';
- tmpBat:=tmpBat+'_path.sh';
-
- assign(f,tmpBat);
- rewrite(f);
- writeln(f,'path >'+tmpList);
- close(f);
- exec('C:Execute',tmpBat);
- erase(f);
-
- assign(f,tmpList);
- reset(f);
- { skip the first line, garbage }
- if not eof(f) then readln(f,s);
- while not eof(f) do begin
- readln(f,s);
- if result = '' then
- result := s
- else
- result := result + ';' + s;
- end;
- close(f);
- erase(f);
-end;
-
-Function GetEnvironmentVariable(Const EnvVar : String) : String;
-begin
- if UpCase(envvar) = 'PATH' then begin
- if StrOfpaths = '' then StrOfPaths := GetPathString;
- Result:=StrOfPaths;
- end else
- Result:=Dos.Getenv(shortstring(EnvVar));
-end;
-
-Function GetEnvironmentVariableCount : Integer;
-
-begin
- // Result:=FPCCountEnvVar(EnvP);
- Result:=Dos.envCount;
-end;
-
-Function GetEnvironmentString(Index : Integer) : {$ifdef FPC_RTL_UNICODE}UnicodeString{$else}AnsiString{$endif};
-
-begin
- // Result:=FPCGetEnvStrFromP(Envp,Index);
- Result:=Dos.EnvStr(Index);
-end;
-
-function ExecuteProcess (const Path: AnsiString; const ComLine: AnsiString;Flags:TExecuteFlags=[]):
- integer;
-var
- tmpPath: AnsiString;
- convPath: AnsiString;
- CommandLine: AnsiString;
- tmpLock: longint;
-
- E: EOSError;
-begin
- DosError:= 0;
-
- convPath:=PathConv(Path);
- tmpPath:=convPath+' '+ComLine;
-
- { Here we must first check if the command we wish to execute }
- { actually exists, because this is NOT handled by the }
- { _SystemTagList call (program will abort!!) }
-
- { Try to open with shared lock }
- tmpLock:=Lock(PChar(convPath),SHARED_LOCK);
- if tmpLock<>0 then
- begin
- { File exists - therefore unlock it }
- Unlock(tmpLock);
- result:=SystemTagList(PChar(tmpPath),nil);
- { on return of -1 the shell could not be executed }
- { probably because there was not enough memory }
- if result = -1 then
- DosError:=8;
- end
- else
- DosError:=3;
-
- if DosError <> 0 then begin
- if ComLine = '' then
- CommandLine := Path
- else
- CommandLine := Path + ' ' + ComLine;
-
- E := EOSError.CreateFmt (SExecuteProcessFailed, [CommandLine, DosError]);
- E.ErrorCode := DosError;
- raise E;
- end;
-end;
-
-function ExecuteProcess (const Path: AnsiString;
- const ComLine: array of AnsiString;Flags:TExecuteFlags=[]): integer;
-var
- CommandLine: AnsiString;
- I: integer;
-
-begin
- Commandline := '';
- for I := 0 to High (ComLine) do
- if Pos (' ', ComLine [I]) <> 0 then
- CommandLine := CommandLine + ' ' + '"' + ComLine [I] + '"'
- else
- CommandLine := CommandLine + ' ' + Comline [I];
- ExecuteProcess := ExecuteProcess (Path, CommandLine);
-end;
-
-procedure Sleep (Milliseconds: cardinal);
-begin
- // Amiga/MorphOS dos.library Delay() has precision of 1/50 seconds
- Delay(Milliseconds div 20);
-end;
-
-
-{****************************************************************************
- Initialization code
-****************************************************************************}
-
-Initialization
- InitExceptions;
- InitInternational; { Initialize internationalization settings }
- OnBeep:=Nil; { No SysBeep() on MorphOS, for now. Figure out if we want
- to use intuition.library/DisplayBeep() for this (KB) }
- StrOfPaths:='';
-
-Finalization
- DoneExceptions;
-end.
diff --git a/rtl/morphos/utilf.inc b/rtl/morphos/utilf.inc
index 665038945c..6e2b047d1a 100644
--- a/rtl/morphos/utilf.inc
+++ b/rtl/morphos/utilf.inc
@@ -5,7 +5,7 @@
Copyright (c) 2002 The MorphOS Development Team, All Rights Reserved.
Free Pascal conversion
- Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
+ Copyright (c) 2004-2014 Karoly Balogh
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
@@ -58,7 +58,7 @@ procedure RefreshTagItemClones(clone : PTagItem location 'a0';
SysCall MOS_UtilityBase 084;
function TagInArray(tagValue : Cardinal location 'd0';
- var tagArray: Cardinal location 'a0'): Boolean;
+ var tagArray: Cardinal location 'a0'): LongBool;
SysCall MOS_UtilityBase 090;
function FilterTagItems(tagList : PTagItem location 'a0';
@@ -135,7 +135,7 @@ function UnpackStructureTags(pack : Pointer location 'a0';
SysCall MOS_UtilityBase 216;
function AddNamedObject(nameSpace: PNamedObject location 'a0';
- nobject : PNamedObject location 'a1'): Boolean;
+ nobject : PNamedObject location 'a1'): LongBool;
SysCall MOS_UtilityBase 222;
function AllocNamedObjectA(name : PChar location 'a0';
@@ -166,4 +166,3 @@ SysCall MOS_UtilityBase 264;
function GetUniqueID: Cardinal;
SysCall MOS_UtilityBase 270;
-
diff --git a/rtl/morphos/utility.pp b/rtl/morphos/utility.pp
deleted file mode 100644
index 9db0b0e75b..0000000000
--- a/rtl/morphos/utility.pp
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- This file is part of the Free Pascal run time library.
- Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
-
- utility.library interface unit for MorphOS/PowerPC
-
- MorphOS port was done on a free Pegasos II/G4 machine
- provided by Genesi S.a.r.l. <www.genesi.lu>
-
- 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.
-
- **********************************************************************}
-{$inline on}
-unit utility;
-
-interface
-
-uses
- exec;
-
-var
- UtilityBase: Pointer;
-
-{$include utild1.inc}
-{$include utild2.inc}
-{$include utilf.inc}
-
-function TAG_(value: pointer): longword; inline;
-function TAG_(value: pchar): longword; inline;
-
-
-implementation
-
-function TAG_(value: pointer): longword; inline;
-begin
- TAG_:=longword(value);
-end;
-
-function TAG_(value: pchar): longword; inline;
-begin
- TAG_:=longword(value);
-end;
-
-
-begin
- UtilityBase:=MOS_UtilityBase;
-end.
diff --git a/rtl/msdos/Makefile b/rtl/msdos/Makefile
index e52a2b4f00..1d3bcbe0ea 100644
--- a/rtl/msdos/Makefile
+++ b/rtl/msdos/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -411,6 +411,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=system uuchar objpas strings dos heaptrc lineinfo sysconst sysutils math macpas iso7185 rtlconst typinfo types getopts fgl classes msmouse ports charset cpall ctypes
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=system uuchar objpas strings dos heaptrc lineinfo sysconst sysutils math macpas iso7185 rtlconst typinfo types getopts fgl classes msmouse ports charset cpall ctypes
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=system uuchar objpas strings dos heaptrc lineinfo sysconst sysutils math macpas iso7185 rtlconst typinfo types getopts fgl classes msmouse ports charset cpall ctypes
endif
@@ -498,6 +501,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=system uuchar objpas strings dos heaptrc lineinfo sysconst sysutils math macpas iso7185 rtlconst typinfo types getopts fgl classes msmouse ports charset cpall ctypes
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=system uuchar objpas strings dos heaptrc lineinfo sysconst sysutils math macpas iso7185 rtlconst typinfo types getopts fgl classes msmouse ports charset cpall ctypes
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=system uuchar objpas strings dos heaptrc lineinfo sysconst sysutils math macpas iso7185 rtlconst typinfo types getopts fgl classes msmouse ports charset cpall ctypes
endif
@@ -636,6 +642,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -723,6 +732,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -861,6 +873,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=prt0s prt0t prt0m prt0c prt0l prt0h # exceptn fpu
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=prt0s prt0t prt0m prt0c prt0l prt0h # exceptn fpu
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=prt0s prt0t prt0m prt0c prt0l prt0h # exceptn fpu
endif
@@ -948,6 +963,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=prt0s prt0t prt0m prt0c prt0l prt0h # exceptn fpu
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=prt0s prt0t prt0m prt0c prt0l prt0h # exceptn fpu
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=prt0s prt0t prt0m prt0c prt0l prt0h # exceptn fpu
endif
@@ -1087,6 +1105,9 @@ 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
@@ -1174,6 +1195,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1312,6 +1336,9 @@ 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
@@ -1399,6 +1426,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1710,6 +1740,12 @@ 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=
@@ -1755,6 +1791,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2219,7 +2260,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/msdos/prt0comn.asm b/rtl/msdos/prt0comn.asm
index e88fb707d4..666b2873fb 100644
--- a/rtl/msdos/prt0comn.asm
+++ b/rtl/msdos/prt0comn.asm
@@ -203,13 +203,15 @@ skip_mem_realloc:
and bl, 0FEh
mov word [__stkbottom], bx
- cmp bx, _end wrt dgroup
+ mov ax, _end wrt dgroup
+ cmp bx, ax
jb not_enough_mem
; heap is between [ds:_end wrt dgroup] and [ds:__stkbottom - 1]
- mov word [__nearheap_start], _end wrt dgroup
- mov bx, word [__stkbottom]
- dec bx
+ add ax, 3
+ and al, 0FCh
+ mov word [__nearheap_start], ax
+ and bl, 0FCh
mov word [__nearheap_end], bx
; ****************************************************************************
@@ -231,9 +233,18 @@ skip_mem_realloc:
shr dx, cl
add ax, dx
mov word [__nearheap_start], 0
- mov word [__nearheap_end], 0FFF0h
mov word [__nearheap_start + 2], ax
- mov word [__nearheap_end + 2], ax
+
+ ; get our MCB size in paragraphs
+ mov cx, word [__fpc_PrefixSeg]
+ dec cx
+ mov es, cx
+ mov bx, word [es:3]
+ add bx, cx
+ inc bx
+ ; __nearheap_end := end_of_dos_memory_block
+ mov word [__nearheap_end], 0
+ mov word [__nearheap_end + 2], bx
%endif
%ifdef __FAR_CODE__
diff --git a/rtl/msdos/sysfile.inc b/rtl/msdos/sysfile.inc
index 4b78e71d43..7f7815f6a2 100644
--- a/rtl/msdos/sysfile.inc
+++ b/rtl/msdos/sysfile.inc
@@ -344,6 +344,7 @@ begin
{$endif RTLLITE}
if (regs.Flags and fCarry) <> 0 then
begin
+ FileRec(f).mode:=fmclosed;
GetInOutRes(regs.AX);
if oldp<>p then
freemem(p);
@@ -381,6 +382,7 @@ begin
do_seekend(filerec(f).handle);
filerec(f).mode:=fmoutput; {fool fmappend}
end;
+
if oldp<>p then
freemem(p);
end;
diff --git a/rtl/msdos/system.pp b/rtl/msdos/system.pp
index 6f76b581d1..46d3d697ad 100644
--- a/rtl/msdos/system.pp
+++ b/rtl/msdos/system.pp
@@ -14,6 +14,7 @@ interface
$mode switch is not effective }
{$I systemh.inc}
+{$I tnyheaph.inc}
const
LineEnding = #13#10;
@@ -309,10 +310,16 @@ end;
SystemUnit Initialization
*****************************************************************************}
-procedure InitNearHeap;
+procedure InitDosHeap;
+type
+{$if defined(FPC_X86_DATA_FAR) or defined(FPC_X86_DATA_HUGE)}
+ TPointerArithmeticType = HugePointer;
+{$else}
+ TPointerArithmeticType = Pointer;
+{$endif}
begin
SetMemoryManager(TinyHeapMemoryManager);
- RegisterTinyHeapBlock(__nearheap_start, ptruint(__nearheap_end) - ptruint(__nearheap_start));
+ RegisterTinyHeapBlock_Simple_Prealigned(__nearheap_start, TPointerArithmeticType(__nearheap_end) - TPointerArithmeticType(__nearheap_start));
end;
function CheckLFN:boolean;
@@ -366,7 +373,7 @@ begin
{ To be set if this is a library and not a program }
IsLibrary := FALSE;
{ Setup heap }
- InitNearHeap;
+ InitDosHeap;
SysInitExceptions;
initunicodestringmanager;
{ Setup stdin, stdout and stderr }
@@ -382,5 +389,4 @@ begin
AllFilesMask := '*.*';
{ Reset IO Error }
InOutRes:=0;
- initvariantmanager;
end.
diff --git a/rtl/msdos/sysutils.pp b/rtl/msdos/sysutils.pp
index ab821ef4a2..7cecf2248f 100644
--- a/rtl/msdos/sysutils.pp
+++ b/rtl/msdos/sysutils.pp
@@ -353,7 +353,7 @@ Var Sr : PSearchrec;
begin
//!! Sr := New(PSearchRec);
getmem(sr,sizeof(searchrec));
- Rslt.FindHandle := longint(Sr);
+ Rslt.FindHandle := Sr;
DOS.FindFirst(Path, Attr, Sr^);
result := -DosError;
if result = 0 then
@@ -388,7 +388,7 @@ begin
end;
-Procedure InternalFindClose(var Handle: THandle);
+Procedure InternalFindClose(var Handle: Pointer);
var
Sr: PSearchRec;
begin
@@ -400,7 +400,7 @@ begin
DOS.FindClose(SR^);
freemem(sr,sizeof(searchrec));
end;
- Handle := 0;
+ Handle := nil;
end;
diff --git a/rtl/nativent/Makefile b/rtl/nativent/Makefile
index 3561cacd7b..425a271618 100644
--- a/rtl/nativent/Makefile
+++ b/rtl/nativent/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -419,6 +419,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=system uuchar objpas iso7185 cpall buildrtl
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=system uuchar objpas iso7185 cpall buildrtl
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=system uuchar objpas iso7185 cpall buildrtl
endif
@@ -506,6 +509,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=system uuchar objpas iso7185 cpall buildrtl
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=system uuchar objpas iso7185 cpall buildrtl
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=system uuchar objpas iso7185 cpall buildrtl
endif
@@ -644,6 +650,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings rtlconsts sysconst sysutils math types typinfo fgl classes $(CPU_UNITS) charset getopts cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings rtlconsts sysconst sysutils math types typinfo fgl classes $(CPU_UNITS) charset getopts cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings rtlconsts sysconst sysutils math types typinfo fgl classes $(CPU_UNITS) charset getopts cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -731,6 +740,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings rtlconsts sysconst sysutils math types typinfo fgl classes $(CPU_UNITS) charset getopts cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings rtlconsts sysconst sysutils math types typinfo fgl classes $(CPU_UNITS) charset getopts cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=ndk ndkutils ddk ctypes strings rtlconsts sysconst sysutils math types typinfo fgl classes $(CPU_UNITS) charset getopts cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -869,6 +881,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -956,6 +971,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1095,6 +1113,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
endif
@@ -1182,6 +1203,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(DDKINC) $(NDKINC)
endif
@@ -1320,6 +1344,9 @@ 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
@@ -1407,6 +1434,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1718,6 +1748,12 @@ 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=
@@ -1763,6 +1799,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2227,7 +2268,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/nativent/buildrtl.pp b/rtl/nativent/buildrtl.pp
index d8f9e191ab..44da799568 100644
--- a/rtl/nativent/buildrtl.pp
+++ b/rtl/nativent/buildrtl.pp
@@ -6,7 +6,7 @@ unit buildrtl;
ndk, ndkutils, ddk,
ctypes, strings,
rtlconsts, sysconst, sysutils, math, types,
- strutils, typinfo, fgl, classes,
+ typinfo, fgl, classes,
{$ifdef cpui386}
mmx, cpu,
{$endif}
diff --git a/rtl/nativent/sysfile.inc b/rtl/nativent/sysfile.inc
index 6fbf8c8fe7..caeb8dc888 100644
--- a/rtl/nativent/sysfile.inc
+++ b/rtl/nativent/sysfile.inc
@@ -27,10 +27,17 @@ end;
procedure do_close(h : thandle);
+var
+ res: LongInt;
begin
if do_isdevice(h) then
Exit;
- NtClose(h);
+ res:=NtClose(h);
+ if res <> STATUS_SUCCESS then
+ begin
+ errno:=res;
+ Errno2InOutRes;
+ end;
end;
@@ -411,6 +418,7 @@ begin
if res < 0 then begin
errno := res;
Errno2InoutRes;
+ FileRec(f).mode:=fmclosed;
end;
if oldp<>p then
freemem(p);
diff --git a/rtl/nativent/system.pp b/rtl/nativent/system.pp
index 26977a1284..aead564f56 100644
--- a/rtl/nativent/system.pp
+++ b/rtl/nativent/system.pp
@@ -425,7 +425,6 @@ begin
InitHeap;
{$endif ndef KMODE and ndef HAS_MEMORYMANAGER}
SysInitExceptions;
- initvariantmanager;
{ we do not use winlike widestrings and also the RTL can't be compiled with
2.2, so we can savely use the UnicodeString manager only. }
initunicodestringmanager;
diff --git a/rtl/nds/Makefile b/rtl/nds/Makefile
index 08f1da4a12..ecd0d1141b 100644
--- a/rtl/nds/Makefile
+++ b/rtl/nds/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -341,229 +341,466 @@ endif
OBJPASDIR=$(RTL)/objpas
GRAPHDIR=$(INC)/graph
ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i386-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),arm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),mips-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),mipsel-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),jvm-java)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),jvm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl implicitunits=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings sysutils classes math typinfo ctypes charset cpall getopts 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 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-go32v2)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-win32)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-os2)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-freebsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-beos)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-haiku)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-netbsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-solaris)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-qnx)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-netware)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-openbsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-wdosx)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-darwin)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-emx)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-watcom)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-netwlibc)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-wince)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-symbian)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-nativent)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-iphonesim)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-android)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),m68k-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),m68k-freebsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),m68k-netbsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),m68k-amiga)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),m68k-atari)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),m68k-openbsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),m68k-palmos)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),m68k-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-netbsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-amiga)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-macos)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-darwin)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-morphos)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-wii)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc-aix)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),sparc-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),sparc-netbsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),sparc-solaris)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),sparc-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-freebsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-netbsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-solaris)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-openbsd)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-darwin)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-win64)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-palmos)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-darwin)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-wince)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-gba)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-nds)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-symbian)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),arm-android)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc64-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc64-darwin)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc64-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),powerpc64-aix)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),avr-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),armeb-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),armeb-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),mips-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),mipsel-linux)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),mipsel-android)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),jvm-java)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),jvm-android)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
+ifeq ($(FULL_TARGET),i8086-msdos)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=prt07 prt09 cprt07 cprt09
@@ -634,6 +871,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=prt07 prt09 cprt07 cprt09
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=prt07 prt09 cprt07 cprt09
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=prt07 prt09 cprt07 cprt09
endif
@@ -721,6 +961,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=prt07 prt09 cprt07 cprt09
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=prt07 prt09 cprt07 cprt09
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=prt07 prt09 cprt07 cprt09
endif
@@ -860,6 +1103,9 @@ 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
@@ -947,6 +1193,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1085,6 +1334,9 @@ 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
@@ -1172,6 +1424,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1483,6 +1738,12 @@ 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=
@@ -1528,6 +1789,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1992,7 +2258,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/nds/Makefile.fpc b/rtl/nds/Makefile.fpc
index 88dc62b539..5f891a032a 100644
--- a/rtl/nds/Makefile.fpc
+++ b/rtl/nds/Makefile.fpc
@@ -12,7 +12,7 @@ units=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings \
sysutils \
classes math typinfo ctypes \
charset cpall getopts \
- types rtlconsts sysconst lineinfo fgl \
+ types rtlconsts sysconst lineinfo fgl
# exec timer doslib utility hardware inputevent graphics layers \
# these can be moved to packages later
# clipboard datatypes asl ahi tinygl get9 muihelper \
diff --git a/rtl/nds/sysfile.inc b/rtl/nds/sysfile.inc
index f265b5d293..2b79599227 100644
--- a/rtl/nds/sysfile.inc
+++ b/rtl/nds/sysfile.inc
@@ -97,7 +97,7 @@ begin
if res <> 0 then
SetFileError(res)
else
- InOutRes := 0;
+ InOutRes := 0;
end;
procedure do_rename(p1, p2: pchar; p1changeable, p2changeable: boolean);
@@ -109,7 +109,7 @@ begin
if res <> 0 then
SetFileError(res)
else
- InOutRes := 0;
+ InOutRes := 0;
end;
function do_write(h: THandle; addr: pointer; len: longint) : longint;
@@ -122,7 +122,7 @@ begin
InOutRes := 0
else
SetFileError(res);
- do_write := res;
+ do_write := res;
end;
function do_read(h: THandle; addr: pointer; len: longint) : longint;
@@ -143,14 +143,14 @@ var
res: longint;
begin
InOutRes := 0;
-
+
//result := ftell(P_FILE(handle));
res := _tell(handle);
if res < 0 then
SetFileError(res)
else
InOutRes := 0;
- do_filepos := res;
+ do_filepos := res;
end;
procedure do_seek(handle: THandle; pos: longint);
@@ -175,7 +175,7 @@ begin
SetFileError(res)
else
InOutRes := 0;
- do_seekend := res;
+ do_seekend := res;
end;
function do_filesize(handle: THandle): longint;
@@ -206,7 +206,7 @@ begin
if res <> 0 then
SetFileError(res)
else
- InOutRes := 0;
+ InOutRes := 0;
end;
procedure do_open(var f;p:pchar;flags:longint; pchangeable: boolean);
@@ -284,7 +284,10 @@ begin
FileRec(f).Handle := _open(p,oflags,438);
end;
if (errno^ <> 0) or (longint(FileRec(f).Handle) < 0) then
- Errno2Inoutres
+ begin
+ Errno2Inoutres;
+ FileRec(f).mode:=fmclosed;
+ end
else
InOutRes := 0;
end;
diff --git a/rtl/nds/system.pp b/rtl/nds/system.pp
index dfecec99fc..7a35e6b143 100644
--- a/rtl/nds/system.pp
+++ b/rtl/nds/system.pp
@@ -18,13 +18,14 @@ unit System;
interface
{$define FPC_IS_SYSTEM}
-{$define HAS_CMDLINE}
-{$define FPC_HAS_FEATURE_THREADING}
+{$define HAS_CMDLINE}
{$define FPC_HAS_FEATURE_CONSOLEIO}
{$define FPC_HAS_FEATURE_COMMANDARGS}
{$define FPC_HAS_FEATURE_TEXTIO}
{$define FPC_HAS_FEATURE_FILEIO}
+{$define FPC_HAS_FEATURE_THREADING}
+
{$i systemh.inc}
{$i ndsbiosh.inc}
{$i ndsh.inc}
@@ -295,5 +296,4 @@ begin
{ threading }
InitSystemThreads;
{$endif FPC_HAS_FEATURE_THREADING}
- initvariantmanager;
end.
diff --git a/rtl/nds/sysutils.pp b/rtl/nds/sysutils.pp
index b2bb633204..0089090afd 100644
--- a/rtl/nds/sysutils.pp
+++ b/rtl/nds/sysutils.pp
@@ -28,7 +28,8 @@ interface
{$MODESWITCH OUT}
{ force ansistrings }
{$H+}
-
+{$DEFINE HAS_OSERROR}
+{$DEFINE HAS_SLEEP}
{ used OS file system APIs use ansistring }
{$define SYSUTILS_HAS_ANSISTR_FILEUTIL_IMPL}
{ OS has an ansistring/single byte environment variable API }
@@ -259,7 +260,24 @@ Procedure SysBeep;
begin
end;
-
+Procedure Sleep(Milliseconds : Cardinal);
+var
+ i,j : Cardinal;
+ calib : Cardinal;
+begin
+{ $warning no idea if this calibration value is correct (FK) }
+{ I estimated it roughly on the CPU clock of 16 MHz and 1+3 clock cycles for the loop }
+{
+ calib:=4000000;
+ for i:=1 to Milliseconds do
+ asm
+ ldr r0,calib
+ .L1:
+ sub r0,r0,#1
+ bne .L1
+ end;
+ }
+end;
{****************************************************************************
Locale Functions
****************************************************************************}
@@ -305,7 +323,10 @@ begin
result := -1;
end;
-
+function GetLastOSError: Integer;
+begin
+ Result := -1;
+end;
{****************************************************************************
Initialization code
****************************************************************************}
diff --git a/rtl/netbsd/Makefile b/rtl/netbsd/Makefile
index 02deef73b5..9ce3344105 100644
--- a/rtl/netbsd/Makefile
+++ b/rtl/netbsd/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -424,6 +424,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types 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-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd sysconst cthreads dos cwstring fpintres unixcp fpwidestring
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd sysconst cthreads dos cwstring fpintres unixcp fpwidestring
endif
@@ -511,6 +514,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd sysconst cthreads dos cwstring fpintres unixcp fpwidestring
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd sysconst cthreads dos cwstring fpintres unixcp fpwidestring
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes objpas macpas iso7185 strings syscall sysctl baseunix unixutil character unix rtlconsts initc cmem dl termio sysutils math typinfo types classes fgl dynlibs $(CPU_UNITS) charset cpall getopts heaptrc lnfodwrf lineinfo errors bsd sysconst cthreads dos cwstring fpintres unixcp fpwidestring
endif
@@ -649,6 +655,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -736,6 +745,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -874,6 +886,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=prt0 cprt0 dllprt0
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=prt0 cprt0 dllprt0
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=prt0 cprt0 dllprt0
endif
@@ -961,6 +976,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=prt0 cprt0 dllprt0
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=prt0 cprt0 dllprt0
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=prt0 cprt0 dllprt0
endif
@@ -1099,6 +1117,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1186,6 +1207,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1325,6 +1349,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
endif
@@ -1412,6 +1439,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
endif
@@ -1550,6 +1580,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
endif
@@ -1637,6 +1670,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
endif
@@ -1948,6 +1984,12 @@ 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=
@@ -1993,6 +2035,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2457,7 +2504,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/netbsd/pmutext.inc b/rtl/netbsd/pmutext.inc
index ce7f13ce2a..4d8803ca8f 100644
--- a/rtl/netbsd/pmutext.inc
+++ b/rtl/netbsd/pmutext.inc
@@ -35,6 +35,9 @@ struct __pthread_mutex_st {
{$ifdef I386}
{$define __CPU_SIMPLE_LOCK_PAD}
{$endif}
+{$ifdef X86_64}
+ {$define __CPU_SIMPLE_LOCK_PAD}
+{$endif}
record
ptm_magic : dword { should be cuint};
ptm_errorcheck : char { should be pthread_spin_t};
diff --git a/rtl/netbsd/pthread.inc b/rtl/netbsd/pthread.inc
index 6ef25fb863..1aaa42f1f9 100644
--- a/rtl/netbsd/pthread.inc
+++ b/rtl/netbsd/pthread.inc
@@ -19,7 +19,9 @@
**********************************************************************}
-CONST PTHREAD_EXPLICIT_SCHED = 1;
+CONST
+ PTHREAD_INHERIT_SCHED = 0;
+ PTHREAD_EXPLICIT_SCHED = 1;
PTHREAD_CREATE_DETACHED = 1;
PTHREAD_SCOPE_PROCESS = 0;
SEM_FAILED = 0;
diff --git a/rtl/netbsd/ptypes.inc b/rtl/netbsd/ptypes.inc
index c3e61934a5..a1a116dc0d 100644
--- a/rtl/netbsd/ptypes.inc
+++ b/rtl/netbsd/ptypes.inc
@@ -171,7 +171,11 @@ struct statfs12 {
pmbstate_t = ^mbstate_t;
pthread_t = pointer;
- pthread_attr_t = pointer;
+ pthread_attr_t = record
+ pta_magic : cuint;
+ pta_flags : cint;
+ pta_private : pointer;
+ end;
pthread_mutex_t = {$i pmutext.inc}
pthread_mutexattr_t = record
ptma_magic : cint;
diff --git a/rtl/netware/Makefile b/rtl/netware/Makefile
index a4144a6c3c..a0b500ef0e 100644
--- a/rtl/netware/Makefile
+++ b/rtl/netware/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -417,6 +417,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings lineinfo lnfodwrf heaptrc dos sysconst initc sysutils types typinfo fgl classes cpu mmx getopts charset cpall rtlconsts math cmem dynlibs aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings lineinfo lnfodwrf heaptrc dos sysconst initc sysutils types typinfo fgl classes cpu mmx getopts charset cpall rtlconsts math cmem dynlibs aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings lineinfo lnfodwrf heaptrc dos sysconst initc sysutils types typinfo fgl classes cpu mmx getopts charset cpall rtlconsts math cmem dynlibs aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
endif
@@ -504,6 +507,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings lineinfo lnfodwrf heaptrc dos sysconst initc sysutils types typinfo fgl classes cpu mmx getopts charset cpall rtlconsts math cmem dynlibs aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings lineinfo lnfodwrf heaptrc dos sysconst initc sysutils types typinfo fgl classes cpu mmx getopts charset cpall rtlconsts math cmem dynlibs aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings lineinfo lnfodwrf heaptrc dos sysconst initc sysutils types typinfo fgl classes cpu mmx getopts charset cpall rtlconsts math cmem dynlibs aio nwsnut nwserv nwnit nwprot netware nwcalls ctypes nwpre
endif
@@ -642,6 +648,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -729,6 +738,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -867,6 +879,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=nwpre prelude
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=nwpre prelude
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=nwpre prelude
endif
@@ -954,6 +969,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=nwpre prelude
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=nwpre prelude
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=nwpre prelude
endif
@@ -1092,6 +1110,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
endif
@@ -1179,6 +1200,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts
endif
@@ -1318,6 +1342,9 @@ 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
@@ -1405,6 +1432,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1543,6 +1573,9 @@ 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
@@ -1630,6 +1663,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1941,6 +1977,12 @@ 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=
@@ -1986,6 +2028,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2450,7 +2497,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/netware/sysfile.inc b/rtl/netware/sysfile.inc
index 8c85d29c5b..ad7a723470 100644
--- a/rtl/netware/sysfile.inc
+++ b/rtl/netware/sysfile.inc
@@ -264,7 +264,10 @@ Begin
FileRec(f).Handle := _open(p,oflags,438);
end;
IF FileRec(f).Handle < 0 THEN
- Errno2Inoutres
+ begin
+ Errno2Inoutres;
+ FileRec(f).mode:=fmclosed;
+ end
ELSE
InOutRes := 0;
End;
diff --git a/rtl/netware/system.pp b/rtl/netware/system.pp
index 698edaf85d..2fced0cceb 100644
--- a/rtl/netware/system.pp
+++ b/rtl/netware/system.pp
@@ -477,5 +477,4 @@ Begin
IsConsole := TRUE;
ExitCode := 0;
InitSystemThreads;
- initvariantmanager;
End.
diff --git a/rtl/netwlibc/Makefile b/rtl/netwlibc/Makefile
index 842c7e499a..d663659268 100644
--- a/rtl/netwlibc/Makefile
+++ b/rtl/netwlibc/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -410,6 +410,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings lineinfo lnfodwrf heaptrc nwsnut libc dos sysconst initc sysutils types typinfo fgl classes cpu mmx getopts charset cpall rtlconsts math dynlibs cmem ctypes
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings lineinfo lnfodwrf heaptrc nwsnut libc dos sysconst initc sysutils types typinfo fgl classes cpu mmx getopts charset cpall rtlconsts math dynlibs cmem ctypes
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings lineinfo lnfodwrf heaptrc nwsnut libc dos sysconst initc sysutils types typinfo fgl classes cpu mmx getopts charset cpall rtlconsts math dynlibs cmem ctypes
endif
@@ -497,6 +500,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings lineinfo lnfodwrf heaptrc nwsnut libc dos sysconst initc sysutils types typinfo fgl classes cpu mmx getopts charset cpall rtlconsts math dynlibs cmem ctypes
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings lineinfo lnfodwrf heaptrc nwsnut libc dos sysconst initc sysutils types typinfo fgl classes cpu mmx getopts charset cpall rtlconsts math dynlibs cmem ctypes
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings lineinfo lnfodwrf heaptrc nwsnut libc dos sysconst initc sysutils types typinfo fgl classes cpu mmx getopts charset cpall rtlconsts math dynlibs cmem ctypes
endif
@@ -635,6 +641,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -722,6 +731,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -860,6 +872,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
endif
@@ -947,6 +962,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=nwplibc nwl_main nwl_dlle
endif
@@ -1085,6 +1103,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts system
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconsts system
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts system
endif
@@ -1172,6 +1193,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts system
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconsts system
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo classes sysconst rtlconsts system
endif
@@ -1311,6 +1335,9 @@ 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
@@ -1398,6 +1425,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1536,6 +1566,9 @@ 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
@@ -1623,6 +1656,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1934,6 +1970,12 @@ 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=
@@ -1979,6 +2021,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2443,7 +2490,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/netwlibc/sysfile.inc b/rtl/netwlibc/sysfile.inc
index 9a5c94280b..2ca75b1390 100644
--- a/rtl/netwlibc/sysfile.inc
+++ b/rtl/netwlibc/sysfile.inc
@@ -296,7 +296,10 @@ Begin
FileRec(f).Handle := open(p,oflags,438);
end;
if (___errno^ <> 0) or (longint(FileRec(f).Handle) < 0) then
- Errno2Inoutres
+ begin
+ Errno2Inoutres;
+ FileRec(f).mode:=fmclosed;
+ end
else
InOutRes := 0;
end;
@@ -382,7 +385,10 @@ Begin
FileRec(f).Handle := _open(p,oflags,438);
end;}
if FileRec(f).Handle = 0 then
- Errno2Inoutres
+ begin
+ Errno2Inoutres;
+ FileRec(f).mode:=fmclosed;
+ end
else
InOutRes := 0;
End;
diff --git a/rtl/netwlibc/system.pp b/rtl/netwlibc/system.pp
index 2532669c33..be6de57e06 100644
--- a/rtl/netwlibc/system.pp
+++ b/rtl/netwlibc/system.pp
@@ -552,5 +552,4 @@ Begin
IsConsole := TRUE;
ExitCode := 0;
InitSystemThreads;
- initvariantmanager;
End.
diff --git a/rtl/objpas/classes/classesh.inc b/rtl/objpas/classes/classesh.inc
index 60669bb9fb..adb906bca7 100644
--- a/rtl/objpas/classes/classesh.inc
+++ b/rtl/objpas/classes/classesh.inc
@@ -623,6 +623,9 @@ type
procedure SetNameValueSeparator(c:Char);
procedure WriteData(Writer: TWriter);
procedure DoSetTextStr(const Value: string; DoClear : Boolean);
+ Function GetDelimiter : Char;
+ Function GetNameValueSeparator : Char;
+ Function GetQuoteChar: Char;
protected
procedure DefineProperties(Filer: TFiler); override;
procedure Error(const Msg: string; Data: Integer);
@@ -677,11 +680,11 @@ type
procedure GetNameValue(Index : Integer; Out AName,AValue : String);
function ExtractName(Const S:String):String;
Property TextLineBreakStyle : TTextLineBreakStyle Read GetLBS Write SetLBS;
- property Delimiter: Char read FDelimiter write SetDelimiter;
+ property Delimiter: Char read GetDelimiter write SetDelimiter;
property DelimitedText: string read GetDelimitedText write SetDelimitedText;
Property StrictDelimiter : Boolean Read FStrictDelimiter Write FStrictDelimiter;
- property QuoteChar: Char read FQuoteChar write SetQuoteChar;
- Property NameValueSeparator : Char Read FNameValueSeparator Write SetNameValueSeparator;
+ property QuoteChar: Char read GetQuoteChar write SetQuoteChar;
+ Property NameValueSeparator : Char Read GetNameValueSeparator Write SetNameValueSeparator;
property ValueFromIndex[Index: Integer]: string read GetValueFromIndex write SetValueFromIndex;
property Capacity: Integer read GetCapacity write SetCapacity;
property CommaText: string read GetCommaText write SetCommaText;
@@ -1606,9 +1609,8 @@ type
{$ifdef Unix}
private
// see tthread.inc, ThreadFunc and TThread.Resume
- FSem: Pointer;
+ FSuspendEvent: PRTLEvent;
FInitialSuspended: boolean;
- FSuspendedExternal: boolean;
FSuspendedInternal: longbool;
FThreadReaped: boolean;
{$endif}
@@ -1620,6 +1622,13 @@ type
FSuspendedExternal: boolean;
FPid: LongInt;
{$endif}
+{$ifdef aros}
+ private
+ // see tthread.inc, ThreadFunc and TThread.Resume
+ FSem: Pointer;
+ FCond: Pointer;
+ FInitialSuspended: boolean;
+{$endif}
public
constructor Create(CreateSuspended: Boolean;
const StackSize: SizeUInt = DefaultStackSize);
diff --git a/rtl/objpas/classes/streams.inc b/rtl/objpas/classes/streams.inc
index 63e5895aee..e6594d6e00 100644
--- a/rtl/objpas/classes/streams.inc
+++ b/rtl/objpas/classes/streams.inc
@@ -184,15 +184,31 @@ end;
procedure TStream.ReadBuffer(var Buffer; Count: Longint);
- begin
- if Read(Buffer,Count)<Count then
- Raise EReadError.Create(SReadError);
- end;
+ Var
+ r,t : longint;
+
+ begin
+ t:=0;
+ repeat
+ r:=Read(PByte(@Buffer)[t],Count);
+ inc(t,r);
+ until (t=Count) or (r=0);
+ if (t<Count) then
+ Raise EReadError.Create(SReadError);
+ end;
procedure TStream.WriteBuffer(const Buffer; Count: Longint);
+ var
+ r,t : Longint;
+
begin
- if Write(Buffer,Count)<Count then
+ T:=0;
+ Repeat
+ r:=Write(PByte(@Buffer)[t],Count);
+ inc(t,r);
+ Until (t=count) or (r=0);
+ if (t<Count) then
Raise EWriteError.Create(SWriteError);
end;
diff --git a/rtl/objpas/classes/stringl.inc b/rtl/objpas/classes/stringl.inc
index afc84f49a7..7f274c7702 100644
--- a/rtl/objpas/classes/stringl.inc
+++ b/rtl/objpas/classes/stringl.inc
@@ -74,8 +74,8 @@ begin
FQuoteChar:='"';
FDelimiter:=',';
FNameValueSeparator:='=';
- FSpecialCharsInited:=true;
FLBS:=DefaultTextLineBreakStyle;
+ FSpecialCharsInited:=true;
end;
end;
@@ -97,6 +97,12 @@ begin
FDelimiter:=c;
end;
+Function TStrings.GetDelimiter : Char;
+begin
+ CheckSpecialChars;
+ Result:=FDelimiter;
+end;
+
procedure TStrings.SetQuoteChar(c:Char);
begin
@@ -104,12 +110,24 @@ begin
FQuoteChar:=c;
end;
+Function TStrings.GetQuoteChar :Char;
+begin
+ CheckSpecialChars;
+ Result:=FQuoteChar;
+end;
+
procedure TStrings.SetNameValueSeparator(c:Char);
begin
CheckSpecialChars;
FNameValueSeparator:=c;
end;
+Function TStrings.GetNameValueSeparator :Char;
+begin
+ CheckSpecialChars;
+ Result:=FNameValueSeparator;
+end;
+
function TStrings.GetCommaText: string;
diff --git a/rtl/objpas/sysutils/dati.inc b/rtl/objpas/sysutils/dati.inc
index 25a8b69567..ef187dfb14 100644
--- a/rtl/objpas/sysutils/dati.inc
+++ b/rtl/objpas/sysutils/dati.inc
@@ -1380,24 +1380,12 @@ end;
function TryStrToDateTime(const S: ShortString; out Value: TDateTime): Boolean;
begin
- result:=true;
- try
- value:=StrToDateTime(s);
- except
- on EConvertError do
- result:=false
- end;
+ result := TryStrToDateTime(S, Value, DefaultFormatSettings);
end;
function TryStrToDateTime(const S: AnsiString; out Value: TDateTime): Boolean;
begin
- result:=true;
- try
- value:=StrToDateTime(s);
- except
- on EConvertError do
- result:=false
- end;
+ result := TryStrToDateTime(S, Value, DefaultFormatSettings);
end;
function TryStrToDateTime(const S: string; out Value: TDateTime; const FormatSettings: TFormatSettings): Boolean;
diff --git a/rtl/objpas/sysutils/filutil.inc b/rtl/objpas/sysutils/filutil.inc
index d9e2607abd..fe3c5522c8 100644
--- a/rtl/objpas/sysutils/filutil.inc
+++ b/rtl/objpas/sysutils/filutil.inc
@@ -433,11 +433,9 @@ type
indication enough that you should not touch it }
Name_do_not_touch : RawByteString;
ExcludeAttr : Longint;
+ FindHandle : {$ifdef FINDHANDLE_IS_POINTER}Pointer{$else}THandle{$endif};
{$ifdef unix}
- FindHandle : Pointer;
Mode : TMode;
- {$else unix}
- FindHandle : THandle;
{$endif unix}
{$ifdef USEFINDDATA}
FindData : TFindData;
@@ -455,7 +453,7 @@ Function InternalFindFirst (Const Path : UnicodeString; Attr : Longint; out Rslt
Function InternalFindNext (var Rslt : TAbstractSearchRec; var Name : UnicodeString) : Longint; forward;
{$endif SYSUTILS_HAS_UNICODESTR_FILEUTIL_IMPL}
-procedure InternalFindClose(var Handle: {$ifdef unix}Pointer{$else}THandle{$endif}{$ifdef USEFINDDATA};var FindData: TFindData{$endif}); forward;
+procedure InternalFindClose(var Handle: {$ifdef FINDHANDLE_IS_POINTER}Pointer{$else}THandle{$endif}{$ifdef USEFINDDATA};var FindData: TFindData{$endif}); forward;
{$ifndef SYSUTILS_HAS_ANSISTR_FILEUTIL_IMPL}
diff --git a/rtl/objpas/sysutils/filutilh.inc b/rtl/objpas/sysutils/filutilh.inc
index c6453be400..5d57f0799a 100644
--- a/rtl/objpas/sysutils/filutilh.inc
+++ b/rtl/objpas/sysutils/filutilh.inc
@@ -16,6 +16,11 @@
Type
+ // Some operating systems need FindHandle to be a Pointer
+{$if defined(unix) or defined(msdos)}
+ {$define FINDHANDLE_IS_POINTER}
+{$endif}
+
// Some operating systems need extra find data.
{$if defined(Win32) or defined(WinCE) or defined(Win64)}
{$define USEFINDDATA}
@@ -45,11 +50,9 @@ Type
Attr : Longint;
Name : UnicodeString;
ExcludeAttr : Longint;
+ FindHandle : {$ifdef FINDHANDLE_IS_POINTER}Pointer{$else}THandle{$endif};
{$ifdef unix}
- FindHandle : Pointer;
Mode : TMode;
-{$else unix}
- FindHandle : THandle;
{$endif unix}
{$ifdef USEFINDDATA}
FindData : TFindData;
@@ -62,11 +65,9 @@ Type
Attr : Longint;
Name : RawByteString;
ExcludeAttr : Longint;
+ FindHandle : {$ifdef FINDHANDLE_IS_POINTER}Pointer{$else}THandle{$endif};
{$ifdef unix}
- FindHandle : Pointer;
Mode : TMode;
-{$else unix}
- FindHandle : THandle;
{$endif unix}
{$IFDEF USEFINDDATA}
FindData : TFindData;
diff --git a/rtl/objpas/sysutils/fina.inc b/rtl/objpas/sysutils/fina.inc
index b42e9cdf81..02d1b92e55 100644
--- a/rtl/objpas/sysutils/fina.inc
+++ b/rtl/objpas/sysutils/fina.inc
@@ -74,7 +74,7 @@ begin
l:=Length(FileName);
if (l<2) then
exit;
-{$IF DEFINED(AMIGA) OR DEFINED(MORPHOS)}
+{$IFDEF HASAMIGA}
i:=Pos(DriveSeparator,FileName);
if (i > 0) then Result:=Copy(FileName,1,i);
{$ELSE}
@@ -402,7 +402,11 @@ begin
Result:=-1;
While I<=Length(DirName) do
begin
- If CharInSet(DirName[i],AllowDirectorySeparators) and
+ If (CharInSet(DirName[i],AllowDirectorySeparators)
+ {$ifdef HASAMIGA}
+ or (DirName[i] = DriveSeparator)
+ {$endif}
+ ) and
{ avoid error in case last char=pathdelim }
(length(dirname)>i) then
begin
@@ -424,6 +428,9 @@ begin
Result:=Path;
l:=Length(Result);
If (L=0) or not CharInSet(Result[l],AllowDirectorySeparators) then
+{$ifdef HASAMIGA}
+ If (L>0) and (Result[l] <> DriveSeparator) then
+{$endif}
{$ifdef SYSUTILSUNICODE}
Result:=Result+DirectorySeparator;
{$else SYSUTILSUNICODE}
diff --git a/rtl/objpas/sysutils/sysstr.inc b/rtl/objpas/sysutils/sysstr.inc
index 4f183440ef..b75f88467f 100644
--- a/rtl/objpas/sysutils/sysstr.inc
+++ b/rtl/objpas/sysutils/sysstr.inc
@@ -1327,10 +1327,14 @@ Begin
{ Delete leading spaces }
while Result[1] = ' ' do
System.Delete(Result, 1, 1);
- if Result[1] = '-' then
+
+ if (Result[1]='-') and
+ { not Nan etc.? }
+ (Result[3]='.') then
Result[3] := DS
- else
+ else if Result[2]='.' then
Result[2] := DS;
+
P:=Pos('E',Result);
if P <> 0 then
begin
@@ -1905,6 +1909,7 @@ Var
UnexpectedDigits: Integer; { Number Of unexpected Digits that }
{ have To be inserted before the }
{ First placeholder. }
+ UnexpectedDigitsStart: Integer; { Location in Digits where first unexpected Digit is located }
DigitExponent: Integer; { Exponent Of First digit In }
{ Digits Array. }
@@ -2242,8 +2247,12 @@ Var
Insert('e',Exponent,1);
End;
DigitExponent:=DecimalPoint-2;
- If (Digits[1]='-') Then
+ I:=1;
+ While (I<=Length(Digits)) and (Digits[i] in [' ','-']) do
+ begin
Dec(DigitExponent);
+ Inc(i);
+ end;
UnexpectedDigits:=DecimalPoint-1-(Placehold[1]+Placehold[2]);
End;
@@ -2262,7 +2271,7 @@ Var
Dig := 1;
While (Fmt<FmtStop) Do
Begin
- //Write(Fmt[0]);
+// WriteLn('Treating : "',Fmt[0],'"');
Case Fmt[0] Of
#34:
Begin
@@ -2292,9 +2301,9 @@ Var
Buf[0] := Digits[N];
Inc(Buf);
end;
- If thousand And (Digits[N]<>'-') Then
+ If thousand And (Not (Digits[N] in [' ','-'])) Then
Begin
- If (DigitExponent Mod 3 = 0) And (DigitExponent>0) and (N > 1) Then
+ If (DigitExponent Mod 3 = 0) And (DigitExponent>0) Then
Begin
Buf[0] := FormatSettings.ThousandSeparator;
Inc(Buf);
@@ -2317,8 +2326,9 @@ Var
Inc(Buf);
End;
End;
+ if Digits[Dig]<>'-' then
+ Dec(DigitExponent);
Inc(Dig);
- Dec(DigitExponent);
Inc(Fmt);
End;
'e', 'E':
diff --git a/rtl/objpas/sysutils/sysutils.inc b/rtl/objpas/sysutils/sysutils.inc
index 12067f969c..68aaddb55a 100644
--- a/rtl/objpas/sysutils/sysutils.inc
+++ b/rtl/objpas/sysutils/sysutils.inc
@@ -294,8 +294,10 @@ begin
Writeln(hstdout^,'An unhandled exception occurred at $',HexStr(Addr),':');
if Obj is exception then
Writeln(hstdout^,Obj.ClassName,': ',Exception(Obj).Message)
+ else if Obj is TObject then
+ Writeln(hstdout^,'Exception object ',Obj.ClassName,' is not of class Exception.')
else
- Writeln(hstdout^,'Exception object ',Obj.ClassName,' is not of class Exception.');
+ Writeln(hstdout^,'Exception object is not ia valid class.');
Writeln(hstdout^,BackTraceStrFunc(Addr));
if (FrameCount>0) then
begin
diff --git a/rtl/objpas/types.pp b/rtl/objpas/types.pp
index 27cfb28e31..495d9f8db3 100644
--- a/rtl/objpas/types.pp
+++ b/rtl/objpas/types.pp
@@ -21,14 +21,10 @@ unit types;
Windows;
{$endif Windows}
- {$ifdef wince}
- //roozbeh:the reason is currently RT_RCDATA is defines in windows for wince as constant,
- // but in win32 it is function so here is required to redeclared.
- //RT_RCDATA = PWideChar(10);
- {$else}
- const
- RT_RCDATA = PChar(10);
- {$endif}
+{$ifdef mswindows}
+const
+ RT_RCDATA = Windows.RT_RCDATA deprecated 'Use Windows.RT_RCDATA instead';
+{$endif mswindows}
type
DWORD = LongWord;
diff --git a/rtl/objpas/unicodedata.pas b/rtl/objpas/unicodedata.pas
index 4f9b907815..9827d3a714 100644
--- a/rtl/objpas/unicodedata.pas
+++ b/rtl/objpas/unicodedata.pas
@@ -207,7 +207,12 @@ type
{ TUC_Prop }
- TUC_Prop = packed record
+ { On alignment-sensitive targets, at least some of them, assembler uses to forcibly align data >1 byte.
+ This breaks intended layout of initialized constants/variables.
+ A proper solution is to patch compiler to emit always unaligned directives for words/dwords/etc,
+ but for now just declare this record as "unpacked". This causes bloat, but it's better than having
+ entire unit not working at all. }
+ TUC_Prop = {$ifndef FPC_REQUIRES_PROPER_ALIGNMENT}packed{$endif} record
private
function GetCategory : Byte;inline;
procedure SetCategory(AValue : Byte);
@@ -322,7 +327,7 @@ type
TCollationName = string[128];
PUCA_DataBook = ^TUCA_DataBook;
- TUCA_DataBook = packed record
+ TUCA_DataBook = record
public
Base : PUCA_DataBook;
Version : TCollationName;
diff --git a/rtl/openbsd/Makefile b/rtl/openbsd/Makefile
index 3dd677e043..a3060400d0 100644
--- a/rtl/openbsd/Makefile
+++ b/rtl/openbsd/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -361,229 +361,235 @@ ifndef USELIBGGI
USELIBGGI=NO
endif
ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-go32v2)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-win32)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-os2)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-beos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-haiku)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-qnx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-netware)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-wdosx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-emx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-watcom)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-netwlibc)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-nativent)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-iphonesim)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),m68k-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),m68k-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),m68k-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),m68k-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),m68k-atari)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),m68k-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),m68k-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),m68k-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),powerpc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),powerpc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),powerpc-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),powerpc-macos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),powerpc-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),powerpc-morphos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),powerpc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),powerpc-wii)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),powerpc-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),sparc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),sparc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),sparc-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),sparc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),x86_64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),x86_64-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),x86_64-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),x86_64-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),x86_64-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),x86_64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),x86_64-win64)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),x86_64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),arm-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),arm-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),arm-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),arm-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),arm-gba)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),arm-nds)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),arm-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),arm-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),arm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),powerpc64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),powerpc64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),powerpc64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),powerpc64-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),avr-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),armeb-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),armeb-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),mips-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),mipsel-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),mipsel-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),mipsel-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),jvm-java)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),jvm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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),i8086-msdos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils fgl classes typinfo math charset cpall character getopts heaptrc lineinfo lnfodwrf errors types sysctl sysconst fpintres dynlibs cwstring cmem dl termio cthreads unixcp
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix $(LINUXUNIT) unixtype unixutil unix ctypes bsd initc $(CPU_UNITS) dos rtlconsts sysutils 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 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
@@ -654,6 +660,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -741,6 +750,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -879,6 +891,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=prt0 cprt0 dllprt0
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=prt0 cprt0 dllprt0
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=prt0 cprt0 dllprt0
endif
@@ -966,6 +981,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=prt0 cprt0 dllprt0
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=prt0 cprt0 dllprt0
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=prt0 cprt0 dllprt0
endif
@@ -1104,6 +1122,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1191,6 +1212,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1330,6 +1354,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
endif
@@ -1417,6 +1444,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC) $(BSDPROCINC) $(TARGETPROCINC)
endif
@@ -1555,6 +1585,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
endif
@@ -1642,6 +1675,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(BSDINC)
endif
@@ -1953,6 +1989,12 @@ 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=
@@ -1998,6 +2040,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2462,7 +2509,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2923,7 +2970,8 @@ baseunix$(PPUEXT) : errno.inc ptypes.inc $(UNIXINC)/ctypes.inc \
signal.inc $(UNIXINC)/bunxh.inc \
$(BSDINC)/bunxsysc.inc $(BSDPROCINC)/syscallh.inc sysnr.inc \
$(BSDINC)/ostypes.inc $(BSDINC)/osmacro.inc $(UNIXINC)/gensigset.inc \
- $(UNIXINC)/genfuncs.inc sysctl$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(UNIXINC)/genfuncs.inc $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -Fu../unix -Fu../bsd ../unix/baseunix.pp
unix$(PPUEXT) : $(UNIXINC)/unix.pp strings$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
unxconst.inc $(UNIXINC)/timezone.inc \
unxfunc.inc baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
@@ -2969,10 +3017,13 @@ lnfodwrf$(PPUEXT) : $(INC)/lnfodwrf.pp $(SYSTEMUNIT)$(PPUEXT)
charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)
cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) charset$(PPUEXT)
$(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas
+fpwidestring$(PPUEXT): $(OBJPASDIR)/fpwidestring.pp character$(PPUEXT) unixcp$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/fpwidestring.pp
errors$(PPUEXT) : $(UNIXINC)/errors.pp strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
callspec$(PPUEXT) : $(INC)/callspec.pp $(SYSTEMUNIT)$(PPUEXT)
+syscall$(PPUEXT) : $(UNIXINC)/syscall.pp baseunix$(PPUEXT)
sysctl$(PPUEXT) : $(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) syscall$(PPUEXT) unixtype$(PPUEXT)
-syscall$(PPUEXT) : $(UNIXINC)/syscall.pp
+ $(COMPILER) -Fu$(UNIXINC) -Fu$(BSDINC) $(BSDINC)/sysctl.pp
sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $(OBJPASDIR)/sysconst.pp
cthreads$(PPUEXT) : $(UNIXINC)/cthreads.pp
diff --git a/rtl/openbsd/Makefile.fpc b/rtl/openbsd/Makefile.fpc
index 5fc8c41052..eb07ad99fd 100644
--- a/rtl/openbsd/Makefile.fpc
+++ b/rtl/openbsd/Makefile.fpc
@@ -18,7 +18,7 @@ units=$(SYSTEMUNIT) uuchar objpas macpas iso7185 strings syscall baseunix \
errors \
types sysctl sysconst \
fpintres dynlibs cwstring cmem dl termio \
- cthreads unixcp
+ cthreads unixcp fpwidestring
rsts=math typinfo classes sysconst
implicitunits=exeinfo \
@@ -157,7 +157,8 @@ baseunix$(PPUEXT) : errno.inc ptypes.inc $(UNIXINC)/ctypes.inc \
signal.inc $(UNIXINC)/bunxh.inc \
$(BSDINC)/bunxsysc.inc $(BSDPROCINC)/syscallh.inc sysnr.inc \
$(BSDINC)/ostypes.inc $(BSDINC)/osmacro.inc $(UNIXINC)/gensigset.inc \
- $(UNIXINC)/genfuncs.inc sysctl$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(UNIXINC)/genfuncs.inc $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -Fu../unix -Fu../bsd ../unix/baseunix.pp
unix$(PPUEXT) : $(UNIXINC)/unix.pp strings$(PPUEXT) $(INC)/textrec.inc $(INC)/filerec.inc \
@@ -168,7 +169,7 @@ linux$(PPUEXT) : baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
unixcp$(PPUEXT) : $(UNIXINC)/unixcp.pp $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) baseunix$(PPUEXT)
$(COMPILER) $(UNIXINC)/unixcp.pp
-
+
#
# TP7 Compatible RTL Units
#
@@ -250,6 +251,9 @@ charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)
cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) charset$(PPUEXT)
$(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas
+fpwidestring$(PPUEXT): $(OBJPASDIR)/fpwidestring.pp character$(PPUEXT) unixcp$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/fpwidestring.pp
+
#
# Other system-dependent RTL Units
#
@@ -259,9 +263,12 @@ errors$(PPUEXT) : $(UNIXINC)/errors.pp strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
callspec$(PPUEXT) : $(INC)/callspec.pp $(SYSTEMUNIT)$(PPUEXT)
-sysctl$(PPUEXT) : $(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) syscall$(PPUEXT) unixtype$(PPUEXT)
+syscall$(PPUEXT) : $(UNIXINC)/syscall.pp baseunix$(PPUEXT)
-syscall$(PPUEXT) : $(UNIXINC)/syscall.pp
+# sysctl needs to also compile baseunix and syscall units, which
+# are respectively located in ../
+sysctl$(PPUEXT) : $(BSDINC)/sysctl.pp $(SYSTEMUNIT)$(PPUEXT) syscall$(PPUEXT) unixtype$(PPUEXT)
+ $(COMPILER) -Fu$(UNIXINC) -Fu$(BSDINC) $(BSDINC)/sysctl.pp
sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $(OBJPASDIR)/sysconst.pp
diff --git a/rtl/openbsd/ptypes.inc b/rtl/openbsd/ptypes.inc
index 0ed3d78501..399264e63a 100644
--- a/rtl/openbsd/ptypes.inc
+++ b/rtl/openbsd/ptypes.inc
@@ -233,3 +233,60 @@ const
Prio_Process = 0;
Prio_PGrp = 1;
Prio_User = 2;
+
+{ OpenBSD 5.5 specific variants }
+
+{ file characteristics services }
+type
+ stat_55 = record { the types are real}
+ st_mode : mode_t; // inode protection mode
+ st_dev : dev_t; // inode's device
+ st_ino : ino_t; // inode's number
+ st_nlink : nlink_t; // number of hard links
+ st_uid : uid_t; // user ID of the file's owner
+ st_gid : gid_t; // group ID of the file's group
+ st_rdev : dev_t; // device type
+ st_atime : time_t; // time of last access
+ st_atimensec : clong; // nsec of last access
+ st_mtime : time_t; // time of last data modification
+ st_mtimensec : clong; // nsec of last data modification
+ st_ctime : time_t; // time of last file status change
+ st_ctimensec : clong; // nsec of last file status change
+ st_size : off_t; // file size, in bytes
+ st_blocks : cint64; // blocks allocated for file
+ st_blksize : cuint32; // optimal blocksize for I/O
+ st_flags : cuint32; // user defined flags for file
+ st_gen : cuint32; // file generation number
+ st_birthtime : time_t; // File creation time
+ st_birthtimensec : clong; // nsec of file creation time
+ st_qspare : array[0..1] Of cint64;
+ end;
+ TStat_55 = stat_55;
+ pStat_55 = ^stat_55;
+
+ { directory services }
+ dirent_55 = record
+ d_fileno : ino_t;
+ d_off : off_t;
+ d_reclen : cuint16; // length of this record
+ d_type : cuint8; // file type, see below
+ d_namlen : cuint8; // length of string in d_name
+ d_padding : array[1..4] of cuint8;
+ d_name : array[0..(255 + 1)-1] of char; // name must be no longer than this
+ end;
+ TDirent_55 = dirent_55;
+ pDirent_55 = ^dirent_55;
+
+ dir_55 = record
+ dd_fd : cint; // file descriptor associated with directory
+ dd_loc : clong; // offset in current buffer
+ dd_size : clong; // amount of data returned by getdirentries
+ dd_buf : pchar; // data buffer
+ dd_len : cint; // size of data buffer
+ dd_curpos : off_t;
+ dd_lock : pointer;
+ dd_rewind : clong;
+ end;
+ TDir_55 = dir_55;
+ pDir_55 = ^dir_55;
+
diff --git a/rtl/openbsd/setsysnr.inc b/rtl/openbsd/setsysnr.inc
new file mode 100644
index 0000000000..fc766d2420
--- /dev/null
+++ b/rtl/openbsd/setsysnr.inc
@@ -0,0 +1,137 @@
+
+{$ifdef FPC_COMPILING_SYSCALL_UNIT}
+
+{ these variables are used inside osysc.inc file
+ but needed here also if compiling syscall unit. }
+{$i errno.inc}
+{$i ptypes.inc}
+
+{$endif FPC_COMPILING_SYSCALL_UNIT}
+
+{$ifndef FPC_IS_SYSTEM}
+var
+ use_openbsd_getdirentries_49 : boolean = false;
+ use_getdirentries_syscall : boolean = true;
+
+function geterrno:longint; external name 'FPC_SYS_GETERRNO';
+procedure seterrno(err:longint); external name 'FPC_SYS_SETERRNO';
+
+{$endif FPC_IS_SYSTEM}
+
+procedure SetSyscallNumbers;
+
+Var
+ mib : array[0..1] of cint;
+ release : shortstring;
+ len : size_t;
+ oerrno : cint;
+ err : word;
+ point, c : char;
+ i, version_major, version_minor, version : cint;
+Begin
+ mib[0] := 1{ CTL_KERN};
+ mib[1] := 2{KERN_OSRELEASE};
+ len := sizeof (release) - 1;
+ oerrno := geterrno;
+
+ if (do_syscall(syscall_nr___sysctl,TSysParam(@mib), 2, TSysParam(@release[1]),
+ TSysParam(@len), TSysParam(NIL), 0) = -1) Then
+ Begin
+ if (geterrno = ESysENOMEM) Then
+ seterrno(oerrno);
+ version_major:=3;
+ version_minor:=9;
+ End
+ else
+ begin
+ setlength(release,len);
+ i:=0;
+ while (i < len) do
+ begin
+ if (release[i]='.') then
+ break;
+ inc (i);
+ end;
+ setlength(release,i-1);
+ val (release, version_major, err);
+ if err<> 0 then
+ version_major:=3;
+ setlength(release,len);
+ release:=copy(release,i+1,len);
+ val (release, version_minor, err);
+ if err<> 0 then
+ version_minor:=9;
+ end;
+
+ version:=version_major * 1000 + version_minor;
+
+ if version >= 5005 then
+ begin
+ syscall_nr_waitpid := syscall_nr_wait4_55;
+ syscall_nr_setitimer := syscall_nr_setitimer_55;
+ syscall_nr_getitimer := syscall_nr_getitimer_55;
+ syscall_nr_gettimeofday := syscall_nr_gettimeofday_55;
+ syscall_nr_settimeofday := syscall_nr_settimeofday_55;
+ syscall_nr_clock_gettime := syscall_nr_clock_gettime_55;
+ syscall_nr_clock_settime := syscall_nr_clock_settime_55;
+ syscall_nr_clock_getres := syscall_nr_clock_getres_55;
+ syscall_nr_select := syscall_nr_select_55;
+ syscall_nr_getrusage := syscall_nr_getrusage_55;
+ syscall_nr_utimes := syscall_nr_utimes_55;
+ syscall_nr_futimes := syscall_nr_futimes_55;
+ syscall_nr_nanosleep := syscall_nr_nanosleep_55;
+ syscall_nr_kevent := syscall_nr_kevent_55;
+ end;
+ if version>= 5004 then
+ begin
+ syscall_nr_statfs := syscall_nr_statfs_54;
+ syscall_nr_fstatfs := syscall_nr_fstatfs_54;
+ syscall_nr_fhstatfs := syscall_nr_fhstatfs_54;
+ end
+ else if version >= 4004 then
+ begin
+ syscall_nr_statfs := syscall_nr_statfs_44;
+ syscall_nr_fstatfs := syscall_nr_fstatfs_44;
+ syscall_nr_fhstatfs := syscall_nr_fhstatfs_44;
+ end
+ else if version < 2006 then
+ begin
+ syscall_nr_statfs := syscall_nr_statfs_20;
+ syscall_nr_fstatfs := syscall_nr_fstatfs_20;
+ syscall_nr_pipe := syscall_nr_pipe_20;
+ end;
+
+ if version>= 5005 then
+ begin
+ syscall_nr_stat := syscall_nr_stat_55;
+ syscall_nr_fstat := syscall_nr_fstat_55;
+ syscall_nr_lstat := syscall_nr_lstat_55;
+ syscall_nr_fstatat := syscall_nr_fstatat_55;
+ end
+ else if version < 3006 then
+ begin
+ syscall_nr_stat := syscall_nr_stat_20;
+ syscall_nr_fstat := syscall_nr_fstat_20;
+ syscall_nr_lstat := syscall_nr_lstat_20;
+ syscall_nr_fhstat := syscall_nr_fhstat_20;
+ end;
+ if version < 3005 then
+ syscall_nr_sigaltstack := syscall_nr_sigaltstack_20;
+ if version = 5001 then
+ syscall_nr___tfork := syscall_nr___tfork_51
+ else if version > 5001 then
+ syscall_nr___tfork := syscall_nr___tfork_52;
+
+ if version >= 5005 then
+ begin
+ { FIXME: what should we do here? }
+ syscall_nr_getdirentries := -1;
+ use_getdirentries_syscall:=false;
+ end
+ else if version >= 4009 then
+ begin
+ syscall_nr_getdirentries := syscall_nr_getdirentries_49;
+ use_openbsd_getdirentries_49:=true;
+ end;
+
+end;
diff --git a/rtl/openbsd/sysnr.inc b/rtl/openbsd/sysnr.inc
index 0fca0a28fd..b33a08091e 100644
--- a/rtl/openbsd/sysnr.inc
+++ b/rtl/openbsd/sysnr.inc
@@ -17,248 +17,346 @@
*
* created from; OpenBSD: syscalls.master,v 1.104 2010/10/28 15:02:41 millert Exp
* (OpenBSD/i386 4.9 release)
-}
-{ Append 35 suffix to system call numbers
- for compatibility to 3.5 versions }
+ Checked with syscall.h release tags from 2.0 to 5.6 2014/10/14
+
+}
Const
- syscall_nr_syscall = 0 ;
- syscall_nr_exit = 1 ;
- syscall_nr_fork = 2 ;
- syscall_nr_read = 3 ;
- syscall_nr_write = 4 ;
- syscall_nr_open = 5 ;
- syscall_nr_close = 6 ;
- syscall_nr_wait4 = 7 ;
- { 8 is marked as compta 43 ocreat }
- syscall_nr_link = 9 ;
- syscall_nr_unlink = 10 ;
- syscall_nr_chdir = 12 ;
- syscall_nr_fchdir = 13 ;
- syscall_nr_mknod = 14 ;
- syscall_nr_chmod = 15 ;
- syscall_nr_chown = 16 ;
- syscall_nr_break = 17 ;
- syscall_nr_getpid = 20 ;
- syscall_nr_mount = 21 ;
- syscall_nr_unmount = 22 ;
- syscall_nr_setuid = 23 ;
- syscall_nr_getuid = 24 ;
- syscall_nr_geteuid = 25 ;
- syscall_nr_ptrace = 26 ;
- syscall_nr_recvmsg = 27 ;
- syscall_nr_sendmsg = 28 ;
- syscall_nr_recvfrom = 29 ;
- syscall_nr_accept = 30 ;
- syscall_nr_getpeername = 31 ;
- syscall_nr_getsockname = 32 ;
- syscall_nr_access = 33 ;
- syscall_nr_chflags = 34 ;
- syscall_nr_fchflags = 35 ;
- syscall_nr_sync = 36 ;
- syscall_nr_kill = 37 ;
- syscall_nr_getppid = 39 ;
- syscall_nr_dup = 41 ;
- syscall_nr_opipe = 42 ;
- syscall_nr_getegid = 43 ;
- syscall_nr_profil = 44 ;
- syscall_nr_ktrace = 45 ;
- syscall_nr_sigaction = 46 ;
- syscall_nr_getgid = 47 ;
- syscall_nr_sigprocmask = 48 ;
- syscall_nr_getlogin = 49 ;
- syscall_nr_setlogin = 50 ;
- syscall_nr_acct = 51 ;
- syscall_nr_sigpending = 52 ;
- syscall_nr_osigaltstack = 53 ;
- syscall_nr_ioctl = 54 ;
- syscall_nr_reboot = 55 ;
- syscall_nr_revoke = 56 ;
- syscall_nr_symlink = 57 ;
- syscall_nr_readlink = 58 ;
- syscall_nr_execve = 59 ;
- syscall_nr_umask = 60 ;
- syscall_nr_chroot = 61 ;
- syscall_nr_vfork = 66 ;
- syscall_nr_sbrk = 69 ;
- syscall_nr_sstk = 70 ;
- // syscall nr_vadvise = 72 ; Seems netbsd specific
- syscall_nr_munmap = 73 ;
- syscall_nr_mprotect = 74 ;
- syscall_nr_madvise = 75 ;
- syscall_nr_mincore = 78 ;
- syscall_nr_getgroups = 79 ;
- syscall_nr_setgroups = 80 ;
- syscall_nr_getpgrp = 81 ;
- syscall_nr_setpgid = 82 ;
- syscall_nr_setitimer = 83 ;
- syscall_nr_getitimer = 86 ;
- syscall_nr_dup2 = 90 ;
- syscall_nr_fcntl = 92 ;
- syscall_nr_select = 93 ;
- syscall_nr_fsync = 95 ;
- syscall_nr_setpriority = 96 ;
- syscall_nr_socket = 97 ;
- syscall_nr_connect = 98 ;
- syscall_nr_getpriority = 100;
- syscall_nr_sigreturn = 103;
- syscall_nr_bind = 104;
- syscall_nr_setsockopt = 105;
- syscall_nr_listen = 106;
- syscall_nr_sigsuspend = 111;
- syscall_nr_gettimeofday = 116;
- syscall_nr_getrusage = 117;
- syscall_nr_getsockopt = 118;
- syscall_nr_readv = 120;
- syscall_nr_writev = 121;
- syscall_nr_settimeofday = 122;
- syscall_nr_fchown = 123;
- syscall_nr_fchmod = 124;
- syscall_nr_setreuid = 126;
- syscall_nr_setregid = 127;
- syscall_nr_rename = 128;
- syscall_nr_flock = 131;
- syscall_nr_mkfifo = 132;
- syscall_nr_sendto = 133;
- syscall_nr_shutdown = 134;
- syscall_nr_socketpair = 135;
- syscall_nr_mkdir = 136;
- syscall_nr_rmdir = 137;
- syscall_nr_utimes = 138;
- syscall_nr_adjtime = 140;
- syscall_nr_setsid = 147;
- syscall_nr_quotactl = 148;
- syscall_nr_nfssvc = 155;
- syscall_nr_getfh = 161;
- syscall_nr_sysarch = 165;
- { if defined(SYSVSEM) && !defined(__LP64__)
- "compat_10_osemsys", }
- syscall_nr_semsys = 169;
- { if defined(SYSVMSG) && !defined(__LP64__)
- "compat_10_omsgsys", }
- syscall_nr_msgsys = 170;
- { if defined(SYSVSHM) && !defined(__LP64__)
- "compat_10_oshmsys", }
- syscall_nr_shmsys = 170;
+(* 0 *) syscall_nr_syscall = 0;
+(* 1 *) syscall_nr_exit = 1;
+(* 2 *) syscall_nr_fork = 2;
+(* 3 *) syscall_nr_read = 3;
+(* 4 *) syscall_nr_write = 4;
+(* 5 *) syscall_nr_open = 5;
+(* 6 *) syscall_nr_close = 6;
+(* 7 *) syscall_nr_wait4 = 7; (* up to 5.4 release *)
+(* 7 *) syscall_nr_getentropy = 7; (* from 5.6 release *)
+(* 8 *) syscall_nr___tfork_52 = 8; (* from 5.2 release *)
+(* 9 *) syscall_nr_link = 9;
+(* 10 *) syscall_nr_unlink = 10;
+(* 11 *) syscall_nr_wait4_55 = 11; (* from 5.5 release *)
+(* 12 *) syscall_nr_chdir = 12;
+(* 13 *) syscall_nr_fchdir = 13;
+(* 14 *) syscall_nr_mknod = 14;
+(* 15 *) syscall_nr_chmod = 15;
+(* 16 *) syscall_nr_chown = 16;
+(* 17 *) syscall_nr_break = 17;
+(* 18 *) syscall_nr_getfsstat_20 = 18; (* up to 2.5 release *)
+(* 18 *) syscall_nr_ogetfsstat = 18; (* from 2.6 up to 2.9 release *)
+(* 18 *) syscall_nr_getdtablecount = 18; (* from 5.2 release *)
+(* 19 *) syscall_nr_getrusage_55 = 19; (* from 5.5 release *)
+(* 20 *) syscall_nr_getpid = 20;
+(* 21 *) syscall_nr_mount = 21;
+(* 22 *) syscall_nr_unmount = 22;
+(* 23 *) syscall_nr_setuid = 23;
+(* 24 *) syscall_nr_getuid = 24;
+(* 25 *) syscall_nr_geteuid = 25;
+(* 26 *) syscall_nr_ptrace = 26;
+(* 27 *) syscall_nr_recvmsg = 27;
+(* 28 *) syscall_nr_sendmsg = 28;
+(* 29 *) syscall_nr_recvfrom = 29;
+(* 30 *) syscall_nr_accept = 30;
+(* 31 *) syscall_nr_getpeername = 31;
+(* 32 *) syscall_nr_getsockname = 32;
+(* 33 *) syscall_nr_access = 33;
+(* 34 *) syscall_nr_chflags = 34;
+(* 35 *) syscall_nr_fchflags = 35;
+(* 36 *) syscall_nr_sync = 36;
+(* 37 *) syscall_nr_kill = 37;
+(* 38 *) syscall_nr_stat_55 = 38; (* from 5.5 release *)
+(* 39 *) syscall_nr_getppid = 39;
+(* 40 *) syscall_nr_lstat_55 = 40; (* from 5.5 release *)
+(* 41 *) syscall_nr_dup = 41;
+(* 42 *) syscall_nr_pipe_20 = 42; (* up to 2.5 release *)
+(* 42 *) syscall_nr_opipe = 42; (* from 2.6 up to 4.9 release *)
+(* 42 *) syscall_nr_fstatat_55 = 42; (* from 5.5 release *)
+(* 43 *) syscall_nr_getegid = 43;
+(* 44 *) syscall_nr_profil = 44;
+(* 45 *) syscall_nr_ktrace = 45;
+(* 46 *) syscall_nr_sigaction = 46;
+(* 47 *) syscall_nr_getgid = 47;
+(* 48 *) syscall_nr_sigprocmask = 48;
+(* 49 *) syscall_nr_getlogin = 49;
+(* 50 *) syscall_nr_setlogin = 50;
+(* 51 *) syscall_nr_acct = 51;
+(* 52 *) syscall_nr_sigpending = 52;
+(* 53 *) syscall_nr_sigaltstack_20 = 53; (* up to 3.4 release *)
+(* 53 *) syscall_nr_osigaltstack = 53; (* from 3.5 up to 4.3 release *)
+(* 53 *) syscall_nr_fstat_55 = 53; (* from 5.5 release *)
+(* 54 *) syscall_nr_ioctl = 54;
+(* 55 *) syscall_nr_reboot = 55;
+(* 56 *) syscall_nr_revoke = 56;
+(* 57 *) syscall_nr_symlink = 57;
+(* 58 *) syscall_nr_readlink = 58;
+(* 59 *) syscall_nr_execve = 59;
+(* 60 *) syscall_nr_umask = 60;
+(* 61 *) syscall_nr_chroot = 61;
+(* 62 *) syscall_nr_getfsstat_54 = 62; (* from 5.4 release *)
+(* 63 *) syscall_nr_statfs_54 = 63; (* from 5.4 release *)
+(* 64 *) syscall_nr_fstatfs_54 = 64; (* from 5.4 release *)
+(* 65 *) syscall_nr_msync_20 = 65; (* up to 2.2 release *)
+(* 65 *) syscall_nr_omsync = 65; (* from 2.3 up to 3.3 release *)
+(* 65 *) syscall_nr_fhstatfs_54 = 65; (* from 5.4 release *)
+(* 66 *) syscall_nr_vfork = 66;
+(* 67 *) syscall_nr_gettimeofday_55 = 67; (* from 5.5 release *)
+(* 68 *) syscall_nr_settimeofday_55 = 68; (* from 5.5 release *)
+(* 69 *) syscall_nr_sbrk = 69; (* up to 4.9 release *)
+(* 69 *) syscall_nr_setitimer_55 = 69; (* from 5.5 release *)
+(* 70 *) syscall_nr_sstk = 70; (* up to 4.9 release *)
+(* 70 *) syscall_nr_getitimer_55 = 70; (* from 5.5 release *)
+(* 71 *) syscall_nr_select_55 = 71; (* from 5.5 release *)
+(* 72 *) syscall_nr_vadvise = 72; (* up to 4.2 release *)
+(* 72 *) syscall_nr_kevent_55 = 72; (* from 5.5 release *)
+(* 73 *) syscall_nr_munmap = 73;
+(* 74 *) syscall_nr_mprotect = 74;
+(* 75 *) syscall_nr_madvise = 75;
+(* 76 *) syscall_nr_utimes_55 = 76; (* from 5.5 release *)
+(* 77 *) syscall_nr_futimes_55 = 77; (* from 5.5 release *)
+(* 78 *) syscall_nr_mincore = 78;
+(* 79 *) syscall_nr_getgroups = 79;
+(* 80 *) syscall_nr_setgroups = 80;
+(* 81 *) syscall_nr_getpgrp = 81;
+(* 82 *) syscall_nr_setpgid = 82;
+(* 83 *) syscall_nr_setitimer_20 = 83; (* up to 5.4 release *)
+(* 83 *) syscall_nr_sendsyslog = 83; (* from 5.6 release *)
+(* 84 *) syscall_nr_utimensat_55 = 84; (* from 5.5 release *)
+(* 85 *) syscall_nr_swapon = 85; (* up to 3.3 release *)
+(* 85 *) syscall_nr_futimens_55 = 85; (* from 5.5 release *)
+(* 86 *) syscall_nr_getitimer_20 = 86;
+(* 87 *) syscall_nr_clock_gettime_55 = 87; (* from 5.5 release *)
+(* 88 *) syscall_nr_clock_settime_55 = 88; (* from 5.5 release *)
+(* 89 *) syscall_nr_clock_getres_55 = 89; (* from 5.5 release *)
+(* 90 *) syscall_nr_dup2 = 90;
+(* 91 *) syscall_nr_nanosleep_55 = 91; (* from 5.5 release *)
+(* 92 *) syscall_nr_fcntl = 92;
+(* 93 *) syscall_nr_select_20 = 93; (* up to 5.4 release *)
+(* 94 *) syscall_nr___thrsleep_55 = 94; (* from 5.5 release *)
+(* 95 *) syscall_nr_fsync = 95;
+(* 96 *) syscall_nr_setpriority = 96;
+(* 97 *) syscall_nr_socket = 97;
+(* 98 *) syscall_nr_connect = 98;
+(* 99 *) syscall_nr_getdents = 99;
+(* 100 *) syscall_nr_getpriority = 100;
+(* 103 *) syscall_nr_sigreturn = 103;
+(* 104 *) syscall_nr_bind = 104;
+(* 105 *) syscall_nr_setsockopt = 105;
+(* 106 *) syscall_nr_listen = 106;
+(* 109 *) syscall_nr_ppoll = 109;
+(* 110 *) syscall_nr_pselect = 110;
+(* 111 *) syscall_nr_sigsuspend = 111;
+(* 115 *) syscall_nr_vtrace = 115;
+(* 116 *) syscall_nr_gettimeofday_20 = 116; (* up to 5.4 release *)
+(* 117 *) syscall_nr_getrusage_20 = 117; (* up to 5.4 release *)
+(* 118 *) syscall_nr_getsockopt = 118;
+(* 120 *) syscall_nr_readv = 120;
+(* 121 *) syscall_nr_writev = 121;
+(* 122 *) syscall_nr_settimeofday_20 = 122; (* up to 5.4 release *)
+(* 123 *) syscall_nr_fchown = 123;
+(* 124 *) syscall_nr_fchmod = 124;
+(* 126 *) syscall_nr_setreuid = 126;
+(* 127 *) syscall_nr_setregid = 127;
+(* 128 *) syscall_nr_rename = 128;
+(* 131 *) syscall_nr_flock = 131;
+(* 132 *) syscall_nr_mkfifo = 132;
+(* 133 *) syscall_nr_sendto = 133;
+(* 134 *) syscall_nr_shutdown = 134;
+(* 135 *) syscall_nr_socketpair = 135;
+(* 136 *) syscall_nr_mkdir = 136;
+(* 137 *) syscall_nr_rmdir = 137;
+(* 138 *) syscall_nr_utimes_20 = 138; (* up to 5.4 release *)
+(* 140 *) syscall_nr_adjtime = 140;
+(* 147 *) syscall_nr_setsid = 147;
+(* 148 *) syscall_nr_quotactl = 148;
+(* 155 *) syscall_nr_nfssvc = 155;
+(* 157 *) syscall_nr_statfs_20 = 157; (* up to 2.5 release *)
+(* 157 *) syscall_nr_ostatfs = 157; (* from 2.6 to 2.9 release *)
+(* 158 *) syscall_nr_fstatfs_20 = 158; (* up to 2.5 release *)
+(* 158 *) syscall_nr_ofstatfs = 158; (* from 2.6 to 2.9 release *)
+(* 161 *) syscall_nr_getfh = 161;
+(* 165 *) syscall_nr_sysarch = 165;
+(* 169 *) syscall_nr_semsys = 169; (* old compat_10, but required for ipcbsd.inc rtl-extra compilation *)
+(* 170 *) syscall_nr_msgsys = 170; (* old compat_10, but required for ipcbsd.inc rtl-extra compilation *)
+(* 171 *) syscall_nr_shmsys = 171; (* old compat_10, but required for ipcbsd.inc rtl-extra compilation *)
+(* 173 *) syscall_nr_pread = 173;
+(* 174 *) syscall_nr_pwrite = 174;
+(* 175 *) syscall_nr_ntp_gettime = 175;
+(* 176 *) syscall_nr_ntp_adjtime = 176;
+(* 181 *) syscall_nr_setgid = 181;
+(* 182 *) syscall_nr_setegid = 182;
+(* 183 *) syscall_nr_seteuid = 183;
+(* 184 *) syscall_nr_lfs_bmapv = 184;
+(* 185 *) syscall_nr_lfs_markv = 185;
+(* 186 *) syscall_nr_lfs_segclean = 186;
+(* 187 *) syscall_nr_lfs_segwait = 187;
+(* 188 *) syscall_nr_stat_20 = 188; (* up to 3.5 release *)
+(* 189 *) syscall_nr_fstat_20 = 189; (* up to 3.5 release *)
+(* 190 *) syscall_nr_lstat_20 = 190; (* up to 3.5 release *)
+(* 191 *) syscall_nr_pathconf = 191;
+(* 192 *) syscall_nr_fpathconf = 192;
+(* 193 *) syscall_nr_swapctl = 193;
+(* 194 *) syscall_nr_getrlimit = 194;
+(* 195 *) syscall_nr_setrlimit = 195;
+(* 196 *) syscall_nr_getdirentries_20 = 196; (* up to 4.8 release *)
+(* 196 *) syscall_nr_ogetdirentries = 196; (* 4.9 release only *)
+(* 197 *) syscall_nr_mmap = 197;
+(* 198 *) syscall_nr___syscall = 198;
+(* 199 *) syscall_nr_lseek = 199;
+(* 200 *) syscall_nr_truncate = 200;
+(* 201 *) syscall_nr_ftruncate = 201;
+(* 202 *) syscall_nr___sysctl = 202;
+(* 203 *) syscall_nr_mlock = 203;
+(* 204 *) syscall_nr_munlock = 204;
+(* 205 *) syscall_nr_undelete = 205;
+(* 206 *) syscall_nr_futimes_20 = 206; (* up to 5.4 release *)
+(* 207 *) syscall_nr_getpgid = 207;
+(* 208 *) syscall_nr_xfspioctl = 208; (* from 2.4 up to 4.5 release *)
+(* 208 *) syscall_nr_nnpfspioctl = 208; (* from 4.6 up to 5.2 release *)
+(* 209 *) syscall_nr_utrace = 209;
+(* 220 *) syscall_nr___semctl_20 = 220; (* up to 2.3 release *)
+(* 220 *) syscall_nr___osemctl = 220; (* from 2.4 up to 2.9 release *)
+(* 221 *) syscall_nr_semget = 221;
+(* 222 *) syscall_nr_semop_20 = 222;
+(* 223 *) syscall_nr_semconfig = 223;
+(* 224 *) syscall_nr_msgctl_20 = 224; (* up to 2.3 release *)
+(* 224 *) syscall_nr_omsgctl = 224; (* from 2.4 up to 2.9 release *)
+(* 225 *) syscall_nr_msgget = 225;
+(* 226 *) syscall_nr_msgsnd = 226;
+(* 227 *) syscall_nr_msgrcv = 227;
+(* 228 *) syscall_nr_shmat = 228;
+(* 229 *) syscall_nr_shmctl_20 = 229; (* up to 2.3 release *)
+(* 229 *) syscall_nr_oshmctl = 229; (* from 2.4 up to 2.9 release *)
+(* 230 *) syscall_nr_shmdt = 230;
+(* 231 *) syscall_nr_shmget_20 = 231; (* up to 3.5 release *)
+(* 232 *) syscall_nr_clock_gettime_20 = 232; (* up to 5.4 release *)
+(* 233 *) syscall_nr_clock_settime_20 = 233; (* up to 5.4 release *)
+(* 234 *) syscall_nr_clock_getres_20 = 234; (* up to 5.4 release *)
+(* 240 *) syscall_nr_nanosleep_20 = 240; (* up to 5.4 release *)
+(* 250 *) syscall_nr_minherit = 250;
+(* 251 *) syscall_nr_rfork = 251;
+(* 252 *) syscall_nr_poll = 252;
+(* 253 *) syscall_nr_issetugid = 253;
+(* 254 *) syscall_nr_lchown = 254;
+(* 255 *) syscall_nr_getsid = 255;
+(* 256 *) syscall_nr_msync = 256;
+(* 257 *) syscall_nr___semctl_24 = 257; (* from 2.4 up to 3.5 release *)
+(* 258 *) syscall_nr_shmctl_24 = 258; (* from 2.4 up to 3.5 release *)
+(* 259 *) syscall_nr_msgctl_24 = 259; (* from 2.4 up to 3.5 release *)
+(* 260 *) syscall_nr_getfsstat_26 = 260; (* from 2.6 up to 4.3 release *)
+(* 261 *) syscall_nr_statfs_26 = 261; (* from 2.6 up to 4.3 release *)
+(* 262 *) syscall_nr_fstatfs_26 = 262; (* from 2.6 up to 4.3 release *)
+(* 263 *) syscall_nr_pipe_26 = 263; (* from 2.6 release *)
+(* 264 *) syscall_nr_fhopen = 264;
+(* 265 *) syscall_nr_fhstat_20 = 265; (* up to 3.5 release *)
+(* 266 *) syscall_nr_fhstatfs_20 = 266; (* up to 4.4 release *)
+(* 267 *) syscall_nr_preadv = 267;
+(* 268 *) syscall_nr_pwritev = 268;
+(* 269 *) syscall_nr_kqueue = 269;
+(* 270 *) syscall_nr_kevent_29 = 270; (*from 2.9 up to 5.4 release *)
+(* 271 *) syscall_nr_mlockall = 271;
+(* 272 *) syscall_nr_munlockall = 272;
+(* 273 *) syscall_nr_getpeereid = 273;
+(* 274 *) syscall_nr_extattrctl = 274;
+(* 275 *) syscall_nr_extattr_set_file = 275;
+(* 276 *) syscall_nr_extattr_get_file = 276;
+(* 277 *) syscall_nr_extattr_delete_file = 277;
+(* 278 *) syscall_nr_extattr_set_fd = 278;
+(* 279 *) syscall_nr_extattr_get_fd = 279;
+(* 280 *) syscall_nr_extattr_delete_fd = 280;
+(* 281 *) syscall_nr_getresuid = 281;
+(* 282 *) syscall_nr_setresuid = 282;
+(* 283 *) syscall_nr_getresgid = 283;
+(* 284 *) syscall_nr_setresgid = 284;
+(* 286 *) syscall_nr_mquery = 286;
+(* 287 *) syscall_nr_closefrom = 287;
+(* 288 *) syscall_nr_sigaltstack_35 = 288; (* from 3.5 release *)
+(* 289 *) syscall_nr_shmget_36 = 289; (* from 3.6 release *)
+(* 290 *) syscall_nr_semop_36 = 290; (* from 3.6 release *)
+(* 291 *) syscall_nr_stat_36 = 291; (* from 3.6 up to 5.4 release *)
+(* 292 *) syscall_nr_fstat_36 = 292; (* from 3.6 up to 5.4 release *)
+(* 293 *) syscall_nr_lstat_36 = 293; (* from 3.6 up to 5.4 release *)
+(* 294 *) syscall_nr_fhstat_36 = 294; (* from 3.6 release *)
+(* 295 *) syscall_nr___semctl_36 = 295; (* from 3.6 release *)
+(* 296 *) syscall_nr_shmctl_36 = 296; (* from 3.6 release *)
+(* 297 *) syscall_nr_msgctl_36 = 297; (* from 3.6 release *)
+(* 298 *) syscall_nr_sched_yield = 298;
+(* 299 *) syscall_nr_getthrid = 299;
+(* 300 *) syscall_nr_thrsleep = 300; (* from 3.9 up to 5.0 release *)
+(* 300 *) syscall_nr___thrsleep_51 = 300; (* from 5.1 up to 5.4 release *)
+(* 301 *) syscall_nr_thrwakeup = 301; (* from 3.9 up to 5.0 release *)
+(* 301 *) syscall_nr___thrwakeup = 301; (* from 5.1 release *)
+(* 302 *) syscall_nr_threxit = 302; (* from 3.9 up to 5.0 release *)
+(* 302 *) syscall_nr___threxit = 302; (* from 5.1 release *)
+(* 303 *) syscall_nr_thrsigdivert = 303; (* from 3.9 up to 5.0 release *)
+(* 303 *) syscall_nr___thrsigdivert = 303; (* from 5.1 release *)
+(* 304 *) syscall_nr___getcwd = 304;
+(* 305 *) syscall_nr_adjfreq = 305;
+(* 306 *) syscall_nr_getfsstat_44 = 306; (* from 4.4 up to 5.3 release *)
+(* 307 *) syscall_nr_statfs_44 = 307; (* from 4.4 up to 5.3 release *)
+(* 308 *) syscall_nr_fstatfs_44 = 308; (* from 4.4 up to 5.3 release *)
+(* 309 *) syscall_nr_fhstatfs_44 = 309; (* from 4.4 up to 5.3 release *)
+(* 310 *) syscall_nr_setrdomain = 310; (* 4.7 release only *)
+(* 310 *) syscall_nr_setrtable = 310; (* from 4.8 release *)
+(* 311 *) syscall_nr_getrdomain = 311; (* 4.7 release only *)
+(* 311 *) syscall_nr_getrtable = 311; (* from 4.8 release *)
+(* 312 *) syscall_nr_getdirentries_49 = 312; (* from 4.9 up to 5.4 release *)
+(* 313 *) syscall_nr_faccessat = 313;
+(* 314 *) syscall_nr_fchmodat = 314;
+(* 315 *) syscall_nr_fchownat = 315;
+(* 316 *) syscall_nr_fstatat_50 = 316; (* from 5.0 release *)
+(* 317 *) syscall_nr_linkat = 317;
+(* 318 *) syscall_nr_mkdirat = 318;
+(* 319 *) syscall_nr_mkfifoat = 319;
+(* 320 *) syscall_nr_mknodat = 320;
+(* 321 *) syscall_nr_openat = 321;
+(* 322 *) syscall_nr_readlinkat = 322;
+(* 323 *) syscall_nr_renameat = 323;
+(* 324 *) syscall_nr_symlinkat = 324;
+(* 325 *) syscall_nr_unlinkat = 325;
+(* 326 *) syscall_nr_utimensat_50 = 326;
+(* 327 *) syscall_nr_futimens_50 = 327;
+(* 328 *) syscall_nr___tfork_51 = 328; (* 5.1 release only *)
+(* 329 *) syscall_nr___set_tcb = 329;
+(* 330 *) syscall_nr___get_tcb = 330;
- syscall_nr_pread = 173;
- syscall_nr_pwrite = 174;
- syscall_nr_setgid = 181;
- syscall_nr_setegid = 182;
- syscall_nr_seteuid = 183;
- syscall_nr_lfs_bmapv = 184;
- syscall_nr_lfs_markv = 185;
- syscall_nr_lfs_segclean = 186;
- syscall_nr_lfs_segwait = 187;
- syscall_nr_stat35 = 188;
- syscall_nr_fstat35 = 189;
- syscall_nr_lstat35 = 190;
- syscall_nr_pathconf = 191;
- syscall_nr_fpathconf = 192;
- syscall_nr_swapctl = 193;
- syscall_nr_getrlimit = 194;
- syscall_nr_setrlimit = 195;
- syscall_nr_ogetdirentries = 196;
- { The entry below is to avoid unnecessary incompatibility with
- older version }
- syscall_nr_getdirentries35 = syscall_nr_ogetdirentries;
- syscall_nr_mmap = 197;
- syscall_nr___syscall = 198;
- syscall_nr_lseek = 199;
- syscall_nr_truncate = 200;
- syscall_nr_ftruncate = 201;
- syscall_nr___sysctl = 202;
- syscall_nr_mlock = 203;
- syscall_nr_munlock = 204;
- // syscall nr_undelete = 205; Seems netbsd specific
- syscall_nr_futimes = 206;
- syscall_nr_getpgid = 207;
- syscall_nr_xfspioctl = 208;
- syscall_nr_nnpfspioctl = 208;
- syscall_nr_semget = 221;
- syscall_nr_semop35 = 222;
- syscall_nr_msgget = 225;
- syscall_nr_msgsnd = 226;
- syscall_nr_msgrcv = 227;
- syscall_nr_shmat = 228;
- syscall_nr_shmdt = 230;
- syscall_nr_shmget35 = 231;
- syscall_nr_clock_gettime= 232;
- syscall_nr_clock_settime= 233;
- syscall_nr_clock_getres = 234;
- syscall_nr_nanosleep = 240;
- syscall_nr_minherit = 250;
- syscall_nr_rfork = 251;
- syscall_nr_poll = 252;
- syscall_nr_issetugid = 253;
- syscall_nr_lchown = 254;
- syscall_nr_getsid = 255;
- syscall_nr_msync = 256;
- syscall_nr___semctl35 = 257;
- syscall_nr_shmctl35 = 258;
- syscall_nr_msgctl35 = 259;
- // syscall nr_getfsstat35 = 260;
- // syscall nr_statfs35 = 261;
- // syscall nr_fstatfs35 = 262;
- syscall_nr_pipe = 263;
- syscall_nr_fhopen = 264;
- // syscall nr_fhstat35 = 265;
- // syscall nr_fhstatfs35 = 266;
- syscall_nr_preadv = 267;
- syscall_nr_pwritev = 268;
- syscall_nr_kqueue = 269;
- syscall_nr_kevent = 270;
- syscall_nr_mlockall = 271;
- syscall_nr_munlockall = 272;
- syscall_nr_getpeereid = 273;
- // syscall nr_extattrctl = 274;
- (* This whole group seems NetBSD specific
- syscall nr_extattr_set_file = 275;
- syscall nr_extattr_get_file = 276;
- syscall nr_extattr_delete_file = 277;
- syscall nr_extattr_set_fd = 278;
- syscall nr_extattr_get_fd = 279;
- syscall nr_extattr_delete_fd = 280; *)
- syscall_nr_getresuid = 281;
- syscall_nr_setresuid = 282;
- syscall_nr_getresgid = 283;
- syscall_nr_setresgid = 284;
- syscall_nr_mquery = 286;
- syscall_nr_closefrom = 287;
- syscall_nr_sigaltstack = 288;
- { left for compatibility }
- syscall_nr_signalstack = syscall_nr_sigaltstack;
- syscall_nr_shmget = 289;
- syscall_nr_semop = 290;
- syscall_nr_stat = 291;
- syscall_nr_fstat = 292;
- syscall_nr_lstat = 293;
- syscall_nr_fhstat = 294;
- syscall_nr___semctl = 295;
- syscall_nr_shmctl = 296;
- syscall_nr_msgctl = 297;
- syscall_nr_sched_yield = 298;
- syscall_nr_getthrid = 299;
- syscall_nr_thrsleep = 300;
- syscall_nr_thrwakeup = 301;
- syscall_nr_threxit = 302;
- syscall_nr_thrsigdivert = 303;
- syscall_nr___getcwd = 304;
- syscall_nr_adjfreq = 305;
- syscall_nr_getfsstat = 306;
- syscall_nr_statfs = 307;
- syscall_nr_fstatfs = 308;
- syscall_nr_fhstatfs = 309;
- syscall_nr_setrtable = 310;
- syscall_nr_getrtable = 311;
- syscall_nr_getdirentriesi49 = 312;
- syscall_nr_MAXSYSCALL = 313;
{ Aliases }
- syscall_nr_getdirentries = syscall_nr_getdirentriesi49;
- syscall_nr_waitpid = syscall_nr_wait4; // 7, added: ease of notation purposes
-{ syscall_nr_getdents = syscall_nr_getdirentries; }
-{$define USE_GETDIRENTRIES_SYSCALL}
-{$define USE_GETDIRENTRIES_I49_SYSCALL}
+var
+ syscall_nr_waitpid : longint = syscall_nr_wait4; // 7, added: ease of notation purposes
+
+ syscall_nr_setitimer : longint = syscall_nr_setitimer_20;
+ syscall_nr_getitimer : longint = syscall_nr_getitimer_20;
+ syscall_nr_select : longint = syscall_nr_select_20;
+ syscall_nr_gettimeofday : longint = syscall_nr_gettimeofday_20;
+ syscall_nr_settimeofday : longint = syscall_nr_settimeofday_20;
+ syscall_nr_clock_gettime : longint = syscall_nr_clock_gettime_20;
+ syscall_nr_clock_settime : longint = syscall_nr_clock_settime_20;
+ syscall_nr_clock_getres : longint = syscall_nr_clock_getres_20;
+ syscall_nr_getrusage : longint = syscall_nr_getrusage_20;
+ syscall_nr_utimes : longint = syscall_nr_utimes_20;
+ syscall_nr_futimes : longint = syscall_nr_futimes_20;
+ syscall_nr_statfs : longint = syscall_nr_statfs_26;
+ syscall_nr_fstatfs : longint = syscall_nr_fstatfs_26;
+ syscall_nr_stat : longint = syscall_nr_stat_36;
+ syscall_nr_fstat : longint = syscall_nr_fstat_36;
+ syscall_nr_lstat : longint = syscall_nr_lstat_36;
+ syscall_nr_fhstat : longint = syscall_nr_fhstat_36;
+ syscall_nr_fstatat : longint = syscall_nr_fstatat_50;
+ syscall_nr_fhstatfs : longint = syscall_nr_fhstatfs_20;
+ syscall_nr_nanosleep : longint = syscall_nr_nanosleep_20;
+ syscall_nr_kevent : longint = syscall_nr_kevent_29;
+ syscall_nr_pipe : longint = syscall_nr_pipe_26;
+ syscall_nr_sigaltstack : longint = syscall_nr_sigaltstack_35;
+ syscall_nr___tfork : longint = -1;
+ syscall_nr_msgctl : longint = syscall_nr_msgctl_36;
+ syscall_nr_semop : longint = syscall_nr_semop_36;
+ syscall_nr___semctl : longint = syscall_nr___semctl_36;
+ syscall_nr_shmctl : longint = syscall_nr_shmctl_36;
+ syscall_nr_shmget : longint = syscall_nr_shmget_36;
+ syscall_nr_getdirentries : longint = syscall_nr_getdirentries_20;
+{ The variables above need to be changed at startup }
+
+{$define FPC_HAS_SETSYSNR_INC}
+{$define FPC_USE_GETDIRENTRIES_SYSCALL}
+{$define FPC_USE_GETDIRENTRIES_I49_SYSCALL}
diff --git a/rtl/os2/Makefile b/rtl/os2/Makefile
index cd98e1a082..b811f734cd 100644
--- a/rtl/os2/Makefile
+++ b/rtl/os2/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -345,229 +345,235 @@ endif
OBJPASDIR=$(RTL)/objpas
GRAPHDIR=$(INC)/graph
ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-go32v2)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-win32)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-os2)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-beos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-haiku)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-qnx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-netware)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-wdosx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-emx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-watcom)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-netwlibc)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-nativent)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-iphonesim)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),m68k-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),m68k-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),m68k-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),m68k-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),m68k-atari)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),m68k-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),m68k-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),m68k-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),powerpc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),powerpc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),powerpc-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),powerpc-macos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),powerpc-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),powerpc-morphos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),powerpc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),powerpc-wii)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),powerpc-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),sparc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),sparc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),sparc-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),sparc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),x86_64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),x86_64-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),x86_64-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),x86_64-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),x86_64-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),x86_64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),x86_64-win64)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),x86_64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),arm-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),arm-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),arm-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),arm-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),arm-gba)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),arm-nds)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),arm-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),arm-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),arm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),powerpc64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),powerpc64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),powerpc64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),powerpc64-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),avr-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),armeb-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),armeb-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),mips-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),mipsel-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),mipsel-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),mipsel-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),jvm-java)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),jvm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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),i8086-msdos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils fgl classes math typinfo charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs types rtlconst sysconst so32dll
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi dos sysutils 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 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
@@ -638,6 +644,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -725,6 +734,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -863,6 +875,9 @@ 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
@@ -950,6 +965,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1088,6 +1106,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo pmhelp classes sysconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo pmhelp classes sysconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo pmhelp classes sysconst
endif
@@ -1175,6 +1196,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo pmhelp classes sysconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo pmhelp classes sysconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo pmhelp classes sysconst
endif
@@ -1314,6 +1338,9 @@ 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
@@ -1401,6 +1428,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1539,6 +1569,9 @@ 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
@@ -1626,6 +1659,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1937,6 +1973,12 @@ 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=
@@ -1982,6 +2024,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2446,7 +2493,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2904,6 +2951,7 @@ kbdcalls$(PPUEXT) : kbdcalls.pas $(SYSTEMUNIT)$(PPUEXT)
moucalls$(PPUEXT) : moucalls.pas $(SYSTEMUNIT)$(PPUEXT)
moncalls$(PPUEXT) : moncalls.pas strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
os2def$(PPUEXT) : os2def.pas $(SYSTEMUNIT)$(PPUEXT)
+doscall2$(PPUEXT) : doscalls$(PPUEXT) os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
pmwin$(PPUEXT) : pmwin.pas os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
pmbitmap$(PPUEXT) : pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT)
pmgpi$(PPUEXT) : pmgpi.pas pmbitmap$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
@@ -2926,11 +2974,11 @@ classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
sysutils$(PPUEXT) typinfo$(PPUEXT) rtlconst$(PPUEXT) types$(PPUEXT) \
objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) fgl$(PPUEXT)
$(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
-fgl$(PPUEXT) : $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) system$(PPUEXT) sysutils$(PPUEXT)
+fgl$(PPUEXT) : $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT)
$(COMPILER) $(OBJPASDIR)/fgl.pp
math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $(OBJPASDIR)/math.pp
-typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT) rtlconst$(PPUEXT)
+typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT) rtlconst$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $(OBJPASDIR)/types.pp
@@ -2938,7 +2986,7 @@ rtlconst$(PPUEXT) : $(OBJPASDIR)/rtlconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUE
$(COMPILER) -Fi$(OBJPASDIR) $(OBJPASDIR)/rtlconst.pp
sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $(OBJPASDIR)/sysconst.pp
-macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT)
+macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $(INC)/macpas.pp $(REDIR)
cpu$(PPUEXT) : $(PROCINC)/cpu.pp $(SYSTEMUNIT)$(PPUEXT)
mmx$(PPUEXT) : $(PROCINC)/mmx.pp cpu$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
@@ -2948,7 +2996,15 @@ heaptrc$(PPUEXT) : $(INC)/heaptrc.pp $(SYSTEMUNIT)$(PPUEXT)
lineinfo$(PPUEXT) : $(INC)/lineinfo.pp $(SYSTEMUNIT)$(PPUEXT)
lnfodwrf$(PPUEXT) : $(INC)/lnfodwrf.pp $(SYSTEMUNIT)$(PPUEXT)
charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)
-cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) charset$(PPUEXT)
+unicodenumtable$(PPUEXT) : $(OBJPASDIR)/unicodenumtable.pas $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -Fi$(OBJPASDIR) $(OBJPASDIR)/unicodenumtable.pas
+unicodedata$(PPUEXT) : $(OBJPASDIR)/unicodedata.pas unicodenumtable$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -Fi$(OBJPASDIR) $(OBJPASDIR)/unicodedata.pas
+character$(PPUEXT) : $(OBJPASDIR)/character.pas sysutils$(PPUEXT) rtlconst$(PPUEXT) unicodedata$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -Fi$(OBJPASDIR) $(OBJPASDIR)/character.pas
+fpwidestring$(PPUEXT) : $(OBJPASDIR)/fpwidestring.pp unicodedata$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -Fi$(OBJPASDIR) $(OBJPASDIR)/fpwidestring.pp
+cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas $(SYSTEMUNIT)$(PPUEXT) charset$(PPUEXT)
$(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas
ctypes$(PPUEXT) : $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT)
-variants$(PPUEXT) : $(INC)/variants.pp varutils$(PPUEXT) typinfo$(PPUEXT)
+variants$(PPUEXT) : $(INC)/variants.pp varutils$(PPUEXT) typinfo$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
diff --git a/rtl/os2/Makefile.fpc b/rtl/os2/Makefile.fpc
index bdc78e468e..766caa31c8 100644
--- a/rtl/os2/Makefile.fpc
+++ b/rtl/os2/Makefile.fpc
@@ -8,13 +8,14 @@ main=rtl
[target]
loaders=prt0
units=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings \
- ports os2def doscalls moncalls kbdcalls moucalls viocalls \
+ ports os2def doscalls doscall2 moncalls kbdcalls moucalls viocalls \
pmbitmap pmwin pmgpi pmstddlg pmhelp pmdev pmspl pmshl pmwp pmwsock pmbidi \
dos \
sysutils fgl classes math typinfo \
charset cpall cpu mmx getopts heaptrc lineinfo lnfodwrf dynlibs \
types rtlconst sysconst \
- so32dll
+ so32dll fpwidestring character \
+ unicodedata unicodenumtable
rsts=math typinfo pmhelp classes sysconst
implicitunits=exeinfo \
cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 \
@@ -118,6 +119,8 @@ moncalls$(PPUEXT) : moncalls.pas strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
os2def$(PPUEXT) : os2def.pas $(SYSTEMUNIT)$(PPUEXT)
+doscall2$(PPUEXT) : doscalls$(PPUEXT) os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+
pmwin$(PPUEXT) : pmwin.pas os2def$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
pmbitmap$(PPUEXT) : pmbitmap.pas $(SYSTEMUNIT)$(PPUEXT)
@@ -151,7 +154,7 @@ dynlibs$(PPUEXT) : $(INC)/dynlibs.pas doscalls$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
dos$(PPUEXT) : dos.pas $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
doscalls$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
-#graph$(PPUEXT) : graph.pp
+#graph$(PPUEXT) : graph.pp $(SYSTEMUNIT)$(PPUEXT)
#
# Delphi Compatible Units
@@ -166,13 +169,13 @@ classes$(PPUEXT) : classes.pp $(wildcard $(OBJPASDIR)/classes/*.inc) \
objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) fgl$(PPUEXT)
$(COMPILER) -Fi$(OBJPASDIR)/classes classes.pp
-fgl$(PPUEXT) : $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) system$(PPUEXT) sysutils$(PPUEXT)
+fgl$(PPUEXT) : $(OBJPASDIR)/fgl.pp objpas$(PPUEXT) types$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT) sysutils$(PPUEXT)
$(COMPILER) $(OBJPASDIR)/fgl.pp
math$(PPUEXT): $(OBJPASDIR)/math.pp objpas$(PPUEXT) sysutils$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $(OBJPASDIR)/math.pp
-typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT) rtlconst$(PPUEXT)
+typinfo$(PPUEXT): $(OBJPASDIR)/typinfo.pp objpas$(PPUEXT) rtlconst$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) -Sg $(OBJPASDIR)/typinfo.pp
types$(PPUEXT) : $(OBJPASDIR)/types.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
@@ -188,7 +191,7 @@ sysconst$(PPUEXT) : $(OBJPASDIR)/sysconst.pp objpas$(PPUEXT) $(SYSTEMUNIT)$(PPUE
# Mac Pascal Model
#
-macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT)
+macpas$(PPUEXT) : $(INC)/macpas.pp objpas$(PPUEXT) math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $(INC)/macpas.pp $(REDIR)
#
@@ -210,7 +213,19 @@ lnfodwrf$(PPUEXT) : $(INC)/lnfodwrf.pp $(SYSTEMUNIT)$(PPUEXT)
charset$(PPUEXT) : $(INC)/charset.pp $(SYSTEMUNIT)$(PPUEXT)
-cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) charset$(PPUEXT)
+unicodenumtable$(PPUEXT) : $(OBJPASDIR)/unicodenumtable.pas $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -Fi$(OBJPASDIR) $(OBJPASDIR)/unicodenumtable.pas
+
+unicodedata$(PPUEXT) : $(OBJPASDIR)/unicodedata.pas unicodenumtable$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -Fi$(OBJPASDIR) $(OBJPASDIR)/unicodedata.pas
+
+character$(PPUEXT) : $(OBJPASDIR)/character.pas sysutils$(PPUEXT) rtlconst$(PPUEXT) unicodedata$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -Fi$(OBJPASDIR) $(OBJPASDIR)/character.pas
+
+fpwidestring$(PPUEXT) : $(OBJPASDIR)/fpwidestring.pp unicodedata$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
+ $(COMPILER) -Fi$(OBJPASDIR) $(OBJPASDIR)/fpwidestring.pp
+
+cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas $(SYSTEMUNIT)$(PPUEXT) charset$(PPUEXT)
$(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas
ctypes$(PPUEXT) : $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT)
@@ -219,4 +234,4 @@ ctypes$(PPUEXT) : $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT)
#
# Other system-dependent RTL Units
#
-variants$(PPUEXT) : $(INC)/variants.pp varutils$(PPUEXT) typinfo$(PPUEXT)
+variants$(PPUEXT) : $(INC)/variants.pp varutils$(PPUEXT) typinfo$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
diff --git a/rtl/os2/dos.pas b/rtl/os2/dos.pas
index 4092d4c3c2..232434d4f4 100644
--- a/rtl/os2/dos.pas
+++ b/rtl/os2/dos.pas
@@ -113,6 +113,8 @@ begin
P:=Path;
D:=DirList;
DosError := DosSearchPath (dsIgnoreNetErrs, PChar(D), PChar(P), @A, 255);
+ if DosError <> 0 then
+ OSErrorWatch (DosError);
fsearch := StrPas (@A);
end;
@@ -124,12 +126,16 @@ begin
DosError := DosQueryFileInfo (FileRec (F).Handle, ilStandard, @FStat,
SizeOf (FStat));
if DosError=0 then
- begin
+ begin
Time := FStat.TimeLastWrite + longint (FStat.DateLastWrite) shl 16;
if Time = 0 then
Time := FStat.TimeCreation + longint (FStat.DateCreation) shl 16;
- end else
+ end
+ else
+ begin
Time:=0;
+ OSErrorWatch (DosError);
+ end;
end;
@@ -140,14 +146,18 @@ begin
RC := DosQueryFileInfo (FileRec (F).Handle, ilStandard, @FStat,
SizeOf (FStat));
if RC = 0 then
- begin
+ begin
FStat.DateLastAccess := Hi (Time);
FStat.DateLastWrite := Hi (Time);
FStat.TimeLastAccess := Lo (Time);
FStat.TimeLastWrite := Lo (Time);
RC := DosSetFileInfo (FileRec (F).Handle, ilStandard, @FStat,
SizeOf (FStat));
- end;
+ if RC <> 0 then
+ OSErrorWatch (RC);
+ end
+ else
+ OSErrorWatch (RC);
DosError := integer (RC);
end;
@@ -170,7 +180,10 @@ begin
LastExecRes := Res;
end
else
- LastExecRes.ExitCode := RC shl 16;
+ begin
+ LastExecRes.ExitCode := RC shl 16;
+ OSErrorWatch (RC);
+ end;
end;
if LastExecRes.ExitCode > high (word) then
DosExitCode := high (word)
@@ -186,10 +199,10 @@ var
ArgSize: word;
ObjName: string;
Res: TResultCodes;
- RC: cardinal;
+ RC, RC2: cardinal;
ExecAppType: cardinal;
HQ: THandle;
- SPID, STID, SCtr, QName: string;
+ SPID, STID, QName: string;
SID, PID: cardinal;
SD: TStartData;
RD: TRequestData;
@@ -198,9 +211,8 @@ var
Prio: byte;
DSS: boolean;
SR: SearchRec;
-
-const
- MaxArgsSize = 3072; (* Amount of memory reserved for arguments in bytes. *)
+ MaxArgsSize: PtrUInt; (* Amount of memory reserved for arguments in bytes. *)
+ MaxArgsSizeInc: word;
begin
{ LastDosExitCode := Exec (Path, ExecRunFlags (ExecFlags), efDefault, ComLine);}
@@ -213,6 +225,12 @@ begin
else
QName := Path;
FindClose (SR);
+ MaxArgsSize := Length (ComLine) + Length (QName) + 256; (* More than enough *)
+ if MaxArgsSize > high (word) then
+ begin
+ DosError := 8; (* Not quite, but "not enough memory" is close enough *)
+ Exit;
+ end;
if ComLine = '' then
begin
Args0 := nil;
@@ -224,8 +242,19 @@ begin
Args := Args0;
(* Work around a bug in OS/2 - argument to DosExecPgm *)
(* should not cross a 64K boundary. *)
- if ((PtrUInt (Args) + 1024) and $FFFF) < 1024 then
- Inc (pointer (Args), 1024);
+ while ((PtrUInt (Args) + MaxArgsSize) and $FFFF) < MaxArgsSize do
+ begin
+ MaxArgsSizeInc := MaxArgsSize -
+ ((PtrUInt (Args) + MaxArgsSize) and $FFFF);
+ Inc (MaxArgsSize, MaxArgsSizeInc);
+ if MaxArgsSize > high (word) then
+ begin
+ DosError := 8; (* Not quite, but "not enough memory" is close enough *)
+ Exit;
+ end;
+ ReallocMem (Args0, MaxArgsSize);
+ Inc (pointer (Args), MaxArgsSizeInc);
+ end;
ArgSize := 0;
Move (QName [1], Args^ [ArgSize], Length (QName));
Inc (ArgSize, Length (QName));
@@ -239,22 +268,28 @@ begin
Args^ [ArgSize] := 0;
end;
- if (DosQueryAppType (PChar (Args), ExecAppType) = 0) and
- (ApplicationType and 3 = ExecAppType and 3) then
+ RC := DosQueryAppType (PChar (Args), ExecAppType);
+ if RC <> 0 then
+ OSErrorWatch (RC)
+ else
+ if (ApplicationType and 3 = ExecAppType and 3) then
(* DosExecPgm should work... *)
- begin
- DSS := false;
- Res.ExitCode := $FFFFFFFF;
- RC := DosExecPgm (ObjName, cardinal (ExecFlags), Args, nil, Res, Path);
- if RC = 0 then
- begin
- LastExecFlags := ExecFlags;
- LastExecRes := Res;
- LastDosErrorModuleName := '';
- end
- else
- if (RC = 190) or (RC = 191) then
- DSS := true;
+ begin
+ DSS := false;
+ Res.ExitCode := $FFFFFFFF;
+ RC := DosExecPgm (ObjName, cardinal (ExecFlags), Args, nil, Res, Path);
+ if RC = 0 then
+ begin
+ LastExecFlags := ExecFlags;
+ LastExecRes := Res;
+ LastDosErrorModuleName := '';
+ end
+ else
+ begin
+ if (RC = 190) or (RC = 191) then
+ DSS := true;
+ OSErrorWatch (RC);
+ end;
end
else
DSS := true;
@@ -273,6 +308,8 @@ begin
LastExecFlags := ExecFlags;
SD.TermQ := @QName [1];
RC := DosCreateQueue (HQ, quFIFO or quConvert_Address, @QName [1]);
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
deAsync,
deAsyncResult:
@@ -318,24 +355,40 @@ begin
SD.ObjectBuffer := @ObjName [1];
SD.ObjectBuffLen := SizeOf (ObjName) - 1;
RC := DosStartSession (SD, SID, PID);
+ if RC <> 0 then
+ OSErrorWatch (RC);
if (RC = 0) or (RC = 457) then
begin
LastExecRes.PID := PID;
if ExecFlags = deSync then
begin
RC := DosReadQueue (HQ, RD, CISize, PCI, 0, 0, Prio, 0);
+ if RC <> 0 then
+ OSErrorWatch (RC);
if (RC = 0) and (PCI^.SessionID = SID) then
begin
LastExecRes.ExitCode := PCI^.Return;
- DosCloseQueue (HQ);
- DosFreeMem (PCI);
+ RC2 := DosCloseQueue (HQ);
+ if RC2 <> 0 then
+ OSErrorWatch (RC2);
+ RC2 := DosFreeMem (PCI);
+ if RC2 <> 0 then
+ OSErrorWatch (RC2);
end
else
- DosCloseQueue (HQ);
+ begin
+ RC2 := DosCloseQueue (HQ);
+ if RC2 <> 0 then
+ OSErrorWatch (RC2);
+ end;
end;
end
else if ExecFlags = deSync then
- DosCloseQueue (HQ);
+ begin
+ RC2 := DosCloseQueue (HQ);
+ if RC2 <> 0 then
+ OSErrorWatch (RC2);
+ end;
end;
end;
if RC <> 0 then
@@ -383,12 +436,15 @@ end;
procedure SetDate (Year, Month, Day: word);
var
DT: TDateTime;
+ RC: cardinal;
begin
DosGetDateTime (DT);
DT.Year := Year;
DT.Month := byte (Month);
DT.Day := byte (Day);
- DosSetDateTime (DT);
+ RC := DosSetDateTime (DT);
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
@@ -407,13 +463,16 @@ end;
procedure SetTime (Hour, Minute, Second, Sec100: word);
var
DT: TDateTime;
+ RC: cardinal;
begin
DosGetDateTime (DT);
DT.Hour := byte (Hour);
DT.Minute := byte (Minute);
DT.Second := byte (Second);
DT.Sec100 := byte (Sec100);
- DosSetDateTime (DT);
+ RC := DosSetDateTime (DT);
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
function DiskFree (Drive: byte): int64;
@@ -426,7 +485,10 @@ begin
DiskFree := int64 (FI.Free_Clusters) *
int64 (FI.Sectors_Per_Cluster) * int64 (FI.Bytes_Per_Sector)
else
- DiskFree := -1;
+ begin
+ DiskFree := -1;
+ OSErrorWatch (RC);
+ end;
end;
@@ -439,7 +501,10 @@ begin
DiskSize := int64 (FI.Total_Clusters) *
int64 (FI.Sectors_Per_Cluster) * int64 (FI.Bytes_Per_Sector)
else
- DiskSize := -1;
+ begin
+ DiskSize := -1;
+ OSErrorWatch (RC);
+ end;
end;
@@ -474,7 +539,10 @@ begin
DosError := integer (DosFindFirst (Path, F.Handle,
Attr and FindResvdMask, F.FStat, SizeOf (F.FStat^),
Count, ilStandard));
- if (DosError = 0) and (Count = 0) then DosError := 18;
+ if DosError <> 0 then
+ OSErrorWatch (DosError)
+ else if Count = 0 then
+ DosError := 18;
DosSearchRec2SearchRec (F);
end;
@@ -488,14 +556,22 @@ begin
Count := 1;
DosError := integer (DosFindNext (F.Handle, F.FStat, SizeOf (F.FStat^),
Count));
- if (DosError = 0) and (Count = 0) then DosError := 18;
+ if DosError <> 0 then
+ OSErrorWatch (DosError)
+ else if Count = 0 then
+ DosError := 18;
DosSearchRec2SearchRec (F);
end;
procedure FindClose (var F: SearchRec);
begin
- if F.Handle <> THandle ($FFFFFFFF) then DosError := DosFindClose (F.Handle);
+ if F.Handle <> THandle ($FFFFFFFF) then
+ begin
+ DosError := integer (DosFindClose (F.Handle));
+ if DosError <> 0 then
+ OSErrorWatch (DosError);
+ end;
Dispose (F.FStat);
end;
@@ -607,7 +683,9 @@ begin
RC := DosQueryPathInfo (P, ilStandard, @PathInfo, SizeOf (PathInfo));
DosError := integer (RC);
if RC = 0 then
- Attr := PathInfo.AttrFile;
+ Attr := PathInfo.AttrFile
+ else
+ OSErrorWatch (RC);
end;
@@ -628,11 +706,15 @@ begin
{$endif FPC_ANSI_TEXTFILEREC}
RC := DosQueryPathInfo (P, ilStandard, @PathInfo, SizeOf (PathInfo));
if RC = 0 then
- begin
+ begin
PathInfo.AttrFile := Attr;
RC := DosSetPathInfo (P, ilStandard, @PathInfo, SizeOf (PathInfo),
doWriteThru);
- end;
+ if RC <> 0 then
+ OSErrorWatch (RC);
+ end
+ else
+ OSErrorWatch (RC);
DosError := integer (RC);
end;
diff --git a/rtl/os2/doscall2.pas b/rtl/os2/doscall2.pas
new file mode 100644
index 0000000000..feb0be6220
--- /dev/null
+++ b/rtl/os2/doscall2.pas
@@ -0,0 +1,2236 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014 by the Free Pascal development team.
+
+ Additional OS/2 API functions implemented in DOSCALL1.DLL:
+ - File handling (64-bit functions available in WSeB/MCP/eCS and
+ protected access to file handles as available in OS/2 2.1+)
+ - Certain SMP related functions for querying and setting status
+ of processors and thread and system affinity (available
+ in SMP-ready versions of OS/2 kernels)
+ - Support for working with extended LIBPATH (available in
+ OS/2 Warp 4.0 and higher).
+ Availability of individual functions is checked dynamically during
+ initialization and fake (simulated) functions are used if running
+ under an OS/2 version not providing the respective functionality.
+
+ 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 DosCall2;
+
+{***************************************************************************}
+interface
+{***************************************************************************}
+
+uses
+ DosCalls, Strings;
+
+const
+(* Status in DosGet/SetProcessorStatus *)
+ PROC_OFFLINE = 0; (* Processor is offline *)
+ PROC_ONLINE = 1; (* Processor is online *)
+(* Scope in DosQueryThreadAffinity *)
+ AFNTY_THREAD = 0; (* Return the current threads processor affinity mask. *)
+ AFNTY_SYSTEM = 1; (* Return the system's current capable processor affinity
+ mask. *)
+(* Flags in DosQuery/SetExtLibPath *)
+ BEGIN_LIBPATH = 1; (* The new path is searched before the LIBPATH. *)
+ END_LIBPATH = 2; (* The new path is searched after the LIBPATH. *)
+
+(* Constants for DosSuppressPopups *)
+ SPU_DisableSuppression = 0;
+ SPU_EnableSuppression = 1;
+
+(* Constants for DosDumpProcess *)
+ DDP_DisableProcDump = 0;
+ DDP_EnableProcDump = 1;
+ DDP_PerformProcDump = 2;
+
+(* Constants for DosPerfSysCall *)
+ Cmd_KI_Enable = $60;
+ Cmd_KI_RdCnt = $63;
+ Cmd_SoftTrace_Log = $14;
+
+(* Constants for DosQueryABIOSSupport *)
+ HW_Cfg_MCA = 1;
+ HW_Cfg_EISA = 2;
+ HW_Cfg_ABIOS_Supported = 4;
+ HW_Cfg_ABIOS_Present = 8;
+ HW_Cfg_PCI = 16;
+ HW_Cfg_OEM_ABIOS = 32;
+ HW_Cfg_IBM_ABIOS = 0;
+ HW_Cfg_Pentium_CPU = 64;
+
+(* Constants for DosQueryThreadContext - Level *)
+ Context_Control = 1; { Control registers: SS:ESP, CS:EIP, EFLAGS and EBP }
+ Context_Integer = 2; { EAX, EBX, ECX, EDX, ESI and EDI }
+ Context_Segments = 4; { Segment registers: DS, ES, FS, and GS }
+ Context_Floating_Point = 8; { Numeric coprocessor state }
+ Context_Full = 15; { All of the above }
+
+
+
+type
+ TFileLockL = record
+ case boolean of
+ false:
+ (Offset: int64; (* Offset to beginning of the lock (or unlock) range. *)
+ Range: int64); (* Length of the lock (or unlock) range in bytes. *)
+ (* Length of 0 => locking (or unlocking) not required. *)
+ true:
+ (lOffset: int64;
+ lRange: int64);
+ end;
+ PFileLockL = ^TFileLockL;
+
+ TMPAffinity = record
+ Mask: array [0..1] of cardinal;
+ end;
+ PMPAffinity = ^TMPAffinity;
+
+ TCPUUtil = record
+ TotalLow,
+ TotalHigh,
+ IdleLow,
+ IdleHigh,
+ BusyLow,
+ BusyHigh,
+ IntrLow,
+ IntrHigh: cardinal;
+ end;
+ PCPUUtil = ^TCPUUtil;
+
+
+function DosOpenL (FileName: PChar; var Handle: THandle;
+ var Action: cardinal; InitSize: int64;
+ Attrib, OpenFlags, FileMode: cardinal;
+ EA: pointer): cardinal; cdecl;
+
+function DosSetFilePtrL (Handle: THandle; Pos: int64; Method: cardinal;
+ var PosActual: int64): cardinal; cdecl;
+
+function DosSetFileSizeL (Handle: THandle; Size: int64): cardinal; cdecl;
+
+function DosProtectOpen (FileName: PChar; var Handle: longint;
+ var Action: longint; InitSize, Attrib,
+ OpenFlags, OpenMode: longint; ea: PEAOp2;
+ var FileHandleLockID: cardinal): cardinal; cdecl;
+
+function DosProtectOpen (const FileName: string; var Handle: longint;
+ var Action: longint; InitSize, Attrib,
+ OpenFlags, OpenMode: longint; ea: PEAOp2;
+ var FileHandleLockID: cardinal): cardinal;
+
+function DosProtectOpen (const FileName: string; var Handle: THandle;
+ var Action: cardinal; InitSize, Attrib,
+ OpenFlags, OpenMode: cardinal; ea: PEAOp2;
+ var FileHandleLockID: cardinal): cardinal;
+
+function DosProtectRead (Handle: longint; var Buffer; Count: longint;
+ var ActCount: longint; FileHandleLockID: cardinal): cardinal; cdecl;
+
+function DosProtectWrite (Handle: longint; const Buffer; Count: longint;
+ var ActCount: longint;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+function DosProtectSetFilePtr (Handle: longint; Pos, Method: longint;
+ var PosActual: longint;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+function DosProtectSetFilePtr (Handle: THandle; Pos: longint;
+ FileHandleLockID: cardinal): cardinal;
+
+function DosProtectGetFilePtr (Handle: longint;
+ var PosActual: longint; FileHandleLockID: cardinal): cardinal;
+
+function DosProtectGetFilePtr (Handle: THandle;
+ var PosActual: cardinal; FileHandleLockID: cardinal): cardinal;
+
+function DosProtectEnumAttribute (Handle: THandle; Entry: cardinal; var Buf;
+ BufSize: cardinal; var Count: cardinal;
+ InfoLevel: cardinal;
+ FileHandleLockID: cardinal): cardinal;
+
+function DosProtectEnumAttribute (const FileName: string; Entry: cardinal;
+ var Buf; BufSize: cardinal;
+ var Count: cardinal; InfoLevel: cardinal;
+ FileHandleLockID: cardinal): cardinal;
+
+function DosProtectOpen (FileName: PChar; var Handle: THandle;
+ var Action: cardinal; InitSize, Attrib,
+ OpenFlags, OpenMode: cardinal; ea: PEAOp2;
+ var FileHandleLockID: cardinal): cardinal; cdecl;
+
+function DosProtectClose (Handle: THandle;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+function DosProtectRead (Handle: THandle; var Buffer; Count: cardinal;
+ var ActCount: cardinal; FileHandleLockID: cardinal): cardinal; cdecl;
+
+function DosProtectWrite (Handle: THandle; const Buffer; Count: cardinal;
+ var ActCount: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+function DosProtectSetFilePtr (Handle: THandle; Pos: longint;
+ Method: cardinal; var PosActual: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+function DosProtectSetFileSize (Handle: THandle; Size: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+function DosProtectQueryFHState (Handle: THandle; var FileMode: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+function DosProtectSetFHState (Handle: THandle; FileMode: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+function DosProtectQueryFileInfo (Handle: THandle; InfoLevel: cardinal;
+ AFileStatus: PFileStatus; FileStatusLen: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+function DosProtectSetFileInfo (Handle: THandle; InfoLevel: cardinal;
+ AFileStatus: PFileStatus; FileStatusLen: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+function DosProtectEnumAttribute (RefType: cardinal; AFile: pointer;
+ Entry: cardinal; var Buf; BufSize: cardinal;
+ var Count: cardinal; InfoLevel: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+function DosProtectSetFileLocks (Handle: THandle;
+ var Unlock, Lock: TFileLock;
+ Timeout, Flags: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+
+(*
+ DosCancelLockRequestL cancels an outstanding DosSetFileLocksL request.
+ If two threads in a process are waiting on a lock file range, and another
+ thread issues DosCancelLockRequestL for that lock file range, then both
+ waiting threads are released.
+ Not all file-system drivers (FSDs) can cancel an outstanding lock request.
+ Local Area Network (LAN) servers cannot cancel an outstanding lock request
+ if they use a version of the operating system prior to OS/2 Version 2.00.
+
+Possible results:
+ 0 No_Error
+ 6 Error_Invalid_Handle
+ 87 Error_Invalid_Parameter
+ 173 Error_Cancel_Violation
+
+ Handle = File handle used in the DosSetFileLocksL function
+ that is to be cancelled.
+ Lock = Specification of the lock request to be cancelled.
+*)
+function DosCancelLockRequestL (Handle: THandle;
+ var Lock: TFileLockL): cardinal; cdecl;
+
+(*
+DosProtectSetFileLocksL locks and unlocks a range of an open file.
+
+Parameters:
+ Handle = file handle
+ Unlock = record containing the offset and length of a range to be unlocked
+ Lock = record containing the offset and length of a range to be locked
+ Timeout = the maximum time that the process is to wait for the requested locks
+ (in milliseconds)
+ Flags = bit mask specifying action to be taken.
+ Bits 31..2 are reserved.
+ Bit 1 (Atomic) means request for atomic locking - if the bit is set
+ and the lock range is equal to the unlock range, an atomic lock occurs.
+ If this bit is set to 1 and the lock range is not equal to the unlock
+ range, an error is returned. If this bit is set to 0, then the lock
+ may or may not occur atomically with the unlock.
+ Bit 0 (Share) defines the type of access that other processes may have
+ to the file range that is being locked. If this bit is set to 0
+ (default), other processes have no access to the locked file range.
+ The current process has exclusive access to the locked file range,
+ which must not overlap any other locked file range. If this bit is set
+ to 1, the current process and other processes have shared read only
+ access to the locked file range. A file range with shared access may
+ overlap any other file range with shared access, but must not overlap
+ any other file range with exclusive access.
+
+ FileHandleLockID = filehandle lockid returned by a previous DosProtectOpenL.
+
+Possible return codes:
+0 NO_ERROR
+6 ERROR_INVALID_HANDLE
+33 ERROR_LOCK_VIOLATION
+36 ERROR_SHARING_BUFFER_EXCEEDED
+87 ERROR_INVALID_PARAMETER
+95 ERROR_INTERRUPT
+174 ERROR_ATOMIC_LOCK_NOT_SUPPORTED
+175 ERROR_READ_LOCKS_NOT_SUPPORTED
+
+Remarks:
+DosProtectSetFileLocksL allows a process to lock and unlock a range in a file.
+The time during which a file range is locked should be short.
+
+If the lock and unlock ranges are both zero, ERROR_LOCK_VIOLATION is returned
+to the caller.
+
+If you only want to lock a file range, set the unlock file offset and the
+unlock range length to zero.
+
+If you only want to unlock a file range, set the lock file offset and the lock
+range length to zero.
+
+When the Atomic bit of flags is set to 0, and DosProtectSetFileLocksL specifies
+a lock operation and an unlock operation, the unlock operation occurs first,
+and then the lock operation is performed. If an error occurs during the unlock
+operation, an error code is returned and the lock operation is not performed.
+If an error occurs during the lock operation, an error code is returned and the
+unlock remains in effect if it was successful.
+
+The lock operation is atomic when all of these conditions are met:
+- The Atomic bit is set to 1 in flags
+- The unlock range is the same as the lock range
+- The process has shared access to the file range, and has requested exclusive
+ access to it; or the process has exclusive access to the file range, and has
+ requested shared access to it.
+
+Some file system drivers (FSDs) may not support atomic lock operations.
+Versions of the operating system prior to OS/2 Version 2.00 do not support
+atomic lock operations. If the application receives the error code
+ERROR_ATOMIC_LOCK_NOT_SUPPORTED, the application should unlock the file range
+and then lock it using a non-atomic operation (with the atomic bit set to 0
+in Flags). The application should also refresh its internal buffers before
+making any changes to the file.
+
+If you issue DosProtectClose to close a file with locks still in effect,
+the locks are released in no defined sequence.
+
+If you end a process with a file open, and you have locks in effect in that
+file, the file is closed and the locks are released in no defined sequence.
+
+The locked range can be anywhere in the logical file. Locking beyond the end
+of the file is not an error. A file range to be locked exclusively must first
+be cleared of any locked file sub-ranges or overlapping locked file ranges.
+
+If you repeat DosProtectSetFileLocksL for the same file handle and file range,
+then you duplicate access to the file range. Access to locked file ranges
+is not duplicated across DosExecPgm. The proper method of using locks is
+to attempt to lock the file range, and to examine the return value.
+
+The following table shows the level of access granted when the accessed file
+range is locked with an exclusive lock or a shared lock. Owner refers to
+a process that owns the lock. Non-owner refers to a process that does not own
+the lock.
+
+ Action Exclusive Lock Shared Lock
+===================================================================
+ Owner read Success Success
+-------------------------------------------------------------------
+ Non-owner Wait for unlock. Return Success
+ read error code after time-out.
+-------------------------------------------------------------------
+ Owner write Success Wait for unlock. Return
+ error code after time-out.
+-------------------------------------------------------------------
+ Non-owner Wait for unlock. Return Wait for unlock. Return
+ write error code after time-out. error code after time-out.
+-------------------------------------------------------------------
+
+
+If only locking is specified, DosProtectSetFileLocksL locks the specified file
+range using Lock. If the lock operation cannot be accomplished, an error is
+returned, and the file range is not locked.
+
+After the lock request is processed, a file range can be unlocked using the
+Unlock parameter of another DosProtectSetFileLocksL request. If unlocking
+cannot be accomplished, an error is returned.
+
+Instead of denying read/write access to an entire file by specifying access
+and sharing modes with DosProtectOpenL requests, a process attempts to lock
+only the range needed for read/write access and examines the error code
+returned.
+
+Once a specified file range is locked exclusively, read and write access by
+another process is denied until the file range is unlocked. If both unlocking
+and locking are specified by DosProtectSetFileLocksL, the unlocking operation
+is performed first, then locking is done.
+*)
+function DosProtectSetFileLocksL (Handle: THandle; var Unlock: TFileLockL;
+ var Lock: TFileLockL; Timeout: cardinal; Flags: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+(*
+DosSetFileLocksL locks and unlocks a range of an open file.
+
+Parameters:
+ Handle = file handle
+ Unlock = record containing the offset and length of a range to be unlocked
+ Lock = record containing the offset and length of a range to be locked
+ Timeout = the maximum time that the process is to wait for the requested locks
+ (in milliseconds)
+ Flags = bit mask specifying action to be taken.
+ Bits 31..2 are reserved.
+ Bit 1 (Atomic) means request for atomic locking - if the bit is set
+ and the lock range is equal to the unlock range, an atomic lock occurs.
+ If this bit is set to 1 and the lock range is not equal to the unlock
+ range, an error is returned. If this bit is set to 0, then the lock
+ may or may not occur atomically with the unlock.
+ Bit 0 (Share) defines the type of access that other processes may have
+ to the file range that is being locked. If this bit is set to 0
+ (default), other processes have no access to the locked file range.
+ The current process has exclusive access to the locked file range,
+ which must not overlap any other locked file range. If this bit is set
+ to 1, the current process and other processes have shared read only
+ access to the locked file range. A file range with shared access may
+ overlap any other file range with shared access, but must not overlap
+ any other file range with exclusive access.
+
+Possible return codes:
+ 0 NO_ERROR
+ 1 ERROR_INVALID_FUNCTION
+ 6 ERROR_INVALID_HANDLE
+ 33 ERROR_LOCK_VIOLATION
+ 36 ERROR_SHARING_BUFFER_EXCEEDED
+ 87 ERROR_INVALID_PARAMETER
+ 95 ERROR_INTERRUPT
+174 ERROR_ATOMIC_LOCK_NOT_SUPPORTED
+175 ERROR_READ_LOCKS_NOT_SUPPORTED
+
+Remarks:
+DosSetFileLocksL allows a process to lock and unlock a range in a file. The
+time during which a file range is locked should be short.
+
+If the lock and unlock ranges are both zero, ERROR_LOCK_VIOLATION is returned
+to the caller.
+
+If you only want to lock a file range, set the unlock file offset and the
+unlock range length to zero.
+
+If you only want to unlock a file range, set the lock file offset and the lock
+range length to zero.
+
+When the Atomic bit of flags is set to 0, and DosSetFileLocksL specifies a lock
+operation and an unlock operation, the unlock operation occurs first, and then
+the lock operation is performed. If an error occurs during the unlock
+operation, an error code is returned and the lock operation is not performed.
+If an error occurs during the lock operation, an error code is returned and the
+unlock remains in effect if it was successful.
+
+The lock operation is atomic when all of these conditions are met:
+- The Atomic bit is set to 1 in flags
+- The unlock range is the same as the lock range
+- The process has shared access to the file range, and has requested exclusive
+ access to it; or the process has exclusive access to the file range, and has
+ requested shared access to it.
+
+Some file system drivers (FSDs) may not support atomic lock operations.
+Versions of the operating system prior to OS/2 Version 2.00 do not support
+atomic lock operations. If the application receives the error code
+ERROR_ATOMIC_LOCK_NOT_SUPPORTED, the application should unlock the file range
+and then lock it using a non-atomic operation (with the atomic bit set to 0 in
+flags). The application should also refresh its internal buffers before making
+any changes to the file.
+
+If you issue DosClose to close a file with locks still in effect, the locks are
+released in no defined sequence.
+
+If you end a process with a file open, and you have locks in effect in that
+file, the file is closed and the locks are released in no defined sequence.
+
+The locked range can be anywhere in the logical file. Locking beyond the end of
+the file is not an error. A file range to be locked exclusively must first be
+cleared of any locked file subranges or overlapping locked file ranges.
+
+If you repeat DosSetFileLocksL for the same file handle and file range, then
+you duplicate access to the file range. Access to locked file ranges is not
+duplicated across DosExecPgm. The proper method of using locks is to attempt to
+lock the file range, and to examine the return value.
+
+The following table shows the level of access granted when the accessed file
+range is locked with an exclusive lock or a shared lock. Owner refers to
+a process that owns the lock. Non-owner refers to a process that does not own
+the lock.
+
+ Action Exclusive Lock Shared Lock
+===================================================================
+ Owner read Success Success
+-------------------------------------------------------------------
+ Non-owner Wait for unlock. Return Success
+ read error code after time-out.
+-------------------------------------------------------------------
+ Owner write Success Wait for unlock. Return
+ error code after time-out.
+-------------------------------------------------------------------
+ Non-owner Wait for unlock. Return Wait for unlock. Return
+ write error code after time-out. error code after time-out.
+-------------------------------------------------------------------
+
+If only locking is specified, DosSetFileLocksL locks the specified file range
+using Lock. If the lock operation cannot be accomplished, an error is
+returned, and the file range is not locked.
+
+After the lock request is processed, a file range can be unlocked using the
+Unlock parameter of another DosSetFileLocksL request. If unlocking cannot be
+accomplished, an error is returned.
+
+Instead of denying read/write access to an entire file by specifying access and
+sharing modes with DosOpenL requests, a process attempts to lock only the range
+needed for read/write access and examines the error code returned.
+
+Once a specified file range is locked exclusively, read and write access by
+another process is denied until the file range is unlocked. If both unlocking
+and locking are specified by DosSetFileLocksL, the unlocking operation is
+performed first, then locking is done.
+*)
+function DosSetFileLocksL (Handle: THandle; var Unlock: TFileLockL;
+ var Lock: TFileLockL; Timeout: cardinal; Flags: cardinal): cardinal; cdecl;
+
+(*
+DosProtectOpenL opens a new file, an existing file, or a replacement for an
+existing file and returns a protected file handle. An open file can have
+extended attributes.
+
+Parameters:
+ FileName = ASCIIZ path name of the file or device to be opened.
+ Handle = handle for the file is returned here.
+ Action = value that specifies the action taken by DosProtectOpenL is returned
+ here; if DosProtectOpenL fails, this value has no meaning, otherwise,
+ it is one of the following values:
+ 1 FILE_EXISTED - file already existed.
+ 2 FILE_CREATED - file was created.
+ 3 FILE_TRUNCATED - file existed and was changed to a given size (file was
+ replaced).
+ InitSize = new logical size of the file (end of data, EOD), in bytes; this
+ parameter is significant only when creating a new file or replacing
+ an existing one. Otherwise, it is ignored. It is an error to create
+ or replace a file with a nonzero length if the OpenMode
+ Access-Mode flag is set to read-only.
+ Attrib = file attributes; this parameter contains the following bit fields:
+ Bits Description
+
+ 31..6 - reserved, must be 0.
+ 5 FILE_ARCHIVED (0x00000020) - file has been archived.
+ 4 FILE_DIRECTORY (0x00000010) - file is a subdirectory.
+ 3 - reserved, must be 0.
+ 2 FILE_SYSTEM (0x00000004) - file is a system file.
+ 1 FILE_HIDDEN (0x00000002) - file is hidden and does not appear in
+ a directory listing.
+ 0 FILE_READONLY (0x00000001) - file can be read from, but not written
+ to.
+ 0 FILE_NORMAL (0x00000000) - file can be read from or written to.
+
+File attributes apply only if the file is created. These bits may be set
+individually or in combination. For example, an attribute value of 0x00000021
+(bits 5 and 0 set to 1) indicates a read-only file that has been archived.
+
+ OpenFlags = the action to be taken depending on whether the file exists or
+ does not exist. This parameter contains the following bit fields:
+ Bits Description
+ 31..8 - reserved, must be 0.
+ 7..4 - the following flags apply if the file does not exist:
+ 0000 OPEN_ACTION_FAIL_IF_NEW
+ Open an existing file; fail if the file does not exist.
+ 0001 OPEN_ACTION_CREATE_IF_NEW
+ Create the file if the file does not exist.
+ 3..0 The following flags apply if the file does not exist:
+ 0000 OPEN_ACTION_FAIL_IF_EXISTS
+ Open the file; fail if the file already exists.
+ 0001 OPEN_ACTION_OPEN_IF_EXISTS
+ Open the file if it already exists.
+ 0010 OPEN_ACTION_REPLACE_IF_EXISTS
+ Replace the file if it already exists.
+
+ OpenMode = the mode of the open function. This parameter contains the
+ following bit fields:
+ Bits Description
+ 31 - reserved, must be zero.
+ 30 OPEN_FLAGS_PROTECTED_HANDLE (0x40000000) - protected file handle flag.
+ 0 - unprotected Handle
+ 1 - protected Handle
+ Protected handle requires the FileHandleLockID to be specified on subsequent
+ DosProtectxxxx calls.
+
+ Unprotected handle requires the FileHandleLockID value to be specified as
+ zero on subsequent DosProtectxxxx calls. An unprotected handle may be used
+ with the unprotected calls such as DosRead and DosWrite.
+
+ 29 OPEN_SHARE_DENYLEGACY (0x10000000)
+ Deny read/write access by the DosOpen command:
+ 0 - allow read/write access by the DosOpen command.
+ 1 - deny read/write access by the DosOpen command.
+ A file opened by DosOpenL will not be allowed to grow larger than 2GB while
+ that same file is open via a legacy DosOpen call. Setting this bit to 1 will
+ prevent access by the obsolete DosOpen API and ensure that no error will
+ occur when growing the file.
+ 28..16 - reserved, must be zero.
+ 15 OPEN_FLAGS_DASD (0x00008000)
+ Direct Open flag:
+ 0 - FileName represents a file to be opened normally.
+ 1 - FileName is drive (such as C or A), and represents a mounted
+ disk or diskette volume to be opened for direct access.
+ 14 OPEN_FLAGS_WRITE_THROUGH (0x00004000)
+ Write-Through flag:
+ 0 - writes to the file may go through the file-system driver's
+ cache; the file-system driver writes the sectors when the
+ cache is full or the file is closed.
+ 1 - writes to the file may go through the file-system driver's
+ cache, but the sectors are written (the actual file I/O
+ operation is completed) before a synchronous write call
+ returns. This state of the file defines it as a synchronous
+ file. For synchronous files, this bit must be set, because the
+ data must be written to the medium for synchronous write
+ operations.
+ This bit flag is not inherited by child processes.
+ 13 OPEN_FLAGS_FAIL_ON_ERROR (0x00002000)
+ Fail-Errors flag. Media I/O errors are handled as follows:
+ 0 - reported through the system critical-error handler.
+ 1 - reported directly to the caller by way of a return code.
+ Media I/O errors generated through Category 08h Logical Disk Control IOCtl
+ Commands always get reported directly to the caller by way of return code.
+ The Fail-Errors function applies only to non-IOCtl handle-based file I/O
+ calls.
+
+ This flag bit is not inherited by child processes.
+
+ 12 OPEN_FLAGS_NO_CACHE (0x00001000)
+ No-Cache/Cache flag:
+ 0 - the file-system driver should place data from I/O operations
+ into its cache.
+ 1 - I/O operations to the file need not be done through the
+ file-system driver's cache.
+ The setting of this bit determines whether file-system drivers should place
+ data into the cache. Like the write-through bit, this is a per-handle bit,
+ and is not inherited by child processes.
+ 11 - reserved; must be 0.
+ 10..8 - the locality of reference flags contain information about how the
+ application is to get access to the file. The values are as
+ follows:
+ 000 OPEN_FLAGS_NO_LOCALITY (0x00000000)
+ No locality known.
+ 001 OPEN_FLAGS_SEQUENTIAL (0x00000100)
+ Mainly sequential access.
+ 010 OPEN_FLAGS_RANDOM (0x00000200)
+ Mainly random access.
+ 011 OPEN_FLAGS_RANDOMSEQUENTIAL (0x00000300)
+ Random with some locality.
+ 7 OPEN_FLAGS_NOINHERIT (0x00000080)
+ Inheritance flag:
+ 0 - file handle is inherited by a process created from a call to
+ DosExecPgm.
+ 1 - file handle is private to the current process.
+ This bit is not inherited by child processes.
+ 6..4 Sharing Mode flags; this field defines any restrictions to file
+ access placed by the caller on other processes. The values are as
+ follows:
+ 001 OPEN_SHARE_DENYREADWRITE (0x00000010)
+ Deny read write access.
+ 010 OPEN_SHARE_DENYWRITE (0x00000020)
+ Deny write access.
+ 011 OPEN_SHARE_DENYREAD (0x00000030)
+ Deny read access.
+ 100 OPEN_SHARE_DENYNONE (0x00000040)
+ Deny neither read nor write access (deny none).
+ Any other value is invalid.
+ 3 Reserved; must be 0.
+ 2..0 Access-Mode flags. This field defines the file access required by the
+ caller. The values are as follows:
+ 000 OPEN_ACCESS_READONLY (0x00000000)
+ Read-only access
+ 001 OPEN_ACCESS_WRITEONLY (0x00000001)
+ Write-only access
+ 010 OPEN_ACCESS_READWRITE (0x00000002)
+ Read/write access.
+ Any other value is invalid, as are any other combinations.
+
+File sharing requires the cooperation of sharing processes. This cooperation is
+communicated through sharing and access modes. Any sharing restrictions placed
+on a file opened by a process are removed when the process closes the file with
+a DosClose request.
+
+Sharing Mode:
+Specifies the type of file access that other processes may have. For example,
+if other processes can continue to read the file while your process is
+operating on it, specify Deny Write. The sharing mode prevents other processes
+from writing to the file but still allows them to read it.
+
+Access Mode:
+Specifies the type of file access (access mode) needed by your process. For
+example, if your process requires read/write access, and another process has
+already opened the file with a sharing mode of Deny None, your DosProtectOpenL
+request succeeds. However, if the file is open with a sharing mode of Deny
+Write, the process is denied access.
+
+If the file is inherited by a child process, all sharing and access
+restrictions also are inherited.
+
+If an open file handle is duplicated by a call to DosDupHandle, all sharing and
+access restrictions also are duplicated.
+
+ EA = pointer to an extended attribute buffer. The address of the
+ extended-attribute buffer, which contains an EAOP2 structure. The
+ fpFEA2List field in the EAOP2 structure points to a data area where the
+ relevant FEA2 list is to be found. The fpGEA2List and oError fields are
+ ignored.
+Output fpGEA2List and fpFEA2List are unchanged. The area that fpFEA2List points
+to is unchanged. If an error occurred during the set, oError is the offset of
+the FEA2 entry where the error occurred. The return code from DosProtectOpenL
+is the error code for that error condition. If no error occurred, oError is
+undefined.
+
+ EA is nil, then no extended attributes are defined for the file. If extended
+ attributes are not to be defined or modified, the pointer EA must be set to
+ nil.
+
+ FileHandleLockID = 32-bit LockID for the file handle is returned here.
+
+Possible return codes:
+ 0 NO_ERROR
+ 2 ERROR_FILE_NOT_FOUND
+ 3 ERROR_PATH_NOT_FOUND
+ 4 ERROR_TOO_MANY_OPEN_FILES
+ 5 ERROR_ACCESS_DENIED
+ 12 ERROR_INVALID_ACCESS
+ 26 ERROR_NOT_DOS_DISK
+ 32 ERROR_SHARING_VIOLATION
+ 36 ERROR_SHARING_BUFFER_EXCEEDED
+ 82 ERROR_CANNOT_MAKE
+ 87 ERROR_INVALID_PARAMETER
+ 99 ERROR_DEVICE_IN_USE
+108 ERROR_DRIVE_LOCKED
+110 ERROR_OPEN_FAILED
+112 ERROR_DISK_FULL
+206 ERROR_FILENAME_EXCED_RANGE
+231 ERROR_PIPE_BUSY
+
+Remarks:
+A successful DosProtectOpenL request returns a handle and a 32-bit LockID for
+accessing the file. The read/write pointer is set at the first byte of the
+file. The position of the pointer can be changed with DosProtectSetFilePtrL or
+by read and write operations on the file.
+
+The file s date and time can be queried with DosProtectQueryFileInfo. They are
+set with DosProtectSetFileInfo.
+
+The read-only attribute of a file can be set with the ATTRIB command.
+
+ulAttribute cannot be set to Volume Label. To set volume-label information,
+issue DosProtectSetFileInfo with a logical drive number. Volume labels cannot
+be opened.
+
+InitSize affects the size of the file only when the file is new or is
+a replacement. If an existing file is opened, cbFile is ignored. To change the
+size of the existing file, issue DosProtectSetFileSizeL.
+
+The value in InitSize is a recommended size. If the full size cannot be
+allocated, the open request may still succeed. The file system makes
+a reasonable attempt to allocate the new size in an area that is as nearly
+contiguous as possible on the medium. When the file size is extended, the
+values of the new bytes are undefined.
+
+The Direct Open bit provides direct access to an entire disk or diskette
+volume, independent of the file system. This mode of opening the volume that is
+currently on the drive returns a handle to the calling function; the handle
+represents the logical volume as a single file. The calling function specifies
+this handle with a DosDevIOCtl Category 8, DSK_LOCKDRIVE request to prevent
+other processes from accessing the logical volume. When you are finished using
+the logical volume, issue a DosDevIOCtl Category 8, DSK_UNLOCKDRIVE request to
+allow other processes to access the logical volume.
+
+The file-handle state bits can be set by DosProtectOpenL and
+DosProtectSetFHState. An application can query the file-handle state bits, as
+well as the rest of the Open Mode field, by issuing DosProtectQueryFHState.
+
+You can use an TEAOP2 structure to set extended attributes in EA when creating
+a file, replacing an existing file, or truncating an existing file. No extended
+attributes are set when an existing file is just opened.
+
+A replacement operation is logically equivalent to atomically deleting and
+re-creating the file. This means that any extended attributes associated with
+the file also are deleted before the file is re-created.
+
+The FileHandleLockID returned is required on each of the DosProtectxxx
+functions. An incorrect pfhFileHandleLockID on subsequent DosProtectxxx calls
+results in an ERROR_ACCESS_DENIED return code.
+
+The DosProtectxxx functions can be used with a NULL filehandle LockID, if the
+subject filehandle was obtained from DosOpen.
+*)
+function DosProtectOpenL (FileName: PChar; var Handle: THandle;
+ var Action: cardinal; InitSize: int64; Attrib,
+ OpenFlags, OpenMode: cardinal; EA: PEAOp2;
+ var FileHandleLockID: cardinal): cardinal; cdecl;
+
+
+(*
+DosProtectSetFilePtrL moves the read or write pointer according to the type
+of move specified.
+
+Parameters:
+ Handle = the handle returned by a previous DosOpenL function.
+ Pos = The signed distance (offset) to move, in bytes.
+ Method = The method of moving - location in the file at which the read/write
+ pointer starts before adding the Pos offset. The values and their
+ meanings are as shown in the following list:
+ 0 FILE_BEGIN - move the pointer from the beginning of the file.
+ 1 FILE_CURRENT - move the pointer from the current location of the
+ read/write pointer.
+ 2 FILE_END - move the pointer from the end of the file; use this method
+ to determine a file's size.
+ PosActual = address of the new pointer location.
+ FileHandleLockID = The filehandle lockid returned by a previous
+ DosProtectOpenL.
+
+Possible return codes:
+ 0 NO_ERROR
+ 1 ERROR_INVALID_FUNCTION
+ 6 ERROR_INVALID_HANDLE
+132 ERROR_SEEK_ON_DEVICE
+131 ERROR_NEGATIVE_SEEK
+130 ERROR_DIRECT_ACCESS_HANDLE
+
+Remarks:
+
+The read/write pointer in a file is a signed 64-bit number. A negative value
+for Pos moves the pointer backward in the file; a positive value moves it
+forward. DosProtectSetFilePtrL cannot be used to move to a negative position in
+the file.
+
+DosProtectSetFilePtrL cannot be used for a character device or pipe.
+*)
+function DosProtectSetFilePtrL (Handle: THandle; Pos: int64;
+ Method: cardinal; var PosActual: int64;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+(*
+DosProtectSetFileSizeL changes the size of a file.
+
+Parameters:
+ Handle = handle of the file whose size to be changed.
+ Size = new size, in bytes, of the file.
+ FileHandleLockID = the filehandle lockid obtained from DosProtectOpenL.
+
+Possible return codes:
+ 0 NO_ERROR
+ 5 ERROR_ACCESS_DENIED
+ 6 ERROR_INVALID_HANDLE
+ 26 ERROR_NOT_DOS_DISK
+ 33 ERROR_LOCK_VIOLATION
+ 87 ERROR_INVALID_PARAMETER
+112 ERROR_DISK_FULL
+
+Remarks:
+
+When DosProtectSetFileSizeL is issued, the file must be open in a mode that
+allows write access.
+
+The size of the open file can be truncated or extended. If the file size is
+being extended, the file system tries to allocate additional bytes in
+a contiguous (or nearly contiguous) space on the medium. The values of the new
+bytes are undefined.
+*)
+function DosProtectSetFileSizeL (Handle: THandle; Size: int64;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+(*
+DosGetProcessorStatus allows checking status of individual processors
+in a SMP machine.
+
+Parameters:
+ProcID = Procesor ID numbered 1 through n, where there are n processors in
+ total.
+Status = Returned processor status defined as follows:
+ PROC_OFFLINE 0x00000000 Processor is offline
+ PROC_ONLINE 0x00000001 Processor is online
+
+Possible return codes:
+ 0 NO_ERROR
+87 ERROR_INVALID_PARAMETER
+*)
+function DosGetProcessorStatus (ProcID: cardinal;
+ var Status: cardinal): cardinal; cdecl;
+
+
+(*
+DosSetProcessorStatus sets the ONLINE or OFFLINE status of a processor on
+an SMP system. The processor status may be queried using DosGetProcessorStatus.
+ONLINE status implies the processor is available for running work. OFFLINE
+status implies the processor is not available for running work. The processor
+that executes DosSetProcessorStatus must be ONLINE.
+
+Parameters:
+ProcID = Processor ID numbered from 1 through n, where there are n processors
+ in total.
+Status = Requested processor status defined as follows:
+ PROC_OFFLINE 0x00000000 Processor is offline.
+ PROC_ONLINE 0x00000001 Processor is online.
+
+Possible return codes:
+ 0 NO_ERROR
+87 ERROR_INVALID_PARAMETER
+*)
+function DosSetProcessorStatus (ProcID: cardinal;
+ Status: cardinal): cardinal; cdecl;
+
+(*
+DosQueryThreadAffinity allows a thread to inquire for the current thread's
+processor affinity mask and the system's capable processor affinity mask.
+
+Parameters:
+Scope = Scope of the query defined by one of the following values:
+ AFNTY_THREAD Return the current threads processor affinity mask.
+ AFNTY_SYSTEM Return the system's current capable processor affinity mask.
+AffinityMask = Affinity mask is returned here; processors 0..31 are in Mask [0]
+ and processors 32..63 are in Mask [1].
+
+Possible return codes:
+13 ERROR_INVALID_DATA
+87 ERROR_INVALID_PARAMETER
+*)
+function DosQueryThreadAffinity (Scope: cardinal;
+ var AffinityMask: TMPAffinity): cardinal; cdecl;
+
+(*
+DosQueryExtLibPath returns the current path to be searched before or after the
+system LIBPATH when locating DLLs.
+
+Parameters:
+ExtLIBPATH = Buffer for receiving the extended LIBPATH string.
+
+???
+If the buffer pointed to by this parameter is not large enough to hold
+the extended LIBPATH or an extended LIBPATH is not currently defined, this
+parameter returns a pointer to a NULL string.
+??? How is it detected if the size is not passed???
+
+Flags - flag indicating when the new path is searched - possible values:
+ BEGIN_LIBPATH - The new path is searched before the LIBPATH.
+ END_LIBPATH - The new path is searched after the LIBPATH.
+
+Possible return codes:
+ 0 NO_ERROR
+ 87 ERROR_INVALID_PARAMETER
+122 ERROR_INSUFFICIENT_BUFER
+*)
+function DosQueryExtLibPath (ExtLibPath: PChar; Flags: cardinal): cardinal;
+ cdecl;
+
+(*
+DosSetExtLibPath defines the current path to be searched before or after the
+system LIBPATH when locating DLLs.
+
+Parameters:
+ExtLIBPATH = New extended LIBPATH string. Maximum size is 1024 bytes.
+ A pointer to a NULL string removes the extended LIBPATH.
+Flags = When the new path is searched - possible values:
+ BEGIN_LIBPATH (1) - the new path is searched before the LIBPATH.
+ END_LIBPATH (2) - the new path is searched after the LIBPATH.
+
+The LIBPATH string is an environment variable found in the CONFIG.SYS file
+consisting of a set of paths. If a fully-qualified path is not specified when
+a module is loaded, the system searches these paths to find the DLL.
+
+There are two extended LIBPATH strings, BeginLIBPATH and EndLIBPATH.
+BeginLIBPATH is searched before the system LIBPATH, and EndLIBPATH is searched
+after both BeginLIBPATH and the system LIBPATH. These extended LIBPATHs can be
+set either from the command line using the "SET" command, or by calling
+DosSetExtLIBPATH. When DosSetExtLIBPATH is called, all modifications become
+specific to that process. Initial settings can be set for all processes in the
+system by setting the values in CONFIG.SYS using the "set" command.
+
+Note: The extended LIBPATHs are not true environment variables, and do not
+appear when querying the environment.
+
+Every process inherits the settings of BeginLIBPATH and EndLIBPATH from the
+process that starts it. If the extended library paths are initialized in
+CONFIG.SYS, those extended library paths become the initial settings for new
+processes. If a process changes BeginLIBPATH or EndLIBPATH and starts a new
+process, the new child process inherits the changed contents. Child processes
+that inherit their parent's extended LIBPATHs maintain their own copy.
+Modifications made by the parent after the child has been created have no
+effect on the children.
+
+This function permits the use of two symbols within the path string:
+%BeginLIBPATH% and %EndLIBPATH%. These symbols are replaced with the current
+string settings for the extended library paths.
+
+The LIBPATHs strings are only searched when the specified DLL is not currently
+loaded. The only way to guarantee that the DLL being used is the correct
+version is to set the fully-qualified path in DosLoadModule. When a request is
+made to load a module and a path is not specified, the system searches the
+paths in the LIBPATH string and uses the first instance of the specified DLL it
+finds. If the new paths are added to the search strings, the system does not
+check those directories to see if a different version exists. Consequently, if
+two processes started from different directories use the same DLL, but
+different versions of that DLL exist in both directories, the version of the
+DLL loaded by the first process is the one used by both processes. The only way
+to prevent this from occurring is to specify the path to the DLL when
+DosLoadModule is called.
+
+Consequently, if one process sets its BeginLIBPATH to C:\PROCESS1\DLL and loads
+the DLL MYAPP.DLL from that directory, and then a second process sets its
+BeginLIBPATH to C:\PROCESS2\DLL and there is for a different version of
+MYAPP.DLL in C:\PROCESS2\DLL, the second process will link to the DLL from
+C:\PROCESS1\DLL since it was already loaded.
+
+Both BeginLIBPATH and EndLIBPATH can be set from the command line using the SET
+command.
+
+Possible return codes:
+0 NO_ERROR
+8 ERROR_NOT_ENOUGH_MEMORY
+87 ERROR_INVALID_PARAMETER
+161 ERROR_BAD_PATHNAME
+*)
+function DosSetExtLibPath (ExtLibPath: PChar; Flags: cardinal): cardinal;
+ cdecl;
+
+(*
+DosQueryModFromEIP queries a module handle and name from a given flat address.
+It takes a flat 32 bit address as a parameter and returns information about the
+module (a protected mode application currently executing) owning the storage.
+
+Parameters:
+HMod = Address of a location in which the module handle is returned.
+ObjNum = Address of a cardinal where the module object number corresponding to
+ the Address is returned. The object number is zero based.
+BuffLen = Length of the user supplied buffer pointed to by Buff.
+Buff = Address of a user supplied buffer in which the module name is returned.
+Offset = Address where the offset to the object corresponding to the Address is
+ returned. The offset is zero based.
+Address = Input address to be queried.
+
+Possible return codes:
+ 0 NO_ERROR
+ 87 ERROR_INVALID_PARAMETER
+487 ERROR_INVALID_ADDRESS
+*)
+function DosQueryModFromEIP (var HMod: THandle; var ObjNum: cardinal;
+ BuffLen: cardinal; Buff: PChar; var Offset: cardinal;
+ Address: PtrUInt): cardinal; cdecl;
+
+
+(*
+DosDumpProcess initiates a process dump from a specified process. This may be used as part of an error handling routine to gather information about an error that may be analyzed later using the OS/2 System Dump Formatter. Configuration of Process Dump may be done using the PDUMPSYS, PDUMPUSR, and PROCDUMP commands.
+
+Parameters:
+Flag = Function to be performed (one of DDP_* constants).
+ DDP_DISABLEPROCDUMP (0) - disable process dumps
+ DDP_ENABLEPROCDUMP (1) - enable process dumps
+ DDP_PERFORMPROCDUMP (2) - perform process dump (if the user enabled it using
+ the PROCDUMP command; ERROR_INVALID_PARAMETER is
+ returned otherwise)
+Drive = The ASCII character for the drive on which process dump files are
+ to be created, or 0 to use the drive originally specified by the user
+ using the PROCDUMP command. This is required only with the
+ DDP_ENABLEPROCDUMP (PROCDUMP command allows customizing fully the drive
+ and path).
+PID = The process to be dumped. 0 specifies the current process; otherwise
+ a valid process ID must be specified. This parameter is actioned only
+ with DDP_PERFORMPROCDUMP.
+
+Possible return Codes.
+ 0 NO_ERROR
+87 ERROR_INVALID PARAMETER
+
+Remarks:
+Use the PDUMPUSR command to specify what information will be dumped.
+
+Use the PROCDUMP command to customize options per process and in particular
+to specify whether child or parent process will be dumped.
+
+For maximum flexibility the use of DosDumpProcess should be limited
+to the DDP_PERFORMPROCDUMP function. This allows you to specify whether
+Process Dump should be enabled through the use of the PROCDUMP command.
+You may customize Process Dump completely through use of the PDUMPUSR,
+PDUMPSYS, AND PROCDUMP commands. For further information, see PROCDUMP.DOC
+in the OS2\SYSTEM\RAS directory. DDP_ENABLEPROCDUMP and DDP_DISABLEPROCDUMP
+are provided for backwards compatibility only.
+*)
+function DosDumpProcess (Flag: cardinal; Drive: char;
+ PID: cardinal): cardinal; cdecl;
+
+
+(*
+Suppress application trap popups and log them to the file POPUPLOG.OS2.
+
+Parameters:
+Flag = Flag indicating whether pop-up suppression should be enabled
+ or disabled (one of SPU_* constants - 0 or 1).
+Drive = The drive letter for the log file (used only when pop-up suppression is
+ enabled).
+
+Remarks:
+When pop-ups are suppressed through DosSuppressPopUps, the system does not
+display trap screens on the user's terminal. The user will not be required
+to respond to the abort, retry, continue message. Instead, the system displays
+message SYS3571 and logs the name of the process to the POPUPLOG.OS2 log file
+in the root directory of the specified drive. The system will also log
+the message inserts in the log file.
+
+If the log file does not exist, the system will create it. If the log file
+exists, the system appends to it. If the system cannot open the file (for
+example, because the drive does not exist), the system will not log the pop-up
+information.
+
+When pop-up suppression is enabled, the system overrides any settings
+established by DosError on a per-process basis.
+
+This API overrides the potential initial setting (e.g. 'SUPPRESSPOPUPS=c')
+in CONFIG.SYS.
+
+The drive letter for the log file may also be specified on the
+DosSuppressPopUps API.
+
+If an invalid flag (a flag other than SPU_ENABLESUPPRESSION
+or SPU_DISABLESUPPRESSION) or an invalid drive (a drive other than an upper- or
+lowercase letter) is specified on DosSuppressPopUps, the system returns error
+code ERROR_INVALID_PARAMETER. Otherwise, the system returns NO_ERROR.
+
+Possible error codes:
+ 0 NO_ERROR
+87 ERROR_INVALID_PARAMETER
+*)
+function DosSuppressPopups (Flag: cardinal; Drive: char): cardinal; cdecl;
+
+
+(*
+DosPerfSysCall retrieves system performance information and performs software
+tracing.
+
+Parameters:
+Command = Command to be performed; the following commands are accepted:
+ CMD_KI_RDCNT ($63) - reads CPU utilization information in both uniprocessor
+ and symmetric multi-processor (SMP) environments by
+ taking a snapshot of the time stamp counters. To
+ determine CPU utilization, the application must compute
+ the difference between two time stamp snapshots using 64
+ bit aritimetic.
+ CMD_SOFTTRACE_LOG ($14) - records software trace information.
+Parm1 (CPUUtil) = Command-specific. In case of CMD_KI_RDCNT, pointer to
+ TCPUUtil record. In case of CMD_SOFTTRACE_LOG, major code for
+ the trace entry in the range of 0 to 255. Major codes 184
+ ($B8) and 185 ($B9) have been reserved for IBM customer use.
+ Major code 1 is reserved for exclusive use by IBM.
+Parm2 = Command-specific. In case of CMD_KI_RdCnt, it must be 0. In case of
+ CMD_SOFTTRACE_LOG, minor code for the trace entry in the range of
+ 0 to 255.
+Parm3 (HookData) = Command-specific. In case of CMD_KI_RdCnt, it must be 0. In
+ case of CMD_SOFTTRACE_LOG, pointer to a HOOKDATA data
+ structure (see example code).
+
+Possible return codes:
+0 NO_ERROR
+1 ERROR_INVALID_FUNCTION
+
+Remarks:
+DosPerfSysCall is a general purpose performance function. This function accepts
+four parameters. The first parameter is the command requested. The other three
+parameters are command specific.
+
+Some functions of DosPerfSysCall may have a dependency on Intel Pentium or
+Pentium-Pro (or higher) support. If a function cannot be provided because OS/2
+is not running on a processor with the required features, a return code will
+indicate an attempt to use an unsupported function.
+
+Example code (C):
+ int main (int argc, char *argv[])
+ {
+ APIRET rc;
+ BYTE HookBuffer [256];
+ HOOKDATA Hookdata = {0,HookBuffer};
+ ULONG ulMajor, ulMinor;
+ *((PULONG) HookBuffer[0]) = 1;
+ *((PULONG) HookBuffer[4]) = 2;
+ *((PULONG) HookBuffer[8]) = 3;
+ strcpy((PSZ HookBuffer[12], "Test of 3 ULONG values and a string.")
+ HookData.ulLength = 12 + strlen((PSZ HookBuffer[12]) + 1;
+
+ ulMajor = 0x00b8
+ ulMinor = 0x0001
+
+ rc = DosPerfSystCall(CMD_SOFTTRACE_LOG, ulMajor, ulMinor, (ULONG) HookData);
+ if (rc != NO_ERROR) {
+ fprintf (stderr, "CMD_SOFTTRACE_LOG failed rc = %u\n", rc);
+ return 1;
+ }
+
+ return NO_ERROR;
+ }
+*)
+function DosPerfSysCall (Command, Parm1, Parm2,
+ Parm3: cardinal): cardinal; cdecl;
+function DosPerfSysCall (Command, Parm1, Parm2: cardinal;
+ var HookData): cardinal; cdecl;
+function DosPerfSysCall (Command: cardinal; var CpuUtil: TCPUUtil; Parm2,
+ Parm3: cardinal): cardinal; cdecl;
+
+
+(*
+Query context of a suspended thread.
+
+Parameters:
+TID = Thread ID
+Level = Desired level of information
+Context = Thread context record
+
+DosQueryThreadContext returns the context record of a suspended thread.
+A thread may be suspended by using DosSuspendThread or DosEnterCritSec.
+If DosSuspendThread is used, the caller must allow some time for OS/2 to
+suspend the thread before querying its context.
+
+Note: Values from the thread context should be used only when the state
+of the target thread is known.
+
+Possible return codes:
+ 0 NO_ERROR
+ 87 ERROR_INVALID_PARAMETER
+ 90 ERROR_NOT_FROZEN
+115 ERROR_PROTECTION_VIOLATION
+309 ERROR_INVALID_THREADID
+*)
+function DosQueryThreadContext (TID: cardinal; Level: cardinal;
+ var Context: TContextRecord): cardinal; cdecl;
+
+
+(*
+DosQueryABIOSSupport returns flags that indicate various basic hardware
+configurations.
+
+Parameters:
+Reserved = Must be set to 0, no other value is defined.
+
+The result of this function contains combination of flags (HW_Cfg_* constants)
+signalizing the underlying hardware configuration.
+*)
+function DosQueryABIOSSupport (Reserved: cardinal): cardinal; cdecl;
+
+
+{***************************************************************************}
+implementation
+{***************************************************************************}
+
+uses
+ OS2Def;
+
+
+function DummyDosCancelLockRequestL (Handle: THandle; var Lock: TFileLockL): cardinal; cdecl;
+var
+ Lock0: TFileLock;
+begin
+ if (Lock.Offset > high (longint)) or (Lock.Range > high (longint)) or
+ (Lock.Offset < 0) or (Lock.Range < 0) then
+ DummyDosCancelLockRequestL := Error_Invalid_Parameter
+ else
+ begin
+ Lock0.Offset := longint (Lock.Offset);
+ Lock0.Range := longint (Lock.Range);
+ DummyDosCancelLockRequestL := DosCancelLockRequest (Handle, Lock0);
+ end;
+end;
+
+
+function DummyDosProtectSetFileLocksL (Handle: THandle; var Unlock: TFileLockL;
+ var Lock: TFileLockL; Timeout: cardinal; Flags: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+var
+ Lock0: TFileLock;
+ UnLock0: TFileLock;
+begin
+ if (Lock.Offset > high (longint)) or (Lock.Range > high (longint)) or
+ (Unlock.Offset > high (longint)) or (Unlock.Range > high (longint)) then
+ DummyDosProtectSetFileLocksL := Error_Invalid_Parameter
+ else
+ begin
+ Lock0.Offset := longint (Lock.Offset);
+ Lock0.Range := longint (Lock.Range);
+ Unlock0.Offset := longint (Unlock.Offset);
+ Unlock0.Range := longint (Lock.Range);
+ DummyDosProtectSetFileLocksL := DosProtectSetFileLocks (Handle, Unlock0,
+ Lock0, Timeout, Flags, FileHandleLockID);
+ end;
+end;
+
+
+function DummyDosSetFileLocksL (Handle: THandle; var Unlock: TFileLockL;
+ var Lock: TFileLockL; Timeout: cardinal; Flags: cardinal): cardinal; cdecl;
+var
+ Lock0: TFileLock;
+ UnLock0: TFileLock;
+begin
+ if (Lock.Offset > high (longint)) or (Lock.Range > high (longint)) or
+ (Lock.Offset < 0) or (Lock.Range < 0) or
+ (Unlock.Offset < 0) or (Unlock.Range < 0) or
+ (Unlock.Offset > high (longint)) or (Unlock.Range > high (longint)) then
+ DummyDosSetFileLocksL := Error_Invalid_Parameter
+ else
+ begin
+ Lock0.Offset := longint (Lock.Offset);
+ Lock0.Range := longint (Lock.Range);
+ Unlock0.Offset := longint (Unlock.Offset);
+ Unlock0.Range := longint (Lock.Range);
+ DummyDosSetFileLocksL := DosSetFileLocks (Handle, Unlock0, Lock0, Timeout,
+ Flags);
+ end;
+end;
+
+
+function DummyDosProtectOpenL (FileName: PChar; var Handle: THandle;
+ var Action: cardinal; InitSize: int64; Attrib,
+ OpenFlags, OpenMode: cardinal; EA: PEAOp2;
+ var FileHandleLockID: cardinal): cardinal; cdecl;
+begin
+ if InitSize > high (longint) then
+ DummyDosProtectOpenL := Error_Invalid_Parameter
+ else
+ DummyDosProtectOpenL := DosProtectOpen (FileName, Handle, Action,
+ longint (InitSize), Attrib, OpenFlags, OpenMode, EA, FileHandleLockID);
+end;
+
+
+function DummyDosProtectSetFilePtrL (Handle: THandle; Pos: int64;
+ Method: cardinal; var PosActual: int64;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+var
+ PosActual0: cardinal;
+begin
+ if (Pos < low (longint)) or (Pos > high (longint)) then
+ DummyDosProtectSetFilePtrL := Error_Invalid_Parameter
+ else
+ begin
+ DummyDosProtectSetFilePtrL := DosProtectSetFilePtr (Handle, longint (Pos),
+ Method, PosActual0, FileHandleLockID);
+ PosActual := PosActual0;
+ end;
+end;
+
+
+function DummyDosProtectSetFileSizeL (Handle: THandle; Size: int64;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+begin
+ if (Size > high (cardinal)) then
+ DummyDosProtectSetFileSizeL := Error_Invalid_Parameter
+ else
+ DummyDosProtectSetFileSizeL := DosProtectSetFileSize (Handle,
+ cardinal (Size), FileHandleLockID);
+end;
+
+
+function DummyDosProtectSetFileLocks (Handle: THandle;
+ var Unlock, Lock: TFileLock;
+ Timeout, Flags: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+begin
+ if FileHandleLockID <> 0 then
+ DummyDosProtectSetFileLocks := Error_Invalid_Parameter
+ else
+ DummyDosProtectSetFileLocks := DosSetFileLocks (Handle, Unlock, Lock,
+ Timeout, Flags);
+end;
+
+
+function DummyDosProtectOpen (FileName: PChar; var Handle: THandle;
+ var Action: cardinal; InitSize, Attrib,
+ OpenFlags, OpenMode: cardinal; ea: PEAOp2;
+ var FileHandleLockID: cardinal): cardinal; cdecl;
+begin
+ DummyDosProtectOpen := DosOpen (FileName, Handle, Action, InitSize, Attrib,
+ OpenFlags, OpenMode, EA);
+ FileHandleLockID := 0;
+end;
+
+
+function DummyDosProtectClose (Handle: THandle;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+begin
+ DummyDosProtectClose := DosClose (Handle);
+end;
+
+
+function DummyDosProtectRead (Handle: THandle; var Buffer; Count: cardinal;
+ var ActCount: cardinal; FileHandleLockID: cardinal): cardinal; cdecl;
+begin
+ DummyDosProtectRead := DosRead (Handle, Buffer, Count, ActCount);
+end;
+
+
+function DummyDosProtectWrite (Handle: THandle; const Buffer; Count: cardinal;
+ var ActCount: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+begin
+ DummyDosProtectWrite := DosWrite (Handle, Buffer, Count, ActCount);
+end;
+
+
+function DummyDosProtectSetFilePtr (Handle: THandle; Pos: longint;
+ Method: cardinal; var PosActual: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+begin
+ DummyDosProtectSetFilePtr := DosSetFilePtr (Handle, Pos, Method, PosActual);
+end;
+
+
+function DummyDosProtectSetFileSize (Handle: THandle; Size: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+begin
+ DummyDosProtectSetFileSize := DosSetFileSize (Handle, Size);
+end;
+
+
+function DummyDosProtectQueryFHState (Handle: THandle; var FileMode: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+begin
+ DummyDosProtectQueryFHState := DosQueryFHState (Handle, FileMode);
+end;
+
+
+function DummyDosProtectSetFHState (Handle: THandle; FileMode: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+begin
+ DummyDosProtectSetFHState := DosSetFHState (Handle, FileMode);
+end;
+
+
+function DummyDosProtectQueryFileInfo (Handle: THandle; InfoLevel: cardinal;
+ AFileStatus: PFileStatus; FileStatusLen: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+begin
+ DummyDosProtectQueryFileInfo := DosQueryFileInfo (Handle, InfoLevel,
+ AFileStatus, FileStatusLen);
+end;
+
+
+function DummyDosProtectSetFileInfo (Handle: THandle; InfoLevel: cardinal;
+ AFileStatus: PFileStatus; FileStatusLen: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+begin
+ DummyDosProtectSetFileInfo := DosSetFileInfo (Handle, InfoLevel,
+ AFileStatus, FileStatusLen);
+end;
+
+
+function DummyDosProtectEnumAttribute (RefType: cardinal; AFile: pointer;
+ Entry: cardinal; var Buf; BufSize: cardinal;
+ var Count: cardinal; InfoLevel: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+begin
+ DummyDosProtectEnumAttribute := DosEnumAttribute (RefType, AFile, Entry,
+ Buf, BufSize, Count, InfoLevel);
+end;
+
+
+function DummyDosGetProcessorStatus (ProcID: cardinal;
+ var Status: cardinal): cardinal; cdecl;
+begin
+ if ProcID = 1 then
+ begin
+ Status := 1;
+ DummyDosGetProcessorStatus := No_Error;
+ end
+ else
+ DummyDosGetProcessorStatus := Error_Invalid_Parameter;
+end;
+
+
+function DummyDosSetProcessorStatus (ProcID: cardinal;
+ Status: cardinal): cardinal; cdecl;
+begin
+ DummyDosSetProcessorStatus := Error_Invalid_Parameter;
+end;
+
+
+function DummyDosQueryThreadAffinity (Scope: cardinal;
+ var AffinityMask: TMPAffinity): cardinal; cdecl;
+begin
+ DummyDosQueryThreadAffinity := Error_Invalid_Function;
+end;
+
+
+function DummyDosSetThreadAffinity (var AffinityMask: TMPAffinity): cardinal;
+ cdecl;
+begin
+ DummyDosSetThreadAffinity := Error_Invalid_Function;
+end;
+
+
+function DummyDosQueryExtLibPath (ExtLibPath: PChar;
+ Flags: cardinal): cardinal; cdecl;
+begin
+ if ExtLibPath <> nil then
+ begin
+ ExtLibPath := #0;
+ DummyDosQueryExtLibPath := No_Error;
+ end
+ else
+ DummyDosQueryExtLibPath := Error_Invalid_Parameter;
+end;
+
+
+function DummyDosSetExtLibPath (ExtLibPath: PChar; Flags: cardinal): cardinal;
+ cdecl;
+begin
+ DummyDosSetExtLibPath := Error_Not_Enough_Memory;
+end;
+
+
+function DummyDosQueryModFromEIP (var HMod: THandle; var ObjNum: cardinal;
+ BuffLen: cardinal; Buff: PChar; var Offset: cardinal;
+ Address: PtrUInt): cardinal; cdecl;
+begin
+ DummyDosQueryModFromEIP := Error_Invalid_Parameter;
+ HMod := THandle (-1);
+ ObjNum := 0;
+ if Buff <> nil then
+ Buff^ := #0;
+ Offset := 0;
+end;
+
+
+function DummyDosDumpProcess (Flag: cardinal; Drive: cardinal;
+ PID: cardinal): cardinal; cdecl;
+begin
+ DummyDosDumpProcess := Error_Invalid_Function;
+end;
+
+
+function DummyDosSuppressPopups (Flag: cardinal; Drive: char): cardinal; cdecl;
+begin
+ DummyDosSuppressPopups := Error_Invalid_Function;
+end;
+
+
+function DummyDosPerfSysCall (Command, Parm1, Parm2,
+ Parm3: cardinal): cardinal; cdecl;
+begin
+ DummyDosPerfSysCall := Error_Invalid_Function;
+end;
+
+
+function DummyDosQueryThreadContext (TID: cardinal; Level: cardinal;
+ var Context: TContextRecord): cardinal; cdecl;
+begin
+ DummyDosQueryThreadContext := Error_Invalid_Function;
+end;
+
+
+function DummyDosQueryABIOSSupport (Reserved: cardinal): cardinal; cdecl;
+begin
+ DummyDosQueryABIOSSupport := 0;
+end;
+
+
+
+type
+ TDosProtectOpen = function (FileName: PChar; var Handle: THandle;
+ var Action: cardinal; InitSize, Attrib,
+ OpenFlags, OpenMode: cardinal; ea: PEAOp2;
+ var FileHandleLockID: cardinal): cardinal; cdecl;
+
+ TDosProtectClose = function (Handle: THandle;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+ TDosProtectRead = function (Handle: THandle; var Buffer; Count: cardinal;
+ var ActCount: cardinal; FileHandleLockID: cardinal): cardinal; cdecl;
+
+ TDosProtectWrite = function (Handle: THandle; const Buffer; Count: cardinal;
+ var ActCount: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+ TDosProtectSetFilePtr = function (Handle: THandle; Pos: longint;
+ Method: cardinal; var PosActual: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+ TDosProtectSetFileSize = function (Handle: THandle; Size: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+ TDosProtectQueryFHState = function (Handle: THandle; var FileMode: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+ TDosProtectSetFHState = function (Handle: THandle; FileMode: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+ TDosProtectQueryFileInfo = function (Handle: THandle; InfoLevel: cardinal;
+ AFileStatus: PFileStatus; FileStatusLen: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+ TDosProtectSetFileInfo = function (Handle: THandle; InfoLevel: cardinal;
+ AFileStatus: PFileStatus; FileStatusLen: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+ TDosProtectEnumAttribute = function (RefType: cardinal; AFile: pointer;
+ Entry: cardinal; var Buf; BufSize: cardinal;
+ var Count: cardinal; InfoLevel: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+ TDosProtectSetFileLocks = function (Handle: THandle;
+ var Unlock, Lock: TFileLock;
+ Timeout, Flags: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+ TDosCancelLockRequestL = function (Handle: THandle; var Lock: TFileLockL):
+ cardinal; cdecl;
+
+ TDosProtectSetFileLocksL = function (Handle: THandle; var Unlock: TFileLockL;
+ var Lock: TFileLockL; Timeout: cardinal; Flags: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+ TDosSetFileLocksL = function (Handle: THandle; var Unlock: TFileLockL;
+ var Lock: TFileLockL; Timeout: cardinal; Flags: cardinal): cardinal; cdecl;
+
+ TDosProtectOpenL = function (FileName: PChar; var Handle: THandle;
+ var Action: cardinal; InitSize: int64; Attrib,
+ OpenFlags, OpenMode: cardinal; EA: PEAOp2;
+ var FileHandleLockID: cardinal): cardinal; cdecl;
+
+ TDosProtectSetFilePtrL = function (Handle: THandle; Pos: int64;
+ Method: cardinal;
+ var PosActual: int64; FileHandleLockID: cardinal): cardinal; cdecl;
+
+ TDosProtectSetFileSizeL = function (Handle: THandle; Size: int64;
+ FileHandleLockID: cardinal): cardinal; cdecl;
+
+ TDosGetProcessorStatus = function (ProcID: cardinal;
+ var Status: cardinal): cardinal; cdecl;
+
+ TDosSetProcessorStatus = function (ProcID: cardinal;
+ Status: cardinal): cardinal; cdecl;
+
+ TDosQueryThreadAffinity = function (Scope: cardinal;
+ var AffinityMask: TMPAffinity): cardinal; cdecl;
+
+ TDosSetThreadAffinity = function (var AffinityMask: TMPAffinity): cardinal;
+ cdecl;
+
+ TDosQueryExtLibPath = function (ExtLibPath: PChar;
+ Flags: cardinal): cardinal; cdecl;
+
+ TDosSetExtLibPath = function (ExtLibPath: PChar; Flags: cardinal): cardinal;
+ cdecl;
+
+ TDosQueryModFromEIP = function (var HMod: THandle; var ObjNum: cardinal;
+ BuffLen: cardinal; Buff: PChar; var Offset: cardinal;
+ Address: PtrUInt): cardinal; cdecl;
+
+ TDosDumpProcess = function (Flag: cardinal; Drive: cardinal;
+ PID: cardinal): cardinal; cdecl;
+
+ TDosSuppressPopups = function (Flag: cardinal; Drive: char): cardinal; cdecl;
+
+ TDosPerfSysCall = function (Command, Parm1, Parm2,
+ Parm3: cardinal): cardinal; cdecl;
+
+ TDosQueryThreadContext = function (TID: cardinal; Level: cardinal;
+ var Context: TContextRecord): cardinal; cdecl;
+
+ TDosQueryABIOSSupport = function (Reserved: cardinal): cardinal; cdecl;
+
+
+
+const
+ Sys_DosCancelLockRequestL: TDosCancelLockRequestL =
+ @DummyDosCancelLockRequestL;
+ Sys_DosSetFileLocksL: TDosSetFileLocksL = @DummyDosSetFileLocksL;
+ Sys_DosProtectSetFileLocksL: TDosProtectSetFileLocksL =
+ @DummyDosProtectSetFileLocksL;
+ Sys_DosProtectOpenL: TDosProtectOpenL = @DummyDosProtectOpenL;
+ Sys_DosProtectSetFilePtrL: TDosProtectSetFilePtrL =
+ @DummyDosProtectSetFilePtrL;
+ Sys_DosProtectSetFileSizeL: TDosProtectSetFileSizeL =
+ @DummyDosProtectSetFileSizeL;
+ Sys_DosProtectOpen: TDosProtectOpen = @DummyDosProtectOpen;
+ Sys_DosProtectClose: TDosProtectClose = @DummyDosProtectClose;
+ Sys_DosProtectRead: TDosProtectRead = @DummyDosProtectRead;
+ Sys_DosProtectWrite: TDosProtectWrite = @DummyDosProtectWrite;
+ Sys_DosProtectSetFilePtr: TDosProtectSetFilePtr = @DummyDosProtectSetFilePtr;
+ Sys_DosProtectSetFileSize: TDosProtectSetFileSize =
+ @DummyDosProtectSetFileSize;
+ Sys_DosProtectQueryFHState: TDosProtectQueryFHState =
+ @DummyDosProtectQueryFHState;
+ Sys_DosProtectSetFHState: TDosProtectSetFHState = @DummyDosProtectSetFHState;
+ Sys_DosProtectQueryFileInfo: TDosProtectQueryFileInfo =
+ @DummyDosProtectQueryFileInfo;
+ Sys_DosProtectSetFileInfo: TDosProtectSetFileInfo =
+ @DummyDosProtectSetFileInfo;
+ Sys_DosProtectEnumAttribute: TDosProtectEnumAttribute =
+ @DummyDosProtectEnumAttribute;
+ Sys_DosProtectSetFileLocks: TDosProtectSetFileLocks =
+ @DummyDosProtectSetFileLocks;
+ Sys_DosGetProcessorStatus: TDosGetProcessorStatus =
+ @DummyDosGetProcessorStatus;
+ Sys_DosSetProcessorStatus: TDosSetProcessorStatus =
+ @DummyDosSetProcessorStatus;
+ Sys_DosQueryThreadAffinity: TDosQueryThreadAffinity =
+ @DummyDosQueryThreadAffinity;
+ Sys_DosSetThreadAffinity: TDosSetThreadAffinity = @DummyDosSetThreadAffinity;
+ Sys_DosQueryExtLibPath: TDosQueryExtLibPath = @DummyDosQueryExtLibPath;
+ Sys_DosSetExtLibPath: TDosSetExtLibPath = @DummyDosSetExtLibPath;
+ Sys_DosQueryModFromEIP: TDosQueryModFromEIP = @DummyDosQueryModFromEIP;
+ Sys_DosDumpProcess: TDosDumpProcess = @DummyDosDumpProcess;
+ Sys_DosSuppressPopups: TDosSuppressPopups = @DummyDosSuppressPopups;
+ Sys_DosPerfSysCall: TDosPerfSysCall = @DummyDosPerfSysCall;
+ Sys_DosQueryThreadContext: TDosQueryThreadContext =
+ @DummyDosQueryThreadContext;
+ Sys_DosQueryABIOSSupport: TDosQueryABIOSSupport = @DummyDosQueryABIOSSupport;
+
+
+
+function DosOpenL (FileName: PChar; var Handle: THandle;
+ var Action: cardinal; InitSize: int64;
+ Attrib, OpenFlags, FileMode: cardinal;
+ EA: pointer): cardinal; cdecl; inline;
+begin
+ DosOpenL := Sys_DosOpenL (FileName, Handle, Action, InitSize, Attrib,
+ OpenFlags, FileMode, EA);
+end;
+
+
+function DosSetFilePtrL (Handle: THandle; Pos: int64; Method: cardinal;
+ var PosActual: int64): cardinal; cdecl; inline;
+begin
+ DosSetFilePtrL := Sys_DosSetFilePtrL (Handle, Pos, Method, PosActual);
+end;
+
+
+function DosSetFileSizeL (Handle: THandle; Size: int64): cardinal; cdecl;
+ inline;
+begin
+ DosSetFileSizeL := Sys_DosSetFileSizeL (Handle, Size);
+end;
+
+
+function DosProtectOpen (FileName: PChar; var Handle: THandle;
+ var Action: cardinal; InitSize, Attrib,
+ OpenFlags, OpenMode: cardinal; EA: PEAOp2;
+ var FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectOpen := Sys_DosProtectOpen (FileName, Handle, Action, InitSize,
+ Attrib, OpenFlags, OpenMode, EA, FileHandleLockID);
+end;
+
+
+function DosProtectClose (Handle: THandle;
+ FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectClose := Sys_DosProtectClose (Handle, FileHandleLockID);
+end;
+
+
+function DosProtectRead (Handle: THandle; var Buffer; Count: cardinal;
+ var ActCount: cardinal; FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectRead := Sys_DosProtectRead (Handle, Buffer, Count, ActCount,
+ FileHandleLockID);
+end;
+
+
+function DosProtectWrite (Handle: THandle; const Buffer; Count: cardinal;
+ var ActCount: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectWrite := Sys_DosProtectWrite (Handle, Buffer, Count, ActCount,
+ FileHandleLockID);
+end;
+
+
+function DosProtectSetFilePtr (Handle: THandle; Pos: longint;
+ Method: cardinal; var PosActual: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectSetFilePtr := Sys_DosProtectSetFilePtr (Handle, Pos, Method,
+ PosActual, FileHandleLockID);
+end;
+
+
+function DosProtectSetFileSize (Handle: THandle; Size: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectSetFileSize := Sys_DosProtectSetFileSize (Handle, Size,
+ FileHandleLockID);
+end;
+
+
+function DosProtectQueryFHState (Handle: THandle; var FileMode: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectQueryFHState := Sys_DosProtectQueryFHState (Handle, FileMode,
+ FileHandleLockID);
+end;
+
+
+function DosProtectSetFHState (Handle: THandle; FileMode: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectSetFHState := Sys_DosProtectSetFHState (Handle, FileMode,
+ FileHandleLockID);
+end;
+
+
+function DosProtectQueryFileInfo (Handle: THandle; InfoLevel: cardinal;
+ AFileStatus: PFileStatus; FileStatusLen: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectQueryFileInfo := Sys_DosProtectQueryFileInfo (Handle, InfoLevel,
+ AFileStatus, FileStatusLen, FileHandleLockID);
+end;
+
+
+function DosProtectSetFileInfo (Handle: THandle; InfoLevel: cardinal;
+ AFileStatus: PFileStatus; FileStatusLen: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectSetFileInfo := Sys_DosProtectSetFileInfo (Handle, InfoLevel,
+ AFileStatus, FileStatusLen, FileHandleLockID);
+end;
+
+
+function DosProtectEnumAttribute (RefType: cardinal; AFile: pointer;
+ Entry: cardinal; var Buf; BufSize: cardinal;
+ var Count: cardinal; InfoLevel: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectEnumAttribute := Sys_DosProtectEnumAttribute (RefType, AFile,
+ Entry, Buf, BufSize, Count, InfoLevel, FileHandleLockID);
+end;
+
+
+function DosProtectSetFileLocks (Handle: THandle;
+ var Unlock, Lock: TFileLock;
+ Timeout, Flags: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectSetFileLocks := Sys_DosProtectSetFileLocks (Handle, Unlock, Lock,
+ Timeout, Flags, FileHandleLockID);
+end;
+
+
+function DosProtectOpen (FileName: PChar; var Handle: longint;
+ var Action: longint; InitSize, Attrib,
+ OpenFlags, OpenMode: longint; ea: PEAOp2;
+ var FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectOpen := Sys_DosProtectOpen (FileName, THandle (Handle),
+ cardinal (Action), cardinal (InitSize), cardinal (Attrib),
+ cardinal (OpenFlags), cardinal (OpenMode), EA, FileHandleLockID);
+end;
+
+
+function DosProtectOpen (const FileName: string; var Handle: longint;
+ var Action: longint; InitSize, Attrib,
+ OpenFlags, OpenMode: longint; ea: PEAOp2;
+ var FileHandleLockID: cardinal): cardinal;
+var
+ T: array [0..255] of char;
+begin
+ StrPCopy (@T, FileName);
+ DosProtectOpen := Sys_DosProtectOpen (@T, THandle (Handle),
+ cardinal (Action), cardinal (InitSize), cardinal (Attrib),
+ cardinal (OpenFlags), cardinal (OpenMode), EA, FileHandleLockID);
+end;
+
+
+function DosProtectOpen (const FileName: string; var Handle: THandle;
+ var Action: cardinal; InitSize, Attrib,
+ OpenFlags, OpenMode: cardinal; ea: PEAOp2;
+ var FileHandleLockID: cardinal): cardinal;
+var
+ T: array [0..255] of char;
+begin
+ StrPCopy (@T, FileName);
+ DosProtectOpen := Sys_DosProtectOpen (@T, Handle, Action, InitSize, Attrib,
+ OpenFlags, OpenMode, EA, FileHandleLockID);
+end;
+
+
+function DosProtectRead (Handle: longint; var Buffer; Count: longint;
+ var ActCount: longint; FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectRead := Sys_DosProtectRead (THandle (Handle), Buffer,
+ cardinal (Count), cardinal (ActCount), FileHandleLockID);
+end;
+
+
+function DosProtectWrite (Handle: longint; const Buffer; Count: longint;
+ var ActCount: longint;
+ FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectWrite := Sys_DosProtectWrite (THandle (Handle), Buffer,
+ cardinal (Count), cardinal (ActCount), FileHandleLockID);
+end;
+
+
+function DosProtectSetFilePtr (Handle: longint; Pos, Method: longint;
+ var PosActual: longint;
+ FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectSetFilePtr := Sys_DosProtectSetFilePtr (THandle (Handle),
+ cardinal (Pos), cardinal (Method), cardinal (PosActual), FileHandleLockID);
+end;
+
+
+function DosProtectSetFilePtr (Handle: THandle; Pos: longint;
+ FileHandleLockID: cardinal): cardinal;
+var
+ PosActual: cardinal;
+begin
+ DosProtectSetFilePtr := DosProtectSetFilePtr (Handle, Pos, 0, PosActual,
+ FileHandleLockID);
+end;
+
+
+function DosProtectGetFilePtr (Handle: longint;
+ var PosActual: longint; FileHandleLockID: cardinal): cardinal;
+begin
+ DosProtectGetFilePtr := DosProtectSetFilePtr (THandle (Handle), 0, 1,
+ cardinal (PosActual), FileHandleLockID);
+end;
+
+
+function DosProtectGetFilePtr (Handle: THandle;
+ var PosActual: cardinal; FileHandleLockID: cardinal): cardinal;
+begin
+ DosProtectGetFilePtr := DosProtectSetFilePtr (Handle, 0, 1, PosActual,
+ FileHandleLockID);
+end;
+
+
+function DosProtectEnumAttribute (Handle: THandle; Entry: cardinal; var Buf;
+ BufSize: cardinal; var Count: cardinal;
+ InfoLevel: cardinal;
+ FileHandleLockID: cardinal): cardinal;
+begin
+ DosProtectEnumAttribute := DosProtectEnumAttribute (0, @Handle, Entry, Buf,
+ BufSize, Count, InfoLevel, FileHandleLockID);
+end;
+
+
+function DosProtectEnumAttribute (const FileName: string; Entry: cardinal;
+ var Buf; BufSize: cardinal;
+ var Count: cardinal; InfoLevel: cardinal;
+ FileHandleLockID: cardinal): cardinal;
+var
+ T: array [0..255] of char;
+begin
+ StrPCopy (@T, FileName);
+ DosProtectEnumAttribute := DosProtectEnumAttribute (1, @T, Entry, Buf,
+ BufSize, Count, InfoLevel, FileHandleLockID);
+end;
+
+
+function DosCancelLockRequestL (Handle: THandle;
+ var Lock: TFileLockL): cardinal; cdecl; inline;
+begin
+ DosCancelLockRequestL := Sys_DosCancelLockRequestL (Handle, Lock);
+end;
+
+
+function DosProtectSetFileLocksL (Handle: THandle; var Unlock: TFileLockL;
+ var Lock: TFileLockL; Timeout: cardinal; Flags: cardinal;
+ FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectSetFileLocksL := Sys_DosProtectSetFileLocksL (Handle, Unlock, Lock,
+ Timeout, Flags, FileHandleLockID);
+end;
+
+
+function DosSetFileLocksL (Handle: THandle; var Unlock: TFileLockL;
+ var Lock: TFileLockL; Timeout: cardinal; Flags: cardinal): cardinal; cdecl;
+ inline;
+begin
+ DosSetFileLocksL := Sys_DosSetFileLocksL (Handle, Unlock, Lock, Timeout,
+ Flags);
+end;
+
+
+function DosProtectOpenL (FileName: PChar; var Handle: THandle;
+ var Action: cardinal; InitSize: int64; Attrib,
+ OpenFlags, OpenMode: cardinal; EA: PEAOp2;
+ var FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectOpenL := Sys_DosProtectOpenL (FileName, Handle, Action, InitSize,
+ Attrib, OpenFlags, OpenMode, EA, FileHandleLockID);
+end;
+
+
+function DosProtectSetFilePtrL (Handle: THandle; Pos: int64;
+ Method: cardinal; var PosActual: int64;
+ FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectSetFilePtrL := Sys_DosProtectSetFilePtrL (Handle, Pos, Method,
+ PosActual, FileHandleLockID);
+end;
+
+
+function DosProtectSetFileSizeL (Handle: THandle; Size: int64;
+ FileHandleLockID: cardinal): cardinal; cdecl; inline;
+begin
+ DosProtectSetFileSizeL := Sys_DosProtectSetFileSizeL (Handle, Size,
+ FileHandleLockID);
+end;
+
+
+function DosGetProcessorStatus (ProcID: cardinal;
+ var Status: cardinal): cardinal; cdecl; inline;
+begin
+ DosGetProcessorStatus := Sys_DosGetProcessorStatus (ProcID, Status);
+end;
+
+
+function DosSetProcessorStatus (ProcID: cardinal;
+ Status: cardinal): cardinal; cdecl; inline;
+begin
+ DosSetProcessorStatus := Sys_DosSetProcessorStatus (ProcID, Status);
+end;
+
+
+function DosQueryThreadAffinity (Scope: cardinal;
+ var AffinityMask: TMPAffinity): cardinal; cdecl; inline;
+begin
+ DosQueryThreadAffinity := Sys_DosQueryThreadAffinity (Scope, AffinityMask);
+end;
+
+
+function DosSetThreadAffinity (var AffinityMask: TMPAffinity): cardinal; cdecl;
+ inline;
+begin
+ DosSetThreadAffinity := Sys_DosSetThreadAffinity (AffinityMask);
+end;
+
+
+function DosQueryExtLibPath (ExtLibPath: PChar; Flags: cardinal): cardinal;
+ cdecl; inline;
+begin
+ DosQueryExtLibPath := Sys_DosQueryExtLibPath (ExtLibPath, Flags);
+end;
+
+
+function DosSetExtLibPath (ExtLibPath: PChar; Flags: cardinal): cardinal;
+ cdecl; inline;
+begin
+ DosSetExtLibPath := Sys_DosSetExtLibPath (ExtLibPath, Flags);
+end;
+
+
+function DosQueryModFromEIP (var HMod: THandle; var ObjNum: cardinal;
+ BuffLen: cardinal; Buff: PChar; var Offset: cardinal;
+ Address: PtrUInt): cardinal; cdecl; inline;
+begin
+ DosQueryModFromEIP := Sys_DosQueryModFromEIP (HMod, ObjNum, BuffLen, Buff,
+ Offset, Address);
+end;
+
+
+function DosDumpProcess (Flag: cardinal; Drive: char;
+ PID: cardinal): cardinal; cdecl; inline;
+begin
+ DosDumpProcess := Sys_DosDumpProcess (Flag, cardinal (Drive), PID);
+end;
+
+
+function DosSuppressPopups (Flag: cardinal;
+ Drive: char): cardinal; cdecl; inline;
+begin
+ DosSuppressPopups := Sys_DosSuppressPopups (Flag, Drive);
+end;
+
+
+function DosPerfSysCall (Command, Parm1, Parm2,
+ Parm3: cardinal): cardinal; cdecl; inline;
+begin
+ DosPerfSysCall := Sys_DosPerfSysCall (Command, Parm1, Parm2, Parm3);
+end;
+
+
+function DosPerfSysCall (Command, Parm1, Parm2: cardinal;
+ var HookData): cardinal; cdecl;
+begin
+ DosPerfSysCall := Sys_DosPerfSysCall (Command, Parm1, Parm2,
+ PtrUInt (HookData));
+end;
+
+
+function DosPerfSysCall (Command: cardinal; var CpuUtil: TCPUUtil; Parm2,
+ Parm3: cardinal): cardinal; cdecl;
+begin
+ DosPerfSysCall := Sys_DosPerfSysCall (Command, PtrUInt (@CPUUtil), Parm2,
+ Parm3);
+end;
+
+
+function DosQueryThreadContext (TID: cardinal; Level: cardinal;
+ var Context: TContextRecord): cardinal; cdecl; inline;
+begin
+ DosQueryThreadContext := Sys_DosQueryThreadContext (TID, Level, Context);
+end;
+
+
+function DosQueryABIOSSupport (Reserved: cardinal): cardinal; cdecl; inline;
+begin
+ DosQueryABIOSSupport := Sys_DosQueryABIOSSupport (Reserved);
+end;
+
+
+var
+ P: pointer;
+
+begin
+ if FSApi64 then
+ (* DosCallsHandle successfully initialized during initialization of unit *)
+ (* System and basic 64-bit functions were loaded successfully. *)
+ begin
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32CancelLockRequestL, nil, P)
+ = 0 then
+ Sys_DosCancelLockRequestL := TDosCancelLockRequestL (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32ProtectSetFileLocksL, nil, P)
+ = 0 then
+ Sys_DosProtectSetFileLocksL := TDosProtectSetFileLocksL (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32SetFileLocksL, nil, P)
+ = 0 then
+ Sys_DosSetFileLocksL := TDosSetFileLocksL (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32ProtectOpenL, nil, P) = 0
+ then
+ Sys_DosProtectOpenL := TDosProtectOpenL (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32ProtectSetFilePtrL, nil, P)
+ = 0 then
+ Sys_DosProtectSetFilePtrL := TDosProtectSetFilePtrL (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32ProtectSetFileSizeL, nil, P)
+ = 0 then
+ Sys_DosProtectSetFileSizeL := TDosProtectSetFileSizeL (P);
+ end;
+
+ if DosCallsHandle = THandle (-1) then
+ Exit;
+
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32ProtectOpen, nil, P) = 0 then
+ begin
+ Sys_DosProtectOpen := TDosProtectOpen (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32ProtectClose, nil, P) = 0
+ then
+ Sys_DosProtectClose := TDosProtectClose (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32ProtectRead, nil, P) = 0 then
+ Sys_DosProtectRead := TDosProtectRead (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32ProtectWrite, nil, P) = 0
+ then
+ Sys_DosProtectWrite := TDosProtectWrite (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32ProtectSetFilePtr, nil,
+ P) = 0 then
+ Sys_DosProtectSetFilePtr := TDosProtectSetFilePtr (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32ProtectSetFileSize, nil,
+ P) = 0 then
+ Sys_DosProtectSetFileSize := TDosProtectSetFileSize (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32ProtectQueryFHState, nil,
+ P) = 0 then
+ Sys_DosProtectQueryFHState := TDosProtectQueryFHState (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32ProtectSetFHState, nil,
+ P) = 0 then
+ Sys_DosProtectSetFHState := TDosProtectSetFHState (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32ProtectQueryFileInfo, nil,
+ P) = 0 then
+ Sys_DosProtectQueryFileInfo := TDosProtectQueryFileInfo (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32ProtectSetFileInfo, nil,
+ P) = 0 then
+ Sys_DosProtectSetFileInfo := TDosProtectSetFileInfo (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32ProtectEnumAttribute, nil,
+ P) = 0 then
+ Sys_DosProtectEnumAttribute := TDosProtectEnumAttribute (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32ProtectSetFileLocks, nil,
+ P) = 0 then
+ Sys_DosProtectSetFileLocks := TDosProtectSetFileLocks (P);
+ end;
+
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32GetProcessorStatus, nil,
+ P) = 0 then
+ Sys_DosGetProcessorStatus := TDosGetProcessorStatus (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32SetProcessorStatus, nil,
+ P) = 0 then
+ Sys_DosSetProcessorStatus := TDosSetProcessorStatus (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32QueryThreadAffinity, nil,
+ P) = 0 then
+ Sys_DosQueryThreadAffinity := TDosQueryThreadAffinity (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32SetThreadAffinity, nil,
+ P) = 0 then
+ Sys_DosSetThreadAffinity := TDosSetThreadAffinity (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32QueryExtLibPath, nil,
+ P) = 0 then
+ Sys_DosQueryExtLibPath := TDosQueryExtLibPath (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32SetExtLibPath, nil,
+ P) = 0 then
+ Sys_DosSetExtLibPath := TDosSetExtLibPath (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32QueryModFromEIP, nil,
+ P) = 0 then
+ Sys_DosQueryModFromEIP := TDosQueryModFromEIP (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32DumpProcess, nil, P) = 0 then
+ Sys_DosDumpProcess := TDosDumpProcess (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32SuppressPopups, nil,
+ P) = 0 then
+ Sys_DosSuppressPopups := TDosSuppressPopups (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32PerfSysCall, nil, P) = 0 then
+ Sys_DosPerfSysCall := TDosPerfSysCall (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32QueryThreadContext, nil,
+ P) = 0 then
+ Sys_DosQueryThreadContext := TDosQueryThreadContext (P);
+ if DosQueryProcAddr (DosCallsHandle, Ord_Dos32QueryABIOSSupport, nil,
+ P) = 0 then
+ Sys_DosQueryABIOSSupport := TDosQueryABIOSSupport (P);
+end.
+
+(*
+Todo:
+DosCreateSpinLock = DOSCALLS.449 - might be simulated using semaphores on non-SMP
+DosAcquireSpinLock = DOSCALLS.450 - might be simulated using semaphores on non-SMP
+DosReleaseSpinLock = DOSCALLS.451 - might be simulated using semaphores on non-SMP
+DosFreeSpinLock = DOSCALLS.452 - might be simulated using semaphores on non-SMP
+
+type
+ TSpinLock = cardinal;
+ HSpinLock = TSpinLock;
+ PSpinLock = ^TSpinLock;
+ PHSpinLock = PSpinLock;
+
+function DosCreateSpinLock (var SpinLock: TSpinLock): cardinal; cdecl;
+procedure DosAcquireSpinLock (SpinLock: TSpinLock); cdecl;
+procedure DosReleaseSpinLock (SpinLock: TSpinLock); cdecl;
+function DosFreeSpinLock (SpinLock: TSpinLock): cardinal; cdecl;
+
+ DosQueryModFromEIP - may be simulated by returning empty value if not available or possibly by using data returned by DosQuerySysState (if they are equal across different OS/2 versions?)
+
+___ function Dos16QueryModFromCS (...): ...
+external 'DOSCALLS' index 359;
+
+
+ DosVerifyPidTid - may be implemented by analyzing information returned by DosQuerySysState
+
+x DosQueryExtLibPath - may be simulated by providing empty result if not available
+x DosSetExtLibPath - may be simulated by returning ERROR_NOT_ENOUGH_MEMORY if not available
+
+ Dos32AcquireSpinLock | DOSCALLS | SMP | SMP
+ Dos32FreeSpinLock | DOSCALLS | SMP | SMP
+x Dos32GetProcessorStatus | DOSCALLS | SMP | SMP
+ Dos32ReleaseSpinLock | DOSCALLS | SMP | SMP
+x Dos32SetProcessorStatus | DOSCALLS | SMP | SMP
+ Dos32TestPSD | DOSCALLS | SMP | SMP
+
+x Dos32QueryThreadAffinity | DOSCALLS | PROC | 2.45
+(x) Dos32QueryThreadContext | DOSCALLS | XCPT | 2.40
+x Dos32SetThreadAffinity | DOSCALLS | PROC | 2.45
+
+ Dos32AllocThreadLocalMemory | DOSCALLS | PROC | 2.30
+ Dos32FreeThreadLocalMemory | DOSCALLS | PROC | 2.30
+ Dos32ListIO | DOSCALLS | FILE | 2.45
+x Dos32ProtectClose | DOSCALLS | FILE | 2.10
+x Dos32ProtectEnumAttribute | DOSCALLS | FILE | 2.10
+x Dos32ProtectOpen | DOSCALLS | FILE | 2.10
+x Dos32ProtectQueryFHState | DOSCALLS | FILE | 2.10
+x Dos32ProtectQueryFileInfo | DOSCALLS | FILE | 2.10
+x Dos32ProtectRead | DOSCALLS | FILE | 2.10
+x Dos32ProtectSetFHState | DOSCALLS | FILE | 2.10
+x Dos32ProtectSetFileInfo | DOSCALLS | FILE | 2.10
+x Dos32ProtectSetFileLocks | DOSCALLS | FILE | 2.10
+x Dos32ProtectSetFilePtr | DOSCALLS | FILE | 2.10
+x Dos32ProtectSetFileSize | DOSCALLS | FILE | 2.10
+x Dos32ProtectWrite | DOSCALLS | FILE | 2.10
+ Dos32QueryABIOSSupport | DOSCALLS | MOD | 2.10
+(x) Dos32QueryModFromEIP | DOSCALLS | MOD | 2.10
+(x) Dos32SuppressPopUps | DOSCALLS | MISC | 2.10
+ Dos32VerifyPidTid | DOSCALLS | MISC | 2.30
+*)
diff --git a/rtl/os2/doscalls.pas b/rtl/os2/doscalls.pas
index 0088c20e9c..e5bb10cc01 100644
--- a/rtl/os2/doscalls.pas
+++ b/rtl/os2/doscalls.pas
@@ -1,9 +1,14 @@
{
This file is part of the Free Pascal run time library.
- Copyright (c) 1999-2002 by the Free Pascal development team.
+ Copyright (c) 1999-2014 by the Free Pascal development team.
- Basic OS/2 constants, types and functions
- implemented (mostly) in DOSCALL1.DLL.
+ Basic OS/2 constants, types and functions implemented (mostly)
+ in DOSCALL1.DLL. Only functions available in all 32-bit OS/2
+ versions (i.e. starting with OS/2 2.0) are included here
+ to make sure that programs using this unit could still run on
+ these old versions. Certain functions supported in later versions
+ which could be emulated on older versions are provided in unit
+ DosCall2 (using dynamic loading of the respective entry points).
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
@@ -533,10 +538,6 @@ type TFileLock=record
function DosSetFileLocks(Handle:THandle;var Unlock,Lock:TFileLock;
Timeout,Flags: cardinal):cardinal; cdecl;
-function DosProtectSetFileLocks (Handle: THandle; var Unlock, Lock: TFileLock;
- Timeout, Flags: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-
{Cancel a filelock area.
Handle = File handle.
@@ -702,7 +703,7 @@ const doFail = 0;
OPEN_ACTION_FAIL_IF_NEW =doFail; { ---- ---- 0000 ---- }
OPEN_ACTION_CREATE_IF_NEW =DoCreate; { ---- ---- 0001 ---- }
-{Usefull constants for openmode parameter.}
+{Useful constants for openmode parameter.}
const doRead = 0;
doWrite = 1;
@@ -720,7 +721,7 @@ const doRead = 0;
doDASD = 32768;
- { DosOpen/DosSetFHandState flags }
+ { Dos(Protect)Open(L)/Dos(Protect)SetFHState flags }
OPEN_ACCESS_READONLY =doRead; { ---- ---- ---- -000 }
OPEN_ACCESS_WRITEONLY =doWrite; { ---- ---- ---- -001 }
OPEN_ACCESS_READWRITE =doReadWrite; { ---- ---- ---- -010 }
@@ -740,6 +741,7 @@ const doRead = 0;
OPEN_FLAGS_DASD =doDASD; { 1--- ---- ---- ---- }
OPEN_FLAGS_NONSPOOLED =$00040000;
+ OPEN_SHARE_DENYLEGACY =$10000000;
OPEN_FLAGS_PROTECTED_HANDLE =$40000000;
@@ -793,6 +795,10 @@ The bits in the filemode parameter have the following meanings:
before write operation functions return.
Bit 15: DASD flag. 0 = Open a file or device.
1 = Open a drive as file.
+ Bit 29: 32-bit access flag. 0 = Allow opening the file using DosOpen.
+ 1 = Avoid file to be open using DosOpen as well.
+ Bit 30: Protection flag. 0 = File handle is not protected.
+ 1 = File handle is protected.
When the DASD flag is set, the whole drive is read as a single file. The
file starts with 512 bytes of bootsector, then 512 bytes of the second sector etc.
@@ -821,33 +827,10 @@ function DosCreate(const FileName:string;var Handle: THandle;
function DosOpen(const FileName:string;var Handle: THandle;
Attrib,OpenMode:cardinal):cardinal;
-function DosProtectOpen (FileName: PChar; var Handle: longint;
- var Action: longint; InitSize, Attrib,
- OpenFlags, OpenMode: longint; ea: PEAOp2;
- var FileHandleLockID: cardinal): cardinal; cdecl;
-
-function DosProtectOpen (FileName: PChar; var Handle: THandle;
- var Action: cardinal; InitSize, Attrib,
- OpenFlags, OpenMode: cardinal; ea: PEAOp2;
- var FileHandleLockID: cardinal): cardinal; cdecl;
-
-function DosProtectOpen (const FileName: string; var Handle: longint;
- var Action: longint; InitSize, Attrib,
- OpenFlags, OpenMode: longint; ea: PEAOp2;
- var FileHandleLockID: cardinal): cardinal;
-
-function DosProtectOpen (const FileName: string; var Handle: THandle;
- var Action: cardinal; InitSize, Attrib,
- OpenFlags, OpenMode: cardinal; ea: PEAOp2;
- var FileHandleLockID: cardinal): cardinal;
-
{Close a file.
Cannot fail if handle does exist.}
function DosClose (Handle: THandle): cardinal; cdecl;
-function DosProtectClose (Handle: THandle;
- FileHandleLockID: cardinal): cardinal; cdecl;
-
{Read from a file or other type of handle.
Handle = File handle.
@@ -860,12 +843,6 @@ function DosRead (Handle: longint; var Buffer; Count: longint;
function DosRead (Handle: THandle; var Buffer; Count: cardinal;
var ActCount:cardinal):cardinal; cdecl;
-function DosProtectRead (Handle: longint; var Buffer; Count: longint;
- var ActCount: longint; FileHandleLockID: cardinal): cardinal; cdecl;
-
-function DosProtectRead (Handle: THandle; var Buffer; Count: cardinal;
- var ActCount: cardinal; FileHandleLockID: cardinal): cardinal; cdecl;
-
{Write to a file or other type of handle.
Handle = File handle.
@@ -878,14 +855,6 @@ function DosWrite (Handle: longint; const Buffer; Count: longint;
function DosWrite (Handle: THandle; const Buffer; Count: cardinal;
var ActCount:cardinal):cardinal; cdecl;
-function DosProtectWrite (Handle: longint; const Buffer; Count: longint;
- var ActCount: longint;
- FileHandleLockID: cardinal): cardinal; cdecl;
-
-function DosProtectWrite (Handle: THandle; const Buffer; Count: cardinal;
- var ActCount: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-
const dsZeroBased=0; {Set filepointer from begin of file.}
dsRelative=1; {Set filepointer relative to the current one.}
dsEndBased=2; {Set filepointer from end of file.}
@@ -899,38 +868,20 @@ function DosSetFilePtr (Handle: longint; Pos: longint; Method: cardinal;
var PosActual: longint): cardinal; cdecl;
function DosSetFilePtr (Handle: THandle; Pos: longint; Method: cardinal;
var PosActual: cardinal): cardinal; cdecl;
-function DosProtectSetFilePtr (Handle: longint; Pos, Method: longint;
- var PosActual: longint;
- FileHandleLockID: cardinal): cardinal; cdecl;
-
-function DosProtectSetFilePtr (Handle: THandle; Pos: longint; Method: cardinal;
- var PosActual: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-
{This variant seeks always from begin of file and does not return the
actual position.}
function DosSetFilePtr (Handle: THandle; Pos: longint): cardinal;
-function DosProtectSetFilePtr (Handle: THandle; Pos: longint;
- FileHandleLockID: cardinal): cardinal;
+
{This variant returns the current filepointer.}
function DosGetFilePtr (Handle: longint; var PosActual: longint): cardinal;
function DosGetFilePtr (Handle: THandle; var PosActual: cardinal): cardinal;
-function DosProtectGetFilePtr (Handle: longint;
- var PosActual: longint; FileHandleLockID: cardinal): cardinal;
-
-function DosProtectGetFilePtr (Handle: THandle;
- var PosActual: cardinal; FileHandleLockID: cardinal): cardinal;
-
{Use DosQueryFileInfo or DosQueryPathInfo to get the size of a file.}
{Change the size of a file.}
function DosSetFileSize (Handle: THandle; Size: cardinal): cardinal; cdecl;
-function DosProtectSetFileSize (Handle: THandle; Size: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-
{Flush update the changes to a file to disk.}
function DosResetBuffer (Handle: THandle): cardinal; cdecl;
@@ -950,16 +901,10 @@ function DosQueryFHState (Handle: longint; var FileMode: longint): cardinal;
function DosQueryFHState (Handle: THandle; var FileMode: cardinal): cardinal;
cdecl;
-function DosProtectQueryFHState (Handle: THandle; var FileMode: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-
{Set information about a specific handle. See DosOpen for a description
of FileMode.}
function DosSetFHState (Handle: THandle; FileMode: cardinal): cardinal; cdecl;
-function DosProtectSetFHState (Handle: THandle; FileMode: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-
{Useful constants for the handle type.}
const dhFile = 0;
dhDevice = 1;
@@ -1011,7 +956,7 @@ function DosMove(const OldFile,NewFile:string):cardinal;
const dcExisting=1; {Overwrite existing files.}
dcAppend=2; {Append to existing file.}
- dcFailAs=4; {?? Info wanted!}
+ dcFailEAs=4; {Discard EAs if not supported by target FS}
{Copy a file.
OldFile = source file
@@ -1282,19 +1227,11 @@ function DosFindClose (Handle: THandle): cardinal; cdecl;
function DosQueryFileInfo (Handle: THandle; InfoLevel: cardinal;
AFileStatus: PFileStatus; FileStatusLen: cardinal): cardinal; cdecl;
-function DosProtectQueryFileInfo (Handle: THandle; InfoLevel: cardinal;
- AFileStatus: PFileStatus; FileStatusLen: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-
{Set info about a file. File must be opened with write permissions. See
above fo the parameters.}
function DosSetFileInfo (Handle: THandle; InfoLevel: cardinal;
AFileStatus: PFileStatus; FileStatusLen: cardinal): cardinal; cdecl;
-function DosProtectSetFileInfo (Handle: THandle; InfoLevel: cardinal;
- AFileStatus: PFileStatus; FileStatusLen: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-
{Return info about a file. In contradiction to the above functions, the
file does not have to be open.}
function DosQueryPathInfo(FileName:PChar;InfoLevel:cardinal;
@@ -1337,32 +1274,16 @@ function DosEnumAttribute(RefType: cardinal; const AFile: THandle;
Entry: cardinal; var Buf; BufSize: cardinal;
var Count: cardinal; InfoLevel: cardinal): cardinal; cdecl;
-function DosProtectEnumAttribute (RefType: cardinal; AFile: pointer;
- Entry: cardinal; var Buf; BufSize: cardinal;
- var Count: cardinal; InfoLevel: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-
function DosEnumAttribute (Handle: longint; Entry: longint; var Buf;
BufSize: longint; var Count: longint; InfoLevel: longint): cardinal;
function DosEnumAttribute (Handle: THandle; Entry: cardinal; var Buf;
BufSize: cardinal; var Count: cardinal; InfoLevel: cardinal): cardinal;
-function DosProtectEnumAttribute (Handle: THandle; Entry: cardinal; var Buf;
- BufSize: cardinal; var Count: cardinal;
- InfoLevel: cardinal;
- FileHandleLockID: cardinal): cardinal;
-
function DosEnumAttribute (const FileName: string;
Entry: cardinal; var Buf; BufSize: cardinal;
var Count: cardinal; InfoLevel: cardinal): cardinal;
-function DosProtectEnumAttribute (const FileName: string; Entry: cardinal;
- var Buf; BufSize: cardinal;
- var Count: cardinal; InfoLevel: cardinal;
- FileHandleLockID: cardinal): cardinal;
-
-
{Get an environment variable.
Name = Name of environment variable to get.
Value = Receives pointer to environment string.}
@@ -2351,11 +2272,16 @@ function DosQueryCollate(Size:longint;var Country:TCountryCode;
function DosQueryCollate (Size: cardinal; var Country: TCountryCode;
Buf:PByteArray; var TableLen: cardinal): cardinal; cdecl;
-{Get the current codepage. The PWordArray is filled with the current code
- page followed by alternative codepages.}
-function DosQueryCP(Size:longint;CodePages:PWordArray;
+{Get the current codepage. The return buffer (CodePages) is filled with the
+ current code page followed by the list of prepared codepages as specified in
+ CONFIG.SYS - all of them returned as DWORDs, typically not more than 3 should
+ be necessary. Return value of 473 indicates that not all values fit into the
+ provided space.}
+function DosQueryCP(Size:longint; PCodePages: PWordArray;
var ActSize:longint):cardinal; cdecl;
-function DosQueryCP (Size: cardinal; CodePages: PWordArray;
+function DosQueryCP(Size: cardinal; PCodePages: PWordArray;
+ var ActSize:cardinal):cardinal; cdecl;
+function DosQueryCP (Size: cardinal; var CodePages;
var ActSize: cardinal): cardinal; cdecl;
{Change the codepage, but only for the current process.}
@@ -2720,7 +2646,7 @@ function DosGetMessage(Table:PInsertTable;TableSize:longint;Buf:PChar;
var MsgSize:longint):cardinal;
function DosGetMessage (Table: PInsertTable; TableSize: cardinal; Buf: PChar;
BufSize, MsgNumber: cardinal; FileName: PChar;
- var MsgSize: cardinal): cardinal;
+ var MsgSize: cardinal): cardinal; cdecl;
{And a variant using strings and open arrays.
function DosGetMessage(const Table:array of PString;var Buf:string;
BufSize,MsgNumber:longint;const FileName:PChar):cardinal;}
@@ -3893,6 +3819,96 @@ function DosQuerySysState (EntityList, EntityLevel, PID, TID: cardinal;
PDataBuf: pointer; cbBuf: cardinal): cardinal; cdecl;
+{
+ Creates a private Read/Write alias or an LDT code segment alias to part
+ of an existing memory object. The alias object is accessible only to the
+ process that created it. The original object must be accessible to the caller
+ of DosAliasMem.
+
+ An alias is removed by calling DosFreeMem with the alias address.
+
+ Although it is possible to create a Read/Write alias to a code segment
+ to allow code modification, this is not recommended. On Pentium processors,
+ and later, pipe-lining techniques used by the processor might allow
+ the processor not to be aware of the modified code, if appropriate
+ pipe-line serialization is not performed by the programmer. For further
+ information see the processor documentation.
+
+ Possible return values:
+ 0 No_Error
+ 8 Error_Not_Enough_Memory
+ 87 Error_Invalid_Parameter
+ 95 Error_Interrupt
+ 32798 Error_Crosses_Object_Boundary
+
+pMem = Pointer to the memory to be aliased. It must be on a page boundary
+ (i.e. aligned to 4 kB), but may specify an address within a memory
+ object.
+Size = Specifies size in bytes for the memory to alias. The entire range
+ must lie within a single memory object and must be committed
+ if OBJ_SELMAPALL is specified.
+Alias = Pointer where the address of the aliased memory is returned.
+ The corresponding LDT selector is not explicitly returned but may be
+ calculated by using the Compatibility Mapping Algorithm
+ ((Alias shr 13) or 7).
+Flags = Combination of the following values:
+ obj_SelMapAll = $800 (Create a Read/Write 32 bit alias
+ to the address specified. The entire range
+ must be committed, start on page boundary
+ and be within the extent of a single memory
+ object. An LDT selector is created to map
+ the entire range specified. If obj_SelMapAll
+ is not specified, then size is rounded up
+ to a 4K multiple and the alias created
+ inherits the permissions from the pages
+ of the original object.)
+ obj_Tile = $40 (Obj_Tile may be specified, but currently
+ this is enforced whether or not specified.
+ This forces LDT selectors to be based
+ on 64K boundaries.)
+ sel_Code = 1 (Marks the LDT alias selector(s)
+ Read-Executable code selectors.)
+ sel_Use32 = 2 (Used with obj_SelMapAll, otherwise ignored.
+ Marks the first alias LDT selector
+ as a 32 bit selector by setting the BIG/C32
+ bit.)
+}
+function DosAliasMem (pMem: pointer; Size: cardinal; var Alias: pointer;
+ Flags: cardinal): cardinal; cdecl;
+
+const
+ PAG_INVALID = 0; (* Page is invalid. *)
+ PAG_NPOUT = 0; (* Page is not present, not in core. *)
+ PAG_PRESENT = 1; (* Page is present. *)
+ PAG_NPIN = 2; (* Page is not present, in core. *)
+ PAG_PRESMASK = 3; (* Present state mask. *)
+ PAG_RESIDENT = 16; (* Page is resident. *)
+ PAG_SWAPPABLE = 32; (* Page is swappable. *)
+ PAG_DISCARDABLE = 48; (* Page is discardable. *)
+ PAG_TYPEMASK = 48; (* Typemask *)
+
+{
+DosQueryMemState gets the status of a range of pages in memory. Its input
+parameters are an address and size. The address is rounded down to page
+boundary and size is rounded up to a whole number of pages. The status
+of the pages in the range is returned in the state parameter, and the size
+of the range queried is returned in the size parameter. If the pages
+in the range have conflicting states, then the state of the first page
+is returned.
+
+Parameters:
+PMem - Pointer to memory to be queried
+Size - Size of memory to be queried
+State - Flags (PAG_*) indicating state of the memory (or the first memory page
+ if the states for the following pages differ):
+
+Possible return codes:
+ 0 - NO_ERROR
+ 87 - ERROR_INVALID_PARAMETER
+487 - ERROR_INVALID_ADDRESS
+}
+function DosQueryMemState (PMem: pointer; var Size: cardinal;
+ var State: cardinal): cardinal; cdecl;
{***************************************************************************}
implementation
@@ -4008,11 +4024,6 @@ function DosSetFileLocks (Handle: THandle; var Unlock, Lock: TFileLock;
Timeout, Flags: cardinal): cardinal; cdecl;
external 'DOSCALLS' index 428;
-function DosProtectSetFileLocks (Handle: THandle; var Unlock, Lock: TFileLock;
- Timeout, Flags: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-external 'DOSCALLS' index 639;
-
function DosCancelLockRequest (Handle: THandle; var Lock: TFileLock): cardinal;
cdecl;
external 'DOSCALLS' index 429;
@@ -4089,49 +4100,9 @@ begin
DosOpen:=DosOpen(@T,Handle,Action,0,Attrib,1,OpenMode,nil);
end;
-function DosProtectOpen (FileName: PChar; var Handle: longint;
- var Action: longint; InitSize, Attrib,
- OpenFlags, OpenMode: longint; ea: PEAOp2;
- var FileHandleLockID: cardinal): cardinal; cdecl;
-external 'DOSCALLS' index 637;
-
-function DosProtectOpen (FileName: PChar; var Handle: THandle;
- var Action: cardinal; InitSize, Attrib,
- OpenFlags, OpenMode: cardinal; ea: PEAOp2;
- var FileHandleLockID: cardinal): cardinal; cdecl;
-external 'DOSCALLS' index 637;
-
-function DosProtectOpen (const FileName: string; var Handle: longint;
- var Action: longint; InitSize, Attrib,
- OpenFlags, OpenMode: longint; ea: PEAOp2;
- var FileHandleLockID: cardinal): cardinal;
-
-var T:array[0..255] of char;
-
-begin
- StrPCopy(@T,FileName);
- DosProtectOpen:=DosProtectOpen(@T,Handle,Action,InitSize,Attrib,OpenFlags,OpenMode,EA,FileHandleLockID);
-end;
-
-function DosProtectOpen (const FileName: string; var Handle: THandle;
- var Action: cardinal; InitSize, Attrib,
- OpenFlags, OpenMode: cardinal; ea: PEAOp2;
- var FileHandleLockID: cardinal): cardinal;
-
-var T:array[0..255] of char;
-
-begin
- StrPCopy(@T,FileName);
- DosProtectOpen:=DosProtectOpen(@T,Handle,Action,InitSize,Attrib,OpenFlags,OpenMode,EA,FileHandleLockID);
-end;
-
function DosClose (Handle: THandle): cardinal; cdecl;
external 'DOSCALLS' index 257;
-function DosProtectClose (Handle: THandle;
- FileHandleLockID: cardinal): cardinal; cdecl;
-external 'DOSCALLS' index 638;
-
function DosRead(Handle:longint;var Buffer;Count:longint;
var ActCount:longint):cardinal; cdecl;
external 'DOSCALLS' index 281;
@@ -4140,14 +4111,6 @@ function DosRead (Handle: THandle; var Buffer; Count: cardinal;
var ActCount: cardinal): cardinal; cdecl;
external 'DOSCALLS' index 281;
-function DosProtectRead (Handle: longint; var Buffer; Count: longint;
- var ActCount: longint; FileHandleLockID: cardinal): cardinal; cdecl;
-external 'DOSCALLS' index 641;
-
-function DosProtectRead (Handle: THandle; var Buffer; Count: cardinal;
- var ActCount: cardinal; FileHandleLockID: cardinal): cardinal; cdecl;
-external 'DOSCALLS' index 641;
-
function DosWrite(Handle:longint;const Buffer;Count:longint;
var ActCount:longint):cardinal; cdecl;
external 'DOSCALLS' index 282;
@@ -4156,16 +4119,6 @@ function DosWrite (Handle: THandle; const Buffer; Count: cardinal;
var ActCount: cardinal): cardinal; cdecl;
external 'DOSCALLS' index 282;
-function DosProtectWrite (Handle: longint; const Buffer; Count: longint;
- var ActCount: longint;
- FileHandleLockID: cardinal): cardinal; cdecl;
-external 'DOSCALLS' index 642;
-
-function DosProtectWrite (Handle: THandle; const Buffer; Count: cardinal;
- var ActCount: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-external 'DOSCALLS' index 642;
-
function DosSetFilePtr(Handle:longint;Pos:longint;Method:cardinal;
var PosActual:longint):cardinal; cdecl;
external 'DOSCALLS' index 256;
@@ -4182,26 +4135,6 @@ begin
DosSetFilePtr:=DosSetFilePtr(Handle,Pos,0,PosActual);
end;
-function DosProtectSetFilePtr (Handle: longint; Pos, Method: longint;
- var PosActual: longint;
- FileHandleLockID: cardinal): cardinal; cdecl;
-external 'DOSCALLS' index 621;
-
-function DosProtectSetFilePtr (Handle: THandle; Pos: longint; Method: cardinal;
- var PosActual: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-external 'DOSCALLS' index 621;
-
-function DosProtectSetFilePtr (Handle: THandle; Pos: longint;
- FileHandleLockID: cardinal): cardinal;
-
-var PosActual:cardinal;
-
-begin
- DosProtectSetFilePtr:=DosProtectSetFilePtr(Handle,Pos,0,PosActual,
- FileHandleLockID);
-end;
-
function DosGetFilePtr(Handle:longint;var PosActual:longint):cardinal;
begin
@@ -4214,29 +4147,9 @@ begin
DosGetFilePtr:=DosSetFilePtr(Handle,0,1,PosActual);
end;
-function DosProtectGetFilePtr (Handle: longint;
- var PosActual: longint; FileHandleLockID: cardinal): cardinal;
-
-begin
- DosProtectGetFilePtr := DosProtectSetFilePtr (Handle, 0, 1, PosActual,
- FileHandleLockID);
-end;
-
-function DosProtectGetFilePtr (Handle: THandle;
- var PosActual: cardinal; FileHandleLockID: cardinal): cardinal;
-
-begin
- DosProtectGetFilePtr := DosProtectSetFilePtr (Handle, 0, 1, PosActual,
- FileHandleLockID);
-end;
-
function DosSetFileSize (Handle: THandle; Size: cardinal): cardinal; cdecl;
external 'DOSCALLS' index 272;
-function DosProtectSetFileSize (Handle: THandle; Size: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-external 'DOSCALLS' index 640;
-
function DosResetBuffer (Handle: THandle): cardinal; cdecl;
external 'DOSCALLS' index 254;
@@ -4251,17 +4164,9 @@ function DosQueryFHState (Handle: THandle; var FileMode: cardinal): cardinal;
cdecl;
external 'DOSCALLS' index 276;
-function DosProtectQueryFHState (Handle: THandle; var FileMode: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-external 'DOSCALLS' index 645;
-
function DosSetFHState (Handle: THandle; FileMode: cardinal): cardinal; cdecl;
external 'DOSCALLS' index 221;
-function DosProtectSetFHState (Handle: THandle; FileMode: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-external 'DOSCALLS' index 644;
-
function DosQueryHType(Handle:longint;var HandType:longint;
var Attr:longint):cardinal; cdecl;
external 'DOSCALLS' index 224;
@@ -4459,23 +4364,11 @@ function DosQueryFileInfo (Handle: THandle; InfoLevel: cardinal;
FileStatusLen: cardinal): cardinal; cdecl;
external 'DOSCALLS' index 279;
-function DosProtectQueryFileInfo (Handle: THandle; InfoLevel: cardinal;
- AFileStatus: PFileStatus;
- FileStatusLen: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-external 'DOSCALLS' index 646;
-
function DosSetFileInfo (Handle: THandle; InfoLevel: cardinal;
AFileStatus: PFileStatus;
FileStatusLen: cardinal): cardinal; cdecl;
external 'DOSCALLS' index 218;
-function DosProtectSetFileInfo (Handle: THandle; InfoLevel: cardinal;
- AFileStatus: PFileStatus;
- FileStatusLen: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-external 'DOSCALLS' index 643;
-
function DosQueryPathInfo (FileName: PChar; InfoLevel: cardinal;
AFileStatus: PFileStatus; FileStatusLen: cardinal): cardinal; cdecl;
external 'DOSCALLS' index 223;
@@ -4519,12 +4412,6 @@ function DosEnumAttribute (RefType: cardinal; const AFile: THandle;
cdecl;
external 'DOSCALLS' index 372;
-function DosProtectEnumAttribute (RefType: cardinal; AFile: pointer;
- Entry: cardinal; var Buf; BufSize: cardinal;
- var Count: cardinal; InfoLevel: cardinal;
- FileHandleLockID: cardinal): cardinal; cdecl;
-external 'DOSCALLS' index 636;
-
function DosEnumAttribute (Handle: longint; Entry: longint; var Buf;
BufSize: longint;
var Count: longint; InfoLevel: longint): cardinal;
@@ -4543,16 +4430,6 @@ begin
InfoLevel);
end;
-function DosProtectEnumAttribute (Handle: THandle; Entry: cardinal; var Buf;
- BufSize: cardinal; var Count: cardinal;
- InfoLevel: cardinal;
- FileHandleLockID: cardinal): cardinal;
-
-begin
- DosProtectEnumAttribute := DosProtectEnumAttribute (0, @Handle, Entry, Buf,
- BufSize, Count, InfoLevel, FileHandleLockID);
-end;
-
function DosEnumAttribute (const FileName: string;
Entry: cardinal;var Buf;BufSize: cardinal;
var Count: cardinal; InfoLevel: cardinal): cardinal;
@@ -4565,19 +4442,6 @@ begin
InfoLevel);
end;
-function DosProtectEnumAttribute (const FileName: string; Entry: cardinal;
- var Buf; BufSize: cardinal;
- var Count: cardinal; InfoLevel: cardinal;
- FileHandleLockID: cardinal): cardinal;
-
-var T: array [0..255] of char;
-
-begin
- StrPCopy (@T, FileName);
- DosProtectEnumAttribute := DosProtectEnumAttribute (1, @T, Entry, Buf,
- BufSize, Count, InfoLevel, FileHandleLockID);
-end;
-
function DosScanEnv(Name:PChar;var Value:PChar):cardinal; cdecl;
external 'DOSCALLS' index 227;
@@ -5198,11 +5062,15 @@ function DosQueryCollate (Size: cardinal; var Country: TCountryCode;
Buf: PByteArray; var TableLen: cardinal): cardinal; cdecl;
external 'NLS' index 8;
-function DosQueryCP(Size:longint;CodePages:PWordArray;
+function DosQueryCP(Size:longint; PCodePages:PWordArray;
var ActSize:longint):cardinal; cdecl;
external 'DOSCALLS' index 291;
-function DosQueryCP (Size: cardinal; CodePages: PWordArray;
+function DosQueryCP (Size: cardinal; PCodePages: PWordArray;
+ var ActSize: cardinal): cardinal; cdecl;
+external 'DOSCALLS' index 291;
+
+function DosQueryCP (Size: cardinal; var CodePages;
var ActSize: cardinal): cardinal; cdecl;
external 'DOSCALLS' index 291;
@@ -5375,20 +5243,10 @@ function DosTrueGetMessage (MsgSeg: pointer; Table: PInsertTable;
var MsgSize: cardinal): cardinal; cdecl;
external 'MSG' index 6;
-function DosTrueGetMessage (MsgSeg: pointer; Table: PInsertTable;
- TableSize: longint; Buf: PChar;
- BufSize, MsgNumber: longint; FileName: PChar;
- var MsgSize: longint): cardinal; cdecl;
-external 'MSG' index 6;
-
function DosIQueryMessageCP (var Buf; BufSize: cardinal; FileName: PChar;
var InfoSize: cardinal; MesSeg: pointer): cardinal; cdecl;
external 'MSG' index 8;
-function DosIQueryMessageCP (var Buf; BufSize: longint; FileName: PChar;
- var InfoSize: longint; MesSeg: pointer): cardinal; cdecl;
-external 'MSG' index 8;
-
procedure MagicHeaderEnd; assembler; forward;
{$ASMMODE INTEL}
@@ -5404,18 +5262,21 @@ end;
function DosGetMessage (Table: PInsertTable; TableSize: cardinal; Buf: PChar;
BufSize, MsgNumber: cardinal; FileName: PChar;
- var MsgSize: cardinal): cardinal;
-begin
- DosGetMessage := DosTrueGetMessage(@MagicHeaderStart,Table,TableSize,
- Buf,BufSize,MsgNumber,FileName,MsgSize);
+ var MsgSize: cardinal): cardinal; cdecl; assembler;
+ nostackframe;
+asm
+ pop eax
+ push offset MagicHeaderStart
+ push eax
+ jmp DosTrueGetMessage
end;
function DosGetMessage (Table: PInsertTable; TableSize:longint;Buf:PChar;
- BufSize,MsgNumber:longint;FileName:PChar;
- var MsgSize:longint):cardinal;
+ BufSize,MsgNumber:longint;FileName:PChar;
+ var MsgSize:longint):cardinal;
begin
- DosGetMessage := DosTrueGetMessage(@MagicHeaderStart,Table,TableSize,
- Buf,BufSize,MsgNumber,FileName,MsgSize);
+ DosGetMessage := DosGetMessage (Table, cardinal (TableSize), Buf,
+ cardinal (BufSize), cardinal (MsgNumber), FileName, cardinal (MsgSize));
end;
function DosQueryMessageCP (var Buf; BufSize: cardinal; FileName: PChar;
@@ -5428,8 +5289,8 @@ end;
function DosQueryMessageCP(var Buf;BufSize:longint;FileName:PChar;
var InfoSize:longint):cardinal;
begin
- DosQueryMessageCP := DosIQueryMessageCP(Buf, BufSize, FileName, InfoSize,
- @MagicHeaderStart);
+ DosQueryMessageCP := DosIQueryMessageCP(Buf, cardinal (BufSize), FileName,
+ cardinal (InfoSize), @MagicHeaderStart);
end;
procedure MagicHeaderEnd; assembler;
@@ -5765,31 +5626,49 @@ function LogAddEntries (Handle: cardinal; Service: cardinal;
function LogAddEntries (Handle: cardinal; Service: cardinal;
var LogEntries: TLogEntryRec): cardinal; cdecl; external 'DOSCALLS' index 432;
+function DosQueryMemState (PMem: pointer; var Size: cardinal;
+ var State: cardinal): cardinal; cdecl;
+external 'DOSCALLS' index 307;
+
(* Todo:
-function DosRawReadNPipe ...; cdecl;
-external 'DOSCALLS' index 246;
+function DosRawReadNPipe (HPIPE hPipe,
+ PVOID pBuffer,
+ ULONG cbRead,
+ PULONG pcbActual); cdecl;
+external 'DOSCALLS' index 246; - no documentation???
-function DosRawWriteNPipe ...; cdecl;
-external 'DOSCALLS' index 247;
+function DosRawWriteNPipe (HPIPE hPipe,
+ PVOID pBuffer,
+ ULONG cbWrite,
+ PULONG pcbActual); cdecl;
+external 'DOSCALLS' index 247; - no documentation???
function DosSetCP ...; cdecl;
-external 'DOSCALLS' index 288;
+external 'DOSCALLS' index 288; - no documentation???
function DosDynamicTrace ...; cdecl;
-external 'DOSCALLS' index 316;
+external 'DOSCALLS' index 316; - no documentation???
-function DosRegisterPerfCtrs ...; cdecl;
-external 'DOSCALLS' index 367;
+function DosRegisterPerfCtrs (PBYTE pbDataBlk,
+ PBYTE pbTextBlk,
+ ULONG flFlags); cdecl;
+external 'DOSCALLS' index 367; - no documentation???
-function DosQueryDOSProperty ...; cdecl;
-external 'DOSCALLS' index 373;
+function DosQueryDOSProperty (SGID sgid,
+ PSZ pszName,
+ ULONG cb,
+ PSZ pch); cdecl;
+external 'DOSCALLS' index 373; - no documentation???
-function DosSetDOSProperty ...; cdecl;
-external 'DOSCALLS' index 374;
+function DosSetDOSProperty (SGID sgid,
+ PSZ pszName,
+ ULONG cb,
+ PSZ pch); cdecl;
+external 'DOSCALLS' index 374; - no documentation???
function DosProfile ...; cdecl;
-external 'DOSCALLS' index 377;
+external 'DOSCALLS' index 377; - no documentation???
*)
function DosReplaceModule (OldModule, NewModule, BackupModule: PChar):
@@ -5797,137 +5676,62 @@ function DosReplaceModule (OldModule, NewModule, BackupModule: PChar):
external 'DOSCALLS' index 417;
(*
-function DosTIB ...; cdecl;
+??? function DosTIB ...; cdecl;
external 'DOSCALLS' index 419;
-function DosOpenChangeNotify ...; cdecl;
+??? function DosOpenChangeNotify ...; cdecl;
external 'DOSCALLS' index 440;
-function DosResetChangeNotify ...; cdecl;
+??? function DosResetChangeNotify ...; cdecl;
external 'DOSCALLS' index 441;
-function DosCloseChangeNotify ...; cdecl;
+??? function DosCloseChangeNotify ...; cdecl;
external 'DOSCALLS' index 442;
-function DosInitializePorthole ...; cdecl;
+??? function DosInitializePorthole ...; cdecl;
external 'DOSCALLS' index 580;
-function DosQueryHeaderInfo ...; cdecl;
+??? function DosQueryHeaderInfo ...; cdecl;
external 'DOSCALLS' index 582;
-WSeB/eCS APIs:
- Creates a private Read/Write alias or an LDT code segment alias to part
- of an existing memory object. The alias object is accessible only to the
- process that created it. The original object must be accessible to the caller
- of DosAliasMem.
-
- An alias is removed by calling DosFreeMem with the alias address.
-
- Although it is possible to create a Read/Write alias to a code segment
- to allow code modification, this is not recommended. On Pentium processors,
- and later, pipe-lining techniques used by the processor might allow
- the processor not to be aware of the modified code, if appropriate
- pipe-line serialization is not performed by the programmer. For further
- information see the processor documentation.
-
- Possible return values:
- 0 No_Error
- 8 Error_Not_Enough_Memory
- 87 Error_Invalid_Parameter
- 95 Error_Interrupt
- 32798 Error_Crosses_Object_Boundary
-
-pMem = Pointer to the memory to be aliased. It must be on a page boundary
- (i.e. aligned to 4 kB), but may specify an address within a memory
- object.
-Size = Specifies size in bytes for the memory to alias. The entire range
- must lie within a single memory object and must be committed
- if OBJ_SELMAPALL is specified.
-Alias = Pointer where the address of the aliased memory is returned.
- The corresponding LDT selector is not explicitly returned but may be
- calculated by using the Compatibility Mapping Algorithm
- ((Alias shr 13) or 7).
-Flags = Combination of the following values:
- obj_SelMapAll = $800 (Create a Read/Write 32 bit alias
- to the address specified. The entire range
- must be committed, start on page boundary
- and be within the extent of a single memory
- object. An LDT selector is created to map
- the entire range specified. If obj_SelMapAll
- is not specified, then size is rounded up
- to a 4K multiple and the alias created
- inherits the permissions from the pages
- of the original object.)
- obj_Tile = $40 (Obj_Tile may be specified, but currently
- this is enforced whether or not specified.
- This forces LDT selectors to be based
- on 64K boundaries.)
- sel_Code = 1 (Marks the LDT alias selector(s)
- Read-Executable code selectors.)
- sel_Use32 = 2 (Used with obj_SelMapAll, otherwise ignored.
- Marks the first alias LDT selector
- as a 32 bit selector by setting the BIG/C32
- bit.)
-functionDosAliasMem (pMem: pointer; Size: cardinal; var Alias: pointer; Flags: cardinal): cardinal; cdecl;
-external 'DOSCALLS' index 298;
-
- DosCancelLockRequestL cancels an outstanding DosSetFileLocksL request.
- If two threads in a process are waiting on a lock file range, and another
- thread issues DosCancelLockRequestL for that lock file range, then both
- waiting threads are released.
- Not all file-system drivers (FSDs) can cancel an outstanding lock request.
- Local Area Network (LAN) servers cannot cancel an outstanding lock request
- if they use a version of the operating system prior to OS/2 Version 2.00.
+DosCreateThread2 2.45
+DosDumpProcess 2.10
+DosForceSystemDump - ???
-Possible return values:
- 0 No_Error
- 6 Error_Invalid_Handle
- 87 Error_Invalid_Parameter
- 173 Error_Cancel_Violation
-
-hFile = File handle used in the DosSetFileLocksL function
- that is to be cancelled.
-pflLockL = Address of the structure describing the lock request to cancel.
-
-function DosCancelLockRequestL (hFile: THandle; pflLock: PFileLockL): cardinal; cdecl;
-external 'DOSCALLS' index ???;
+??? function DosQueryPageUsage (...): cardinal; cdecl;
+external 'DOSCALLS' index 358;
-function DosCancelLockRequestL (hFile: THandle; const Lock: TFileLockL): cardinal; cdecl;
-external 'DOSCALLS' index ???;
+ DosPerfSystemCall 2.40
-DosCreateThread2
-DosDumpProcess
-DosForceSystemDump
functionDosGetProcessorStatus (...): cardinal; cdecl;
external 'DOSCALLS' index 447;
-function DosQueryPageUsage (...): cardinal; cdecl;
-external 'DOSCALLS' index 358;
-
+ DosSetProcessorStatus = DOSCALLS.448
-DosSetProcessorStatus = DOSCALLS.448
-DosCreateSpinLock = DOSCALLS.449
-DosAcquireSpinLock = DOSCALLS.450
-DosReleaseSpinLock = DOSCALLS.451
-DosFreeSpinLock = DOSCALLS.452
-DosListIO
-DosListIOL
-DosOpenL = DOSCALLS.981
-DosPerfSystemCall
-DosProtectOpenL
-DosProtectSetFileLocksL
-DosProtectSetFilePrtL
-DosProtectSetFileSizeL
-DosQueryABIOSSuport
-
-functionDosQueryMemState (...): cardinal; cdecl;
-external 'DOSCALLS' index 307;
+type
+ TSpinLock = cardinal;
+ HSpinLock = TSpinLock;
+ PSpinLock = ^TSpinLock;
+ PHSpinLock = PSpinLock;
+
+function DosCreateSpinLock (var SpinLock: TSpinLock): cardinal; cdecl;
+procedure DosAcquireSpinLock (SpinLock: TSpinLock); cdecl;
+procedure DosReleaseSpinLock (SpinLock: TSpinLock); cdecl;
+function DosFreeSpinLock (SpinLock: TSpinLock): cardinal; cdecl;
+
+ DosCreateSpinLock = DOSCALLS.449
+ DosAcquireSpinLock = DOSCALLS.450
+ DosReleaseSpinLock = DOSCALLS.451
+ DosFreeSpinLock = DOSCALLS.452
+ DosListIO 2.45
+ DosListIOL 2.45
+ DosQueryABIOSSuport 2.10
___ functionDos16QueryModFromCS (...): ...
external 'DOSCALLS' index 359;
-DosQueryModFromEIP
+ DosQueryModFromEIP 2.10
*)
function DosQuerySysState (EntityList, EntityLevel, PID, TID: cardinal;
var Buffer; BufLen: cardinal): cardinal; cdecl;
@@ -5937,14 +5741,15 @@ function DosQuerySysState (EntityList, EntityLevel, PID, TID: cardinal;
PDataBuf: pointer; cbBuf: cardinal): cardinal; cdecl;
external 'DOSCALLS' index 368;
+function DosAliasMem (pMem: pointer; Size: cardinal; var Alias: pointer;
+ Flags: cardinal): cardinal; cdecl;
+external 'DOSCALLS' index 298;
+
(*
-DosQueryThreadAffinity
-DosSetFileLocksL
-DosSetFilePtrL = DOSCALLS.988
-DosSetFileSizeL = DOSCALLS.989
-DosSetThreadAffinity
-Dos16SysTrace
-DosVerifyPidTid
+ DosQueryThreadAffinity
+ DosSetThreadAffinity
+ Dos16SysTrace
+ DosVerifyPidTid 2.30
*)
diff --git a/rtl/os2/dynlibs.inc b/rtl/os2/dynlibs.inc
index ac37305fe1..bd791ea857 100644
--- a/rtl/os2/dynlibs.inc
+++ b/rtl/os2/dynlibs.inc
@@ -54,7 +54,10 @@ begin
if DynLibErrNo = 0 then
Result := Handle
else
- Result := NilHandle;
+ begin
+ Result := NilHandle;
+ OSErrorWatch (DynLibErrNo);
+ end;
end;
function GetProcedureAddress (Lib: TLibHandle; const ProcName: AnsiString): pointer;
@@ -66,7 +69,10 @@ begin
if DynLibErrNo = 0 then
Result := P
else
- Result := nil;
+ begin
+ Result := nil;
+ OSErrorWatch (DynLibErrNo);
+ end;
end;
function GetProcedureAddress (Lib: TLibHandle; Ordinal: TOrdinalEntry): pointer;
@@ -78,7 +84,10 @@ begin
if DynLibErrNo = 0 then
Result := P
else
- Result := nil;
+ begin
+ Result := nil;
+ OSErrorWatch (DynLibErrNo);
+ end;
end;
function UnloadLibrary (Lib: TLibHandle): boolean;
@@ -86,6 +95,8 @@ begin
DynLibErrPath [0] := #0;
DynLibErrNo := DosFreeModule (Lib);
Result := DynLibErrNo = 0;
+ if DynLibErrNo <> 0 then
+ OSErrorWatch (DynLibErrNo);
end;
function GetDynLibsError: longint;
@@ -106,18 +117,23 @@ begin
GetDynLibsErrorStr := ''
else
begin
+ Result := '';
VarArr [1] := @DynLibErrPath [0];
RC := DosGetMessage (@VarArr, 1, @OutBuf [0], SizeOf (OutBuf),
DynLibErrNo, @SysMsgFile [0], RetMsgSize);
if RC = 0 then
- Result := StrPas (@OutBuf [0])
+ begin
+ SetLength (Result, RetMsgSize);
+ Move (OutBuf [0], Result [1], RetMsgSize);
+ end
else
begin
Str (DynLibErrNo, Result);
Result := 'Error ' + Result;
+ if DynLibErrPath [0] <> #0 then
+ Result := StrPas (@DynLibErrPath [0]) + ' - ' + Result;
+ OSErrorWatch (RC);
end;
- if DynLibErrPath [0] <> #0 then
- Result := StrPas (@DynLibErrPath [0]) + ' - ' + Result;
end;
end;
diff --git a/rtl/os2/os2def.pas b/rtl/os2/os2def.pas
index 5b0bbfde78..d53295fd2f 100644
--- a/rtl/os2/os2def.pas
+++ b/rtl/os2/os2def.pas
@@ -293,21 +293,25 @@ const
{ Constants from bseord.h header file (ordinal numbers of API functions) }
const
+(* ANSICALL.DLL *)
Ord_AnsiINJECT = 1;
Ord_AnsiKEYDEF = 2;
Ord_AnsiINTERP = 3;
+(* PMBIDI.DLL *)
Ord_NlsCONVERTBIDINUMERICS = 1;
Ord_NlsCONVERTBIDISTRING = 2;
+ Ord_NlsINTSETBIDIATT = 3;
+ Ord_NlsINTQUERYBIDIATT = 4;
Ord_NlsSETBIDIATT = 5;
Ord_NlsQUERYBIDIATT = 6;
Ord_NlsINVERSESTRING = 7;
Ord_NlsSETBIDIPRINT = 8;
Ord_NlsEDITSHAPE = 9;
Ord_NlsSHAPEBIDISTRING = 10;
- Ord_NlsINTSETBIDIATT = 3;
- Ord_NlsINTQUERYBIDIATT = 4;
Ord_NLPOPUP = 11;
+(* BKSCALLS.DLL *)
Ord_BksMAIN = 1;
+(* PMDRAG.DLL *)
Ord_DrgACCESSDRAGINFO = 1;
Ord_DrgADDSTRHANDLE = 2;
Ord_DrgALLOCDRAGINFO = 3;
@@ -339,8 +343,6 @@ const
Ord_DrgVERIFYTRUETYPE = 29;
Ord_DrgVERIFYTYPE = 30;
Ord_DrgVERIFYTYPESET = 31;
- Ord_DrgDRAGFILES = 63;
- Ord_DrgACCEPTDROPPEDFILES = 64;
Ord_Drg32ACCESSDRAGINFO = 32;
Ord_Drg32ADDSTRHANDLE = 33;
Ord_Drg32ALLOCDRAGINFO = 34;
@@ -372,17 +374,11 @@ const
Ord_Drg32VERIFYTRUETYPE = 60;
Ord_Drg32VERIFYTYPE = 61;
Ord_Drg32VERIFYTYPESET = 62;
+ Ord_DrgDRAGFILES = 63;
+ Ord_DrgACCEPTDROPPEDFILES = 64;
Ord_Drg32DRAGFILES = 65;
Ord_Drg32ACCEPTDROPPEDFILES = 66;
- Ord_FKAINIT = 64;
- Ord_QUERYFKADISPLAYDETAILS = 65;
- Ord_WinFKAWNDPROC = 66;
- Ord_WinLOADFKA = 67;
- Ord_WinCREATEFKA = 68;
- Ord_WinSETFKAFORM = 69;
- Ord_WinQUERYFKAFORM = 70;
- Ord_WinGOTOFKA = 71;
- Ord_WinGOFROMFKA = 72;
+(* HELPMGR.DLL *)
Ord_WinCREATEHELPINSTANCE = 1;
Ord_WinDESTROYHELPINSTANCE = 2;
Ord_WinQUERYHELPINSTANCE = 3;
@@ -395,6 +391,15 @@ const
Ord_Win32ASSOCIATEHELPINSTANCE = 54;
Ord_Win32LOADHELPTABLE = 55;
Ord_Win32CREATEHELPTABLE = 56;
+ Ord_FKAINIT = 64;
+ Ord_QUERYFKADISPLAYDETAILS = 65;
+ Ord_WinFKAWNDPROC = 66;
+ Ord_WinLOADFKA = 67;
+ Ord_WinCREATEFKA = 68;
+ Ord_WinSETFKAFORM = 69;
+ Ord_WinQUERYFKAFORM = 70;
+ Ord_WinGOTOFKA = 71;
+ Ord_WinGOFROMFKA = 72;
Ord_DDFINITIALIZE = 74;
Ord_DDFPARA = 75;
Ord_DDFSETFORMAT = 76;
@@ -410,6 +415,7 @@ const
Ord_DDFMETAFILE = 86;
Ord_DDFSETFONT = 87;
Ord_DDFBITMAP = 88;
+(* KBDCALLS.DLL *)
Ord_KbdSETCUSTXT = 1;
Ord_KbdGETCP = 3;
Ord_KbdCHARIN = 4;
@@ -430,11 +436,13 @@ const
Ord_KbdOPEN = 23;
Ord_KbdGETHWID = 24;
Ord_KbdSETHWID = 25;
- Ord_DosMONOPEN = 4;
- Ord_DosMONCLOSE = 3;
- Ord_DosMONREAD = 2;
+(* MONCALLS.DLL *)
Ord_DosMONWRITE = 1;
+ Ord_DosMONREAD = 2;
+ Ord_DosMONCLOSE = 3;
+ Ord_DosMONOPEN = 4;
Ord_DosMONREG = 5;
+(* MOUCALLS.DLL *)
Ord_MouGETPTRSHAPE = 1;
Ord_MouSETPTRSHAPE = 2;
Ord_MouGETNUMMICKEYS = 3;
@@ -462,6 +470,7 @@ const
Ord_MouINITREAL = 27;
Ord_MouGETTHRESHOLD = 29;
Ord_MouSETTHRESHOLD = 30;
+(* MSG.DLL *)
Ord_DosPUTMESSAGE = 1;
Ord_DosTRUEGETMESSAGE = 2;
Ord_DosINSMESSAGE = 3;
@@ -470,6 +479,7 @@ const
Ord_Dos32TRUEGETMESSAGE = 6;
Ord_DosIQUERYMESSAGECP = 7;
Ord_Dos32IQUERYMESSAGECP = 8;
+(* NLS.DLL *)
Ord_DosCASEMAP = 1;
Ord_DosGETCOLLATE = 2;
Ord_DosGETCTRYINFO = 3;
@@ -478,6 +488,7 @@ const
Ord_Dos32QUERYDBCSENV = 6;
Ord_Dos32MAPCASE = 7;
Ord_Dos32QUERYCOLLATE = 8;
+(* NAMPIPES.DLL *)
Ord_DosMAKENMPIPE = 1;
Ord_DosQNMPIPEINFO = 2;
Ord_DosCONNECTNMPIPE = 3;
@@ -492,109 +503,149 @@ const
Ord_DosRAWWRITENMPIPE = 12;
Ord_DosSETNMPIPESEM = 13;
Ord_DosQNMPIPESEMSTATE = 14;
- Ord_DosCWAIT = 2;
- Ord_DosENTERCRITSEC = 3;
- Ord_DosEXIT = 5;
- Ord_DosEXITCRITSEC = 6;
- Ord_DosEXITLIST = 7;
- Ord_DosGETINFOSEG = 8;
- Ord_DosGETPRTY = 9;
- Ord_DosKILLPROCESS = 10;
- Ord_DosSETPRTY = 11;
- Ord_DosPTRACE = 12;
- Ord_DosHOLDSIGNAL = 13;
- Ord_DosSETSIGHANDLER = 14;
- Ord_DosFLAGPROCESS = 15;
- Ord_DosMAKEPIPE = 16;
- Ord_DosSEMSETWAIT = 20;
- Ord_DosMUXSEMWAIT = 22;
- Ord_DosCLOSESEM = 23;
- Ord_DosCREATESEM = 24;
- Ord_DosOPENSEM = 25;
- Ord_DosRESUMETHREAD = 26;
- Ord_DosSUSPENDTHREAD = 27;
- Ord_DosSETDATETIME = 28;
+(* DOSCALLS.DLL *)
+{
+xxx Ord_DosICreateThread = 1;
+}
+ Ord_DosCWAIT = 2; (* callgate *)
+ Ord_DosENTERCRITSEC = 3; (* callgate *)
+ Ord_DosIExecPgm = 4; (* callgate *)
+ Ord_DosEXIT = 5; (* callgate *)
+ Ord_DosEXITCRITSEC = 6; (* callgate *)
+ Ord_DosEXITLIST = 7; (* callgate *)
+ Ord_DosGETINFOSEG = 8; (* callgate *)
+ Ord_DosGETPRTY = 9; (* callgate *)
+ Ord_DosKILLPROCESS = 10; (* callgate *)
+ Ord_DosSETPRTY = 11; (* callgate *)
+ Ord_DosPTRACE = 12; (* callgate *)
+ Ord_DosHOLDSIGNAL = 13; (* callgate *)
+ Ord_DosSETSIGHANDLER = 14; (* callgate *)
+ Ord_DosFLAGPROCESS = 15; (* callgate *)
+ Ord_DosMAKEPIPE = 16; (* callgate *)
+ Ord_DosISysSemClear = 17; (* callgate *)
+ Ord_DosISemRequest = 18; (* callgate *)
+ Ord_DosISysSemSet = 19; (* callgate *)
+ Ord_DosSEMSETWAIT = 20; (* callgate *)
+ Ord_DosISemWait = 21; (* callgate *)
+ Ord_DosMUXSEMWAIT = 22; (* callgate *)
+ Ord_DosCLOSESEM = 23; (* callgate *)
+ Ord_DosCREATESEM = 24; (* callgate *)
+ Ord_DosOPENSEM = 25; (* callgate *)
+ Ord_DosRESUMETHREAD = 26; (* callgate *)
+ Ord_DosSUSPENDTHREAD = 27; (* callgate *)
+ Ord_DosSETDATETIME = 28; (* callgate *)
Ord_DosTIMERASYNC = 29;
Ord_DosTIMERSTART = 30;
Ord_DosTIMERSTOP = 31;
- Ord_DosSLEEP = 32;
- Ord_DosGETDATETIME = 33;
- Ord_DosALLOCSEG = 34;
- Ord_DosALLOCSHRSEG = 35;
- Ord_DosGETSHRSEG = 36;
- Ord_DosGIVESEG = 37;
- Ord_DosREALLOCSEG = 38;
- Ord_DosFREESEG = 39;
- Ord_DosALLOCHUGE = 40;
- Ord_DosGETHUGESHIFT = 41;
- Ord_DosREALLOCHUGE = 42;
- Ord_DosCREATECSALIAS = 43;
- Ord_DosLOADMODULE = 44;
- Ord_DosGETPROCADDR = 45;
- Ord_DosFREEMODULE = 46;
- Ord_DosGETMODHANDLE = 47;
- Ord_DosGETMODNAME = 48;
- Ord_DosGETMACHINEMODE = 49;
- Ord_DosBEEP = 50;
- Ord_DosCLIACCESS = 51;
- Ord_DosDEVCONFIG = 52;
- Ord_DosDEVIOCTL = 53;
- Ord_DosBUFRESET = 56;
- Ord_DosCHDIR = 57;
- Ord_DosCHGFILEPTR = 58;
- Ord_DosCLOSE = 59;
- Ord_DosDELETE = 60;
- Ord_DosDUPHANDLE = 61;
- Ord_DosFILELOCKS = 62;
- Ord_DosFINDCLOSE = 63;
- Ord_DosFINDFIRST = 64;
- Ord_DosFINDNEXT = 65;
- Ord_DosMKDIR = 66;
- Ord_DosMOVE = 67;
- Ord_DosNEWSIZE = 68;
- Ord_DosPORTACCESS = 69;
- Ord_DosOPEN = 70;
- Ord_DosQCURDIR = 71;
- Ord_DosQCURDISK = 72;
- Ord_DosQFHANDSTATE = 73;
- Ord_DosQFILEINFO = 74;
- Ord_DosQFILEMODE = 75;
- Ord_DosQFSINFO = 76;
- Ord_DosQHANDTYPE = 77;
- Ord_DosQVERIFY = 78;
- Ord_DosRMDIR = 80;
- Ord_DosSELECTDISK = 81;
- Ord_DosSETFHANDSTATE = 82;
- Ord_DosSETFILEINFO = 83;
- Ord_DosSETFILEMODE = 84;
- Ord_DosSETMAXFH = 85;
- Ord_DosSETVERIFY = 86;
- Ord_DosSYSTEMSERVICE = 88;
- Ord_DosSETVEC = 89;
- Ord_DosSYSTRACE = 90;
- Ord_DosGETENV = 91;
- Ord_DosGETVERSION = 92;
- Ord_DosGETPID = 94;
- Ord_DosOPEN2 = 95;
- Ord_DosLIBINIT = 96;
- Ord_DosSETFSINFO = 97;
- Ord_DosQPATHINFO = 98;
- Ord_DosDEVIOCTL2 = 99;
- Ord_DosSETPATHINFO = 104;
- Ord_DosISETRELMAXFH = 108;
- Ord_DosIDEVIOCTL = 109;
+ Ord_DosSLEEP = 32; (* callgate *)
+ Ord_DosGETDATETIME = 33; (* callgate *)
+ Ord_DosALLOCSEG = 34; (* callgate *)
+ Ord_DosALLOCSHRSEG = 35; (* callgate *)
+ Ord_DosGETSHRSEG = 36; (* callgate *)
+ Ord_DosGIVESEG = 37; (* callgate *)
+ Ord_DosREALLOCSEG = 38; (* callgate *)
+ Ord_DosFREESEG = 39; (* callgate *)
+ Ord_DosALLOCHUGE = 40; (* callgate *)
+ Ord_DosGETHUGESHIFT = 41; (* callgate *)
+ Ord_DosREALLOCHUGE = 42; (* callgate *)
+ Ord_DosCREATECSALIAS = 43; (* callgate *)
+ Ord_DosLOADMODULE = 44; (* callgate *)
+ Ord_DosGETPROCADDR = 45; (* callgate *)
+ Ord_DosFREEMODULE = 46; (* callgate *)
+ Ord_DosGETMODHANDLE = 47; (* callgate *)
+ Ord_DosGETMODNAME = 48; (* callgate *)
+ Ord_DosGETMACHINEMODE = 49; (* callgate *)
+ Ord_DosBEEP = 50; (* callgate *)
+ Ord_DosCLIACCESS = 51; (* callgate *)
+ Ord_DosDEVCONFIG = 52; (* callgate *)
+ Ord_DosDEVIOCTL = 53; (* callgate *)
+ Ord_DosSGSwitch = 54; (* callgate *)
+ Ord_DosSGSwitchMe = 55; (* callgate *)
+ Ord_DosBUFRESET = 56; (* callgate *)
+ Ord_DosCHDIR = 57; (* callgate *)
+ Ord_DosCHGFILEPTR = 58; (* callgate *)
+ Ord_DosCLOSE = 59; (* callgate *)
+ Ord_DosDELETE = 60; (* callgate *)
+ Ord_DosDUPHANDLE = 61; (* callgate *)
+ Ord_DosFILELOCKS = 62; (* callgate *)
+ Ord_DosFINDCLOSE = 63; (* callgate *)
+ Ord_DosFINDFIRST = 64; (* callgate *)
+ Ord_DosFINDNEXT = 65; (* callgate *)
+ Ord_DosMKDIR = 66; (* callgate *)
+ Ord_DosMOVE = 67; (* callgate *)
+ Ord_DosNEWSIZE = 68; (* callgate *)
+ Ord_DosPORTACCESS = 69; (* callgate *)
+ Ord_DosOPEN = 70; (* callgate *)
+ Ord_DosQCURDIR = 71; (* callgate *)
+ Ord_DosQCURDISK = 72; (* callgate *)
+ Ord_DosQFHANDSTATE = 73; (* callgate *)
+ Ord_DosQFILEINFO = 74; (* callgate *)
+ Ord_DosQFILEMODE = 75; (* callgate *)
+ Ord_DosQFSINFO = 76; (* callgate *)
+ Ord_DosQHANDTYPE = 77; (* callgate *)
+ Ord_DosQVERIFY = 78; (* callgate *)
+ Ord_DosIRead = 79; (* callgate *)
+ Ord_DosRMDIR = 80; (* callgate *)
+ Ord_DosSELECTDISK = 81; (* callgate *)
+ Ord_DosSETFHANDSTATE = 82; (* callgate *)
+ Ord_DosSETFILEINFO = 83; (* callgate *)
+ Ord_DosSETFILEMODE = 84; (* callgate *)
+ Ord_DosSETMAXFH = 85; (* callgate *)
+ Ord_DosSETVERIFY = 86; (* callgate *)
+ Ord_DosIWrite = 87; (* callgate *)
+ Ord_DosSYSTEMSERVICE = 88; (* callgate *)
+ Ord_DosSETVEC = 89; (* callgate *)
+ Ord_DosSYSTRACE = 90; (* callgate *)
+ Ord_DosGETENV = 91; (* callgate *)
+ Ord_DosGETVERSION = 92; (* callgate *)
+ Ord_DosQTraceInfo = 93; (* callgate *)
+ Ord_DosGETPID = 94; (* callgate *)
+ Ord_DosOPEN2 = 95; (* callgate *)
+ Ord_DosLIBINIT = 96; (* callgate *)
+ Ord_DosSETFSINFO = 97; (* callgate *)
+ Ord_DosQPATHINFO = 98; (* callgate *)
+ Ord_DosDEVIOCTL2 = 99; (* callgate *)
+ Ord_DosICanonicalize = 100; (* callgate *)
+ Ord_DosSetFgnd = 101; (* callgate *)
+{
+xxx Ord_DosSwapTaskInit = 102;
+xxx Ord_DosReadPhys = 103;
+}
+ Ord_DosSETPATHINFO = 104; (* callgate *)
+ Ord_DosSGSwitchProc2 = 105; (* callgate *)
+ Ord_STRUCHECK = 106; (* callgate *)
+ Ord_STRURESUPDATE = 107; (* callgate *)
+ Ord_DosISETRELMAXFH = 108; (* callgate *)
+ Ord_DosIDEVIOCTL = 109; (* callgate *)
Ord_Dos32FORCEDELETE = 110;
Ord_Dos32KILLTHREAD = 111;
Ord_DosQUERYRASINFO = 112;
- Ord_DosERROR = 120;
- Ord_DosGETSEG = 121;
- Ord_DosLOCKSEG = 122;
- Ord_DosUNLOCKSEG = 123;
- Ord_DosSIZESEG = 126;
- Ord_DosMEMAVAIL = 127;
- Ord_DosPHYSICALDISK = 129;
- Ord_DosGETCP = 130;
- Ord_DosSENDSIGNAL = 134;
+ Ord_Dos32DumpProcess = 113;
+ Ord_Dos32SuppressPopUps = 114;
+ Ord_THK32ALLOCMEM = 115;
+ Ord_THK32FREEMEM = 116;
+ Ord_THK32ALLOCSTACK = 117;
+ Ord_DosOpen2Compt = 118; (* callgate *)
+ Ord_DosGetSTDA = 119; (* callgate *)
+ Ord_DosERROR = 120; (* callgate *)
+ Ord_DosGETSEG = 121; (* callgate *)
+ Ord_DosLOCKSEG = 122; (* callgate *)
+ Ord_DosUNLOCKSEG = 123; (* callgate *)
+{
+xxx Ord_DosSGSwitchProc = 124;
+}
+ Ord_DosIRamSemWake = 125; (* callgate *)
+ Ord_DosSIZESEG = 126; (* callgate *)
+ Ord_DosMEMAVAIL = 127; (* callgate *)
+ Ord_DosIRamSemRequest = 128; (* callgate *)
+ Ord_DosPHYSICALDISK = 129; (* callgate *)
+ Ord_DosGETCP = 130; (* callgate *)
+ Ord_DosISetCP = 131; (* callgate *)
+{
+xxx Ord_DosGlobalSeg = 132;
+xxx Ord_DosProfile = 133;
+}
+ Ord_DosSENDSIGNAL = 134; (* callgate *)
Ord_DosHUGESHIFT = 135;
Ord_DosHUGEINCR = 136;
Ord_DosREAD = 137;
@@ -605,45 +656,75 @@ const
Ord_DosSEMWAIT = 142;
Ord_DosSEMSET = 143;
Ord_DosEXECPGM = 144;
- Ord_DosCREATETHREAD = 145;
- Ord_DosSUBSET = 146;
- Ord_DosSUBALLOC = 147;
- Ord_DosSUBFREE = 148;
+ Ord_DosCREATETHREAD = 145; (* callgate *)
+ Ord_DosSUBSET = 146; (* callgate *)
+ Ord_DosSUBALLOC = 147; (* callgate *)
+ Ord_DosSUBFREE = 148; (* callgate *)
Ord_DosREADASYNC = 149;
Ord_DosWRITEASYNC = 150;
Ord_DosSEARCHPATH = 151;
Ord_DosSCANENV = 152;
Ord_DosSETCP = 153;
- Ord_DosGETRESOURCE = 155;
- Ord_DosGETPPID = 156;
- Ord_DosCALLBACK = 157;
- Ord_DosR2STACKREALLOC = 160;
- Ord_DosFSRAMSEMREQUEST = 161;
- Ord_DosFSRAMSEMCLEAR = 162;
+ Ord_DosQProcStatus = 154; (* callgate *)
+ Ord_DosGETRESOURCE = 155; (* callgate *)
+ Ord_DosGETPPID = 156; (* callgate *)
+ Ord_DosCALLBACK = 157; (* callgate *)
+ Ord_DosICallBack = 158; (* callgate *)
+ Ord_DosRetForward = 159; (* callgate *)
+ Ord_DosR2STACKREALLOC = 160; (* callgate *)
+ Ord_DosFSRAMSEMREQUEST = 161; (* callgate *)
+ Ord_DosFSRAMSEMCLEAR = 162; (* callgate *)
Ord_DosQAPPTYPE = 163;
Ord_DosSETPROCCP = 164;
- Ord_DosDYNAMICTRACE = 165;
- Ord_DosQSYSINFO = 166;
- Ord_DosFSATTACH = 181;
- Ord_DosQFSATTACH = 182;
- Ord_DosFSCTL = 183;
- Ord_DosFINDFIRST2 = 184;
- Ord_DosMKDIR2 = 185;
- Ord_DosFILEIO = 186;
- Ord_DosFINDNOTIFYCLOSE = 187;
- Ord_DosFINDNOTIFYFIRST = 188;
- Ord_DosFINDNOTIFYNEXT = 189;
- Ord_DosEDITNAME = 191;
+ Ord_DosDYNAMICTRACE = 165; (* callgate *)
+ Ord_DosQSYSINFO = 166; (* callgate *)
+ Ord_DosIMakeNmPipe = 167; (* callgate *)
+ Ord_DosICallNmPipe = 168; (* callgate *)
+ Ord_DosIConnectNmPipe = 169; (* callgate *)
+ Ord_DosIDisconnectNmPipe = 170; (* callgate *)
+ Ord_DosIPeekNmPipe = 171; (* callgate *)
+ Ord_DosIQNmPipeInfo = 172; (* callgate *)
+ Ord_DosIQNmPHandState = 173; (* callgate *)
+ Ord_DosISetNmPHandState = 174; (* callgate *)
+ Ord_DosITransactNmPipe = 175; (* callgate *)
+ Ord_DosIWaitNmPipe = 176; (* callgate *)
+ Ord_DosISetNmPipeSem = 177; (* callgate *)
+ Ord_DosIQNmPipeSemState = 178; (* callgate *)
+ Ord_DosIRawReadNmPipe = 179; (* callgate *)
+ Ord_DosIRawWriteNmPipe = 180; (* callgate *)
+ Ord_DosFSATTACH = 181; (* callgate *)
+ Ord_DosQFSATTACH = 182; (* callgate *)
+ Ord_DosFSCTL = 183; (* callgate *)
+ Ord_DosFINDFIRST2 = 184; (* callgate *)
+ Ord_DosMKDIR2 = 185; (* callgate *)
+ Ord_DosFILEIO = 186; (* callgate *)
+ Ord_DosFINDNOTIFYCLOSE = 187; (* callgate *)
+ Ord_DosFINDNOTIFYFIRST = 188; (* callgate *)
+ Ord_DosFINDNOTIFYNEXT = 189; (* callgate *)
+ Ord_DosSetTraceInfo = 190; (* callgate *)
+ Ord_DosEDITNAME = 191; (* callgate *)
+ Ord_DosLogMode = 192; (* callgate *)
+ Ord_DosLogEntry = 193; (* callgate *)
+ Ord_DosGetLogBuffer = 194; (* callgate *)
+ Ord_DosLogRegister = 195;
+ Ord_DosLogRead = 196;
+ Ord_DosFindFromName = 197; (* callgate *)
+ Ord_DosOPLockRelease = 198; (* callgate *)
+ Ord_DosOPLockWait = 199; (* callgate *)
+ Ord_DosICopy = 200; (* callgate *)
Ord_DosCOPY = 201;
- Ord_DosFORCEDELETE = 203;
- Ord_DosENUMATTRIBUTE = 204;
- Ord_DosSHUTDOWN = 206;
- Ord_DosGETRESOURCE2 = 207;
- Ord_DosFREERESOURCE = 208;
+ Ord_DosIQAppType = 202; (* callgate *)
+ Ord_DosFORCEDELETE = 203; (* callgate *)
+ Ord_DosENUMATTRIBUTE = 204; (* callgate *)
+ Ord_DosOPLockShutdown = 205; (* callgate *)
+ Ord_DosSHUTDOWN = 206; (* callgate *)
+ Ord_DosGETRESOURCE2 = 207; (* callgate *)
+ Ord_DosFREERESOURCE = 208; (* callgate *)
Ord_Dos32SETMAXFH = 209;
Ord_Dos32SETVERIFY = 210;
Ord_Dos32ERRCLASS = 211;
Ord_Dos32ERROR = 212;
+ Ord_DosCreateVDM = 213; (* callgate *)
Ord_DosMAXPATHLEN = 214;
Ord_DosPAGESIZE = 215;
Ord_DosLOCALINFO = 216;
@@ -692,6 +773,7 @@ const
Ord_Dos32DELETE = 259;
Ord_Dos32DUPHANDLE = 260;
Ord_Dos32EDITNAME = 261;
+ Ord_THK32FREESTACK = 262;
Ord_Dos32FINDCLOSE = 263;
Ord_Dos32FINDFIRST = 264;
Ord_Dos32FINDNEXT = 265;
@@ -722,7 +804,12 @@ const
Ord_Dos32STOPTIMER = 290;
Ord_Dos32QUERYCP = 291;
Ord_Dos32SETDATETIME = 292;
+ Ord_THK32AllocBlock = 293;
+ Ord_THK32FreeBlock = 294;
+ Ord_THK32R3DS = 295;
Ord_Dos32EXITLIST = 296;
+ Ord_Dos32AllocProtectedMem = 297;
+ Ord_Dos32AliasMem = 298;
Ord_Dos32ALLOCMEM = 299;
Ord_Dos32ALLOCSHAREDMEM = 300;
Ord_Dos32GETNAMEDSHAREDMEM = 301;
@@ -731,11 +818,15 @@ const
Ord_Dos32FREEMEM = 304;
Ord_Dos32SETMEM = 305;
Ord_Dos32QUERYMEM = 306;
+ Ord_Dos32QueryMemState = 307;
Ord_Dos32OPENVDD = 308;
Ord_Dos32REQUESTVDD = 309;
Ord_Dos32CLOSEVDD = 310;
Ord_Dos32CREATETHREAD = 311;
Ord_Dos32GETINFOBLOCKS = 312;
+ Ord_DosAllocProtSeg = 313; (* callgate *)
+ Ord_DosAllocShrProtSeg = 314; (* callgate *)
+ Ord_DosAllocProtHuge = 315; (* callgate *)
Ord_Dos32DYNAMICTRACE = 316;
Ord_Dos32DEBUG = 317;
Ord_Dos32LOADMODULE = 318;
@@ -778,9 +869,20 @@ const
Ord_Dos32UNSETEXCEPTIONHANDLER = 355;
Ord_Dos32RAISEEXCEPTION = 356;
Ord_Dos32UNWINDEXCEPTION = 357;
+ Ord_Dos32QueryPageUsage = 358;
+ Ord_DosQueryModFromCS = 359; (* callgate *)
+ Ord_Dos32QueryModFromEIP = 360;
+ Ord_DosFPDataArea = 361;
Ord_Dos32TMRQUERYFREQ = 362;
Ord_Dos32TMRQUERYTIME = 363;
+ Ord_Dos32AliasPerfCtrs = 364;
+ Ord_Dos32ConfigPerf = 365;
+ Ord_Dos32DeconPerf = 366;
Ord_Dos32REGISTERPERFCTRS = 367;
+ Ord_Dos32QuerySysState = 368;
+ Ord_Dos32FlatCS = 369;
+ Ord_Dos32FlatDS = 370;
+ Ord_Dos32QueryABIOSSupport = 371;
Ord_Dos32ENUMATTRIBUTE = 372;
Ord_Dos32QUERYDOSPROPERTY = 373;
Ord_Dos32SETDOSPROPERTY = 374;
@@ -792,7 +894,42 @@ const
Ord_Dos32ENTERMUSTCOMPLETE = 380;
Ord_Dos32EXITMUSTCOMPLETE = 381;
Ord_Dos32SETRELMAXFH = 382;
+ Ord_MsgPutMessage = 383;
+ Ord_MsgTrueGetMessage = 384;
+ Ord_MsgInsMessage = 385;
+ Ord_Msg32InsertMessage = 386;
+ Ord_Msg32PutMessage = 387;
+ Ord_Msg32TrueGetMessage = 388;
+ Ord_MsgIQueryMessageCP = 389;
+ Ord_Msg32IQueryMessageCP = 390;
+ Ord_NLSCaseMap = 391;
+ Ord_NLSGetCollate = 392;
+ Ord_NLSGetCtryInfo = 393;
+ Ord_NLSGetDBCSEv = 394;
+ Ord_NLS32QueryCtryInfo = 395;
+ Ord_NLS32QueryDBCSEnv = 396;
+ Ord_NLS32MapCase = 397;
+ Ord_NLS32QueryCollate = 398;
+ Ord_NPipeMakeNmPipe = 399;
+ Ord_NPipeQNmPipeInfo = 400;
+ Ord_NPipeConnectNmPipe = 401;
+ Ord_NPipeDisconnectNmPipe = 402;
+ Ord_NPipeQNmPHandState = 403;
+ Ord_NPipeSetNmPHandState = 404;
+ Ord_NPipePeekNmPipe = 405;
+ Ord_NPipeWaitNmPipe = 406;
+ Ord_NPipeTransactNmPipe = 407;
+ Ord_NPipeCallNmPipe = 408;
+ Ord_NPipeRawReadNmPipe = 409;
+ Ord_NPipeRawWriteNmPipe = 410;
+ Ord_NPipeSetNmPipeSem = 411;
+ Ord_NPipeQNmPipeSemState = 412;
+ Ord_StartLazyWriter = 413;
+ Ord_HPFSStartLazyWriter = 413;
+ Ord__QueInst_Data = 414;
+ Ord_QueInstanceData = 414;
Ord_Dos32SHUTDOWN = 415;
+ Ord_Dos32ICacheModule = 416;
Ord_Dos32REPLACEMODULE = 417;
Ord_Dos32ACKNOWLEDGESIGNALEXC = 418;
Ord_Dos32TIB = 419;
@@ -803,22 +940,588 @@ const
Ord_DosSELTOFLAT = 424;
Ord_Dos32FLATTOSEL = 425;
Ord_Dos32SELTOFLAT = 426;
+ Ord_DosIODelayCnt = 427;
Ord_Dos32SETFILELOCKS = 428;
Ord_Dos32CANCELLOCKREQUEST = 429;
- Ord_DosOPENCHANGENOTIFY = 437;
- Ord_DosRESETCHANGENOTIFY = 438;
- Ord_DosCLOSECHANGENOTIFY = 439;
+ Ord_DosOPENCHANGENOTIFY = 437; (* callgate *)
+ Ord_DosRESETCHANGENOTIFY = 438; (* callgate *)
+ Ord_DosCLOSECHANGENOTIFY = 439; (* callgate *)
Ord_Dos32OPENCHANGENOTIFY = 440;
Ord_Dos32RESETCHANGENOTIFY = 441;
Ord_Dos32CLOSECHANGENOTIFY = 442;
+ Ord_DosQueryABIOSSupport = 443; (* callgate *)
+ Ord_Dos32ForceSystemDump = 444;
+ Ord_Dos32GetProcessorStatus = 447;
+ Ord_Dos32SetProcessorStatus = 448;
+ Ord_DosCreateSpinLock = 449; (* callgate *)
+ Ord_DosAcquireSpinLock = 450; (* callgate *)
+ Ord_DosReleaseSpinLock = 451; (* callgate *)
+ Ord_DosFreeSpinLock = 452; (* callgate *)
+ Ord_Dos32TestPSD = 453;
+ Ord_Dos32AllocThreadLocalMemory = 454;
+ Ord_Dos32FreeThreadLocalMemory = 455;
+ Ord_Dos32VerifyPIDTID = 460;
+{
+xxx Ord_PTDA_LANMAN_SEC = 464;
+xxx Ord_PTDA_PID = 465;
+xxx Ord_SAS_SEL = 466;
+xxx Ord_TCB_OPCOOKIE = 467;
+xxx Ord_TCB_OPFLAGS = 468;
+xxx Ord_TCB_NEWFLAGS = 469;
+xxx Ord_TCB_USER_ID = 470;
+xxx Ord_TCB_PROC_ID = 471;
+xxx Ord_TCB_FSHARING = 472;
+xxx Ord_TCB_SRVATTRIB = 473;
+xxx Ord_TCB_ALLOWED = 474;
+xxx Ord_TCB_PRTCB = 475;
+xxx Ord_TCB_NUMBER = 476;
+xxx Ord_TCB_THISSFT = 477;
+xxx Ord_TCB_THISCDS = 478;
+xxx Ord_TKOPTDA = 479;
+xxx Ord_PTDA_CRITSEC = 480;
+xxx Ord_PTDA_HOLDSIGCNT = 481;
+xxx Ord_PTDA_PPTDAPARENT = 482;
+xxx Ord_PTDA_PGDATA = 483;
+xxx Ord_PTDA_HANDLE = 484;
+xxx Ord_PTDA_MODULE = 485;
+xxx Ord_PTDA_LDTHANDLE = 486;
+xxx Ord_PTDA_CODEPAGE_TAG = 487;
+xxx Ord_PTDA_JFN_LENGTH = 488;
+xxx Ord_PTDA_JFN_PTABLE = 489;
+xxx Ord_PTDA_JFN_FLG_PTR = 490;
+xxx Ord_PTDA_EXTERR_LOCUS = 491;
+xxx Ord_PTDA_EXTERR = 492;
+xxx Ord_PTDA_EXTERR_ACTION = 493;
+xxx Ord_PTDA_EXTERR_CLASS = 494;
+xxx Ord_PTDA_PPID = 495;
+xxx Ord_PTDA_PROCTYPE = 496;
+xxx Ord_PTDA_CURRTCB = 497;
+xxx Ord_PTDA_CURRTSD = 498;
+xxx Ord_PTDA_SIGNATURE = 499;
+xxx 500 T32EXITLIST
+xxx 501 T32ALLOCPROTECTEDMEM
+xxx 502 T32ALIASMEM
+xxx 503 T32ALLOCMEM
+xxx 504 T32ALLOCSHAREDMEM
+xxx 505 T32GETNAMEDSHAREDMEM
+xxx 506 T32GETSHAREDMEM
+xxx 507 T32GIVESHAREDMEM
+xxx 508 T32FREEMEM
+xxx 509 T32SETMEM
+xxx 510 T32QUERYMEM
+xxx 511 T32QUERYMEMSTATE
+xxx 512 T32OPENVDD
+xxx 513 T32REQUESTVDD
+xxx 514 T32CLOSEVDD
+xxx 515 T32CREATETHREAD
+xxx 516 T32DYNAMICTRACE
+xxx 517 T32DEBUG
+xxx 518 T32QUERYPROCADDR
+xxx 519 T32CREATEEVENTSEM
+xxx 520 T32OPENEVENTSEM
+xxx 521 T32CLOSEEVENTSEM
+xxx 522 T32RESETEVENTSEM
+xxx 523 T32POSTEVENTSEM
+xxx 524 T32WAITEVENTSEM
+xxx 525 T32QUERYEVENTSEM
+xxx 526 T32CREATEMUTEXSEM
+xxx 527 T32OPENMUTEXSEM
+xxx 528 T32CLOSEMUTEXSEM
+xxx 529 T32REQUESTMUTEXSEM
+xxx 530 T32RELEASEMUTEXSEM
+xxx 531 T32QUERYMUTEXSEM
+xxx 532 T32CREATEMUXWAITSEM
+xxx 533 T32OPENMUXWAITSEM
+xxx 534 T32CLOSEMUXWAITSEM
+xxx 535 T32WAITMUXWAITSEM
+xxx 536 T32ADDMUXWAITSEM
+xxx 537 T32DELETEMUXWAITSEM
+xxx 538 T32QUERYMUXWAITSEM
+xxx 539 T32QUERYSYSINFO
+xxx 540 T32WAITTHREAD
+}
+ Ord_DosIOpenL = 541; (* callgate *)
+ Ord_DosIProtectOpenL = 542; (* callgate *)
+ Ord_DosISetFileSizeL = 543; (* callgate *)
+ Ord_DosIProtectSetFileSizeL = 544; (* callgate *)
+{
+xxx Ord_Dos32ExceptionCallBack = 545;
+}
+ Ord_THK32STRLEN = 546;
+ Ord_THK32_UNITHUNK = 547;
+ Ord_Dos32R3ExceptionDispatcher = 548;
+ Ord_DosLibiDisp = 549;
+ Ord_DosLibiDisp16 = 550;
+ Ord_DosLibiDisp32 = 551;
+ Ord_DosR3ExitAddr = 552;
+ Ord_Dos32R3ExitAddr = 553;
+{
+xxx Ord_Dos32IRead = 554;
+xxx Ord_Dos32IWrite = 556;
+}
+ Ord_Dos32CreateSpinLock = 557;
+ Ord_Dos32AcquireSpinLock = 558;
+ Ord_Dos32ReleaseSpinLock = 559;
+ Ord_Dos32FreeSpinLock = 560;
+ Ord_Dos32PMR3WaitEventSem = 561;
+ Ord_Dos32PMR3PostEventSem = 562;
+ Ord_Dos32QueryThreadAffinity = 563;
+ Ord_Dos32SetThreadAffinity = 564;
+ Ord_DosISetFileInfo = 565; (* callgate *)
+ Ord_DosISetPathInfo = 566; (* callgate *)
+ Ord_DosOpenL = 567; (* callgate *)
+ Ord_DosSetFilePtrL = 568;
+ Ord_DosIFindNext = 569; (* callgate *)
+ Ord_DosSetFileSizeL = 570;
Ord_Dos32QUERYRESOURCESIZE = 572;
Ord_DosQUERYRESOURCESIZE = 573;
+ Ord_DosPMSemWait = 574;
+ Ord_DosPMMuxSemWait = 575;
+ Ord_THK16_UNITHUNK = 576;
+ Ord_HT16_STARTUP = 577;
+ Ord_HT16_CLEANUP = 578;
+ Ord_HT32_STARTUP = 579;
Ord_Dos32INITIALIZEPORTHOLE = 580;
+ Ord_HT32_CLEANUP = 581;
Ord_Dos32QUERYHEADERINFO = 582;
Ord_DosINITIALIZEPORTHOLE = 583;
Ord_DosQUERYHEADERINFO = 584;
+ Ord__Dos32IMonRead = 585;
+ Ord_Mon32IMonRead = 585;
Ord_Dos32QUERYPROCTYPE = 586;
Ord_DosQUERYPROCTYPE = 587;
+ Ord__Dos32IMonWrite = 588;
+ Ord_Mon32IMonWrite = 588;
+ Ord_DosISigDispatch = 589;
+ Ord_Dos32PMPOSTEVENTSEM = 590;
+ Ord_Dos32PMWAITEVENTSEM = 591;
+ Ord_Dos32DllTermDisp = 592;
+ Ord_Dos32PMREQUESTMUTEXSEM = 593;
+ Ord_Dos32IRaiseException = 594;
+ Ord_Dos32PMWAITMUXWAITSEM = 595;
+ Ord_Dos32PM16SEMCHK = 596;
+ Ord_Dos32IQueryFHState = 597; (* callgate *)
+ Ord_Dos32ISetFHState = 598; (* callgate *)
+ Ord_Dos32LDTSel = 599;
+ Ord_Dos32R3Frestor = 600;
+ Ord_DosIFindFirst = 601; (* callgate *)
+{
+xxx 606 MonDosMonOpen
+xxx 607 MonDosMonClose
+xxx 608 MonDosMonRead
+xxx 609 MonDosMonWrite
+xxx 610 MonDosMonReg
+xxx Ord_Dos32IProtectWrite = 615;
+}
+ Ord_DosIProtectSetFileInfo = 617; (* callgate *)
+{
+xxx Ord_Dos32IProtectSetFileInfo = 618;
+}
+ Ord_Dos32IProtectSetFHState = 619; (* callgate *)
+ Ord_Dos32IProtectQueryFHState = 620; (* callgate *)
+ Ord_Dos32PROTECTSETFILEPTR = 621;
+ Ord_DosPROTECTCLOSE = 622; (* callgate *)
+ Ord_DosPROTECTFILEIO = 623; (* callgate *)
+ Ord_DosPROTECTFILELOCKS = 624; (* callgate *)
+ Ord_DosIProtectRead = 625; (* callgate *)
+ Ord_DosIProtectWrite = 626; (* callgate *)
+ Ord_DosPROTECTNEWSIZE = 627; (* callgate *)
+ Ord_DosPROTECTOPEN = 628; (* callgate *)
+ Ord_DosPROTECTQFHANDSTATE = 629; (* callgate *)
+ Ord_DosPROTECTSETFHANDSTATE = 630; (* callgate *)
+ Ord_DosPROTECTQFILEINFO = 631; (* callgate *)
+ Ord_DosPROTECTSETFILEINFO = 632; (* callgate *)
+ Ord_DosPROTECTCHGFILEPTR = 634; (* callgate *)
+ Ord_DosPROTECTENUMATTRIBUTE = 635; (* callgate *)
+ Ord_Dos32PROTECTENUMATTRIBUTE = 636;
+ Ord_Dos32PROTECTOPEN = 637;
+ Ord_Dos32PROTECTCLOSE = 638;
+ Ord_Dos32PROTECTSETFILELOCKS = 639;
+ Ord_Dos32PROTECTSETFILESIZE = 640;
+ Ord_Dos32PROTECTREAD = 641;
+ Ord_Dos32PROTECTWRITE = 642;
+ Ord_Dos32PROTECTSETFILEINFO = 643;
+ Ord_Dos32PROTECTSETFHSTATE = 644;
+ Ord_Dos32PROTECTQUERYFHSTATE = 645;
+ Ord_Dos32PROTECTQUERYFILEINFO = 646;
+{
+xxx Ord_Dos32IProtectRead = 647;
+}
+ Ord_DosCloseMessageFile = 649;
+ Ord_DosLDRDirtyWorker = 650; (* callgate *)
+ Ord_Dos16LDRDirtyWorker = 651; (* callgate *)
+{
+xxx 652 Ord_Dos32IGetInfoBlocks
+}
+ Ord_T32IGETINFOBLOCKS = 653; (* callgate *)
+ Ord_T32GETPROCESSORSTATUS = 656; (* callgate *)
+ Ord_T32SETPROCESSORSTATUS = 657; (* callgate *)
+ Ord_T32TESTPSD = 658; (* callgate *)
+ Ord_T32QUERYTHREADAFFINITY = 659; (* callgate *)
+ Ord_T32SETTHREADAFFINITY = 660; (* callgate *)
+ Ord_QueDos32READQUEUE = 661;
+ Ord_QueDos32PURGEQUEUE = 662;
+ Ord_QueDos32CLOSEQUEUE = 663;
+ Ord_QueDos32QUERYQUEUE = 664;
+ Ord_QueDos32PEEKQUEUE = 665;
+ Ord_QueDos32WRITEQUEUE = 666;
+ Ord_QueDos32OPENQUEUE = 667;
+ Ord_QueDos32CREATEQUEUE = 668;
+ Ord_SMGDos32STARTSESSION = 669;
+ Ord_SMGDos32SELECTSESSION = 670;
+ Ord_SMGDos32SETSESSION = 671;
+ Ord_SMGDos32STOPSESSION = 672;
+ Ord_SMGREGISTERNOTIFICATION = 673;
+ Ord_QueDosREADQUEUE = 674;
+ Ord_QueDosPURGEQUEUE = 675;
+ Ord_QueDosCLOSEQUEUE = 676;
+ Ord_QueDosQUERYQUEUE = 677;
+ Ord_QueDosPEEKQUEUE = 678;
+ Ord_QueDosWRITEQUEUE = 679;
+ Ord_QueDosOPENQUEUE = 680;
+ Ord_QueDosCREATEQUEUE = 681;
+ Ord_CHRDosSMGETME = 682;
+ Ord_CHRDosSMFREEMEM = 683;
+ Ord_CHRDosSMGETSGCB = 684;
+ Ord_CHRDosSMINITSGCB = 685;
+ Ord_SMGDosSMSGDOPOPUP = 686;
+ Ord_SMGDosSMSWITCH = 687;
+ Ord_SMGDosSMSERVEAPPREQ = 688;
+ Ord_SMGDosGETTIMES = 689;
+ Ord_SMGDosSMSETTITLE = 690;
+ Ord_SMGDosSCRUNLOCK = 691;
+ Ord_SMGDosSMDOAPPREQ = 692;
+ Ord_SMGDosSTOPSESSION = 693;
+ Ord_SMGDosSELECTSESSION = 694;
+ Ord_SMGDosSCRLOCK = 695;
+ Ord_SMGDosSAVREDRAWWAIT = 696;
+ Ord_SMGDosSAVREDRAWUNDO = 697;
+ Ord_SMGDosSMSGENDPOPUP = 698;
+ Ord_SMGDosSETSESSION = 699;
+ Ord_SMGDosSETMNLOCKTIME = 700;
+ Ord_SMGDosMODEUNDO = 701;
+ Ord_SMGDosSTARTSESSION = 702;
+ Ord_SMGDosSMGETSTATUS = 703;
+ Ord_SMGDosSMMODEWAIT = 704;
+ Ord_SMGDosSMTERMINATE = 705;
+ Ord_SMGDosSMGETAPPREQ = 706;
+ Ord_SMGDosSMINITIALIZE = 707;
+ Ord_SMGDosSMSTART = 708;
+ Ord_SMGDosSMPARENTSWITCH = 709;
+ Ord_SMGDosSMPAUSE = 710;
+ Ord_SMGDosSMHDEINIT = 711;
+ Ord_SMGDosSMPMPRESENT = 712;
+ Ord_SMGDosSMREGISTERDD = 713;
+ Ord_SMGDosSMNOTIFYDD = 714;
+ Ord_SMGDosSMNOTIFYDD2 = 715;
+ Ord_SMGDosSMOPENDD = 716;
+ Ord_SMGDosSMSETSESSIONTYPE = 717;
+ Ord_CHRBASEINIT = 718;
+ Ord_OS2BASEINIT = 718;
+ Ord_MouDosGETPTRSHAPE = 719;
+ Ord_MouDosSETPTRSHAPE = 720;
+ Ord_MouDosGETNUMMICKEYS = 721;
+ Ord_MouDosGETTHRESHOLD = 722;
+ Ord_MouDosSHELLINIT = 723;
+ Ord_MouDosGETSCALEFACT = 724;
+ Ord_MouDosFLUSHQUE = 725;
+ Ord_MouDosGETNUMBUTTONS = 726;
+ Ord_MouDosCLOSE = 727;
+ Ord_MouDosSETTHRESHOLD = 728;
+ Ord_MouDosSETSCALEFACT = 729;
+ Ord_MouDosGETNUMQUEEL = 730;
+ Ord_MouDosDEREGISTER = 731;
+ Ord_MouDosGETEVENTMASK = 732;
+ Ord_MouDosSETEVENTMASK = 733;
+ Ord_MouDosOPEN = 734;
+ Ord_MouDosREMOVEPTR = 735;
+ Ord_MouDosGETPTRPOS = 736;
+ Ord_MouDosREADEVENTQUE = 737;
+ Ord_MouDosSETPTRPOS = 738;
+ Ord_MouDosGETDEVSTATUS = 739;
+ Ord_MouDosSYNCH = 740;
+ Ord_MouDosREGISTER = 741;
+ Ord_MouDosSETDEVSTATUS = 742;
+ Ord_MouDosDRAWPTR = 743;
+ Ord_MouDosINITREAL = 744;
+ Ord_KbdDosSETCUSTXT = 745;
+ Ord_KbdDosPROCESSINIT = 746;
+ Ord_KbdDosGETCP = 747;
+ Ord_KbdDosCHARIN = 748;
+ Ord_KbdDosSETCP = 749;
+ Ord_KbdDosLOADINSTANCE = 750;
+ Ord_KbdDosSYNCH = 751;
+ Ord_KbdDosREGISTER = 752;
+ Ord_KbdDosSTRINGIN = 753;
+ Ord_KbdDosGETSTATUS = 754;
+ Ord_KbdDosSETSTATUS = 755;
+ Ord_KbdDosGETFOCUS = 756;
+ Ord_KbdDosFLUSHBUFFER = 757;
+ Ord_KbdDosXLATE = 758;
+ Ord_KbdDosSWITCHFGND = 759;
+ Ord_KbdDosSHELLINIT = 760;
+ Ord_KbdDosCLOSE = 761;
+ Ord_KbdDosFREEFOCUS = 762;
+ Ord_KbdDosFREE = 763;
+ Ord_KbdDosDEREGISTER = 764;
+ Ord_KbdDosSETFGND = 765;
+ Ord_KbdDosPEEK = 766;
+ Ord_KbdDosOPEN = 767;
+ Ord_KbdDosGETHWID = 768;
+ Ord_KbdDosSETHWID = 769;
+ Ord_VioDosENDPOPUP = 770;
+ Ord_VioDosGETPHYSBUF = 771;
+ Ord_VioDosGETANSI = 772;
+ Ord_VioDosFREE = 773;
+ Ord_VioDosSETANSI = 774;
+ Ord_VioDosDEREGISTER = 775;
+ Ord_VioDosSCROLLUP = 776;
+ Ord_VioDosPRTSC = 777;
+ Ord_VioDosGETCURPOS = 778;
+ Ord_VioDosWRTCELLSTR = 779;
+ Ord_VioDosPOPUP = 780;
+ Ord_VioDosSCROLLRT = 781;
+ Ord_VioDosWRTCHARSTR = 782;
+ Ord_VioDosAVS_PRTSC = 783;
+ Ord_VioDosSETCURPOS = 784;
+ Ord_VioDosSRFUNBLOCK = 785;
+ Ord_VioDosSRFBLOCK = 786;
+ Ord_VioDosSCRUNLOCK = 787;
+ Ord_VioDosWRTTTY = 788;
+ Ord_VioDosSAVE = 789;
+ Ord_VioDosGETMODE = 790;
+ Ord_VioDosSETMODE = 791;
+ Ord_VioDosSCRLOCK = 792;
+ Ord_VioDosREADCELLSTR = 793;
+ Ord_VioDosSAVREDRAWWAIT = 794;
+ Ord_VioDosWRTNATTR = 795;
+ Ord_VioDosGETCURTYPE = 796;
+ Ord_VioDosSAVREDRAWUNDO = 797;
+ Ord_VioDosGETFONT = 798;
+ Ord_VioDosREADCHARSTR = 799;
+ Ord_VioDosGETBUF = 800;
+ Ord_VioDosSETCURTYPE = 801;
+ Ord_VioDosSETFONT = 802;
+ Ord_VioDosHETINIT = 803;
+ Ord_VioDosMODEUNDO = 804;
+ Ord_VioDosSSWSWITCH = 805;
+ Ord_VioDosMODEWAIT = 806;
+ Ord_VioDosAVS_PRTSCTOGGLE = 807;
+ Ord_VioDosGETCP = 808;
+ Ord_VioDosRESTORE = 809;
+ Ord_VioDosSETCP = 810;
+ Ord_VioDosSHOWBUF = 811;
+ Ord_VioDosSCROLLLF = 812;
+ Ord_VioDosREGISTER = 813;
+ Ord_VioDosGETCONFIG = 814;
+ Ord_VioDosSCROLLDN = 815;
+ Ord_VioDosWRTCHARSTRATT = 816;
+ Ord_VioDosGETSTATE = 817;
+ Ord_VioDosPRTSCTOGGLE = 818;
+ Ord_VioDosSETSTATE = 819;
+ Ord_VioDosWRTNCELL = 820;
+ Ord_VioDosWRTNCHAR = 821;
+ Ord_VioDosSHELLINIT = 822;
+ Ord_VioDosASSOCIATE = 823;
+ Ord_VioDosCREATEPS = 824;
+ Ord_VioDosDELETESETID = 825;
+ Ord_VioDosGETDEVICECELLSIZE = 826;
+ Ord_VioDosGETORG = 827;
+ Ord_VioDosCREATELOGFONT = 828;
+ Ord_VioDosDESTROYPS = 829;
+ Ord_VioDosQUERYSETIDS = 830;
+ Ord_VioDosSETORG = 831;
+ Ord_VioDosQUERYFONTS = 832;
+ Ord_VioDosSETDEVICECELLSIZE = 833;
+ Ord_VioDosSHOWPS = 834;
+ Ord_VioDosGETPSADDRESS = 835;
+ Ord_VioDosQUERYCONSOLE = 836;
+ Ord_VioDosREDRAWSIZE = 837;
+ Ord_VioDosGLOBALREG = 838;
+ Ord_XVioDosSETCASTATE = 839;
+ Ord_XVioDosCHECKCHARTYPE = 840;
+ Ord_XVioDosDESTROYCA = 841;
+ Ord_XVioDosCREATECA = 842;
+ Ord_VioDosCHECKCHARTYPE = 843;
+ Ord_XVioDosGETCASTATE = 844;
+ Ord_BvsDosMAIN = 845;
+ Ord_BvsDosREDRAWSIZE = 846;
+ Ord_BvsDosGETPTRDRAWNAME = 847;
+ Ord_AnsiDosINJECT = 848;
+ Ord_AnsiDosKEYDEF = 849;
+ Ord_AnsiDosINTERP = 850;
+ Ord_BksDosMAIN = 851;
+ Ord_BmsDosMAIN = 852;
+ Ord_MouDosGETHOTKEY = 853;
+ Ord_MouDosSETHOTKEY = 854;
+ Ord_SMGDosSMSYSINIT = 855;
+ Ord_SMGQHKEYBDHANDLE = 856;
+ Ord_SMGQHMOUSEHANDLE = 857;
+ Ord_CHRQueueRamSem = 858;
+ Ord_SMQueueRamSem = 858;
+ Ord_CHRArray = 859;
+ Ord_SMArray = 859;
+ Ord_CHRPIDArray = 860;
+ Ord_SMPIDArray = 860;
+ Ord_CHRInitialized = 861;
+ Ord_SMInitialized = 861;
+ Ord_CHRArraySize = 862;
+ Ord_SMArraySize = 862;
+ Ord_CHRBVSGLOBAL = 863;
+ Ord_BVSGLOBAL = 863;
+ Ord_CHRSMGINSTANCE = 864;
+ Ord_SMGINSTANCE = 864;
+ Ord_CHRBVHINSTANCE = 865;
+ Ord_BVHINSTANCE = 865;
+ Ord_THK32ALIASMEM = 866;
+ Ord_THK32FREEALIAS = 867;
+ Ord_THK32ALLOCVARLEN = 868;
+ Ord_THK32HANDLEBOUNDARY = 869;
+ Ord_THK32HANDLESTRING = 870;
+ Ord_THK32DEALLOC = 871;
+ Ord_THK32XHNDLR = 872;
+ Ord_Dos32SETEXTLIBPATH = 873;
+ Ord_Dos32QUERYEXTLIBPATH = 874;
+ Ord_Dos32PM16SEMRST = 875;
+ Ord_Dos32SYSCTL = 876;
+ Ord_Dos32QUERYTHREADCONTEXT = 877;
+ Ord_DosSGQUERYTOPMOST = 878;
+ Ord_Dos32PERFSYSCALL = 976;
+ Ord_Dos32OPENL = 981;
+ Ord_Dos32PROTECTOPENL = 982;
+ Ord_Dos32PROTECTSETFILELOCKSL = 983;
+ Ord_Dos32PROTECTSETFILEPTRL = 984;
+ Ord_Dos32PROTECTSETFILESIZEL = 985;
+ Ord_Dos32SETFILELOCKSL = 986;
+ Ord_Dos32CANCELLOCKREQUESTL = 987;
+ Ord_Dos32SETFILEPTRL = 988;
+ Ord_Dos32SETFILESIZEL = 989;
+ Ord_Dos32LISTIOL = 990;
+{
+xxx Ord_DosFSRAMSEMREQUEST2 = 991;
+xxx Ord_DosFSRAMSEMCLEAR2 = 992;
+}
+ Ord_Dos32SystemService = 995;
+ Ord_Dos32LISTIO = 996;
+ Ord_Dos32CREATETHREAD2 = 997;
+ Ord_DosSETEXTLIBPATH = 998;
+ Ord_DosQUERYEXTLIBPATH = 999;
+{
+xxx 1000 T32EXITLIST
+xxx 1001 T32ALLOCPROTECTEDMEM
+xxx 1002 T32ALIASMEM
+xxx 1003 T32ALLOCMEM
+xxx 1004 T32ALLOCSHAREDMEM
+xxx 1005 T32GETNAMEDSHAREDMEM
+xxx 1006 T32GETSHAREDMEM
+xxx 1007 T32GIVESHAREDMEM
+xxx 1008 T32FREEMEM
+xxx 1009 T32SETMEM
+xxx 1010 T32QUERYMEM
+xxx 1011 T32QUERYMEMSTATE
+xxx 1012 T32OPENVDD
+xxx 1013 T32REQUESTVDD
+xxx 1014 T32CLOSEVDD
+xxx 1015 T32CREATETHREAD
+xxx 1016 T32DYNAMICTRACE
+xxx 1017 T32DEBUG
+xxx 1018 T32QUERYPROCADDR
+xxx 1019 T32CREATEEVENTSEM
+xxx 1020 T32OPENEVENTSEM
+xxx 1021 T32CLOSEEVENTSEM
+xxx 1022 T32RESETEVENTSEM
+xxx 1023 T32POSTEVENTSEM
+xxx 1024 T32WAITEVENTSEM
+xxx 1025 T32QUERYEVENTSEM
+xxx 1026 T32CREATEMUTEXSEM
+xxx 1027 T32OPENMUTEXSEM
+xxx 1028 T32CLOSEMUTEXSEM
+xxx 1029 T32REQUESTMUTEXSEM
+xxx 1030 T32RELEASEMUTEXSEM
+xxx 1031 T32QUERYMUTEXSEM
+xxx 1032 T32CREATEMUXWAITSEM
+xxx 1033 T32OPENMUXWAITSEM
+xxx 1034 T32CLOSEMUXWAITSEM
+xxx 1035 T32WAITMUXWAITSEM
+xxx 1036 T32ADDMUXWAITSEM
+xxx 1037 T32DELETEMUXWAITSEM
+xxx 1038 T32QUERYMUXWAITSEM
+xxx 1039 T32QUERYSYSINFO
+xxx 1040 T32WAITTHREAD
+xxx 1041 T32GETRESOURCE
+xxx 1042 T32FREERESOURCE
+xxx 1043 T32EXCEPTIONCALLBACK
+xxx 1044 T32QUERYPAGEUSAGE
+xxx 1045 T32FORCESYSTEMDUMP
+xxx 1046 TI32ASYNCTIMER
+xxx 1047 TI32STARTTIMER
+xxx 1048 T32QUERYABIOSSUPPORT
+xxx 1049 T32QUERYMODFROMEIP
+xxx 1050 T32ALIASPERFCTRS
+xxx 1051 T32CONFIGUREPERF
+xxx 1052 T32DECONPERF
+xxx 1053 T32REGISTERPERFCTRS
+xxx 1054 T32QUERYSYSSTATE
+xxx 1055 T32IREAD
+xxx 1056 T32IWRITE
+xxx 1057 T32TMRQUERYFREQ
+xxx 1058 T32TMRQUERYTIME
+xxx 1059 T32IMONREAD
+xxx 1060 T32IMONWRITE
+xxx 1061 T32QUERYRESOURCESIZE
+xxx 1062 T32PROFILE
+xxx 1063 T32SETSIGNALEXCEPTIONFOCUS
+xxx 1064 T32SENDSIGNALEXCEPTION
+xxx 1065 T32STARTTIMER
+xxx 1066 T32STOPTIMER
+xxx 1067 T32ASYNCTIMER
+xxx 1068 T32INITIALIZEPORTHOLE
+xxx 1069 T32QUERYHEADERINFO
+xxx 1070 T32QUERYPROCTYPE
+xxx 1071 T32IEXITMUSTCOMPLETE
+xxx 1072 T32ICACHEMODULE
+xxx 1073 T32DLLTERM
+xxx 1074 T32IRAISEEXCEPTION
+xxx 1075 T32ACKNOWLEDGESIGNALEXCEPTION
+xxx 1076 T32QUERYDOSPROPERTY
+xxx 1077 T32SETDOSPROPERTY
+xxx 1078 T32SETFILELOCKS
+xxx 1079 T32CANCELLOCKREQUEST
+xxx 1080 T32KILLTHREAD
+xxx 1081 TQUERYRASINFO
+xxx 1082 T32DUMPPROCESS
+xxx 1083 T32SUPPRESSPOPUPS
+xxx 1084 T32IPROTECTWRITE
+xxx 1085 T32PROTECTSETFILELOCKS
+xxx 1086 T32IPROTECTREAD
+xxx 1087 T32PMPOSTEVENTSEM
+xxx 1088 T32PMWAITEVENTSEM
+xxx 1089 T32PMREQUESTMUTEXSEM
+xxx 1090 T32PMWAITMUXWAITSEM
+xxx 1091 T32PM16SEMCHK
+xxx 1092 T32ALLOCTHREADLOCALMEMORY
+xxx 1093 T32FREETHREADLOCALMEMORY
+xxx 1094 T32SETEXTLIBPATH
+xxx 1095 T32QUERYEXTLIBPATH
+xxx 1096 T32PM16SEMRST
+xxx 1097 T32VERIFYPIDTID
+xxx 1098 T32SYSCTL
+xxx 1099 T32QUERYTHREADCONTEXT
+xxx 1101 T32PERFSYSCALL
+xxx 1102 T32LISTIO
+xxx 1103 T32PMR3WAITEVENTSEM
+xxx 1104 T32PMR3POSTEVENTSEM
+xxx 1105 T32CREATETHREAD2
+xxx 1106 T32PROTECTSETFILELOCKSL
+xxx 1107 T32IPROTECTSETFILEPTRL
+xxx 1108 T32SETFILELOCKSL
+xxx 1109 T32CANCELLOCKREQUESTL
+xxx 1110 T32ISETFILEPTRL
+xxx 1111 T32LISTIOL
+xxx 1116 T32ISETFILEPTR
+xxx 1117 T32IPROTECTSETFILEPTR
+}
+(* PMGPI.DLL *)
Ord_DevOPENDC = 1;
Ord_DevCLOSEDC = 2;
Ord_DevPOSTDEVICEMODES = 3;
@@ -1367,6 +2070,7 @@ const
Ord_Gpi32CONVERTWITHMATRIX = 618;
Ord_Gpi32LOADPUBLICFONTS = 622;
Ord_Gpi32UNLOADPUBLICFONTS = 623;
+(* PMWIN.DLL *)
Ord_WinQUERYDESKTOPWINDOW = 1;
Ord_WinQUERYOBJECTWINDOW = 2;
Ord_WinREGISTERCLASS = 3;
@@ -1607,16 +2311,12 @@ const
Ord_DumWinCREATEHELPTABLE = 314;
Ord_DumWinLOADHELPTABLE = 315;
Ord_DumWinQUERYHELPINSTANCE = 316;
- Ord_DummyHelpEntry = 322;
- Ord_WinSETCLASSTHUNKPROC = 959;
- Ord_WinQUERYCLASSTHUNKPROC = 960;
- Ord_WinSETWINDOWTHUNKPROC = 961;
- Ord_WinQUERYWINDOWTHUNKPROC = 962;
Ord_WinQUERYWINDOWMODEL = 317;
Ord_WinSETDESKTOPBKGND = 318;
Ord_WinQUERYDESKTOPBKGND = 319;
Ord_WinPOPUPMENU = 320;
Ord_WinREALIZEPALETTE = 321;
+ Ord_DummyHelpEntry = 322;
Ord_WinDELETELIBRARY = 602;
Ord_WinLOADPROCEDURE = 603;
Ord_WinDELETEPROCEDURE = 604;
@@ -1874,17 +2574,23 @@ const
Ord_Win32SAVEWINDOWPOS = 943;
Ord_Win32GETERASEPS = 952;
Ord_Win32RELEASEERASEPS = 953;
- Ord_Win32SETPOINTEROWNER = 971;
+ Ord_WinSETCLASSTHUNKPROC = 959;
+ Ord_WinQUERYCLASSTHUNKPROC = 960;
+ Ord_WinSETWINDOWTHUNKPROC = 961;
+ Ord_WinQUERYWINDOWTHUNKPROC = 962;
Ord_Win32STRETCHPOINTER = 968;
+ Ord_Win32SETPOINTEROWNER = 971;
Ord_Win32SETERRORINFO = 977;
Ord_Win32WAITEVENTSEM = 978;
Ord_Win32REQUESTMUTEXSEM = 979;
Ord_Win32WAITMUXWAITSEM = 980;
+(* PMPIC.DLL *)
Ord_PicPRINT = 1;
Ord_PicICHG = 2;
Ord_Pic32PRINT = 11;
Ord_Pic32ICHG = 12;
Ord_Prf32PIF2MET = 13;
+(* PMSHAPI.DLL *)
Ord_WinQUERYPROFILEINT = 2;
Ord_WinQUERYPROFILESTRING = 3;
Ord_WinWRITEPROFILESTRING = 4;
@@ -1987,6 +2693,7 @@ const
Ord_WinSTARTAPP = 201;
Ord_WinHAPPFROMPID = 208;
Ord_WinHSWITCHFROMHAPP = 209;
+(* QUECALLS.DLL *)
Ord_DosREADQUEUE = 1;
Ord_DosPURGEQUEUE = 2;
Ord_DosCLOSEQUEUE = 3;
@@ -2003,6 +2710,7 @@ const
Ord_Dos32WRITEQUEUE = 14;
Ord_Dos32OPENQUEUE = 15;
Ord_Dos32CREATEQUEUE = 16;
+(* SESMGR.DLL *)
Ord_DosSTOPSESSION = 8;
Ord_DosSELECTSESSION = 9;
Ord_DosSETSESSION = 14;
@@ -2012,11 +2720,13 @@ const
Ord_Dos32SELECTSESSION = 38;
Ord_Dos32SETSESSION = 39;
Ord_Dos32STOPSESSION = 40;
+
Ord_WinFONTDLG = 2;
Ord_WinDEFFONTDLGPROC = 3;
Ord_WinFILEDLG = 4;
Ord_WinDEFFILEDLGPROC = 5;
Ord_WinFREEFILEDLGLIST = 6;
+(* VIOCALLS.DLL *)
Ord_VioENDPOPUP = 1;
Ord_VioGETPHYSBUF = 2;
Ord_VioGETANSI = 3;
@@ -2080,6 +2790,7 @@ const
Ord_XVioCREATECA = 74;
Ord_VioCHECKCHARTYPE = 75;
Ord_XVioGETCASTATE = 76;
+(* PMVIOP.DLL *)
Ord_WinDefAVioWindowProc = 30;
{ Declarations from bsedev.h header file (low-level device access) }
diff --git a/rtl/os2/sysdir.inc b/rtl/os2/sysdir.inc
index 4688b633fd..77edff2ef7 100644
--- a/rtl/os2/sysdir.inc
+++ b/rtl/os2/sysdir.inc
@@ -29,6 +29,7 @@ begin
begin
InOutRes := Rc;
Errno2Inoutres;
+ OSErrorWatch (RC);
end;
end;
@@ -47,6 +48,7 @@ begin
begin
InOutRes := Rc;
Errno2Inoutres;
+ OSErrorWatch (RC);
end;
end;
@@ -63,7 +65,10 @@ begin
begin
RC := DosSetDefaultDisk ((Ord (S [1]) and not ($20)) - $40);
if RC <> 0 then
- InOutRes := RC
+ begin
+ InOutRes := RC;
+ OSErrorWatch (RC);
+ end
else
if Len > 2 then
begin
@@ -75,6 +80,7 @@ begin
begin
InOutRes := RC;
Errno2InOutRes;
+ OSErrorWatch (RC);
end;
end;
end else begin
@@ -86,6 +92,7 @@ begin
begin
InOutRes:= RC;
Errno2InOutRes;
+ OSErrorWatch (RC);
end;
end;
end;
@@ -97,6 +104,7 @@ procedure do_GetDir (DriveNr: byte; var Dir: RawByteString);
var sof: Pchar;
i:byte;
l,l2:cardinal;
+ RC: cardinal;
begin
setlength(Dir,255);
Dir [4] := #0;
@@ -109,7 +117,13 @@ begin
{ TODO: if max path length is > 255, increase the setlength parameter above and
the 255 below }
l:=255-3;
- InOutRes:=longint (DosQueryCurrentDir(DriveNr, sof^, l));
+ RC := DosQueryCurrentDir(DriveNr, sof^, l);
+ if RC <> 0 then
+ begin
+ InOutRes := longint (RC);
+ Errno2Inoutres;
+ OSErrorWatch (RC);
+ end;
{$WARNING Result code should be translated in some cases!}
{ Now Dir should be filled with directory in ASCIIZ, }
{ starting from dir[4] }
diff --git a/rtl/os2/sysfile.inc b/rtl/os2/sysfile.inc
index 5361158156..8a5795e64c 100644
--- a/rtl/os2/sysfile.inc
+++ b/rtl/os2/sysfile.inc
@@ -2,7 +2,7 @@
This file is part of the Free Pascal run time library.
Copyright (c) 2001 by Free Pascal development team
- Low leve file functions
+ Low level file functions
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
@@ -20,12 +20,19 @@
****************************************************************************}
procedure do_close(h:thandle);
+var
+ RC: cardinal;
begin
{ Only three standard handles under real OS/2 }
if h>2 then
- begin
- InOutRes:=DosClose(h);
- end;
+ begin
+ RC := DosClose (H);
+ if RC <> 0 then
+ begin
+ InOutRes := longint (RC);
+ OSErrorWatch (RC);
+ end;
+ end;
{$ifdef IODEBUG}
writeln('do_close: handle=', H, ', InOutRes=', InOutRes);
{$endif}
@@ -34,10 +41,16 @@ end;
procedure do_erase(p:Pchar; pchangeable: boolean);
var
oldp: pchar;
+ RC: cardinal;
begin
oldp:=p;
DoDirSeparators(p,pchangeable);
- inoutres:=DosDelete(p);
+ RC := DosDelete (P);
+ if RC <> 0 then
+ begin
+ InOutRes := longint (RC);
+ OSErrorWatch (RC);
+ end;
if p<>oldp then
freemem(p);
end;
@@ -45,12 +58,18 @@ end;
procedure do_rename(p1,p2:Pchar; p1changeable, p2changeable: boolean);
var
oldp1, oldp2 : pchar;
+ RC: cardinal;
begin
oldp1:=p1;
oldp2:=p2;
DoDirSeparators(p1,p1changeable);
DoDirSeparators(p2,p2changeable);
- inoutres:=DosMove(p1, p2);
+ RC := DosMove (p1, p2);
+ if RC <> 0 then
+ begin
+ InOutRes := longint (RC);
+ OSErrorWatch (RC);
+ end;
if p1<>oldp1 then
freemem(p1);
if p2<>oldp2 then
@@ -60,11 +79,17 @@ end;
function do_read(h:thandle;addr:pointer;len:longint):longint;
Var
T: cardinal;
+ RC: cardinal;
begin
{$ifdef IODEBUG}
write('do_read: handle=', h, ', addr=', ptrint(addr), ', length=', len);
{$endif}
- InOutRes:=DosRead(H, Addr, Len, T);
+ RC := DosRead(H, Addr, Len, T);
+ if RC <> 0 then
+ begin
+ InOutRes := longint (RC);
+ OSErrorWatch (RC);
+ end;
do_read:= longint (T);
{$ifdef IODEBUG}
writeln(', actual_len=', t, ', InOutRes=', InOutRes);
@@ -74,11 +99,17 @@ end;
function do_write(h:thandle;addr:pointer;len:longint) : longint;
Var
T: cardinal;
+ RC: cardinal;
begin
{$ifdef IODEBUG}
write('do_write: handle=', h, ', addr=', ptrint(addr), ', length=', len);
{$endif}
- InOutRes:=DosWrite(H, Addr, Len, T);
+ RC := DosWrite(H, Addr, Len, T);
+ if RC <> 0 then
+ begin
+ InOutRes := longint (RC);
+ OSErrorWatch (RC);
+ end;
do_write:= longint (T);
{$ifdef IODEBUG}
writeln(', actual_len=', t, ', InOutRes=', InOutRes);
@@ -88,8 +119,14 @@ end;
function Do_FilePos (Handle: THandle): int64;
var
PosActual: int64;
+ RC: cardinal;
begin
- InOutRes := Sys_DosSetFilePtrL (Handle, 0, 1, PosActual);
+ RC := Sys_DosSetFilePtrL (Handle, 0, 1, PosActual);
+ if RC <> 0 then
+ begin
+ InOutRes := longint (RC);
+ OSErrorWatch (RC);
+ end;
Do_FilePos := PosActual;
{$ifdef IODEBUG}
writeln('do_filepos: handle=', Handle, ', actual_pos=', PosActual, ', InOutRes=', InOutRes);
@@ -99,8 +136,14 @@ end;
procedure Do_Seek (Handle: THandle; Pos: int64);
var
PosActual: int64;
+ RC: cardinal;
begin
- InOutRes:=Sys_DosSetFilePtrL(Handle, Pos, 0 {ZeroBased}, PosActual);
+ RC := Sys_DosSetFilePtrL(Handle, Pos, 0 {ZeroBased}, PosActual);
+ if RC <> 0 then
+ begin
+ InOutRes := longint (RC);
+ OSErrorWatch (RC);
+ end;
{$ifdef IODEBUG}
writeln('do_seek: handle=', Handle, ', pos=', pos, ', actual_pos=', PosActual, ', InOutRes=', InOutRes);
{$endif}
@@ -109,9 +152,17 @@ end;
function Do_SeekEnd (Handle: THandle): int64;
var
PosActual: int64;
+ RC: cardinal;
begin
- InOutRes := Sys_DosSetFilePtrL (Handle, 0, 2 {EndBased}, PosActual);
- Do_SeekEnd := PosActual;
+ RC := Sys_DosSetFilePtrL (Handle, 0, 2 {EndBased}, PosActual);
+ if RC <> 0 then
+ begin
+ InOutRes := longint (RC);
+ OSErrorWatch (RC);
+ Do_SeekEnd := -1;
+ end
+ else
+ Do_SeekEnd := PosActual;
{$ifdef IODEBUG}
writeln('do_seekend: handle=', Handle, ', actual_pos=', PosActual, ', InOutRes=', InOutRes);
{$endif}
@@ -122,14 +173,25 @@ var
AktFilePos: int64;
begin
AktFilePos := Do_FilePos (Handle);
- Do_FileSize := Do_SeekEnd (Handle);
- Do_Seek (Handle, AktFilePos);
+ if InOutRes = 0 then
+ begin
+ Do_FileSize := Do_SeekEnd (Handle);
+ Do_Seek (Handle, AktFilePos);
+ end;
end;
procedure Do_Truncate (Handle: THandle; Pos: int64);
+var
+ RC: cardinal;
begin
- InOutRes := Sys_DosSetFileSizeL (Handle, Pos);
- Do_SeekEnd (Handle);
+ RC := Sys_DosSetFileSizeL (Handle, Pos);
+ if RC <> 0 then
+ begin
+ InOutRes := longint (RC);
+ OSErrorWatch (RC);
+ end
+ else
+ Do_SeekEnd (Handle);
end;
@@ -137,21 +199,25 @@ const
FileHandleCount: cardinal = 20;
function Increase_File_Handle_Count: boolean;
-var Err: word;
- L1: longint;
+var L1: longint;
L2: cardinal;
+ RC: cardinal;
begin
L1 := 10;
- if DosSetRelMaxFH (L1, L2) <> 0 then
- Increase_File_Handle_Count := false
+ RC := DosSetRelMaxFH (L1, L2);
+ if RC <> 0 then
+ begin
+ Increase_File_Handle_Count := false;
+ OSErrorWatch (RC);
+ end
else
- if L2 > FileHandleCount then
+ if L2 > FileHandleCount then
begin
FileHandleCount := L2;
Increase_File_Handle_Count := true;
end
- else
- Increase_File_Handle_Count := false;
+ else
+ Increase_File_Handle_Count := false;
end;
procedure do_open(var f;p:pchar;flags:longint; pchangeable: boolean);
@@ -166,13 +232,13 @@ procedure do_open(var f;p:pchar;flags:longint; pchangeable: boolean);
var
Action, Attrib, OpenFlags, FM: Cardinal;
oldp : pchar;
+ RC: cardinal;
begin
-
// close first if opened
if ((flags and $10000)=0) then
begin
case filerec(f).mode of
- fminput,fmoutput,fminout : Do_Close(filerec(f).handle);
+ fminput,fmoutput,fminout : Do_Close (FileRec (F).Handle);
fmclosed:;
else
begin
@@ -228,14 +294,26 @@ begin
DoDirSeparators(p,pchangeable);
Attrib:=32 {faArchive};
- InOutRes:=Sys_DosOpenL(p, FileRec(F).Handle, Action, 0, Attrib, OpenFlags, FM, nil);
+ RC := Sys_DosOpenL(p, FileRec(F).Handle, Action, 0, Attrib, OpenFlags, FM, nil);
+ if RC <> 0 then
+ begin
+ InOutRes := longint (RC);
+ OSErrorWatch (RC);
+ end;
// If too many open files try to set more file handles and open again
if (InOutRes = 4) then
- if Increase_File_Handle_Count then
- InOutRes:=Sys_DosOpenL(p, FileRec(F).Handle, Action, 0, Attrib, OpenFlags, FM, nil);
-
- If InOutRes<>0 then FileRec(F).Handle:=UnusedHandle;
+ if Increase_File_Handle_Count then
+ begin
+ RC := Sys_DosOpenL(p, FileRec(F).Handle, Action, 0, Attrib, OpenFlags, FM, nil);
+ if RC <> 0 then
+ begin
+ InOutRes := longint (RC);
+ OSErrorWatch (RC);
+ end;
+ end;
+ if RC <> 0 then
+ FileRec(F).Handle:=UnusedHandle;
// If Handle created -> make some things
if (FileRec(F).Handle <> UnusedHandle) then
@@ -248,7 +326,9 @@ begin
FileRec(F).Mode := fmOutput;
end;
- end;
+ end
+ else
+ FileRec(f).mode:=fmclosed;
if oldp<>p then
freemem(p);
@@ -261,9 +341,16 @@ end;
function do_isdevice (Handle: THandle): boolean;
var
HT, Attr: cardinal;
+ RC: cardinal;
begin
do_isdevice:=false;
- If DosQueryHType(Handle, HT, Attr)<>0 then exit;
- if ht=1 then do_isdevice:=true;
+ RC := DosQueryHType(Handle, HT, Attr);
+ if RC <> 0 then
+ begin
+ OSErrorWatch (RC);
+ Exit;
+ end;
+ if ht=1 then
+ do_isdevice:=true;
end;
{$ASMMODE ATT}
diff --git a/rtl/os2/sysheap.inc b/rtl/os2/sysheap.inc
index f5147bcc13..c163523fc1 100644
--- a/rtl/os2/sysheap.inc
+++ b/rtl/os2/sysheap.inc
@@ -1,10 +1,8 @@
{
This file is part of the Free Pascal run time library.
- Copyright (c) 2001 by Free Pascal development team
+ Copyright (c) 2001-2014 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.
+ This file implements heap management for OS/2.
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
@@ -87,6 +85,7 @@ begin
else
begin
SysOSAlloc := nil;
+ OSErrorWatch (RC);
{$IFDEF EXTDUMPGROW}
if Int_HeapSize <> high (cardinal) then
begin
@@ -104,25 +103,23 @@ end;
{$define HAS_SYSOSFREE}
procedure SysOSFree (P: pointer; Size: ptruint);
-{$IFDEF EXTDUMPGROW}
var
RC: cardinal;
-{$ENDIF EXTDUMPGROW}
begin
{$IFDEF EXTDUMPGROW}
WriteLn ('Trying to free memory!');
WriteLn ('Total allocated memory is ', Int_HeapSize);
Dec (Int_HeapSize, Size);
- RC :=
{$ENDIF EXTDUMPGROW}
- DosFreeMem (P);
-{$IFDEF EXTDUMPGROW}
+ RC := DosFreeMem (P);
if RC <> 0 then
begin
+ OSErrorWatch (RC);
+{$IFDEF EXTDUMPGROW}
WriteLn ('Error ', RC, ' during memory deallocation (DosFreeMem)!');
WriteLn ('Total allocated memory is ', Int_HeapSize);
- end;
{$ENDIF EXTDUMPGROW}
+ end;
end;
diff --git a/rtl/os2/sysos.inc b/rtl/os2/sysos.inc
index ab3edc5a60..cb7dc74a04 100644
--- a/rtl/os2/sysos.inc
+++ b/rtl/os2/sysos.inc
@@ -54,7 +54,7 @@ type
var
ProcessID: SizeUInt;
-function GetProcessID:SizeUInt;
+function GetProcessID: SizeUInt;
begin
GetProcessID := ProcessID;
end;
@@ -79,7 +79,7 @@ procedure DosGetInfoBlocks (PATIB: PPThreadInfoBlock;
external 'DOSCALLS' index 312;
function DosLoadModule (ObjName: PChar; ObjLen: cardinal; DLLName: PChar;
- var Handle: cardinal): cardinal; cdecl;
+ var Handle: THandle): cardinal; cdecl;
external 'DOSCALLS' index 318;
function DosQueryModuleHandle (DLLName: PChar; var Handle: THandle): cardinal;
@@ -420,3 +420,32 @@ external 'DOSCALLS' index 306;
function DosQuerySysInfo (First, Last: cardinal; var Buf; BufSize: cardinal):
cardinal; cdecl;
external 'DOSCALLS' index 348;
+
+type
+ TCPArray = array [0..2] of cardinal;
+ PCPArray = ^TCPArray;
+
+function DosQueryCP (Size: cardinal; CodePages: PCPArray;
+ var ActSize: cardinal): cardinal; cdecl;
+external 'DOSCALLS' index 291;
+
+function DosSetProcessCP (CP: cardinal): cardinal; cdecl;
+external 'DOSCALLS' index 289;
+
+type
+ TCountryCode = record
+ Country, {Country to query info about (0=current).}
+ CodePage: cardinal; {Code page to query info about (0=current).}
+ end;
+
+function DosMapCase (Size: cardinal; var Country: TCountryCode;
+ AString: PChar): cardinal; cdecl;
+external 'NLS' index 7;
+
+function DosQueryDBCSEnv (Size: cardinal; var Country: TCountryCode;
+ Buf: PChar): cardinal; cdecl;
+external 'NLS' index 6;
+
+function DosQueryCollate (Size: cardinal; var Country: TCountryCode;
+ Buf: PByteArray; var TableLen: cardinal): cardinal; cdecl;
+external 'NLS' index 8;
diff --git a/rtl/os2/system.pas b/rtl/os2/system.pas
index e0b55edcdc..9557b374d1 100644
--- a/rtl/os2/system.pas
+++ b/rtl/os2/system.pas
@@ -27,6 +27,7 @@ interface
{$endif SYSTEMDEBUG}
{$DEFINE OS2EXCEPTIONS}
+{$DEFINE OS2UNICODE}
{$define DISABLE_NO_THREAD_MANAGER}
{$DEFINE HAS_GETCPUCOUNT}
@@ -51,23 +52,30 @@ const
RealMaxPathLen: word = MaxPathLen;
(* Default value only - real value queried from the system on startup. *)
-type Tos=(osDOS,osOS2,osDPMI);
+type
+ TOS = (osDOS, osOS2, osDPMI); (* For compatibility with target EMX *)
+ TUConvObject = pointer;
+ TLocaleObject = pointer;
-const OS_Mode: Tos = osOS2;
- First_Meg: pointer = nil;
+const
+ OS_Mode: TOS = osOS2; (* For compatibility with target EMX *)
+ First_Meg: pointer = nil; (* For compatibility with target EMX *)
-const UnusedHandle=-1;
- StdInputHandle=0;
- StdOutputHandle=1;
- StdErrorHandle=2;
+ UnusedHandle=-1;
+ StdInputHandle=0;
+ StdOutputHandle=1;
+ StdErrorHandle=2;
- LFNSupport: boolean = true;
- FileNameCaseSensitive: boolean = false;
- FileNameCasePreserving: boolean = true;
- CtrlZMarksEOF: boolean = true; (* #26 is considered as end of file *)
+ LFNSupport: boolean = true;
+ FileNameCaseSensitive: boolean = false;
+ FileNameCasePreserving: boolean = true;
+ CtrlZMarksEOF: boolean = true; (* #26 is considered as end of file *)
+ RTLUsesWinCP: boolean = true; (* UnicodeString manager shall treat *)
+(* codepage numbers passed to RTL functions as those used under MS Windows *)
+(* and translates them to their OS/2 equivalents if necessary. *)
- sLineBreak = LineEnding;
- DefaultTextLineBreakStyle : TTextLineBreakStyle = tlbsCRLF;
+ sLineBreak = LineEnding;
+ DefaultTextLineBreakStyle : TTextLineBreakStyle = tlbsCRLF;
var
{ C-compatible arguments and environment }
@@ -90,26 +98,61 @@ var
ApplicationType: cardinal;
const
- HeapAllocFlags: cardinal = $53; (* Compatible to VP/2 *)
- (* mfPag_Commit or mfObj_Tile or mfPag_Write or mfPag_Read *)
+ HeapAllocFlags: cardinal = $53; (* Compatible to VP/2 *)
+ (* mfPag_Commit or mfObj_Tile or mfPag_Write or mfPag_Read *)
function ReadUseHighMem: boolean;
procedure WriteUseHighMem (B: boolean);
-(* Is allocation of memory above 512 MB address limit allowed? Initialized *)
-(* during initialization of system unit according to capabilities of the *)
-(* underlying OS/2 version, can be overridden by user - heap is allocated *)
-(* for all threads, so the setting isn't declared as a threadvar and *)
-(* should be only changed at the beginning of the main thread if needed. *)
+(* Is allocation of memory above 512 MB address limit allowed? Even if use *)
+(* of high memory is supported by the underlying OS/2 version, just a subset *)
+(* of OS/2 API functions can work with memory buffers located in high *)
+(* memory. Since FPC RTL allocates heap using memory pools received from *)
+(* the operating system and thus memory allocation from the operating system *)
+(* may happen at a different time than allocation of memory from FPC heap, *)
+(* use of high memory shall be enabled only if the given program is ensured *)
+(* not to use any OS/2 API function beyond the limited set supporting it any *)
+(* time between enabling this feature and program termination. *)
property
UseHighMem: boolean read ReadUseHighMem write WriteUseHighMem;
(* UseHighMem is provided for compatibility with 2.0.x. *)
+
+{$IFDEF OS2UNICODE}
+function OS2CPtoRtlCP (CP: cardinal; ReqFlags: byte;
+ var UConvObj: TUConvObject): TSystemCodepage;
+
+function RtlCPtoOS2CP (RtlCP: TSystemCodepage; ReqFlags: byte;
+ var UConvObj: TUConvObject): cardinal;
+
+function OS2CPtoRtlCP (CP: cardinal; ReqFlags: byte): TSystemCodepage;
+
+function RtlCPtoOS2CP (RtlCP: TSystemCodepage; ReqFlags: byte): cardinal;
+
+(* function RtlChangeCP (CP: TSystemCodePage; const stdcp: TStandardCodePageEnum): longint; *)
+{$ENDIF OS2UNICODE}
+
+
const
(* Are file sizes > 2 GB (64-bit) supported on the current system? *)
FSApi64: boolean = false;
+ UniAPI: boolean = false;
+
+(* Support for tracking I/O errors returned by OS/2 API calls - emulation *)
+(* of GetLastError / fpGetError functionality used e.g. in Sysutils. *)
+type
+ TOSErrorWatch = procedure (Error: cardinal);
+
+procedure NoErrorTracking (Error: cardinal);
+
+(* This shall be invoked whenever a non-zero error is returned by OS/2 APIs *)
+(* used in the RTL. Direct OS/2 API calls in user programs are not covered! *)
+const
+ OSErrorWatch: TOSErrorWatch = @NoErrorTracking;
+
+function SetOSErrorTracking (P: pointer): pointer;
procedure SetDefaultOS2FileType (FType: ShortString);
@@ -127,21 +170,62 @@ type
TDosSetFileSizeL = function (Handle: THandle; Size: int64): cardinal; cdecl;
-function DummyDosOpenL (FileName: PChar; var Handle: THandle;
- var Action: cardinal; InitSize: int64;
- Attrib, OpenFlags, FileMode: cardinal;
- EA: pointer): cardinal; cdecl;
+ TUniCreateUConvObject = function (const CpName: PWideChar;
+ var UConv_Object: TUConvObject): longint; cdecl;
-function DummyDosSetFilePtrL (Handle: THandle; Pos: int64; Method: cardinal;
- var PosActual: int64): cardinal; cdecl;
+ TUniFreeUConvObject = function (UConv_Object: TUConvObject): longint; cdecl;
+
+ TUniMapCpToUcsCp = function (const Codepage: cardinal;
+ CodepageName: PWideChar; const N: cardinal): longint; cdecl;
+
+ TUniUConvFromUcs = function (UConv_Object: TUConvObject;
+ var UcsBuf: PWideChar; var UniCharsLeft: longint; var OutBuf: PChar;
+ var OutBytesLeft: longint; var NonIdentical: longint): longint; cdecl;
+
+ TUniUConvToUcs = function (UConv_Object: TUConvObject; var InBuf: PChar;
+ var InBytesLeft: longint; var UcsBuf: PWideChar; var UniCharsLeft: longint;
+ var NonIdentical: longint): longint; cdecl;
-function DummyDosSetFileSizeL (Handle: THandle; Size: int64): cardinal; cdecl;
+ TUniToLower = function (UniCharIn: WideChar): WideChar; cdecl;
+
+ TUniToUpper = function (UniCharIn: WideChar): WideChar; cdecl;
+
+ TUniStrColl = function (Locale_Object: TLocaleObject;
+ const UCS1, UCS2: PWideChar): longint; cdecl;
+
+ TUniCreateLocaleObject = function (LocaleSpecType: longint;
+ const LocaleSpec: pointer;
+ var Locale_Object: TLocaleObject): longint; cdecl;
+
+ TUniFreeLocaleObject = function (Locale_Object: TLocaleObject): longint;
+ cdecl;
const
- Sys_DosOpenL: TDosOpenL = @DummyDosOpenL;
- Sys_DosSetFilePtrL: TDosSetFilePtrL = @DummyDosSetFilePtrL;
- Sys_DosSetFileSizeL: TDosSetFileSizeL = @DummyDosSetFileSizeL;
+ DosCallsHandle: THandle = THandle (-1);
+{$IFDEF OS2UNICODE}
+ UConvHandle: THandle = THandle (-1);
+ LibUniHandle: THandle = THandle (-1);
+{$ENDIF OS2UNICODE}
+
+
+var
+ Sys_DosOpenL: TDosOpenL;
+ Sys_DosSetFilePtrL: TDosSetFilePtrL;
+ Sys_DosSetFileSizeL: TDosSetFileSizeL;
+{$IFDEF OS2UNICODE}
+ Sys_UniCreateUConvObject: TUniCreateUConvObject;
+ Sys_UniFreeUConvObject: TUniFreeUConvObject;
+ Sys_UniMapCpToUcsCp: TUniMapCpToUcsCp;
+ Sys_UniUConvFromUcs: TUniUConvFromUcs;
+ Sys_UniUConvToUcs: TUniUConvToUcs;
+ Sys_UniToLower: TUniToLower;
+ Sys_UniToUpper: TUniToUpper;
+ Sys_UniStrColl: TUniStrColl;
+ Sys_UniCreateLocaleObject: TUniCreateLocaleObject;
+ Sys_UniFreeLocaleObject: TUniFreeLocaleObject;
+
+{$ENDIF OS2UNICODE}
implementation
@@ -174,12 +258,15 @@ function Is_Prefetch (P: pointer): boolean;
InstrLo, InstrHi, OpCode: byte;
I: longint;
MemSize, MemAttrs: cardinal;
+ RC: cardinal;
begin
Is_Prefetch := false;
MemSize := SizeOf (A);
- if (DosQueryMem (P, MemSize, MemAttrs) = 0) and
- (MemAttrs and (mfPag_Free or mfPag_Commit) <> 0)
+ RC := DosQueryMem (P, MemSize, MemAttrs);
+ if RC <> 0 then
+ OSErrorWatch (RC)
+ else if (MemAttrs and (mfPag_Free or mfPag_Commit) <> 0)
and (MemSize >= SizeOf (A)) then
Move (P^, A [0], SizeOf (A))
else
@@ -289,6 +376,7 @@ var
Res: cardinal;
Err: byte;
Must_Reset_FPU: boolean;
+ RC: cardinal;
{$IFDEF SYSTEMEXCEPTIONDEBUG}
CurSS: cardinal;
B: byte;
@@ -382,7 +470,9 @@ begin
{$ENDIF SYSTEMEXCEPTIONDEBUG}
Report^.Exception_Num := 0;
Res := Xcpt_Continue_Execution;
- DosAcknowledgeSignalException (Report^.Parameters [0]);
+ RC := DosAcknowledgeSignalException (Report^.Parameters [0]);
+ if RC <> 0 then
+ OSErrorWatch (RC);
end
else
Err := 217;
@@ -443,7 +533,9 @@ begin
{$ENDIF SYSTEMEXCEPTIONDEBUG}
Report^.Exception_Num := 0;
Res := Xcpt_Continue_Execution;
- DosAcknowledgeSignalException (Report^.Parameters [0]);
+ RC := DosAcknowledgeSignalException (Report^.Parameters [0]);
+ if RC <> 0 then
+ OSErrorWatch (RC);
end
else
Err := 217;
@@ -504,6 +596,7 @@ var
procedure Install_Exception_Handler;
var
T: cardinal;
+ RC: cardinal;
begin
{$ifdef SYSTEMEXCEPTIONDEBUG}
(* ThreadInfoBlock is located at FS:[0], the first *)
@@ -524,9 +617,15 @@ begin
DosSetExceptionHandler (ExcptReg^);
if IsConsole then
begin
- DosSetSignalExceptionFocus (1, T);
- DosAcknowledgeSignalException (Xcpt_Signal_Intr);
- DosAcknowledgeSignalException (Xcpt_Signal_Break);
+ RC := DosSetSignalExceptionFocus (1, T);
+ if RC <> 0 then
+ OSErrorWatch (RC);
+ RC := DosAcknowledgeSignalException (Xcpt_Signal_Intr);
+ if RC <> 0 then
+ OSErrorWatch (RC);
+ RC := DosAcknowledgeSignalException (Xcpt_Signal_Break);
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
{$ifdef SYSTEMEXCEPTIONDEBUG}
asm
@@ -538,8 +637,11 @@ begin
end;
procedure Remove_Exception_Handlers;
+var
+ RC: cardinal;
begin
- DosUnsetExceptionHandler (ExcptReg^);
+ RC := DosUnsetExceptionHandler (ExcptReg^);
+ OSErrorWatch (RC);
end;
{$ENDIF OS2EXCEPTIONS}
@@ -686,6 +788,10 @@ begin
end;
procedure SysInitStdIO;
+(*
+var
+ RC: cardinal;
+*)
begin
{ Setup stdin, stdout and stderr, for GUI apps redirect stderr,stdout to be
displayed in a messagebox }
@@ -695,21 +801,36 @@ begin
StdErrorHandle := longint(GetStdHandle(cardinal(STD_ERROR_HANDLE)));
if not IsConsole then
- begin
- if (DosLoadModule (nil, 0, 'PMWIN', PMWinHandle) = 0) and
- (DosQueryProcAddr (PMWinHandle, 789, nil, pointer (WinMessageBox)) = 0)
- and
- (DosQueryProcAddr (PMWinHandle, 763, nil, pointer (WinInitialize)) = 0)
- and
- (DosQueryProcAddr (PMWinHandle, 716, nil, pointer (WinCreateMsgQueue))
- = 0)
- then
- begin
+ begin
+ RC := DosLoadModule (nil, 0, 'PMWIN', PMWinHandle);
+ if RC <> 0 then
+ OSErrorWatch (RC)
+ else
+ begin
+ RC := DosQueryProcAddr (PMWinHandle, 789, nil, pointer (WinMessageBox));
+ if RC <> 0 then
+ OSErrorWatch (RC)
+ else
+ begin
+ RC := DosQueryProcAddr (PMWinHandle, 763, nil, pointer (WinInitialize));
+ if RC <> 0 then
+ OSErrorWatch (RC)
+ else
+ begin
+ RC := DosQueryProcAddr (PMWinHandle, 716, nil, pointer (WinCreateMsgQueue));
+ if RC <> 0 then
+ OSErrorWatch (RC)
+ else
+ begin
WinInitialize (0);
WinCreateMsgQueue (0, 0);
- end
- else
- HandleError (2);
+ end
+ end
+ end
+ end;
+ if RC <> 0 then
+ HandleError (2);
+
AssignError (StdErr);
AssignError (StdOut);
Assign (Output, '');
@@ -824,9 +945,25 @@ begin
end;
+(* The default handler does not store the OS/2 API error codes. *)
+procedure NoErrorTracking (Error: cardinal);
+begin
+end;
+
+
+function SetOSErrorTracking (P: pointer): pointer;
+begin
+ SetOSErrorTracking := OSErrorWatch;
+ if P = nil then
+ OSErrorWatch := @NoErrorTracking
+ else
+ OSErrorWatch := TOSErrorWatch (P);
+end;
+
+
procedure InitEnvironment;
var env_count : longint;
- dos_env,cp : pchar;
+ cp : pchar;
begin
env_count:=0;
cp:=environment;
@@ -870,14 +1007,15 @@ var
pc,arg : pchar;
quote : char;
argvlen : PtrInt;
+ RC: cardinal;
procedure allocarg(idx,len: PtrInt);
- var
- oldargvlen : PtrInt;
+{ var
+ oldargvlen : PtrInt;}
begin
if idx>=argvlen then
begin
- oldargvlen:=argvlen;
+{ oldargvlen:=argvlen;}
argvlen:=(idx+8) and (not 7);
sysreallocmem(argv,argvlen*sizeof(pointer));
{ fillchar(argv[oldargvlen],(argvlen-oldargvlen)*sizeof(pointer),0);}
@@ -896,7 +1034,8 @@ begin
ArgLen := StrLen (PChar (PIB^.Cmd));
Inc (ArgLen);
- if DosQueryModuleName (PIB^.Handle, MaxPathLen, CmdLine) = 0 then
+ RC := DosQueryModuleName (PIB^.Handle, MaxPathLen, CmdLine);
+ if RC = 0 then
ArgVLen := Succ (StrLen (CmdLine))
else
(* Error occurred - use program name from command line as fallback. *)
@@ -1070,10 +1209,17 @@ end;
function GetFileHandleCount: longint;
var L1: longint;
L2: cardinal;
+ RC: cardinal;
begin
L1 := 0; (* Don't change the amount, just check. *)
- if DosSetRelMaxFH (L1, L2) <> 0 then GetFileHandleCount := 50
- else GetFileHandleCount := L2;
+ RC := DosSetRelMaxFH (L1, L2);
+ if RC <> 0 then
+ begin
+ GetFileHandleCount := 50;
+ OSErrorWatch (RC);
+ end
+ else
+ GetFileHandleCount := L2;
end;
function CheckInitialStkLen (StkLen: SizeUInt): SizeUInt;
@@ -1081,144 +1227,165 @@ begin
CheckInitialStkLen := StkLen;
end;
-var TIB: PThreadInfoBlock;
- RC: cardinal;
- ErrStr: string;
- P: pointer;
- DosCallsHandle: THandle;
- DW: cardinal;
+var
+ TIB: PThreadInfoBlock;
+ RC: cardinal;
+ P: pointer;
+ DW: cardinal;
const
- DosCallsName: array [0..8] of char = 'DOSCALLS'#0;
+ DosCallsName: array [0..8] of char = 'DOSCALLS'#0;
{$IFDEF OS2UNICODE}
- {$I sysucode.inc}
+ {$I sysucode.inc}
{$ENDIF OS2UNICODE}
-{*var}
-{* ST: pointer;}
-{*}
begin
{$IFDEF OS2EXCEPTIONS}
-(* asm
- { allocate space for exception registration record }
- pushl $0
- pushl $0}
-{* pushl %fs:(0)}
- { movl %esp,%fs:(0)
- but don't insert it as it doesn't
- point to anything yet
- this will be used in signals unit }
- movl %esp,%eax
- movl %eax,ExcptReg
- pushl %ebp
- movl %esp,%eax
-{* movl %eax,st*}
- movl %eax,StackTop
- end;
-{* StackTop:=st;}
-*) asm
- xorl %eax,%eax
- movw %ss,%ax
- movl %eax,_SS
- end;
+ asm
+ xorl %eax,%eax
+ movw %ss,%ax
+ movl %eax,_SS
+ end;
{$ENDIF OS2EXCEPTIONS}
- DosGetInfoBlocks (@TIB, @PIB);
- StackLength := CheckInitialStkLen (InitialStkLen);
- { OS/2 has top of stack in TIB^.StackLimit - unlike Windows where it is in TIB^.Stack }
- StackBottom := TIB^.StackLimit - StackLength;
+ DosGetInfoBlocks (@TIB, @PIB);
+ StackLength := CheckInitialStkLen (InitialStkLen);
+ { OS/2 has top of stack in TIB^.StackLimit - unlike Windows where it is in TIB^.Stack }
+ StackBottom := TIB^.StackLimit - StackLength;
- {Set type of application}
- ApplicationType := PIB^.ProcType;
- ProcessID := PIB^.PID;
- ThreadID := TIB^.TIB2^.TID;
- IsConsole := ApplicationType <> 3;
+ {Set type of application}
+ ApplicationType := PIB^.ProcType;
+ ProcessID := PIB^.PID;
+ ThreadID := TIB^.TIB2^.TID;
+ IsConsole := ApplicationType <> 3;
- {Query maximum path length (QSV_MAX_PATH_LEN = 1)}
- if DosQuerySysInfo (1, 1, DW, SizeOf (DW)) = 0 then
- RealMaxPathLen := DW;
+ {Query maximum path length (QSV_MAX_PATH_LEN = 1)}
+ if DosQuerySysInfo (1, 1, DW, SizeOf (DW)) = 0 then
+ RealMaxPathLen := DW;
- ExitProc := nil;
+ ExitProc := nil;
{$IFDEF OS2EXCEPTIONS}
- Install_Exception_Handler;
+ Install_Exception_Handler;
{$ENDIF OS2EXCEPTIONS}
- (* Initialize the amount of file handles *)
- FileHandleCount := GetFileHandleCount;
-
- {Initialize the heap.}
- (* Logic is following:
- The heap is initially restricted to low address space (< 512 MB).
- If underlying OS/2 version allows using more than 512 MB per process
- (OS/2 WarpServer for e-Business, eComStation, possibly OS/2 Warp 4.0
- with FP13 and above as well), use of this high memory is allowed for
- future memory allocations at the end of System unit initialization.
- The consequences are that the compiled application can allocate more
- memory, but it must make sure to use direct DosAllocMem calls if it
- needs a memory block for some system API not supporting high memory.
- This is probably no problem for direct calls to these APIs, but
- there might be situations when a memory block needs to be passed
- to a 3rd party DLL which in turn calls such an API call. In case
- of problems usage of high memory can be turned off by setting
- UseHighMem to false - the program should change the setting at its
- very beginning (e.g. in initialization section of the first unit
- listed in the "uses" section) to avoid having preallocated memory
- from the high memory region before changing value of this variable. *)
- InitHeap;
-
- if DosQueryModuleHandle (@DosCallsName [0], DosCallsHandle) = 0 then
- begin
- if DosQueryProcAddr (DosCallsHandle, OrdDosOpenL, nil, P) = 0 then
- begin
- Sys_DosOpenL := TDosOpenL (P);
- if DosQueryProcAddr (DosCallsHandle, OrdDosSetFilePtrL, nil, P) = 0
- then
- begin
- Sys_DosSetFilePtrL := TDosSetFilePtrL (P);
- if DosQueryProcAddr (DosCallsHandle, OrdDosSetFileSizeL, nil,
- P) = 0 then
- begin
- Sys_DosSetFileSizeL := TDosSetFileSizeL (P);
- FSApi64 := true;
- end;
- end;
- end;
- end;
+ (* Initialize the amount of file handles *)
+ FileHandleCount := GetFileHandleCount;
+
+ {Initialize the heap.}
+ (* Logic is following:
+ The heap is initially restricted to low address space (< 512 MB).
+ If underlying OS/2 version allows using more than 512 MB per process
+ (OS/2 WarpServer for e-Business, eComStation, possibly OS/2 Warp 4.0
+ with FP13 and above as well), use of this high memory is allowed for
+ future memory allocations at the end of System unit initialization.
+ The consequences are that the compiled application can allocate more
+ memory, but it must make sure to use direct DosAllocMem calls if it
+ needs a memory block for some system API not supporting high memory.
+ This is probably no problem for direct calls to these APIs, but
+ there might be situations when a memory block needs to be passed
+ to a 3rd party DLL which in turn calls such an API call. In case
+ of problems usage of high memory can be turned off by setting
+ UseHighMem to false - the program should change the setting at its
+ very beginning (e.g. in initialization section of the first unit
+ listed in the "uses" section) to avoid having preallocated memory
+ from the high memory region before changing value of this variable. *)
+ InitHeap;
+
+ Sys_DosOpenL := @DummyDosOpenL;
+ Sys_DosSetFilePtrL := @DummyDosSetFilePtrL;
+ Sys_DosSetFileSizeL := @DummyDosSetFileSizeL;
+ RC := DosQueryModuleHandle (@DosCallsName [0], DosCallsHandle);
+ if RC = 0 then
+ begin
+ RC := DosQueryProcAddr (DosCallsHandle, OrdDosOpenL, nil, P);
+ if RC = 0 then
+ begin
+ Sys_DosOpenL := TDosOpenL (P);
+ RC := DosQueryProcAddr (DosCallsHandle, OrdDosSetFilePtrL, nil, P);
+ if RC = 0 then
+ begin
+ Sys_DosSetFilePtrL := TDosSetFilePtrL (P);
+ RC := DosQueryProcAddr (DosCallsHandle, OrdDosSetFileSizeL, nil, P);
+ if RC = 0 then
+ begin
+ Sys_DosSetFileSizeL := TDosSetFileSizeL (P);
+ FSApi64 := true;
+ end;
+ end;
+ end;
+ if RC <> 0 then
+ OSErrorWatch (RC);
+ RC := DosQueryProcAddr (DosCallsHandle, OrdDosAllocThreadLocalMemory,
+ nil, P);
+ if RC = 0 then
+ begin
+ DosAllocThreadLocalMemory := TDosAllocThreadLocalMemory (P);
+ RC := DosQueryProcAddr (DosCallsHandle, OrdDosAllocThreadLocalMemory,
+ nil, P);
+ if RC = 0 then
+ begin
+ DosFreeThreadLocalMemory := TDosFreeThreadLocalMemory (P);
+ TLSAPISupported := true;
+ end
+ else
+ OSErrorWatch (RC);
+ end
+ else
+ OSErrorWatch (RC);
+ end
+ else
+ OSErrorWatch (RC);
- { ... and exceptions }
- SysInitExceptions;
- fpc_cpucodeinit;
+ { ... and exceptions }
+ SysInitExceptions;
+ fpc_cpucodeinit;
- InitUnicodeStringManager;
-{$ifdef OS2UCODE}
- InitOS2WideStrings;
-{$endif OS2UCODE}
+ InitUnicodeStringManager;
- { ... and I/O }
- SysInitStdIO;
+{$IFDEF OS2UNICODE}
+ InitOS2WideStringManager;
- { no I/O-Error }
- inoutres:=0;
+ InitDefaultCP;
+{$ELSE OS2UNICODE}
+(* Otherwise called within InitDefaultCP... *)
+ RC := DosQueryCP (SizeOf (CPArr), @CPArr, ReturnedSize);
+ if (RC <> 0) and (RC <> 473) then
+ begin
+ OSErrorWatch (RC);
+ CPArr [0] := 850;
+ end
+ else if (ReturnedSize < 4) then
+ CPArr [0] := 850;
+ DefaultFileSystemCodePage := CPArr [0];
+{$ENDIF OS2UNICODE}
+ DefaultSystemCodePage := DefaultFileSystemCodePage;
+ DefaultRTLFileSystemCodePage := DefaultFileSystemCodePage;
+ DefaultUnicodeCodePage := CP_UTF16;
+
+ { ... and I/O }
+ SysInitStdIO;
- {Initialize environment (must be after InitHeap because allocates memory)}
- Environment := pointer (PIB^.Env);
- InitEnvironment;
+ { no I/O-Error }
+ InOutRes:=0;
- InitArguments;
+ {Initialize environment (must be after InitHeap because allocates memory)}
+ Environment := pointer (PIB^.Env);
+ InitEnvironment;
- DefaultCreator := '';
- DefaultFileType := '';
+ InitArguments;
- InitSystemThreads;
- InitVariantManager;
+ DefaultCreator := '';
+ DefaultFileType := '';
+
+ InitSystemThreads;
{$IFDEF EXTDUMPGROW}
{ Int_HeapSize := high (cardinal);}
{$ENDIF EXTDUMPGROW}
{$ifdef SYSTEMEXCEPTIONDEBUG}
- if IsConsole then
- WriteLn (StdErr, 'Old exception ', HexStr (OldExceptAddr, 8),
+ if IsConsole then
+ WriteLn (StdErr, 'Old exception ', HexStr (OldExceptAddr, 8),
', new exception ', HexStr (NewExceptAddr, 8), ', _SS = ', HexStr (_SS, 8));
{$endif SYSTEMEXCEPTIONDEBUG}
end.
diff --git a/rtl/os2/systhrd.inc b/rtl/os2/systhrd.inc
index 61f976f460..f798eff510 100644
--- a/rtl/os2/systhrd.inc
+++ b/rtl/os2/systhrd.inc
@@ -1,6 +1,6 @@
{
This file is part of the Free Pascal run time library.
- Copyright (c) 2002-2011 by Tomas Hajny,
+ Copyright (c) 2002-2014 by Tomas Hajny,
member of the Free Pascal development team.
OS/2 threading support implementation
@@ -18,6 +18,9 @@
Local Api imports
*****************************************************************************}
+var
+ OS2ThreadManager: TThreadManager;
+
const
pag_Read = 1;
pag_Write = 2;
@@ -98,12 +101,27 @@ type
PFSRec: pointer;
end;
+ TDosAllocThreadLocalMemory = function (Count: cardinal; var P: pointer):
+ cardinal; cdecl;
+
+ TDosFreeThreadLocalMemory = function (P: pointer): cardinal; cdecl;
+
+
+const
+ DosAllocThreadLocalMemory: TDosAllocThreadLocalMemory = nil;
+ DosFreeThreadLocalMemory: TDosFreeThreadLocalMemory = nil;
+ OrdDosAllocThreadLocalMemory = 454;
+ OrdDosFreeThreadLocalMemory = 455;
+ TLSAPISupported: boolean = false;
+
{ import the necessary stuff from the OS }
+(*
function DosAllocThreadLocalMemory (Count: cardinal; var P: pointer): cardinal;
cdecl; external 'DOSCALLS' index 454;
function DosFreeThreadLocalMemory (P: pointer): cardinal; cdecl;
external 'DOSCALLS' index 455;
+*)
function DosCreateThread (var TID: cardinal; Address: pointer;
(* TThreadFunc *)
@@ -177,16 +195,24 @@ function DosQuerySysState (EntityList, EntityLevel, PID, TID: cardinal;
*****************************************************************************}
const
- ThreadVarBlockSize: dword = 0;
+ ThreadVarBlockSize: dword = 0;
const
(* Pointer to an allocated dword space within the local thread *)
(* memory area. Pointer to the real memory block allocated for *)
(* thread vars in this block is then stored in this dword. *)
- DataIndex: PPointer = nil;
+ DataIndex: PPointer = nil;
+type
+(* If Thread Local Memory Area (TLMA) and the respective API functions are *)
+(* not available (OS/2 version 2.x) then handle the memory using array *)
+(* of pointers indexed by Thread ID - pointer to this array is then stored *)
+(* in DataIndex (typecasted using the following types). *)
+ TTLSPointers = array [0..4095] of pointer;
+ PTLSPointers = ^TTLSPointers;
+
procedure SysInitThreadvar (var Offset: dword; Size: dword);
begin
Offset := ThreadVarBlockSize;
@@ -195,36 +221,67 @@ end;
procedure SysAllocateThreadVars;
+var
+ RC: cardinal;
begin
{ we've to allocate the memory from the OS }
{ because the FPC heap management uses }
{ exceptions which use threadvars but }
{ these aren't allocated yet ... }
{ allocate room on the heap for the thread vars }
- if DosAllocMem (DataIndex^, ThreadVarBlockSize, pag_Read or pag_Write
- or pag_Commit) <> 0 then
- HandleError (8);
+ if TLSAPISupported then
+ RC := DosAllocMem (DataIndex^, ThreadVarBlockSize, pag_Read or pag_Write
+ or pag_Commit)
+ else
+ begin
+ if PTLSPointers (DataIndex)^ [ThreadID] <> nil then
+ begin
+ RC := DosFreeMem (PTLSPointers (DataIndex)^ [ThreadID]);
+ if RC <> 0 then
+ OSErrorWatch (RC);
+ end;
+ RC := DosAllocMem (PTLSPointers (DataIndex)^ [ThreadID], ThreadVarBlockSize,
+ pag_Read or pag_Write or pag_Commit);
+ end;
+ if RC <> 0 then
+ begin
+ OSErrorWatch (RC);
+ HandleError (8);
+ end;
{ The Windows API apparently provides a way to fill the allocated memory with }
{ zeros; we probably need to do it ourselves for compatibility. }
FillChar (DataIndex^^, 0, ThreadVarBlockSize);
end;
-
function SysRelocateThreadVar (Offset: dword): pointer;
begin
{ DataIndex itself not checked for not being nil - expected that this should }
{ not be necessary because the equivalent check (i.e. TlsKey not being set) }
-{ is note performed by the Windows implementation. }
- if DataIndex^ = nil then
+{ is not performed by the Windows implementation. }
+ if PTLSPointers (DataIndex)^ [ThreadID] = nil then
begin
SysAllocateThreadVars;
InitThread ($1000000);
end;
- SysRelocateThreadVar := DataIndex^ + Offset;
+ SysRelocateThreadVar := PTLSPointers (DataIndex)^ [ThreadID] + Offset;
end;
+function OS2RelocateThreadVar (Offset: dword): pointer;
+begin
+{ DataIndex itself not checked for not being nil - expected that this should }
+{ not be necessary because the equivalent check (i.e. TlsKey not being set) }
+{ is not performed by the Windows implementation. }
+ if DataIndex^ = nil then
+ begin
+ SysAllocateThreadVars;
+ InitThread ($1000000);
+ end;
+ OS2RelocateThreadVar := DataIndex^ + Offset;
+end;
procedure SysInitMultithreading;
+var
+ RC: cardinal;
begin
{ do not check IsMultiThread, as program could have altered it, out of Delphi habit }
@@ -232,20 +289,49 @@ begin
if DataIndex = nil then
begin
{ We're still running in single thread mode, setup the TLS }
- if DosAllocThreadLocalMemory (1, DataIndex) <> 0 then RunError (8);
- InitThreadVars (@SysRelocateThreadvar);
+ RC := DosAllocThreadLocalMemory (1, DataIndex);
+ if RC = 0 then
+ begin
+(* Avoid the need for checking TLSAPISupported on every call *)
+(* to RelocateThreadVar - ensure using the right version. *)
+ OS2ThreadManager.RelocateThreadVar := @OS2RelocateThreadVar;
+ CurrentTM.RelocateThreadVar := @OS2RelocateThreadVar;
+ InitThreadVars (@OS2RelocateThreadvar);
+ end
+ else
+ begin
+ OSErrorWatch (RC);
+(* We can still try using the internal solution for older OS/2 versions... *)
+ TLSAPISupported := false;
+ RC := DosAllocMem (DataIndex, SizeOf (TTLSPointers),
+ pag_Read or pag_Write or pag_Commit);
+ if RC = 0 then
+ InitThreadVars (@SysRelocateThreadvar)
+ else
+ begin
+ OSErrorWatch (RC);
+ RunError (8);
+ end;
+ end;
IsMultiThread := true;
end;
end;
procedure SysFiniMultithreading;
+var
+ RC: cardinal;
begin
if IsMultiThread then
begin
- if DosFreeThreadLocalMemory (DataIndex) <> 0 then
+ if TLSAPISupported then
+ RC := DosFreeThreadLocalMemory (DataIndex)
+ else
+ RC := DosFreeMem (DataIndex);
+ if RC <> 0 then
begin
{??? What to do if releasing fails?}
+ OSErrorWatch (RC);
end;
DataIndex := nil;
end;
@@ -253,9 +339,25 @@ end;
procedure SysReleaseThreadVars;
-begin
- DosFreeMem (DataIndex^);
- DataIndex^ := nil;
+var
+ RC: cardinal;
+(* TID serves for storing ThreadID before freeing the memory allocated *)
+(* to threadvars to avoid accessing a threadvar ThreadID afterwards. *)
+ TID: cardinal;
+begin
+ if TLSAPISupported then
+ begin
+ RC := DosFreeMem (DataIndex^);
+ DataIndex^ := nil;
+ end
+ else
+ begin
+ TID := ThreadID;
+ RC := DosFreeMem (PTLSPointers (DataIndex)^ [TID]);
+ PTLSPointers (DataIndex)^ [TID] := nil;
+ end;
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
@@ -334,6 +436,7 @@ function SysBeginThread (SA: pointer; StackSize : PtrUInt;
CreationFlags: cardinal; var ThreadId: TThreadID): DWord;
var
TI: PThreadInfo;
+ RC: cardinal;
begin
{ WriteLn is not a good idea before thread initialization...
$ifdef DEBUG_MT
@@ -351,8 +454,9 @@ begin
{$ifdef DEBUG_MT}
WriteLn ('Starting new thread');
{$endif DEBUG_MT}
- if DosCreateThread (cardinal (ThreadID), @ThreadMain, TI,
- CreationFlags, StackSize) = 0 then
+ RC := DosCreateThread (cardinal (ThreadID), @ThreadMain, TI,
+ CreationFlags, StackSize);
+ if RC = 0 then
SysBeginThread := ThreadID
else
begin
@@ -361,6 +465,7 @@ begin
WriteLn ('Thread creation failed');
{$ENDIF DEBUG_MT}
Dispose (TI);
+ OSErrorWatch (RC);
end;
end;
@@ -379,40 +484,62 @@ end;
function SysSuspendThread (ThreadHandle: dword): dword;
+var
+ RC: cardinal;
begin
{$WARNING Check expected return value}
- SysSuspendThread := DosSuspendThread (ThreadHandle);
+ RC := DosSuspendThread (ThreadHandle);
+ SysSuspendThread := RC;
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
function SysResumeThread (ThreadHandle: dword): dword;
+var
+ RC: cardinal;
begin
{$WARNING Check expected return value}
- SysResumeThread := DosResumeThread (ThreadHandle);
+ RC := DosResumeThread (ThreadHandle);
+ SysResumeThread := RC;
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
function SysKillThread (ThreadHandle: dword): dword;
+var
+ RC: cardinal;
begin
- SysKillThread := DosKillThread (ThreadHandle);
+ RC := DosKillThread (ThreadHandle);
+ SysKillThread := RC;
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
+{$PUSH}
+{$WARNINGS OFF}
function SysCloseThread (ThreadHandle: TThreadID): dword;
begin
{ Probably not relevant under OS/2? }
// SysCloseThread:=CloseHandle(threadHandle);
end;
+{$POP}
function SysWaitForThreadTerminate (ThreadHandle: dword;
TimeoutMs: longint): dword;
var
- RC: cardinal;
+ RC, RC2: cardinal;
const
{ Wait at most 100 ms before next check for thread termination }
WaitTime = 100;
begin
if TimeoutMs = 0 then
- RC := DosWaitThread (ThreadHandle, dcWW_Wait)
+ begin
+ RC := DosWaitThread (ThreadHandle, dcWW_Wait);
+ if RC <> 0 then
+ OSErrorWatch (RC);
+ end
else
repeat
RC := DosWaitThread (ThreadHandle, dcWW_NoWait);
@@ -423,10 +550,14 @@ begin
else
begin
DosSleep (TimeoutMs);
- DosWaitThread (ThreadHandle, dcWW_NoWait);
+ RC2 := DosWaitThread (ThreadHandle, dcWW_NoWait);
+ if RC2 <> 0 then
+ OSErrorWatch (RC2);
end;
Dec (TimeoutMs, WaitTime);
- end;
+ end
+ else if RC <> 0 then
+ OSErrorWatch (RC);
until (RC <> 294) or (TimeoutMs <= 0);
SysWaitForThreadTerminate := RC;
end;
@@ -451,7 +582,9 @@ begin
else
begin
RC := DosQuerySysState (qs_Process, 0, ProcessID, 0, PPtrRec^, BufSize);
- if (RC = 0) and (PPtrRec^.PProcRec <> nil)
+ if RC <> 0 then
+ OSErrorWatch (RC)
+ else if (PPtrRec^.PProcRec <> nil)
and (PPtrRec^.PProcRec^.PThrdRec <> nil) then
begin
BufEnd := PtrUInt (PPtrRec) + BufSize;
@@ -480,6 +613,7 @@ function SysThreadSetPriority (ThreadHandle: dword; Prio: longint): boolean;
var
Delta: longint;
Priority: cardinal;
+ RC: cardinal;
begin
Priority := GetOS2ThreadPriority (ThreadHandle);
if Priority > High (word) then
@@ -491,8 +625,10 @@ begin
Delta := - TPrio (Priority).PrioLevel
else if Delta + TPrio (Priority).PrioLevel > 31 then
Delta := 31 - TPrio (Priority).PrioLevel;
- SysThreadSetPriority :=
- DosSetPriority (dpThread, dpSameClass, Delta, ThreadHandle) = 0;
+ RC := DosSetPriority (dpThread, dpSameClass, Delta, ThreadHandle);
+ if RC <> 0 then
+ OSErrorWatch (RC);
+ SysThreadSetPriority := RC = 0;
end;
end;
@@ -529,25 +665,43 @@ end;
*****************************************************************************}
procedure SysInitCriticalSection (var CS);
+var
+ RC: cardinal;
begin
- if DosCreateMutExSem (nil, THandle (CS), 0, 0) <> 0 then
- FPC_ThreadError;
+ RC := DosCreateMutExSem (nil, THandle (CS), 0, 0);
+ if RC <> 0 then
+ begin
+ OSErrorWatch (RC);
+ FPC_ThreadError;
+ end;
end;
procedure SysDoneCriticalSection (var CS);
+var
+ RC: cardinal;
begin
(* Trying to release first since this might apparently be the expected *)
(* behaviour in Delphi according to comment in the Unix implementation. *)
repeat
until DosReleaseMutExSem (THandle (CS)) <> 0;
- if DosCloseMutExSem (THandle (CS)) <> 0 then
- FPC_ThreadError;
+ RC := DosCloseMutExSem (THandle (CS));
+ if RC <> 0 then
+ begin
+ OSErrorWatch (RC);
+ FPC_ThreadError;
+ end;
end;
procedure SysEnterCriticalSection (var CS);
+var
+ RC: cardinal;
begin
- if DosRequestMutExSem (THandle (CS), cardinal (-1)) <> 0 then
- FPC_ThreadError;
+ RC := DosRequestMutExSem (THandle (CS), cardinal (-1));
+ if RC <> 0 then
+ begin
+ OSErrorWatch (RC);
+ FPC_ThreadError;
+ end;
end;
function SysTryEnterCriticalSection (var CS): longint;
@@ -559,9 +713,15 @@ begin
end;
procedure SysLeaveCriticalSection (var CS);
+var
+ RC: cardinal;
begin
- if DosReleaseMutExSem (THandle (CS)) <> 0 then
- FPC_ThreadError;
+ RC := DosReleaseMutExSem (THandle (CS));
+ if RC <> 0 then
+ begin
+ OSErrorWatch (RC);
+ FPC_ThreadError;
+ end;
end;
@@ -607,18 +767,23 @@ begin
if RC <> 0 then
begin
Dispose (PLocalEventRec (Result));
+ OSErrorWatch (RC);
FPC_ThreadError;
end;
end;
procedure SysBasicEventDestroy (State: PEventState);
+var
+ RC: cardinal;
begin
if State = nil then
FPC_ThreadError
else
begin
- DosCloseEventSem (PLocalEventRec (State)^.FHandle);
+ RC := DosCloseEventSem (PLocalEventRec (State)^.FHandle);
+ if RC <> 0 then
+ OSErrorWatch (RC);
Dispose (PLocalEventRec (State));
end;
end;
@@ -627,22 +792,33 @@ end;
procedure SysBasicEventResetEvent (State: PEventState);
var
PostCount: cardinal;
+ RC: cardinal;
begin
if State = nil then
FPC_ThreadError
else
+ begin
(* In case of later addition of error checking: *)
(* RC 300 = Error_Already_Reset which would be OK. *)
- DosResetEventSem (PLocalEventRec (State)^.FHandle, PostCount);
+ RC := DosResetEventSem (PLocalEventRec (State)^.FHandle, PostCount);
+ if (RC <> 0) and (RC <> 300) then
+ OSErrorWatch (RC);
+ end;
end;
procedure SysBasicEventSetEvent (State: PEventState);
+var
+ RC: cardinal;
begin
if State = nil then
FPC_ThreadError
else
- DosPostEventSem (PLocalEventRec (State)^.FHandle);
+ begin
+ RC := DosPostEventSem (PLocalEventRec (State)^.FHandle);
+ if RC <> 0 then
+ OSErrorWatch (RC);
+ end;
end;
@@ -661,6 +837,7 @@ begin
else
begin
Result := wrError;
+ OSErrorWatch (RC);
PLocalEventRec (State)^.FLastError := RC;
end;
end;
@@ -669,41 +846,64 @@ end;
function SysRTLEventCreate: PRTLEvent;
+var
+ RC: cardinal;
begin
Result := PRTLEvent (-1);
- DosCreateEventSem (nil, THandle (Result), dce_AutoReset, 0);
+ RC := DosCreateEventSem (nil, THandle (Result), dce_AutoReset, 0);
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
procedure SysRTLEventDestroy (AEvent: PRTLEvent);
+var
+ RC: cardinal;
begin
- DosCloseEventSem (THandle (AEvent));
+ RC := DosCloseEventSem (THandle (AEvent));
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
procedure SysRTLEventSetEvent (AEvent: PRTLEvent);
+var
+ RC: cardinal;
begin
- DosPostEventSem (THandle (AEvent));
+ RC := DosPostEventSem (THandle (AEvent));
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
procedure SysRTLEventWaitFor (AEvent: PRTLEvent);
+var
+ RC: cardinal;
begin
- DosWaitEventSem (THandle (AEvent), cardinal (-1));
+ RC := DosWaitEventSem (THandle (AEvent), cardinal (-1));
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
procedure SysRTLEventWaitForTimeout (AEvent: PRTLEvent; Timeout: longint);
+var
+ RC: cardinal;
begin
- DosWaitEventSem (THandle (AEvent), Timeout);
+ RC := DosWaitEventSem (THandle (AEvent), Timeout);
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
procedure SysRTLEventResetEvent (AEvent: PRTLEvent);
var
PostCount: cardinal;
+ RC: cardinal;
begin
- DosResetEventSem (THandle (AEvent), PostCount);
+ RC := DosResetEventSem (THandle (AEvent), PostCount);
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
@@ -713,18 +913,18 @@ const
svNumProcessors = 26;
var
ProcNum: cardinal;
+ RC: cardinal;
begin
GetCPUCount := 1;
- if DosQuerySysInfo (svNumProcessors, svNumProcessors, ProcNum,
- SizeOf (ProcNum)) = 0 then
- GetCPUCount := ProcNum;
+ RC := DosQuerySysInfo (svNumProcessors, svNumProcessors, ProcNum,
+ SizeOf (ProcNum));
+ if RC = 0 then
+ GetCPUCount := ProcNum
+ else
+ OSErrorWatch (RC);
end;
-var
- OS2ThreadManager: TThreadManager;
-
-
procedure InitSystemThreads;
begin
with OS2ThreadManager do
diff --git a/rtl/os2/sysucode.inc b/rtl/os2/sysucode.inc
new file mode 100644
index 0000000000..422a3d1ea7
--- /dev/null
+++ b/rtl/os2/sysucode.inc
@@ -0,0 +1,1654 @@
+{
+ This file is part of the Free Pascal run time library.
+ Copyright (c) 2014-2015 by Tomas Hajny and other members
+ of the Free Pascal development team.
+
+ OS/2 UnicodeStrings support
+
+ 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 implementation is based on native Unicode support available under
+ OS/2 Warp 4 and above; if running under OS/2 Warp 3 and UCONV.DLL
+ library is not available, this implementation will resort to dummy
+ routines. This still allows providing 3rd party implementation based
+ e.g. on the ICONV library as an external unit.
+*)
+
+const
+ MaxSpecialCPTranslation = 2;
+ MaxNonEqualCPMapping = 35;
+ MaxCPMapping = 76;
+ CpxAll = 0;
+ CpxSpecial = 1;
+ CpxMappingOnly = 2;
+ Uls_Success = 0;
+ Uls_API_Error_Base = $20400;
+ Uls_Other = $20401;
+ Uls_IllegalSequence = $20402;
+ Uls_MaxFilesPerProc = $20403;
+ Uls_MaxFiles = $20404;
+ Uls_NoOp = $20405;
+ Uls_TooManyKbd = $20406;
+ Uls_KbdNotFound = $20407;
+ Uls_BadHandle = $204008;
+ Uls_NoDead = $20409;
+ Uls_NoScan = $2040A;
+ Uls_InvalidScan = $2040B;
+ Uls_NotImplemented = $2040C;
+ Uls_NoMemory = $2040D;
+ Uls_Invalid = $2040E;
+ Uls_BadObject = $2040F;
+ Uls_NoToken = $20410;
+ Uls_NoMatch = $20411;
+ Uls_BufferFull = $20412;
+ Uls_Range = $20413;
+ Uls_Unsupported = $20414;
+ Uls_BadAttr = $20415;
+ Uls_Version = $20416;
+ UConvName: array [0..5] of char = 'UCONV'#0;
+ OrdUniCreateUconvObject = 1;
+ OrdUniUconvToUcs = 2;
+ OrdUniUconvFromUcs = 3;
+ OrdUniFreeUconvObject = 4;
+ OrdUniQueryUconvObject = 7;
+ OrdUniSetUconvObject = 8;
+ OrdUniQueryUconvCp = 9;
+ OrdUniMapCpToUcsCp = 10;
+ OrdUniStrFromUcs = 11;
+ OrdUniStrToUcs = 12;
+ Ord_UniMalloc = 13;
+ Ord_UniFree = 14;
+ LibUniName: array [0..6] of char = 'LIBUNI'#0;
+ OrdUniQueryXdigit = 1;
+ OrdUniQuerySpace = 2;
+ OrdUniQueryPrint = 3;
+ OrdUniQueryGraph = 4;
+ OrdUniQueryCntrl = 5;
+ OrdUniQueryAlpha = 6;
+ OrdUniFreeAttrObject = 7;
+ OrdUniQueryCharAttr = 8;
+ OrdUniQueryUpper = 9;
+ OrdUniQueryPunct = 10;
+ OrdUniQueryLower = 11;
+ OrdUniQueryDigit = 12;
+ OrdUniQueryBlank = 13;
+ OrdUniQueryAlnum = 14;
+ OrdUniScanForAttr = 15;
+ OrdUniCreateAttrObject = 16;
+ OrdUniCreateTransformObject = 17;
+ OrdUniFreeTransformObject = 18;
+ OrdUniQueryLocaleObject = 19;
+ OrdUniCreateLocaleObject = 20;
+ OrdUniFreeLocaleObject = 21;
+ OrdUniFreeMem = 22;
+ OrdUniFreeLocaleInfo = 28;
+ OrdUniQueryLocaleInfo = 29;
+ OrdUniQueryLocaleItem = 30;
+ OrdUniStrcat = 31;
+ OrdUniStrchr = 32;
+ OrdUniStrcmp = 33;
+ OrdUniStrcmpi = 34;
+ OrdUniStrColl = 35;
+ OrdUniStrcpy = 36;
+ OrdUniStrcspn = 37;
+ OrdUniStrfmon = 38;
+ OrdUniStrftime = 39;
+ OrdUniStrlen = 40;
+ OrdUniStrncat = 41;
+ OrdUniStrncmp = 42;
+ OrdUniStrncmpi = 43;
+ OrdUniStrncpy = 44;
+ OrdUniStrpbrk = 45;
+ OrdUniStrptime = 46;
+ OrdUniStrrchr = 47;
+ OrdUniStrspn = 48;
+ OrdUniStrstr = 49;
+ OrdUniStrtod = 50;
+ OrdUniStrtol = 51;
+ OrdUniStrtoul = 52;
+ OrdUniStrxfrm = 53;
+ OrdUniLocaleStrToToken = 54;
+ OrdUniLocaleTokenToStr = 55;
+ OrdUniTransformStr = 56;
+ OrdUniTransLower = 57;
+ OrdUniTransUpper = 58;
+ OrdUniTolower = 59;
+ OrdUniToupper = 60;
+ OrdUniStrupr = 61;
+ OrdUniStrlwr = 62;
+ OrdUniStrtok = 63;
+ OrdUniMapCtryToLocale = 67;
+ OrdUniMakeKey = 70;
+ OrdUniQueryChar = 71;
+ OrdUniGetOverride = 72;
+ OrdUniGetColval = 73;
+ OrdUniQueryAttr = 74;
+ OrdUniQueryStringType = 75;
+ OrdUniQueryCharType = 76;
+ OrdUniQueryNumericValue = 77;
+ OrdUniQueryCharTypeTable = 78;
+ OrdUniProcessUconv = 80;
+ OrdLocale = 151;
+ OrdUniMakeUserLocale = 152;
+ OrdUniSetUserLocaleItem = 153;
+ OrdUniDeleteUserLocale = 154;
+ OrdUniCompleteUserLocale = 155;
+ OrdUniQueryLocaleValue = 156;
+ OrdUniQueryLocaleList = 157;
+ OrdUniQueryLanguageName = 158;
+ OrdUniQueryCountryName = 159;
+ Uni_Token_Pointer = 1;
+ Uni_MBS_String_Pointer = 2;
+ Uni_UCS_String_Pointer = 3;
+ Uni_System_Locales = 1;
+ Uni_User_Locales = 2;
+ WNull: WideChar = #0;
+
+
+
+type
+(* CP_UTF16 should be in exceptions too, because OS/2 supports only UCS2 *)
+(* rather than UTF-16 - ignored at least for now. *)
+(* ExceptionWinCodepages = (CP_UTF16BE, CP_UTF7, 12000 {UTF32}, 12001 {UTF32BE});
+ SpecialWinCodepages = (CP_UTF8, CP_ASCII);*)
+ TCpRec = record
+ WinCP: TSystemCodepage;
+ OS2CP: word;
+ UConvObj: TUConvObject;
+ end;
+ TCpXList = array [1..MaxCPMapping] of TCpRec;
+ TDummyUConvObject = record
+ CP: cardinal;
+ CPNameLen: byte;
+ CPName: record end;
+ end;
+ PDummyUConvObject = ^TDummyUConvObject;
+
+
+var
+ DBCSLeadRanges: array [0..11] of char;
+ CollationSequence: array [char] of char;
+
+
+const
+ DefCpRec: TCpRec = (WinCP: 0; OS2CP: 0; UConvObj: nil);
+ InInitDefaultCP: int64 = -1; (* Range is bigger than TThreadID to avoid conflict *)
+ DefLocObj: TLocaleObject = nil;
+ IBMPrefix: packed array [1..4] of WideChar = 'IBM-';
+ CachedDefFSCodepage: TSystemCodepage = 0;
+ EmptyCC: TCountryCode = (Country: 0; Codepage: 0); (* Empty = current *)
+ (* 819 = IBM codepage number for ISO 8859-1 used in FPC default *)
+ (* dummy translation between UnicodeString and AnsiString. *)
+ IsoCC: TCountryCode = (Country: 1; Codepage: 819); (* Empty = current *)
+ (* The following two arrays are initialized on startup in case that *)
+ (* Dummy* routines must be used. First for current codepage... *)
+ DBCSLeadRangesEnd: byte = 0;
+ LowerChars: array [char] of char =
+ (#0, #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12, #13, #14, #15, #16,
+ #17, #18, #19, #20, #21, #22, #23, #24, #25, #26, #27, #28, #29, #30, #31,
+ #32, #33, #34, #35, #36, #37, #38, #39, #40, #41, #42, #43, #44, #45, #46,
+ #47, #48, #49, #50, #51, #52, #53, #54, #55, #56, #57, #58, #59, #60, #61,
+ #62, #63, #64, #65, #66, #67, #68, #69, #70, #71, #72, #73, #74, #75, #76,
+ #77, #78, #79, #80, #81, #82, #83, #84, #85, #86, #87, #88, #89, #90, #91,
+ #92, #93, #94, #95, #96, #97, #98, #99, #100, #101, #102, #103, #104, #105,
+ #106, #107, #108, #109, #110, #111, #112, #113, #114, #115, #116, #117,
+ #118, #119, #120, #121, #122, #123, #124, #125, #126, #127, #128, #129,
+ #130, #131, #132, #133, #134, #135, #136, #137, #138, #139, #140, #141,
+ #142, #143, #144, #145, #146, #147, #148, #149, #150, #151, #152, #153,
+ #154, #155, #156, #157, #158, #159, #160, #161, #162, #163, #164, #165,
+ #166, #167, #168, #169, #170, #171, #172, #173, #174, #175, #176, #177,
+ #178, #179, #180, #181, #182, #183, #184, #185, #186, #187, #188, #189,
+ #190, #191, #192, #193, #194, #195, #196, #197, #198, #199, #200, #201,
+ #202, #203, #204, #205, #206, #207, #208, #209, #210, #211, #212, #213,
+ #214, #215, #216, #217, #218, #219, #220, #221, #222, #223, #224, #225,
+ #226, #227, #228, #229, #230, #231, #232, #233, #234, #235, #236, #237,
+ #238, #239, #240, #241, #242, #243, #244, #245, #246, #247, #248, #249,
+ #250, #251, #252, #253, #254, #255);
+ (* ...and now for ISO 8859-1 aka IBM codepage 819 *)
+ LowerCharsISO88591: array [char] of char =
+ (#0, #1, #2, #3, #4, #5, #6, #7, #8, #9, #10, #11, #12, #13, #14, #15, #16,
+ #17, #18, #19, #20, #21, #22, #23, #24, #25, #26, #27, #28, #29, #30, #31,
+ #32, #33, #34, #35, #36, #37, #38, #39, #40, #41, #42, #43, #44, #45, #46,
+ #47, #48, #49, #50, #51, #52, #53, #54, #55, #56, #57, #58, #59, #60, #61,
+ #62, #63, #64, #65, #66, #67, #68, #69, #70, #71, #72, #73, #74, #75, #76,
+ #77, #78, #79, #80, #81, #82, #83, #84, #85, #86, #87, #88, #89, #90, #91,
+ #92, #93, #94, #95, #96, #97, #98, #99, #100, #101, #102, #103, #104, #105,
+ #106, #107, #108, #109, #110, #111, #112, #113, #114, #115, #116, #117,
+ #118, #119, #120, #121, #122, #123, #124, #125, #126, #127, #128, #129,
+ #130, #131, #132, #133, #134, #135, #136, #137, #138, #139, #140, #141,
+ #142, #143, #144, #145, #146, #147, #148, #149, #150, #151, #152, #153,
+ #154, #155, #156, #157, #158, #159, #160, #161, #162, #163, #164, #165,
+ #166, #167, #168, #169, #170, #171, #172, #173, #174, #175, #176, #177,
+ #178, #179, #180, #181, #182, #183, #184, #185, #186, #187, #188, #189,
+ #190, #191, #192, #193, #194, #195, #196, #197, #198, #199, #200, #201,
+ #202, #203, #204, #205, #206, #207, #208, #209, #210, #211, #212, #213,
+ #214, #215, #216, #217, #218, #219, #220, #221, #222, #223, #224, #225,
+ #226, #227, #228, #229, #230, #231, #232, #233, #234, #235, #236, #237,
+ #238, #239, #240, #241, #242, #243, #244, #245, #246, #247, #248, #249,
+ #250, #251, #252, #253, #254, #255);
+ NoIso88591Support: boolean = false;
+
+
+threadvar
+(* Temporary allocations may be performed in parallel in different threads *)
+ TempCpRec: TCpRec;
+
+
+function OS2GetStandardCodePage (const stdcp: TStandardCodePageEnum): TSystemCodePage;
+var
+ RC, C, RetSize: cardinal;
+ NoUConvObject: TUConvObject;
+begin
+ RC := DosQueryCP (SizeOf (C), @C, RetSize);
+ if (RC <> 0) and (RC <> 473) then
+ begin
+ OSErrorWatch (RC);
+ C := 850;
+ end
+ else
+ if RetSize < SizeOf (C) then
+ C := 850;
+ OS2GetStandardCodePage := OS2CpToRtlCp (C, cpxMappingOnly, NoUConvObject);
+end;
+
+
+function DummyUniCreateUConvObject (const CpName: PWideChar;
+ var UConv_Object: TUConvObject): longint; cdecl;
+var
+ P: pointer;
+ PW, PCPN: PWideChar;
+ S: string [20];
+ C: cardinal;
+ L: PtrInt;
+ I: longint;
+ A: array [0..7] of char;
+ CPN2: UnicodeString;
+ RC, RetSize: cardinal;
+begin
+ UConv_Object := nil;
+ if (CpName = nil) or (CpName^ = #0) then
+ begin
+ RC := DosQueryCP (SizeOf (C), @C, RetSize);
+ if (RC <> 0) and (RC <> 473) then
+ begin
+ C := 850;
+ OSErrorWatch (RC);
+ end;
+ Str (C, CPN2); (* Str should hopefully not use this function recurrently *)
+ L := Length (CPN2);
+ Insert (IBMPrefix, CPN2, 1);
+ PCPN := @CPN2 [1];
+ end
+ else
+ begin
+ PCPN := CpName;
+ for I := 0 to 7 do
+ if I mod 2 = 0 then
+ A [I] := UpCase (PChar (@PCPN [0]) [I])
+ else
+ A [I] := PChar (@PCPN [0]) [I];
+ if PQWord (@A)^ <> PQWord (@IBMPrefix)^ then
+ begin
+ DummyUniCreateUConvObject := Uls_Invalid;
+ Exit;
+ end;
+ L := 0;
+ PW := PCPN + 4;
+ while ((PW + L)^ <> #0) and (L <= SizeOf (S)) do
+ begin
+ S [Succ (L)] := char (Ord ((PW + L)^));
+ Inc (L);
+ end;
+ if L > SizeOf (S) then
+ begin
+ DummyUniCreateUConvObject := Uls_Other;
+ Exit;
+ end;
+ SetLength (S, L);
+ Val (S, C, I);
+ if I <> 0 then
+ begin
+ DummyUniCreateUConvObject := Uls_Invalid;
+ Exit;
+ end;
+ end;
+ Inc (L);
+ GetMem (P, SizeOf (TDummyUConvObject) + (L + 4) * 2);
+ if P = nil then
+ DummyUniCreateUConvObject := Uls_NoMemory
+ else
+ begin
+ DummyUniCreateUConvObject := Uls_Success;
+ PDummyUConvObject (P)^.CP := C;
+ PDummyUConvObject (P)^.CpNameLen := Pred (L) + 4;
+ Move (PCPN [0], PDummyUConvObject (P)^.CpName, (L + 4) * 2);
+ UConv_Object := TUConvObject (P);
+ end;
+end;
+
+
+function DummyUniFreeUConvObject (UConv_Object: TUConvObject): longint; cdecl;
+begin
+ if UConv_Object <> nil then
+ FreeMem (UConv_Object, SizeOf (TDummyUConvObject) +
+ Succ (PDummyUConvObject (UConv_Object)^.CpNameLen) * 2);
+ DummyUniFreeUConvObject := Uls_Success;
+end;
+
+
+function DummyUniMapCpToUcsCp (const Codepage: cardinal;
+ CodepageName: PWideChar; const N: cardinal): longint; cdecl;
+var
+ S: UnicodeString;
+ RC, CP, RetSize: cardinal;
+begin
+ if Codepage = 0 then
+ begin
+ RC := DosQueryCP (SizeOf (CP), @CP, RetSize);
+ if (RC <> 0) and (RC <> 473) then
+ begin
+ CP := 850;
+ OSErrorWatch (RC);
+ end;
+ Str (CP, S);
+ end
+ else
+ Str (Codepage, S);
+ if (N <= Length (S) + 4) or (CodepageName = nil) then
+ DummyUniMapCptoUcsCp := Uls_Invalid
+ else
+ begin
+ Move (IBMPrefix, CodepageName^, SizeOf (IBMPrefix));
+ Move (S [1], CodepageName [4], Length (S) * SizeOf (WideChar));
+ CodepageName [Length (S) + 4] := #0;
+ DummyUniMapCpToUcsCp := Uls_Success;
+ end;
+end;
+
+
+function DummyUniUConvFromUcs (UConv_Object: TUConvObject;
+ var UcsBuf: PWideChar; var UniCharsLeft: longint; var OutBuf: PChar;
+ var OutBytesLeft: longint; var NonIdentical: longint): longint; cdecl;
+var
+ Dest, Dest2: RawByteString;
+ NoUConvObj: TUConvObject;
+ RtlCp: TSystemCodepage;
+ UcsLen: PtrInt;
+begin
+ if UConv_Object = nil then
+ RtlCp := OS2GetStandardCodePage (scpAnsi)
+ else
+ RtlCp := OS2CpToRtlCp (PDummyUConvObject (UConv_Object)^.CP, cpxMappingOnly,
+ NoUConvObj);
+ DefaultUnicode2AnsiMove (UcsBuf, Dest, RtlCp, UniCharsLeft);
+ NonIdentical := 1; { Assume at least one substitution with dummy implementation }
+ if Length (Dest) > OutBytesLeft then
+ begin
+ UcsLen := 1;
+ repeat
+ DefaultUnicode2AnsiMove (UcsBuf, Dest2, RtlCp, UcsLen);
+ if Length (Dest2) <= OutBytesLeft then
+ begin
+ Dest := Dest2;
+ end;
+ Inc (UcsLen);
+ until Length (Dest2) > OutBytesLeft;
+ Dec (UcsLen);
+ Inc (UcsBuf, UcsLen);
+ Dec (UniCharsLeft, UcsLen);
+ DummyUniUConvFromUcs := Uls_BufferFull;
+ end
+ else
+ begin
+ Inc (UcsBuf, UniCharsLeft);
+ UniCharsLeft := 0;
+ DummyUniUConvFromUcs := Uls_Success;
+ end;
+ Move (Dest [1], OutBuf^, Length (Dest));
+ Inc (OutBuf, Length (Dest));
+ Dec (OutBytesLeft, Length (Dest));
+end;
+
+
+function DummyUniUConvToUcs (UConv_Object: TUConvObject; var InBuf: PChar;
+ var InBytesLeft: longint; var UcsBuf: PWideChar; var UniCharsLeft: longint;
+ var NonIdentical: longint): longint; cdecl;
+var
+ Dest, Dest2: UnicodeString;
+ NoUConvObj: TUConvObject;
+ RtlCp: TSystemCodepage;
+ SrcLen: PtrInt;
+begin
+ if UConv_Object = nil then
+ RtlCp := OS2GetStandardCodePage (scpAnsi)
+ else
+ RtlCp := OS2CpToRtlCp (PDummyUConvObject (UConv_Object)^.CP, cpxMappingOnly,
+ NoUConvObj);
+ DefaultAnsi2UnicodeMove (InBuf, RtlCp, Dest, InBytesLeft);
+ NonIdentical := 0; { Assume no need for substitutions in this direction }
+ if Length (Dest) > UniCharsLeft then
+ begin
+ SrcLen := 1;
+ repeat
+ DefaultAnsi2UnicodeMove (InBuf, RtlCp, Dest2, SrcLen);
+ if Length (Dest2) <= UniCharsLeft then
+ begin
+ Dest := Dest2;
+ end;
+ Inc (SrcLen);
+ until Length (Dest2) > UniCharsLeft;
+ Dec (SrcLen);
+ Inc (InBuf, SrcLen);
+ Dec (InBytesLeft, SrcLen);
+ DummyUniUConvToUcs := Uls_BufferFull; { According to IBM documentation Uls_Invalid and not Uls_BufferFull as returned by UniUConvFromUcs?! }
+ end
+ else
+ begin
+ Inc (InBuf, InBytesLeft); { Shall it be increased in case of success too??? }
+ InBytesLeft := 0;
+ DummyUniUConvToUcs := Uls_Success;
+ end;
+ Move (Dest [1], UcsBuf^, Length (Dest) * 2);
+ Inc (UcsBuf, Length (Dest)); { Shall it be increased in case of success too??? }
+ Dec (UniCharsLeft, Length (Dest));
+end;
+
+
+procedure InitDBCSLeadRanges;
+var
+ RC: cardinal;
+begin
+ RC := DosQueryDBCSEnv (SizeOf (DBCSLeadRanges), EmptyCC,
+ @DBCSLeadRanges [0]);
+ DBCSLeadRangesEnd := 0;
+ if RC <> 0 then
+ while (DBCSLeadRangesEnd < SizeOf (DBCSLeadRanges)) and
+ ((DBCSLeadRanges [DBCSLeadRangesEnd] <> #0) or
+ (DBCSLeadRanges [Succ (DBCSLeadRangesEnd)] <> #0)) do
+ Inc (DBCSLeadRangesEnd, 2);
+end;
+
+
+procedure InitDummyAnsiSupport;
+var
+ C: char;
+ AllChars: array [char] of char;
+ RetSize: cardinal;
+begin
+ if DosQueryCollate (SizeOf (CollationSequence), EmptyCC, @CollationSequence,
+ RetSize) <> 0 then
+ Move (LowerChars, CollationSequence, SizeOf (CollationSequence));
+ Move (LowerChars, AllChars, SizeOf (AllChars));
+ if DosMapCase (SizeOf (AllChars), IsoCC, @AllChars [#0]) <> 0 then
+(* Codepage 819 may not be supported in all old OS/2 versions. *)
+ begin
+ Move (LowerCharsIso88591, AllChars, SizeOf (AllChars));
+ DosMapCase (SizeOf (AllChars), EmptyCC, @AllChars [#0]);
+ NoIso88591Support := true;
+ end;
+ for C := Low (char) to High (char) do
+ if AllChars [C] <> C then
+ LowerCharsIso88591 [AllChars [C]] := C;
+ if NoIso88591Support then
+ Move (LowerCharsIso88591, LowerChars, SizeOf (LowerChars))
+ else
+ begin
+ Move (LowerChars, AllChars, SizeOf (AllChars));
+ DosMapCase (SizeOf (AllChars), EmptyCC, @AllChars [#0]);
+ for C := Low (char) to High (char) do
+ if AllChars [C] <> C then
+ LowerChars [AllChars [C]] := C;
+ end;
+ InitDBCSLeadRanges;
+end;
+
+
+procedure ReInitDummyAnsiSupport;
+var
+ C: char;
+ AllChars: array [char] of char;
+ RetSize: cardinal;
+begin
+ for C := Low (char) to High (char) do
+ AllChars [C] := C;
+ if DosQueryCollate (SizeOf (CollationSequence), EmptyCC, @CollationSequence,
+ RetSize) <> 0 then
+ Move (AllChars, CollationSequence, SizeOf (CollationSequence));
+ DosMapCase (SizeOf (AllChars), EmptyCC, @AllChars [#0]);
+ for C := Low (char) to High (char) do
+ if AllChars [C] <> C then
+ LowerChars [AllChars [C]] := C;
+ InitDBCSLeadRanges;
+end;
+
+
+function DummyUniToLower (UniCharIn: WideChar): WideChar; cdecl;
+var
+ C: char;
+begin
+ C := UniCharIn;
+ DummyUniToLower := LowerCharsIso88591 [C];
+end;
+
+
+function DummyUniToUpper (UniCharIn: WideChar): WideChar; cdecl;
+var
+ C: char;
+begin
+ DummyUniToUpper := UniCharIn;
+ C := UniCharIn;
+ if NoIso88591Support then
+ begin
+ if DosMapCase (1, EmptyCC, @C) = 0 then
+ DummyUniToUpper := C;
+ end
+ else
+ if DosMapCase (1, IsoCC, @C) = 0 then
+ DummyUniToUpper := C
+end;
+
+
+function DummyUniStrColl (Locale_Object: TLocaleObject;
+ const UCS1, UCS2: PWideChar): longint; cdecl;
+var
+ S1, S2: ansistring;
+begin
+ S1 := UCS1;
+ S2 := UCS2;
+ if S1 = S2 then
+ DummyUniStrColl := 0
+ else if S1 < S2 then
+ DummyUniStrColl := -1
+ else
+ DummyUniStrColl := 1;
+end;
+
+
+function DummyUniCreateLocaleObject (LocaleSpecType: longint;
+ const LocaleSpec: pointer; var Locale_Object: TLocaleObject): longint; cdecl;
+begin
+ DummyUniCreateLocaleObject := ULS_Unsupported;
+end;
+
+
+function DummyUniFreeLocaleObject (Locale_Object: TLocaleObject): longint;
+ cdecl;
+begin
+ DummyUniFreeLocaleObject := ULS_BadObject;
+end;
+
+
+
+const
+ CpXList: TCpXList = (
+ (WinCP: CP_UTF8; OS2CP: 1208; UConvObj: nil),
+ (WinCP: CP_ASCII; OS2CP: 367; UConvObj: nil),
+ (WinCP: 28597; OS2CP: 813; UConvObj: nil),
+ (WinCP: 28591; OS2CP: 819; UConvObj: nil),
+ (WinCP: 28592; OS2CP: 912; UConvObj: nil),
+ (WinCP: 28593; OS2CP: 913; UConvObj: nil),
+ (WinCP: 28594; OS2CP: 914; UConvObj: nil),
+ (WinCP: 28595; OS2CP: 915; UConvObj: nil),
+ (WinCP: 28598; OS2CP: 916; UConvObj: nil),
+ (WinCP: 28599; OS2CP: 920; UConvObj: nil),
+ (WinCP: 28603; OS2CP: 921; UConvObj: nil),
+ (WinCP: 28605; OS2CP: 923; UConvObj: nil),
+ (WinCP: 10000; OS2CP: 1275; UConvObj: nil),
+ (WinCP: 10006; OS2CP: 1280; UConvObj: nil),
+ (WinCP: 10081; OS2CP: 1281; UConvObj: nil),
+ (WinCP: 10029; OS2CP: 1282; UConvObj: nil),
+ (WinCP: 10007; OS2CP: 1283; UConvObj: nil),
+ (WinCP: 20273; OS2CP: 273; UConvObj: nil),
+ (WinCP: 20277; OS2CP: 277; UConvObj: nil),
+ (WinCP: 20278; OS2CP: 278; UConvObj: nil),
+ (WinCP: 20280; OS2CP: 280; UConvObj: nil),
+ (WinCP: 20284; OS2CP: 284; UConvObj: nil),
+ (WinCP: 20285; OS2CP: 285; UConvObj: nil),
+ (WinCP: 20290; OS2CP: 290; UConvObj: nil),
+ (WinCP: 20297; OS2CP: 297; UConvObj: nil),
+ (WinCP: 20420; OS2CP: 420; UConvObj: nil),
+ (WinCP: 20424; OS2CP: 424; UConvObj: nil),
+ (WinCP: 20833; OS2CP: 833; UConvObj: nil),
+ (WinCP: 20838; OS2CP: 838; UConvObj: nil),
+ (WinCP: 20866; OS2CP: 878; UConvObj: nil),
+ (WinCP: 737; OS2CP: 851; UConvObj: nil),
+ (WinCP: 20924; OS2CP: 924; UConvObj: nil),
+ (WinCP: 20932; OS2CP: 932; UConvObj: nil),
+ (WinCP: 20936; OS2CP: 936; UConvObj: nil),
+ (WinCP: 21025; OS2CP: 1025; UConvObj: nil),
+ (WinCP: CP_UTF16; OS2CP: CP_UTF16; UConvObj: nil),
+ (WinCP: 37; OS2CP: 37; UConvObj: nil),
+ (WinCP: 437; OS2CP: 437; UConvObj: nil),
+ (WinCP: 500; OS2CP: 500; UConvObj: nil),
+ (WinCP: 850; OS2CP: 850; UConvObj: nil),
+ (WinCP: 852; OS2CP: 852; UConvObj: nil),
+ (WinCP: 855; OS2CP: 855; UConvObj: nil),
+ (WinCP: 857; OS2CP: 857; UConvObj: nil),
+ (WinCP: 860; OS2CP: 860; UConvObj: nil),
+ (WinCP: 861; OS2CP: 861; UConvObj: nil),
+ (WinCP: 862; OS2CP: 862; UConvObj: nil),
+ (WinCP: 863; OS2CP: 863; UConvObj: nil),
+ (WinCP: 864; OS2CP: 864; UConvObj: nil),
+ (WinCP: 865; OS2CP: 865; UConvObj: nil),
+ (WinCP: 866; OS2CP: 866; UConvObj: nil),
+ (WinCP: 869; OS2CP: 869; UConvObj: nil),
+ (WinCP: 870; OS2CP: 870; UConvObj: nil),
+ (WinCP: 874; OS2CP: 874; UConvObj: nil),
+ (WinCP: 875; OS2CP: 875; UConvObj: nil),
+ (WinCP: 949; OS2CP: 949; UConvObj: nil),
+ (WinCP: 950; OS2CP: 950; UConvObj: nil),
+ (WinCP: 1026; OS2CP: 1026; UConvObj: nil),
+ (WinCP: 1047; OS2CP: 1047; UConvObj: nil),
+ (WinCP: 1140; OS2CP: 1140; UConvObj: nil),
+ (WinCP: 1141; OS2CP: 1141; UConvObj: nil),
+ (WinCP: 1142; OS2CP: 1142; UConvObj: nil),
+ (WinCP: 1143; OS2CP: 1143; UConvObj: nil),
+ (WinCP: 1144; OS2CP: 1144; UConvObj: nil),
+ (WinCP: 1145; OS2CP: 1145; UConvObj: nil),
+ (WinCP: 1146; OS2CP: 1146; UConvObj: nil),
+ (WinCP: 1147; OS2CP: 1147; UConvObj: nil),
+ (WinCP: 1148; OS2CP: 1148; UConvObj: nil),
+ (WinCP: 1149; OS2CP: 1149; UConvObj: nil),
+ (WinCP: 1250; OS2CP: 1250; UConvObj: nil),
+ (WinCP: 1251; OS2CP: 1251; UConvObj: nil),
+ (WinCP: 1252; OS2CP: 1252; UConvObj: nil),
+ (WinCP: 1253; OS2CP: 1253; UConvObj: nil),
+ (WinCP: 1254; OS2CP: 1254; UConvObj: nil),
+ (WinCP: 1255; OS2CP: 1255; UConvObj: nil),
+ (WinCP: 1256; OS2CP: 1256; UConvObj: nil),
+ (WinCP: 1257; OS2CP: 1257; UConvObj: nil)
+ );
+
+(* Possibly add index tables for both directions and binary search??? *)
+
+{
+function GetRtlCpFromCpRec (const CpRec: TCpRec): TSystemCodepage; inline;
+begin
+ if RtlUsesWinCp then
+ GetRtlCp := CpRec.WinCP
+ else
+ GetRtlCp := TSystemCodepage (CpRec.Os2Cp);
+end;
+}
+
+function UConvObjectForCP (CP: cardinal; var UConvObj: TUConvObject): longint;
+var
+ RC: longint;
+ A: array [0..12] of WideChar;
+begin
+ UConvObj := nil;
+ RC := Sys_UniMapCpToUcsCp (CP, @A, 12);
+ if RC = 0 then
+ RC := Sys_UniCreateUconvObject (@A, UConvObj);
+{$WARNING: TODO: Deallocate some previously allocated UConvObj and try again if failed}
+ UConvObjectForCP := RC;
+ if RC <> 0 then
+ OSErrorWatch (RC);
+end;
+
+
+procedure InitDefaultCP;
+var
+ OS2CP, I: cardinal;
+ NoUConvObj: TUConvObject;
+ RCI: longint;
+ RC: cardinal;
+ CPArr: TCPArray;
+ ReturnedSize: cardinal;
+begin
+ if InInitDefaultCP <> -1 then
+ begin
+ repeat
+ DosSleep (5);
+ until InInitDefaultCP <> -1;
+ Exit;
+ end;
+ InInitDefaultCP := ThreadID;
+ if DefCpRec.UConvObj <> nil then
+ begin
+(* Do not free the UConv object from DefCpRec, because it is also stored in
+ the respective CPXList record! *)
+{
+ RCI := Sys_UniFreeUConvObject (DefCpRec.UConvObj);
+ if RCI <> 0 then
+ OSErrorWatch (cardinal (RCI));
+}
+ DefCpRec.UConvObj := nil;
+ end;
+ RC := DosQueryCP (SizeOf (CPArr), @CPArr, ReturnedSize);
+ if (RC <> 0) and (RC <> 473) then
+ begin
+ OSErrorWatch (RC);
+ CPArr [0] := 850;
+ end
+ else if (ReturnedSize < 4) then
+ CPArr [0] := 850;
+ DefaultFileSystemCodePage := OS2CPtoRtlCP (CPArr [0], cpxAll,
+ DefCpRec.UConvObj);
+ CachedDefFSCodepage := DefaultFileSystemCodePage;
+ DefCpRec.OS2CP := CPArr [0];
+(* Find out WinCP _without_ considering RtlUsesWinCP *)
+ I := 1;
+ while (I <= MaxNonEqualCPMapping) and (CpXList [I].OS2CP <> OS2CP) do
+ Inc (I);
+ if CpXList [I].OS2CP = CPArr [0] then
+ DefCpRec.WinCP := CpXList [I].WinCP
+ else
+ DefCpRec.WinCP := CPArr [0];
+
+ if DefLocObj <> nil then
+ begin
+ RCI := Sys_UniFreeLocaleObject (DefLocObj);
+ if RCI <> 0 then
+ OSErrorWatch (cardinal (RCI));
+ end;
+ RCI := Sys_UniCreateLocaleObject (Uni_UCS_String_Pointer, @WNull, DefLocObj);
+ if RCI <> 0 then
+ OSErrorWatch (cardinal (RCI));
+ if not (UniAPI) then
+ ReInitDummyAnsiSupport;
+ InInitDefaultCP := -1;
+end;
+
+
+function OS2CPtoRtlCP (CP: cardinal; ReqFlags: byte;
+ var UConvObj: TUConvObject): TSystemCodepage;
+var
+ I, I2: cardinal;
+ RCI: longint;
+
+ function CheckDefaultOS2CP: boolean;
+ begin
+ if CP = DefCpRec.OS2CP then
+ begin
+ CheckDefaultOS2CP := true;
+ if RTLUsesWinCP then
+ OS2CPtoRtlCP := DefCpRec.WinCP;
+ if ReqFlags and CpxMappingOnly = 0 then
+ UConvObj := DefCpRec.UConvObj;
+ end
+ else
+ CheckDefaultOS2CP := false;
+ end;
+
+begin
+ OS2CPtoRtlCP := TSystemCodePage (CP);
+ UConvObj := nil;
+ if not UniAPI then (* No UniAPI => no need for UConvObj *)
+ ReqFlags := ReqFlags or CpxMappingOnly;
+ if CheckDefaultOS2CP then
+ Exit;
+ if (CachedDefFSCodepage <> DefaultFileSystemCodePage) and
+ (InInitDefaultCP <> ThreadID) then
+(* InInitDefaultCP = ThreadID -> this thread is already re-initializing the cached information *)
+ begin
+ if InInitDefaultCP <> -1 then
+ repeat
+ DosSleep (5) (* Let's wait until the other thread finishes re-initialization of the cache *)
+ until InInitDefaultCP = -1
+ else
+ InitDefaultCP;
+ if CheckDefaultOS2CP then
+ Exit;
+ end;
+ I := 1;
+ if ReqFlags and CpxSpecial = CpxSpecial then
+ I2 := 2
+ else
+ if ReqFlags and CpxMappingOnly = CpxMappingOnly then
+ I2 := MaxNonEqualCPMapping
+ else
+ I2 := MaxCPMapping;
+ while I <= I2 do
+ begin
+ if CP = CpXList [I].OS2CP then
+ begin
+ if RTLUsesWinCP then
+ OS2CPtoRtlCP := CpXList [I].WinCP;
+ if ReqFlags and CpxMappingOnly = 0 then
+ begin
+ if CpXList [I].UConvObj = nil then
+ begin
+ if UConvObjectForCP (CpXList [I].OS2CP, UConvObj) = Uls_Success then
+ CpXList [I].UConvObj := UConvObj
+ else
+ UConvObj := nil;
+ end
+ else
+ UConvObj := CpXList [I].UConvObj;
+ end;
+ Exit;
+ end;
+ Inc (I);
+ end;
+(* If codepage was not found in the translation table and UConvObj is
+ requested, allocate one in the temporary record. *)
+ if ReqFlags and CpxMappingOnly = 0 then
+ begin
+ if TempCpRec.OS2CP = CP then
+ UConvObj := TempCpRec.UConvObj
+ else
+ begin
+ if TempCpRec.UConvObj <> nil then
+ begin
+ RCI := Sys_UniFreeUConvObject (TempCpRec.UConvObj);
+ if RCI <> 0 then
+ OSErrorWatch (cardinal (RCI));
+ end;
+ if UConvObjectForCP (CP, UConvObj) = Uls_Success then
+ begin
+ TempCpRec.UConvObj := UConvObj;
+ TempCpRec.OS2CP := CP;
+ end
+ else
+ UConvObj := nil;
+ end;
+ end;
+end;
+
+
+function RtlCPtoOS2CP (RtlCP: TSystemCodepage; ReqFlags: byte;
+ var UConvObj: TUConvObject): cardinal;
+var
+ I, I2: cardinal;
+
+ function CheckDefaultWinCP: boolean;
+ begin
+ if RtlCP = DefCpRec.WinCP then
+ begin
+ CheckDefaultWinCP := true;
+ RtlCPtoOS2CP := DefCpRec.WinCP;
+ if ReqFlags and CpxMappingOnly = 0 then
+ UConvObj := DefCpRec.UConvObj;
+ end
+ else
+ CheckDefaultWinCP := false;
+ end;
+
+begin
+ RtlCPtoOS2CP := RtlCP;
+ UConvObj := nil;
+ if not UniAPI then (* No UniAPI => no need for UConvObj *)
+ ReqFlags := ReqFlags or CpxMappingOnly;
+ if not (RTLUsesWinCP) then
+ begin
+ if ReqFlags and CpxMappingOnly = 0 then
+ OS2CPtoRtlCP (cardinal (RtlCp), ReqFlags, UConvObj);
+ end
+ else if CheckDefaultWinCp then
+ Exit
+ else
+ begin
+ if (CachedDefFSCodepage <> DefaultFileSystemCodePage) and
+ (InInitDefaultCP <> ThreadID) then
+(* InInitDefaultCP = ThreadID -> this thread is already re-initializing the cached information *)
+ begin
+ if InInitDefaultCP <> -1 then
+ repeat
+(* Let's wait until the other thread finishes re-initialization of the cache *)
+ DosSleep (5)
+ until InInitDefaultCP = -1
+ else
+ InitDefaultCP;
+ if CheckDefaultWinCP then
+ Exit;
+ end;
+ I := 1;
+ if ReqFlags and CpxSpecial = CpxSpecial then
+ I2 := 2
+ else
+ if ReqFlags and CpxMappingOnly = CpxMappingOnly then
+ I2 := MaxNonEqualCPMapping
+ else
+ I2 := MaxCPMapping;
+ while I <= I2 do
+ begin
+ if RtlCP = CpXList [I].WinCP then
+ begin
+ RtlCPtoOS2CP := CpXList [I].OS2CP;
+ if ReqFlags and CpxMappingOnly = 0 then
+ begin
+ begin
+ if UConvObjectForCP (CpXList [I].OS2CP, UConvObj) = Uls_Success then
+ CpXList [I].UConvObj := UConvObj
+ else
+ UConvObj := nil;
+ end
+ end;
+ Exit;
+ end;
+ Inc (I);
+ end;
+(*
+Special processing for
+ ExceptionWinCodepages = (CP_UTF16BE, CP_UTF7, 12000 {UTF32}, 12001 {UTF32BE})
+might be added here...or not ;-)
+
+ if (TempCpRec.OS2CP <> High (TempCpRec.OS2CP)) or
+ (TempCpRec.WinCP <> RtlCp) then
+ begin
+ if TempCpRec.UConvObj <> nil then
+ begin
+ RCI := Sys_UniFreeUConvObject (TempCpRec.UConvObj);
+ if RCI <> 0 then
+ OSErrorWatch (cardinal (RCI));
+ end;
+ TempCpRec.OS2CP := High (TempCpRec.OS2CP);
+ TempCpRec.WinCP := RtlCp;
+ end;
+
+ Map to CP_ASCII aka OS2CP=367 if RtlCP not recognized and UConvObject
+ is requested???
+*)
+
+(* Signalize unrecognized (untranslatable) MS Windows codepage *)
+ OSErrorWatch (Uls_Invalid);
+ end;
+end;
+
+
+function OS2CPtoRtlCP (CP: cardinal; ReqFlags: byte): TSystemCodepage;
+var
+ NoUConvObj: TUConvObject;
+begin
+ if RtlUsesWinCP then
+ OS2CPtoRtlCP := OS2CPtoRtlCP (CP, ReqFlags or CpxMappingOnly, NoUConvObj)
+ else
+ OS2CPtoRtlCP := TSystemCodepage (CP);
+end;
+
+
+function RtlCPtoOS2CP (RtlCP: TSystemCodepage; ReqFlags: byte): cardinal;
+var
+ NoUConvObj: TUConvObject;
+begin
+ if RtlUsesWinCP then
+ RtlCPtoOS2CP := RtlCPtoOS2CP (RtlCP, ReqFlags or CpxMappingOnly, NoUConvObj)
+ else
+ RtlCPtoOS2CP := RtlCP;
+end;
+
+
+procedure OS2Unicode2AnsiMove (Source: PUnicodeChar; var Dest: RawByteString;
+ CP: TSystemCodePage; Len: SizeInt);
+var
+ RCI: longint;
+ UConvObj: TUConvObject;
+ OS2CP: cardinal;
+ Src2: PUnicodeChar;
+ Len2, LenOut, OutOffset, NonIdentical: longint;
+ Dest2: PChar;
+begin
+ OS2CP := RtlCpToOS2CP (CP, CpxAll, UConvObj);
+{ if UniAPI and (UConvObj = nil) then - OS2Unicode2AnsiMove should be never called if not UniAPI }
+ if UConvObj = nil then
+ begin
+{$WARNING Special cases like UTF-7 should be handled here, otherwise signalize error - how???}
+
+ DefaultUnicode2AnsiMove (Source, Dest, CP, Len);
+ Exit;
+ end;
+ LenOut := Succ (Len); (* Standard OS/2 CP is a SBCS *)
+ SetLength (Dest, LenOut);
+ SetCodePage (Dest, CP, false);
+ Src2 := Source;
+ Len2 := Len;
+ Dest2 := PChar (Dest);
+ RCI := Sys_UniUConvFromUcs (UConvObj, Src2, Len2, Dest2, LenOut,
+ NonIdentical);
+ repeat
+ case RCI of
+ Uls_Success:
+ begin
+ if LenOut > 0 then
+ SetLength (Dest, Length (Dest) - LenOut);
+ Break;
+ end;
+ Uls_IllegalSequence:
+ begin
+ OSErrorWatch (Uls_IllegalSequence);
+ { skip and set to '?' }
+ Inc (Src2);
+ Dec (Len2);
+ Dest2^ := '?';
+ Inc (Dest2);
+ Dec (LenOut);
+ end;
+ Uls_BufferFull:
+ begin
+ OutOffset := Dest2 - PChar (Dest);
+(* Use Len2 or Len decreased by difference between Source and Src2? *)
+(* Extend more this time - target is probably a DBCS or UTF-8 *)
+ SetLength (Dest, Length (Dest) + Succ (Len2 * 2));
+ { string could have been moved }
+ Dest2 := PChar (Dest) + OutOffset;
+ Inc (LenOut, Succ (Len2 * 2));
+ end
+ else
+ begin
+ SetLength (Dest, 0);
+ OSErrorWatch (cardinal (RCI));
+ { Break }
+ RunError (231);
+ end;
+ end;
+ RCI := Sys_UniUConvFromUcs (UConvObj, Src2, Len2, Dest2, LenOut,
+ NonIdentical);
+ until false;
+end;
+
+
+procedure OS2Ansi2UnicodeMove (Source: PChar; CP: TSystemCodePage;
+ var Dest: UnicodeString; Len: SizeInt);
+var
+ RCI: longint;
+ UConvObj: TUConvObject;
+ OS2CP: cardinal;
+ Src2: PChar;
+ Len2, LenOut, OutOffset, NonIdentical: longint;
+ Dest2: PWideChar;
+begin
+ OS2CP := RtlCpToOS2CP (CP, CpxAll, UConvObj);
+{ if UniAPI and (UConvObj = nil) then - OS2Unicode2AnsiMove should be never called if not UniAPI }
+ if UConvObj = nil then
+ begin
+{$WARNING Special cases like UTF-7 should be handled here, otherwise signalize error - how???}
+
+ DefaultAnsi2UnicodeMove (Source, CP, Dest, Len);
+ Exit;
+ end;
+
+ LenOut := Succ (Len); (* Standard OS/2 CP is a SBCS *)
+ SetLength (Dest, LenOut);
+ Src2 := Source;
+ Len2 := Len;
+ Dest2 := PWideChar (Dest);
+
+ RCI := Sys_UniUConvToUcs (UConvObj, Src2, Len2, Dest2, LenOut, NonIdentical);
+ repeat
+ case RCI of
+ Uls_Success:
+ begin
+ if LenOut > 0 then
+ SetLength (Dest, Length (Dest) - LenOut);
+ Break;
+ end;
+ Uls_IllegalSequence:
+ begin
+ OSErrorWatch (Uls_IllegalSequence);
+ { skip and set to '?' }
+ Inc (Src2);
+ Dec (Len2);
+ Dest2^ := '?';
+ Inc (Dest2);
+ Dec (LenOut);
+ end;
+ Uls_BufferFull:
+ begin
+ OutOffset := Dest2 - PWideChar (Dest);
+(* Use Len2 or Len decreased by difference between Source and Src2? *)
+ SetLength (Dest, Length (Dest) + Succ (Len2));
+ { string could have been moved }
+ Dest2 := PWideChar (Dest) + OutOffset;
+ Inc (LenOut, Succ (Len2));
+ end
+ else
+ begin
+ SetLength (Dest, 0);
+ OSErrorWatch (cardinal (RCI));
+ { Break }
+ RunError (231);
+ end;
+ end;
+ RCI := Sys_UniUConvToUcs (UConvObj, Src2, Len2, Dest2, LenOut,
+ NonIdentical);
+ until false;
+end;
+
+
+function RtlChangeCP (CP: TSystemCodePage): longint;
+var
+ OS2CP, I: cardinal;
+ NoUConvObj: TUConvObject;
+ RCI: longint;
+begin
+ OS2CP := RtlCpToOS2Cp (CP, cpxMappingOnly, NoUConvObj);
+ RtlChangeCP := longint (DosSetProcessCP (OS2CP));
+ if RtlChangeCP <> 0 then
+ OSErrorWatch (RtlChangeCP)
+ else
+ begin
+ DefaultSystemCodePage := CP;
+ DefaultRTLFileSystemCodePage := DefaultSystemCodePage;
+ DefaultFileSystemCodePage := DefaultSystemCodePage;
+
+ if OS2CP <> DefCpRec.OS2CP then
+ begin
+ if DefCpRec.UConvObj <> nil then
+ begin
+(* Do not free the UConv object from DefCpRec, because it is also stored in
+ the respective CpXList record! *)
+{
+ RCI := Sys_UniFreeUConvObject (DefCpRec.UConvObj);
+ if RCI <> 0 then
+ OSErrorWatch (cardinal (RCI));
+}
+ DefCpRec.UConvObj := nil;
+ end;
+ DefCPRec.OS2CP := OS2CP;
+ RCI := Sys_UniCreateUConvObject (@WNull, DefCpRec.UConvObj);
+ if RCI <> 0 then
+ OSErrorWatch (cardinal (RCI));
+(* Find out WinCP _without_ considering RtlUsesWinCP *)
+ I := 1;
+ while (I <= MaxNonEqualCPMapping) and (CpXList [I].OS2CP <> OS2CP) do
+ Inc (I);
+ if CpXList [I].OS2CP = OS2CP then
+ DefCpRec.WinCP := CpXList [I].WinCP
+ else
+ DefCpRec.WinCP := OS2CP;
+ end;
+ end;
+end;
+
+
+function OS2UpperUnicodeString (const S: UnicodeString): UnicodeString;
+var
+ I: cardinal;
+begin
+ SetLength (Result, Length (S));
+ for I := 0 to Pred (Length (S)) do
+ PWideChar (Result) [I] := Sys_UniToUpper (S [Succ (I)]);
+end;
+
+
+function OS2LowerUnicodeString (const S: UnicodeString): UnicodeString;
+var
+ I: cardinal;
+begin
+ SetLength (Result, Length (S));
+ for I := 0 to Pred (Length (S)) do
+ PWideChar (Result) [I] := Sys_UniToLower (S [Succ (I)]);
+end;
+
+
+function NoNullsUnicodeString (const S: UnicodeString): UnicodeString;
+var
+ I: cardinal;
+begin
+ Result := S;
+ UniqueString (Result);
+ for I := 1 to Length (S) do
+ if Result [I] = WNull then
+ Result [I] := ' ';
+end;
+
+
+function OS2CompareUnicodeString (const S1, S2: UnicodeString): PtrInt;
+var
+ HS1, HS2: UnicodeString;
+begin
+ { UniStrColl interprets null chars as end-of-string -> filter out }
+ HS1 := NoNullsUnicodeString (S1);
+ HS2 := NoNullsUnicodeString (S2);
+ Result := Sys_UniStrColl (DefLocObj, PWideChar (HS1), PWideChar (HS2));
+ if Result < -1 then
+ Result := -1
+ else if Result > 1 then
+ Result := 1;
+end;
+
+
+function OS2CompareTextUnicodeString (const S1, S2: UnicodeString): PtrInt;
+begin
+ Result := OS2CompareUnicodeString (OS2UpperUnicodeString (S1),
+ OS2UpperUnicodeString (S2));
+{$WARNING Language independent uppercase routine may not be appropriate for language dependent case insensitive comparison!}
+end;
+
+
+function OS2UpperAnsiString (const S: AnsiString): AnsiString;
+var
+ RC: cardinal;
+begin
+ Result := S;
+ UniqueString (Result);
+ FillChar (EmptyCC, SizeOf (EmptyCC), 0);
+ RC := DosMapCase (Length (Result), EmptyCC, PChar (Result));
+{ What to do in case of a failure??? }
+ if RC <> 0 then
+ Result := UpCase (S); { Use a fallback? }
+end;
+
+
+function OS2LowerAnsiString (const S: AnsiString): AnsiString;
+var
+ I: PtrUInt;
+
+ function IsDBCSLeadChar (C: char): boolean;
+ var
+ D: byte;
+ begin
+ IsDBCSLeadChar := false;
+ D := 0;
+ while D < DBCSLeadRangesEnd do
+ begin
+ if (C >= DBCSLeadRanges [D]) and (C <= DBCSLeadRanges [Succ (D)]) then
+ begin
+ IsDBCSLeadChar := true;
+ Exit;
+ end;
+ Inc (D, 2);
+ end;
+ end;
+
+begin
+(*
+ OS/2 provides no direct solution for lowercase conversion of MBCS strings.
+ If Unicode support is available, using Unicode routines is the best solution.
+ If not, we use a translation table built at startup by translating the full
+ character set to uppercase and using that for creation of a lookup table
+ (as already done in sysutils). However, we need to check for DBCS (MBCS)
+ codepages and avoid translating the DBCS lead bytes and the following
+ character.
+*)
+ if UniAPI then
+ Result := OS2LowerUnicodeString (S)
+{ Two implicit conversions... ;-) }
+ else
+ begin
+ Result := S;
+ if Length (Result) > 0 then
+ begin
+ UniqueString (Result);
+ if DBCSLeadRangesEnd > 0 then
+ begin
+ I := 1;
+ while I <= Length (Result) do
+ begin
+ if IsDBCSLeadChar (Result [I]) then
+ Inc (I, 2)
+ else
+ begin
+ Result [I] := LowerChars [Result [I]];
+ Inc (I);
+ end;
+ end;
+ end
+ else
+ for I := 1 to Length (Result) do
+ Result [I] := LowerChars [Result [I]];
+ end;
+ end;
+end;
+
+
+function OS2CompareStrAnsiString (const S1, S2: AnsiString): PtrInt;
+var
+ I, MaxLen: PtrUInt;
+begin
+ if UniAPI then
+ Result := OS2CompareUnicodeString (S1, S2) (* implicit conversions *)
+ else
+(* Older OS/2 versions without Unicode support do not provide direct means *)
+(* for case sensitive and codepage and language-aware string comparison. *)
+(* We have to resort to manual comparison of the original strings together *)
+(* with strings translated using the case insensitive collation sequence. *)
+ begin
+ if Length (S1) = 0 then
+ begin
+ if Length (S2) = 0 then
+ Result := 0
+ else
+ Result := -1;
+ Exit;
+ end
+ else
+ if Length (S2) = 0 then
+ begin
+ Result := 1;
+ Exit;
+ end;
+ I := 1;
+ MaxLen := Length (S1);
+ if Length (S2) < MaxLen then
+ MaxLen := Length (S2);
+ repeat
+ if CollationSequence [S1 [I]] = CollationSequence [S2 [I]] then
+ begin
+ if S1 [I] < S2 [I] then
+ begin
+ Result := -1;
+ Exit;
+ end
+ else if S1 [I] > S2 [I] then
+ begin
+ Result := 1;
+ Exit;
+ end;
+ end
+ else
+ begin
+ if CollationSequence [S1 [I]] < CollationSequence [S2 [I]] then
+ Result := -1
+ else
+ Result := 1;
+ Exit;
+ end;
+ Inc (I);
+ until (I > MaxLen);
+ if Length (S2) > MaxLen then
+ Result := -1
+ else if Length (S1) > MaxLen then
+ Result := 1
+ else
+ Result := 0;
+ end;
+end;
+
+
+function OS2StrCompAnsiString (S1, S2: PChar): PtrInt;
+var
+ HSA1, HSA2: AnsiString;
+ HSU1, HSU2: UnicodeString;
+begin
+(* Do not call OS2CompareUnicodeString to skip scanning for #0. *)
+ HSA1 := AnsiString (S1);
+ HSA2 := AnsiString (S2);
+ if UniApi then
+ begin
+ HSU1 := HSA1; (* implicit conversion *)
+ HSU2 := HSA2; (* implicit conversion *)
+ Result := Sys_UniStrColl (DefLocObj, PWideChar (HSU1), PWideChar (HSU2));
+ if Result < -1 then
+ Result := -1
+ else if Result > 1 then
+ Result := 1;
+ end
+ else
+ Result := OS2CompareStrAnsiString (HSA1, HSA2);
+end;
+
+
+function OS2CompareTextAnsiString (const S1, S2: AnsiString): PtrInt;
+var
+ HSA1, HSA2: AnsiString;
+ I: PtrUInt;
+begin
+ if UniAPI then
+ Result := OS2CompareTextUnicodeString (S1, S2) (* implicit conversions *)
+ else
+ begin
+(* Let's use collation strings here as a fallback *)
+ SetLength (HSA1, Length (S1));
+ if Length (HSA1) > 0 then
+(* Using assembler would be much faster, but never mind... *)
+ for I := 1 to Length (HSA1) do
+ HSA1 [I] := CollationSequence [S1 [I]];
+{$WARNING Results of using collation sequence with DBCS not known/tested!}
+ SetLength (HSA2, Length (S2));
+ if Length (HSA2) > 0 then
+ for I := 1 to Length (HSA2) do
+ HSA2 [I] := CollationSequence [S2 [I]];
+ if HSA1 = HSA2 then
+ Result := 0
+ else if HSA1 < HSA2 then
+ Result := -1
+ else
+ Result := 1;
+ end;
+end;
+
+
+function OS2StrICompAnsiString (S1, S2: PChar): PtrInt;
+begin
+ Result := OS2CompareTextAnsiString (AnsiString (S1), AnsiString (S2));
+end;
+
+
+function OS2StrLCompAnsiString (S1, S2: PChar; MaxLen: PtrUInt): PtrInt;
+var
+ A, B: AnsiString;
+begin
+ if (MaxLen = 0) then
+ Exit (0);
+ SetLength (A, MaxLen);
+ Move (S1^, A [1], MaxLen);
+ SetLength (B, MaxLen);
+ Move (S2^, B [1], MaxLen);
+ Result := OS2CompareStrAnsiString (A, B);
+end;
+
+
+function OS2StrLICompAnsiString (S1, S2: PChar; MaxLen: PtrUInt): PtrInt;
+var
+ A, B: AnsiString;
+begin
+ if (MaxLen = 0) then
+ Exit (0);
+ SetLength (A, MaxLen);
+ Move (S1^, A [1], MaxLen);
+ SetLength (B, MaxLen);
+ Move (S2^, B [1], MaxLen);
+ Result := OS2CompareTextAnsiString (A, B);
+end;
+
+
+procedure FPC_RangeError; [external name 'FPC_RANGEERROR'];
+
+
+procedure Ansi2PChar (const S: AnsiString; const OrgP: PChar; out P: Pchar);
+var
+ NewLen: SizeUInt;
+begin
+ NewLen := Length (S);
+ if NewLen > StrLen (OrgP) then
+ FPC_RangeError;
+ P := OrgP;
+ if (NewLen > 0) then
+ Move (S [1], P [0], NewLen);
+ P [NewLen] := #0;
+end;
+
+
+function OS2StrUpperAnsiString (Str: PChar): PChar;
+var
+ Temp: AnsiString;
+begin
+ Temp := OS2UpperAnsiString (Str);
+ Ansi2PChar (Temp, Str, Result);
+end;
+
+
+function OS2StrLowerAnsiString (Str: PChar): PChar;
+var
+ Temp: AnsiString;
+begin
+ Temp := OS2LowerAnsiString (Str);
+ Ansi2PChar (Temp, Str, Result);
+end;
+
+
+(*
+CWSTRING:
+{ return value: number of code points in the string. Whenever an invalid
+ code point is encountered, all characters part of this invalid code point
+ are considered to form one "character" and the next character is
+ considered to be the start of a new (possibly also invalid) code point }
+function CharLengthPChar(const Str: PChar): PtrInt;
+ var
+ nextlen: ptrint;
+ s: pchar;
+{$ifndef beos}
+ mbstate: mbstate_t;
+{$endif not beos}
+ begin
+ result:=0;
+ s:=str;
+{$ifndef beos}
+ fillchar(mbstate,sizeof(mbstate),0);
+{$endif not beos}
+ repeat
+{$ifdef beos}
+ nextlen:=ptrint(mblen(s,MB_CUR_MAX));
+{$else beos}
+ nextlen:=ptrint(mbrlen(s,MB_CUR_MAX,@mbstate));
+{$endif beos}
+ { skip invalid/incomplete sequences }
+ if (nextlen<0) then
+ nextlen:=1;
+ inc(result,1);
+ inc(s,nextlen);
+ until (nextlen=0);
+ end;
+
+
+function CodePointLength(const Str: PChar; maxlookahead: ptrint): PtrInt;
+ var
+ nextlen: ptrint;
+{$ifndef beos}
+ mbstate: mbstate_t;
+{$endif not beos}
+ begin
+{$ifdef beos}
+ result:=ptrint(mblen(str,maxlookahead));
+{$else beos}
+ fillchar(mbstate,sizeof(mbstate),0);
+ result:=ptrint(mbrlen(str,maxlookahead,@mbstate));
+ { mbrlen can also return -2 for "incomplete but potially valid character
+ and data has been processed" }
+ if result<0 then
+ result:=-1;
+{$endif beos}
+ end;
+*)
+
+procedure InitOS2WideStringManager; inline;
+var
+ RC: cardinal;
+ ErrName: array [0..MaxPathLen] of char;
+ P: pointer;
+begin
+ RC := DosLoadModule (@ErrName [0], SizeOf (ErrName), @UConvName [0],
+ UConvHandle);
+ if RC = 0 then
+ begin
+ RC := DosQueryProcAddr (UConvHandle, OrdUniCreateUConvObject, nil, P);
+ if RC = 0 then
+ begin
+ Sys_UniCreateUConvObject := TUniCreateUConvObject (P);
+ RC := DosQueryProcAddr (UConvHandle, OrdUniMapCpToUcsCp, nil, P);
+ if RC = 0 then
+ begin
+ Sys_UniMapCpToUcsCp := TUniMapCpToUcsCp (P);
+ RC := DosQueryProcAddr (UConvHandle, OrdUniFreeUConvObject, nil, P);
+ if RC = 0 then
+ begin
+ Sys_UniFreeUConvObject := TUniFreeUConvObject (P);
+ RC := DosQueryProcAddr (UConvHandle, OrdUniUConvFromUcs, nil, P);
+ if RC = 0 then
+ begin
+ Sys_UniUConvFromUcs := TUniUConvFromUcs (P);
+ RC := DosQueryProcAddr (UConvHandle, OrdUniUConvToUcs, nil, P);
+ if RC = 0 then
+ begin
+ Sys_UniUConvToUcs := TUniUConvToUcs (P);
+
+ RC := DosLoadModule (@ErrName [0], SizeOf (ErrName),
+ @LibUniName [0], LibUniHandle);
+ if RC = 0 then
+ begin
+ RC := DosQueryProcAddr (LibUniHandle, OrdUniToLower, nil, P);
+ if RC = 0 then
+ begin
+ Sys_UniToLower := TUniToLower (P);
+ RC := DosQueryProcAddr (LibUniHandle, OrdUniToUpper, nil, P);
+ if RC = 0 then
+ begin
+ Sys_UniToUpper := TUniToUpper (P);
+ RC := DosQueryProcAddr (LibUniHandle, OrdUniStrColl, nil,
+ P);
+ if RC = 0 then
+ begin
+ Sys_UniStrColl := TUniStrColl (P);
+ RC := DosQueryProcAddr (LibUniHandle,
+ OrdUniCreateLocaleObject, nil, P);
+ if RC = 0 then
+ begin
+ Sys_UniCreateLocaleObject := TUniCreateLocaleObject
+ (P);
+ RC := DosQueryProcAddr (LibUniHandle,
+ OrdUniFreeLocaleObject, nil, P);
+ if RC = 0 then
+ begin
+ Sys_UniFreeLocaleObject := TUniFreeLocaleObject (P);
+
+ UniAPI := true;
+ end;
+ end;
+ end;
+ end;
+ end;
+ end;
+ end;
+ end;
+ end;
+ end;
+ end;
+ end;
+ if RC <> 0 then
+ OSErrorWatch (RC);
+ if not (UniAPI) then
+ begin
+ Sys_UniCreateUConvObject := @DummyUniCreateUConvObject;
+ Sys_UniMapCpToUcsCp := @DummyUniMapCpToUcsCp;
+ Sys_UniFreeUConvObject := @DummyUniFreeUConvObject;
+ Sys_UniUConvFromUcs := @DummyUniUConvFromUcs;
+ Sys_UniUConvToUcs := @DummyUniUConvToUcs;
+ Sys_UniToLower := @DummyUniToLower;
+ Sys_UniToUpper := @DummyUniToUpper;
+ Sys_UniStrColl := @DummyUniStrColl;
+ Sys_UniCreateLocaleObject := @DummyUniCreateLocaleObject;
+ Sys_UniFreeLocaleObject := @DummyUniFreeLocaleObject;
+ InitDummyAnsiSupport;
+ end;
+
+ { Widestring }
+ WideStringManager.Wide2AnsiMoveProc := @OS2Unicode2AnsiMove;
+ WideStringManager.Ansi2WideMoveProc := @OS2Ansi2UnicodeMove;
+ WideStringManager.UpperWideStringProc := @OS2UpperUnicodeString;
+ WideStringManager.LowerWideStringProc := @OS2LowerUnicodeString;
+ WideStringManager.CompareWideStringProc := @OS2CompareUnicodeString;
+ WideStringManager.CompareTextWideStringProc := @OS2CompareTextUnicodeString;
+ { Unicode }
+ WideStringManager.Unicode2AnsiMoveProc := @OS2Unicode2AnsiMove;
+ WideStringManager.Ansi2UnicodeMoveProc := @OS2Ansi2UnicodeMove;
+ WideStringManager.UpperUnicodeStringProc := @OS2UpperUnicodeString;
+ WideStringManager.LowerUnicodeStringProc := @OS2LowerUnicodeString;
+ WideStringManager.CompareUnicodeStringProc := @OS2CompareUnicodeString;
+ WideStringManager.CompareTextUnicodeStringProc :=
+ @OS2CompareTextUnicodeString;
+ { Codepage }
+ WideStringManager.GetStandardCodePageProc := @OS2GetStandardCodePage;
+(*
+ CharLengthPCharProc:=@CharLengthPChar;
+ CodePointLengthProc:=@CodePointLength;
+*)
+ WideStringManager.UpperAnsiStringProc := @OS2UpperAnsiString;
+ WideStringManager.LowerAnsiStringProc := @OS2LowerAnsiString;
+ WideStringManager.CompareStrAnsiStringProc := @OS2CompareStrAnsiString;
+ WideStringManager.CompareTextAnsiStringProc := @OS2CompareTextAnsiString;
+ WideStringManager.StrCompAnsiStringProc := @OS2StrCompAnsiString;
+ WideStringManager.StrICompAnsiStringProc := @OS2StrICompAnsiString;
+ WideStringManager.StrLCompAnsiStringProc := @OS2StrLCompAnsiString;
+ WideStringManager.StrLICompAnsiStringProc := @OS2StrLICompAnsiString;
+ WideStringManager.StrLowerAnsiStringProc := @OS2StrLowerAnsiString;
+ WideStringManager.StrUpperAnsiStringProc := @OS2StrUpperAnsiString;
+end;
diff --git a/rtl/os2/sysutils.pp b/rtl/os2/sysutils.pp
index 20bb39b516..80a94a4119 100644
--- a/rtl/os2/sysutils.pp
+++ b/rtl/os2/sysutils.pp
@@ -23,6 +23,7 @@ interface
{$H+}
{$DEFINE HAS_SLEEP}
+{$DEFINE HAS_OSERROR}
{ used OS file system APIs use ansistring }
{$define SYSUTILS_HAS_ANSISTR_FILEUTIL_IMPL}
@@ -43,6 +44,9 @@ type
(* Necessary here due to a different definition of TDateTime in DosCalls. *)
TDateTime = System.TDateTime;
+threadvar
+ LastOSError: cardinal;
+
{$DEFINE FPC_FEXPAND_UNC} (* UNC paths are supported *)
{$DEFINE FPC_FEXPAND_DRIVES} (* Full paths begin with drive specification *)
{$DEFINE FPC_FEXPAND_GETENV_PCHAR}
@@ -83,8 +87,11 @@ begin
If Rc=0 then
FileOpen:=Handle
else
+ begin
FileOpen:=feInvalidHandle; //FileOpen:=-RC;
//should return feInvalidHandle(=-1) if fail, other negative returned value are no more errors
+ OSErrorWatch (RC);
+ end;
end;
function FileCreate (const FileName: RawByteString): THandle;
@@ -115,56 +122,84 @@ begin
if RC = 0 then
FileCreate := Handle
else
- FileCreate := feInvalidHandle;
+ begin
+ FileCreate := feInvalidHandle;
+ OSErrorWatch (RC);
+ end;
End;
function FileRead (Handle: THandle; Out Buffer; Count: longint): longint;
Var
T: cardinal;
+ RC: cardinal;
begin
- DosRead(Handle, Buffer, Count, T);
+ RC := DosRead (Handle, Buffer, Count, T);
FileRead := longint (T);
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
function FileWrite (Handle: THandle; const Buffer; Count: longint): longint;
Var
T: cardinal;
+ RC: cardinal;
begin
- DosWrite (Handle, Buffer, Count, T);
+ RC := DosWrite (Handle, Buffer, Count, T);
FileWrite := longint (T);
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
function FileSeek (Handle: THandle; FOffset, Origin: longint): longint;
var
NPos: int64;
+ RC: cardinal;
begin
- if (Sys_DosSetFilePtrL (Handle, FOffset, Origin, NPos) = 0)
- and (NPos < high (longint)) then
+ RC := Sys_DosSetFilePtrL (Handle, FOffset, Origin, NPos);
+ if (RC = 0) and (NPos < high (longint)) then
FileSeek:= longint (NPos)
else
+ begin
FileSeek:=-1;
+ OSErrorWatch (RC);
+ end;
end;
function FileSeek (Handle: THandle; FOffset: Int64; Origin: Longint): Int64;
var
NPos: int64;
+ RC: cardinal;
begin
- if Sys_DosSetFilePtrL (Handle, FOffset, Origin, NPos) = 0 then
+ RC := Sys_DosSetFilePtrL (Handle, FOffset, Origin, NPos);
+ if RC = 0 then
FileSeek:= NPos
else
+ begin
FileSeek:=-1;
+ OSErrorWatch (RC);
+ end;
end;
procedure FileClose (Handle: THandle);
+var
+ RC: cardinal;
begin
- DosClose(Handle);
+ RC := DosClose (Handle);
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
function FileTruncate (Handle: THandle; Size: Int64): boolean;
+var
+ RC: cardinal;
begin
- FileTruncate:=Sys_DosSetFileSizeL(Handle, Size)=0;
- FileSeek(Handle, 0, 2);
+ RC := Sys_DosSetFileSizeL(Handle, Size);
+ FileTruncate := RC = 0;
+ if RC = 0 then
+ FileSeek(Handle, 0, 2)
+ else
+ OSErrorWatch (RC);
end;
function FileAge (const FileName: RawByteString): longint;
@@ -222,7 +257,9 @@ begin
else
Err := DosFindFirst (PChar (SystemEncodedPath), Rslt.FindHandle,
Attr and FindResvdMask, FStat, SizeOf (FStat^), Count, ilStandard);
- if (Err = 0) and (Count = 0) then
+ if Err <> 0 then
+ OSErrorWatch (Err)
+ else if Count = 0 then
Err := 18;
InternalFindFirst := -Err;
if Err = 0 then
@@ -261,7 +298,9 @@ begin
New (FStat);
Count := 1;
Err := DosFindNext (Rslt.FindHandle, FStat, SizeOf (FStat^), Count);
- if (Err = 0) and (Count = 0) then
+ if Err <> 0 then
+ OSErrorWatch (Err)
+ else if Count = 0 then
Err := 18;
InternalFindNext := -Err;
if Err = 0 then
@@ -290,9 +329,12 @@ end;
Procedure InternalFindClose(var Handle: THandle);
var
SR: PSearchRec;
+ RC: cardinal;
begin
- DosFindClose (Handle);
+ RC := DosFindClose (Handle);
Handle := 0;
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
function FileGetDate (Handle: THandle): longint;
@@ -308,7 +350,10 @@ begin
if Time = 0 then
Time := FStat.TimeCreation + longint (FStat.DateCreation) shl 16;
end else
+ begin
Time:=0;
+ OSErrorWatch (RC);
+ end;
FileGetDate:=Time;
end;
@@ -320,19 +365,25 @@ begin
New (FStat);
RC := DosQueryFileInfo (Handle, ilStandard, FStat, SizeOf (FStat^));
if RC <> 0 then
- FileSetDate := -1
+ begin
+ FileSetDate := -1;
+ OSErrorWatch (RC);
+ end
else
- begin
+ begin
FStat^.DateLastAccess := Hi (Age);
FStat^.DateLastWrite := Hi (Age);
FStat^.TimeLastAccess := Lo (Age);
FStat^.TimeLastWrite := Lo (Age);
RC := DosSetFileInfo (Handle, ilStandard, FStat, SizeOf (FStat^));
if RC <> 0 then
- FileSetDate := -1
+ begin
+ FileSetDate := -1;
+ OSErrorWatch (RC);
+ end
else
- FileSetDate := 0;
- end;
+ FileSetDate := 0;
+ end;
Dispose (FStat);
end;
@@ -340,11 +391,18 @@ function FileGetAttr (const FileName: RawByteString): longint;
var
FS: PFileStatus3;
SystemFileName: RawByteString;
+ RC: cardinal;
begin
SystemFileName:=ToSingleByteFileSystemEncodedFileName(Filename);
New(FS);
- Result:=-DosQueryPathInfo(PChar (SystemFileName), ilStandard, FS, SizeOf(FS^));
- If Result=0 Then Result:=FS^.attrFile;
+ RC := DosQueryPathInfo(PChar (SystemFileName), ilStandard, FS, SizeOf(FS^));
+ if RC = 0 then
+ Result := FS^.AttrFile
+ else
+ begin
+ Result := - longint (RC);
+ OSErrorWatch (RC);
+ end;
Dispose(FS);
end;
@@ -352,12 +410,16 @@ function FileSetAttr (const Filename: RawByteString; Attr: longint): longint;
Var
FS: PFileStatus3;
SystemFileName: RawByteString;
+ RC: cardinal;
Begin
SystemFileName:=ToSingleByteFileSystemEncodedFileName(Filename);
New(FS);
FillChar(FS, SizeOf(FS^), 0);
FS^.AttrFile:=Attr;
- Result:=-DosSetPathInfo(PChar (SystemFileName), ilStandard, FS, SizeOf(FS^), 0);
+ RC := DosSetPathInfo(PChar (SystemFileName), ilStandard, FS, SizeOf(FS^), 0);
+ if RC <> 0 then
+ OSErrorWatch (RC);
+ Result := - longint (RC);
Dispose(FS);
end;
@@ -365,18 +427,34 @@ end;
function DeleteFile (const FileName: RawByteString): boolean;
var
SystemFileName: RawByteString;
+ RC: cardinal;
Begin
SystemFileName:=ToSingleByteFileSystemEncodedFileName(Filename);
- Result:=(DosDelete(PChar (SystemFileName))=0);
+ RC := DosDelete (PChar (SystemFileName));
+ if RC <> 0 then
+ begin
+ Result := false;
+ OSErrorWatch (RC);
+ end
+ else
+ Result := true;
End;
function RenameFile (const OldName, NewName: RawByteString): boolean;
var
OldSystemFileName, NewSystemFileName: RawByteString;
+ RC: cardinal;
Begin
OldSystemFileName:=ToSingleByteFileSystemEncodedFileName(OldName);
NewSystemFileName:=ToSingleByteFileSystemEncodedFileName(NewName);
- Result:=(DosMove(PChar (OldSystemFileName), PChar (NewSystemFileName))=0);
+ RC := DosMove (PChar (OldSystemFileName), PChar (NewSystemFileName));
+ if RC <> 0 then
+ begin
+ Result := false;
+ OSErrorWatch (RC);
+ end
+ else
+ Result := true;
End;
{****************************************************************************
@@ -389,13 +467,16 @@ var FI: TFSinfo;
RC: cardinal;
begin
- {In OS/2, we use the filesystem information.}
- RC := DosQueryFSInfo (Drive, 1, FI, SizeOf (FI));
- if RC = 0 then
- DiskFree := int64 (FI.Free_Clusters) *
+ {In OS/2, we use the filesystem information.}
+ RC := DosQueryFSInfo (Drive, 1, FI, SizeOf (FI));
+ if RC = 0 then
+ DiskFree := int64 (FI.Free_Clusters) *
int64 (FI.Sectors_Per_Cluster) * int64 (FI.Bytes_Per_Sector)
- else
- DiskFree := -1;
+ else
+ begin
+ DiskFree := -1;
+ OSErrorWatch (RC);
+ end;
end;
function DiskSize (Drive: byte): int64;
@@ -404,13 +485,16 @@ var FI: TFSinfo;
RC: cardinal;
begin
- {In OS/2, we use the filesystem information.}
- RC := DosQueryFSinfo (Drive, 1, FI, SizeOf (FI));
- if RC = 0 then
- DiskSize := int64 (FI.Total_Clusters) *
+ {In OS/2, we use the filesystem information.}
+ RC := DosQueryFSinfo (Drive, 1, FI, SizeOf (FI));
+ if RC = 0 then
+ DiskSize := int64 (FI.Total_Clusters) *
int64 (FI.Sectors_Per_Cluster) * int64 (FI.Bytes_Per_Sector)
- else
- DiskSize := -1;
+ else
+ begin
+ DiskSize := -1;
+ OSErrorWatch (RC);
+ end;
end;
@@ -469,17 +553,21 @@ end;
procedure sysbeep;
begin
- // Maybe implement later on ?
-
+ DosBeep (800, 250);
end;
{****************************************************************************
Locale Functions
****************************************************************************}
+var
+ Country: TCountryCode;
+ CtryInfo: TCountryInfo;
+
procedure InitAnsi;
-var I: byte;
- Country: TCountryCode;
+var
+ I: byte;
+ RC: cardinal;
begin
for I := 0 to 255 do
UpperCaseTable [I] := Chr (I);
@@ -493,46 +581,63 @@ end;
procedure InitInternational;
-var Country: TCountryCode;
- CtryInfo: TCountryInfo;
- Size: cardinal;
- RC: cardinal;
+var
+ Size: cardinal;
+ RC: cardinal;
begin
- Size := 0;
- FillChar (Country, SizeOf (Country), 0);
- FillChar (CtryInfo, SizeOf (CtryInfo), 0);
- RC := DosQueryCtryInfo (SizeOf (CtryInfo), Country, CtryInfo, Size);
- if RC = 0 then
- begin
- DateSeparator := CtryInfo.DateSeparator;
- case CtryInfo.DateFormat of
- 1: begin
- ShortDateFormat := 'd/m/y';
- LongDateFormat := 'dd" "mmmm" "yyyy';
- end;
- 2: begin
- ShortDateFormat := 'y/m/d';
- LongDateFormat := 'yyyy" "mmmm" "dd';
- end;
- 3: begin
- ShortDateFormat := 'm/d/y';
- LongDateFormat := 'mmmm" "dd" "yyyy';
- end;
- end;
- TimeSeparator := CtryInfo.TimeSeparator;
- DecimalSeparator := CtryInfo.DecimalSeparator;
- ThousandSeparator := CtryInfo.ThousandSeparator;
- CurrencyFormat := CtryInfo.CurrencyFormat;
- CurrencyString := PChar (CtryInfo.CurrencyUnit);
+ Size := 0;
+ FillChar (Country, SizeOf (Country), 0);
+ FillChar (CtryInfo, SizeOf (CtryInfo), 0);
+ RC := DosQueryCtryInfo (SizeOf (CtryInfo), Country, CtryInfo, Size);
+ if RC = 0 then
+ begin
+ DateSeparator := CtryInfo.DateSeparator;
+ case CtryInfo.DateFormat of
+ 1: begin
+ ShortDateFormat := 'd/m/y';
+ LongDateFormat := 'dd" "mmmm" "yyyy';
+ end;
+ 2: begin
+ ShortDateFormat := 'y/m/d';
+ LongDateFormat := 'yyyy" "mmmm" "dd';
end;
- InitAnsi;
- InitInternationalGeneric;
+ 3: begin
+ ShortDateFormat := 'm/d/y';
+ LongDateFormat := 'mmmm" "dd" "yyyy';
+ end;
+ end;
+ TimeSeparator := CtryInfo.TimeSeparator;
+ DecimalSeparator := CtryInfo.DecimalSeparator;
+ ThousandSeparator := CtryInfo.ThousandSeparator;
+ CurrencyFormat := CtryInfo.CurrencyFormat;
+ CurrencyString := PChar (CtryInfo.CurrencyUnit);
+ end
+ else
+ OSErrorWatch (RC);
+ InitAnsi;
+ InitInternationalGeneric;
end;
function SysErrorMessage(ErrorCode: Integer): String;
-
+const
+ SysMsgFile: array [0..10] of char = 'OSO001.MSG'#0;
+var
+ OutBuf: array [0..999] of char;
+ RetMsgSize: cardinal;
+ RC: cardinal;
begin
- Result:=Format(SUnknownErrorCode,[ErrorCode]);
+ RC := DosGetMessage (nil, 0, @OutBuf [0], SizeOf (OutBuf),
+ ErrorCode, @SysMsgFile [0], RetMsgSize);
+ if RC = 0 then
+ begin
+ SetLength (Result, RetMsgSize);
+ Move (OutBuf [0], Result [1], RetMsgSize);
+ end
+ else
+ begin
+ Result:=Format(SUnknownErrorCode,[ErrorCode]);
+ OSErrorWatch (RC);
+ end;
end;
@@ -648,9 +753,10 @@ var
ObjName: shortstring;
RC: cardinal;
ExecAppType: cardinal;
+ MaxArgsSize: PtrUInt; (* Amount of memory reserved for arguments in bytes. *)
+ MaxArgsSizeInc: word;
const
- MaxArgsSize = 3072; (* Amount of memory reserved for arguments in bytes. *)
ObjBufSize = 512;
function StartSession: cardinal;
@@ -687,7 +793,10 @@ begin
SD.ObjectBuffLen := ObjBufSize;
RC := DosCreateQueue (HQ, quFIFO or quConvert_Address, @QName [1]);
if RC <> 0 then
- Move (QName [1], ObjNameBuf^, Length (QName))
+ begin
+ Move (QName [1], ObjNameBuf^, Length (QName));
+ OSErrorWatch (RC);
+ end
else
begin
RC := DosStartSession (SD, SID, PID);
@@ -697,15 +806,28 @@ begin
if RC = 0 then
begin
Result := PCI^.Return;
- DosCloseQueue (HQ);
- DosFreeMem (PCI);
+ RC := DosCloseQueue (HQ);
+ if RC <> 0 then
+ OSErrorWatch (RC);
+ RC := DosFreeMem (PCI);
+ if RC <> 0 then
+ OSErrorWatch (RC);
FreeMem (ObjNameBuf, ObjBufSize);
end
else
- DosCloseQueue (HQ);
+ begin
+ OSErrorWatch (RC);
+ RC := DosCloseQueue (HQ);
+ OSErrorWatch (RC);
+ end;
end
else
- DosCloseQueue (HQ);
+ begin
+ OSErrorWatch (RC);
+ RC := DosCloseQueue (HQ);
+ if RC <> 0 then
+ OSErrorWatch (RC);
+ end;
end;
end;
@@ -715,52 +837,68 @@ begin
GetMem (ObjNameBuf, ObjBufSize);
FillChar (ObjNameBuf^, ObjBufSize, 0);
- if (DosQueryAppType (PChar (Path), ExecAppType) = 0) and
- (ApplicationType and 3 = ExecAppType and 3) then
-(* DosExecPgm should work... *)
+ RC := DosQueryAppType (PChar (Path), ExecAppType);
+ if RC <> 0 then
begin
- if ComLine = '' then
- begin
- Args0 := nil;
- Args := nil;
- end
- else
+ OSErrorWatch (RC);
+ if (RC = 190) or (RC = 191) then
+ Result := StartSession;
+ end
+ else
+ begin
+ if (ApplicationType and 3 = ExecAppType and 3) then
+(* DosExecPgm should work... *)
begin
- GetMem (Args0, MaxArgsSize);
- Args := Args0;
+ MaxArgsSize := Length (ComLine) + Length (Path) + 256; (* More than enough *)
+ if MaxArgsSize > high (word) then
+ Exit;
+ if ComLine = '' then
+ begin
+ Args0 := nil;
+ Args := nil;
+ end
+ else
+ begin
+ GetMem (Args0, MaxArgsSize);
+ Args := Args0;
(* Work around a bug in OS/2 - argument to DosExecPgm *)
(* should not cross 64K boundary. *)
- if ((PtrUInt (Args) + 1024) and $FFFF) < 1024 then
- Inc (pointer (Args), 1024);
- ArgSize := 0;
- Move (Path [1], Args^ [ArgSize], Length (Path));
- Inc (ArgSize, Length (Path));
- Args^ [ArgSize] := 0;
- Inc (ArgSize);
- {Now do the real arguments.}
- Move (ComLine [1], Args^ [ArgSize], Length (ComLine));
- Inc (ArgSize, Length (ComLine));
- Args^ [ArgSize] := 0;
- Inc (ArgSize);
- Args^ [ArgSize] := 0;
- end;
- Res.ExitCode := $FFFFFFFF;
- RC := DosExecPgm (ObjNameBuf, ObjBufSize, 0, Args, nil, Res, PChar (Path));
- if Args0 <> nil then
- FreeMem (Args0, MaxArgsSize);
- if RC = 0 then
- begin
- Result := Res.ExitCode;
- FreeMem (ObjNameBuf, ObjBufSize);
+ while ((PtrUInt (Args) + MaxArgsSize) and $FFFF) < MaxArgsSize do
+ begin
+ MaxArgsSizeInc := MaxArgsSize -
+ ((PtrUInt (Args) + MaxArgsSize) and $FFFF);
+ Inc (MaxArgsSize, MaxArgsSizeInc);
+ if MaxArgsSize > high (word) then
+ Exit;
+ ReallocMem (Args0, MaxArgsSize);
+ Inc (pointer (Args), MaxArgsSizeInc);
+ end;
+ ArgSize := 0;
+ Move (Path [1], Args^ [ArgSize], Length (Path));
+ Inc (ArgSize, Length (Path));
+ Args^ [ArgSize] := 0;
+ Inc (ArgSize);
+ {Now do the real arguments.}
+ Move (ComLine [1], Args^ [ArgSize], Length (ComLine));
+ Inc (ArgSize, Length (ComLine));
+ Args^ [ArgSize] := 0;
+ Inc (ArgSize);
+ Args^ [ArgSize] := 0;
+ end;
+ Res.ExitCode := $FFFFFFFF;
+ RC := DosExecPgm (ObjNameBuf, ObjBufSize, 0, Args, nil, Res,
+ PChar (Path));
+ if RC <> 0 then
+ OSErrorWatch (RC);
+ if Args0 <> nil then
+ FreeMem (Args0, MaxArgsSize);
+ if RC = 0 then
+ begin
+ Result := Res.ExitCode;
+ FreeMem (ObjNameBuf, ObjBufSize);
+ end
end
- else
- begin
- if (RC = 190) or (RC = 191) then
- Result := StartSession;
- end;
- end
- else
- Result := StartSession;
+ end;
if RC <> 0 then
begin
ObjName := StrPas (ObjNameBuf);
@@ -805,16 +943,30 @@ begin
GetTickCount := L;
end;
-
function GetTickCount64: QWord;
var
- L: cardinal;
+ Freq2: cardinal;
+ T: QWord;
begin
- DosQuerySysInfo (svMsCount, svMsCount, L, 4);
- GetTickCount64 := L;
+ DosTmrQueryFreq (Freq2);
+ DosTmrQueryTime (T);
+ GetTickCount64 := T div (QWord (Freq2) div 1000);
+{$NOTE GetTickCount64 takes 20 microseconds on 1GHz CPU, GetTickCount not measurable}
end;
+const
+ OrigOSErrorWatch: TOSErrorWatch = nil;
+
+procedure TrackLastOSError (Error: cardinal);
+begin
+ LastOSError := Error;
+ OrigOSErrorWatch (Error);
+end;
+function GetLastOSError: Integer;
+begin
+ GetLastOSError := Integer (LastOSError);
+end;
{****************************************************************************
Initialization code
@@ -824,6 +976,8 @@ Initialization
InitExceptions; { Initialize exceptions. OS independent }
InitInternational; { Initialize internationalization settings }
OnBeep:=@SysBeep;
+ LastOSError := 0;
+ OrigOSErrorWatch := TOSErrorWatch (SetOSErrorTracking (@TrackLastOSError));
Finalization
DoneExceptions;
end.
diff --git a/rtl/os2/tthread.inc b/rtl/os2/tthread.inc
index 7cc4c751fc..ece7c3dc49 100644
--- a/rtl/os2/tthread.inc
+++ b/rtl/os2/tthread.inc
@@ -166,13 +166,16 @@ procedure TThread.SetPriority(Value: TThreadPriority);
var
PTIB: PThreadInfoBlock;
PPIB: PProcessInfoBlock;
+ RC: cardinal;
begin
DosGetInfoBlocks (@PTIB, @PPIB);
(*
PTIB^.TIB2^.Priority := Priorities [Value];
*)
- DosSetPriority (2, High (Priorities [Value]),
+ RC := DosSetPriority (2, High (Priorities [Value]),
Low (Priorities [Value]) - PTIB^.TIB2^.Priority, FHandle);
+ if RC <> 0 then
+ OSErrorWatch (RC);
end;
@@ -213,9 +216,13 @@ end;
function TThread.WaitFor: Integer;
var
FH: cardinal;
+ RC: cardinal;
begin
if GetCurrentThreadID = MainThreadID then
while not (FFinished) do
CheckSynchronize (1000);
- WaitFor := DosWaitThread (FH, dtWait);
+ RC := DosWaitThread (FH, dtWait);
+ if RC <> 0 then
+ OSErrorWatch (RC);
+ WaitFor := RC;
end;
diff --git a/rtl/palmos/Makefile b/rtl/palmos/Makefile
index 1d59af8bb3..3eecda39bc 100644
--- a/rtl/palmos/Makefile
+++ b/rtl/palmos/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -409,6 +409,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings lnfodwrf lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes fmtbcd strutils convutils math dateutils varutils variants matrix ucomplex charset cpall getopts winsock sockets
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings lnfodwrf lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes fmtbcd strutils convutils math dateutils varutils variants matrix ucomplex charset cpall getopts winsock sockets
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings lnfodwrf lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes fmtbcd strutils convutils math dateutils varutils variants matrix ucomplex charset cpall getopts winsock sockets
endif
@@ -496,6 +499,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings lnfodwrf lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes fmtbcd strutils convutils math dateutils varutils variants matrix ucomplex charset cpall getopts winsock sockets
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings lnfodwrf lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes fmtbcd strutils convutils math dateutils varutils variants matrix ucomplex charset cpall getopts winsock sockets
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar ctypes objpas macpas iso7185 strings lnfodwrf lineinfo heaptrc windows messages dynlibs dos objects rtlconsts sysconst sysutils typinfo types fgl classes fmtbcd strutils convutils math dateutils varutils variants matrix ucomplex charset cpall getopts winsock sockets
endif
@@ -634,6 +640,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -721,6 +730,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -859,6 +871,9 @@ 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
@@ -946,6 +961,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1085,6 +1103,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
endif
@@ -1172,6 +1193,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/palmos
endif
@@ -1310,6 +1334,9 @@ 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
@@ -1397,6 +1424,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1708,6 +1738,12 @@ 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=
@@ -1753,6 +1789,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2217,7 +2258,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/qnx/Makefile b/rtl/qnx/Makefile
index 3a3d424224..d833561c83 100644
--- a/rtl/qnx/Makefile
+++ b/rtl/qnx/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-03-19 rev 27188]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -414,6 +414,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=system uuchar dos objpas objects strings sysutils typinfo math cpu mmx getopts heaptrc lineinfo posix
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=system uuchar dos objpas objects strings sysutils typinfo math cpu mmx getopts heaptrc lineinfo posix
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=system uuchar dos objpas objects strings sysutils typinfo math cpu mmx getopts heaptrc lineinfo posix
endif
@@ -501,6 +504,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=system uuchar dos objpas objects strings sysutils typinfo math cpu mmx getopts heaptrc lineinfo posix
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=system uuchar dos objpas objects strings sysutils typinfo math cpu mmx getopts heaptrc lineinfo posix
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=system uuchar dos objpas objects strings sysutils typinfo math cpu mmx getopts heaptrc lineinfo posix
endif
@@ -639,6 +645,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=cprt0 crti crtn
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=cprt0 crti crtn
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=cprt0 crti crtn
endif
@@ -726,6 +735,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=cprt0 crti crtn
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=cprt0 crti crtn
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=cprt0 crti crtn
endif
@@ -864,6 +876,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo
endif
@@ -951,6 +966,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo
endif
@@ -1090,6 +1108,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
endif
@@ -1177,6 +1198,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
endif
@@ -1315,6 +1339,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
endif
@@ -1402,6 +1429,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(POSIXINC) $(SYSCALLINC)
endif
@@ -1540,6 +1570,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -1627,6 +1660,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_TARGETDIR+=.
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_TARGETDIR+=.
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_TARGETDIR+=.
endif
@@ -1938,6 +1974,12 @@ 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=
@@ -1983,6 +2025,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2447,7 +2494,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2477,17 +2524,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_loaders
ifneq ($(TARGET_LOADERS),)
override ALLTARGET+=fpc_loaders
diff --git a/rtl/solaris/Makefile b/rtl/solaris/Makefile
index 207e475c42..7227760cf8 100644
--- a/rtl/solaris/Makefile
+++ b/rtl/solaris/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -354,229 +354,235 @@ ifndef USELIBGGI
USELIBGGI=NO
endif
ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i386-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),arm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),mips-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),mipsel-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),jvm-java)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),jvm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos fpwidestring cwstring fpintres $(CPU_UNITS)
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math fgl classes charset cpall getopts errors dl dynlibs types sysconst character rtlconsts cthreads dos cwstring fpintres $(CPU_UNITS)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas heaptrc lineinfo lnfodwrf baseunix unixutil unixcp termio unix initc cmem sysutils typinfo math 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 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
@@ -647,6 +653,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -734,6 +743,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -872,6 +884,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo classes sysconst rtlconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo classes sysconst rtlconst
endif
@@ -959,6 +974,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo classes sysconst rtlconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo classes sysconst rtlconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo classes sysconst rtlconst
endif
@@ -1098,6 +1116,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
endif
@@ -1185,6 +1206,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(OSPROCINC)
endif
@@ -1323,6 +1347,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
endif
@@ -1410,6 +1437,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(UNIXINC) $(COMMON)
endif
@@ -1721,6 +1751,12 @@ 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=
@@ -1766,6 +1802,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2230,7 +2271,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2703,6 +2744,8 @@ lnfodwrf$(PPUEXT) : $(INC)/lnfodwrf.pp $(SYSTEMUNIT)$(PPUEXT)
charset$(PPUEXT) : $(INC)/charset.pp objpas$(PPUEXT)
cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) charset$(PPUEXT)
$(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas
+fpwidestring$(PPUEXT): $(OBJPASDIR)/fpwidestring.pp character$(PPUEXT) unixcp$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/fpwidestring.pp
errors$(PPUEXT) : errors.pp strings$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
dynlibs$(PPUEXT) : $(INC)/dynlibs.pas $(UNIXINC)/dynlibs.inc dl$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
termio$(PPUEXT) : termio.pp unixtype$(PPUEXT) baseunix$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
diff --git a/rtl/solaris/Makefile.fpc b/rtl/solaris/Makefile.fpc
index 012cc6fc4d..d5e1581585 100644
--- a/rtl/solaris/Makefile.fpc
+++ b/rtl/solaris/Makefile.fpc
@@ -17,7 +17,7 @@ units=$(SYSTEMUNIT) uuchar unixtype ctypes strings objpas iso7185 macpas \
dl dynlibs \
types sysconst character \
rtlconsts cthreads \
- dos \
+ dos fpwidestring \
cwstring fpintres $(CPU_UNITS)
implicitunits=exeinfo \
@@ -232,6 +232,9 @@ charset$(PPUEXT) : $(INC)/charset.pp objpas$(PPUEXT)
cpall$(PPUEXT): $(RTL)/charmaps/cpall.pas system$(PPUEXT) charset$(PPUEXT)
$(COMPILER) -Fu$(INC) -Fi$(RTL)/charmaps $(RTL)/charmaps/cpall.pas
+fpwidestring$(PPUEXT): $(OBJPASDIR)/fpwidestring.pp character$(PPUEXT) unixcp$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/fpwidestring.pp
+
#
# Other system-dependent RTL Units
#
diff --git a/rtl/solaris/system.pp b/rtl/solaris/system.pp
index 8c168d462d..29d96748e0 100644
--- a/rtl/solaris/system.pp
+++ b/rtl/solaris/system.pp
@@ -286,7 +286,6 @@ Begin
{ Arguments }
SetupCmdLine;
InitSystemThreads;
- initvariantmanager;
{ restore original signal handlers in case this is a library }
if IsLibrary then
RestoreOldSignalHandlers;
diff --git a/rtl/symbian/Makefile b/rtl/symbian/Makefile
index ecba3609bd..3e33f88e4a 100644
--- a/rtl/symbian/Makefile
+++ b/rtl/symbian/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -406,6 +406,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl
endif
@@ -493,6 +496,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl
endif
@@ -631,6 +637,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=ctypes strings symbian
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=ctypes strings symbian
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=ctypes strings symbian
endif
@@ -718,6 +727,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=ctypes strings symbian
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=ctypes strings symbian
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=ctypes strings symbian
endif
@@ -857,6 +869,9 @@ 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
@@ -944,6 +959,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1082,6 +1100,9 @@ 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
@@ -1169,6 +1190,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1480,6 +1504,12 @@ 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=
@@ -1525,6 +1555,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1989,7 +2024,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/unix/baseunix.pp b/rtl/unix/baseunix.pp
index f53985e787..a9e44b2380 100644
--- a/rtl/unix/baseunix.pp
+++ b/rtl/unix/baseunix.pp
@@ -90,4 +90,12 @@ Uses Sysctl;
{$i osmacro.inc} { macro implenenations }
{$i bunxovl.inc} { redefs and overloads implementation }
+{$ifdef FPC_HAS_SETSYSNR_INC}
+{$I setsysnr.inc}
+{$endif FPC_HAS_SETSYSNR_INC}
+
+{$ifdef FPC_HAS_SETSYSNR_INC}
+begin
+ SetSyscallNumbers;
+{$endif FPC_HAS_SETSYSNR_INC}
end.
diff --git a/rtl/unix/cthreads.pp b/rtl/unix/cthreads.pp
index 9917fbc21f..925358edde 100644
--- a/rtl/unix/cthreads.pp
+++ b/rtl/unix/cthreads.pp
@@ -336,7 +336,7 @@ Type PINTRTLEvent = ^TINTRTLEvent;
{$endif DEBUG_MT}
pthread_attr_init(@thread_attr);
{$if not defined(HAIKU) and not defined(ANDROID)}
- {$ifdef solaris}
+ {$if defined (solaris) or defined (netbsd) }
pthread_attr_setinheritsched(@thread_attr, PTHREAD_INHERIT_SCHED);
{$else not solaris}
pthread_attr_setinheritsched(@thread_attr, PTHREAD_EXPLICIT_SCHED);
@@ -874,8 +874,19 @@ var p:pintrtlevent;
begin
new(p);
- pthread_cond_init(@p^.condvar, nil);
- pthread_mutex_init(@p^.mutex, nil);
+ if not assigned(p) then
+ fpc_threaderror;
+ if pthread_cond_init(@p^.condvar, nil)<>0 then
+ begin
+ dispose(p);
+ fpc_threaderror;
+ end;
+ if pthread_mutex_init(@p^.mutex, nil)<>0 then
+ begin
+ pthread_cond_destroy(@p^.condvar);
+ dispose(p);
+ fpc_threaderror;
+ end;
p^.isset:=false;
result:=PRTLEVENT(p);
end;
diff --git a/rtl/unix/cwstring.pp b/rtl/unix/cwstring.pp
index 08cc3bceb1..56cb14c41a 100644
--- a/rtl/unix/cwstring.pp
+++ b/rtl/unix/cwstring.pp
@@ -141,6 +141,12 @@ const
{$elseif defined(aix)}
CODESET = 49;
LC_ALL = -1;
+{$elseif defined(dragonfly)}
+ CODESET = 0;
+ LC_ALL = 0;
+ __LC_CTYPE = 0;
+ _NL_CTYPE_CLASS = (__LC_CTYPE shl 16);
+ _NL_CTYPE_CODESET_NAME = (_NL_CTYPE_CLASS)+14;
{$else not aix}
{$error lookup the value of CODESET in /usr/include/langinfo.h, and the value of LC_ALL in /usr/include/locale.h for your OS }
// and while doing it, check if iconv is in libc, and if the symbols are prefixed with iconv_ or libiconv_
@@ -803,6 +809,10 @@ function CompareTextWideString(const s1, s2 : WideString): PtrInt;
end;
+{ return value: number of code points in the string. Whenever an invalid
+ code point is encountered, all characters part of this invalid code point
+ are considered to form one "character" and the next character is
+ considered to be the start of a new (possibly also invalid) code point }
function CharLengthPChar(const Str: PChar): PtrInt;
var
nextlen: ptrint;
@@ -818,14 +828,14 @@ function CharLengthPChar(const Str: PChar): PtrInt;
{$endif not beos}
repeat
{$ifdef beos}
- nextlen:=ptrint(mblen(str,MB_CUR_MAX));
+ nextlen:=ptrint(mblen(s,MB_CUR_MAX));
{$else beos}
- nextlen:=ptrint(mbrlen(str,MB_CUR_MAX,@mbstate));
+ nextlen:=ptrint(mbrlen(s,MB_CUR_MAX,@mbstate));
{$endif beos}
{ skip invalid/incomplete sequences }
if (nextlen<0) then
nextlen:=1;
- inc(result,nextlen);
+ inc(result,1);
inc(s,nextlen);
until (nextlen=0);
end;
@@ -987,6 +997,18 @@ begin
ansi2pchar(temp,str,result);
end;
+
+function envvarset(const varname: pchar): boolean;
+var
+ varval: pchar;
+begin
+ varval:=fpgetenv(varname);
+ result:=
+ assigned(varval) and
+ (varval[0]<>#0);
+end;
+
+
function GetStandardCodePage(const stdcp: TStandardCodePageEnum): TSystemCodePage;
var
langinfo: pchar;
@@ -998,15 +1020,25 @@ begin
exit;
end;
{$endif}
- langinfo:=nl_langinfo(CODESET);
- { there's a bug in the Mac OS X 10.5 libc (based on FreeBSD's)
- that causes it to return an empty string of UTF-8 locales
- -> patch up (and in general, UTF-8 is a good default on
- Unix platforms) }
- if not assigned(langinfo) or
- (langinfo^=#0) then
- langinfo:='UTF-8';
- Result := GetCodepageByName(ansistring(langinfo));
+ { if none of the relevant LC_* environment variables are set, fall back to
+ UTF-8 (this happens under some versions of OS X for GUI applications, which
+ otherwise get CP_ASCII) }
+ if envvarset('LC_ALL') or
+ envvarset('LC_CTYPE') or
+ envvarset('LANG') then
+ begin
+ langinfo:=nl_langinfo(CODESET);
+ { there's a bug in the Mac OS X 10.5 libc (based on FreeBSD's)
+ that causes it to return an empty string of UTF-8 locales
+ -> patch up (and in general, UTF-8 is a good default on
+ Unix platforms) }
+ if not assigned(langinfo) or
+ (langinfo^=#0) then
+ langinfo:='UTF-8';
+ Result:=GetCodepageByName(ansistring(langinfo));
+ end
+ else
+ Result:=unixcp.GetSystemCodepage;
end;
{$ifdef FPC_HAS_CPSTRING}
diff --git a/rtl/unix/dl.pp b/rtl/unix/dl.pp
index 191959c0c7..b2a1253a6d 100644
--- a/rtl/unix/dl.pp
+++ b/rtl/unix/dl.pp
@@ -27,7 +27,7 @@ const
{$endif}
{$endif}
-{$if defined(linux) or defined(freebsd) or defined(openbsd)}
+{$if defined(linux) or defined(freebsd) or defined(openbsd) or defined(dragonfly)}
{$define ELF} // ELF symbol versioning.
{$endif}
@@ -92,7 +92,7 @@ function dlerror() : Pchar; cdecl; external libdl;
{ overloaded for compatibility with hmodule }
function dlsym(Lib : PtrInt; Name : Pchar) : Pointer; cdecl; external Libdl;
function dlclose(Lib : PtrInt) : Longint; cdecl; external libdl;
-function dladdr(Lib: pointer; info: Pdl_info): Longint; cdecl; {$ifndef aix}external;{$endif}
+function dladdr(Lib: pointer; info: Pdl_info): Longint; cdecl; {$if not defined(aix) and not defined(android)} external; {$endif}
implementation
@@ -133,9 +133,10 @@ uses
{$i dlaix.inc}
{$endif}
+{$ifdef android}
+{$i dlandroid.inc}
+{$endif}
begin
-{$ifndef android}
UnixGetModuleByAddrHook:=@UnixGetModuleByAddr;
-{$endif android}
end.
diff --git a/rtl/unix/initc.pp b/rtl/unix/initc.pp
index 0adf8d6d85..627d96124b 100644
--- a/rtl/unix/initc.pp
+++ b/rtl/unix/initc.pp
@@ -59,7 +59,7 @@ function geterrnolocation: pcint; cdecl;external clib name '__errno_location';
function geterrnolocation: pcint; cdecl;external clib name '__errno';
{$endif}
-{$ifdef FreeBSD} // tested on x86
+{$if defined(FreeBSD) or defined(DragonFly)} // tested on x86
function geterrnolocation: pcint; cdecl;external clib name '__error';
{$endif}
diff --git a/rtl/unix/syscall.pp b/rtl/unix/syscall.pp
index fe001aac4b..58a12ab9a0 100644
--- a/rtl/unix/syscall.pp
+++ b/rtl/unix/syscall.pp
@@ -7,5 +7,13 @@ interface
{$i syscallh.inc}
implementation
+{$ifdef FPC_HAS_SETSYSNR_INC}
+{$define FPC_COMPILING_SYSCALL_UNIT}
+{$I setsysnr.inc}
+{$endif FPC_HAS_SETSYSNR_INC}
+{$ifdef FPC_HAS_SETSYSNR_INC}
+begin
+ SetSyscallNumbers;
+{$endif FPC_HAS_SETSYSNR_INC}
end.
diff --git a/rtl/unix/sysfile.inc b/rtl/unix/sysfile.inc
index 43dc57813a..acc6d76315 100644
--- a/rtl/unix/sysfile.inc
+++ b/rtl/unix/sysfile.inc
@@ -20,6 +20,8 @@ Begin
repeat
res:=Fpclose(cint(Handle));
until (res<>-1) or (geterrno<>ESysEINTR);
+ if res<>0 then
+ Errno2Inoutres;
End;
Procedure Do_Erase(p: pchar; pchangeable: boolean);
@@ -226,7 +228,10 @@ Begin
until (FileRec(f).Handle<>-1) or (geterrno<>ESysEINTR);
end;
If Filerec(f).Handle<0 Then
- Errno2Inoutres
+ begin
+ Errno2Inoutres;
+ FileRec(f).mode:=fmclosed;
+ end
else
InOutRes:=0;
End;
diff --git a/rtl/unix/sysutils.pp b/rtl/unix/sysutils.pp
index 60e6664089..e7716c8b39 100644
--- a/rtl/unix/sysutils.pp
+++ b/rtl/unix/sysutils.pp
@@ -42,9 +42,11 @@ interface
{$define SYSUTILS_HAS_ANSISTR_ENVVAR_IMPL}
uses
-{$IFDEF LINUX}linux,{$ENDIF} Unix,errors,sysconst,Unixtype;
+{$IFDEF LINUX}linux,{$ENDIF}
+{$IFDEF FreeBSD}freebsd,{$ENDIF}
+ Unix,errors,sysconst,Unixtype;
-{$IFDEF LINUX}
+{$IF defined(LINUX) or defined(FreeBSD)}
{$DEFINE HAVECLOCKGETTIME}
{$ENDIF}
diff --git a/rtl/unix/tthread.inc b/rtl/unix/tthread.inc
index afc2001249..e58977b48a 100644
--- a/rtl/unix/tthread.inc
+++ b/rtl/unix/tthread.inc
@@ -29,9 +29,9 @@
control. Therefore, I didn't implement .Suspend() if its called from
outside the threads execution flow (except on Linux _without_ NPTL).
- The implementation for .suspend uses a semaphore, which is initialized
+ The implementation for .suspend uses an RTLEvent, which is initialized
at thread creation. If the thread tries to suspend itself, we simply
- let it wait on the semaphore until it is unblocked by someone else
+ let it wait on the Event until it is unblocked by someone else
who calls .Resume.
@@ -82,8 +82,8 @@ begin
WRITE_DEBUG('AfterConstruction should have been called for ',ptruint(lthread));
if LThread.FInitialSuspended then
begin
- WRITE_DEBUG('thread ', ptruint(LThread), ' waiting for semaphore ', ptruint(LThread.FSem));
- SemaphoreWait(LThread.FSem);
+ WRITE_DEBUG('thread ', ptruint(LThread), ' waiting for RTLEvent ', ptruint(LThread.FSuspendEvent));
+ RtlEventWaitFor(LThread.FSuspendEvent);
if not(LThread.FTerminated) then
begin
if not LThread.FSuspended then
@@ -103,7 +103,7 @@ begin
begin
LThread.FSuspendedInternal := true;
WRITE_DEBUG('waiting for SuspendedInternal - ', LThread.ClassName);
- SemaphoreWait(LThread.FSem);
+ RtlEventWaitFor(LThread.FSuspendEvent);
CurrentThreadVar := LThread;
WRITE_DEBUG('going into LThread.Execute - ', LThread.ClassName);
LThread.Execute;
@@ -148,17 +148,14 @@ end;
procedure TThread.SysCreate(CreateSuspended: Boolean;
const StackSize: SizeUInt);
begin
- FSem := SemaphoreInit();
- if FSem = pointer(-1) then
- raise EThread.create('Semaphore init failed (possibly too many concurrent threads)');
- WRITE_DEBUG('thread ', ptruint(self), ' created semaphore ', ptruint(FSem));
+ FSuspendEvent := RtlEventCreate;
+ WRITE_DEBUG('thread ', ptruint(self), ' created RTLEvent ', ptruint(FSuspendEvent));
FSuspended := CreateSuspended;
- FSuspendedExternal := false;
FThreadReaped := false;
FInitialSuspended := CreateSuspended;
FFatalException := nil;
FSuspendedInternal := not CreateSuspended;
- WRITE_DEBUG('creating thread, self = ',longint(self));
+ WRITE_DEBUG('creating thread, self = ',ptruint(self));
FHandle:= BeginThread(@ThreadFunc, Pointer(Self), FThreadID, StackSize);
if FHandle = TThreadID(0) then
raise EThread.create('Failed to create new thread');
@@ -168,13 +165,13 @@ end;
procedure TThread.SysDestroy;
begin
- if (FSem = nil) then
+ if not assigned(FSuspendEvent) then
{ exception in constructor }
exit;
if (FHandle = TThreadID(0)) then
{ another exception in constructor }
begin
- SemaphoreDestroy(FSem);
+ RtlEventDestroy(FSuspendEvent);
exit;
end;
if (FThreadID = GetCurrentThreadID) then
@@ -200,7 +197,7 @@ begin
WaitFor;
end;
end;
- SemaphoreDestroy(FSem);
+ RtlEventDestroy(FSuspendEvent);
FFatalException.Free;
FFatalException := nil;
{ threadvars have been released by cthreads.ThreadMain -> DoneThread, or }
@@ -223,13 +220,11 @@ begin
begin
if not FSuspended and
(InterLockedExchange(longint(FSuspended),longint(longbool(true))) = longint(longbool(false))) then
- SemaphoreWait(FSem)
+ RtlEventWaitFor(FSuspendEvent)
end
else
begin
Raise EThread.create('Suspending one thread from inside another one is unsupported (because it is unsafe and deadlock prone) by *nix and posix operating systems');
-// FSuspendedExternal := true;
-// SuspendThread(FHandle);
end;
end;
@@ -239,9 +234,9 @@ begin
if FSuspendedInternal and (InterLockedExchange(longint(FSuspendedInternal),ord(false)) = longint(longbool(true))) then
begin
WRITE_DEBUG('resuming thread after TThread construction',ptruint(self));
- SemaphorePost(FSem);
+ RtlEventSetEvent(FSuspendEvent);
end
- else if (not FSuspendedExternal) then
+ else
begin
if FSuspended and
{ don't compare with ord(true) or ord(longbool(true)), }
@@ -249,15 +244,9 @@ begin
(InterLockedExchange(longint(FSuspended),longint(false)) <> longint(longbool(false))) then
begin
WRITE_DEBUG('resuming ',ptruint(self));
- SemaphorePost(FSem);
+ RtlEventSetEvent(FSuspendEvent);
end
end
- else
- begin
- raise EThread.create('External suspending is not supported under *nix/posix, so trying to resume from from an external suspension should never happen');
-// FSuspendedExternal := false;
-// ResumeThread(FHandle);
- end;
end;
diff --git a/rtl/unix/unixcp.pp b/rtl/unix/unixcp.pp
index 5601ee773e..532d9322d5 100644
--- a/rtl/unix/unixcp.pp
+++ b/rtl/unix/unixcp.pp
@@ -714,7 +714,7 @@ var
begin
// Get one of non-empty environment variables in the next order:
// LC_ALL, LC_CTYPE, LANG. Default is UTF-8 or ASCII.
-{$ifdef linux}
+{$if defined(linux) or defined(darwin)}
Result:=CP_UTF8;
{$else}
Result:=CP_ASCII;
diff --git a/rtl/watcom/Makefile b/rtl/watcom/Makefile
index e7289d89ce..23b4feace1 100644
--- a/rtl/watcom/Makefile
+++ b/rtl/watcom/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-03-19 rev 27188]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -412,6 +412,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 strings watcom dos cpu charset cpall types getopts heaptrc lnfodwrf lineinfo ctypes fgl math typinfo mmx sysutils
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 strings watcom dos cpu charset cpall types getopts heaptrc lnfodwrf lineinfo ctypes fgl math typinfo mmx sysutils
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 strings watcom dos cpu charset cpall types getopts heaptrc lnfodwrf lineinfo ctypes fgl math typinfo mmx sysutils
endif
@@ -499,6 +502,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 strings watcom dos cpu charset cpall types getopts heaptrc lnfodwrf lineinfo ctypes fgl math typinfo mmx sysutils
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 strings watcom dos cpu charset cpall types getopts heaptrc lnfodwrf lineinfo ctypes fgl math typinfo mmx sysutils
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 strings watcom dos cpu charset cpall types getopts heaptrc lnfodwrf lineinfo ctypes fgl math typinfo mmx sysutils
endif
@@ -637,6 +643,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -724,6 +733,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -862,6 +874,9 @@ 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
@@ -949,6 +964,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1087,6 +1105,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1174,6 +1195,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1313,6 +1337,9 @@ 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
@@ -1400,6 +1427,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1538,6 +1568,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
endif
@@ -1625,6 +1658,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC)
endif
@@ -1936,6 +1972,12 @@ 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=
@@ -1981,6 +2023,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2445,7 +2492,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2475,17 +2522,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_loaders
ifneq ($(TARGET_LOADERS),)
override ALLTARGET+=fpc_loaders
diff --git a/rtl/watcom/sysfile.inc b/rtl/watcom/sysfile.inc
index d962d751f1..3d7285b8ee 100644
--- a/rtl/watcom/sysfile.inc
+++ b/rtl/watcom/sysfile.inc
@@ -392,6 +392,7 @@ begin
if (regs.realflags and carryflag) <> 0 then
begin
GetInOutRes(lo(regs.realeax));
+ FileRec(f).mode:=fmclosed;
if oldp<>p then
freemem(p);
exit;
diff --git a/rtl/watcom/system.pp b/rtl/watcom/system.pp
index 9b98d70f8b..51c2b5eee8 100644
--- a/rtl/watcom/system.pp
+++ b/rtl/watcom/system.pp
@@ -787,5 +787,4 @@ Begin
InitDPMIExcp;
InstallDefaultHandlers;
{$endif EXCEPTIONS_IN_SYSTEM}
- initvariantmanager;
End.
diff --git a/rtl/wii/Makefile b/rtl/wii/Makefile
index ba3c9c425b..fb712eddef 100644
--- a/rtl/wii/Makefile
+++ b/rtl/wii/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -409,6 +409,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas strings sysutils math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl cmem
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas strings sysutils math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl cmem
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas strings sysutils math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl cmem
endif
@@ -496,6 +499,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas strings sysutils math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl cmem
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas strings sysutils math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl cmem
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=$(SYSTEMUNIT) uuchar objpas macpas strings sysutils math typinfo ctypes charset cpall getopts types rtlconsts sysconst lineinfo fgl cmem
endif
@@ -634,6 +640,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -721,6 +730,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -860,6 +872,9 @@ 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
@@ -947,6 +962,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1085,6 +1103,9 @@ 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
@@ -1172,6 +1193,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1483,6 +1507,12 @@ 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=
@@ -1528,6 +1558,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1992,7 +2027,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/wii/system.pp b/rtl/wii/system.pp
index d59a503417..81be87d94f 100644
--- a/rtl/wii/system.pp
+++ b/rtl/wii/system.pp
@@ -271,5 +271,4 @@ begin
{ threading }
InitSystemThreads;
{$endif FPC_HAS_FEATURE_THREADING}
- initvariantmanager;
end.
diff --git a/rtl/win/sysfile.inc b/rtl/win/sysfile.inc
index 6771554d52..e4a12eb0c0 100644
--- a/rtl/win/sysfile.inc
+++ b/rtl/win/sysfile.inc
@@ -28,7 +28,8 @@ procedure do_close(h : thandle);
begin
if do_isdevice(h) then
exit;
- CloseHandle(h);
+ if CloseHandle(h)=0 then
+ Errno2InOutRes(GetLastError);
end;
@@ -312,6 +313,7 @@ begin
if (filerec(f).handle=0) or (filerec(f).handle=UnusedHandle) then
begin
Errno2InoutRes(GetLastError);
+ FileRec(f).mode:=fmclosed;
end;
if oldp<>p then
freemem(p);
diff --git a/rtl/win/sysos.inc b/rtl/win/sysos.inc
index e0966c949d..a63a850bc8 100644
--- a/rtl/win/sysos.inc
+++ b/rtl/win/sysos.inc
@@ -191,6 +191,26 @@ type
ExceptionInformation : array[0..EXCEPTION_MAXIMUM_PARAMETERS-1] of Pointer;
end;
+ TSystemInfo = record
+ case LongInt of
+ 0 : ( dwOemId : DWord;
+ dwPageSize : DWord;
+ lpMinimumApplicationAddress : Pointer;
+ lpMaximumApplicationAddress : Pointer;
+ dwActiveProcessorMask : PDWord;
+ dwNumberOfProcessors : DWord;
+ dwProcessorType : DWord;
+ dwAllocationGranularity : DWord;
+ wProcessorLevel : Word;
+ wProcessorRevision : Word;
+ );
+ 1 : (
+ wProcessorArchitecture : Word;
+ wReserved : Word;
+ );
+ end;
+ PSystemInfo = ^TSystemInfo;
+
{ misc. functions }
function GetLastError : DWORD;
@@ -270,6 +290,8 @@ type
{$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'SetEndOfFile';
function FreeLibrary(hLibModule:THandle):ByteBool; {$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'FreeLibrary';
+ procedure GetSystemInfo(lpSystemInfo: PSystemInfo); {$ifdef wince}cdecl{$else}stdcall{$endif};external KernelDLL name 'GetSystemInfo';
+
{$ifndef WINCE}
function LoadLibrary(lpLibFileName:pchar):THandle; stdcall; external KernelDLL name 'LoadLibraryA';
function GetFileType(Handle:thandle):DWord;
@@ -395,3 +417,13 @@ begin
end;
end;
{$endif not WINCE}
+
+{$define HAS_GETCPUCOUNT}
+function GetCPUCount: LongWord;
+var
+ info: TSystemInfo;
+begin
+ FillChar(info, SizeOf(info), 0);
+ GetSystemInfo(@info);
+ Result := info.dwNumberOfProcessors;
+end;
diff --git a/rtl/win/syswin.inc b/rtl/win/syswin.inc
index 4ed2cebd3d..97c99a5a22 100644
--- a/rtl/win/syswin.inc
+++ b/rtl/win/syswin.inc
@@ -498,9 +498,15 @@ procedure SysInitStdIO;
begin
{ Setup stdin, stdout and stderr, for GUI apps redirect stderr,stdout to be
displayed in a messagebox }
- StdInputHandle:=longint(GetStdHandle(cardinal(STD_INPUT_HANDLE)));
- StdOutputHandle:=longint(GetStdHandle(cardinal(STD_OUTPUT_HANDLE)));
- StdErrorHandle:=longint(GetStdHandle(cardinal(STD_ERROR_HANDLE)));
+ { WARNING: this should be done only once at startup,
+ not for DLL entry code, as the standard handles might
+ have been redirected }
+ if StdInputHandle=0 then
+ StdInputHandle:=longint(GetStdHandle(cardinal(STD_INPUT_HANDLE)));
+ if StdOutputHandle=0 then
+ StdOutputHandle:=longint(GetStdHandle(cardinal(STD_OUTPUT_HANDLE)));
+ if StdErrorHandle=0 then
+ StdErrorHandle:=longint(GetStdHandle(cardinal(STD_ERROR_HANDLE)));
if not IsConsole then
begin
AssignError(stderr);
diff --git a/rtl/win/wininc/ascfun.inc b/rtl/win/wininc/ascfun.inc
index d1c6f74e37..e51d5990d0 100644
--- a/rtl/win/wininc/ascfun.inc
+++ b/rtl/win/wininc/ascfun.inc
@@ -358,8 +358,8 @@ function PrintDlgA(_para1:LPPRINTDLG):WINBOOL; external 'comdlg32' name 'PrintDl
function PageSetupDlgA(_para1:LPPAGESETUPDLG):WINBOOL; external 'comdlg32' name 'PageSetupDlgA';
}
function CreateProcessA(lpApplicationName:LPCSTR; lpCommandLine:LPSTR; lpProcessAttributes:LPSECURITY_ATTRIBUTES; lpThreadAttributes:LPSECURITY_ATTRIBUTES; bInheritHandles:WINBOOL;dwCreationFlags:DWORD; lpEnvironment:LPVOID;
- lpCurrentDirectory:LPCSTR; lpStartupInfo:LPSTARTUPINFO; lpProcessInformation:LPPROCESS_INFORMATION):WINBOOL; external 'kernel32' name 'CreateProcessA';
-procedure GetStartupInfoA(lpStartupInfo:LPSTARTUPINFO); external 'kernel32' name 'GetStartupInfoA';
+ lpCurrentDirectory:LPCSTR; lpStartupInfo:LPSTARTUPINFOA; lpProcessInformation:LPPROCESS_INFORMATION):WINBOOL; external 'kernel32' name 'CreateProcessA';
+procedure GetStartupInfoA(lpStartupInfo:LPSTARTUPINFOA); external 'kernel32' name 'GetStartupInfoA';
function FindFirstFileA(lpFileName:LPCSTR; lpFindFileData:LPWIN32_FIND_DATA):HANDLE; external 'kernel32' name 'FindFirstFileA';
function FindNextFileA(hFindFile:HANDLE; lpFindFileData:LPWIN32_FIND_DATA):WINBOOL; external 'kernel32' name 'FindNextFileA';
function GetVersionExA(VersionInformation:LPOSVERSIONINFO):WINBOOL; external 'kernel32' name 'GetVersionExA';
@@ -475,7 +475,7 @@ function DdeInitializeA(_para1:LPDWORD; _para2:PFNCALLBACK; _para3:DWORD; _para4
function DdeQueryStringA(_para1:DWORD; _para2:HSZ; _para3:pchar;_para4:DWORD; _para5:longint):DWORD; external 'user32' name 'DdeQueryStringA';
function LogonUserA(_para1:LPSTR; _para2:LPSTR; _para3:LPSTR; _para4:DWORD; _para5:DWORD;_para6:PHANDLE):WINBOOL; external 'advapi32' name 'LogonUserA';
function CreateProcessAsUserA(_para1:HANDLE; _para2:LPCTSTR; _para3:LPTSTR; _para4:LPSECURITY_ATTRIBUTES; _para5:LPSECURITY_ATTRIBUTES;_para6:WINBOOL; _para7:DWORD; _para8:LPVOID; _para9:LPCTSTR;
- _para10:LPSTARTUPINFO; _para11:LPPROCESS_INFORMATION):WINBOOL; external 'advapi32' name 'CreateProcessAsUserA';
+ _para10:LPSTARTUPINFOA; _para11:LPPROCESS_INFORMATION):WINBOOL; external 'advapi32' name 'CreateProcessAsUserA';
function CreateWaitableTimerA(lpTimerAttributes :LPSECURITY_ATTRIBUTES; bManualReset:BOOl;lpTimerName:LPCTSTR):THandle;external 'kernel32' name 'CreateWaitableTimerA';
function OpenWaitableTimerA(dwDesiredAccess:DWORD;bInheritHandle:BOOL;lpTimerName:LPCTSTR):THandle;external 'kernel32' name 'OpenWaitableTimerA';
function FindFirstFileExA(lpfilename : LPCStr;fInfoLevelId:FINDEX_INFO_LEVELS ;lpFindFileData:pointer;fSearchOp : FINDEX_SEARCH_OPS;lpSearchFilter:pointer;dwAdditionalFlags:dword):Handle; stdcall; external 'kernel32' name 'FindFirstFileExA';
diff --git a/rtl/win/wininc/defines.inc b/rtl/win/wininc/defines.inc
index 9edf690576..19eeed6fed 100644
--- a/rtl/win/wininc/defines.inc
+++ b/rtl/win/wininc/defines.inc
@@ -5911,7 +5911,7 @@ const
IMAGE_FILE_MACHINE_AMD64 = $8664; // AMD64 (K8)
IMAGE_FILE_MACHINE_M32R = $9041; // M32R little-endian
IMAGE_FILE_MACHINE_CEE = $C0EE;
-
+ IMAGE_FILE_LARGE_ADDRESS_AWARE = $20; // for peflags.
GWLP_WNDPROC = -4;
GWLP_HINSTANCE = -6;
diff --git a/rtl/win/wininc/redef.inc b/rtl/win/wininc/redef.inc
index 8f013eb429..ddce7fc66e 100644
--- a/rtl/win/wininc/redef.inc
+++ b/rtl/win/wininc/redef.inc
@@ -339,7 +339,7 @@ function CreatePolyPolygonRgn(const pPtStructs; const pIntArray; p3, p4: Integer
function CreateProcess(lpApplicationName: PChar; lpCommandLine: PChar; lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; lpCurrentDirectory: PChar;
const lpStartupInfo: TStartupInfo; var lpProcessInformation: TProcessInformation): BOOL;external 'kernel32' name 'CreateProcessA';
function CreateProcessA(lpApplicationName: LPCSTR; lpCommandLine: LPCSTR; lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; lpCurrentDirectory: LPCSTR;
- const lpStartupInfo: TStartupInfo; var lpProcessInformation: TProcessInformation): BOOL; external 'kernel32' name 'CreateProcessA';
+ const lpStartupInfo: TStartupInfoA; var lpProcessInformation: TProcessInformation): BOOL; external 'kernel32' name 'CreateProcessA';
//function CreateProcessAsUser(hToken: THandle; lpApplicationName: PChar; lpCommandLine: PChar; lpProcessAttributes: PSecurityAttributes; lpThreadAttributes: PSecurityAttributes; bInheritHandles: BOOL; dwCreationFlags: DWORD;
// lpEnvironment: Pointer; lpCurrentDirectory: PChar; const lpStartupInfo: TStartupInfo; var lpProcessInformation: TProcessInformation): BOOL;external 'advapi32' name 'CreateProcessAsUserA';
//function CreateProcessAsUserA(hToken: THandle; lpApplicationName: LPCSTR; lpCommandLine: LPCSTR; lpProcessAttributes: PSecurityAttributes; lpThreadAttributes: PSecurityAttributes; bInheritHandles: BOOL; dwCreationFlags: DWORD;
@@ -347,7 +347,7 @@ function CreateProcessA(lpApplicationName: LPCSTR; lpCommandLine: LPCSTR; lpProc
//function CreateProcessAsUserW(hToken: THandle; lpApplicationName: LPWSTR; lpCommandLine: LPWSTR; lpProcessAttributes: PSecurityAttributes; lpThreadAttributes: PSecurityAttributes; bInheritHandles: BOOL; dwCreationFlags: DWORD;
// lpEnvironment: Pointer; lpCurrentDirectory: LPWSTR; const lpStartupInfo: TStartupInfo; var lpProcessInformation: TProcessInformation): BOOL; external 'advapi32' name 'CreateProcessAsUserW';
function CreateProcessW(lpApplicationName: LPWSTR; lpCommandLine: LPWSTR; lpProcessAttributes, lpThreadAttributes: PSecurityAttributes; bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; lpCurrentDirectory: LPWSTR;
- const lpStartupInfo: TStartupInfo; var lpProcessInformation: TProcessInformation): BOOL; external 'kernel32' name 'CreateProcessW';
+ const lpStartupInfo: TStartupInfoW; var lpProcessInformation: TProcessInformation): BOOL; external 'kernel32' name 'CreateProcessW';
//function CreateRectRgnIndirect(const p1: TRect): HRGN; external 'gdi32' name 'CreateRectRgnIndirect';
function CreateRemoteThread(hProcess: THandle; lpThreadAttributes: Pointer; dwStackSize: PTRUINT; lpStartAddress: TFNThreadStartRoutine; lpParameter: Pointer; dwCreationFlags: DWORD; var lpThreadId: DWORD): THandle;
external 'kernel32' name 'CreateRemoteThread';
diff --git a/rtl/win/wininc/struct.inc b/rtl/win/wininc/struct.inc
index 59d74e829e..07e838e961 100644
--- a/rtl/win/wininc/struct.inc
+++ b/rtl/win/wininc/struct.inc
@@ -689,6 +689,7 @@ Const
_LOGFONTA = LOGFONTA;
TLOGFONTA = LOGFONTA;
PLOGFONTA = LPLOGFONTA;
+ tagLOGFONTA= LOGFONTA;
LOGFONTW = record
lfHeight: LONG;
@@ -711,6 +712,7 @@ Const
_LOGFONTW = LOGFONTW;
TLogFontW = LOGFONTW;
PLogFontW = ^TLOGFONTW;
+ tagLOGFONTW= LOGFONTW;
{$IFNDEF UNICODE}
LOGFONT = LOGFONTA;
@@ -718,12 +720,14 @@ Const
_LOGFONT = LOGFONTA;
TLOGFONT = LOGFONTA;
PLOGFONT = ^LOGFONTA;
+ tagLOGFONT = LOGFONTA;
{$ELSE}
LOGFONT = LOGFONTW;
LPLOGFONT = ^LOGFONTW;
_LOGFONT = LOGFONTW;
TLOGFONT = LOGFONTW;
PLOGFONT = ^LOGFONTW;
+ tagLOGFONT = LOGFONTW;
{$ENDIF}
{CHOOSEFONT = record conflicts with ChosseFont function }
@@ -1481,7 +1485,7 @@ Const
SECURITY_QUALITY_OF_SERVICE = record
Length : DWORD;
ImpersonationLevel : SECURITY_IMPERSONATION_LEVEL;
- ContextTrackingMode : WINBOOL; // SECURITY_CONTEXT_TRACKING_MODE
+ ContextTrackingMode : BOOLEAN; // SECURITY_CONTEXT_TRACKING_MODE
EffectiveOnly : BOOLEAN;
end;
PSECURITY_QUALITY_OF_SERVICE = ^SECURITY_QUALITY_OF_SERVICE;
@@ -2219,7 +2223,7 @@ Const
case byte of
0: (LowPart : DWORD;
HighPart : DWORD);
- 1: (QuadPart : LONGLONG);
+ 1: (QuadPart : ULONGLONG);
end;
PULARGE_INTEGER = ^ULARGE_INTEGER;
_ULARGE_INTEGER = ULARGE_INTEGER;
@@ -6728,6 +6732,54 @@ Const
tagSOUNDSENTRY = SOUNDSENTRY;
TSOUNDSENTRY = SOUNDSENTRY;
PSOUNDSENTRY = ^SOUNDSENTRY;
+ STARTUPINFOA = record
+ cb : DWORD;
+ lpReserved : LPSTR;
+ lpDesktop : LPSTR;
+ lpTitle : LPSTR;
+ dwX : DWORD;
+ dwY : DWORD;
+ dwXSize : DWORD;
+ dwYSize : DWORD;
+ dwXCountChars : DWORD;
+ dwYCountChars : DWORD;
+ dwFillAttribute : DWORD;
+ dwFlags : DWORD;
+ wShowWindow : WORD;
+ cbReserved2 : WORD;
+ lpReserved2 : LPBYTE;
+ hStdInput : HANDLE;
+ hStdOutput : HANDLE;
+ hStdError : HANDLE;
+ end;
+ LPSTARTUPINFOA = ^STARTUPINFOA;
+ _STARTUPINFOA = STARTUPINFOA;
+ TSTARTUPINFOA = STARTUPINFOA;
+ PSTARTUPINFOA = ^STARTUPINFOA;
+ STARTUPINFOW = record
+ cb : DWORD;
+ lpReserved : LPWSTR;
+ lpDesktop : LPWSTR;
+ lpTitle : LPWSTR;
+ dwX : DWORD;
+ dwY : DWORD;
+ dwXSize : DWORD;
+ dwYSize : DWORD;
+ dwXCountChars : DWORD;
+ dwYCountChars : DWORD;
+ dwFillAttribute : DWORD;
+ dwFlags : DWORD;
+ wShowWindow : WORD;
+ cbReserved2 : WORD;
+ lpReserved2 : LPBYTE;
+ hStdInput : HANDLE;
+ hStdOutput : HANDLE;
+ hStdError : HANDLE;
+ end;
+ LPSTARTUPINFOW = ^STARTUPINFOW;
+ _STARTUPINFOW = STARTUPINFOW;
+ TSTARTUPINFOW = STARTUPINFOW;
+ PSTARTUPINFOW = ^STARTUPINFOW;
STARTUPINFO = record
cb : DWORD;
@@ -6749,11 +6801,17 @@ Const
hStdOutput : HANDLE;
hStdError : HANDLE;
end;
- LPSTARTUPINFO = ^STARTUPINFO;
- _STARTUPINFO = STARTUPINFO;
- TSTARTUPINFO = STARTUPINFO;
- PSTARTUPINFO = ^STARTUPINFO;
-
+ {$ifdef Unicode}
+ LPSTARTUPINFO = LPSTARTUPINFOW;
+ _STARTUPINFO = _STARTUPINFOW;
+ TSTARTUPINFO = TSTARTUPINFOW;
+ PSTARTUPINFO = PSTARTUPINFOW;
+ {$else}
+ LPSTARTUPINFO = LPSTARTUPINFOA;
+ _STARTUPINFO = _STARTUPINFOA;
+ TSTARTUPINFO = TSTARTUPINFOA;
+ PSTARTUPINFO = PSTARTUPINFOA;
+ {$endif}
STICKYKEYS = record
cbSize : DWORD;
dwFlags : DWORD;
diff --git a/rtl/win/wininc/unifun.inc b/rtl/win/wininc/unifun.inc
index 714f817943..c8a1d76886 100644
--- a/rtl/win/wininc/unifun.inc
+++ b/rtl/win/wininc/unifun.inc
@@ -295,8 +295,8 @@ function EnumDisplaySettingsW(lpszDeviceName:LPCWSTR; iModeNum:DWORD;lpDevMode:L
function SystemParametersInfoW(uiAction:UINT; uiParam:UINT; pvParam:PVOID; fWinIni:UINT):WINBOOL; external 'user32' name 'SystemParametersInfoW';
function AddFontResourceW(_para1:LPCWSTR):longint; external 'gdi32' name 'AddFontResourceW';
function CopyMetaFileW(_para1:HMETAFILE; _para2:LPCWSTR):HMETAFILE; external 'gdi32' name 'CopyMetaFileW';
-function CreateFontIndirectW(_para1:PLOGFONT):HFONT; external 'gdi32' name 'CreateFontIndirectW';
-function CreateFontIndirectW(var _para1:LOGFONT):HFONT; external 'gdi32' name 'CreateFontIndirectW';
+function CreateFontIndirectW(_para1:PLOGFONTW):HFONT; external 'gdi32' name 'CreateFontIndirectW';
+function CreateFontIndirectW(var _para1:LOGFONTW):HFONT; external 'gdi32' name 'CreateFontIndirectW';
function CreateFontW(_para1:longint; _para2:longint; _para3:longint; _para4:longint; _para5:longint;_para6:DWORD; _para7:DWORD; _para8:DWORD; _para9:DWORD; _para10:DWORD;_para11:DWORD; _para12:DWORD; _para13:DWORD; _para14:LPCWSTR):HFONT;
external 'gdi32' name 'CreateFontW';
function CreateICW(_para1:LPCWSTR; _para2:LPCWSTR; _para3:LPCWSTR; _para4:LPDEVMODEw):HDC; external 'gdi32' name 'CreateICW';
@@ -356,8 +356,8 @@ function PageSetupDlgW(_para1:LPPAGESETUPDLG):WINBOOL; external 'comdlg32' name
}
function CreateProcessW(lpApplicationName:LPCWSTR; lpCommandLine:LPWSTR; lpProcessAttributes:LPSECURITY_ATTRIBUTES; lpThreadAttributes:LPSECURITY_ATTRIBUTES; bInheritHandles:WINBOOL;dwCreationFlags:DWORD; lpEnvironment:LPVOID;
- lpCurrentDirectory:LPCWSTR; lpStartupInfo:LPSTARTUPINFO; lpProcessInformation:LPPROCESS_INFORMATION):WINBOOL; external 'kernel32' name 'CreateProcessW';
-procedure GetStartupInfoW(lpStartupInfo:LPSTARTUPINFO); external 'kernel32' name 'GetStartupInfoW';
+ lpCurrentDirectory:LPCWSTR; lpStartupInfo:LPSTARTUPINFOW; lpProcessInformation:LPPROCESS_INFORMATION):WINBOOL; external 'kernel32' name 'CreateProcessW';
+procedure GetStartupInfoW(lpStartupInfo:LPSTARTUPINFOW); external 'kernel32' name 'GetStartupInfoW';
function FindFirstFileW(lpFileName:LPCWSTR; lpFindFileData:LPWIN32_FIND_DATAW):HANDLE; external 'kernel32' name 'FindFirstFileW';
function FindNextFileW(hFindFile:HANDLE; lpFindFileData:LPWIN32_FIND_DATAW):WINBOOL; external 'kernel32' name 'FindNextFileW';
function GetVersionExW(VersionInformation:LPOSVERSIONINFOW):WINBOOL; external 'kernel32' name 'GetVersionExW';
@@ -474,7 +474,7 @@ function DdeInitializeW(_para1:LPDWORD; _para2:PFNCALLBACK; _para3:DWORD; _para4
function DdeQueryStringW(_para1:DWORD; _para2:HSZ; _para3:LPCWSTR; _para4:DWORD; _para5:longint):DWORD; external 'user32' name 'DdeQueryStringW';
function LogonUserW(_para1:LPWSTR; _para2:LPWSTR; _para3:LPWSTR; _para4:DWORD; _para5:DWORD;_para6:PHANDLE):WINBOOL; external 'advapi32' name 'LogonUserW';
function CreateProcessAsUserW(_para1:HANDLE; _para2:LPCWSTR; _para3:LPWSTR; _para4:LPSECURITY_ATTRIBUTES; _para5:LPSECURITY_ATTRIBUTES;_para6:WINBOOL; _para7:DWORD; _para8:LPVOID; _para9:LPCWSTR;
- _para10:LPSTARTUPINFO;_para11:LPPROCESS_INFORMATION):WINBOOL; external 'advapi32' name 'CreateProcessAsUserW';
+ _para10:LPSTARTUPINFOW;_para11:LPPROCESS_INFORMATION):WINBOOL; external 'advapi32' name 'CreateProcessAsUserW';
function CreateWaitableTimerW(lpTimerAttributes :LPSECURITY_ATTRIBUTES; bManualReset:BOOl;lpTimerName:LPWSTR):THandle;external 'kernel32' name 'CreateWaitableTimerW';
function OpenWaitableTimerW(dwDesiredAccess:DWORD;bInheritHandle:BOOL;lpTimerName:LPWSTR):THandle;external 'kernel32' name 'OpenWaitableTimerW';
diff --git a/rtl/win32/Makefile b/rtl/win32/Makefile
index d4b5c5205a..616629ebbb 100644
--- a/rtl/win32/Makefile
+++ b/rtl/win32/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -414,6 +414,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
endif
@@ -501,6 +504,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
endif
@@ -639,6 +645,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof ctypes strings heaptrc windows initc cmem dynlibs signals dos messages rtlconsts sysconst sysutils math types typinfo fgl classes cpu mmx charset character getopts fpwidestring winsysut sharemem exeinfo fpintres windirs cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof ctypes strings heaptrc windows initc cmem dynlibs signals dos messages rtlconsts sysconst sysutils math types typinfo fgl classes cpu mmx charset character getopts fpwidestring winsysut sharemem exeinfo fpintres windirs cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof ctypes strings heaptrc windows initc cmem dynlibs signals dos messages rtlconsts sysconst sysutils math types typinfo fgl classes cpu mmx charset character getopts fpwidestring winsysut sharemem exeinfo fpintres windirs cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -726,6 +735,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof ctypes strings heaptrc windows initc cmem dynlibs signals dos messages rtlconsts sysconst sysutils math types typinfo fgl classes cpu mmx charset character getopts fpwidestring winsysut sharemem exeinfo fpintres windirs cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof ctypes strings heaptrc windows initc cmem dynlibs signals dos messages rtlconsts sysconst sysutils math types typinfo fgl classes cpu mmx charset character getopts fpwidestring winsysut sharemem exeinfo fpintres windirs cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=sysinitpas sysinitcyg sysinitgprof ctypes strings heaptrc windows initc cmem dynlibs signals dos messages rtlconsts sysconst sysutils math types typinfo fgl classes cpu mmx charset character getopts fpwidestring winsysut sharemem exeinfo fpintres windirs cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -864,6 +876,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -951,6 +966,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -1089,6 +1107,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1176,6 +1197,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1316,6 +1340,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
endif
@@ -1403,6 +1430,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(WINDIR)
endif
@@ -1541,6 +1571,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
endif
@@ -1628,6 +1661,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
endif
@@ -1939,6 +1975,12 @@ 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=
@@ -1984,6 +2026,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2448,7 +2495,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/win32/system.pp b/rtl/win32/system.pp
index 17ebb76842..9afb051e9e 100644
--- a/rtl/win32/system.pp
+++ b/rtl/win32/system.pp
@@ -671,7 +671,6 @@ begin
SysInitExceptions;
{ setup fastmove stuff }
fpc_cpucodeinit;
- initwidestringmanager;
initunicodestringmanager;
InitWin32Widestrings;
SysInitStdIO;
@@ -680,6 +679,5 @@ begin
{ Reset IO Error }
InOutRes:=0;
ProcessID := GetCurrentProcessID;
- initvariantmanager;
DispCallByIDProc:=@DoDispCallByIDError;
end.
diff --git a/rtl/win64/Makefile b/rtl/win64/Makefile
index 84cbc724e6..c04e182744 100644
--- a/rtl/win64/Makefile
+++ b/rtl/win64/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -410,6 +410,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
endif
@@ -497,6 +500,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=system uuchar objpas macpas iso7185 buildrtl cpall lineinfo lnfodwrf
endif
@@ -635,6 +641,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=ctypes strings heaptrc dos messages windows cmem dynlibs rtlconsts sysconst sysutils math types typinfo fgl classes getopts charset character fpwidestring sharemem exeinfo fpintres windirs cpu signals cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=ctypes strings heaptrc dos messages windows cmem dynlibs rtlconsts sysconst sysutils math types typinfo fgl classes getopts charset character fpwidestring sharemem exeinfo fpintres windirs cpu signals cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=ctypes strings heaptrc dos messages windows cmem dynlibs rtlconsts sysconst sysutils math types typinfo fgl classes getopts charset character fpwidestring sharemem exeinfo fpintres windirs cpu signals cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -722,6 +731,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=ctypes strings heaptrc dos messages windows cmem dynlibs rtlconsts sysconst sysutils math types typinfo fgl classes getopts charset character fpwidestring sharemem exeinfo fpintres windirs cpu signals cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=ctypes strings heaptrc dos messages windows cmem dynlibs rtlconsts sysconst sysutils math types typinfo fgl classes getopts charset character fpwidestring sharemem exeinfo fpintres windirs cpu signals cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=ctypes strings heaptrc dos messages windows cmem dynlibs rtlconsts sysconst sysutils math types typinfo fgl classes getopts charset character fpwidestring sharemem exeinfo fpintres windirs cpu signals cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852 unicodedata unicodenumtable
endif
@@ -860,6 +872,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -947,6 +962,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=$(LOADERS)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_LOADERS+=$(LOADERS)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=$(LOADERS)
endif
@@ -1085,6 +1103,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1172,6 +1193,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=math typinfo classes sysconst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=math typinfo classes sysconst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=math typinfo classes sysconst
endif
@@ -1312,6 +1336,9 @@ 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
@@ -1399,6 +1426,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1537,6 +1567,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
endif
@@ -1624,6 +1657,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_SOURCEDIR+=$(INC) $(PROCINC) $(COMMON) $(WINDIR)
endif
@@ -1935,6 +1971,12 @@ 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=
@@ -1980,6 +2022,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -2444,7 +2491,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
diff --git a/rtl/win64/buildrtl.lpi b/rtl/win64/buildrtl.lpi
new file mode 100644
index 0000000000..5d387692d2
--- /dev/null
+++ b/rtl/win64/buildrtl.lpi
@@ -0,0 +1,73 @@
+<?xml version="1.0"?>
+<CONFIG>
+ <ProjectOptions>
+ <Version Value="9"/>
+ <PathDelim Value="\"/>
+ <General>
+ <Flags>
+ <MainUnitHasUsesSectionForAllUnits Value="False"/>
+ <MainUnitHasCreateFormStatements Value="False"/>
+ <MainUnitHasTitleStatement Value="False"/>
+ <Runnable Value="False"/>
+ <LRSInOutputDirectory Value="False"/>
+ </Flags>
+ <SessionStorage Value="InProjectDir"/>
+ <MainUnit Value="0"/>
+ <Title Value="buildrtl"/>
+ </General>
+ <VersionInfo>
+ <StringTable ProductVersion=""/>
+ </VersionInfo>
+ <BuildModes Count="1">
+ <Item1 Name="default" Default="True"/>
+ </BuildModes>
+ <PublishOptions>
+ <Version Value="2"/>
+ <IgnoreBinaries Value="False"/>
+ <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
+ <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
+ </PublishOptions>
+ <RunParams>
+ <local>
+ <FormatVersion Value="1"/>
+ <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
+ </local>
+ </RunParams>
+ <Units Count="1">
+ <Unit0>
+ <Filename Value="buildrtl.pp"/>
+ <IsPartOfProject Value="True"/>
+ <UnitName Value="buildrtl"/>
+ </Unit0>
+ </Units>
+ </ProjectOptions>
+ <CompilerOptions>
+ <Version Value="11"/>
+ <PathDelim Value="\"/>
+ <SearchPaths>
+ <IncludeFiles Value="..\inc;..\x86_64;..\win;..\win\wininc;..\objpas\classes;..\objpas\sysutils;..\objpas"/>
+ <OtherUnitFiles Value="..\objpas;..\objpas\classes;..\objpas\sysutils;..\inc;..\win;..\x86_64"/>
+ <UnitOutputDirectory Value="..\units\x86_64-win64"/>
+ </SearchPaths>
+ <Parsing>
+ <Style Value="2"/>
+ <SyntaxOptions>
+ <UseAnsiStrings Value="False"/>
+ </SyntaxOptions>
+ </Parsing>
+ <Other>
+ <Verbosity>
+ <ShowNotes Value="False"/>
+ <ShowHints Value="False"/>
+ </Verbosity>
+ <ConfigFile>
+ <DontUseConfigFile Value="True"/>
+ </ConfigFile>
+ <CompilerPath Value="$(CompPath)"/>
+ <ExecuteBefore>
+ <Command Value="cmd.exe /c &quot;if not exist ..\units\x86_64-win64 mkdir ..\units\x86_64-win64&quot;"/>
+ <ShowAllMessages Value="True"/>
+ </ExecuteBefore>
+ </Other>
+ </CompilerOptions>
+</CONFIG>
diff --git a/rtl/win64/signals.pp b/rtl/win64/signals.pp
index ce3bf86ec6..b806e25c13 100644
--- a/rtl/win64/signals.pp
+++ b/rtl/win64/signals.pp
@@ -345,6 +345,7 @@ interface
implementation
+{$asmmode att}
const
EXCEPTION_ACCESS_VIOLATION = $c0000005;
diff --git a/rtl/win64/system.pp b/rtl/win64/system.pp
index 4176cedbc1..6da6b2c9ef 100644
--- a/rtl/win64/system.pp
+++ b/rtl/win64/system.pp
@@ -100,6 +100,8 @@ Const
implementation
+{$asmmode att}
+
var
SysInstance : qword;public;
@@ -605,7 +607,6 @@ begin
InitSystemThreads;
end;
SysInitExceptions;
- initwidestringmanager;
initunicodestringmanager;
InitWin32Widestrings;
SysInitStdIO;
@@ -614,6 +615,5 @@ begin
{ Reset IO Error }
InOutRes:=0;
ProcessID := GetCurrentProcessID;
- initvariantmanager;
DispCallByIDProc:=@DoDispCallByIDError;
end.
diff --git a/rtl/wince/Makefile b/rtl/wince/Makefile
index 416f7ee6d4..7a432f598c 100644
--- a/rtl/wince/Makefile
+++ b/rtl/wince/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-04-01 rev 27428]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -345,229 +345,235 @@ GRAPHDIR=$(INC)/graph
include $(WININC)/makefile.inc
WINDOWS_SOURCE_FILES=$(addprefix $(WININC)/,$(addsuffix .inc,$(WINDOWS_FILES)))
ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-haiku)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-nativent)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i386-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
+endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),powerpc-wii)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),powerpc-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
+endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),arm-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),arm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),avr-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),armeb-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),armeb-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),mips-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),mipsel-linux)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),mipsel-embedded)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),mipsel-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),jvm-java)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),jvm-android)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math fpwidestring charset cpall getopts unicodedata unicodenumtable character cmem sharemem
endif
ifeq ($(FULL_TARGET),i8086-msdos)
-override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types fgl classes math charset cpall getopts cmem sharemem
+override TARGET_UNITS+=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings lineinfo heaptrc windows messages dynlibs dos rtlconsts sysconst sysutils typinfo types 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 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
@@ -638,6 +644,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -725,6 +734,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_IMPLICITUNITS+=exeinfo cp1250 cp1251 cp1252 cp1253 cp1254 cp1255 cp1256 cp1257 cp1258 cp437 cp646 cp850 cp856 cp866 cp874 cp8859_1 cp8859_5 cp8859_2 cp852
endif
@@ -864,6 +876,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
endif
@@ -951,6 +966,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_INCLUDEDIR+=$(INC) $(PROCINC) $(RTL)/win
endif
@@ -1089,6 +1107,9 @@ 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
@@ -1176,6 +1197,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
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
@@ -1487,6 +1511,12 @@ 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=
@@ -1532,6 +1562,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1996,7 +2031,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2472,6 +2507,14 @@ ucomplex$(PPUEXT) : $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $(INC)/ucomplex.pp
fpintres$(PPUEXT) : $(INC)/fpintres.pp $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $(INC)/fpintres.pp
+fpwidestring$(PPUEXT): $(OBJPASDIR)/fpwidestring.pp unicodedata$(PPUEXT) charset$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/fpwidestring.pp
+unicodedata$(PPUEXT): $(OBJPASDIR)/unicodedata.pas
+ $(COMPILER) $(OBJPASDIR)/unicodedata.pas
+unicodenumtable$(PPUEXT): $(OBJPASDIR)/unicodenumtable.pas
+ $(COMPILER) $(OBJPASDIR)/unicodenumtable.pas
+character$(PPUEXT): $(OBJPASDIR)/character.pas
+ $(COMPILER) $(OBJPASDIR)/character.pas
ctypes$(PPUEXT) : $(INC)/ctypes.pp $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $(INC)/ctypes.pp
sharemem$(PPUEXT) : $(WINDIR)/sharemem.pp system$(PPUEXT)
diff --git a/rtl/wince/Makefile.fpc b/rtl/wince/Makefile.fpc
index 684e65b230..fbf0d40dd9 100644
--- a/rtl/wince/Makefile.fpc
+++ b/rtl/wince/Makefile.fpc
@@ -12,8 +12,9 @@ units=$(SYSTEMUNIT) uuchar fpintres ctypes objpas macpas iso7185 strings \
dos \
rtlconsts sysconst sysutils \
typinfo types fgl classes \
- math \
+ math fpwidestring \
charset cpall getopts \
+ unicodedata unicodenumtable character \
cmem sharemem
# initc signals \
# crt graph \
@@ -235,6 +236,18 @@ ucomplex$(PPUEXT) : $(INC)/ucomplex.pp math$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)
fpintres$(PPUEXT) : $(INC)/fpintres.pp $(SYSTEMUNIT)$(PPUEXT)
$(COMPILER) $(INC)/fpintres.pp
+fpwidestring$(PPUEXT): $(OBJPASDIR)/fpwidestring.pp unicodedata$(PPUEXT) charset$(PPUEXT)
+ $(COMPILER) $(OBJPASDIR)/fpwidestring.pp
+
+unicodedata$(PPUEXT): $(OBJPASDIR)/unicodedata.pas
+ $(COMPILER) $(OBJPASDIR)/unicodedata.pas
+
+unicodenumtable$(PPUEXT): $(OBJPASDIR)/unicodenumtable.pas
+ $(COMPILER) $(OBJPASDIR)/unicodenumtable.pas
+
+character$(PPUEXT): $(OBJPASDIR)/character.pas
+ $(COMPILER) $(OBJPASDIR)/character.pas
+
#
# Other system-dependent RTL Units
#
diff --git a/rtl/wince/system.pp b/rtl/wince/system.pp
index bfb7cbec6a..f84d193dd9 100644
--- a/rtl/wince/system.pp
+++ b/rtl/wince/system.pp
@@ -1769,7 +1769,6 @@ initialization
ProcessID := GetCurrentProcessID;
{ threading }
InitSystemThreads;
- initvariantmanager;
DispCallByIDProc:=@DoDispCallByIDError;
finalization
diff --git a/rtl/wince/wininc/base.inc b/rtl/wince/wininc/base.inc
index f5134744da..fa3486d877 100644
--- a/rtl/wince/wininc/base.inc
+++ b/rtl/wince/wininc/base.inc
@@ -159,7 +159,7 @@
LP = ^word;
LPBOOL = ^WINBOOL; //windef
- LPBYTE = ^BYTE; //windef
+ LPBYTE = System.pbyte; //windef
LPCCH = PCHAR; //winnt
LPCH = PCHAR; //winnt
@@ -175,7 +175,7 @@
LPCWCH = Pwidechar; //winnt
LPCWSTR = Pwidechar; //winnt
- LPDWORD = ^DWORD; //windef
+ LPDWORD = system.pdword; //windef
LPHANDLE = ^HANDLE; //windef
LPINT = ^longint; //windef
@@ -197,7 +197,7 @@
LPCVOID = pointer; //windef
LPWCH = Pwidechar;
- LPWORD = ^word; //windef
+ LPWORD = system.pword; //windef
LPWSTR = Pwidechar; //winnt
//
diff --git a/rtl/wince/wininc/coredll.inc b/rtl/wince/wininc/coredll.inc
index d44a8cf591..015a3104e1 100644
--- a/rtl/wince/wininc/coredll.inc
+++ b/rtl/wince/wininc/coredll.inc
@@ -2168,6 +2168,7 @@ function GetFileVersionInfoSizeW(lptstrFilename:LPWSTR; lpdwHandle:LPDWORD):DWOR
function GetFileVersionInfoSizeW(lptstrFilename:LPWSTR; var dwHandle:DWORD):DWORD; external KernelDLL name 'GetFileVersionInfoSizeW';
function GetFileVersionInfo(lptstrFilename:LPWSTR; dwHandle:DWORD; dwLen:DWORD; lpData:LPVOID):WINBOOL; external KernelDLL name 'GetFileVersionInfoW';
function GetFileVersionInfoW(lptstrFilename:LPWSTR; dwHandle:DWORD; dwLen:DWORD; lpData:LPVOID):WINBOOL; external KernelDLL name 'GetFileVersionInfoW';
+function GetIconInfo(hIcon: HICON; piconinfo: pIconInfo): BOOL; external KernelDLL name 'GetIconInfo';
function GetIdleTime:DWORD; external KernelDLL name 'GetIdleTime'; // index 399
function GetKeyboardLayout(dwLayout:DWORD):HKL; external KernelDLL name 'GetKeyboardLayout';
function GetKeyboardLayoutList(nBuff:longint; var lpList:HKL):UINT; external KernelDLL name 'GetKeyboardLayoutList';
diff --git a/rtl/x86_64/cpu.pp b/rtl/x86_64/cpu.pp
index 865560c135..ef0f448024 100644
--- a/rtl/x86_64/cpu.pp
+++ b/rtl/x86_64/cpu.pp
@@ -41,6 +41,8 @@ unit cpu;
implementation
+{$asmmode att}
+
var
_AESSupport,
_AVXSupport,
diff --git a/rtl/x86_64/math.inc b/rtl/x86_64/math.inc
index f6ed1a2384..499e566fb0 100644
--- a/rtl/x86_64/math.inc
+++ b/rtl/x86_64/math.inc
@@ -12,7 +12,30 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
+{-------------------------------------------------------------------------
+ Using functions from AMath/DAMath libraries, which are covered by the
+ following license:
+ (C) Copyright 2009-2013 Wolfgang Ehrhardt
+
+ This software is provided 'as-is', without any express or implied warranty.
+ In no event will the authors be held liable for any damages arising from
+ the use of this software.
+
+ Permission is granted to anyone to use this software for any purpose,
+ including commercial applications, and to alter it and redistribute it
+ freely, subject to the following restrictions:
+
+ 1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software in
+ a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+
+ 2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+
+ 3. This notice may not be removed or altered from any source distribution.
+----------------------------------------------------------------------------}
{$push}
{$codealign constmin=16}
@@ -147,25 +170,66 @@ const
{$ifndef FPC_SYSTEM_HAS_EXP}
{$define FPC_SYSTEM_HAS_EXP}
+ { exp function adapted from AMath library (C) Copyright 2009-2013 Wolfgang Ehrhardt
+ * translated into AT&T syntax
+ + PIC support
+ * return +Inf/0 for +Inf/-Inf input, instead of NaN }
function fpc_exp_real(d : ValReal) : ValReal;assembler;compilerproc;
- var
- oldcw,newcw: word;
- asm
- // comes from DJ GPP
+ const
+ ln2hi: double=6.9314718036912382E-001;
+ ln2lo: double=1.9082149292705877E-010;
+ large: single=24576.0;
+ two: single=2.0;
+ half: single=0.5;
+ asm
fldt d
fldl2e
- fmulp %st,%st(1)
- fstcw oldcw
- fstcw newcw
- andw $0xf3ff,newcw
- orw $0x0400,newcw
- fldcw newcw
- fld %st(0)
+ fmul %st(1),%st { z = d * log2(e) }
frndint
- fldcw oldcw
- fxch %st(1)
- fsub %st(1),%st
+ { Calculate frac(z) using modular arithmetic to avoid precision loss }
+ fldl ln2hi(%rip)
+ fmul %st(1),%st
+ fsubrp %st,%st(2)
+ fldl ln2lo(%rip)
+ fmul %st(1),%st
+ fsubrp %st,%st(2)
+ fxch %st(1) { (d-int(z)*ln2_hi)-int(z)*ln2_lo }
+ fldl2e
+ fmulp %st,%st(1) { frac(z) }
+
+ { Above calculation can yield |frac(z)|>1, particularly when rounding mode
+ is not "round to nearest". f2xm1 is undefined in that case, so it's
+ necessary to check }
+ fld %st
+ fabs
+ fld1
+ fcompp
+ fstsw %ax
+ sahf
+ jp .L3 { NaN }
+ jae .L1 { |frac(z)| <= 1, good }
+
+ fld %st(1)
+ fabs
+ fcomps large(%rip)
+ fstsw %ax
+ sahf
+ jb .L0 { int(z) < 24576 }
+ .L3:
+ fstp %st { pop frac(z) and load 0 }
+ fldz
+ jmp .L1
+ .L0:
+ { Calculate 2**frac(z)-1 as N*(N+2), where N=2**(frac(z)/2)-1 }
+ fmuls half(%rip)
+ f2xm1
+ fld %st
+ fadds two(%rip)
+ fmulp %st,%st(1)
+ jmp .L2
+ .L1:
f2xm1
+ .L2:
fld1
faddp %st,%st(1)
fscale
diff --git a/tests/Makefile b/tests/Makefile
index 60512a45ae..605326a3f9 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-03-19 rev 27188]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: allexectests
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -394,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=gparmake
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=gparmake
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=gparmake
endif
@@ -481,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=gparmake
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=gparmake
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=gparmake
endif
@@ -793,6 +799,12 @@ 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=
@@ -838,6 +850,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1259,6 +1276,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1346,6 +1366,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1566,7 +1589,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1596,17 +1619,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
@@ -2110,7 +2139,7 @@ PREPUP=utils/prepup
endif
tstunits:
$(MAKE) -C tstunits FPC_VERSION= FPC=$(TEST_FPC) CPU_TARGET=$(TEST_CPU_TARGET) OS_TARGET=$(TEST_OS_TARGET) 'OPT=$(TEST_OPT)' CCOMPILER=$(TEST_CCOMPILER) BINUTILSPREFIX=$(TEST_BINUTILSPREFIX)
-.PHONY: create_c_objects delete_c_objects copyfiles
+.PHONY: create_c_objects delete_c_objects copyfiles test_c_objects
C_SOURCE_DIR=test/cg/obj
C_SOURCES=ctest.c tcext3.c tcext4.c tcext5.c tcext6.c
CPP_SOURCES=cpptcl1.cpp cpptcl2.cpp
@@ -2269,6 +2298,11 @@ ifndef SINGLEDOTESTRUNS
$(Q)$(DOTEST) $(DOTESTOPT) -e $(wildcard $(addsuffix /t*.pp,$(TESTDIRS)))
endif
alltests: alltest alltbs alltbf allwebtbs allwebtbf
+test_c_objects: testprep
+ $(MAKE) $(patsubst %.pp,%.log, $(wildcard test/cg/cdecl/tcalext*.pp)))
+ $(MAKE) $(patsubst %.pp,%.elg, $(wildcard test/cg/cdecl/tcalext*.pp)))
+ $(MAKE) $(patsubst %.pp,%.log, $(wildcard test/cg/cdecl/tcppcl*.pp)))
+ $(MAKE) $(patsubst %.pp,%.elg, $(wildcard test/cg/cdecl/tcppcl*.pp)))
ifdef SINGLEDOTESTRUNS
.PHONY: allexectbs allexectbf allexecwebtbs allexecwebtbf allexectest allexectests
allexectbs: $(addsuffix .tbslog, $(LOGFILES))
@@ -2294,7 +2328,11 @@ $(TEST_OUTPUTDIR)/%.webtbflog : $(WEBTBFREQ)
$(TEST_OUTPUTDIR)/%.testlog : $(TESTREQ)
$(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/faillist.testlog
$(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/longlog.testlog
-allexectests: $(TEST_OUTPUTDIR)/log.testlog $(TEST_OUTPUTDIR)/log.tbslog $(TEST_OUTPUTDIR)/log.tbflog $(TEST_OUTPUTDIR)/log.webtbslog $(TEST_OUTPUTDIR)/log.webtbflog $(addprefix $(TEST_OUTPUTDIR)/,$(foreach EXT, $(LOGEXT), $(addsuffix $(EXT), faillist longlog))) $(addsuffix .mergedlog, $(LOGFILES))
+allexectests: $(TEST_OUTPUTDIR)/log.testlog $(TEST_OUTPUTDIR)/log.tbslog \
+ $(TEST_OUTPUTDIR)/log.tbflog $(TEST_OUTPUTDIR)/log.webtbslog \
+ $(TEST_OUTPUTDIR)/log.webtbflog \
+ $(addprefix $(TEST_OUTPUTDIR)/,$(foreach EXT, $(LOGEXT), $(addsuffix $(EXT), faillist longlog))) \
+ $(addsuffix .mergedlog, $(LOGFILES))
else
.PHONY: allexectests gparmake_allexectests
MAKEINC=$(TEST_OUTPUTDIR)/MakeChunks-$(TEST_TARGETSUFFIX).inc
@@ -2321,7 +2359,7 @@ clean_sources:
-$(DEL) $(wildcard $(patsubst %.pp,%$(PPUEXT),$(wildcard $(addsuffix /*.pp,$(DIRS)))))
clean_test:
-$(DELTREE) $(TEST_OUTPUTDIR)
- -$(DEL) core gmon.out testprep-stamp.$(TEST_FULL_TARGET) dotgz.bat
+ -$(DEL) core gmon.out testprep-stamp.$(TEST_FULL_TARGET) dotgz$(SRCBATCHEXT)
clean: clean_sources fpc_clean
$(MAKE) clean_test CPU_TARGET=$(TEST_CPU_TARGET) OS_TARGET=$(TEST_OS_TARGET)
$(MAKE) -C tstunits clean CPU_TARGET=$(TEST_CPU_TARGET) OS_TARGET=$(TEST_OS_TARGET)
@@ -2345,6 +2383,9 @@ $(TEST_OUTPUTDIR)/dbdigest.cfg:
$(ECHOREDIR) CPU=$(TEST_CPU_TARGET) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
$(ECHOREDIR) Version=$(TEST_FPC_VERSION) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
$(ECHOREDIR) LogFile=log >> $(TEST_OUTPUTDIR)/dbdigest.cfg
+ifneq ($(TEST_USE_LONGLOG),)
+ $(ECHOREDIR) LongLogFile=longlog >> $(TEST_OUTPUTDIR)/dbdigest.cfg
+endif
$(ECHOREDIR) Submitter=$(TEST_USER) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
$(ECHOREDIR) Machine=$(TEST_HOSTNAME) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
$(ECHOREDIR) Comment=$(TEST_OPT) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
@@ -2368,29 +2409,53 @@ TARFROM=-I tar.lst
else
TARFROM=--files-from=tar.lst
endif
+ifneq ($(TEST_USE_LONGLOG),)
+PREPUP_OPT=-ll
+else
+PREPUP_OPT=
+endif
ifndef inWinDOS
$(TEST_OUTPUTDIR)/tar.lst:
+ifdef inOS2
+ cd $(subst /,\,$(TEST_OUTPUTDIR)) && gnufind . -name "*.log" -o -name "*.elg" > tar.lst
+ $(ECHOREDIR) log>> $(TEST_OUTPUTDIR)/tar.lst
+ $(ECHOREDIR) dbdigest.cfg>> $(TEST_OUTPUTDIR)/tar.lst
+else
+ifeq ($(TEST_USE_LONGLOG),)
cd $(TEST_OUTPUTDIR) && find . -name '*.log' -o -name '*.elg' > tar.lst
+else
+ $(ECHOREDIR) "longlog" > $(TEST_OUTPUTDIR)/tar.lst
+endif
$(ECHOREDIR) "log" >> $(TEST_OUTPUTDIR)/tar.lst
$(ECHOREDIR) "dbdigest.cfg" >> $(TEST_OUTPUTDIR)/tar.lst
+endif
$(TEST_OUTPUTDIR)/$(DB_TARGZ): $(TEST_OUTPUTDIR)/tar.lst $(TEST_OUTPUTDIR)/dbdigest.cfg
ifdef inCygWin
dos2unix $(TEST_OUTPUTDIR)/tar.lst
endif
+ifdef inOS2
+ dos2unix $(TEST_OUTPUTDIR)/tar.lst
+ cd $(subst /,\,$(TEST_OUTPUTDIR)) && $(TARPROG) czf $(DB_TARGZ) $(TARFROM)
+else
cd $(TEST_OUTPUTDIR) && $(TARPROG) czf $(DB_TARGZ) $(TARFROM)
+endif
else
$(TEST_OUTPUTDIR)/$(DB_TARGZ): $(TEST_OUTPUTDIR)/dbdigest.cfg
ifdef inDOS
- $(ECHOREDIR) @echo off > dotgz.bat
- $(ECHOREDIR) cd $(subst /,\,$(TEST_OUTPUTDIR)) >> dotgz.bat
- $(ECHOREDIR) $(subst /,\,../../$(PREPUP)) $(DB_TARGZ) >> dotgz.bat
- $(ECHOREDIR) if errorlevel 1 $(DEL) $(DB_TARGZ) >> dotgz.bat
- $(ECHOREDIR) cd $(subst /,\,../../) >> dotgz.bat
- $(RUNBATCH) dotgz.bat
+ $(ECHOREDIR) @echo off > dotgz$(SRCBATCHEXT)
+ $(ECHOREDIR) cd $(subst /,\,$(TEST_OUTPUTDIR)) >> dotgz$(SRCBATCHEXT)
+ $(ECHOREDIR) $(subst /,\,../../$(PREPUP)) $(DB_TARGZ) >> dotgz$(SRCBATCHEXT)
+ $(ECHOREDIR) if errorlevel 1 $(DEL) $(DB_TARGZ) >> dotgz$(SRCBATCHEXT)
+ $(ECHOREDIR) cd $(subst /,\,../../) >> dotgz$(SRCBATCHEXT)
+ $(RUNBATCH) dotgz$(SRCBATCHEXT)
+else
+ifdef inOS2
+ cd "$(subst /,\,$(TEST_OUTPUTDIR))" && "..\..\$(PREPUP)" $(DB_TARGZ)
else
cd "$(TEST_OUTPUTDIR)" && "../../$(PREPUP)" $(DB_TARGZ)
endif
endif
+endif
ifndef DB_USE_SSH
ifdef inWinDOS
UsePutty=1
@@ -2402,8 +2467,12 @@ ifdef UsePutty
plink -load "fpc@www.freepascal.org" "mv $(DB_UPLOADDIR)/$(DB_TARGZ).part $(DB_UPLOADDIR)/$(DB_TARGZ)"
else
scp $(DB_SSH_EXTRA) $(TEST_OUTPUTDIR)/$(DB_TARGZ) $(DB_HOST):$(DB_UPLOADDIR)/$(DB_TARGZ).part
+ifdef inOS2
+ $(ECHOREDIR) . | ssh $(DB_SSH_EXTRA) $(DB_HOST) "mv $(DB_UPLOADDIR)/$(DB_TARGZ).part $(DB_UPLOADDIR)/$(DB_TARGZ)"
+else
ssh $(DB_SSH_EXTRA) $(DB_HOST) "mv $(DB_UPLOADDIR)/$(DB_TARGZ).part $(DB_UPLOADDIR)/$(DB_TARGZ)"
endif
+endif
all : allexectests
full :
$(MAKE) clean
diff --git a/tests/Makefile.fpc b/tests/Makefile.fpc
index af8b8508d2..e8ae5f6c3b 100644
--- a/tests/Makefile.fpc
+++ b/tests/Makefile.fpc
@@ -215,7 +215,7 @@ tstunits:
# Copy test environment dependent files ctest.o, cext3.o, cext4.o to test/cg etc
#
-.PHONY: create_c_objects delete_c_objects copyfiles
+.PHONY: create_c_objects delete_c_objects copyfiles test_c_objects
C_SOURCE_DIR=test/cg/obj
C_SOURCES=ctest.c tcext3.c tcext4.c tcext5.c tcext6.c
@@ -261,6 +261,7 @@ copyfiles: $(TEST_OUTPUTDIR)
-$(COPY) $(CPP_OBJECTS) $(TEST_OUTPUTDIR)/test/cg
-$(MKDIRTREE) $(TEST_OUTPUTDIR)/test/units/system
+
################################
# Preparation for tests
#
@@ -429,6 +430,12 @@ endif
alltests: alltest alltbs alltbf allwebtbs allwebtbf
+test_c_objects: testprep
+ $(MAKE) $(patsubst %.pp,%.log, $(wildcard test/cg/cdecl/tcalext*.pp)))
+ $(MAKE) $(patsubst %.pp,%.elg, $(wildcard test/cg/cdecl/tcalext*.pp)))
+ $(MAKE) $(patsubst %.pp,%.log, $(wildcard test/cg/cdecl/tcppcl*.pp)))
+ $(MAKE) $(patsubst %.pp,%.elg, $(wildcard test/cg/cdecl/tcppcl*.pp)))
+
################################
# Compile and Run tests
#
@@ -467,7 +474,11 @@ $(TEST_OUTPUTDIR)/%.testlog : $(TESTREQ)
$(Q)$(ECHO) -n >> $(TEST_OUTPUTDIR)/longlog.testlog
# run all tests, then merge log files
-allexectests: $(TEST_OUTPUTDIR)/log.testlog $(TEST_OUTPUTDIR)/log.tbslog $(TEST_OUTPUTDIR)/log.tbflog $(TEST_OUTPUTDIR)/log.webtbslog $(TEST_OUTPUTDIR)/log.webtbflog $(addprefix $(TEST_OUTPUTDIR)/,$(foreach EXT, $(LOGEXT), $(addsuffix $(EXT), faillist longlog))) $(addsuffix .mergedlog, $(LOGFILES))
+allexectests: $(TEST_OUTPUTDIR)/log.testlog $(TEST_OUTPUTDIR)/log.tbslog \
+ $(TEST_OUTPUTDIR)/log.tbflog $(TEST_OUTPUTDIR)/log.webtbslog \
+ $(TEST_OUTPUTDIR)/log.webtbflog \
+ $(addprefix $(TEST_OUTPUTDIR)/,$(foreach EXT, $(LOGEXT), $(addsuffix $(EXT), faillist longlog))) \
+ $(addsuffix .mergedlog, $(LOGFILES))
# SINGLEDOTESTRUNS
else
@@ -480,7 +491,7 @@ $(GPARMAKE): $(COMPILER_UNITTARGETDIR) utils/gparmake.pp
$(FPC) $(FPCOPT) -FE. utils/gparmake.pp $(OPT)
# Can't have testprep as prerequisite, because that is a phony target and
-# phony targets are always remade. Since the makefile will be reparsed
+# phony targets are always remade. Since the makefile will be reparsed
# after making the MakeChunks file (because it has to be included) and all
# up-to-date checks will be re-evaluated, this means that the testprep rule
# (or testprep timestamp file, which depends on phony rules and hence has
@@ -493,7 +504,7 @@ $(GPARMAKE): $(COMPILER_UNITTARGETDIR) utils/gparmake.pp
# building it via the utils Makefile
$(MAKEINC): $(GPARMAKE) $(TEST_OUTPUTDIR)
# generate rules for parallel executions of dotest
-# gparmake now also needs an additional parameter for the name of the
+# gparmake now also needs an additional parameter for the name of the
# used subdirectory. Note also that the index must be increasing for each
# new call with a gap insuring that all the previous files have lower index
# even if CHUNKSIZE is equal to 1.
@@ -527,7 +538,7 @@ allexectests: $(MAKEINC)
# SINGLEDOTESTRUNS
endif
-
+
################################
# Clean
@@ -541,7 +552,7 @@ clean_sources:
clean_test:
-$(DELTREE) $(TEST_OUTPUTDIR)
- -$(DEL) core gmon.out testprep-stamp.$(TEST_FULL_TARGET) dotgz.bat
+ -$(DEL) core gmon.out testprep-stamp.$(TEST_FULL_TARGET) dotgz$(SRCBATCHEXT)
clean: clean_sources fpc_clean
$(MAKE) clean_test CPU_TARGET=$(TEST_CPU_TARGET) OS_TARGET=$(TEST_OS_TARGET)
@@ -579,6 +590,9 @@ $(TEST_OUTPUTDIR)/dbdigest.cfg:
$(ECHOREDIR) CPU=$(TEST_CPU_TARGET) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
$(ECHOREDIR) Version=$(TEST_FPC_VERSION) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
$(ECHOREDIR) LogFile=log >> $(TEST_OUTPUTDIR)/dbdigest.cfg
+ifneq ($(TEST_USE_LONGLOG),)
+ $(ECHOREDIR) LongLogFile=longlog >> $(TEST_OUTPUTDIR)/dbdigest.cfg
+endif
$(ECHOREDIR) Submitter=$(TEST_USER) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
$(ECHOREDIR) Machine=$(TEST_HOSTNAME) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
$(ECHOREDIR) Comment=$(TEST_OPT) >> $(TEST_OUTPUTDIR)/dbdigest.cfg
@@ -606,31 +620,58 @@ else
TARFROM=--files-from=tar.lst
endif
+# Pass option -ll to perpup if we use longlog file
+# instead of add all *.log and *.elg files to DB_TARGZ
+ifneq ($(TEST_USE_LONGLOG),)
+PREPUP_OPT=-ll
+else
+PREPUP_OPT=
+endif
+
ifndef inWinDOS
$(TEST_OUTPUTDIR)/tar.lst:
+ifdef inOS2
+ cd $(subst /,\,$(TEST_OUTPUTDIR)) && gnufind . -name "*.log" -o -name "*.elg" > tar.lst
+ $(ECHOREDIR) log>> $(TEST_OUTPUTDIR)/tar.lst
+ $(ECHOREDIR) dbdigest.cfg>> $(TEST_OUTPUTDIR)/tar.lst
+else
+ifeq ($(TEST_USE_LONGLOG),)
cd $(TEST_OUTPUTDIR) && find . -name '*.log' -o -name '*.elg' > tar.lst
+else
+ $(ECHOREDIR) "longlog" > $(TEST_OUTPUTDIR)/tar.lst
+endif
$(ECHOREDIR) "log" >> $(TEST_OUTPUTDIR)/tar.lst
$(ECHOREDIR) "dbdigest.cfg" >> $(TEST_OUTPUTDIR)/tar.lst
+endif
$(TEST_OUTPUTDIR)/$(DB_TARGZ): $(TEST_OUTPUTDIR)/tar.lst $(TEST_OUTPUTDIR)/dbdigest.cfg
ifdef inCygWin
dos2unix $(TEST_OUTPUTDIR)/tar.lst
endif
+ifdef inOS2
+ dos2unix $(TEST_OUTPUTDIR)/tar.lst
+ cd $(subst /,\,$(TEST_OUTPUTDIR)) && $(TARPROG) czf $(DB_TARGZ) $(TARFROM)
+else
cd $(TEST_OUTPUTDIR) && $(TARPROG) czf $(DB_TARGZ) $(TARFROM)
+endif
else
$(TEST_OUTPUTDIR)/$(DB_TARGZ): $(TEST_OUTPUTDIR)/dbdigest.cfg
ifdef inDOS
- $(ECHOREDIR) @echo off > dotgz.bat
- $(ECHOREDIR) cd $(subst /,\,$(TEST_OUTPUTDIR)) >> dotgz.bat
- $(ECHOREDIR) $(subst /,\,../../$(PREPUP)) $(DB_TARGZ) >> dotgz.bat
- $(ECHOREDIR) if errorlevel 1 $(DEL) $(DB_TARGZ) >> dotgz.bat
- $(ECHOREDIR) cd $(subst /,\,../../) >> dotgz.bat
- $(RUNBATCH) dotgz.bat
+ $(ECHOREDIR) @echo off > dotgz$(SRCBATCHEXT)
+ $(ECHOREDIR) cd $(subst /,\,$(TEST_OUTPUTDIR)) >> dotgz$(SRCBATCHEXT)
+ $(ECHOREDIR) $(subst /,\,../../$(PREPUP)) $(DB_TARGZ) >> dotgz$(SRCBATCHEXT)
+ $(ECHOREDIR) if errorlevel 1 $(DEL) $(DB_TARGZ) >> dotgz$(SRCBATCHEXT)
+ $(ECHOREDIR) cd $(subst /,\,../../) >> dotgz$(SRCBATCHEXT)
+ $(RUNBATCH) dotgz$(SRCBATCHEXT)
+else
+ifdef inOS2
+ cd "$(subst /,\,$(TEST_OUTPUTDIR))" && "..\..\$(PREPUP)" $(DB_TARGZ)
else
cd "$(TEST_OUTPUTDIR)" && "../../$(PREPUP)" $(DB_TARGZ)
endif
endif
+endif
# Use Putty, unless we set DB_USE_SSH to force ssh usage
@@ -647,8 +688,12 @@ ifdef UsePutty
plink -load "fpc@www.freepascal.org" "mv $(DB_UPLOADDIR)/$(DB_TARGZ).part $(DB_UPLOADDIR)/$(DB_TARGZ)"
else
scp $(DB_SSH_EXTRA) $(TEST_OUTPUTDIR)/$(DB_TARGZ) $(DB_HOST):$(DB_UPLOADDIR)/$(DB_TARGZ).part
+ifdef inOS2
+ $(ECHOREDIR) . | ssh $(DB_SSH_EXTRA) $(DB_HOST) "mv $(DB_UPLOADDIR)/$(DB_TARGZ).part $(DB_UPLOADDIR)/$(DB_TARGZ)"
+else
ssh $(DB_SSH_EXTRA) $(DB_HOST) "mv $(DB_UPLOADDIR)/$(DB_TARGZ).part $(DB_UPLOADDIR)/$(DB_TARGZ)"
endif
+endif
all : allexectests
diff --git a/tests/readme.txt b/tests/readme.txt
index 51b7d96f97..fb4aeb585b 100644
--- a/tests/readme.txt
+++ b/tests/readme.txt
@@ -181,7 +181,7 @@ TEST_RSH set this to the hostname when you want to use rsh/rcp
TEST_SSH set this to use ssh/scp to execute the test
TEST_PUTTY test using putty when remote testing (pscp and plink)
TEST_ADB run tests om remote Android device using ADB. Specify
- TEST_ADB=1 to run on default connected device. Specify
+ TEST_ADB=1 to run on default connected device. Specify
TEST_ADB=<serial> to run on specific connected device.
TEST_REMOTEOPT extra options to remote program
TEST_REMOTEPATH set remote path to use, default is /tmp
@@ -268,3 +268,5 @@ On Windows:
- There must be a putty session named fpc@www.freepascal.org which is
enabled to login automatically into www.freepascal.org
+Use TEST_USE_LONGLOG=1 as make parameter to pass information
+to server using longlog file instead of the whole output.
diff --git a/tests/tbf/tb0249.pp b/tests/tbf/tb0249.pp
new file mode 100644
index 0000000000..6fde9cf76b
--- /dev/null
+++ b/tests/tbf/tb0249.pp
@@ -0,0 +1,8 @@
+{ %FAIL }
+
+program tb0249;
+var
+ p: PByte;
+begin
+ p := nil - 5;
+end.
diff --git a/tests/tbf/tb0250.pp b/tests/tbf/tb0250.pp
new file mode 100644
index 0000000000..cc29a9f2ca
--- /dev/null
+++ b/tests/tbf/tb0250.pp
@@ -0,0 +1,22 @@
+{ %FAIL }
+
+program tb0250;
+
+{$mode delphi}
+
+type
+ TTest<T> = class
+ class var
+ fTest: TClass;
+ procedure Test;
+ end;
+
+procedure TTest<T>.Test;
+begin
+ fTest.ToString;
+end;
+
+begin
+
+end.
+
diff --git a/tests/tbs/tb0162.pp b/tests/tbs/tb0162.pp
index e698fe365c..16c10af8ce 100644
--- a/tests/tbs/tb0162.pp
+++ b/tests/tbs/tb0162.pp
@@ -5,10 +5,13 @@
uses sysutils;
+var
+ has_errors: boolean;
+
procedure doerror(l: longint);
begin
writeln('error near ',l);
- halt(1);
+ has_errors:=true;
end;
{$R-}
@@ -20,6 +23,7 @@ var i: integer;
n: int64;
q: qword;
begin
+ has_errors:=false;
i := 32767;
i := i + 15;
b := 255;
@@ -212,5 +216,6 @@ begin
end;
{$endif fpc}
-
+ if has_errors then
+ halt(1);
End.
diff --git a/tests/tbs/tb0524.pp b/tests/tbs/tb0524.pp
index ba10a014b0..3c4df26421 100644
--- a/tests/tbs/tb0524.pp
+++ b/tests/tbs/tb0524.pp
@@ -62,9 +62,9 @@ begin
with saddr do
begin
- family:=af_inet;
- port:=ntobe(word(6667));
- addr:=0;
+ sin_family:=af_inet;
+ sin_port:=ntobe(word(6667));
+ sin_addr:=NoAddress;
end;
if fpbind(lsock,@saddr,sizeof(saddr))<>0 then
diff --git a/tests/tbs/tb0608.pp b/tests/tbs/tb0608.pp
new file mode 100644
index 0000000000..029bf2d71c
--- /dev/null
+++ b/tests/tbs/tb0608.pp
@@ -0,0 +1,9 @@
+const
+ c = {$IF Declared(o) And (o<>Integer(0))}Succ{$IFEND}(False);
+
+ begin
+ if c then
+ halt(1);
+ writeln('ok');
+ end.
+
diff --git a/tests/test/cpu16/i8086/tmmc.pp b/tests/test/cpu16/i8086/tmmc.pp
index 648db5b9e0..4c52ee4e85 100644
--- a/tests/test/cpu16/i8086/tmmc.pp
+++ b/tests/test/cpu16/i8086/tmmc.pp
@@ -25,6 +25,7 @@ program tmml;
var
CS, DS, SS, HS: Word;
HeapP: Pointer;
+ HeapOrgSeg, HeapOrgOfs, HeapEndSeg, HeapEndOfs: Word;
ErrorsFound: Boolean;
procedure Error(const S: string);
@@ -48,10 +49,16 @@ begin
DS := DSeg;
SS := SSeg;
HS := Seg(HeapP^);
+ HeapOrgSeg := Seg(HeapOrg^);
+ HeapOrgOfs := Ofs(HeapOrg^);
+ HeapEndSeg := Seg(HeapEnd^);
+ HeapEndOfs := Ofs(HeapEnd^);
Writeln('PrefixSeg=', PrefixSeg);
Writeln('CS=', CS);
Writeln('DS=', DS);
Writeln('SS=', SS);
+ Writeln('HeapOrg=', HeapOrgSeg, ':', HeapOrgOfs);
+ Writeln('HeapEnd=', HeapEndSeg, ':', HeapEndOfs);
Writeln('Heap Seg=', HS);
if not (PrefixSeg < CS) then
Error('PrefixSeg >= CS');
@@ -63,6 +70,14 @@ begin
Error('DS >= SS');
if not (SS < HS) then
Error('SS >= HeapSeg');
+ if HeapOrgOfs <> 0 then
+ Error('HeapOrg offset <> 0');
+ if HeapEndOfs <> 0 then
+ Error('HeapEnd offset <> 0');
+ if (HeapOrgSeg - SS) <> 1024 then
+ Error('HeapOrgSeg <> SS+1024 (16kb stack)');
+ if (PrefixSeg + MemW[PrefixSeg-1:3]) <> HeapEndSeg then
+ Error('HeapEnd segment <> end_of_current_program_MCB');
FreeMem(HeapP, 5);
if ErrorsFound then
begin
diff --git a/tests/test/cpu16/i8086/tmml.pp b/tests/test/cpu16/i8086/tmml.pp
index fa3346e554..31618d28fe 100644
--- a/tests/test/cpu16/i8086/tmml.pp
+++ b/tests/test/cpu16/i8086/tmml.pp
@@ -21,6 +21,7 @@ program tmml;
var
CS, DS, SS, HS: Word;
HeapP: Pointer;
+ HeapOrgSeg, HeapOrgOfs, HeapEndSeg, HeapEndOfs: Word;
ErrorsFound: Boolean;
procedure Error(const S: string);
@@ -44,10 +45,16 @@ begin
DS := DSeg;
SS := SSeg;
HS := Seg(HeapP^);
+ HeapOrgSeg := Seg(HeapOrg^);
+ HeapOrgOfs := Ofs(HeapOrg^);
+ HeapEndSeg := Seg(HeapEnd^);
+ HeapEndOfs := Ofs(HeapEnd^);
Writeln('PrefixSeg=', PrefixSeg);
Writeln('CS=', CS);
Writeln('DS=', DS);
Writeln('SS=', SS);
+ Writeln('HeapOrg=', HeapOrgSeg, ':', HeapOrgOfs);
+ Writeln('HeapEnd=', HeapEndSeg, ':', HeapEndOfs);
Writeln('Heap Seg=', HS);
if not (PrefixSeg < CS) then
Error('PrefixSeg >= CS');
@@ -57,6 +64,14 @@ begin
Error('DS >= SS');
if not (SS < HS) then
Error('SS >= HeapSeg');
+ if HeapOrgOfs <> 0 then
+ Error('HeapOrg offset <> 0');
+ if HeapEndOfs <> 0 then
+ Error('HeapEnd offset <> 0');
+ if (HeapOrgSeg - SS) <> 1024 then
+ Error('HeapOrgSeg <> SS+1024 (16kb stack)');
+ if (PrefixSeg + MemW[PrefixSeg-1:3]) <> HeapEndSeg then
+ Error('HeapEnd segment <> end_of_current_program_MCB');
FreeMem(HeapP, 5);
if ErrorsFound then
begin
diff --git a/tests/test/cpu16/i8086/ttheap1.pp b/tests/test/cpu16/i8086/ttheap1.pp
new file mode 100644
index 0000000000..362a01fb3d
--- /dev/null
+++ b/tests/test/cpu16/i8086/ttheap1.pp
@@ -0,0 +1,181 @@
+{ %cpu=i8086 }
+
+{ Test for TP7 compatibility of the tiny heap free list in the i8086 far data
+ memory models.
+
+ This test is TP7 compatible. }
+
+{$IFDEF FPC}
+ {$DEFINE SKIP_TEST}
+ {$IFDEF FPC_MM_COMPACT}
+ {$UNDEF SKIP_TEST}
+ {$ENDIF not FPC_MM_COMPACT}
+ {$IFDEF FPC_MM_LARGE}
+ {$UNDEF SKIP_TEST}
+ {$ENDIF not FPC_MM_LARGE}
+ {$IFDEF FPC_MM_HUGE}
+ {$UNDEF SKIP_TEST}
+ {$ENDIF not FPC_MM_HUGE}
+{$ENDIF FPC}
+
+{$IFDEF SKIP_TEST}
+program ttheap1;
+begin
+ Writeln('Test compiled for the wrong memory model. Goodbye!');
+end
+{$ELSE SKIP_TEST}
+
+program ttheap1;
+
+type
+ PHeapBlock = ^THeapBlock;
+ THeapBlock = record
+ Next: PHeapBlock;
+ Size: Pointer;
+ end;
+
+function HexStr(L: LongInt; digits: Integer): string;
+const
+ D: array [0..15] of char = '0123456789ABCDEF';
+var
+ res: string;
+ I: Integer;
+begin
+ res := '';
+ for I := 1 to digits do
+ begin
+ res := D[L and 15] + res;
+ L := L shr 4;
+ end;
+ HexStr := res;
+end;
+
+function PtrStr(P: Pointer): string;
+begin
+ PtrStr := '$' + HexStr(Seg(P^), 4) + ':' + HexStr(Ofs(P^), 4);
+end;
+
+procedure CheckNormalization(P: Pointer);
+begin
+ if Ofs(P^) > 15 then
+ begin
+ Writeln('Pointer not normalized! ', PtrStr(P));
+ Halt(1);
+ end;
+end;
+
+procedure CheckAlignment(P: Pointer);
+begin
+ if (Ofs(P^) mod 8) <> 0 then
+ begin
+ Writeln('Pointer not aligned! ', PtrStr(P));
+ Halt(1);
+ end;
+end;
+
+procedure CheckSequence(P1, P2: Pointer);
+begin
+ if ((LongInt(Seg(P1^)) shl 4) + Ofs(P1^)) >=
+ ((LongInt(Seg(P2^)) shl 4) + Ofs(P2^)) then
+ begin
+ Writeln('Pointer sequence broken: ', PtrStr(P1) , '>=', PtrStr(P2), ' (should be <)');
+ Halt(1);
+ end;
+end;
+
+procedure CheckSequence_AllowEquals(P1, P2: Pointer);
+begin
+ if ((LongInt(Seg(P1^)) shl 4) + Ofs(P1^)) >
+ ((LongInt(Seg(P2^)) shl 4) + Ofs(P2^)) then
+ begin
+ Writeln('Pointer sequence broken: ', PtrStr(P1) , '>', PtrStr(P2), ' (should be <=)');
+ Halt(1);
+ end;
+end;
+
+procedure CheckOverlap(P1, P1Size, P2: Pointer);
+begin
+ if (((LongInt(Seg(P1^)) shl 4) + Ofs(P1^)) +
+ ((LongInt(Seg(P1Size^)) shl 4) + Ofs(P1Size^))) >=
+ ((LongInt(Seg(P2^)) shl 4) + Ofs(P2^)) then
+ begin
+ Writeln('Free list overlap: ', PtrStr(P1), '+', PtrStr(P1Size) , '>=', PtrStr(P2), ' (should be <)');
+ Halt(1);
+ end;
+end;
+
+procedure WalkFreeList;
+var
+ Block: PHeapBlock;
+begin
+ Block := FreeList;
+ repeat
+ CheckNormalization(Block);
+ CheckAlignment(Block);
+ Write(PtrStr(Block), ' : Next=', PtrStr(Block^.Next), ' Size=', PtrStr(Block^.Size));
+ if Block = HeapPtr then
+ begin
+ Writeln(', Reached HeapPtr!');
+ break;
+ end;
+ Writeln;
+ CheckNormalization(Block^.Size);
+ CheckAlignment(Block^.Size);
+ CheckSequence(Block, Block^.Next);
+ CheckOverlap(Block, Block^.Size, Block^.Next);
+ Block := Block^.Next;
+ until false;
+end;
+
+procedure DumpHeap;
+begin
+ Writeln('HeapOrg = ', PtrStr(HeapOrg));
+ Writeln('HeapEnd = ', PtrStr(HeapEnd));
+ Writeln('HeapPtr = ', PtrStr(HeapPtr));
+ Writeln('FreeList = ', PtrStr(FreeList));
+ CheckNormalization(HeapOrg);
+ CheckAlignment(HeapOrg);
+ CheckNormalization(HeapEnd);
+ CheckAlignment(HeapEnd);
+ CheckSequence_AllowEquals(HeapOrg, FreeList);
+ CheckSequence_AllowEquals(HeapPtr, HeapEnd);
+ WalkFreeList;
+end;
+
+procedure RandomMem;
+var
+ I: Integer;
+ Q: array [0..1000] of record
+ p: Pointer;
+ Size: Word;
+ end;
+begin
+ FillChar(Q, SizeOf(Q), 0);
+ for I := 1 to 10000 do
+ begin
+ with Q[Random(1001)] do
+ begin
+ if p = nil then
+ begin
+ Size := Random(100);
+ GetMem(p, Size);
+ end
+ else
+ begin
+ FreeMem(p, Size);
+ p := nil;
+ Size := 0;
+ end;
+ end;
+ end;
+end;
+
+begin
+ Randomize;
+ DumpHeap;
+ RandomMem;
+ DumpHeap;
+ Writeln('Ok!');
+end
+{$ENDIF SKIP_TEST}
+.
diff --git a/tests/test/jvm/testall.bat b/tests/test/jvm/testall.bat
index 22dd423911..cd51c745c1 100644
--- a/tests/test/jvm/testall.bat
+++ b/tests/test/jvm/testall.bat
@@ -295,10 +295,22 @@ if %errorlevel% neq 0 exit /b %errorlevel%
java -Dfile.encoding=UTF-8 -cp ..\..\..\rtl\units\jvm-java;. tptrdynarr
if %errorlevel% neq 0 exit /b %errorlevel%
ppcjvm -O2 -g -B -Sa tprop5a
+if %errorlevel% neq 0 exit /b %errorlevel%
java -Dfile.encoding=UTF-8 -cp ..\..\..\rtl\units\jvm-java;. tprop5a
+if %errorlevel% neq 0 exit /b %errorlevel%
ppcjvm -O2 -g -B -Sa tprop5a -CTautosetterprefix=Set -CTautogetterprefix=Get
+if %errorlevel% neq 0 exit /b %errorlevel%
java -Dfile.encoding=UTF-8 -cp ..\..\..\rtl\units\jvm-java;. tprop5a
+if %errorlevel% neq 0 exit /b %errorlevel%
ppcjvm -O2 -g -B -Sa tprop6a
+if %errorlevel% neq 0 exit /b %errorlevel%
java -Dfile.encoding=UTF-8 -cp ..\..\..\rtl\units\jvm-java;. tprop6a
+if %errorlevel% neq 0 exit /b %errorlevel%
ppcjvm -O2 -g -B -Sa tprop6a -CTautosetterprefix=Set -CTautogetterprefix=Get
+if %errorlevel% neq 0 exit /b %errorlevel%
java -Dfile.encoding=UTF-8 -cp ..\..\..\rtl\units\jvm-java;. tprop6a
+if %errorlevel% neq 0 exit /b %errorlevel%
+ppcjvm -O2 -g -B -CTinitlocals tsetstring
+if %errorlevel% neq 0 exit /b %errorlevel%
+java -Dfile.encoding=UTF-8 -cp ..\..\..\rtl\units\jvm-java;. tsetstring
+if %errorlevel% neq 0 exit /b %errorlevel%
diff --git a/tests/test/jvm/testall.sh b/tests/test/jvm/testall.sh
index 5feb130a08..bb8a1e227d 100755
--- a/tests/test/jvm/testall.sh
+++ b/tests/test/jvm/testall.sh
@@ -182,3 +182,5 @@ $PPC -O2 -g -B -Sa tprop6a
java -Dfile.encoding=UTF-8 -cp ../../../rtl/units/$RTLDIR:. tprop6a
$PPC -O2 -g -B -Sa tprop6a -CTautosetterprefix=Set -CTautogetterprefix=Get
java -Dfile.encoding=UTF-8 -cp ../../../rtl/units/$RTLDIR:. tprop6a
+$PPC -O2 -g -B -Sa tsetstring
+java -Dfile.encoding=UTF-8 -cp ../../../rtl/units/$RTLDIR:. tsetstring
diff --git a/tests/test/jvm/tsetstring.pp b/tests/test/jvm/tsetstring.pp
new file mode 100644
index 0000000000..9f800d8ce9
--- /dev/null
+++ b/tests/test/jvm/tsetstring.pp
@@ -0,0 +1,32 @@
+program tsetstring;
+
+type
+ tstr866 = type ansistring(866);
+
+var
+ str866: tstr866;
+ a: ansistring;
+ u: unicodestring;
+ s: shortstring;
+ pa: pansichar;
+begin
+ setstring(str866,'abcdef',5);
+ if stringcodepage(str866)<>866 then
+ halt(1);
+ if str866<>'abcde' then
+ halt(2);
+ setstring(a,'abc',3);
+ if (stringcodepage(a)<>0) and
+ (stringcodepage(a)<>DefaultSystemCodePage) then
+ halt(3);
+ if a<>'abc' then
+ halt(4);
+ pa:='12345';
+ setstring(u,pa,5);
+ if u<>'12345' then
+ halt(5);
+ setstring(s,pa,5);
+ if s<>'12345' then
+ halt(7);
+end.
+
diff --git a/tests/test/tcpstransistr2widechararray2.pp b/tests/test/tcpstransistr2widechararray2.pp
new file mode 100644
index 0000000000..4b191ac422
--- /dev/null
+++ b/tests/test/tcpstransistr2widechararray2.pp
@@ -0,0 +1,31 @@
+{ this file is stored in utf8, but we don't tell the compiler so that the string
+ constant gets code page 0/CP_ACP; this test is to make sure that
+ fpc_ansistr_to_widechararray() translates CP_ACP to the actual value of
+ DefaultSystemCodePage before calling widestringmanager.ansi2widemoveproc
+}
+
+{$ifdef unix}
+uses
+ cwstring;
+{$endif}
+{$r+}
+var
+ u8: ansistring;
+ a: array[0..10] of unicodechar;
+ u16: unicodestring;
+ i: longint;
+begin
+ DefaultSystemCodePage:=CP_UTF8;
+ u8:='èà';
+ a:=u8;
+ u16:=unicodestring(u8);
+ for i:=0 to 1 do
+ begin
+ writeln('u16[',i-low(a)+low(u16),'] = $',hexstr(ord(u16[i-low(a)+low(u16)]),2));
+ writeln('a[',i,'] = $',hexstr(ord(a[i]),2));
+ if u16[i-low(a)+low(u16)]<>a[i] then
+ halt(i+1);
+ end;
+ if a[2]<>#0 then
+ halt(3);
+end.
diff --git a/tests/test/tgenconstraint37.pp b/tests/test/tgenconstraint37.pp
new file mode 100644
index 0000000000..a9d46c211b
--- /dev/null
+++ b/tests/test/tgenconstraint37.pp
@@ -0,0 +1,35 @@
+{ %NORUN }
+
+program tgenconstraint37;
+
+{$mode objfpc}
+
+type
+ generic TGenericTObject<T: TObject> = class
+ end;
+
+ generic TGenericClass<T: class> = class
+ end;
+
+ generic TGenericIInterface<T: IInterface> = class
+ end;
+
+ TTestObject = class;
+ ITestInterface = interface;
+
+
+ TGenericTObjectTTestObject = specialize TGenericTObject<TTestObject>;
+
+ TGenericClassTTestObject = specialize TGenericClass<TTestObject>;
+
+ TGenericIInterfaceITestInterface = specialize TGenericIInterface<ITestInterface>;
+
+
+ TTestObject = class
+ end;
+
+ ITestInterface = interface
+ end;
+
+begin
+end.
diff --git a/tests/test/tgenconstraint38.pp b/tests/test/tgenconstraint38.pp
new file mode 100644
index 0000000000..95a319e890
--- /dev/null
+++ b/tests/test/tgenconstraint38.pp
@@ -0,0 +1,20 @@
+{ %FAIL }
+
+program tgenconstraint38;
+
+{$mode objfpc}
+
+type
+ generic TGeneric<T: TObject, IInterface> = class
+ end;
+
+ TTest = class;
+
+ TGenericTTest = specialize TGeneric<TTest>;
+
+ TTest = class
+ end;
+
+begin
+
+end.
diff --git a/tests/test/tgenconstraint39.pp b/tests/test/tgenconstraint39.pp
new file mode 100644
index 0000000000..4230178ee1
--- /dev/null
+++ b/tests/test/tgenconstraint39.pp
@@ -0,0 +1,23 @@
+{ %FAIL }
+
+program tgenconstraint39;
+
+{$mode objfpc}
+
+type
+ TSomeClass = class
+ end;
+
+ generic TGeneric<T: TSomeClass> = class
+ end;
+
+ TTest = class;
+
+ TGenericTTest = specialize TGeneric<TTest>;
+
+ TTest = class(TSomeClass)
+ end;
+
+begin
+
+end.
diff --git a/tests/test/tgenconstraint40.pp b/tests/test/tgenconstraint40.pp
new file mode 100644
index 0000000000..a89d14d384
--- /dev/null
+++ b/tests/test/tgenconstraint40.pp
@@ -0,0 +1,23 @@
+{ %FAIL }
+
+program tgenconstraint40;
+
+{$mode objfpc}
+
+type
+ ISomeInterface = interface
+ end;
+
+ generic TGeneric<T: ISomeInterface> = class
+ end;
+
+ ITest = interface;
+
+ TGenericITest = specialize TGeneric<ITest>;
+
+ ITest = interface(ISomeInterface)
+ end;
+
+begin
+
+end.
diff --git a/tests/test/tgeneric97.pp b/tests/test/tgeneric97.pp
new file mode 100644
index 0000000000..cfb1434d53
--- /dev/null
+++ b/tests/test/tgeneric97.pp
@@ -0,0 +1,18 @@
+program tgeneric97;
+
+{$mode objfpc}
+
+type
+ generic TTest<T> = class
+
+ end;
+
+ TTestLongInt = specialize TTest<LongInt>;
+ TTestString = specialize TTest<AnsiString>;
+
+begin
+ if LowerCase(TTestLongInt.ClassName) <> 'ttest<system.longint>' then
+ halt(1);
+ if LowerCase(TTestString.ClassName) <> 'ttest<system.ansistring>' then
+ halt(2);
+end.
diff --git a/tests/test/tgeneric98.pp b/tests/test/tgeneric98.pp
new file mode 100644
index 0000000000..272ba9c1d5
--- /dev/null
+++ b/tests/test/tgeneric98.pp
@@ -0,0 +1,50 @@
+{ %NORUN }
+
+program tgeneric98;
+
+{$mode objfpc}
+
+type
+ generic TTest<T> = class
+ public type
+ TAlias = T;
+ private
+ fField: TAlias;
+ procedure SetField(aValue: TAlias);
+ public
+ property Field: TAlias read fField write SetField;
+ function CalcField: TAlias;
+ end;
+
+ generic TTest2<T> = class
+ public type
+ TTestT = specialize TTest<T>;
+ private
+ fField: TTestT.TAlias;
+ procedure SetField(aValue: TTestT.TAlias);
+ public
+ property Field: TTestT.TAlias read fField write SetField;
+ function CalcField: TTestT.TAlias;
+ end;
+
+procedure TTest.SetField(aValue: TAlias);
+begin
+end;
+
+function TTest.CalcField: TAlias;
+begin
+ Result := Default(TAlias);
+end;
+
+procedure TTest2.SetField(aValue: TTestT.TAlias);
+begin
+end;
+
+function TTest2.CalcField: TTestT.TAlias;
+begin
+ Result := Default(TTestT.TAlias);
+end;
+
+begin
+
+end.
diff --git a/tests/test/thlp47.pp b/tests/test/thlp47.pp
new file mode 100644
index 0000000000..f715006043
--- /dev/null
+++ b/tests/test/thlp47.pp
@@ -0,0 +1,56 @@
+{ This tests that class variables for the various helper kinds work correctly }
+
+program thlp47;
+
+{$mode objfpc}
+{$modeswitch advancedrecords}
+{$modeswitch typehelpers}
+
+type
+ TObjectHelper = class helper for TObject
+ public
+ class procedure Init;
+ public class var
+ Value: LongInt;
+ end;
+
+ TGuidHelper = record helper for TGuid
+ public
+ class procedure Init; static;
+ public class var
+ Value: LongInt;
+ end;
+
+ TLongIntHelper = type helper for LongInt
+ public
+ class procedure Init; static;
+ public class var
+ Value: LongInt;
+ end;
+
+class procedure TObjectHelper.Init;
+begin
+ Value := 42;
+end;
+
+class procedure TGuidHelper.Init;
+begin
+ Value := 21;
+end;
+
+class procedure TLongIntHelper.Init;
+begin
+ Value := 84;
+end;
+
+begin
+ TObject.Init;
+ if TObject.Value <> 42 then
+ Halt(1);
+ TGuid.Init;
+ if TGuid.Value <> 21 then
+ Halt(2);
+ LongInt.Init;
+ if LongInt.Value <> 84 then
+ Halt(3);
+end.
diff --git a/tests/test/thlp48.pp b/tests/test/thlp48.pp
new file mode 100644
index 0000000000..c7895acc71
--- /dev/null
+++ b/tests/test/thlp48.pp
@@ -0,0 +1,24 @@
+{ %fail }
+{ %opt=-vw -Sew }
+
+program thelper;
+
+{$mode objfpc}
+
+type
+ TTest = class;
+
+ TTestHelper = class helper for TTest
+ procedure Test;
+ end;
+
+ TTest = class
+ Test: LongInt;
+ end;
+
+procedure TTestHelper.Test;
+begin
+end;
+
+begin
+end.
diff --git a/tests/test/tisorec1.pp b/tests/test/tisorec1.pp
index 2ab137a600..796df8afab 100644
--- a/tests/test/tisorec1.pp
+++ b/tests/test/tisorec1.pp
@@ -6,7 +6,7 @@ type
1 : (s : array[0..255] of char);
2 : (n : integer);
3 : (w : word; case j : integer of
- 1 : (s : array[0..255] of char);
+ 1 : (t : array[0..255] of char);
2 : (a : integer);
);
end;
diff --git a/tests/test/tisorec4.pp b/tests/test/tisorec4.pp
new file mode 100644
index 0000000000..24e321741a
--- /dev/null
+++ b/tests/test/tisorec4.pp
@@ -0,0 +1,23 @@
+{$mode iso}
+type
+ tr = record
+ l : longint;
+ case integer of
+ 1 : (s : array[0..255] of char);
+ 2 : (n : integer);
+ 3 : (w : word; case j : integer of
+ 1 : (t : array[0..255] of char);
+ 2 : (a : integer);
+ );
+ end;
+ pr = ^tr;
+
+var
+ r : pr;
+begin
+ new(r,3,2);
+ if r^.j<>2 then
+ halt(1);
+ dispose(r);
+ writeln('ok');
+end.
diff --git a/tests/test/tobjc41.pp b/tests/test/tobjc41.pp
new file mode 100644
index 0000000000..7f033f883a
--- /dev/null
+++ b/tests/test/tobjc41.pp
@@ -0,0 +1,24 @@
+{ %target=darwin }
+{ %fail }
+{ %opt=-Sew }
+
+{$mode objfpc}
+{$modeswitch objectivec2}
+
+uses
+ uobjc41;
+
+type
+ NSDictionaryUtilities = objccategory (NSSubject)
+ { the "key" paramter should give a warning because there's already a "key"
+ message in a category for NSObject }
+ function containsKey (key: NSString): boolean; message 'containsKey:';
+ end;
+
+function NSDictionaryUtilities.containsKey (key: NSString): boolean;
+begin
+ result:=false;
+end;
+
+begin
+end.
diff --git a/tests/test/tthlp22.pp b/tests/test/tthlp22.pp
index 57f7bd4d26..ebe02c7e95 100644
--- a/tests/test/tthlp22.pp
+++ b/tests/test/tthlp22.pp
@@ -1,8 +1,8 @@
-{ %FAIL }
+{ %NORUN }
{ type helpers are not parsed if modeswitch typehelpers is not set (mode Delphi) }
-program tthlp20;
+program tthlp22;
{$mode delphi}
diff --git a/tests/test/units/math/troundm.pp b/tests/test/units/math/troundm.pp
new file mode 100644
index 0000000000..9f09721774
--- /dev/null
+++ b/tests/test/units/math/troundm.pp
@@ -0,0 +1,174 @@
+
+
+{ Converting 64-bit integers with more than 53 significant bits to double-precision
+ floating point format is subject to rounding. Hence result depends on rounding mode.
+ The same goes for 32-bit integers with more than 23 significant bits converted to
+ single. }
+uses math;
+
+type
+ TExpected=array[TFPURoundingMode] of qword;
+
+const
+ res1_single: TExpected = (
+ $4E800000,
+ $4E800000,
+ $4E800001,
+ $4E800000
+ );
+
+ res2_single: TExpected = (
+ $4EFFFFFF,
+ $4EFFFFFF,
+ $4F000000,
+ $4EFFFFFF
+ );
+
+ res3_single: TExpected = (
+ $CEFFFFFF,
+ $CF000000,
+ $CEFFFFFF,
+ $CEFFFFFF
+ );
+
+
+ res1: TExpected = (
+ $43D0000000000000,
+ $43D0000000000000,
+ $43D0000000000001,
+ $43D0000000000000
+ );
+
+ res2: TExpected = (
+ $43E0000000000000,
+ $43DFFFFFFFFFFFFF,
+ $43E0000000000000,
+ $43DFFFFFFFFFFFFF
+ );
+
+ res3: TExpected = (
+ qword($C3E0000000000000),
+ qword($C3E0000000000000),
+ qword($C3DFFFFFFFFFFFFF),
+ qword($C3DFFFFFFFFFFFFF)
+ );
+
+var
+ has_errors: boolean=false;
+
+procedure fail;
+begin
+ writeln('Wrong!');
+ has_errors:=true;
+end;
+
+
+procedure test32(x: longint; const res: texpected);
+var
+ y: single;
+ yd: longword absolute y;
+begin
+ writeln('integer value=',hexstr(x,8));
+ y:=x;
+ writeln('rmNearest ',y, ' ',hexstr(yd,8));
+ if yd<>res[rmNearest] then fail;
+
+ setroundmode(rmUp);
+ y:=x;
+ writeln('rmUp ',y, ' ',hexstr(yd,8));
+ if yd<>res[rmUp] then fail;
+
+ setroundmode(rmDown);
+ y:=x;
+ writeln('rmDown ',y, ' ',hexstr(yd,8));
+ if yd<>res[rmDown] then fail;
+
+ setroundmode(rmTruncate);
+ y:=x;
+ writeln('rmTruncate ',y, ' ',hexstr(yd,8));
+ if yd<>res[rmTruncate] then fail;
+end;
+
+
+procedure testint64(x: int64; const res: TExpected);
+var
+ y: double;
+ yq: qword absolute y;
+begin
+ writeln('integer value=',hexstr(x,16));
+ setroundmode(rmNearest);
+ y:=x;
+ writeln('rmNearest ',y, ' ',hexstr(yq,16));
+ if yq<>res[rmNearest] then fail;
+
+ setroundmode(rmUp);
+ y:=x;
+ writeln('rmUp ',y, ' ',hexstr(yq,16));
+ if yq<>res[rmUp] then fail;
+
+ setroundmode(rmDown);
+ y:=x;
+ writeln('rmDown ',y, ' ',hexstr(yq,16));
+ if yq<>res[rmDown] then fail;
+
+ setroundmode(rmTruncate);
+ y:=x;
+ writeln('rmTruncate ',y, ' ',hexstr(yq,16));
+ if yq<>res[rmTruncate] then fail;
+end;
+
+
+procedure testqword(x: qword; const res: TExpected);
+var
+ y: double;
+ yq: qword absolute y;
+begin
+ writeln('integer value=',hexstr(x,16));
+ setroundmode(rmNearest);
+ y:=x;
+ writeln('rmNearest ',y, ' ',hexstr(yq,16));
+ if yq<>res[rmNearest] then fail;
+
+ setroundmode(rmUp);
+ y:=x;
+ writeln('rmUp ',y, ' ',hexstr(yq,16));
+ if yq<>res[rmUp] then fail;
+
+ setroundmode(rmDown);
+ y:=x;
+ writeln('rmDown ',y, ' ',hexstr(yq,16));
+ if yq<>res[rmDown] then fail;
+
+ setroundmode(rmTruncate);
+ y:=x;
+ writeln('rmTruncate ',y, ' ',hexstr(yq,16));
+ if yq<>res[rmTruncate] then fail;
+end;
+
+
+begin
+ writeln('Testing longint->single conversion');
+ test32($40000001,res1_single);
+ writeln;
+ test32($7fffffff,res2_single);
+ writeln;
+ test32(longint($80000001),res3_single);
+ writeln;
+
+ writeln('Testing int64->double conversion');
+ testint64($4000000000000001,res1);
+ writeln;
+ testint64($7fffffffffffffff,res2);
+ writeln;
+ testint64(int64($8000000000000001),res3);
+ writeln;
+
+ writeln('Testing qword->double conversion');
+ testqword($4000000000000001,res1);
+ writeln;
+ testqword($7fffffffffffffff,res2);
+ writeln;
+
+ if has_errors then
+ halt(1);
+end.
diff --git a/tests/test/units/system/tfloatrecs.pp b/tests/test/units/system/tfloatrecs.pp
new file mode 100644
index 0000000000..776ba361b8
--- /dev/null
+++ b/tests/test/units/system/tfloatrecs.pp
@@ -0,0 +1,273 @@
+uses
+ Math;
+
+procedure do_error(i : longint);
+ begin
+ writeln('Error near ',i);
+ halt(1);
+ end;
+
+var
+{$ifdef FPC_HAS_TYPE_EXTENDED}
+ extended_NaN,extended_Inf,extended_NInf,extended_NDenormal,extended_Denormal,extended_Zero,extended_NZero,
+ extended_Positive,extended_Negative,extended_InvalidOp : extended;
+{$endif FPC_HAS_TYPE_EXTENDED}
+{$ifdef FPC_HAS_TYPE_DOUBLE}
+ double_NaN,double_Inf,double_NInf,double_NDenormal,double_Denormal,double_Zero,double_NZero,
+ double_Positive,double_Negative : double;
+{$endif FPC_HAS_TYPE_DOUBLE}
+{$ifdef FPC_HAS_TYPE_SINGLE}
+ single_NaN,single_Inf,single_NInf,single_NDenormal,single_Denormal,single_Zero,single_NZero,
+ single_Positive,single_Negative : single;
+{$endif FPC_HAS_TYPE_SINGLE}
+
+begin
+{$ifdef FPC_HAS_TYPE_EXTENDED}
+ extended_NaN:=NaN;
+
+ extended_Inf:=Infinity;
+
+ extended_NInf:=-Infinity;
+
+ extended_Denormal:=1234.0;
+ TExtended80Rec(extended_Denormal).Exp:=0;
+
+ extended_NDenormal:=-1234.0;
+ TExtended80Rec(extended_NDenormal).Exp:=0;
+
+ extended_Zero:=0.0;
+
+ extended_NZero:=0.0;
+ TExtended80Rec(extended_NZero).Sign:=true;
+
+ extended_Positive:=Pi*10;
+
+ extended_Negative:=-Pi*10;
+
+ extended_InvalidOp:=0;
+ TExtended80Rec(extended_InvalidOp).Exp:=$7fff;
+
+ if TExtended80Rec(extended_NaN).SpecialType<>fsNaN then
+ do_error(1);
+
+ if TExtended80Rec(extended_Inf).SpecialType<>fsInf then
+ do_error(2);
+
+ if TExtended80Rec(extended_NInf).SpecialType<>fsNInf then
+ do_error(3);
+
+ if TExtended80Rec(extended_Denormal).SpecialType<>fsDenormal then
+ do_error(4);
+
+ if TExtended80Rec(extended_NDenormal).SpecialType<>fsNDenormal then
+ do_error(5);
+
+ if TExtended80Rec(extended_Zero).SpecialType<>fsZero then
+ do_error(6);
+
+ if TExtended80Rec(extended_NZero).SpecialType<>fsNZero then
+ do_error(7);
+
+ if TExtended80Rec(extended_Positive).SpecialType<>fsPositive then
+ do_error(8);
+
+ if TExtended80Rec(extended_Negative).SpecialType<>fsNegative then
+ do_error(9);
+
+ if TExtended80Rec(extended_InvalidOp).SpecialType<>fsInvalidOp then
+ do_error(10);
+
+ if TExtended80Rec(extended_Positive).Mantissa<>$7B53D14AA9C2F2C2 then
+ do_error(11);
+
+ if TExtended80Rec(extended_Positive).Fraction<>4.15926535897932384694E-0001 then
+ do_error(12);
+
+ if TExtended80Rec(extended_Positive).Exponent<>4 then
+ do_error(13);
+
+ if TExtended80Rec(extended_Positive).Sign then
+ do_error(14);
+
+ if TExtended80Rec(extended_Positive).Exp<>$4003 then
+ do_error(15);
+
+ if TExtended80Rec(extended_Negative).Mantissa<>$7B53D14AA9C2F2C2 then
+ do_error(16);
+
+ if TExtended80Rec(extended_Negative).Fraction<>-4.15926535897932384694E-0001 then
+ do_error(17);
+
+ if TExtended80Rec(extended_Negative).Exponent<>4 then
+ do_error(18);
+
+ if not(TExtended80Rec(extended_Negative).Sign) then
+ do_error(19);
+
+ if TExtended80Rec(extended_Negative).Exp<>$4003 then
+ do_error(20);
+{$endif FPC_HAS_TYPE_EXTENDED}
+
+{$ifdef FPC_HAS_TYPE_DOUBLE}
+ double_NaN:=NaN;
+
+ double_Inf:=Infinity;
+
+ double_NInf:=-Infinity;
+
+ double_Denormal:=1234.0;
+ TDoubleRec(double_Denormal).Exp:=0;
+
+ double_NDenormal:=-1234.0;
+ TDoubleRec(double_NDenormal).Exp:=0;
+
+ double_Zero:=0.0;
+
+ double_NZero:=0.0;
+ TDoubleRec(double_NZero).Sign:=true;
+
+ double_Positive:=Pi*10;
+
+ double_Negative:=-Pi*10;
+
+ if TDoubleRec(double_NaN).SpecialType<>fsNaN then
+ do_error(101);
+
+ if TDoubleRec(double_Inf).SpecialType<>fsInf then
+ do_error(102);
+
+ if TDoubleRec(double_NInf).SpecialType<>fsNInf then
+ do_error(103);
+
+ if TDoubleRec(double_Denormal).SpecialType<>fsDenormal then
+ do_error(104);
+
+ if TDoubleRec(double_NDenormal).SpecialType<>fsNDenormal then
+ do_error(105);
+
+ if TDoubleRec(double_Zero).SpecialType<>fsZero then
+ do_error(106);
+
+ if TDoubleRec(double_NZero).SpecialType<>fsNZero then
+ do_error(107);
+
+ if TDoubleRec(double_Positive).SpecialType<>fsPositive then
+ do_error(108);
+
+ if TDoubleRec(double_Negative).SpecialType<>fsNegative then
+ do_error(109);
+
+ if TDoubleRec(double_Positive).Mantissa<>$000F6A7A2955385E then
+ do_error(111);
+
+ if TDoubleRec(double_Positive).Fraction<>4.15926535897931159980E-0001 then
+ do_error(112);
+
+ if TDoubleRec(double_Positive).Exponent<>4 then
+ do_error(113);
+
+ if TDoubleRec(double_Positive).Sign then
+ do_error(114);
+
+ if TDoubleRec(double_Positive).Exp<>$403 then
+ do_error(115);
+
+ if TDoubleRec(double_Negative).Mantissa<>$000F6A7A2955385E then
+ do_error(116);
+
+ if TDoubleRec(double_Negative).Fraction<>-4.15926535897931159980E-0001 then
+ do_error(117);
+
+ if TDoubleRec(double_Negative).Exponent<>4 then
+ do_error(118);
+
+ if not(TDoubleRec(double_Negative).Sign) then
+ do_error(119);
+
+ if TDoubleRec(double_Negative).Exp<>$403 then
+ do_error(120);
+{$endif FPC_HAS_TYPE_DOUBLE}
+
+{$ifdef FPC_HAS_TYPE_DOUBLE}
+ single_NaN:=NaN;
+
+ single_Inf:=Infinity;
+
+ single_NInf:=-Infinity;
+
+ single_Denormal:=1234.0;
+ TSingleRec(single_Denormal).Exp:=0;
+
+ single_NDenormal:=-1234.0;
+ TSingleRec(single_NDenormal).Exp:=0;
+
+ single_Zero:=0.0;
+
+ single_NZero:=0.0;
+ TSingleRec(single_NZero).Sign:=true;
+
+ single_Positive:=Pi*10;
+
+ single_Negative:=-Pi*10;
+
+ if TSingleRec(single_NaN).SpecialType<>fsNaN then
+ do_error(201);
+
+ if TSingleRec(single_Inf).SpecialType<>fsInf then
+ do_error(202);
+
+ if TSingleRec(single_NInf).SpecialType<>fsNInf then
+ do_error(203);
+
+ if TSingleRec(single_Denormal).SpecialType<>fsDenormal then
+ do_error(204);
+
+ if TSingleRec(single_NDenormal).SpecialType<>fsNDenormal then
+ do_error(205);
+
+ if TSingleRec(single_Zero).SpecialType<>fsZero then
+ do_error(206);
+
+ if TSingleRec(single_NZero).SpecialType<>fsNZero then
+ do_error(207);
+
+ if TSingleRec(single_Positive).SpecialType<>fsPositive then
+ do_error(208);
+
+ if TSingleRec(single_Negative).SpecialType<>fsNegative then
+ do_error(209);
+
+ if TSingleRec(single_Positive).Mantissa<>$7b53d1 then
+ do_error(211);
+
+ if TSingleRec(single_Positive).Fraction<>4.15925979614257812500E-0001 then
+ do_error(212);
+
+ if TSingleRec(single_Positive).Exponent<>4 then
+ do_error(213);
+
+ if TSingleRec(single_Positive).Sign then
+ do_error(214);
+
+ if TSingleRec(single_Positive).Exp<>$83 then
+ do_error(215);
+
+ if TSingleRec(single_Negative).Mantissa<>$7b53d1 then
+ do_error(216);
+
+ if TSingleRec(single_Negative).Fraction<>-4.15925979614257812500E-0001 then
+ do_error(217);
+
+ if TSingleRec(single_Negative).Exponent<>4 then
+ do_error(218);
+
+ if not(TSingleRec(single_Negative).Sign) then
+ do_error(219);
+
+ if TSingleRec(single_Negative).Exp<>$83 then
+ do_error(220);
+{$endif FPC_HAS_TYPE_DOUBLE}
+
+ writeln('ok');
+end.
+
diff --git a/tests/test/units/system/tio.pp b/tests/test/units/system/tio.pp
index 5cbf2fb080..e8d3a23640 100644
--- a/tests/test/units/system/tio.pp
+++ b/tests/test/units/system/tio.pp
@@ -124,6 +124,24 @@ begin
WriteLn('Passed!');
end;
+procedure test_already_closed_close;
+begin
+ Write('closing already closed file...(IOResult=103 expected) ');
+ Close(F);
+ test(IOResult, 103);
+ WriteLn('Passed!');
+end;
+
+procedure test_not_yet_open_close(name : string);
+begin
+ Write('closing assigned only file...(IOResult=103 expected) ');
+ Assign(F,name);
+ test(IOResult,0);
+ Close(F);
+ test(IOResult, 103);
+ WriteLn('Passed!');
+end;
+
procedure test_rename(oldname, newname : shortstring);
begin
@@ -150,6 +168,7 @@ Begin
{------------------------ create and play with a new file --------------------------}
FillChar(readData,DATA_SIZE,0);
+ test_not_yet_open_close(FILE_NAME);
test_do_open(FILE_NAME, MODE_REWRITE);
test_do_write(DATA, DATA_SIZE);
test_do_filesize(DATA_SIZE);
@@ -174,6 +193,7 @@ Begin
RunError(255);
*)
test_do_close;
+ test_already_closed_close;
{------------------------ create and play with an old file --------------------------}
FillChar(readData,DATA_SIZE,0);
test_do_open(FILE_NAME2, MODE_REWRITE);
diff --git a/tests/test/units/sysutils/tencodingtest.pp b/tests/test/units/sysutils/tencodingtest.pp
index 04e7a61c49..2e88f2c4dd 100644
--- a/tests/test/units/sysutils/tencodingtest.pp
+++ b/tests/test/units/sysutils/tencodingtest.pp
@@ -44,6 +44,11 @@ begin
SetString(S, PAnsiChar(Bytes), Length(Bytes));
if not CompareMem(Pointer(S), Pointer(Cp866String), Length(S)) then
halt(1);
+ if StringCodePage(S)<>DefaultSystemCodePage then
+ halt(11);
+ SetString(Cp1251String,pchar(Cp1251String),length(Cp1251String));
+ if StringCodePage(Cp1251String)<>1251 then
+ halt(12);
U1 := Cp866Encoding.GetString(Bytes);
U2 := TEncoding.Unicode.GetString(TEncoding.Convert(Cp866Encoding, TEncoding.Unicode, Bytes));
if U1 <> U2 then
diff --git a/tests/test/units/variants/tw26370.pp b/tests/test/units/variants/tw26370.pp
new file mode 100644
index 0000000000..ae816390a4
--- /dev/null
+++ b/tests/test/units/variants/tw26370.pp
@@ -0,0 +1,19 @@
+{$mode objfpc}
+uses Variants;
+
+procedure test;
+var
+ Bounds: Array [0..1] of TVarArrayBound;
+ V1, V2: Variant;
+begin
+ Bounds[0].lowbound := 0;
+ Bounds[0].elementcount := 1;
+ Bounds[1].lowbound := 0;
+ Bounds[1].elementcount := 0;
+ V1 := VarArrayCreate(@Bounds, 2, varVariant);
+ V2 := V1; // <- Exception EVariantBadIndexError!!!!!
+end;
+
+begin
+ test;
+end. \ No newline at end of file
diff --git a/tests/test/units/variants/tw27044.pp b/tests/test/units/variants/tw27044.pp
new file mode 100644
index 0000000000..7edaee5acf
--- /dev/null
+++ b/tests/test/units/variants/tw27044.pp
@@ -0,0 +1,28 @@
+{ %norun }
+{ Test that invoking methods on Variant that are function results, etc.
+ compiles without errors. }
+{$mode delphi}{$H+}
+
+uses SysUtils,variants;
+
+type
+ TTest = class
+ private
+ FObj: IDispatch;
+ function GetObj: OleVariant;
+ public
+ property Obj: OleVariant read GetObj;
+ end;
+
+var tst: TTest;
+
+function TTest.GetObj: OleVariant;
+begin
+ Result := FObj;
+end;
+
+begin
+ variant(0).foo;
+ tst.Obj.bar;
+end.
+
diff --git a/tests/test/uobjc41.pp b/tests/test/uobjc41.pp
new file mode 100644
index 0000000000..e711b49ef1
--- /dev/null
+++ b/tests/test/uobjc41.pp
@@ -0,0 +1,23 @@
+{$mode objfpc}
+{$modeswitch objectivec2}
+
+unit uobjc41;
+
+interface
+
+type
+ NSSubject = objcclass(NSObject)
+ end;
+
+ MyCategory = objccategory(NSObject)
+ procedure key; message 'key';
+ end;
+
+implementation
+
+procedure MyCategory.key;
+begin
+end;
+
+begin
+end.
diff --git a/tests/tstunits/Makefile b/tests/tstunits/Makefile
index 39a1d5baa1..3c28a7e76e 100644
--- a/tests/tstunits/Makefile
+++ b/tests/tstunits/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=erroru popuperr ptest
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=erroru popuperr ptest
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=erroru popuperr ptest
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=erroru popuperr ptest
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=erroru popuperr ptest
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=erroru popuperr ptest
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=erroru popuperr ptest
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=erroru popuperr ptest
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=erroru popuperr ptest
endif
@@ -611,6 +626,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_TARGETDIR+=$(TARGETSUFFIX)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_TARGETDIR+=$(TARGETSUFFIX)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_TARGETDIR+=$(TARGETSUFFIX)
endif
@@ -698,6 +716,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_TARGETDIR+=$(TARGETSUFFIX)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_TARGETDIR+=$(TARGETSUFFIX)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_TARGETDIR+=$(TARGETSUFFIX)
endif
@@ -752,6 +773,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_TARGETDIR+=$(TARGETSUFFIX)
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_TARGETDIR+=$(TARGETSUFFIX)
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_TARGETDIR+=$(TARGETSUFFIX)
endif
@@ -1006,6 +1030,12 @@ 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=
@@ -1051,6 +1081,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1515,7 +1550,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1545,17 +1580,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
diff --git a/tests/utils/Makefile b/tests/utils/Makefile
index 0847de00c9..dd3b6b4537 100644
--- a/tests/utils/Makefile
+++ b/tests/utils/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=dotest fptime fail testfail digest concat $(DBDIGEST)
endif
@@ -610,6 +625,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_PROGRAMS+=dbdigest dbconfig
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_PROGRAMS+=dbdigest dbconfig
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_PROGRAMS+=dbdigest dbconfig
endif
@@ -697,6 +715,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_PROGRAMS+=dbdigest dbconfig
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_PROGRAMS+=dbdigest dbconfig
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_PROGRAMS+=dbdigest dbconfig
endif
@@ -751,6 +772,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_PROGRAMS+=dbdigest dbconfig
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_PROGRAMS+=dbdigest dbconfig
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_PROGRAMS+=dbdigest dbconfig
endif
@@ -1006,6 +1030,12 @@ 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=
@@ -1051,6 +1081,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1515,7 +1550,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1545,17 +1580,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/tests/utils/avx/asmtestgenerator.pas b/tests/utils/avx/asmtestgenerator.pas
index 47c586d1dc..b642c0f712 100644
--- a/tests/utils/avx/asmtestgenerator.pas
+++ b/tests/utils/avx/asmtestgenerator.pas
@@ -28,7 +28,8 @@ uses BaseList, Classes;
type
TOpType = (otUnknown, otXMMReg, otXMMRM, otXMMRM16, otXMMRM8, otYMMReg, otYMMRM, otEAX, otRAX, otMem32,
- otMem8, otMem16, otMem64, otMem128, otMem256, otREG64, otREG32, otRM32, otRM64, otIMM8);
+ otMem8, otMem16, otMem64, otMem128, otMem256, otREG64, otREG32, otRM32, otRM64, otIMM8,
+ otXMEM32, otXMEM64, otYMEM32, otYMEM64);
TOperandListItem = class(TObject)
private
@@ -58,6 +59,8 @@ type
end;
+ { TAsmTestGenerator }
+
TAsmTestGenerator = class(TObject)
private
FReg32Base : TStringList;
@@ -66,10 +69,15 @@ type
FReg64Index : TStringList;
FReg6432Base : TStringList;
FReg6432Index : TStringList;
+ FReg32XMMIndex : TStringList;
+ FReg32YMMIndex : TStringList;
+ FReg64XMMIndex : TStringList;
+ FReg64YMMIndex : TStringList;
Fx64: boolean;
procedure MemRegBaseIndexCombi(const aPrefix: String; aSLBaseReg, aSLIndexReg, aRList: TStringList);
+ procedure VectorMemRegBaseIndexCombi(const aPrefix: String; aSLBaseReg, aSLIndexReg, aRList: TStringList);
function InternalCalcTestData(const aInst, aOp1, aOp2, aOp3, aOp4: String): TStringList;
public
@@ -583,6 +591,76 @@ begin
Item.Values.Add('0');
end
+ else if AnsiSameText(sl_Operand, 'XMEM32') then
+ begin
+ Item.OpNumber := il_Op;
+ Item.OpTyp := otXMEM32;
+ Item.OpActive := true;
+
+ if UsePrefix then sl_Prefix := 'oword ';
+
+ if x64 then
+ begin
+ VectorMemRegBaseIndexCombi(sl_prefix, FReg64Base, FReg64XMMIndex, Item.Values);
+ end
+ else
+ begin
+ VectorMemRegBaseIndexCombi(sl_prefix, FReg32Base, FReg32XMMIndex, Item.Values);
+ end;
+ end
+ else if AnsiSameText(sl_Operand, 'XMEM64') then
+ begin
+ Item.OpNumber := il_Op;
+ Item.OpTyp := otXMEM64;
+ Item.OpActive := true;
+
+ if UsePrefix then sl_Prefix := 'oword ';
+
+ if x64 then
+ begin
+ VectorMemRegBaseIndexCombi(sl_prefix, FReg64Base, FReg64XMMIndex, Item.Values);
+ end
+ else
+ begin
+ VectorMemRegBaseIndexCombi(sl_prefix, FReg32Base, FReg32XMMIndex, Item.Values);
+ end;
+ end
+ else if AnsiSameText(sl_Operand, 'YMEM32') then
+ begin
+ Item.OpNumber := il_Op;
+ Item.OpTyp := otYMEM32;
+ Item.OpActive := true;
+
+ if UsePrefix then sl_Prefix := 'yword ';
+
+ if x64 then
+ begin
+ VectorMemRegBaseIndexCombi(sl_prefix, FReg64Base, FReg64YMMIndex, Item.Values);
+ end
+ else
+ begin
+ VectorMemRegBaseIndexCombi(sl_prefix, FReg32Base, FReg32YMMIndex, Item.Values);
+ end;
+ end
+ else if AnsiSameText(sl_Operand, 'YMEM64') then
+ begin
+ Item.OpNumber := il_Op;
+ Item.OpTyp := otYMEM64;
+ Item.OpActive := true;
+
+ if UsePrefix then sl_Prefix := 'yword ';
+
+ if x64 then
+ begin
+ VectorMemRegBaseIndexCombi(sl_prefix, FReg64Base, FReg64YMMIndex, Item.Values);
+ end
+ else
+ begin
+ VectorMemRegBaseIndexCombi(sl_prefix, FReg32Base, FReg32YMMIndex, Item.Values);
+ end;
+ end
+
+
else
begin
Item.OpNumber := il_Op;
@@ -590,7 +668,8 @@ begin
Item.OpActive := false;
Item.Values.Add('');
- end;
+ end
+
end;
sl_RegCombi := '';
@@ -755,6 +834,11 @@ begin
FReg64Index := TStringList.Create;
FReg6432Base := TStringList.Create;
FReg6432Index := TStringList.Create;
+ FReg32XMMIndex := TStringList.Create;
+ FReg32YMMIndex := TStringList.Create;
+ FReg64XMMIndex := TStringList.Create;
+ FReg64YMMIndex := TStringList.Create;
+
FReg32Base.Add('EAX');
FReg32Base.Add('EBX');
@@ -840,6 +924,60 @@ begin
FReg6432Index.Add('R13D');
FReg6432Index.Add('R14D');
FReg6432Index.Add('R15D');
+
+ FReg32XMMIndex.ADD('XMM0');
+ FReg32XMMIndex.ADD('XMM1');
+ FReg32XMMIndex.ADD('XMM2');
+ FReg32XMMIndex.ADD('XMM3');
+ FReg32XMMIndex.ADD('XMM4');
+ FReg32XMMIndex.ADD('XMM5');
+ FReg32XMMIndex.ADD('XMM6');
+ FReg32XMMIndex.ADD('XMM7');
+
+ FReg32YMMIndex.ADD('YMM0');
+ FReg32YMMIndex.ADD('YMM1');
+ FReg32YMMIndex.ADD('YMM2');
+ FReg32YMMIndex.ADD('YMM3');
+ FReg32YMMIndex.ADD('YMM4');
+ FReg32YMMIndex.ADD('YMM5');
+ FReg32YMMIndex.ADD('YMM6');
+ FReg32YMMIndex.ADD('YMM7');
+
+ FReg64XMMIndex.ADD('XMM0');
+ FReg64XMMIndex.ADD('XMM1');
+ FReg64XMMIndex.ADD('XMM2');
+ FReg64XMMIndex.ADD('XMM3');
+ FReg64XMMIndex.ADD('XMM4');
+ FReg64XMMIndex.ADD('XMM5');
+ FReg64XMMIndex.ADD('XMM6');
+ FReg64XMMIndex.ADD('XMM7');
+ FReg64XMMIndex.ADD('XMM8');
+ FReg64XMMIndex.ADD('XMM9');
+ FReg64XMMIndex.ADD('XMM10');
+ FReg64XMMIndex.ADD('XMM11');
+ FReg64XMMIndex.ADD('XMM12');
+ FReg64XMMIndex.ADD('XMM13');
+ FReg64XMMIndex.ADD('XMM14');
+ FReg64XMMIndex.ADD('XMM15');
+
+
+ FReg64YMMIndex.ADD('YMM0');
+ FReg64YMMIndex.ADD('YMM1');
+ FReg64YMMIndex.ADD('YMM2');
+ FReg64YMMIndex.ADD('YMM3');
+ FReg64YMMIndex.ADD('YMM4');
+ FReg64YMMIndex.ADD('YMM5');
+ FReg64YMMIndex.ADD('YMM6');
+ FReg64YMMIndex.ADD('YMM7');
+ FReg64YMMIndex.ADD('YMM8');
+ FReg64YMMIndex.ADD('YMM9');
+ FReg64YMMIndex.ADD('YMM10');
+ FReg64YMMIndex.ADD('YMM11');
+ FReg64YMMIndex.ADD('YMM12');
+ FReg64YMMIndex.ADD('YMM13');
+ FReg64YMMIndex.ADD('YMM14');
+ FReg64YMMIndex.ADD('YMM15');
+
end;
destructor TAsmTestGenerator.Destroy;
@@ -851,6 +989,11 @@ begin
FreeAndNil(FReg6432Base);
FreeAndNil(FReg6432Index);
+ FreeAndNil(FReg32XMMIndex);
+ FreeAndNil(FReg32YMMIndex);
+ FreeAndNil(FReg64XMMIndex);
+ FreeAndNil(FReg64YMMIndex);
+
inherited;
end;
@@ -880,6 +1023,51 @@ begin
end;
end;
+procedure TAsmTestGenerator.VectorMemRegBaseIndexCombi(const aPrefix: String;
+ aSLBaseReg, aSLIndexReg, aRList: TStringList);
+var
+ il_Base: integer;
+ il_Index: integer;
+begin
+
+ //for il_Index := 0 to aSLIndexReg.Count - 1 do
+ //begin
+ // aRList.Add(format(aPrefix + '[%s]', [aSLIndexReg[il_Index]]));
+ //
+ // aRList.Add(format(aPrefix + '[%s * 2]', [aSLIndexReg[il_Index]]));
+ // aRList.Add(format(aPrefix + '[%s * 4]', [aSLIndexReg[il_Index]]));
+ // aRList.Add(format(aPrefix + '[%s * 8]', [aSLIndexReg[il_Index]]));
+ //
+ // aRList.Add(format(aPrefix + '[%s * 2 + 16]', [aSLIndexReg[il_Index]]));
+ // aRList.Add(format(aPrefix + '[%s * 4 + 32]', [aSLIndexReg[il_Index]]));
+ // aRList.Add(format(aPrefix + '[%s * 8 + 48]', [aSLIndexReg[il_Index]]));
+ //end;
+
+
+ for il_Base := 0 to aSLBaseReg.Count - 1 do
+ begin
+ //aRList.Add(format(aPrefix + '[%s]', [aSLBaseReg[il_Base]]));
+
+ for il_Index := 0 to aSLIndexReg.Count - 1 do
+ begin
+ aRList.Add(format(aPrefix + '[%s + %s]', [aSLBaseReg[il_Base], aSLIndexReg[il_Index]]));
+
+ aRList.Add(format(aPrefix + '[%s + %s * 2]', [aSLBaseReg[il_Base], aSLIndexReg[il_Index]]));
+ aRList.Add(format(aPrefix + '[%s + %s * 4]', [aSLBaseReg[il_Base], aSLIndexReg[il_Index]]));
+ aRList.Add(format(aPrefix + '[%s + %s * 8]', [aSLBaseReg[il_Base], aSLIndexReg[il_Index]]));
+
+ aRList.Add(format(aPrefix + '[%s + %s * 2 + 16]', [aSLBaseReg[il_Base], aSLIndexReg[il_Index]]));
+ aRList.Add(format(aPrefix + '[%s + %s * 4 + 32]', [aSLBaseReg[il_Base], aSLIndexReg[il_Index]]));
+ aRList.Add(format(aPrefix + '[%s + %s * 8 + 48]', [aSLBaseReg[il_Base], aSLIndexReg[il_Index]]));
+
+
+ aRList.Add(format(aPrefix + '[%s + %s]', [aSLIndexReg[il_Index], aSLBaseReg[il_Base]]));
+
+ aRList.Add(format(aPrefix + '[%s + %s + 16]', [aSLIndexReg[il_Index], aSLBaseReg[il_Base]]));
+ end;
+ end;
+end;
+
class procedure TAsmTestGenerator.CalcTestData(aX64: boolean; const aInst, aOp1, aOp2, aOp3,
aOp4: String; aSL: TStringList);
var
diff --git a/tests/utils/avx/avxopcodes.pas b/tests/utils/avx/avxopcodes.pas
index ade1651c77..bae89e0ec0 100644
--- a/tests/utils/avx/avxopcodes.pas
+++ b/tests/utils/avx/avxopcodes.pas
@@ -773,6 +773,36 @@ begin
FOpCodeList.Add('VFNMSUB132SS,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('VFNMSUB213SS,1,1,XMMREG,XMMREG,XMMRM,');
FOpCodeList.Add('VFNMSUB231SS,1,1,XMMREG,XMMREG,XMMRM,');
+
+
+ FOpCodeList.Add('VGATHERDPD,1,1,XMMREG,XMEM32,XMMREG,');
+ FOpCodeList.Add('VGATHERDPD,1,1,YMMREG,XMEM32,YMMREG,');
+
+ FOpCodeList.Add('VGATHERQPD,1,1,XMMREG,XMEM64,XMMREG,');
+ FOpCodeList.Add('VGATHERQPD,1,1,YMMREG,YMEM64,YMMREG,');
+
+
+ FOpCodeList.Add('VGATHERDPS,1,1,XMMREG,XMEM32,XMMREG,');
+ FOpCodeList.Add('VGATHERDPS,1,1,YMMREG,YMEM32,YMMREG,');
+
+ FOpCodeList.Add('VGATHERQPS,1,1,XMMREG,XMEM64,XMMREG,');
+ FOpCodeList.Add('VGATHERQPS,1,1,XMMREG,YMEM64,XMMREG,');
+
+
+
+ FOpCodeList.Add('VPGATHERDD,1,1,XMMREG,XMEM32,XMMREG,');
+ FOpCodeList.Add('VPGATHERDD,1,1,YMMREG,YMEM32,YMMREG,');
+
+ FOpCodeList.Add('VPGATHERQD,1,1,XMMREG,XMEM64,XMMREG,');
+ FOpCodeList.Add('VPGATHERQD,1,1,XMMREG,YMEM64,XMMREG,');
+
+
+ FOpCodeList.Add('VPGATHERDQ,1,1,XMMREG,XMEM32,XMMREG,');
+ FOpCodeList.Add('VPGATHERDQ,1,1,YMMREG,XMEM32,YMMREG,');
+
+ FOpCodeList.Add('VPGATHERQQ,1,1,XMMREG,XMEM64,XMMREG,');
+ FOpCodeList.Add('VPGATHERQQ,1,1,YMMREG,YMEM64,YMMREG,');
+
end;
function TAVXTestGenerator.InternalMakeTestFiles(aX64: boolean; aDestPath, aFileExt: String;
diff --git a/tests/utils/dbconfig.pp b/tests/utils/dbconfig.pp
index f2f37cc5ae..992b9caf9c 100644
--- a/tests/utils/dbconfig.pp
+++ b/tests/utils/dbconfig.pp
@@ -2,7 +2,7 @@
This file is part of the Free Pascal test suite.
Copyright (c) 2002 by the Free Pascal development team.
- This program iupdates TESTCONFIG anf TESTRUNHISTORY tables
+ This program updates TESTCONFIG anf TESTRUNHISTORY tables
with the last tests run.
See the file COPYING.FPC, included in this distribution,
@@ -24,7 +24,7 @@ program dbconfig;
uses
sysutils,teststr,testu,tresults,
- mysql55dyn,dbtests;
+ sqldb,dbtests;
Var
@@ -451,7 +451,7 @@ var
qry : string;
firstRunID, lastRunID,PrevRunID : Integer;
RunCount : Integer;
- res : TQueryResult;
+ res : TSQLQuery;
AddCount : boolean;
begin
AddCount:=false;
@@ -463,7 +463,7 @@ begin
Verbose(V_Warning,format('FirstRunID changed from %d to %d',[FirstRunID,TestRunID]));
qry:=format('UPDATE TESTCONFIG SET TCONF_FIRST_RUN_FK=%d WHERE TCONF_ID=%d',
[TestRunID,ConfigID]);
- if RunQuery(qry,res) then
+ if OpenQuery(qry,res,false) then
FreeQueryResult(res)
else
Verbose(V_Warning,'Update of LastRunID failed');
@@ -474,7 +474,7 @@ begin
begin
qry:=format('UPDATE TESTCONFIG SET TCONF_LAST_RUN_FK=%d WHERE TCONF_ID=%d',
[TestRunID,ConfigID]);
- if RunQuery(qry,res) then
+ if OpenQuery(qry,res,false) then
FreeQueryResult(res)
else
Verbose(V_Warning,'Update of LastRunID failed');
@@ -487,7 +487,7 @@ begin
begin
qry:=format('UPDATE TESTCONFIG SET TCONF_NEW_RUN_FK=%d WHERE TCONF_ID=%d',
[TestRunID,ConfigID]);
- if RunQuery(qry,res) then
+ if OpenQuery(qry,res,false) then
FreeQueryResult(res)
else
Verbose(V_Warning,'Update of LastRunID failed');
@@ -504,7 +504,7 @@ begin
Inc(RunCount);
qry:=format('UPDATE TESTCONFIG SET TCONF_COUNT_RUNS=%d WHERE TCONF_ID=%d',
[RunCount,ConfigID]);
- if RunQuery(qry,res) then
+ if OpenQuery(qry,res,false) then
FreeQueryResult(res)
else
Verbose(V_Warning,'Update of TU_COUNT_RUNS failed');
@@ -536,7 +536,7 @@ begin
AddTestHistoryEntry(TestRunID,0);
end;
-Procedure InsertRunsIntoConfigAndHistory(var GlobalRes : TQueryResult);
+Procedure InsertRunsIntoConfigAndHistory(var GlobalRes : TSQLQuery);
var
i,fid, num_fields : Integer;
@@ -544,9 +544,10 @@ var
s : string;
runid,previd : Integer;
begin
- with GlobalRes^ do
+ with GlobalRes do
begin
- num_fields:=mysql_num_fields(GlobalRes);
+ num_fields:=FieldCount;
+ First;
Writeln('Row count=',row_count);
for i:=0 to row_count-1 do
begin
@@ -571,20 +572,20 @@ begin
end;
end;
-Procedure GetAllTestRuns(var GlobalRes : TQueryResult);
+Procedure GetAllTestRuns(var GlobalRes : TSQLQuery);
var
qry : string;
begin
qry:='SELECT * FROM TESTRUN ORDER BY TU_ID';
if OffsetString<>'' then
qry:=qry+' LIMIT 1000 OFFSET '+OffsetString;
- if not RunQuery(qry,GlobalRes) then
+ if not OpenQuery(qry,GlobalRes,false) then
Verbose(V_Warning,'Failed to fetch testrun content');
end;
var
- GlobalRes : TQueryResult;
+ GlobalRes : TSQLQuery;
begin
ProcessConfigFile('dbdigest.cfg');
diff --git a/tests/utils/dbdigest.pp b/tests/utils/dbdigest.pp
index 3f042079c2..1fce9ec2b3 100644
--- a/tests/utils/dbdigest.pp
+++ b/tests/utils/dbdigest.pp
@@ -81,7 +81,8 @@ TConfigOpt = (
coComment,
coTestSrcDir,
coRelSrcDir,
- coVerbose
+ coVerbose,
+ coSQL
);
{ Additional options only for dbdigest.cfg file }
@@ -115,7 +116,8 @@ ConfigStrings : Array [TConfigOpt] of string = (
'comment',
'testsrcdir',
'relsrcdir',
- 'verbose'
+ 'verbose',
+ 'sql'
);
ConfigOpts : Array[TConfigOpt] of char =(
@@ -136,7 +138,8 @@ ConfigOpts : Array[TConfigOpt] of char =(
'C', { coComment }
'S', { coTestSrcDir }
'r', { coRelSrcDir }
- 'V' { coVerbose }
+ 'V', { coVerbose }
+ 'Q' { coSQL }
);
ConfigAddStrings : Array [TConfigAddOpt] of string = (
@@ -215,6 +218,7 @@ begin
coCPU : TestCPU:=Value;
coCategory : TestCategory:=Value;
coVersion : TestVersion:=Value;
+ coSQL : DoSQL:=True;
coDate :
begin
{ Formated like YYYYMMDDhhmm }
@@ -369,7 +373,13 @@ begin
Verbose(V_ERROR,'Illegal command-line option : '+O)
else
begin
- Found:=(I<ParamCount);
+ if c=coverbose then
+ begin
+ Found:=true;
+ o:='';
+ end
+ else
+ Found:=(I<ParamCount);
If Not found then
Verbose(V_ERROR,'Option requires argument : '+O)
else
@@ -533,6 +543,7 @@ begin
begin
readln(logfile,line);
fullline:=line;
+ ts:=stFailedToCompile;
If analyse(line,TS) then
begin
Verbose(V_NORMAL,'Analysing result for test '+Line);
@@ -599,29 +610,27 @@ procedure UpdateTestRun;
var
i : TTestStatus;
qry : string;
- res : TQueryResult;
begin
qry:='UPDATE TESTRUN SET ';
for i:=low(TTestStatus) to high(TTestStatus) do
qry:=qry+format('%s=%d, ',[SQLField[i],StatusCount[i]]);
if TestCompilerDate<>'' then
- qry:=qry+format('%s="%s", ',[ConfigAddCols[coCompilerDate],EscapeSQL(TestCompilerDate)]);
+ qry:=qry+format('%s=''%s'', ',[ConfigAddCols[coCompilerDate],EscapeSQL(TestCompilerDate)]);
if TestCompilerFullVersion<>'' then
- qry:=qry+format('%s="%s", ',[ConfigAddCols[coCompilerFullVersion],EscapeSQL(TestCompilerFullVersion)]);
+ qry:=qry+format('%s=''%s'', ',[ConfigAddCols[coCompilerFullVersion],EscapeSQL(TestCompilerFullVersion)]);
if TestSvnCompilerRevision<>'' then
- qry:=qry+format('%s="%s", ',[ConfigAddCols[coSvnCompilerRevision],EscapeSQL(TestSvnCompilerRevision)]);
+ qry:=qry+format('%s=''%s'', ',[ConfigAddCols[coSvnCompilerRevision],EscapeSQL(TestSvnCompilerRevision)]);
if TestSvnTestsRevision<>'' then
- qry:=qry+format('%s="%s", ',[ConfigAddCols[coSvnTestsRevision],EscapeSQL(TestSvnTestsRevision)]);
+ qry:=qry+format('%s=''%s'', ',[ConfigAddCols[coSvnTestsRevision],EscapeSQL(TestSvnTestsRevision)]);
if TestSvnRTLRevision<>'' then
- qry:=qry+format('%s="%s", ',[ConfigAddCols[coSvnRTLRevision],EscapeSQL(TestSvnRTLRevision)]);
+ qry:=qry+format('%s=''%s'', ',[ConfigAddCols[coSvnRTLRevision],EscapeSQL(TestSvnRTLRevision)]);
if TestSvnPackagesRevision<>'' then
- qry:=qry+format('%s="%s", ',[ConfigAddCols[coSvnPackagesRevision],EscapeSQL(TestSvnPackagesRevision)]);
+ qry:=qry+format('%s=''%s'', ',[ConfigAddCols[coSvnPackagesRevision],EscapeSQL(TestSvnPackagesRevision)]);
- qry:=qry+format('TU_SUBMITTER="%s", TU_MACHINE="%s", TU_COMMENT="%s", TU_DATE="%s"',[Submitter,Machine,Comment,SqlDate(TestDate)]);
+ qry:=qry+format('TU_SUBMITTER=''%s'', TU_MACHINE=''%s'', TU_COMMENT=''%s'', TU_DATE=''%s''',[Submitter,Machine,Comment,SqlDate(TestDate)]);
qry:=qry+' WHERE TU_ID='+format('%d',[TestRunID]);
- if RunQuery(Qry,res) then
- FreeQueryResult(Res);
+ ExecuteQuery(Qry,False);
end;
function GetTestConfigId : Integer;
@@ -633,9 +642,9 @@ begin
'TCONF_OS_FK=%d AND ' +
'TCONF_VERSION_FK=%d AND ' +
'TCONF_CATEGORY_FK=%d AND ' +
- 'TCONF_SUBMITTER="%s" AND ' +
- 'TCONF_MACHINE="%s" AND ' +
- 'TCONF_COMMENT="%s" ';
+ 'TCONF_SUBMITTER=''%s'' AND ' +
+ 'TCONF_MACHINE=''%s'' AND ' +
+ 'TCONF_COMMENT=''%s'' ';
ConfigID:=IDQuery(format(qry,[TestCPUID, TestOSID, TestVersionID, TestCategoryID,
Submitter, Machine, Comment]));
GetTestConfigID:=ConfigID;
@@ -646,7 +655,6 @@ var
qry : string;
firstRunID, lastRunID,PrevRunID : Integer;
RunCount : Integer;
- res : TQueryResult;
AddCount : boolean;
begin
@@ -659,9 +667,7 @@ begin
Verbose(V_Warning,format('FirstRunID changed from %d to %d',[FirstRunID,TestRunID]));
qry:=format('UPDATE TESTCONFIG SET TCONF_FIRST_RUN_FK=%d WHERE TCONF_ID=%d',
[TestRunID,ConfigID]);
- if RunQuery(qry,res) then
- FreeQueryResult(res)
- else
+ if Not ExecuteQuery(qry,False) then
Verbose(V_Warning,'Update of LastRunID failed');
end;
qry:=format('SELECT TCONF_LAST_RUN_FK FROM TESTCONFIG WHERE TCONF_ID=%d',[ConfigID]);
@@ -670,9 +676,7 @@ begin
begin
qry:=format('UPDATE TESTCONFIG SET TCONF_LAST_RUN_FK=%d WHERE TCONF_ID=%d',
[TestRunID,ConfigID]);
- if RunQuery(qry,res) then
- FreeQueryResult(res)
- else
+ if not ExecuteQuery(qry,False) then
Verbose(V_Warning,'Update of LastRunID failed');
end
else
@@ -681,14 +685,12 @@ begin
PrevRunID:=IDQuery(qry);
if TestRunID<>PrevRunID then
begin
- qry:=format('UPDATE TESTCONFIG SET TCONF_NEW_RUN_FK=%d WHERE TCONF_ID=%d',
- [TestRunID,ConfigID]);
- if RunQuery(qry,res) then
- FreeQueryResult(res)
- else
- Verbose(V_Warning,'Update of LastRunID failed');
- AddTestHistoryEntry(TestRunID,PrevRunID);
- AddCount:=true;
+ qry:=format('UPDATE TESTCONFIG SET TCONF_NEW_RUN_FK=%d WHERE TCONF_ID=%d',
+ [TestRunID,ConfigID]);
+ if not ExecuteQuery(qry,False) then
+ Verbose(V_Warning,'Update of LastRunID failed');
+ AddTestHistoryEntry(TestRunID,PrevRunID);
+ AddCount:=true;
end
else
Verbose(V_Warning,'TestRunID is equal to last!');
@@ -700,9 +702,7 @@ begin
Inc(RunCount);
qry:=format('UPDATE TESTCONFIG SET TCONF_COUNT_RUNS=%d WHERE TCONF_ID=%d',
[RunCount,ConfigID]);
- if RunQuery(qry,res) then
- FreeQueryResult(res)
- else
+ if not ExecuteQuery(qry,False) then
Verbose(V_Warning,'Update of TU_COUNT_RUNS failed');
end;
UpdateTestConfigID:=true;
@@ -717,31 +717,23 @@ begin
'TCONF_CPU_FK,TCONF_OS_FK,TCONF_VERSION_FK,TCONF_CATEGORY_FK,'+
'TCONF_SUBMITTER,TCONF_MACHINE,TCONF_COMMENT,'+
'TCONF_NEW_DATE,TCONF_FIRST_DATE,TCONF_LAST_DATE) ';
- qry:=qry+format(' VALUES(%d,%d,%d,%d,%d,%d,%d,"%s","%s","%s","%s","%s","%s") ',
- [TestRunID, TestRunID, TestRunID, TestCPUID,
- TestOSID, TestVersionID, TestCategoryID,
- Submitter, Machine, Comment,
- SqlDate(TestDate), SqlDate(TestDate), SqlDate(TestDate)]);
+ qry:=qry+format(' VALUES(%d,%d,%d,%d,%d,%d,%d,''%s'',''%s'',''%s'',''%s'',''%s'',''%s'') ',
+ [TestRunID, TestRunID, TestRunID, TestCPUID,
+ TestOSID, TestVersionID, TestCategoryID,
+ Submitter, Machine, Comment,
+ SqlDate(TestDate), SqlDate(TestDate), SqlDate(TestDate)]);
+ qry:=qry+' RETURNING TCONF_ID';
Result:=InsertQuery(qry);
AddTestHistoryEntry(TestRunID,0);
end;
procedure UpdateTestConfig;
- var
- qry : string;
- res : TQueryResult;
begin
- qry:='SHOW TABLES LIKE ''TESTCONFIG''';
- if not RunQuery(Qry,Res) then
- exit;
- { Row_Count is zero if table does not exist }
- if Res^.Row_Count=0 then exit;
- FreeQueryResult(Res);
if GetTestPreviousRunHistoryID(TestRunID) <> -1 then
begin
- Verbose(V_DEBUG,format('TestRun %d already in TestHistory table',[TestRunID]));
- exit;
+ Verbose(V_DEBUG,format('TestRun %d already in TestHistory table',[TestRunID]));
+ exit;
end;
if GetTestConfigID >= 0 then
diff --git a/tests/utils/dbtests.pp b/tests/utils/dbtests.pp
index 340c552567..5a19e8e716 100644
--- a/tests/utils/dbtests.pp
+++ b/tests/utils/dbtests.pp
@@ -6,7 +6,7 @@ unit dbtests;
Interface
Uses
- mysql55dyn, testu;
+ sqldb, testu;
{ ---------------------------------------------------------------------
High-level access
@@ -34,21 +34,19 @@ function AddTestHistoryEntry(TestRunID,TestPreviousID : Integer) : boolean;
Low-level DB access.
---------------------------------------------------------------------}
-
-Type
- TQueryResult = PMYSQL_RES;
-
Function ConnectToDatabase(DatabaseName,Host,User,Password,Port : String) : Boolean;
Procedure DisconnectDatabase;
Function InsertQuery(const Query : string) : Integer;
-Function RunQuery (Qry : String; Var res : TQueryResult) : Boolean ;
-Procedure FreeQueryResult (Res : TQueryResult);
-Function GetResultField (Res : TQueryResult; Id : Integer) : String;
+Function ExecuteQuery (Qry : String; Silent : Boolean) : Boolean ;
+Function OpenQuery (Qry : String; Out Res : TSQLQuery; Silent : Boolean) : Boolean ;
+Procedure FreeQueryResult (Var Res : TSQLQuery);
+Function GetResultField (Res : TSQLQuery; Id : Integer) : String;
Function IDQuery(Qry : String) : Integer;
Function StringQuery(Qry : String) : String;
Function EscapeSQL( S : String) : String;
Function SQLDate(D : TDateTime) : String;
+
var
RelSrcDir,
TestSrcDir : string;
@@ -56,141 +54,158 @@ var
Implementation
Uses
- SysUtils;
+ SysUtils, pqconnection;
+
+Var
+ Connection : TPQConnection;
{ ---------------------------------------------------------------------
Low-level DB access.
---------------------------------------------------------------------}
-
-Var
- Connection : PMYSQL;
-
-
Function ConnectToDatabase(DatabaseName,Host,User,Password,Port : String) : Boolean;
-Var
- S : String;
- PortNb : longint;
- Error : word;
begin
- Verbose(V_DEBUG,'Connection params : '+DatabaseName+' '+Host+' '+User+' '+Password+' '+Port);
- if Port<>'' then
- begin
- Val(Port,PortNb,Error);
- if Error<>0 then
- PortNb:=0;
- end
- else
- PortNB:=0;
- Connection:=mysql_init(Nil);
- Result:=mysql_real_connect(Connection,PChar(Host),PChar(User),PChar(Password),Nil,PortNb,Nil,CLIENT_MULTI_RESULTS)<>Nil;
- If Not Result then
- begin
- S:=Strpas(mysql_error(connection));
- Verbose(V_ERROR,'Failed to connect to database : '+S);
- end
- else
- begin
- Result:=Mysql_select_db(Connection,Pchar(DatabaseName))>=0;
- If Not result then
+ Result:=False;
+ Verbose(V_SQL,'Connection params : '+DatabaseName+' '+Host+' '+User+' '+Port);
+ Connection:=TPQConnection.Create(Nil);
+ try
+ Connection.Hostname:=Host;
+ Connection.DatabaseName:=DatabaseName;
+ Connection.Username:=User;
+ Connection.Password:=Password;
+ Connection.Connected:=true;
+ Connection.Transaction:=TSQLTransaction.Create(Connection);
+ if (Port<>'') then
+ Connection.Params.Values['Port']:=Port;
+ except
+ On E : Exception do
begin
- S:=StrPas(mysql_error(connection));
- DisconnectDatabase;
- Verbose(V_Error,'Failed to select database : '+S);
+ Verbose(V_ERROR,'Failed to connect to database : '+E.Message);
+ FreeAndNil(Connection);
end;
- end;
+ end;
end;
Procedure DisconnectDatabase;
begin
- mysql_close(Connection);
+ FreeAndNil(Connection);
end;
-Function RunQuery (Qry : String; Var res : TQueryResult) : Boolean ;
+Function CreateQuery(Const ASQL : String) : TSQLQuery;
begin
- Verbose(V_DEBUG,'Running query:'+Qry);
- Result:=mysql_query(Connection,PChar(qry))=0;
- If Not Result then
- Verbose(V_WARNING,'Query : '+Qry+'Failed : '+Strpas(mysql_error(connection)))
- else
- Res:=Mysql_store_result(connection);
+ Result:=TSQLQuery.Create(Connection);
+ Result.Database:=Connection;
+ Result.Transaction:=Connection.Transaction;
+ Result.SQL.Text:=ASQL;
end;
-{ No warning if it fails }
-Function RunSilentQuery (Qry : String; Var res : TQueryResult) : Boolean ;
+
+
+Function ExecuteQuery (Qry : String; Silent : Boolean) : Boolean ;
begin
- Verbose(V_DEBUG,'Running silent query:'+Qry);
- Result:=mysql_query(Connection,PChar(qry))=0;
- If Not Result then
- Verbose(V_DEBUG,'Silent query : '+Qry+'Failed : '+Strpas(mysql_error(connection)))
- else
- Res:=Mysql_store_result(connection);
+ Verbose(V_SQL,'Executing query:'+Qry);
+ Result:=False;
+ try
+ With CreateQuery(Qry) do
+ try
+ ExecSQL;
+ Result:=True;
+ (Transaction as TSQLTransaction).Commit;
+ finally
+ Free;
+ end;
+ except
+ On E : exception do
+ begin
+ Connection.Transaction.RollBack;
+ if not Silent then
+ Verbose(V_WARNING,'Query : '+Qry+'Failed : '+E.Message);
+ end;
+ end;
end;
+Function OpenQuery (Qry : String; Out res : TSQLQuery; Silent : Boolean) : Boolean ;
-Function GetResultField (Res : TQueryResult; Id : Integer) : String;
+begin
+ Result:=False;
+ Verbose(V_SQL,'Running query:'+Qry);
+ Res:=CreateQuery(Qry);
+ try
+ Res.Open;
+ Result:=True;
+ except
+ On E : exception do
+ begin
+ FreeAndNil(Res);
+ Try
+ Connection.Transaction.RollBack;
+ except
+ end;
+ if not Silent then
+ Verbose(V_WARNING,'Query : '+Qry+'Failed : '+E.Message);
+ end;
+ end;
+end;
+
+Function GetResultField (Res : TSQLQuery; Id : Integer) : String;
-Var
- Row : PPchar;
begin
- if Res=Nil then
+ If (Res=Nil) or (ID>=Res.Fields.Count) then
Result:=''
else
- begin
- Row:=mysql_fetch_row(Res);
- If (Row=Nil) or (Row[ID]=Nil) then
- Result:=''
- else
- Result:=strpas(Row[ID]);
- end;
- Verbose(V_DEBUG,'Field value '+Result);
+ Result:=Res.Fields[ID].AsString;
+ Verbose(V_SQL,'Field value '+Result);
end;
-Procedure FreeQueryResult (Res : TQueryResult);
+Procedure FreeQueryResult(var Res : TSQLQuery);
begin
- mysql_free_result(Res);
+ if Assigned(Res) and Assigned(Res.Transaction) then
+ (Res.Transaction as TSQLTransaction).Commit;
+ FreeAndNil(Res);
end;
Function IDQuery(Qry : String) : Integer;
Var
- Res : TQueryResult;
+ Res : TSQLQuery;
begin
Result:=-1;
- If RunQuery(Qry,Res) then
- begin
- Result:=StrToIntDef(GetResultField(Res,0),-1);
- FreeQueryResult(Res);
+ If OpenQuery(Qry,Res,False) then
+ try
+ Result:=StrToIntDef(GetResultField(Res,0),-1);
+ finally
+ FreeQueryResult(Res);
end;
end;
Function StringQuery(Qry : String) : String;
Var
- Res : TQueryResult;
+ Res : TSQLQuery;
begin
Result:='';
- If RunQuery(Qry,Res) then
- begin
- Result:=GetResultField(Res,0);
- FreeQueryResult(Res);
+ If OpenQuery(Qry,Res,False) then
+ try
+ Result:=GetResultField(Res,0);
+ finally
+ FreeQueryResult(Res);
end;
end;
Function EscapeSQL( S : String) : String;
begin
- Result:=StringReplace(S,'\','\\',[rfReplaceAll]);
- Result:=StringReplace(Result,'"','\"',[rfReplaceAll]);
- Verbose(V_DEBUG,'EscapeSQL : "'+S+'" -> "'+Result+'"');
+// Result:=StringReplace(S,'\','\\',[rfReplaceAll]);
+ Result:=StringReplace(S,'''','''''',[rfReplaceAll]);
+ Verbose(V_SQL,'EscapeSQL : "'+S+'" -> "'+Result+'"');
end;
@@ -208,7 +223,7 @@ end;
Function GetTestID(Name : string) : Integer;
Const
- SFromName = 'SELECT T_ID FROM TESTS WHERE (T_NAME="%s")';
+ SFromName = 'SELECT T_ID FROM TESTS WHERE (T_NAME=''%s'')';
begin
Result:=IDQuery(Format(SFromName,[Name]));
@@ -217,7 +232,7 @@ end;
Function GetOSID(Name : String) : Integer;
Const
- SFromName = 'SELECT TO_ID FROM TESTOS WHERE (TO_NAME="%s")';
+ SFromName = 'SELECT TO_ID FROM TESTOS WHERE (TO_NAME=''%s'')';
begin
Result:=IDQuery(Format(SFromName,[Name]));
@@ -226,7 +241,7 @@ end;
Function GetVersionID(Name : String) : Integer;
Const
- SFromName = 'SELECT TV_ID FROM TESTVERSION WHERE (TV_VERSION="%s")';
+ SFromName = 'SELECT TV_ID FROM TESTVERSION WHERE (TV_VERSION=''%s'')';
begin
Result:=IDQuery(Format(SFromName,[Name]));
@@ -235,7 +250,7 @@ end;
Function GetCPUID(Name : String) : Integer;
Const
- SFromName = 'SELECT TC_ID FROM TESTCPU WHERE (TC_NAME="%s")';
+ SFromName = 'SELECT TC_ID FROM TESTCPU WHERE (TC_NAME=''%s'')';
begin
Result:=IDQuery(Format(SFromName,[Name]));
@@ -244,7 +259,7 @@ end;
Function GetCategoryID(Name : String) : Integer;
Const
- SFromName = 'SELECT TCAT_ID FROM TESTCATEGORY WHERE (TCAT_NAME="%s")';
+ SFromName = 'SELECT TCAT_ID FROM TESTCATEGORY WHERE (TCAT_NAME=''%s'')';
begin
Result:=IDQuery(Format(SFromName,[Name]));
@@ -258,24 +273,16 @@ Const
' (TU_OS_FK=%d) '+
' AND (TU_CPU_FK=%d) '+
' AND (TU_VERSION_FK=%d) '+
- ' AND (TU_DATE="%s")';
+ ' AND (TU_DATE=''%s'')';
begin
Result:=IDQuery(Format(SFromIDS,[OSID,CPUID,VERSIONID,SQLDate(Date)]));
end;
Function InsertQuery(const Query : string) : Integer;
-Var
- Res : TQueryResult;
begin
- If RunQuery(Query,Res) then
- begin
- Result:=mysql_insert_id(connection);
- FreeQueryResult(Res);
- end
- else
- Result:=-1;
+ Result:=IDQuery(Query);
end;
Function AddRun(OSID, CPUID, VERSIONID, CATEGORYID : Integer; Date : TDateTime) : Integer;
@@ -284,12 +291,12 @@ Const
SInsertRun = 'INSERT INTO TESTRUN '+
'(TU_OS_FK,TU_CPU_FK,TU_VERSION_FK,TU_CATEGORY_FK,TU_DATE)'+
' VALUES '+
- '(%d,%d,%d,%d,"%s")';
+ '(%d,%d,%d,%d,''%s'') RETURNING TU_ID';
var
Qry : string;
begin
qry:=Format(SInsertRun,[OSID,CPUID,VERSIONID,CATEGORYID,SQLDate(Date)]);
- Result:=InsertQuery(Qry);
+ Result:=IDQuery(Qry);
end;
function posr(c : Char; const s : AnsiString) : integer;
@@ -337,7 +344,7 @@ begin
FileName := FileName + '.pp'
else exit;
- Verbose(V_Debug,'Reading '+FileName);
+ Verbose(V_Debug,'Reading: '+FileName);
assign(t,FileName);
{$I-}
reset(t);
@@ -376,11 +383,10 @@ Function AddTest(Name : String; AddSource : Boolean) : Integer;
Const
SInsertTest = 'INSERT INTO TESTS (T_NAME,T_ADDDATE)'+
- ' VALUES ("%s",NOW())';
+ ' VALUES (''%s'',NOW())';
Var
Info : TConfig;
- Res : TQueryResult;
begin
Result:=-1;
@@ -388,9 +394,8 @@ begin
GetConfig(TestSrcDir+RelSrcDir+Name,Info)) or
GetUnitTestConfig(Name,Info) then
begin
- If RunQuery(Format(SInsertTest,[Name]),Res) then
+ If ExecuteQuery(Format(SInsertTest,[Name]),False) then
begin
- FreeQueryResult(Res);
Result:=GetTestID(Name);
If Result=-1 then
Verbose(V_WARNING,'Could not find newly added test!')
@@ -406,17 +411,17 @@ begin
end;
Const
- B : Array[Boolean] of String = ('-','+');
+ B : Array[Boolean] of String = ('f','t');
Function UpdateTest(ID : Integer; Info : TConfig; Source : String) : Boolean;
Const
SUpdateTest = 'Update TESTS SET '+
- ' T_CPU="%s", T_OS="%s", T_VERSION="%s",'+
- ' T_GRAPH="%s", T_INTERACTIVE="%s", T_RESULT=%d,'+
- ' T_FAIL="%s", T_RECOMPILE="%s", T_NORUN="%s",'+
- ' T_NEEDLIBRARY="%s", T_KNOWNRUNERROR=%d,'+
- ' T_KNOWN="%s", T_NOTE="%s", T_OPTS = "%s"'+
+ ' T_CPU=''%s'', T_OS=''%s'', T_VERSION=''%s'','+
+ ' T_GRAPH=''%s'', T_INTERACTIVE=''%s'', T_RESULT=%d,'+
+ ' T_FAIL=''%s'', T_RECOMPILE=''%s'', T_NORUN=''%s'','+
+ ' T_NEEDLIBRARY=''%s'', T_KNOWNRUNERROR=%d,'+
+ ' T_KNOWN=''%s'', T_NOTE=''%s'', T_OPTS = ''%s'''+
' %s '+
'WHERE'+
' T_ID=%d';
@@ -424,13 +429,12 @@ Const
Var
Qry : String;
- Res : TQueryResult;
begin
If Source<>'' then
begin
Source:=EscapeSQL(Source);
- Source:=', T_SOURCE="'+Source+'"';
+ Source:=', T_SOURCE='''+Source+'''';
end;
With Info do
Qry:=Format(SUpdateTest,[EscapeSQL(NeedCPU),'',EscapeSQL(MinVersion),
@@ -441,8 +445,7 @@ begin
Source,
ID
]);
- Result:=RunQuery(Qry,res);
- FreeQueryResult(Res);
+ Result:=ExecuteQuery(Qry,False);
end;
Function AddTestResult(TestID,RunID,TestRes : Integer;
@@ -453,37 +456,33 @@ Const
SInsertRes='Insert into TESTRESULTS '+
'(TR_TEST_FK,TR_TESTRUN_FK,TR_OK,TR_SKIP,TR_RESULT) '+
' VALUES '+
- '(%d,%d,"%s","%s",%d) ';
+ '(%d,%d,''%s'',''%s'',%d) RETURNING TR_ID';
SSelectId='SELECT TR_ID FROM TESTRESULTS WHERE (TR_TEST_FK=%d) '+
' AND (TR_TESTRUN_FK=%d)';
- SInsertLog='Update TESTRESULTS SET TR_LOG="%s"'+
- ',TR_OK="%s",TR_SKIP="%s",TR_RESULT=%d WHERE (TR_ID=%d)';
+ SInsertLog='Update TESTRESULTS SET TR_LOG=''%s'''+
+ ',TR_OK=''%s'',TR_SKIP=''%s'',TR_RESULT=%d WHERE (TR_ID=%d)';
Var
Qry : String;
- Res : TQueryResult;
updateValues : boolean;
+
begin
updateValues:=false;
Result:=-1;
Qry:=Format(SInsertRes,
[TestID,RunID,B[OK],B[Skipped],TestRes,EscapeSQL(Log)]);
- If RunSilentQuery(Qry,Res) then
- Result:=mysql_insert_id(connection)
- else
+ Result:=IDQuery(Qry);
+ if (Result=-1) then
begin
- Qry:=format(SSelectId,[TestId,RunId]);
- Result:=IDQuery(Qry);
- if Result<>-1 then
- updateValues:=true;
+ Qry:=format(SSelectId,[TestId,RunId]);
+ Result:=IDQuery(Qry);
+ if Result<>-1 then
+ UpdateValues:=true;
end;
if (Result<>-1) and ((Log<>'') or updateValues) then
begin
- Qry:=format(SInsertLog,[EscapeSQL(Log),B[OK],B[Skipped],TestRes,Result]);
- if not RunQuery(Qry,Res) then
- begin
- Verbose(V_Warning,'Insert Log failed');
- end;
- FreeQueryResult(Res);
+ Qry:=Format(SInsertLog,[EscapeSQL(Log),B[OK],B[Skipped],TestRes,Result]);
+ if Not ExecuteQuery(Qry,False) then
+ Verbose(V_Warning,'Insert Log failed');
end;
{ If test already existed, return false for is_new to avoid double counting }
is_new:=not updateValues;
@@ -504,12 +503,8 @@ Function CleanTestRun(ID : Integer) : Boolean;
Const
SDeleteRun = 'DELETE FROM TESTRESULTS WHERE TR_TESTRUN_FK=%d';
-Var
- Res : TQueryResult;
-
begin
- Result:=RunQuery(Format(SDeleteRun,[ID]),Res);
- FreeQueryResult(Res);
+ Result:=ExecuteQuery(Format(SDeleteRun,[ID]),False);
end;
function GetTestPreviousRunHistoryID(TestRunID : Integer) : Integer;
@@ -525,21 +520,14 @@ begin
end;
function AddTestHistoryEntry(TestRunID,TestPreviousID : Integer) : boolean;
+
var
qry : string;
- res : TQueryResult;
+
begin
- qry:=format('INSERT INTO TESTRUNHISTORY (TH_ID_FK,TH_PREVIOUS_FK) '+
+ Qry:=format('INSERT INTO TESTRUNHISTORY (TH_ID_FK,TH_PREVIOUS_FK) '+
' VALUES (%d,%d)',[TestRunID,TestPreviousID]);
- If RunQuery(qry,res) then
- begin
- FreeQueryResult(res);
- AddTestHistoryEntry:=true;
- end
- else
- AddTestHistoryEntry:=false;
+ Result:=ExecuteQuery(Qry,False);
end;
-begin
- initialisemysql;
end.
diff --git a/tests/utils/dotest.pp b/tests/utils/dotest.pp
index fca8a669ea..b93d91931a 100644
--- a/tests/utils/dotest.pp
+++ b/tests/utils/dotest.pp
@@ -61,6 +61,7 @@ const
DllExt : string = '.so';
DllPrefix: string = 'lib';
DefaultTimeout=60;
+ READ_ONLY = 0;
var
Config : TConfig;
@@ -358,7 +359,8 @@ end;
procedure mkdirtree(const s:string);
var
- hs : string;
+ SErr, hs : string;
+ Err: longint;
begin
if s='' then
exit;
@@ -371,11 +373,16 @@ begin
{ Try parent first }
mkdirtree(SplitPath(hs));
{ make this dir }
- Verbose(V_Debug,'Making Directory '+s);
+ Verbose(V_Debug,'Making directory '+s);
{$I-}
- mkdir(s);
+ MkDir (HS);
{$I+}
- ioresult;
+ Err := IOResult;
+ if Err <> 0 then
+ begin
+ Str (Err, SErr);
+ Verbose (V_Error, 'Directory creation failed ' + SErr);
+ end;
end;
end;
@@ -397,6 +404,8 @@ const
bufsize = 16384;
var
f,g : file;
+ oldfilemode : byte;
+ st : string;
addsize,
i : longint;
buf : pointer;
@@ -405,14 +414,7 @@ begin
Verbose(V_Debug,'Appending '+fn1+' to '+fn2)
else
Verbose(V_Debug,'Copying '+fn1+' to '+fn2);
- assign(f,fn1);
assign(g,fn2);
- {$I-}
- reset(f,1);
- {$I+}
- addsize:=0;
- if ioresult<>0 then
- Verbose(V_Error,'Can''t open '+fn1);
if append then
begin
{$I-}
@@ -431,7 +433,36 @@ begin
if ioresult<>0 then
Verbose(V_Error,'Can''t open '+fn2+' for output');
end;
+ assign(f,fn1);
+ {$I-}
+ { Try using read only file mode }
+ oldfilemode:=filemode;
+ filemode:=READ_ONLY;
+ reset(f,1);
+ {$I+}
+ addsize:=0;
getmem(buf,bufsize);
+ if ioresult<>0 then
+ begin
+ sleep(1000);
+ {$I-}
+ reset(f,1);
+ {$I+}
+ if ioresult<>0 then
+ begin
+ Verbose(V_Warning,'Can''t open '+fn1);
+ st:='Can''t open '+fn1;
+ i:=length(st);
+ // blocksize is larger than 255, so no check is needed
+ move(st[1],buf^,i);
+ blockwrite(g,buf^,i);
+ freemem(buf,bufsize);
+ close(g);
+ filemode:=oldfilemode;
+ exit;
+ end;
+ end;
+ filemode:=oldfilemode;
repeat
blockread(f,buf^,bufsize,i);
blockwrite(g,buf^,i);
diff --git a/tests/utils/libtar.pas b/tests/utils/libtar.pas
index 68f6f2f743..9110bb0ba5 100644
--- a/tests/utils/libtar.pas
+++ b/tests/utils/libtar.pas
@@ -2,7 +2,7 @@
Copyright (c) 2000-2006 by Stefan Heymann
See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
+ 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
@@ -45,7 +45,7 @@ TTarWriter Usage
- Now your tar file is ready.
-Source
+Source
--------------------------
The official site to get this code is http://www.destructor.de/
@@ -86,13 +86,13 @@ INTERFACE
{$DEFINE Kylix}
{$DEFINE LIBCUNIT}
{$ENDIF}
-{$ENDIF}
+{$ENDIF}
USES
{$IFDEF LIBCUNIT}
Libc, // MvdV: Nothing is used from this???
{$ENDIF}
-{$ifdef Unix}
+{$ifdef Unix}
BaseUnix, Unix,
{$endif}
(*$IFDEF MSWINDOWS *)
@@ -187,7 +187,7 @@ TYPE
CONSTRUCTOR Create (TargetStream : TStream); OVERLOAD;
CONSTRUCTOR Create (TargetFilename : STRING; Mode : INTEGER = fmCreate); OVERLOAD;
DESTRUCTOR Destroy; OVERRIDE; // Writes End-Of-File Tag
- PROCEDURE AddFile (Filename : STRING; TarFilename : STRING = '');
+ FUNCTION AddFile (Filename : STRING; TarFilename : STRING = '') : BOOLEAN;
PROCEDURE AddStream (Stream : TStream; TarFilename : STRING; FileDateGmt : TDateTime);
PROCEDURE AddString (Contents : STRING; TarFilename : STRING; FileDateGmt : TDateTime);
PROCEDURE AddDir (Dirname : STRING; DateGmt : TDateTime; MaxDirSize : INT64 = 0);
@@ -250,7 +250,7 @@ END;
FUNCTION ConvertFilename (Filename : STRING) : STRING;
// Converts the filename to Unix conventions
-// could be empty and inlined away for FPC. FPC I/O should be
+// could be empty and inlined away for FPC. FPC I/O should be
// forward/backward slash safe.
BEGIN
(*$IFDEF Unix *)
@@ -787,20 +787,32 @@ BEGIN
END;
-PROCEDURE TTarWriter.AddFile (Filename : STRING; TarFilename : STRING = '');
+FUNCTION TTarWriter.AddFile (Filename : STRING; TarFilename : STRING = '') : BOOLEAN;
VAR
S : TFileStream;
Date : TDateTime;
BEGIN
+ AddFile:=false;
Date := FileTimeGMT (Filename);
IF TarFilename = '' THEN
TarFilename := ConvertFilename (Filename);
+ TRY
S := TFileStream.Create (Filename, fmOpenRead OR fmShareDenyWrite);
+ EXCEPT
+ ON EFOpenError DO
+ BEGIN
+ Writeln(stderr,'LibTar error: unable to open file "',Filename,'" for reading.');
+ exit;
+ END;
+ END;
+
TRY
AddStream (S, TarFilename, Date);
+ // No error, AddFile succeeded
+ AddFile:=true;
FINALLY
S.Free
- END;
+ END;
END;
diff --git a/tests/utils/prepup.pp b/tests/utils/prepup.pp
index bcfbced496..4c988404eb 100644
--- a/tests/utils/prepup.pp
+++ b/tests/utils/prepup.pp
@@ -22,6 +22,9 @@ uses
const
use_longlog : boolean = false;
+ has_file_errors : boolean = false;
+ MAX_RETRY = 5;
+ RETRY_WAIT_TIME = 1000; { One second wait time before trying again }
var
tarwriter : ttarwriter;
@@ -33,6 +36,8 @@ procedure dosearch(const dir : string);
Var
Info : TSearchRec;
hs : string;
+ tries : longint;
+ write_ok : boolean;
begin
If FindFirst (dir+DirectorySeparator+s,faAnyFile,Info)=0 then
begin
@@ -42,7 +47,25 @@ procedure dosearch(const dir : string);
hs:=dir+DirectorySeparator+Name;
{ strip leading ./ }
delete(hs,1,2);
- tarwriter.addfile(hs);
+ if not tarwriter.addfile(hs) then
+ begin
+ tries:=1;
+ write_ok:=false;
+ while tries<MAX_RETRY do
+ begin
+ sleep(RETRY_WAIT_TIME);
+ inc(tries);
+ if tarwriter.addfile(hs) then
+ begin
+ write_ok:=true;
+ tries:=MAX_RETRY;
+ end;
+ end;
+ has_file_errors:=(write_ok=false);
+ if not write_ok then
+ tarwriter.addstring('###File Open failed###',
+ ConvertFileName(hs),Info.Time);
+ end;
end;
Until FindNext(info)<>0;
end;
@@ -69,6 +92,8 @@ End;
var
index : longint;
+const
+ has_errors : boolean = false;
begin
index:=1;
if paramcount<>1 then
@@ -89,12 +114,19 @@ begin
TarWriter := TTarWriter.Create (C);
if not use_longlog then
dosearch('.');
- TarWriter.AddFile('dbdigest.cfg');
- TarWriter.AddFile('log');
+ if not TarWriter.AddFile('dbdigest.cfg') then
+ has_errors:=true;
+ if not TarWriter.AddFile('log') then
+ has_errors:=true;
if use_longlog then
- TarWriter.AddFile('longlog');
+ if not TarWriter.AddFile('longlog') then
+ has_errors:=true;
TarWriter.free;
c.free;
+ if has_file_errors then
+ writeln(stderr,'Prepup error: some files were not copied');
+ if has_errors then
+ halt(2);
end.
diff --git a/tests/utils/redir.pp b/tests/utils/redir.pp
index 5eb31a6d58..5e046a25c6 100644
--- a/tests/utils/redir.pp
+++ b/tests/utils/redir.pp
@@ -30,7 +30,7 @@ Interface
{$define implemented}
{$endif}
{$ifdef OS2}
-{$define shell_implemented}
+{$define implemented}
{$endif}
{$ifdef windows}
{$define implemented}
@@ -104,6 +104,11 @@ Uses
{$ifdef windows}
windows,
{$endif windows}
+{$IFDEF OS2}
+ {$IFNDEF EMX}
+ DosCalls,
+ {$ENDIF EMX}
+{$ENDIF OS2}
{$ifdef unix}
baseunix,
unix,
@@ -328,13 +333,78 @@ begin
end;
{$endif}
-{$ifdef os2}
-Function fpclose (Handle : Longint) : boolean;
+{$IFDEF OS2}
+ {$IFDEF EMX}
+{$ASMMODE INTEL}
+function fpDup (FH: longint): longint; assembler;
+asm
+ mov ebx, eax
+ mov ah, 45h
+ call syscall
+ jnc @fpdup_end
+ mov eax, -1
+@fpdup_end:
+end;
+
+function fpDup2 (FH, NH: longint): longint; assembler;
+asm
+ cmp eax, edx
+ jnz @fpdup2_go
+ mov eax, 0
+ jmp @fpdup2_end
+@fpdup2_go:
+ push ebx
+ mov ebx, eax
+ mov ecx, edx
+ mov ah, 46h
+ call syscall
+ pop ebx
+ jnc @fpdup2_end
+ mov eax, -1
+@fpdup2_end:
+end;
+
+function fpClose (Handle: longint): boolean; assembler;
+asm
+ push ebx
+ mov ebx, eax
+ mov ah, 3Eh
+ call syscall
+ pop ebx
+ mov eax, 1
+ jnc @fpclose_end
+ dec eax
+end;
+
+{$ASMMODE DEFAULT}
+ {$ELSE EMX}
+
+function fpDup (FH: longint): longint;
+var
+ NH: THandle;
begin
- { Do we need this ?? }
- fpclose:=true;
+ NH := THandle (-1);
+ if DosDupHandle (THandle (FH), NH) = 0 then
+ fpDup := longint (NH)
+ else
+ fpDup := -1;
end;
-{$endif}
+
+function fpDup2 (FH, NH: longint): longint;
+begin
+ if FH = NH then
+ fpDup2 := 0
+ else
+ if DosDupHandle (THandle (FH), THandle (NH)) <> 0 then
+ fpDup2 := -1;
+end;
+
+function fpClose (Handle: longint): boolean;
+begin
+ fpClose := DosClose (THandle (Handle)) = 0;
+end;
+ {$ENDIF EMX}
+{$ENDIF OS2}
{$I-}
diff --git a/tests/utils/testsuite/Makefile b/tests/utils/testsuite/Makefile
index fb3a1c53a4..050af5b6a3 100644
--- a/tests/utils/testsuite/Makefile
+++ b/tests/utils/testsuite/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=testsuite
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_PROGRAMS+=testsuite
endif
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=testsuite
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=testsuite
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=testsuite
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=testsuite
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=testsuite
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=testsuite
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=testsuite
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=testsuite
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=testsuite
endif
@@ -612,6 +627,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_UNITDIR+=..
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_UNITDIR+=..
endif
@@ -699,6 +717,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_UNITDIR+=..
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_UNITDIR+=..
endif
@@ -753,6 +774,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_UNITDIR+=..
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_UNITDIR+=..
endif
@@ -1038,6 +1062,12 @@ 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=
@@ -1083,6 +1113,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1665,6 +1700,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-DB=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1955,6 +2000,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-DB=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2135,6 +2190,16 @@ REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-BASE=1
REQUIRE_PACKAGES_FCL-DB=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-DB=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2592,7 +2657,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2628,17 +2693,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/tests/utils/testsuite/Makefile.fpc b/tests/utils/testsuite/Makefile.fpc
index d0d97cae28..010fcf89bd 100644
--- a/tests/utils/testsuite/Makefile.fpc
+++ b/tests/utils/testsuite/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=testsuite
-version=2.7.1
+version=3.1.1
[require]
packages=fcl-base fcl-db
diff --git a/tests/utils/testsuite/testsuite.lpi b/tests/utils/testsuite/testsuite.lpi
index bd5b4c9380..ee4e1d55a5 100644
--- a/tests/utils/testsuite/testsuite.lpi
+++ b/tests/utils/testsuite/testsuite.lpi
@@ -1,159 +1,279 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
- <Version Value="3"/>
+ <Version Value="9"/>
<General>
- <ProjectType Value="Program"/>
+ <Flags>
+ <MainUnitHasCreateFormStatements Value="False"/>
+ <MainUnitHasTitleStatement Value="False"/>
+ <LRSInOutputDirectory Value="False"/>
+ </Flags>
<MainUnit Value="0"/>
- <ActiveEditorIndexAtStart Value="1"/>
- <IconPath Value="./"/>
- <TargetFileExt Value=""/>
<Title Value="testsuite"/>
+ <ActiveWindowIndexAtStart Value="0"/>
</General>
- <JumpHistory Count="12" HistoryIndex="11">
- <Position1>
- <Filename Value="dbwhtml.pp"/>
- <Caret Line="85" Column="3" TopLine="82"/>
- </Position1>
- <Position2>
- <Filename Value="dbwhtml.pp"/>
- <Caret Line="204" Column="5" TopLine="164"/>
- </Position2>
- <Position3>
- <Filename Value="dbwhtml.pp"/>
- <Caret Line="205" Column="5" TopLine="165"/>
- </Position3>
- <Position4>
- <Filename Value="dbwhtml.pp"/>
- <Caret Line="203" Column="25" TopLine="168"/>
- </Position4>
- <Position5>
- <Filename Value="dbwhtml.pp"/>
- <Caret Line="212" Column="15" TopLine="195"/>
- </Position5>
- <Position6>
- <Filename Value="dbwhtml.pp"/>
- <Caret Line="70" Column="67" TopLine="52"/>
- </Position6>
- <Position7>
- <Filename Value="utests.pp"/>
- <Caret Line="594" Column="5" TopLine="554"/>
- </Position7>
- <Position8>
- <Filename Value="utests.pp"/>
- <Caret Line="66" Column="1" TopLine="34"/>
- </Position8>
- <Position9>
- <Filename Value="dbwhtml.pp"/>
- <Caret Line="396" Column="4" TopLine="361"/>
- </Position9>
- <Position10>
- <Filename Value="utests.pp"/>
- <Caret Line="66" Column="14" TopLine="35"/>
- </Position10>
- <Position11>
- <Filename Value="utests.pp"/>
- <Caret Line="600" Column="56" TopLine="568"/>
- </Position11>
- <Position12>
- <Filename Value="utests.pp"/>
- <Caret Line="31" Column="77" TopLine="14"/>
- </Position12>
- </JumpHistory>
- <Units Count="8">
+ <BuildModes Count="1">
+ <Item1 Name="default" Default="True"/>
+ </BuildModes>
+ <PublishOptions>
+ <Version Value="2"/>
+ <IgnoreBinaries Value="False"/>
+ <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
+ <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
+ </PublishOptions>
+ <RunParams>
+ <local>
+ <FormatVersion Value="1"/>
+ <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
+ </local>
+ </RunParams>
+ <Units Count="12">
<Unit0>
- <CursorPos X="19" Y="5"/>
- <EditorIndex Value="0"/>
<Filename Value="testsuite.pp"/>
<IsPartOfProject Value="True"/>
- <Loaded Value="True"/>
- <TopLine Value="1"/>
<UnitName Value="testsuite"/>
- <UsageCount Value="56"/>
+ <EditorIndex Value="0"/>
+ <WindowIndex Value="1"/>
+ <TopLine Value="1"/>
+ <CursorPos X="29" Y="5"/>
+ <UsageCount Value="72"/>
+ <Loaded Value="True"/>
+ <LoadedDesigner Value="True"/>
</Unit0>
<Unit1>
- <CursorPos X="23" Y="595"/>
- <EditorIndex Value="1"/>
<Filename Value="utests.pp"/>
<IsPartOfProject Value="True"/>
- <Loaded Value="True"/>
- <TopLine Value="568"/>
<UnitName Value="utests"/>
- <UsageCount Value="56"/>
+ <IsVisibleTab Value="True"/>
+ <EditorIndex Value="1"/>
+ <WindowIndex Value="1"/>
+ <TopLine Value="1003"/>
+ <CursorPos X="59" Y="919"/>
+ <UsageCount Value="72"/>
+ <Loaded Value="True"/>
</Unit1>
<Unit2>
- <CursorPos X="6" Y="136"/>
- <EditorIndex Value="4"/>
- <Filename Value="/home/michael/fixbranch/rtl/linux/syslinux.pp"/>
- <Loaded Value="True"/>
- <TopLine Value="94"/>
+ <Filename Value="../../../../../fixbranch/rtl/linux/syslinux.pp"/>
<UnitName Value="SysLinux"/>
- <UsageCount Value="28"/>
+ <WindowIndex Value="1"/>
+ <TopLine Value="94"/>
+ <CursorPos X="6" Y="136"/>
+ <UsageCount Value="26"/>
+ <LoadedDesigner Value="True"/>
</Unit2>
<Unit3>
+ <Filename Value="../../../../../test.sql"/>
+ <TopLine Value="1"/>
<CursorPos X="1" Y="1"/>
- <Filename Value="/home/michael/test.sql"/>
<SyntaxHighlighter Value="None"/>
- <TopLine Value="1"/>
- <UsageCount Value="8"/>
+ <UsageCount Value="6"/>
</Unit3>
<Unit4>
- <CursorPos X="27" Y="23"/>
- <EditorIndex Value="3"/>
- <Filename Value="/home/michael/fixbranch/rtl/unix/linux.pp"/>
- <Loaded Value="True"/>
- <TopLine Value="1"/>
+ <Filename Value="../../../../../fixbranch/rtl/unix/linux.pp"/>
<UnitName Value="Linux"/>
- <UsageCount Value="25"/>
+ <WindowIndex Value="1"/>
+ <TopLine Value="1"/>
+ <CursorPos X="27" Y="23"/>
+ <UsageCount Value="23"/>
+ <LoadedDesigner Value="True"/>
</Unit4>
<Unit5>
- <CursorPos X="56" Y="251"/>
- <Filename Value="/home/michael/projects/lazarus/components/editbutton/editbtn.pas"/>
- <TopLine Value="248"/>
+ <Filename Value="../../../../../projects/lazarus/components/editbutton/editbtn.pas"/>
<UnitName Value="EditBtn"/>
- <UsageCount Value="8"/>
+ <TopLine Value="248"/>
+ <CursorPos X="56" Y="251"/>
+ <UsageCount Value="6"/>
</Unit5>
<Unit6>
- <CursorPos X="31" Y="8"/>
- <Filename Value="/home/michael/projects/lazarus/components/editbutton/demo/frmmain.pp"/>
+ <Filename Value="../../../../../projects/lazarus/components/editbutton/demo/frmmain.pp"/>
<ComponentName Value="Form1"/>
- <ResourceFilename Value="/home/michael/projects/lazarus/components/editbutton/demo/frmmain.lrs"/>
- <TopLine Value="1"/>
<UnitName Value="frmmain"/>
- <UsageCount Value="20"/>
+ <TopLine Value="1"/>
+ <CursorPos X="31" Y="8"/>
+ <UsageCount Value="18"/>
</Unit6>
<Unit7>
- <CursorPos X="27" Y="393"/>
- <EditorIndex Value="2"/>
<Filename Value="dbwhtml.pp"/>
- <Loaded Value="True"/>
- <TopLine Value="384"/>
<UnitName Value="dbwhtml"/>
- <UsageCount Value="25"/>
+ <WindowIndex Value="1"/>
+ <TopLine Value="384"/>
+ <CursorPos X="27" Y="393"/>
+ <UsageCount Value="23"/>
+ <LoadedDesigner Value="True"/>
</Unit7>
+ <Unit8>
+ <Filename Value="../tresults.pp"/>
+ <IsPartOfProject Value="True"/>
+ <UnitName Value="tresults"/>
+ <UsageCount Value="36"/>
+ </Unit8>
+ <Unit9>
+ <Filename Value="../../../../build/tag_2_6_4/fpcsrc/packages/fcl-base/src/wformat.pp"/>
+ <UnitName Value="wformat"/>
+ <EditorIndex Value="4"/>
+ <WindowIndex Value="1"/>
+ <TopLine Value="17"/>
+ <CursorPos X="15" Y="35"/>
+ <UsageCount Value="18"/>
+ <Loaded Value="True"/>
+ </Unit9>
+ <Unit10>
+ <Filename Value="../../../../build/tag_2_6_4/fpcsrc/packages/fcl-web/src/base/webutil.pp"/>
+ <UnitName Value="webutil"/>
+ <EditorIndex Value="3"/>
+ <WindowIndex Value="1"/>
+ <TopLine Value="1"/>
+ <CursorPos X="1" Y="1"/>
+ <UsageCount Value="17"/>
+ <Loaded Value="True"/>
+ </Unit10>
+ <Unit11>
+ <Filename Value="../../../../build/tag_2_6_4/fpcsrc/packages/fcl-web/src/base/cgiapp.pp"/>
+ <UnitName Value="cgiapp"/>
+ <EditorIndex Value="2"/>
+ <WindowIndex Value="1"/>
+ <TopLine Value="34"/>
+ <CursorPos X="1" Y="40"/>
+ <UsageCount Value="17"/>
+ <Loaded Value="True"/>
+ </Unit11>
</Units>
- <PublishOptions>
- <Version Value="2"/>
- <IgnoreBinaries Value="False"/>
- <IncludeFileFilter Value="*.(pas|pp|inc|lfm|lpr|lrs|lpi|lpk|sh|xml)"/>
- <ExcludeFileFilter Value="*.(bak|ppu|ppw|o|so);*~;backup"/>
- </PublishOptions>
- <RunParams>
- <local>
- <FormatVersion Value="1"/>
- <LaunchingApplication PathPlusParams="/usr/X11R6/bin/xterm -T 'Lazarus Run Output' -e $(LazarusDir)/tools/runwait.sh $(TargetCmdLine)"/>
- </local>
- </RunParams>
- <RequiredPackages Count="1">
- <Item1>
- <PackageName Value="editbutton"/>
- <MinVersion Valid="True"/>
- </Item1>
- </RequiredPackages>
+ <JumpHistory Count="30" HistoryIndex="29">
+ <Position1>
+ <Filename Value="utests.pp"/>
+ <Caret Line="574" Column="45" TopLine="549"/>
+ </Position1>
+ <Position2>
+ <Filename Value="utests.pp"/>
+ <Caret Line="946" Column="27" TopLine="930"/>
+ </Position2>
+ <Position3>
+ <Filename Value="utests.pp"/>
+ <Caret Line="1103" Column="40" TopLine="1077"/>
+ </Position3>
+ <Position4>
+ <Filename Value="utests.pp"/>
+ <Caret Line="1467" Column="37" TopLine="1442"/>
+ </Position4>
+ <Position5>
+ <Filename Value="utests.pp"/>
+ <Caret Line="1468" Column="71" TopLine="1443"/>
+ </Position5>
+ <Position6>
+ <Filename Value="utests.pp"/>
+ <Caret Line="1469" Column="48" TopLine="1444"/>
+ </Position6>
+ <Position7>
+ <Filename Value="utests.pp"/>
+ <Caret Line="2531" Column="53" TopLine="2531"/>
+ </Position7>
+ <Position8>
+ <Filename Value="utests.pp"/>
+ <Caret Line="2554" Column="17" TopLine="2525"/>
+ </Position8>
+ <Position9>
+ <Filename Value="utests.pp"/>
+ <Caret Line="2533" Column="17" TopLine="2519"/>
+ </Position9>
+ <Position10>
+ <Filename Value="utests.pp"/>
+ <Caret Line="2544" Column="18" TopLine="2540"/>
+ </Position10>
+ <Position11>
+ <Filename Value="utests.pp"/>
+ <Caret Line="121" Column="1" TopLine="121"/>
+ </Position11>
+ <Position12>
+ <Filename Value="utests.pp"/>
+ <Caret Line="326" Column="24" TopLine="301"/>
+ </Position12>
+ <Position13>
+ <Filename Value="utests.pp"/>
+ <Caret Line="67" Column="1" TopLine="61"/>
+ </Position13>
+ <Position14>
+ <Filename Value="utests.pp"/>
+ <Caret Line="846" Column="3" TopLine="842"/>
+ </Position14>
+ <Position15>
+ <Filename Value="utests.pp"/>
+ <Caret Line="1" Column="1" TopLine="1"/>
+ </Position15>
+ <Position16>
+ <Filename Value="utests.pp"/>
+ <Caret Line="2555" Column="11" TopLine="2530"/>
+ </Position16>
+ <Position17>
+ <Filename Value="utests.pp"/>
+ <Caret Line="2554" Column="10" TopLine="2530"/>
+ </Position17>
+ <Position18>
+ <Filename Value="utests.pp"/>
+ <Caret Line="1" Column="1" TopLine="1"/>
+ </Position18>
+ <Position19>
+ <Filename Value="utests.pp"/>
+ <Caret Line="420" Column="21" TopLine="412"/>
+ </Position19>
+ <Position20>
+ <Filename Value="utests.pp"/>
+ <Caret Line="1" Column="1" TopLine="1"/>
+ </Position20>
+ <Position21>
+ <Filename Value="utests.pp"/>
+ <Caret Line="2555" Column="41" TopLine="2532"/>
+ </Position21>
+ <Position22>
+ <Filename Value="utests.pp"/>
+ <Caret Line="2493" Column="3" TopLine="2478"/>
+ </Position22>
+ <Position23>
+ <Filename Value="utests.pp"/>
+ <Caret Line="2" Column="1" TopLine="1"/>
+ </Position23>
+ <Position24>
+ <Filename Value="utests.pp"/>
+ <Caret Line="2534" Column="11" TopLine="2527"/>
+ </Position24>
+ <Position25>
+ <Filename Value="utests.pp"/>
+ <Caret Line="1" Column="1" TopLine="1"/>
+ </Position25>
+ <Position26>
+ <Filename Value="utests.pp"/>
+ <Caret Line="304" Column="21" TopLine="300"/>
+ </Position26>
+ <Position27>
+ <Filename Value="utests.pp"/>
+ <Caret Line="676" Column="1" TopLine="661"/>
+ </Position27>
+ <Position28>
+ <Filename Value="utests.pp"/>
+ <Caret Line="912" Column="13" TopLine="904"/>
+ </Position28>
+ <Position29>
+ <Filename Value="utests.pp"/>
+ <Caret Line="1" Column="1" TopLine="1"/>
+ </Position29>
+ <Position30>
+ <Filename Value="utests.pp"/>
+ <Caret Line="919" Column="16" TopLine="889"/>
+ </Position30>
+ </JumpHistory>
</ProjectOptions>
<CompilerOptions>
+ <Version Value="11"/>
+ <SearchPaths>
+ <OtherUnitFiles Value=".."/>
+ </SearchPaths>
+ <Parsing>
+ <SyntaxOptions>
+ <UseAnsiStrings Value="False"/>
+ </SyntaxOptions>
+ </Parsing>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
</CompilerOptions>
+ <EditorMacros Count="0"/>
</CONFIG>
diff --git a/tests/utils/testsuite/testsuite.pp b/tests/utils/testsuite/testsuite.pp
index a926345c91..7d077b5427 100644
--- a/tests/utils/testsuite/testsuite.pp
+++ b/tests/utils/testsuite/testsuite.pp
@@ -2,7 +2,7 @@
{$h+}
program testsuite;
-uses utests;
+uses utests, tresults;
Var
App : TTestSuite;
diff --git a/tests/utils/testsuite/utests.pp b/tests/utils/testsuite/utests.pp
index 8190d171be..8b428771f4 100644
--- a/tests/utils/testsuite/utests.pp
+++ b/tests/utils/testsuite/utests.pp
@@ -1,13 +1,16 @@
{$mode objfpc}
{$h+}
+
unit utests;
interface
uses
cgiapp,
- sysutils,mysql55conn,sqldb,whtml,dbwhtml,db,
- tresults,
+ sysutils,
+ pqconnection,
+ sqldb,whtml,dbwhtml,db,
+ tresults,webutil,
Classes,ftFont,fpimage,fpimgcanv,fpWritePng,fpcanvas;
const
@@ -17,9 +20,14 @@ const
ViewRevURL='http://svn.freepascal.org/cgi-bin/viewvc.cgi?view=revision&amp;revision=';
TestsSubDir='/tests/';
DataBaseSubDir='/packages/fcl-db/tests/';
+
var
TestsuiteCGIURL : string;
+
Type
+
+ { TTestSuite }
+
TTestSuite = Class(TCgiApplication)
Private
FHTMLWriter : THtmlWriter;
@@ -56,6 +64,7 @@ Type
FLimit : Integer;
FTestLastDays : Integer;
FNeedEnd : boolean;
+ procedure DumpTestInfo(Q: TSQLQuery);
Procedure GetOverviewRowAttr(Sender : TObject; Var BGColor : String;
Var Align : THTMLAlign; Var VAlign : THTMLValign;
Var CustomAttr : String) ;
@@ -191,6 +200,8 @@ type
ver_2_6_1,
ver_2_6_2,
ver_2_6_3,
+ ver_2_6_4,
+ ver_2_6_5,
ver_2_7_1);
const
@@ -227,6 +238,8 @@ const
'2.6.1',
'2.6.2',
'2.6.3',
+ '2.6.4',
+ '2.6.5',
'2.7.1'
);
@@ -259,6 +272,8 @@ const
'tags/release_2_6_0',
'tags/release_2_6_2',
'tags/release_2_6_2',
+ 'tags/release_2_6_4',
+ 'tags/release_2_6_4',
'branches/fixes_2_6',
'trunk'
);
@@ -366,7 +381,8 @@ begin
FVersion:=RequestVariables['version'];
if Length(FVersion) = 0 then
FVersion:=RequestVariables['TESTVERSION'];
-
+ TestsuiteCGIURL:=Self.ScriptName;
+ SDetailsURL := TestsuiteCGIURL + '?action=1&amp;run1id=%s';
FOS:=RequestVariables['os'];
if Length(FOS) = 0 then
FOS:=RequestVariables['TESTOS'];
@@ -434,7 +450,7 @@ Function TTestSuite.ConnectToDB : Boolean;
begin
Result:=False;
- FDB:=TMySQl55Connection.Create(Self);
+ FDB:=TPQConnection.Create(Self);
FDB.HostName:=DefHost;
FDB.DatabaseName:=DefDatabase;
FDB.UserName:=DefDBUser;
@@ -548,6 +564,9 @@ begin
end;
Procedure TTestSuite.EmitTitle(ATitle : String);
+
+Var
+ S : TStrings;
begin
AddResponseLn('<HTML>');
AddResponseLn('<TITLE>'+ATitle+'</TITLE>');
@@ -575,7 +594,6 @@ begin
DumpLn('View Test suite results');
HeaderEnd(1);
DumpLn('Please specify search criteria:');
- ParagraphStart;
FormStart(TestsuiteCGIURL,'');
if FDebug then
EmitHiddenVar('DEBUGCGI', '1');
@@ -692,7 +710,6 @@ begin
DumpLn('View Test suite results');
HeaderEnd(1);
DumpLn('Please specify search criteria:');
- ParagraphStart;
FormStart(TestsuiteCGIURL,'');
if FDebug then
EmitHiddenVar('DEBUGCGI', '1');
@@ -892,7 +909,7 @@ end;
Procedure TTestSuite.ShowRunOverview;
Const
SOverview = 'SELECT TU_ID as ID,TU_DATE as Date,TC_NAME as CPU,TO_NAME as OS,'+
- 'TV_VERSION as Version,count(*) as Count,'+
+ 'TV_VERSION as Version,(select count(*) from testresults where (TR_TESTRUN_FK=TU_ID)) as Count,'+
'TU_SVNCOMPILERREVISION as SvnCompRev,'+
'TU_SVNRTLREVISION as SvnRTLRev,'+
'TU_SVNPACKAGESREVISION as SvnPackRev,TU_SVNTESTSREVISION as SvnTestsRev,'+
@@ -901,11 +918,13 @@ Const
'(TU_SUCCESSFULLYFAILED+TU_SUCCESFULLYCOMPILED+TU_SUCCESSFULLYRUN+'+
'TU_FAILEDTOCOMPILE+TU_FAILEDTORUN+TU_FAILEDTOFAIL) as Total,'+
'TU_SUBMITTER as Submitter, TU_MACHINE as Machine, TU_COMMENT as Comment %s '+
- 'FROM TESTRUN left join TESTCPU on (TC_ID=TU_CPU_FK) left join TESTOS on (TO_ID=TU_OS_FK) '+
- 'left join TESTVERSION on (TV_ID=TU_VERSION_FK) left join TESTCATEGORY on (TCAT_ID=TU_CATEGORY_FK) '+
- 'left join TESTRESULTS on (TR_TESTRUN_FK=TU_ID) '+
+ 'FROM '+
+ ' TESTRUN '+
+ ' left join TESTCPU on (TC_ID=TU_CPU_FK) '+
+ ' left join TESTOS on (TO_ID=TU_OS_FK) '+
+ ' left join TESTVERSION on (TV_ID=TU_VERSION_FK) '+
+ ' left join TESTCATEGORY on (TCAT_ID=TU_CATEGORY_FK) '+
'%s'+
- 'GROUP BY TU_ID '+
'ORDER BY TU_ID DESC LIMIT %d';
@@ -924,7 +943,7 @@ begin
if (FOS<>'') and (GetOSName(FOS)<>'All') then
S:=S+' AND (TU_OS_FK='+FOS+')';
If (Round(FDate)<>0) then
- S:=S+' AND (TU_DATE LIKE '''+FormatDateTime('YYYY-MM-DD',FDate)+'%'')';
+ S:=S+' AND (to_char(TU_DATE, ''YYYY-MM-DD'') LIKE '''+FormatDateTime('YYYY-MM-DD',FDate)+'%'')';
If FSubmitter<>'' then
S:=S+' AND (TU_SUBMITTER='''+FSubmitter+''')';
If FMachine<>'' then
@@ -933,11 +952,9 @@ begin
S:=S+' AND (TU_COMMENT LIKE '''+Fcomment+''')';
If FCond<>'' then
S:=S+' AND ('+FCond+')';
- If FOnlyFailed then
- S:=S+' AND (TR_OK="-")';
If GetCategoryName(FCategory)<>'DB' then
- SC:=', CONCAT(TU_SVNCOMPILERREVISION,"/",TU_SVNRTLREVISION,"/", '+
- 'TU_SVNPACKAGESREVISION,"/",TU_SVNTESTSREVISION) as svnrev'
+ SC:=', CONCAT(TU_SVNCOMPILERREVISION,''/'',TU_SVNRTLREVISION,''/'', '+
+ 'TU_SVNPACKAGESREVISION,''/'',TU_SVNTESTSREVISION) as svnrev'
else
SC:='';
If (FCategory='') or (GetCategoryName(FCategory)='All') then
@@ -1088,8 +1105,8 @@ begin
If Result then
begin
If GetCategoryName(FCategory)<>'DB' then
- SC:=', CONCAT(TU_SVNCOMPILERREVISION,"/",TU_SVNRTLREVISION,"/", '+
- 'TU_SVNPACKAGESREVISION,"/",TU_SVNTESTSREVISION) as svnrev'
+ SC:=', CONCAT(TU_SVNCOMPILERREVISION,''/'',TU_SVNRTLREVISION,''/'', '+
+ 'TU_SVNPACKAGESREVISION,''/'',TU_SVNTESTSREVISION) as svnrev'
else
SC:='';
If GetCategoryName(FCategory)='All' then
@@ -1198,7 +1215,8 @@ begin
DumpLn('SVN Revisions:');
CellNext;
SC:=Q1.FieldByName('svnrev').AsString;
- FormatSVNData(SC);
+ if (SC<>'') then
+ FormatSVNData(SC);
LDumpLn(SC);
CellNext;
if Q2 <> nil then
@@ -1397,9 +1415,9 @@ begin
+' WHERE (TR_TEST_FK=T_ID) AND (TR_TESTRUN_FK='+FRunID+') ';
If FOnlyFailed then
- S:=S+' AND (TR_OK="-")';
+ S:=S+' AND (not TR_OK)';
If FNoSkipped then
- S:=S+' AND (TR_SKIP="-")';
+ S:=S+' AND (not TR_SKIP)';
S:=S+' ORDER BY TR_ID ';
Qry:=S;
If FDebug then
@@ -1466,6 +1484,45 @@ begin
end;
end;
+Procedure TTestSuite.DumpTestInfo(Q : TSQLQuery);
+
+Var
+ I : Integer;
+ field_displayed : boolean;
+ FieldValue,FieldName : String;
+
+begin
+ With FHTMLWriter do
+ For i:=0 to Q.FieldCount-1 do
+ begin
+ FieldValue:=Q.Fields[i].AsString;
+ FieldName:=Q.Fields[i].DisplayName;
+ field_displayed:=false;
+ if (Not Q.fields[i].IsNull) and (FieldName<>'t_name') and (FieldName<>'t_source') then
+ begin
+ if (Q.Fields[i].Datatype=ftBoolean) then
+ begin
+ if Q.Fields[i].AsBoolean then
+ begin
+ DumpLn('Flag ');
+ DumpLn(FieldName);
+ DumpLn(' set');
+ field_displayed:=true;
+ end;
+ end
+ else if FieldValue<>'' then
+ begin
+ DumpLn(FieldName);
+ DumpLn(' ');
+ DumpLn(FieldValue);
+ field_displayed:=true;
+ end;
+ if field_displayed then
+ DumpLn('<BR>');
+ end;
+ end;
+end;
+
Procedure TTestSuite.ShowOneTest;
Var
@@ -1484,8 +1541,7 @@ begin
EmitContentType;
EmitDocType;
if FTestFileID='' then
- FTestFileID:=GetSingleton('SELECT T_ID FROM TESTS WHERE T_NAME LIKE ''%'+
- FTestFileName+'%''');
+ FTestFileID:=GetSingleton('SELECT T_ID FROM TESTS WHERE T_NAME LIKE ''%'+FTestFileName+'%''');
if FTestFileID<>'' then
FTestFileName:=GetTestFileName(FTestFileID);
EmitTitle(Title+' : File '+FTestFileName+' Results');
@@ -1527,26 +1583,7 @@ begin
Try
Open;
Try
- For i:=0 to FieldCount-1 do
- begin
- FieldValue:=Fields[i].AsString;
- FieldName:=Fields[i].DisplayName;
-
- if (FieldValue<>'') and (FieldValue<>'-') and
- (FieldName<>'T_NAME') and (FieldName<>'T_SOURCE') then
- begin
- if (FieldValue='+') then
- DumpLn('Flag ');
- DumpLn(FieldName);
- DumpLn(' ');
- if FieldValue='+' then
- DumpLn(' set')
- else
- DumpLn(FieldValue);
- DumpLn('<BR>');
- end;
- end;
-
+ DumpTestInfo(Q);
Finally
Close;
end;
@@ -1617,7 +1654,7 @@ begin
Free;
end;
ParaGraphStart;
- DumpLn(Format('<p>Record count: %d </p>',[Q.RecordCount]));
+ DumpLn(Format('Record count: %d',[Q.RecordCount]));
ParaGraphEnd;
Finally
Close;
@@ -1746,8 +1783,10 @@ end;
Procedure TTestSuite.ShowHistory;
+
Const
MaxCombo = 50;
+
Type
StatusLongintArray = Array [TTestStatus] of longint;
StatusDateTimeArray = Array [TTestStatus] of TDateTime;
@@ -1755,6 +1794,7 @@ Type
AStatusDTA = Array[1..MaxCombo] of StatusDateTimeArray;
PStatusLA = ^AStatusLA;
PStatusDTA = ^AStatusDTA;
+
Var
S,SS,FL,cpu,version,os : String;
date : TDateTime;
@@ -1782,8 +1822,9 @@ Var
version_first_date_id, version_last_date_id : PStatusLA;
FieldName,FieldValue,
LLog,Source : String;
- Res : Boolean;
+ B,Res : Boolean;
ver : known_versions;
+
begin
Res:=False;
os_count:=nil;
@@ -1855,25 +1896,7 @@ begin
Try
Open;
Try
- For i:=0 to FieldCount-1 do
- begin
- FieldValue:=Fields[i].AsString;
- FieldName:=Fields[i].DisplayName;
- if (FieldValue<>'') and (FieldValue<>'-') and
- (FieldName<>'T_NAME') and (FieldName<>'T_SOURCE') then
- begin
- if (FieldValue='+') then
- DumpLn('Flag ');
- DumpLn(FieldName);
- DumpLn(' ');
- if FieldValue='+' then
- DumpLn(' set')
- else
- DumpLn(FieldValue);
- DumpLn('<BR>');
- end;
- end;
-
+ DumpTestInfo(Q);
Finally
Close;
end;
@@ -2048,14 +2071,11 @@ begin
begin
Q.RecNo:=i;
inc(total_count);
- S:=Fields[ok_ind].AsString;
-
- if S='+' then
+ if Q.Fields[ok_ind].AsBoolean then
inc(OK_count)
else
inc(not_OK_count);
- S:=Fields[skip_ind].AsString;
- if S='+' then
+ if Fields[skip_ind].AsBoolean then
inc(skip_count)
else
inc(not_skip_count);
@@ -2529,35 +2549,26 @@ begin
HeaderEnd(2);
ParaGraphStart;
Q:=CreateDataset('');
- Q.SQL.Text:='CREATE TEMPORARY TABLE tr1 like TESTRESULTS;';
- Q.ExecSQL;
- Q.SQL.Text:='CREATE TEMPORARY TABLE tr2 like TESTRESULTS;';
- Q.ExecSQL;
- Q.SQL.Text:='INSERT INTO tr1 SELECT * FROM '+TESTRESULTSTableName(FRunId)+
-
- ' WHERE TR_TESTRUN_FK='+FRunID+';';
- Q.ExecSQL;
- Q.SQL.Text:='INSERT INTO tr2 SELECT * FROM '+TESTRESULTSTableName(FCompareRunId)+
- ' WHERE TR_TESTRUN_FK='+FCompareRunID+';';
- Q.ExecSQL;
- S:='SELECT T_ID as Id,T_NAME as Filename,tr1.TR_SKIP as Run1_Skipped,'
+ S:='with tr1 as (SELECT * FROM '+TESTRESULTSTableName(FRunId)+ ' WHERE TR_TESTRUN_FK='+FRunID+'), '+
+ ' tr2 as (SELECT * FROM '+TESTRESULTSTableName(FCompareRunId)+' WHERE TR_TESTRUN_FK='+FCompareRunID+')'+
+ ' SELECT T_ID as id,T_NAME as Filename,tr1.TR_SKIP as Run1_Skipped,'
+'tr2.TR_SKIP as Run2_Skipped,tr1.TR_OK as Run1_OK,'
+'tr2.TR_OK as Run2_OK, tr1.TR_Result as Run1_Result,'
+'tr2.TR_RESULT as Run2_Result '
+'FROM TESTS, tr2 LEFT JOIN tr1 USING (TR_TEST_FK) '
- +'WHERE ((tr1.TR_SKIP IS NULL) or'
- +' (tr2.TR_SKIP IS NULL) or '
+ +'WHERE ((tr1.TR_SKIP IS NULL) or (tr2.TR_SKIP IS NULL) or '
+' (%s (tr1.TR_Result<>tr2.TR_Result)))'
+'and (T_ID=tr2.TR_TEST_FK)';
If FNoSkipped then
begin
- Qry:='(((tr1.TR_SKIP="+") and (tr2.TR_OK="-") and (tr2.TR_SKIP="-")) or '
- +'((tr1.TR_OK="-") and (tr1.TR_SKIP="-") and (tr2.TR_SKIP="+")) or '
- +'((tr1.TR_SKIP="-") and (tr2.TR_SKIP="-"))) and ';
+ Qry:='(((tr1.TR_SKIP) and (not tr2.TR_OK) and (not tr2.TR_SKIP)) or '
+ +'((not tr1.TR_OK) and (not tr1.TR_SKIP) and (tr2.TR_SKIP)) or '
+ +'((not tr1.TR_SKIP) and (not tr2.TR_SKIP))) and ';
end
else
Qry:='';
Qry:=Format(S,[Qry]);
+// DumpLn(Qry);
If FDebug then
begin
system.WriteLn('Query: '+Qry);
@@ -2646,25 +2657,25 @@ begin
Run2Field := P.Dataset.FindField('OK');
if Run2Field = nil then
Run2Field := P.Dataset.FindField('Run2_OK');
- If (not FNoSkipped) and ((Skip1Field.AsString='+')
- or ((Skip2Field <> nil) and (Skip2Field.AsString = '+'))) then
+ If (not FNoSkipped) and ((Skip1Field.AsBoolean)
+ or ((Skip2Field <> nil) and (Skip2Field.AsBoolean))) then
begin
Inc(FRunSkipCount);
BGColor:='yellow'; // Yellow
end
- else If Run2Field.AsString='+' then
+ else If Run2Field.AsBoolean then
begin
if Run1Field.AsString='' then
BGColor:='#68DFB8'
- else if Run1Field.ASString<>'+' then
+ else if Run1Field.AsBoolean then
BGColor:='#98FB98'; // pale Green
end
- else if Run2Field.AsString='-' then
+ else if Not Run2Field.AsBoolean then
begin
Inc(FRunFailedCount);
if Run1Field.AsString='' then
BGColor:='#FF82AB' // Light red
- else if Run1Field.AsString<>'-' then
+ else if Not Run1Field.AsBoolean then
BGColor:='#FF225B';
end;
end;
@@ -2738,7 +2749,7 @@ begin
pos_colon:=pos(':',SubStr);
Rev:=copy(SubStr,pos_colon+1,length(SubStr));
{ Remove suffix like M for modified...}
- while not (Rev[length(Rev)] in ['0'..'9']) do
+ while (length(Rev)>0) and (not (Rev[length(Rev)] in ['0'..'9'])) do
Rev:=Copy(Rev,1,length(Rev)-1);
S:=ViewRevURL+Rev;
CellData:=CellData+Format('<A HREF="%s" target="_blank">%s</A>',[S,SubStr]);
@@ -2971,6 +2982,5 @@ begin
else
TestsuiteCGIURL:=TestsuiteURLPrefix+'cgi-bin/'+TestsuiteBin;
- SDetailsURL := TestsuiteCGIURL + '?action=1&amp;run1id=%s';
ShortDateFormat:='yyyy/mm/dd';
end.
diff --git a/tests/utils/testu.pp b/tests/utils/testu.pp
index 4b73ecaa36..0c424aa6f4 100644
--- a/tests/utils/testu.pp
+++ b/tests/utils/testu.pp
@@ -10,7 +10,7 @@ Interface
---------------------------------------------------------------------}
type
- TVerboseLevel=(V_Abort,V_Error,V_Warning,V_Normal,V_Debug);
+ TVerboseLevel=(V_Abort,V_Error,V_Warning,V_Normal,V_Debug,V_SQL);
TConfig = record
NeedOptions,
@@ -48,6 +48,7 @@ type
Const
DoVerbose : boolean = false;
+ DoSQL : boolean = false;
procedure TrimB(var s:string);
procedure TrimE(var s:string);
@@ -66,6 +67,9 @@ begin
V_Debug :
if DoVerbose then
writeln('Debug: ',s);
+ V_SQL :
+ if DoSQL then
+ writeln('SQL: ',s);
V_Warning :
writeln('Warning: ',s);
V_Error :
diff --git a/tests/webtbf/tw26456.pp b/tests/webtbf/tw26456.pp
new file mode 100644
index 0000000000..fcc7abcea2
--- /dev/null
+++ b/tests/webtbf/tw26456.pp
@@ -0,0 +1,16 @@
+{ %FAIL }
+
+program tw26456;
+{$modeswitch advancedrecords}
+type
+ THelper = record helper for xxxxxxx
+ procedure test;
+ end;
+
+ procedure THelper.test;
+ begin
+ end;
+
+begin
+end.
+
diff --git a/tests/webtbf/tw26704.pp b/tests/webtbf/tw26704.pp
new file mode 100644
index 0000000000..63a13edacb
--- /dev/null
+++ b/tests/webtbf/tw26704.pp
@@ -0,0 +1,11 @@
+{ %fail }
+
+type
+ TTest = record
+ Value: Byte;
+ case Integer of
+ 0: (Value: Word);
+ end;
+
+begin
+end.
diff --git a/tests/webtbf/tw9039c.pp b/tests/webtbf/tw9039c.pp
index b36d500216..01629ba752 100644
--- a/tests/webtbf/tw9039c.pp
+++ b/tests/webtbf/tw9039c.pp
@@ -6,7 +6,7 @@ type
tr = packed record
l: longint;
case byte of
- 0: (l: longint);
+ 0: (x: longint);
1: (e: ta);
end;
diff --git a/tests/webtbs/tw10247.pp b/tests/webtbs/tw10247.pp
index 582b6479b4..e7efa345a4 100644
--- a/tests/webtbs/tw10247.pp
+++ b/tests/webtbs/tw10247.pp
@@ -4,6 +4,7 @@ type
generic TNode<T> = class
public
type
+ TAlias = T;
PT = ^T;
private
var
@@ -25,7 +26,7 @@ type
destructor Destroy; override;
function GetAddr: TTNode.PT;
- procedure SetV(v: TTNode.T);
+ procedure SetV(v: TTNode.TAlias);
end;
constructor TNode.Create;
@@ -54,7 +55,7 @@ begin
end;
-procedure TContainer.SetV(v: TTNode.T);
+procedure TContainer.SetV(v: TTNode.TAlias);
begin
Data.Data:=v;
end;
diff --git a/tests/webtbs/tw10247b.pp b/tests/webtbs/tw10247b.pp
index b94b745670..e0d7b88e5e 100644
--- a/tests/webtbs/tw10247b.pp
+++ b/tests/webtbs/tw10247b.pp
@@ -3,6 +3,7 @@ type
generic TNode<T> = class
public
type
+ TAlias = T;
PT = T;
private
var
@@ -26,7 +27,7 @@ begin
end;
-function GetIntNode: TTNodeLongint.T;
+function GetIntNode: TTNodeLongint.TAlias;
begin
result := 10;
end;
diff --git a/tests/webtbs/tw11563.pp b/tests/webtbs/tw11563.pp
index ab2b693e2f..e7dbe477aa 100644
--- a/tests/webtbs/tw11563.pp
+++ b/tests/webtbs/tw11563.pp
@@ -18,6 +18,9 @@ program ExecStack;
{$ifdef cpumips}
ret: array[0..1] of longword;
{$endif}
+{$ifdef cpum68k}
+ ret: word;
+{$endif}
DoNothing: proc;
begin
@@ -51,7 +54,13 @@ program ExecStack;
ret[1]:=0; { delay slot }
DoNothing:=proc(@ret);
DoNothing;
-{$endif}
+{$endif cpumips}
+{$ifdef cpum68k}
+ ret:=$4E75;
+ DoNothing:=proc(@ret);
+ DoNothing;
+{$endif cpum68k}
+
end;
begin
DoIt;
diff --git a/tests/webtbs/tw17904.pas b/tests/webtbs/tw17904.pas
index 06a01e7b2b..de8d8d5f08 100644
--- a/tests/webtbs/tw17904.pas
+++ b/tests/webtbs/tw17904.pas
@@ -8,7 +8,7 @@ type
TTest = class(TCustomVariantType)
procedure Clear(var V: TVarData); override;
procedure Copy(var Dest: TVarData; const Source: TVarData; const Indirect: Boolean); override;
- procedure DispInvoke(Dest: PVarData; const Source: TVarData; CallDesc: PCallDesc; Params: Pointer); override;
+ procedure DispInvoke(Dest: PVarData; var Source: TVarData; CallDesc: PCallDesc; Params: Pointer); override;
end;
procedure TTest.Clear(var V: TVarData);
@@ -19,7 +19,7 @@ procedure TTest.Copy(var Dest: TVarData; const Source: TVarData; const Indirect:
begin
end;
-procedure TTest.DispInvoke(Dest: PVarData; const Source: TVarData; CallDesc: PCallDesc; Params: Pointer);
+procedure TTest.DispInvoke(Dest: PVarData; var Source: TVarData; CallDesc: PCallDesc; Params: Pointer);
var
tmp: Word;
begin
diff --git a/tests/webtbs/tw19452.pp b/tests/webtbs/tw19452.pp
new file mode 100644
index 0000000000..e2d9163775
--- /dev/null
+++ b/tests/webtbs/tw19452.pp
@@ -0,0 +1,17 @@
+{ %norun }
+
+{$mode objfpc}
+type
+ TMyObject = class
+ public
+ constructor Create(ar: array of TMyObject);
+ end;
+
+constructor TMyObject.Create(ar: array of TMyObject);
+begin
+end;
+
+begin
+ TMyObject.Create([nil]);
+end.
+
diff --git a/tests/webtbs/tw19452a.pp b/tests/webtbs/tw19452a.pp
new file mode 100644
index 0000000000..89cd2daaf5
--- /dev/null
+++ b/tests/webtbs/tw19452a.pp
@@ -0,0 +1,24 @@
+{ %norun }
+
+{$mode objfpc}
+type
+ TMyObject = class;
+ TArr = array of TMyObject;
+ TMyObject = class
+ public
+ constructor Create(ar: array of TMyObject); overload;
+ constructor Create(ar: TArr); overload;
+ end;
+
+constructor TMyObject.Create(ar: array of TMyObject);
+begin
+end;
+
+constructor TMyObject.Create(ar: Tarr);
+begin
+end;
+
+begin
+ TMyObject.Create([nil]);
+end.
+
diff --git a/tests/webtbs/tw19622.pp b/tests/webtbs/tw19622.pp
index d5f5e6d66f..902b56fcbf 100644
--- a/tests/webtbs/tw19622.pp
+++ b/tests/webtbs/tw19622.pp
@@ -1,33 +1,7 @@
-Var a,b:qword;
- c:boolean;
- aa,bb:longword;
+var
+ c:boolean;
Begin
- a:=qword($FFFFFFFFFFFFFFFF);
- b:=9223372036854775807;
- c:=a>b;
- if not c then
+ c:=18446744073709551615>=9223372036854775807;
+ if not(c) then
halt(1);
- if not(qword($FFFFFFFFFFFFFFFF)>9223372036854775807) then
- halt(2);
- c:=qword($FFFFFFFFFFFFFFFF)>b;
- if not c then
- halt(3);
- c:=18446744073709551615>=9223372036854775807;
- if not c then
- halt(4);
-
-
- aa:=$FFFFFFFF;
- bb:=2147483647;
- c:=aa>bb;
- if not c then
- halt(5);
- if not ($FFFFFFFF>2147483647) then
- halt(6);
- c:=$FFFFFFFF>bb;
- if not c then
- halt(7);
- c:=4294967295>=2147483647;
- if not c then
- halt(8);
End.
diff --git a/tests/webtbs/tw21449.pp b/tests/webtbs/tw21449.pp
new file mode 100644
index 0000000000..211fbee837
--- /dev/null
+++ b/tests/webtbs/tw21449.pp
@@ -0,0 +1,54 @@
+
+{$mode objfpc}{$H+}
+
+uses
+ Classes, SysUtils;
+
+type
+ data_record = record
+ amountStr:String;
+ amount:Currency;
+ end;
+
+const
+ kColCount = 5;
+ kFormatString:array[0..kColCount-1]of String = ( '%1.0f', '%1.1f', '%1.2f', '%1.3f', '%1.4f' );
+
+ kRowCount = 2;
+ kTestData:array[0..kRowCount-1] of data_record = (
+ (amountStr:'209.98'; amount:209.98 ),
+ (amountStr:'9.94'; amount:9.94 ) );
+ ExpectedResults: array[0..kRowCount-1,0..kColCount-1] of string =
+ (('210','210.0','209.98','209.980','209.9800'),
+ ('10','9.9','9.94','9.940','9.9400'));
+
+procedure test;
+var
+ amount:Currency;
+ index:Integer;
+ rowIndex:Integer;
+begin
+ rowIndex := 0;
+ while( rowIndex < kRowCount )do
+ begin
+ val(kTestData[rowIndex].amountStr,amount,index);
+ if index<>0 then
+ halt(1);
+ write(kTestData[rowIndex].amountStr,' -- ',amount:0:4,': ');
+ index := 0;
+ while( index < kColCount )do
+ begin
+ write(Format( kFormatString[index], [amount] ),',');
+ if Format( kFormatString[index], [amount] )<>ExpectedResults[rowindex,index] then
+ halt(2);
+ Inc( index );
+ end;
+ writeln;
+ Inc( rowIndex );
+ end;
+end;
+
+begin
+ test;
+end.
+
diff --git a/tests/webtbs/tw22376.pp b/tests/webtbs/tw22376.pp
new file mode 100644
index 0000000000..a65730ae97
--- /dev/null
+++ b/tests/webtbs/tw22376.pp
@@ -0,0 +1,26 @@
+{ %cpu=i386,x86_64 }
+{ %opt=-Cg- }
+{$mode objfpc}
+{$asmmode intel}
+
+
+function bar: integer;
+begin
+ result:=$12345678;
+end;
+
+function foo: pointer; assembler; nostackframe;
+asm
+{$ifdef x86_64}
+ lea rax,[bar+rip]
+{$else}
+ lea eax,[bar]
+{$endif}
+end;
+
+
+begin
+ if (foo<>pointer(@bar)) then
+ halt(1);
+end.
+
diff --git a/tests/webtbs/tw23109.pp b/tests/webtbs/tw23109.pp
new file mode 100644
index 0000000000..a3c7a7d642
--- /dev/null
+++ b/tests/webtbs/tw23109.pp
@@ -0,0 +1,13 @@
+{ %cpu=x86_64}
+{ %opt=-Cg -vew }
+
+var
+ global: boolean; public;
+begin
+ asm
+ movq global@GOTPCREL(%rip), %rax
+ movb $1, (%rax)
+ end;
+ if not global then
+ halt(1);
+end.
diff --git a/tests/webtbs/tw23212.pp b/tests/webtbs/tw23212.pp
index 9e6758be06..2263be45b3 100644
--- a/tests/webtbs/tw23212.pp
+++ b/tests/webtbs/tw23212.pp
@@ -10,7 +10,7 @@ Type
End; { Record }
TSomeRecord = Packed Record
- Case A : Cardinal OF
+ Case x : Cardinal OF
0 : (A : TSomeRec1);
End; { Record }
diff --git a/tests/webtbs/tw24863.pp b/tests/webtbs/tw24863.pp
index e408036117..2ded6a2823 100644
--- a/tests/webtbs/tw24863.pp
+++ b/tests/webtbs/tw24863.pp
@@ -1,4 +1,7 @@
{ %OPT=-Sc }
+{ %SKIPTARGET=go32v2 }
+{ Test skipped for go32v2, because it forbids the
+ testsuite to complete without manually killing the program }
program test2;
{$mode objfpc}{$H+}
diff --git a/tests/webtbs/tw24872.pp b/tests/webtbs/tw24872.pp
new file mode 100644
index 0000000000..7830e91aae
--- /dev/null
+++ b/tests/webtbs/tw24872.pp
@@ -0,0 +1,23 @@
+{ %NORUN }
+
+program tw24872;
+
+{$mode delphi}
+
+procedure Test;
+begin
+end;
+
+type
+ TRec<T> = record {for generic class is ok, and non generic record too}
+ procedure Foo;
+ end;
+
+procedure TRec<T>.Foo;
+begin
+ Test
+end; // Error: Global Generic template references static symtable
+
+begin
+end.
+
diff --git a/tests/webtbs/tw25606.pp b/tests/webtbs/tw25606.pp
new file mode 100644
index 0000000000..3df0e08dba
--- /dev/null
+++ b/tests/webtbs/tw25606.pp
@@ -0,0 +1,17 @@
+{ %NORUN }
+
+program tw25606;
+
+{$MODE DELPHI}
+
+type
+ TValueInt32Helper = record helper for Int32
+ const
+ C{: Int32} = 0;
+ end;
+
+var
+ I: Int32 = Int32.C;
+begin
+end.
+
diff --git a/tests/webtbs/tw25916a.pp b/tests/webtbs/tw25916a.pp
new file mode 100644
index 0000000000..6d65556d14
--- /dev/null
+++ b/tests/webtbs/tw25916a.pp
@@ -0,0 +1,14 @@
+{ %OPT=-Sh}
+{$MODE OBJFPC}
+{$OPTIMIZATION DFA}
+{$HINTS ON}
+program test;
+
+procedure TestText(var F: Text);
+begin
+ Writeln(F, 'Test'); // Hint: Local variable "F" does not seem to be initialized
+end;
+
+begin
+ TestText(Output);
+end.
diff --git a/tests/webtbs/tw25916b.pp b/tests/webtbs/tw25916b.pp
new file mode 100644
index 0000000000..907c59e876
--- /dev/null
+++ b/tests/webtbs/tw25916b.pp
@@ -0,0 +1,13 @@
+{ %OPT=-Sh}
+{$MODE OBJFPC}
+{$OPTIMIZATION DFA}
+{$HINTS ON}
+program test;
+
+procedure TestText(var F: longint);
+begin
+ TestText(F);
+end;
+
+begin
+end.
diff --git a/tests/webtbs/tw25917.pp b/tests/webtbs/tw25917.pp
new file mode 100644
index 0000000000..4b0977088c
--- /dev/null
+++ b/tests/webtbs/tw25917.pp
@@ -0,0 +1,34 @@
+{ %NORUN }
+
+program tw25917;
+
+{$APPTYPE CONSOLE}
+{$MODE DELPHI}
+
+type
+ TA<T1, T2> = class
+ end;
+
+ TB<T1, T2> = class
+ private
+ type
+ T3 = record end;
+
+ TC = class(TA<T1, T3>)
+ public
+ procedure Foo;
+ end;
+ end;
+
+procedure TB<T1, T2>.TC.Foo;
+var
+ L: TB<T1, T2>.T3;
+begin
+end;
+
+var
+ x: TB<Pointer, Pointer>;
+
+begin
+end.
+
diff --git a/tests/webtbs/tw26069.pp b/tests/webtbs/tw26069.pp
new file mode 100644
index 0000000000..95e8130c88
--- /dev/null
+++ b/tests/webtbs/tw26069.pp
@@ -0,0 +1,23 @@
+{ %norun }
+Unit tw26069;
+
+{$mode delphi}
+
+Interface
+
+Type
+ TClass1 = Class
+ Type
+ TReason = (rnOne, rnTwo);
+ End;
+
+ TClass2 = Class
+ Type
+ TReason = (rn1, rn2);
+ End;
+
+
+Implementation
+
+End.
+
diff --git a/tests/webtbs/tw26075.pp b/tests/webtbs/tw26075.pp
new file mode 100644
index 0000000000..251c252a01
--- /dev/null
+++ b/tests/webtbs/tw26075.pp
@@ -0,0 +1,35 @@
+program fpc_advrec_bug;
+
+{$mode delphi}
+{$optimization off}
+
+Uses TypInfo;
+
+Type
+
+ PTypeInfoRec = Record
+ FValue : PTypeInfo;
+ Function QualifiedName : String;
+ End;
+
+Function PTypeInfoRec.QualifiedName : String;
+Begin
+ Result := '';
+End;
+
+function Test : Pointer;
+Begin
+ Result := nil;
+End;
+
+Var
+
+ p : PTypeInfo;
+
+begin
+
+ PTypeInfoRec(p).QualifiedName; // OK
+ PTypeInfoRec(Test).QualifiedName; // OK
+ PTypeInfoRec(TypeInfo(String)).QualifiedName; // Internal error 200304235
+
+end.
diff --git a/tests/webtbs/tw26075b.pp b/tests/webtbs/tw26075b.pp
new file mode 100644
index 0000000000..37d7812dbd
--- /dev/null
+++ b/tests/webtbs/tw26075b.pp
@@ -0,0 +1,35 @@
+program fpc_advrec_bug;
+
+{$mode delphi}
+{$optimization off}
+
+Uses TypInfo;
+
+Type
+
+ PTypeInfoRec = object
+ FValue : PTypeInfo;
+ Function QualifiedName : String;
+ End;
+
+Function PTypeInfoRec.QualifiedName : String;
+Begin
+ Result := '';
+End;
+
+function Test : Pointer;
+Begin
+ Result := nil;
+End;
+
+Var
+
+ p : PTypeInfo;
+
+begin
+
+ PTypeInfoRec(p).QualifiedName; // OK
+ PTypeInfoRec(Test).QualifiedName; // OK
+ PTypeInfoRec(TypeInfo(String)).QualifiedName; // Internal error 200304235
+
+end.
diff --git a/tests/webtbs/tw26403.pp b/tests/webtbs/tw26403.pp
new file mode 100644
index 0000000000..9dee0fb10b
--- /dev/null
+++ b/tests/webtbs/tw26403.pp
@@ -0,0 +1,23 @@
+{ %OPT=-Sew }
+{$OPTIMIZATION DFA}
+{$HINTS ON}
+program test;
+
+type
+ TIntArray = array of Integer;
+
+procedure Reset(var Foo: TIntArray);
+begin
+ SetLength(Foo, 0);
+end;
+
+procedure Foo(var Bar: TIntArray);
+begin
+ Reset(Bar); // Hint: Local variable "Bar" does not seem to be initialized
+end;
+
+var
+ Baz: TIntArray;
+begin
+ Foo(Baz); // Hint: Local variable "Baz" does not seem to be initialized
+end.
diff --git a/tests/webtbs/tw26467.pp b/tests/webtbs/tw26467.pp
new file mode 100644
index 0000000000..c172c4a2c6
--- /dev/null
+++ b/tests/webtbs/tw26467.pp
@@ -0,0 +1,19 @@
+{ %OPT=-Sew}
+{$INLINE ON}
+{$ASSERTIONS ON}
+program test;
+
+procedure TestFunc();
+begin
+ Assert(True);
+end;
+
+procedure TestFuncInline(); inline;
+begin
+ Assert(True);
+end;
+
+begin
+ TestFunc();
+ TestFuncInline(); // Warning: unreachable code
+end.
diff --git a/tests/webtbs/tw26481.pp b/tests/webtbs/tw26481.pp
new file mode 100644
index 0000000000..9c83cd5281
--- /dev/null
+++ b/tests/webtbs/tw26481.pp
@@ -0,0 +1,33 @@
+{ %NORUN }
+
+program tw26481;
+
+{$MODE DELPHI}
+
+type
+ IComparer<T> = interface
+ function Compare(constref Left, Right: T): Integer; overload;
+ end;
+
+ TOrdinalComparer<T, THashFactory> = class(TInterfacedObject, IComparer<T>)
+ protected class var
+ FComparer: IComparer<T>;
+ FTest: TClass;
+ public
+ function Compare(constref Left, Right: T): Integer; virtual; abstract;
+ end;
+
+ TGOrdinalStringComparer<T, THashFactory> = class(TOrdinalComparer<T, THashFactory>)
+ public
+ function Compare(constref ALeft, ARight: T): Integer; override;
+ end;
+
+function TGOrdinalStringComparer<THashFactory, T>.Compare(constref ALeft,
+ ARight: T): Integer;
+begin
+ Result := FComparer.Compare(ALeft, ARight);
+end;
+
+begin
+end.
+
diff --git a/tests/webtbs/tw26482.pp b/tests/webtbs/tw26482.pp
new file mode 100644
index 0000000000..df56ff95f4
--- /dev/null
+++ b/tests/webtbs/tw26482.pp
@@ -0,0 +1,25 @@
+unit tw26482;
+
+{$mode delphi}
+
+interface
+
+type
+ TEnumerator<T> = class
+ end;
+
+ TList<T> = class
+ public
+ type
+ TEnumerator = class(TObject);
+ protected
+ function DoGetEnumerator: TEnumerator<T>;
+ end;
+
+implementation
+
+function TList<T>.DoGetEnumerator: TEnumerator<T>; // Error: Identifier not found "TEnumerator$1"
+begin
+end;
+
+end.
diff --git a/tests/webtbs/tw26483.pp b/tests/webtbs/tw26483.pp
new file mode 100644
index 0000000000..3da391e327
--- /dev/null
+++ b/tests/webtbs/tw26483.pp
@@ -0,0 +1,24 @@
+{ %NORUN }
+
+program tw26483;
+
+{$MODE DELPHI}
+
+type
+ TA<T> = class
+ private
+ F: Integer;
+ end;
+
+ TB<T> = class
+ procedure Foo(A: TObject);
+ end;
+
+procedure TB<T>.Foo(A: TObject);
+begin
+ WriteLn(TA<T>(A).F); // p004.Error: identifier idents no member "F"
+end;
+
+begin
+end.
+
diff --git a/tests/webtbs/tw26536.pp b/tests/webtbs/tw26536.pp
new file mode 100644
index 0000000000..293cb6d6ef
--- /dev/null
+++ b/tests/webtbs/tw26536.pp
@@ -0,0 +1,40 @@
+{$MODE OBJFPC}
+program test;
+
+type
+ TBaseClass = class
+ function PrintSelf(): TBaseClass; inline; // has to be inline for the bug to manifest
+ end;
+
+ TSubClass = class(TBaseClass)
+ end;
+
+function TBaseClass.PrintSelf(): TBaseClass; inline;
+begin
+ Writeln(PtrUInt(Self));
+ Result := nil;
+ Writeln(PtrUInt(Self)); // prints 0!
+ if not assigned(self) then
+ halt(1);
+end;
+
+procedure NoOp(var Dummy: TBaseClass);
+begin
+end;
+
+
+var
+ Instance, Variable: TBaseClass;
+ res: longint;
+begin
+ Instance := TSubClass.Create();
+ Variable := nil;
+
+ NoOp(Variable); // this call is important for the bug to manifest
+ Variable := Instance;
+ // object being invoked has to be cast to a different type for the bug to manifest
+ // return value has to be assigned to the variable being used as "self"
+ Variable := TSubClass(Variable).PrintSelf();
+
+ Instance.Free();
+end.
diff --git a/tests/webtbs/tw26599.pp b/tests/webtbs/tw26599.pp
new file mode 100644
index 0000000000..1cc76c9a34
--- /dev/null
+++ b/tests/webtbs/tw26599.pp
@@ -0,0 +1,19 @@
+{ %NORUN }
+
+program tw26599;
+
+{$mode delphi}
+
+type
+ TSomeList<T : TObject> = Class
+ End; { Class }
+
+ TSomeClass = Class;
+ TSomeClassList = TSomeList<TSomeClass>;
+
+ TSomeClass = Class(TObject)
+ SomeList : TSomeClassList;
+ End;
+
+begin
+end.
diff --git a/tests/webtbs/tw26615.pp b/tests/webtbs/tw26615.pp
new file mode 100644
index 0000000000..9fb3f179e2
--- /dev/null
+++ b/tests/webtbs/tw26615.pp
@@ -0,0 +1,29 @@
+{ %NORUN }
+
+program tw26615;
+
+{$MODE OBJFPC}{$H+}
+{$MODESWITCH TYPEHELPERS}
+
+uses
+ sysutils;
+
+type
+ TStringHelper = type helper for UnicodeString
+ class function Cr(AStr: UnicodeString): UnicodeString; static; overload;
+ end;
+
+class function TStringHelper.Cr(AStr: UnicodeString): UnicodeString;
+begin
+ Result := '#'+AStr;
+end;
+
+var
+ us: UnicodeString;
+
+begin
+
+ us := UnicodeString.Cr('a');
+ writeln(us);
+
+end.
diff --git a/tests/webtbs/tw26627.pp b/tests/webtbs/tw26627.pp
new file mode 100644
index 0000000000..cc9a482124
--- /dev/null
+++ b/tests/webtbs/tw26627.pp
@@ -0,0 +1,16 @@
+program test;
+
+{$mode objfpc}{$h+}
+
+uses SysUtils;
+
+var a: ansistring;
+
+begin
+ defaultfilesystemcodepage:=CP_UTF8;
+ defaultrtlfilesystemcodepage:=CP_ASCII;
+ a := DirectorySeparator+'.';
+ a := ExpandFileName(a);
+ if StringCodePage(a)<> defaultrtlfilesystemcodepage then
+ halt(1);
+end. \ No newline at end of file
diff --git a/tests/webtbs/tw26668.pp b/tests/webtbs/tw26668.pp
new file mode 100644
index 0000000000..8f03ddb6d5
--- /dev/null
+++ b/tests/webtbs/tw26668.pp
@@ -0,0 +1,34 @@
+{ %CPU=i386 }
+{ %OPT=-Cg- }
+
+{$mode delphi}
+const __dd = 1;
+function f1 (var p : longword) : byte;
+asm
+ lea eax, [ eax + 2 ]
+ mov al, [eax - __dd + 1].byte
+end;
+
+function f2 (var p : longword) : byte;
+asm
+ lea eax, [ eax + 2 ]
+ mov al, [eax - __dd].byte [1]
+end;
+
+function f3 (var p : longword) : byte;
+asm
+ lea eax, [ eax + 2 ]
+ mov al, [eax - 1 + 1].byte
+end;
+
+var v : longword = $01020304;
+
+begin
+ { all three functions must produce the same code }
+ if f1(v)<>2 then
+ halt(1);
+ if f2(v)<>2 then
+ halt(2);
+ if f3(v)<>2 then
+ halt(3);
+end.
diff --git a/tests/webtbs/tw26749.pp b/tests/webtbs/tw26749.pp
new file mode 100644
index 0000000000..600f9204c8
--- /dev/null
+++ b/tests/webtbs/tw26749.pp
@@ -0,0 +1,27 @@
+{ %NORUN }
+
+program tw26749;
+
+{$mode delphi}
+{$modeswitch advancedrecords}
+
+type
+
+ { TVector3 }
+
+ TVector3<T> = record
+ class function null : TVector3<T>; static;
+ end;
+
+ TLine<T> = array[0..1] of TVector3<T>;
+
+{ TVector3<T> }
+
+class function TVector3<T>.null : TVector3<T>;
+begin
+
+end;
+
+begin
+end.
+
diff --git a/tests/webtbs/tw26773.pp b/tests/webtbs/tw26773.pp
new file mode 100644
index 0000000000..fa690065e5
--- /dev/null
+++ b/tests/webtbs/tw26773.pp
@@ -0,0 +1,161 @@
+program SourceBug;
+
+{$APPTYPE CONSOLE}
+
+{$ifdef FPC}
+{$MODE Delphi}
+{$endif}
+
+uses
+ Variants,
+ SysUtils;
+
+type
+ TSampleVariant = class(TInvokeableVariantType)
+ protected
+ {$ifndef FPC}
+ function FixupIdent(const AText: string): string; override;
+ {$endif}
+ public
+ procedure Clear(var V: TVarData); override;
+ procedure Copy(var Dest: TVarData; const Source: TVarData; const Indirect: Boolean ); override;
+ function GetProperty(var Dest: TVarData; const V: TVarData;
+ const Name: string): Boolean; override;
+ function SetProperty(var V: TVarData; const Name: string;
+ const Value: TVarData): Boolean; override;
+ end;
+
+procedure TSampleVariant.Clear(var V: TVarData);
+begin
+ V.VType:=varEmpty;
+end;
+
+procedure TSampleVariant.Copy(var Dest: TVarData; const Source: TVarData; const Indirect: Boolean);
+begin
+ if Indirect and VarDataIsByRef(Source) then
+ VarDataCopyNoInd(Dest, Source)
+ else with Dest do
+ VType:=Source.VType;
+end;
+
+{$ifndef FPC}
+function TSampleVariant.FixupIdent(const AText: string): string;
+begin
+ result := AText; // we do not want any uppercase names
+end;
+{$endif}
+
+function TSampleVariant.GetProperty(var Dest: TVarData; const V: TVarData;
+ const Name: string): Boolean;
+begin
+ assert(V.VType=varType);
+ if Name='IntField' then
+ begin
+ variant(Dest) := V.VInt64;
+ result := true;
+ end
+ else if Name='FloatField' then
+ begin
+ variant(Dest) := V.VDouble;
+ result := true;
+ end
+ else if Name='BoolField' then
+ begin
+ variant(Dest) := V.VBoolean;
+ result := true;
+ end
+ else
+ result := false;
+end;
+
+function TSampleVariant.SetProperty(var V: TVarData; const Name: string;
+ const Value: TVarData): Boolean;
+begin
+ assert(V.VType=varType);
+ if Name='IntField' then
+ begin
+ PVarData(@V)^.VInt64 := variant(Value);
+ result := true;
+ end
+ else if Name='FloatField' then
+ begin
+ PVarData(@V)^.VDouble := variant(Value);
+ result := true;
+ end
+ else if Name='BoolField' then
+ begin
+ PVarData(@V)^.VBoolean := variant(Value);
+ result := true;
+ end
+ else
+ result := false;
+end;
+
+var
+ SampleVariant: TSampleVariant;
+ v: Variant;
+
+ GB1 : Byte;
+ GS1 : Shortint;
+ GW : Word;
+ GL : longint;
+ gsi : single;
+ gd : double;
+ gi64 : int64;
+ gdate: tdatetime;
+ gb: boolean;
+begin
+ SampleVariant:=TSampleVariant.Create;
+ v := null;
+ TVarData(v).VType:=SampleVariant.VarType;
+ v.IntField := 100;
+ if v.IntField<>100 then
+ halt(1);
+
+ gb1:=128;
+ gs1:=127;
+ gw:=32768;
+ gl:=longint($b100dbad);
+ gsi:=12345789.5;
+ gd:=999991234889879.5;
+ gi64:=$813245678901234;
+ gdate:=now;
+ gb:=false;
+
+ v.IntField:=gb1;
+ if v.IntField<>gb1 then
+ halt(2);
+
+ v.IntField:=gs1;
+ if v.IntField<>gs1 then
+ halt(3);
+
+ v.IntField:=gw;
+ if v.IntField<>gw then
+ halt(4);
+
+ v.IntField:=gl;
+ if v.IntField<>gl then
+ halt(5);
+
+ v.FloatField:=gsi;
+ if v.FloatField<>gsi then
+ halt(6);
+
+ v.FloatField:=gd;
+ if v.FloatField<>gd then
+ halt(7);
+
+ v.IntField:=gi64;
+ if v.IntField<>gi64 then
+ halt(8);
+
+ v.FloatField:=gdate;
+ if v.FloatField<>gdate then
+ halt(9);
+
+ v.BoolField:=gb;
+ if boolean(v.BoolField)<>gb then
+ halt(10);
+
+end.
diff --git a/tests/webtbs/tw26922.pp b/tests/webtbs/tw26922.pp
new file mode 100644
index 0000000000..0414610bba
--- /dev/null
+++ b/tests/webtbs/tw26922.pp
@@ -0,0 +1,12 @@
+{ %INTERACTIVE }
+{ This test requires a change in uw26922a for recompilation which can not be done automatically by
+ simply adding a define, because the compiler won't detect that it needs to recompile that unit }
+
+program tw26922;
+
+uses
+ uw26922a, uw26922b;
+
+begin
+end.
+
diff --git a/tests/webtbs/tw26976.pp b/tests/webtbs/tw26976.pp
new file mode 100644
index 0000000000..f8ec0e1854
--- /dev/null
+++ b/tests/webtbs/tw26976.pp
@@ -0,0 +1,17 @@
+{ %norun }
+
+{$MODE OBJFPC}
+program test;
+
+type
+ TTest = class end;
+
+procedure E(Arg1: array of UTF8String);
+begin end;
+
+procedure E(Arg1: array of TTest);
+begin end;
+
+begin
+ E(['aa']); // Incompatible types: got "Constant String" expected "TTest"
+end.
diff --git a/tests/webtbs/tw26993.pp b/tests/webtbs/tw26993.pp
new file mode 100644
index 0000000000..2094cc2d87
--- /dev/null
+++ b/tests/webtbs/tw26993.pp
@@ -0,0 +1,49 @@
+program tw26993;
+
+{$mode delphi}
+
+uses
+ Classes, SysUtils;
+
+type
+
+ { TExtendedTestCase }
+
+ TExtendedTestCase = record
+ private
+ FValue: extended;
+ public
+ property Value: extended read FValue write FValue;
+ class operator Add(v1, v2: TExtendedTestCase): TExtendedTestCase;
+ class operator Multiply(v1, v2: TExtendedTestCase): TExtendedTestCase;
+ end;
+
+
+{ TExtendedTestCase }
+
+class operator TExtendedTestCase.Add(v1, v2: TExtendedTestCase): TExtendedTestCase;
+begin
+ Result.Value := v1.Value + v2.Value;
+end;
+
+class operator TExtendedTestCase.Multiply(v1, v2: TExtendedTestCase):
+TExtendedTestCase;
+begin
+ Result.Value := v1.Value * v2.Value;
+end;
+
+var
+ e1,e2,e3: textendedtestcase;
+begin
+ e1.fvalue:=2.0;
+ e2.fvalue:=3.0;
+ e3:=e1+e2;
+ if (e3*e2).fvalue<>15.0 then
+ halt(1);
+
+end.
+
+
+
+
+
diff --git a/tests/webtbs/tw26993a.pp b/tests/webtbs/tw26993a.pp
new file mode 100644
index 0000000000..95813a9c9c
--- /dev/null
+++ b/tests/webtbs/tw26993a.pp
@@ -0,0 +1,50 @@
+program tw26993a;
+
+{$mode delphi}
+
+uses
+ Classes, SysUtils;
+
+type
+
+ { TExtendedTestCase }
+
+ TExtendedTestCase = record
+ private
+ FValue: extended;
+ dummy: array[0..5] of byte;
+ public
+ property Value: extended read FValue write FValue;
+ class operator Add(v1, v2: TExtendedTestCase): TExtendedTestCase;
+ class operator Multiply(v1, v2: TExtendedTestCase): TExtendedTestCase;
+ end;
+
+
+{ TExtendedTestCase }
+
+class operator TExtendedTestCase.Add(v1, v2: TExtendedTestCase): TExtendedTestCase;
+begin
+ Result.Value := v1.Value + v2.Value;
+end;
+
+class operator TExtendedTestCase.Multiply(v1, v2: TExtendedTestCase):
+TExtendedTestCase;
+begin
+ Result.Value := v1.Value * v2.Value;
+end;
+
+var
+ e1,e2,e3: textendedtestcase;
+begin
+ e1.fvalue:=2.0;
+ e2.fvalue:=3.0;
+ e3:=e1+e2;
+ if (e3*e2).fvalue<>15.0 then
+ halt(1);
+
+end.
+
+
+
+
+
diff --git a/tests/webtbs/tw27029.pp b/tests/webtbs/tw27029.pp
new file mode 100644
index 0000000000..0f31f51b04
--- /dev/null
+++ b/tests/webtbs/tw27029.pp
@@ -0,0 +1,11 @@
+uses
+ sysutils, math;
+
+begin
+ DecimalSeparator:=',';
+ if FloatToStrF(nan, ffExponent, 15, 1)<>'Nan' then
+ halt(1);
+ if FloatToStrF(1.3, ffExponent, 15, 1)[2]<>',' then
+ halt(1);
+ writeln('ok');
+end.
diff --git a/tests/webtbs/tw27120.pp b/tests/webtbs/tw27120.pp
new file mode 100644
index 0000000000..7f4d9d0a75
--- /dev/null
+++ b/tests/webtbs/tw27120.pp
@@ -0,0 +1,18 @@
+{ %NORUN }
+
+program tw27120;
+
+{$mode objfpc}
+
+type
+ TFoo = class
+ end;
+
+ TBar = class helper for TFoo
+ private class var
+ FFoo: TFoo;
+ end;
+
+begin
+
+end.
diff --git a/tests/webtbs/tw27153.pp b/tests/webtbs/tw27153.pp
new file mode 100644
index 0000000000..e8b15ce373
--- /dev/null
+++ b/tests/webtbs/tw27153.pp
@@ -0,0 +1,3 @@
+{ %OPT=-CPPACKENUM=1 -CPPACKRECORD=1 -CPPACKSET=1}
+begin
+end.
diff --git a/tests/webtbs/tw27173.pp b/tests/webtbs/tw27173.pp
new file mode 100644
index 0000000000..3eb3f043aa
--- /dev/null
+++ b/tests/webtbs/tw27173.pp
@@ -0,0 +1,16 @@
+program error;
+
+{$mode Delphi}
+
+uses sysutils;
+
+type a = 1..MaxInt;
+
+var b: a;
+ c: integer;
+
+begin
+ b := 3;
+ c := -5 div b;
+ writeln(c);
+end.
diff --git a/tests/webtbs/tw27185.pp b/tests/webtbs/tw27185.pp
new file mode 100644
index 0000000000..d90ef66c48
--- /dev/null
+++ b/tests/webtbs/tw27185.pp
@@ -0,0 +1,99 @@
+program tw27185;
+
+{$mode objfpc}{$H+}
+
+uses
+ {$IFDEF UNIX}{$IFDEF UseCThreads}
+ cthreads,
+ {$ENDIF}{$ENDIF}
+ Classes
+ { you can add units after this };
+
+var
+ NormalClassInit: Boolean = False;
+ NormalClassDone: Boolean = False;
+ NestedTypeClassInit: Boolean = False;
+ NestedTypeClassDone: Boolean = False;
+ NestedTypeClassNestedClassInit: Boolean = False;
+ NestedTypeClassNestedClassDone: Boolean = False;
+
+Type
+
+ { TNormalClass }
+
+ TNormalClass = class
+ public
+ class constructor Create;
+ class destructor Destroy;
+ end;
+
+ { TNestedTypeClass }
+
+ TNestedTypeClass = class
+ private
+ type
+
+ { TNestedClass }
+
+ TNestedClass = class
+ public
+ class constructor Create;
+ class destructor Destroy;
+ end;
+
+ public
+ class constructor Create;
+ class destructor Destroy;
+ end;
+
+{ TNestedTypeClass }
+
+class constructor TNestedTypeClass.Create;
+begin
+ NestedTypeClassInit := True;
+ //WriteLn('class constructor TNestedTypeClass.Create');
+end;
+
+class destructor TNestedTypeClass.Destroy;
+begin
+ NestedTypeClassDone := True;
+ //WriteLn('class destructor TNestedTypeClass.Destroy');
+end;
+
+{ TNormalClass }
+
+class constructor TNormalClass.Create;
+begin
+ NormalClassInit := True;
+ //WriteLn('class constructor TNormalClass.Create');
+end;
+
+class destructor TNormalClass.Destroy;
+begin
+ NormalClassDone := False;
+ //WriteLn('class destructor TNormalClass.Destroy');
+end;
+
+{ TNestedTypeClass.TNestedClass }
+
+class constructor TNestedTypeClass.TNestedClass.Create;
+begin
+ NestedTypeClassNestedClassInit := True;
+ //WriteLn('class constructor TNestedTypeClass.TNestedClass.Create');
+end;
+
+class destructor TNestedTypeClass.TNestedClass.Destroy;
+begin
+ NestedTypeClassNestedClassDone := True;
+ //WriteLn('class destructor TNestedTypeClass.TNestedClass.Destroy');
+end;
+
+begin
+ if not NormalClassInit then
+ Halt(1);
+ if not NestedTypeClassInit then
+ Halt(2);
+ if not NestedTypeClassNestedClassInit then
+ Halt(3);
+end.
+
diff --git a/tests/webtbs/tw27256.pp b/tests/webtbs/tw27256.pp
new file mode 100644
index 0000000000..bd7752f16d
--- /dev/null
+++ b/tests/webtbs/tw27256.pp
@@ -0,0 +1,25 @@
+program Test;
+
+type
+ FullType = (Unknown,Stiletto,Vanguard);
+ SubType = Stiletto..Vanguard;
+
+const
+ full_choices: array[FullType] of String = ('U','S','V');
+ sub_choices: array[SubType] of String = ('S', 'V');
+
+var
+ x : longint;
+
+procedure abc(choices: array of String);
+begin
+ inc(x,high(choices));
+end;
+
+begin
+ abc(full_choices);
+ abc(sub_choices);
+ if x<>3 then
+ halt(1);
+ writeln('ok');
+end.
diff --git a/tests/webtbs/tw27294.pp b/tests/webtbs/tw27294.pp
new file mode 100644
index 0000000000..34d14f5df2
--- /dev/null
+++ b/tests/webtbs/tw27294.pp
@@ -0,0 +1,26 @@
+uses
+ uw27294;
+
+var
+ p : procedure;
+
+procedure test;
+
+begin
+ p:=@test;
+ writeln('OK');
+end;
+
+procedure global;
+begin
+ p:=nil;
+ test;
+ p();
+end;
+
+begin
+ global;
+ uw27294.global;
+end.
+
+
diff --git a/tests/webtbs/tw27300a.pp b/tests/webtbs/tw27300a.pp
new file mode 100644
index 0000000000..46e5262bf9
--- /dev/null
+++ b/tests/webtbs/tw27300a.pp
@@ -0,0 +1,22 @@
+{ %target=win32,win64,wince }
+{ %norun }
+program Project1;
+
+uses
+ Classes;
+
+const
+ kernel32 = 'kernel32.dll';
+
+type
+ BOOL = Boolean;
+ HANDLE = THandle;
+
+function OpenThread(
+ {_In_} dwDesiredAccess: DWORD;
+ {_In_} bInheritHandle: BOOL;
+ {_In_} dwThreadId: DWORD
+): HANDLE; WINAPI; external kernel32;
+
+begin
+end.
diff --git a/tests/webtbs/tw8513.pp b/tests/webtbs/tw8513.pp
index 8a37d84c0d..31b45fbbad 100644
--- a/tests/webtbs/tw8513.pp
+++ b/tests/webtbs/tw8513.pp
@@ -14,6 +14,7 @@ end;
var
Item: TMyType;
ItemAsByte: byte absolute Item;
+ ItemAsWord: word absolute Item;
r: tr;
b: byte absolute r.b;
@@ -40,6 +41,13 @@ begin
if (itemasbyte <> $de) then
halt(1);
+{$ifdef FPC_BIG_ENDIAN}
+ if (itemasword <> $dead) then
+{$else}
+ if (itemasword <> $adde) then
+{$endif}
+ halt(3);
+
r.a := $de;
r.b := $ad;
r.c := $be;
diff --git a/tests/webtbs/tw9162.pp b/tests/webtbs/tw9162.pp
index 7c2b66c45f..41e30bd656 100644
--- a/tests/webtbs/tw9162.pp
+++ b/tests/webtbs/tw9162.pp
@@ -11,7 +11,7 @@ type
protected
procedure Clear(var V: TVarData); override;
procedure Copy(var Dest: TVarData; const Source: TVarData; const Indirect: Boolean ); override;
- procedure DispInvoke(Dest: PVarData; const Source: TVarData; CallDesc: PCallDesc; Params: Pointer); override;
+ procedure DispInvoke(Dest: PVarData; var Source: TVarData; CallDesc: PCallDesc; Params: Pointer); override;
end;
procedure TSampleVariant.Clear(var V: TVarData);
@@ -30,7 +30,7 @@ end;
var
p : pointer;
-procedure TSampleVariant.DispInvoke(Dest: PVarData; const Source: TVarData; CallDesc: PCallDesc; Params: Pointer);
+procedure TSampleVariant.DispInvoke(Dest: PVarData; var Source: TVarData; CallDesc: PCallDesc; Params: Pointer);
begin
Writeln('Dest is 0x', IntToStr(Cardinal(Dest)));
p:=Dest;
diff --git a/tests/webtbs/tw9461.pp b/tests/webtbs/tw9461.pp
index c6bf21a4c6..db27334eae 100644
--- a/tests/webtbs/tw9461.pp
+++ b/tests/webtbs/tw9461.pp
@@ -3,7 +3,9 @@ procedure p; assembler;
var
i : longint;
asm
+{$ifndef CPUTHUMB}
mla r0,r1,r2,r3
+{$endif CPUTHUMB}
end;
begin
diff --git a/tests/webtbs/uw26922a.pp b/tests/webtbs/uw26922a.pp
new file mode 100644
index 0000000000..997bc0f255
--- /dev/null
+++ b/tests/webtbs/uw26922a.pp
@@ -0,0 +1,28 @@
+unit uw26922a;
+
+{$mode objfpc}{$H+}
+
+interface
+
+uses
+ unit2_test;
+
+Type
+ TTestAbstract = class
+
+ end;
+
+ TTest = class;
+
+ TTestObject = class(specialize TTestObjectAbstract<TTest>);
+
+ // Note: uncomment TTestAbstract when for recompilation
+ TTest = class//(TTestAbstract)
+ public
+ end;
+
+
+implementation
+
+end.
+
diff --git a/tests/webtbs/uw26922b.pp b/tests/webtbs/uw26922b.pp
new file mode 100644
index 0000000000..5afb1fd0eb
--- /dev/null
+++ b/tests/webtbs/uw26922b.pp
@@ -0,0 +1,20 @@
+unit uw26922b;
+
+{$mode objfpc}{$H+}
+
+interface
+
+Type
+ generic TTestObjectAbstract<T> = class
+ private
+ var
+ FTest : T;
+ end;
+
+implementation
+
+uses
+ uw26922a;
+
+end.
+
diff --git a/tests/webtbs/uw27294.pp b/tests/webtbs/uw27294.pp
new file mode 100644
index 0000000000..7a6407a033
--- /dev/null
+++ b/tests/webtbs/uw27294.pp
@@ -0,0 +1,28 @@
+unit
+ uw27294;
+
+interface
+
+procedure global;
+
+implementation
+
+var
+ p : procedure;
+
+procedure test;
+
+begin
+ p:=@test;
+ writeln('OK');
+end;
+
+procedure global;
+begin
+ p:=nil;
+ test;
+ p();
+end;
+
+end.
+
diff --git a/utils/Makefile b/utils/Makefile
index d2361ccd5d..126e24cb74 100644
--- a/utils/Makefile
+++ b/utils/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -330,6 +336,7 @@ FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
endif
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
LOCALFPMAKE=./fpmake$(SRCEXEEXT)
+SUB_FPMAKE_SRCS=$(wildcard */fpmake.pp)
override INSTALL_FPCPACKAGE=y
override INSTALL_FPCSUBDIR=utils
ifdef REQUIRE_UNITSDIR
@@ -574,6 +581,12 @@ 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=
@@ -619,6 +632,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1178,6 +1196,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-JSON=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
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1439,6 +1466,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-JSON=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
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -1601,6 +1637,15 @@ REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
REQUIRE_PACKAGES_FCL-JSON=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
+REQUIRE_PACKAGES_FCL-JSON=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2016,7 +2061,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2046,17 +2091,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2250,11 +2301,10 @@ examples:
shared:
sourceinstall:
exampleinstall:
-zipsourceinstall:
zipexampleinstall:
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2273,15 +2323,15 @@ ifndef BUILDFULLNATIVE
FPMAKE_OPT+=-sp
endif
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp $(SUB_FPMAKE_SRCS) fpmake_add.inc fpmake_proc.inc
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2306,19 +2356,45 @@ endif
-$(DEL) fpmake.dbg
endif
cleanall: distclean
-install: fpmake
+install: fpmake$(SRCEXEEXT)
ifdef UNIXHier
$(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) $(FPMAKE_INSTALL_OPT)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) $(FPMAKE_INSTALL_OPT) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) $(FPMAKE_INSTALL_OPT) -ie -fsp 0
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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
+PPULIST:=$(wildcard */units/*/*.ppu) $(wildcard units/*/*.ppu)
+PPULOGLIST:=$(subst .ppu,.log-ppu,$(PPULIST))
+RMPPULOGLIST:=$(subst .ppu,.rm-log-ppu,$(PPULIST))
+.PHONY : ppulogs cleanppulogs testppudump $(RMPPULOGLIST)
+ppulogs : $(PPULOGLIST)
+vpath %.ppu $(ALLPPUDIRS)
+vpath %.log-ppu $(ALLPPUDIRS)
+vpath %.rm-log-ppu $(ALLPPUDIRS)
+%.log-ppu : %.ppu ../compiler/utils/ppudump$(EXEEXT)
+ ..$(PATHSEP)compiler$(PATHSEP)utils$(PATHSEP)ppudump -VA -M $< > $@
+%.rm-log-ppu : %.ppu ../compiler/utils/ppudump$(EXEEXT)
+ -$(RMPROG) $<
+../compiler/utils/ppudump$(EXEEXT):
+ $(MAKE) -C $(COMPILERDIR)/utils ppudump$(EXEEXT)
+ppuinfo :
+ echo PPU list is "$(PPULIST)"
+ echo PPULOG list is "$(PPULOGLIST)"
+cleanppulogs : $(RMPPULOGLIST)
+testppudump :
+ $(MAKE) cleanppulogs ppulogs
diff --git a/utils/Makefile.fpc b/utils/Makefile.fpc
index c8eab910d7..5d3ee118a2 100644
--- a/utils/Makefile.fpc
+++ b/utils/Makefile.fpc
@@ -25,6 +25,7 @@ FPC_TARGETOPT+=--cpu=$(CPU_TARGET)
endif
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
LOCALFPMAKE=./fpmake$(SRCEXEEXT)
+SUB_FPMAKE_SRCS=$(wildcard */fpmake.pp)
[rules]
# Do not pass the Makefile's unit and binary target locations. fpmake uses it's own.
@@ -45,15 +46,15 @@ FPMAKE_OPT+=-sp
endif
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp $(SUB_FPMAKE_SRCS) fpmake_add.inc fpmake_proc.inc
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -85,20 +86,63 @@ endif
-$(DEL) fpmake.dbg
endif
cleanall: distclean
-install: fpmake
+install: fpmake$(SRCEXEEXT)
ifdef UNIXHier
$(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) $(FPMAKE_INSTALL_OPT)
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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) $(FPMAKE_INSTALL_OPT) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) $(FPMAKE_INSTALL_OPT) -ie -fsp 0
else
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) $(FPMAKE_INSTALL_OPT) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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
+
+#####################################################################
+# PPU testing targets
+#####################################################################
+
+PPULIST:=$(wildcard */units/*/*.ppu) $(wildcard units/*/*.ppu)
+PPULOGLIST:=$(subst .ppu,.log-ppu,$(PPULIST))
+RMPPULOGLIST:=$(subst .ppu,.rm-log-ppu,$(PPULIST))
+
+.PHONY : ppulogs cleanppulogs testppudump $(RMPPULOGLIST)
+
+ppulogs : $(PPULOGLIST)
+
+vpath %.ppu $(ALLPPUDIRS)
+vpath %.log-ppu $(ALLPPUDIRS)
+vpath %.rm-log-ppu $(ALLPPUDIRS)
+
+%.log-ppu : %.ppu ../compiler/utils/ppudump$(EXEEXT)
+ ..$(PATHSEP)compiler$(PATHSEP)utils$(PATHSEP)ppudump -VA -M $< > $@
+
+%.rm-log-ppu : %.ppu ../compiler/utils/ppudump$(EXEEXT)
+ -$(RMPROG) $<
+
+
+../compiler/utils/ppudump$(EXEEXT):
+ $(MAKE) -C $(COMPILERDIR)/utils ppudump$(EXEEXT)
+
+ppuinfo :
+ echo PPU list is "$(PPULIST)"
+ echo PPULOG list is "$(PPULOGLIST)"
+
+cleanppulogs : $(RMPPULOGLIST)
+
+testppudump :
+ $(MAKE) cleanppulogs ppulogs
+
diff --git a/utils/Makefile.fpc.fpcmake b/utils/Makefile.fpc.fpcmake
index e2c45900e7..7c2dd8caaf 100644
--- a/utils/Makefile.fpc.fpcmake
+++ b/utils/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=utils
-version=2.7.1
+version=3.1.1
[target]
dirs=fppkg fpcm tply h2pas fprcp dxegen fpdoc fpcmkcfg pas2ut pas2fpm pas2jni
diff --git a/utils/debugsvr/Makefile b/utils/debugsvr/Makefile
index 398b6737df..5554467b85 100644
--- a/utils/debugsvr/Makefile
+++ b/utils/debugsvr/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=debugsvr
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/debugsvr/Makefile.fpc b/utils/debugsvr/Makefile.fpc
index e80beed96b..5bb9aa169b 100644
--- a/utils/debugsvr/Makefile.fpc
+++ b/utils/debugsvr/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=debugsvr
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/debugsvr/console/Makefile b/utils/debugsvr/console/Makefile
index 6e692454b1..0f2771d459 100644
--- a/utils/debugsvr/console/Makefile
+++ b/utils/debugsvr/console/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=debugserver
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=debugserver
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=debugserver
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=debugserver
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=debugserver
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=debugserver
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=debugserver
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=debugserver
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=debugserver
endif
@@ -610,6 +625,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=debugserver
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=debugserver
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=debugserver
endif
@@ -697,6 +715,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=debugserver
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=debugserver
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=debugserver
endif
@@ -751,6 +772,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_RSTS+=debugserver
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_RSTS+=debugserver
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_RSTS+=debugserver
endif
@@ -833,6 +857,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_UNITDIR+=..
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_UNITDIR+=..
endif
@@ -920,6 +947,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_UNITDIR+=..
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_UNITDIR+=..
endif
@@ -974,6 +1004,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_UNITDIR+=..
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_UNITDIR+=..
endif
@@ -1228,6 +1261,12 @@ 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=
@@ -1273,6 +1312,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1694,6 +1738,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1781,6 +1828,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1835,6 +1885,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
endif
@@ -1998,7 +2051,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2028,17 +2081,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/utils/debugsvr/gtk/Makefile b/utils/debugsvr/gtk/Makefile
index cfd6a92a36..5ac8487ffc 100644
--- a/utils/debugsvr/gtk/Makefile
+++ b/utils/debugsvr/gtk/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -388,6 +394,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=debugserver
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=debugserver
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=debugserver
endif
@@ -475,6 +484,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=debugserver
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=debugserver
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=debugserver
endif
@@ -529,6 +541,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=debugserver
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=debugserver
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=debugserver
endif
@@ -610,6 +625,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_UNITS+=frmabout frmmain bitmapdata
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_UNITS+=frmabout frmmain bitmapdata
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_UNITS+=frmabout frmmain bitmapdata
endif
@@ -697,6 +715,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_UNITS+=frmabout frmmain bitmapdata
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_UNITS+=frmabout frmmain bitmapdata
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_UNITS+=frmabout frmmain bitmapdata
endif
@@ -751,6 +772,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_UNITS+=frmabout frmmain bitmapdata
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_UNITS+=frmabout frmmain bitmapdata
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_UNITS+=frmabout frmmain bitmapdata
endif
@@ -832,6 +856,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_RSTS+=frmabout frmmain
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_RSTS+=frmabout frmmain
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_RSTS+=frmabout frmmain
endif
@@ -919,6 +946,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_RSTS+=frmabout frmmain
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_RSTS+=frmabout frmmain
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_RSTS+=frmabout frmmain
endif
@@ -973,6 +1003,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_RSTS+=frmabout frmmain
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_RSTS+=frmabout frmmain
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_RSTS+=frmabout frmmain
endif
@@ -1055,6 +1088,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override COMPILER_UNITDIR+=..
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override COMPILER_UNITDIR+=..
endif
@@ -1142,6 +1178,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override COMPILER_UNITDIR+=..
+endif
ifeq ($(FULL_TARGET),arm-linux)
override COMPILER_UNITDIR+=..
endif
@@ -1196,6 +1235,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override COMPILER_UNITDIR+=..
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override COMPILER_UNITDIR+=..
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override COMPILER_UNITDIR+=..
endif
@@ -1450,6 +1492,12 @@ 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=
@@ -1495,6 +1543,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1916,6 +1969,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),i386-aros)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -2003,6 +2059,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
endif
@@ -2057,6 +2116,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
REQUIRE_PACKAGES_RTL=1
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+REQUIRE_PACKAGES_RTL=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
endif
@@ -2220,7 +2282,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2250,17 +2312,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_units
ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)
override ALLTARGET+=fpc_units
diff --git a/utils/delp.lpi b/utils/delp.lpi
new file mode 100644
index 0000000000..a6c97c6a79
--- /dev/null
+++ b/utils/delp.lpi
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CONFIG>
+ <ProjectOptions>
+ <Version Value="9"/>
+ <General>
+ <Flags>
+ <MainUnitHasCreateFormStatements Value="False"/>
+ <MainUnitHasTitleStatement Value="False"/>
+ <UseDefaultCompilerOptions Value="True"/>
+ </Flags>
+ <SessionStorage Value="InProjectDir"/>
+ <MainUnit Value="0"/>
+ <Title Value="delp"/>
+ <UseAppBundle Value="False"/>
+ <ResourceType Value="res"/>
+ </General>
+ <i18n>
+ <EnableI18N LFM="False"/>
+ </i18n>
+ <VersionInfo>
+ <StringTable ProductVersion=""/>
+ </VersionInfo>
+ <BuildModes Count="1">
+ <Item1 Name="Default" Default="True"/>
+ </BuildModes>
+ <PublishOptions>
+ <Version Value="2"/>
+ </PublishOptions>
+ <RunParams>
+ <local>
+ <FormatVersion Value="1"/>
+ </local>
+ </RunParams>
+ <Units Count="1">
+ <Unit0>
+ <Filename Value="delp.pp"/>
+ <IsPartOfProject Value="True"/>
+ <UnitName Value="Delp"/>
+ </Unit0>
+ </Units>
+ </ProjectOptions>
+ <CompilerOptions>
+ <Version Value="11"/>
+ <Parsing>
+ <SyntaxOptions>
+ <UseAnsiStrings Value="False"/>
+ </SyntaxOptions>
+ </Parsing>
+ <Other>
+ <CompilerPath Value="$(CompPath)"/>
+ </Other>
+ </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/delp.pp b/utils/delp.pp
index 7b3b717a0a..4f893443b9 100644
--- a/utils/delp.pp
+++ b/utils/delp.pp
@@ -149,7 +149,12 @@ begin
until s='';
end;
-Var quiet: boolean;
+Var
+ quiet : boolean = False;
+ Recurse : Boolean = False;
+ Verbose : Boolean = False;
+ NoDelete : Boolean = False;
+ MaxDepth : Integer = 0;
procedure usage;
@@ -157,8 +162,13 @@ begin
Writeln('Delp [options] <directory> [<directory2> [<directory3> ...]');
Writeln('Where options is one of:');
writeln(' -e Delete executables also (Not on Unix)');
+ writeln(' -x ext Add extension to list of extensions to delete (no dot)');
writeln(' -h Display (this) help message.');
+ writeln(' -r Recurse into directories.');
+ writeln(' -n Do not actually delete files.');
+ writeln(' -m N Maximum depth to recurse into directories (1 based, zero is no max).');
writeln(' -q Quietly perfoms deleting.');
+ writeln(' -v Verbose (print names of deleted files).');
Halt(1);
end;
@@ -169,21 +179,95 @@ Var c : char;
begin
quiet:=false;
Repeat
- C:=Getopt('ehq');
+ C:=Getopt('ehvnqrm:x:');
Case C of
'e' : AddMAsk('*.exe *.so *.dll');
+ 'x' : if (optarg<>'') then
+ AddMask('*.'+optarg);
'h' : Usage;
- 'q' : Quiet:=True;
+ 'r' : Recurse:=True;
+ 'n' : NoDelete:=True;
+ 'm' : MaxDepth:=StrToInt(optarg);
+ 'q' : begin
+ Quiet:=True;
+ verbose:=False;
+ end;
+ 'v' : Verbose:=True;
EndOfOptions : ;
end;
Until C=EndOfOptions;
end;
+Procedure DoDir(basedir : string; ALevel : Integer);
+
var
Dir : TSearchrec;
- Total : longint;
hp : pmaskitem;
+
+begin
+ if Verbose and not Quiet then
+ Writeln('Cleaning directory "',BaseDir,'".');
+ if FindFirst(basedir+'*.*',faanyfile,Dir)=0 then
+ begin
+ repeat
+ hp:=masklist;
+ while assigned(hp) do
+ begin
+ if ((Dir.Attr and faDirectory)=0) and MatchesMask(Dir.Name,hp^.mask) then
+ begin
+ if Verbose then
+ Writeln('Deleting "',BaseDir+Dir.Name,'"');
+ if not NoDelete then
+ DeleteFile(BaseDir+Dir.Name);
+ inc(hp^.Files);
+ inc(hp^.Size,Dir.Size);
+ break;
+ end;
+ hp:=hp^.next;
+ end;
+ until FindNext(Dir)<>0;
+ FindClose(Dir);
+ end;
+ if Recurse and ((MaxDepth=0) or (ALevel<=MaxDepth)) then
+ if FindFirst(basedir+allfilesmask,faanyfile,Dir)=0 then
+ begin
+ Repeat
+ if ((Dir.Attr and faDirectory)=faDirectory) and Not ((Dir.Name='.') or (Dir.Name='..')) then
+ DoDir(IncludeTrailingPathDelimiter(BaseDir+Dir.Name),ALevel+1);
+ until FindNext(Dir)<>0;
+ FindClose(Dir);
+ end;
+end;
+
+Procedure PrintResults;
+
+var
+ Total : longint;
found : boolean;
+ hp : pmaskitem;
+
+begin
+ { Write Results }
+ Total:=0;
+ found:=false;
+ hp:=masklist;
+ while assigned(hp) do
+ begin
+ if hp^.Files>0 then
+ begin
+ WriteLn(' - Removed ',hp^.Files:2,' ',hp^.Mask,' (',DStr(hp^.Size)+' Bytes)');
+ inc(Total,hp^.Size);
+ found:=true;
+ end;
+ hp:=hp^.next;
+ end;
+ if not found then
+ WriteLn(' - No Redundant Files Found!')
+ else
+ WriteLn(' - Total ',DStr(Total),' Bytes Freed');
+end;
+
+var
basedir : string;
i : Integer;
@@ -212,49 +296,12 @@ begin
writeln(Copyright);
Writeln;
end;
- Total:=0;
While (I<=ParamCount) do
begin
- BaseDir:=Paramstr(I);
- If BaseDir[Length(BaseDir)]<>DirectorySeparator then
- BaseDir:=BaseDir+DirectorySeparator;
- if FindFirst(basedir+'*.*',faanyfile,Dir)=0 then
- begin
- repeat
- hp:=masklist;
- while assigned(hp) do
- begin
- if MatchesMask(Dir.Name,hp^.mask) then
- begin
- DeleteFile(BaseDir+Dir.Name);
- inc(hp^.Files);
- inc(hp^.Size,Dir.Size);
- break;
- end;
- hp:=hp^.next;
- end;
- until FindNext(Dir)<>0;
- FindClose(Dir);
- end;
+ BaseDir:=IncludeTrailingPathDelimiter(Paramstr(I));
+ DoDir(Basedir,1);
Inc(I);
end;
- { Write Results }
- found:=false;
- hp:=masklist;
- while assigned(hp) do
- begin
- if hp^.Files>0 then
- begin
- if not quiet then
- WriteLn(' - Removed ',hp^.Files:2,' ',hp^.Mask,' (',DStr(hp^.Size)+' Bytes)');
- inc(Total,hp^.Size);
- found:=true;
- end;
- hp:=hp^.next;
- end;
- if not quiet then
- if not found then
- WriteLn(' - No Redundant Files Found!')
- else
- WriteLn(' - Total ',DStr(Total),' Bytes Freed');
+ if Not Quiet then
+ PrintResults;
end.
diff --git a/utils/dxegen/Makefile b/utils/dxegen/Makefile
index fb8ff5adfa..16196101fb 100644
--- a/utils/dxegen/Makefile
+++ b/utils/dxegen/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=dxegen
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/dxegen/Makefile.fpc b/utils/dxegen/Makefile.fpc
index 0a6e44ca82..67da53a85c 100644
--- a/utils/dxegen/Makefile.fpc
+++ b/utils/dxegen/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=dxegen
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/dxegen/fpmake.pp b/utils/dxegen/fpmake.pp
index 5fa2bfd50c..435a976eda 100644
--- a/utils/dxegen/fpmake.pp
+++ b/utils/dxegen/fpmake.pp
@@ -14,7 +14,8 @@ Var
begin
With Installer do
begin
- P:=AddPackage('dxegen');
+ P:=AddPackage('utils-dxegen');
+ P.ShortName:='dxeg';
P.Author := 'Charles Sandmann and others';
P.License := 'LGPL with modification';
@@ -27,7 +28,7 @@ begin
P.OSes:=[go32v2];
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
T:=P.Targets.AddProgram('dxegen.pp');
T.Dependencies.AddUnit('coff');
diff --git a/utils/fpcm/Makefile b/utils/fpcm/Makefile
index 04b169e450..4df4756105 100644
--- a/utils/fpcm/Makefile
+++ b/utils/fpcm/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fpcm
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -573,6 +579,12 @@ 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=
@@ -618,6 +630,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1154,6 +1171,14 @@ 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
@@ -1386,6 +1411,14 @@ 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
@@ -1530,6 +1563,14 @@ 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
@@ -1903,7 +1944,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1933,17 +1974,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2290,11 +2337,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2310,15 +2356,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2338,22 +2384,28 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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
ifndef inCygWin
$(BS_UNITDIR):
$(MKDIRTREE) $(BS_UNITDIR)
diff --git a/utils/fpcm/Makefile.fpc b/utils/fpcm/Makefile.fpc
index bbfdbe77d6..36b959d709 100644
--- a/utils/fpcm/Makefile.fpc
+++ b/utils/fpcm/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fpcm
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -43,15 +43,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -76,23 +76,30 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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
# Cygwin doesn't like c:/path/
ifndef inCygWin
$(BS_UNITDIR):
diff --git a/utils/fpcm/Makefile.fpmake.bs.template b/utils/fpcm/Makefile.fpmake.bs.template
index 892244bcd5..38a6f62008 100644
--- a/utils/fpcm/Makefile.fpmake.bs.template
+++ b/utils/fpcm/Makefile.fpmake.bs.template
@@ -67,15 +67,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -100,20 +100,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/fpcm/Makefile.fpmake.template b/utils/fpcm/Makefile.fpmake.template
index 7189e0af81..4a0df3f0c2 100644
--- a/utils/fpcm/Makefile.fpmake.template
+++ b/utils/fpcm/Makefile.fpmake.template
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/fpcm/fpcmake.inc b/utils/fpcm/fpcmake.inc
index 0485be5715..944159bc06 100644
--- a/utils/fpcm/fpcmake.inc
+++ b/utils/fpcm/fpcmake.inc
@@ -1,7 +1,7 @@
{$ifdef Delphi}
-const fpcmakeini : array[0..224] of string[240]=(
+const fpcmakeini : array[0..225] of string[240]=(
{$else Delphi}
-const fpcmakeini : array[0..224,1..240] of char=(
+const fpcmakeini : array[0..225,1..240] of char=(
{$endif Delphi}
';'#010+
'; Templates used by fpcmake to create a Makefile from Makefile.fpc'#010+
@@ -14,12 +14,12 @@ const fpcmakeini : array[0..224,1..240] of char=(
'#'#010+
#010+
'# OS categories'#010+
- 'BSDs = freebsd netbsd openbsd darwin'#010+
+ 'BSDs = freebsd netbsd openbsd darwin dragonfly'#010+
'UNIXs = linux $(BSDs) solaris qnx haiku aix'#010+
'LIMIT83fs = go32v2 os2 emx watcom msdos'#010+
'OSNeedsComspecToRunBatch = go32v2 watcom'#010+
#010+
- '#Empty target for rules that always should',' run. Needed if'#010+
+ '#Empty target for rules that alw','ays should run. Needed if'#010+
'#the target is non-phoney, and there is non-phony prereqisites.'#010+
'#Then add FORCE as an prerequisite'#010+
'#See gnu make manual: 4.7 Rules without Commands or Prerequisites'#010+
@@ -27,17 +27,17 @@ const fpcmakeini : array[0..224,1..240] of char=(
'.PHONY: FORCE'#010+
#010+
'[osdetect]'#010+
- '##########################','##########################################'+
+ '################','####################################################'+
'#'#010+
'# Autodetect source OS (Linux or Dos or Windows NT or OS/2 or other)'#010+
'# define inUnix when running under Unix like environment'#010+
- '# (Linux,FreeBSD,NetBSD,OpenBSD,Darwin,Cygwin)'#010+
- '# define ','inWinNT when running under WinNT'#010+
+ '# (Linux,FreeBSD,NetBSD,OpenBSD,Darwin,Cygwin)',#010+
+ '# define inWinNT when running under WinNT'#010+
'# define inOS2 when running under OS/2'#010+
'# define inCygwin when running under Cygwin32'#010+
'#####################################################################'#010+
#010+
- '# We need only / in the path also remove the curren','t dir,'#010+
+ '# We need only / in the path also remove ','the current dir,'#010+
'# also remove trailing /'#039's'#010+
'override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))'#010+
#010+
@@ -45,15 +45,15 @@ const fpcmakeini : array[0..224,1..240] of char=(
'# Darwin is handled specially'#010+
'ifneq ($(findstring darwin,$(OSTYPE)),)'#010+
'inUnix=1 #darwin'#010+
- 'SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))'#010+
- 'el','se'#010+
+ 'SEARCHPATH:=$(filter-out .,$(subst :, ,$(','PATH)))'#010+
+ 'else'#010+
'# Determine if we'#039've a unix searchpath by looking for a ;'#010+
'# that normally doesn'#039't exists in the unix PATH var.'#010+
'ifeq ($(findstring ;,$(PATH)),)'#010+
'inUnix=1'#010+
'SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))'#010+
'else'#010+
- 'SEARCHPATH:=$(subst ;, ,$(PATH)',')'#010+
+ 'SEARCHPATH:=$(subst ;',', ,$(PATH))'#010+
'endif'#010+
'endif'#010+
#010+
@@ -63,7 +63,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'# Search for PWD'#010+
'PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))'#010+
'ifeq ($(PWD),)'#010+
- 'PWD:=$(strip $(wildcard $(addsuffix /pwd,','$(SEARCHPATH))))'#010+
+ 'PWD:=$(strip $(wildcard $(addsu','ffix /pwd,$(SEARCHPATH))))'#010+
'ifeq ($(PWD),)'#010+
'$(error You need the GNU utils package to use this Makefile)'#010+
'else'#010+
@@ -75,8 +75,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'SRCEXEEXT=.exe'#010+
'endif'#010+
#010+
- '# Detect NT - NT sets OS to Windows_NT'#010+
- '# Detect ','OS/2 - OS/2 has OS2_SHELL defined'#010+
+ '# Detect NT - NT sets OS to Windows_NT',#010+
+ '# Detect OS/2 - OS/2 has OS2_SHELL defined'#010+
'ifndef inUnix'#010+
'ifeq ($(OS),Windows_NT)'#010+
'inWinNT=1'#010+
@@ -91,8 +91,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
'endif'#010+
#010+
- '# The extension of batch files / scripts'#010+
- 'ifdef i','nUnix'#010+
+ '# The extension of batch files / scrip','ts'#010+
+ 'ifdef inUnix'#010+
'SRCBATCHEXT=.sh'#010+
'else'#010+
'ifdef inOS2'#010+
@@ -110,7 +110,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
'endif'#010+
#010+
- '# Path Separa','tor, the subst trick is necessary for the \ that can'#039+
+ '# P','ath Separator, the subst trick is necessary for the \ that can'#039+
't exists'#010+
'# at the end of a line'#010+
'ifdef inUnix'#010+
@@ -123,14 +123,14 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
'endif'#010+
#010+
- '# Base dir'#010+
- 'ifdef PW','D'#010+
+ '# Base di','r'#010+
+ 'ifdef PWD'#010+
'BASEDIR:=$(subst \,/,$(shell $(PWD)))'#010+
'# For Cygwin we need to replace /cygdrive/c/ with c:/'#010+
'ifdef inCygWin'#010+
'ifneq ($(findstring /cygdrive/,$(BASEDIR)),)'#010+
'BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))'#010+
- 'BASEDRIVE:=$(firstword $(subst /, ,$(BA','SENODIR)))'#010+
+ 'BASEDRIVE:=$(firstword $(subs','t /, ,$(BASENODIR)))'#010+
'BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))'#010+
'endif'#010+
'endif'#010+
@@ -142,7 +142,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'ays found'#010+
'ifdef inOS2'#010+
'ifndef ECHO'#010+
- 'ECHO:=$(strip $(wildcard $(','addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH'+
+ 'ECHO:=$(strip $(w','ildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH'+
'))))'#010+
'ifeq ($(ECHO),)'#010+
'ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH)))'+
@@ -153,9 +153,9 @@ const fpcmakeini : array[0..224,1..240] of char=(
'ECHO:=$(firstword $(ECHO))'#010+
'endif'#010+
'else'#010+
- 'ECHO:=$(firstword $(ECHO))'#010+
+ 'ECHO:=$(firstword $(ECHO))'#010,
+ 'endif'#010+
'endif'#010+
- 'endi','f'#010+
'export ECHO'#010+
'endif'#010+
#010+
@@ -164,7 +164,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'# FPC Binary and Version Detection'#010+
'#####################################################################'#010+
#010+
- '# Compatibility with old makefi','les'#010+
+ '# Compatibility with ','old makefiles'#010+
'ifndef FPC'#010+
'ifdef PP'#010+
'FPC=$(PP)'#010+
@@ -173,7 +173,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'# Try to detect the ppcXXX file to use by using "fpc -PB" option'#010+
'# to query for the default ppcXXX the fpc executable tries. When'#010+
- '# fpc is not found use ppc386 by default. Also when fpc -PB giv','es'#010+
+ '# fpc is not found use ppc386 by default. Also when f','pc -PB gives'#010+
'# an error ppc386 will be used.'#010+
'ifndef FPC'#010+
'# check if fpc exists'#010+
@@ -182,14 +182,14 @@ const fpcmakeini : array[0..224,1..240] of char=(
'ifneq ($(FPCPROG),)'#010+
'FPCPROG:=$(firstword $(FPCPROG))'#010+
'ifneq ($(CPU_TARGET),)'#010+
- 'FPC:=$(shell $(FPCPROG',') -P$(CPU_TARGET) -PB)'#010+
+ 'FPC:=$(shell',' $(FPCPROG) -P$(CPU_TARGET) -PB)'#010+
'else'#010+
'FPC:=$(shell $(FPCPROG) -PB)'#010+
'endif'#010+
'# Older fpc executables didn'#039't support it and return'#010+
'# Error: Illegal processor... If found then fallback to ppc386'#010+
'ifneq ($(findstring Error,$(FPC)),)'#010+
- 'override FPC=$(firstword ','$(strip $(wildcard $(addsuffix /ppc386$(SRC'+
+ 'override FPC=$(','firstword $(strip $(wildcard $(addsuffix /ppc386$(SRC'+
'EXEEXT),$(SEARCHPATH)))))'#010+
'else'#010+
'# if the cross compiler is not found, fall back to fpc'#010+
@@ -198,7 +198,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
'endif'#010+
'else'#010+
- '# fpc binary not found, fallb','ack to ppc386'#010+
+ '# fpc binary not fo','und, fallback to ppc386'#010+
'override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEX'+
'EEXT),$(SEARCHPATH)))))'#010+
'endif'#010+
@@ -206,15 +206,15 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'# Get a clean executable name'#010+
'override FPC:=$(subst $(SRCEXEEXT),,$(FPC))'#010+
- 'override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)',#010+
+ 'override FPC:=$(subst \,/,$(FPC))$(','SRCEXEEXT)'#010+
#010+
'# Try to find the binary direct first, otherwise in the path,'#010+
'# if not found give an error'#010+
'FOUNDFPC:=$(strip $(wildcard $(FPC)))'#010+
'ifeq ($(FOUNDFPC),)'#010+
'FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))'#010+
- 'ifeq ($(FOUNDFPC),)'#010+
- '$(er','ror Compiler $(FPC) not found)'#010+
+ 'ifeq ($(FOUNDF','PC),)'#010+
+ '$(error Compiler $(FPC) not found)'#010+
'endif'#010+
'endif'#010+
#010+
@@ -225,7 +225,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
'# FPC version'#010+
- 'ifndef FPC_VERSIO','N'#010+
+ 'ifndef ','FPC_VERSION'#010+
'FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))'#010+
'endif'#010+
#010+
@@ -234,7 +234,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'# This should limit multiple checks'#010+
'unexport CHECKDEPEND ALLDEPENDENCIES'#010+
#010+
- '#####################################','###############################'+
+ '###########################','#########################################'+
'#'#010+
'# FPC Target Detection'#010+
'#####################################################################'#010+
@@ -242,7 +242,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'# Fall back to default values if needed'#010+
'ifndef CPU_TARGET'#010+
'ifdef CPU_TARGET_DEFAULT'#010+
- 'CPU_TARGET=$(CPU_TARGET_DEFAUL','T)'#010+
+ 'CPU_TARGET=$(CPU_TAR','GET_DEFAULT)'#010+
'endif'#010+
'endif'#010+
'ifndef OS_TARGET'#010+
@@ -255,8 +255,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'ifndef CPU_SOURCE'#010+
'CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))'#010+
'endif'#010+
- 'ifndef CPU_TARGET'#010+
- 'CPU_TA','RGET:=$(word 3,$(FPC_COMPILERINFO))'#010+
+ 'ifndef CPU_TAR','GET'#010+
+ 'CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))'#010+
'endif'#010+
'ifndef OS_SOURCE'#010+
'OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))'#010+
@@ -265,7 +265,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))'#010+
'endif'#010+
'FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)'#010+
- 'FULL_SOURCE=$(CPU_SOURCE)-$(OS_','SOURCE)'#010+
+ 'FULL_SOURCE=$(CPU_SOU','RCE)-$(OS_SOURCE)'#010+
#010+
'ifeq ($(CPU_TARGET),armeb)'#010+
'ARCH=arm'#010+
@@ -281,7 +281,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'ifeq ($(FULL_TARGET),arm-embedded)'#010+
'ifeq ($(SUBARCH),)'#010+
- '# we don'#039't add a ','default here, people should explicitly add the '+
+ '# we do','n'#039't add a default here, people should explicitly add the '+
'SUBARCH'#010+
'$(error When compiling for arm-embedded, a sub-architecture (e.g. SUBA'+
'RCH=armv4t or SUBARCH=armv7m) must be defined)'#010+
@@ -289,14 +289,14 @@ const fpcmakeini : array[0..224,1..240] of char=(
'override FPCOPT+=-Cp$(SUBARCH)'#010+
'endif'#010+
#010+
- 'ifeq ($(FULL_TARGET),mip','sel-embedded)'#010+
+ 'ifeq ($(FULL_T','ARGET),mipsel-embedded)'#010+
'ifeq ($(SUBARCH),)'#010+
'# we don'#039't add a default here, people should explicitly add the SU'+
'BARCH'#010+
'$(error When compiling for mipsel-embedded, a sub-architecture (e.g. S'+
'UBARCH=pic32mx) must be defined)'#010+
'endif'#010+
- 'override FPCOPT+=-Cp$(SUBA','RCH)'#010+
+ 'override FPCOPT+','=-Cp$(SUBARCH)'#010+
'endif'#010+
#010+
'# Full name of the target, including CPU and OS. For OSs limited'#010+
@@ -305,7 +305,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'TARGETSUFFIX=$(OS_TARGET)'#010+
'SOURCESUFFIX=$(OS_SOURCE)'#010+
'else'#010+
- 'ifneq ($(findstring $(','OS_TARGET),$(LIMIT83fs)),)'#010+
+ 'ifneq ($(fin','dstring $(OS_TARGET),$(LIMIT83fs)),)'#010+
'TARGETSUFFIX=$(OS_TARGET)'#010+
'else'#010+
'TARGETSUFFIX=$(FULL_TARGET)'#010+
@@ -318,12 +318,12 @@ const fpcmakeini : array[0..224,1..240] of char=(
'CROSSCOMPILE=1'#010+
'endif'#010+
#010+
- '# Check if the Makefile supports',' this target, but not'#010+
+ '# Check if the Makefil','e supports this target, but not'#010+
'# when the make target is to rebuild the makefile'#010+
'ifeq ($(findstring makefile,$(MAKECMDGOALS)),)'#010+
'ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)'#010+
- '$(error The Makefile doesn'#039't support target $(FULL_TARGET), pleas',
- 'e run fpcmake first)'#010+
+ '$(error The Makefile doesn'#039't support target $(FULL_TARG','ET), plea'+
+ 'se run fpcmake first)'#010+
'endif'#010+
'endif'#010+
#010+
@@ -335,7 +335,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
'# Detect Linux, will also use its own directory hierarchy.'#010+
- 'ifeq ($(OS_TAR','GET),linux)'#010+
+ 'ifeq',' ($(OS_TARGET),linux)'#010+
'linuxHier=1'#010+
'endif'#010+
#010+
@@ -349,15 +349,16 @@ const fpcmakeini : array[0..224,1..240] of char=(
'export BUILDNATIVE'#010+
'endif'#010+
#010+
- 'export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL'+
- '_SOURCE T','ARGETSUFFIX SOURCESUFFIX CROSSCOMPILE'#010+
+ 'export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FUL',
+ 'L_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE'#010+
#010+
'[fpmakefpcdetect]'#010+
'#####################################################################'#010+
'# FPC Binary and Version Detection'#010+
- '#####################################################################'#010+
- '# If FPC','FPMAKE is not set and we'#039're cross-compiling, try to find'+
- ' a'#010+
+ '####################################################################','#'+
+ #010+
+ '# If FPCFPMAKE is not set and we'#039're cross-compiling, try to find a'+
+ #010+
'# native compiler.'#010+
'ifndef FPCFPMAKE'#010+
#010+
@@ -366,35 +367,35 @@ const fpcmakeini : array[0..224,1..240] of char=(
'build'#010+
'# of the native rtl'#010+
#010+
- 'ifeq ($(strip $(wildcard $(a','ddsuffix /compiler/ppc$(SRCEXEEXT),$(FPC'+
+ 'ifeq ($(strip $(wi','ldcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(FPC'+
'DIR)))),)'#010+
'# If that compiler is not found, use the common, installed native comp'+
'iler'#010+
'# Note that in this case FPCFPMAKE is not exported, because it could b'+
'e that'#010+
- '# a more suitable compiler is compiled',' later on'#010+
+ '# a more suitable compiler i','s compiled later on'#010+
'# check if fpc exists'#010+
'FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH)'+
')))'#010+
'ifneq ($(FPCPROG),)'#010+
'FPCPROG:=$(firstword $(FPCPROG))'#010+
'FPCFPMAKE:=$(shell $(FPCPROG) -PB)'#010+
- '# if a native compiler is not found, fall back',' to fpc'#010+
+ '# if a native compiler is not found,',' fall back to fpc'#010+
'ifeq ($(strip $(wildcard $(FPCFPMAKE))),)'#010+
'FPCFPMAKE:=$(firstword $(FPCPROG))'#010+
'endif'#010+
'else'#010+
'# fpc binary not found, fallback to ppc386'#010+
'override FPCFPMAKE=$(firstword $(strip $(wildcard $(addsuffix /ppc386$'+
- '(SRCEXEEXT),$(SEARCHPATH)))))'#010+
- 'e','ndif'#010+
+ '(SRCEXEEXT),$(SEARCHP','ATH)))))'#010+
+ 'endif'#010+
'else'#010+
'# Use the ppc compiler. Because the path to the compiler is relative, '+
'do not'#010+
'# evaluate the variable here, but do that on the fly.'#010+
'FPCFPMAKE=$(strip $(wildcard $(addsuffix /compiler/ppc$(SRCEXEEXT),$(F'+
'PCDIR))))'#010+
- 'FPMAKE_SKIP_CONFIG=','-n'#010+
+ 'FPMAKE_SK','IP_CONFIG=-n'#010+
'export FPCFPMAKE'#010+
'export FPMAKE_SKIP_CONFIG'#010+
'endif'#010+
@@ -410,7 +411,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'[fpcdircheckenv]'#010+
'#####################################################################'#010+
'# FPCDIR Setting'#010+
- '########################','############################################'+
+ '##############','######################################################'+
'#'#010+
#010+
'# Test FPCDIR to look if the RTL dir exists'#010+
@@ -419,8 +420,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)'#010+
'override FPCDIR=wrong'#010+
'endif'#010+
- 'else'#010+
- 'override ','FPCDIR=wrong'#010+
+ 'else',#010+
+ 'override FPCDIR=wrong'#010+
'endif'#010+
#010+
'# Default FPCDIR from Makefile.fpc'#010+
@@ -430,8 +431,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)'#010+
'override FPCDIR=wrong'#010+
'endif'#010+
+ 'e','ndif'#010+
'endif'#010+
- 'endif',#010+
#010+
'[fpcdirdetect]'#010+
'# Detect FPCDIR'#010+
@@ -442,12 +443,12 @@ const fpcmakeini : array[0..224,1..240] of char=(
'override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)'#010+
'endif'#010+
'else'#010+
- 'override FPCDIR:=$(subst /$(FP','C),,$(firstword $(strip $(wildcard $(a'+
+ 'override FPCDIR:=$(s','ubst /$(FPC),,$(firstword $(strip $(wildcard $(a'+
'ddsuffix /$(FPC),$(SEARCHPATH))))))'#010+
'override FPCDIR:=$(FPCDIR)/..'#010+
'ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)'#010+
'override FPCDIR:=$(FPCDIR)/..'#010+
- 'ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),',')'#010+
+ 'ifeq ($(wildcard $(addprefix $(FPCDIR)/,rt','l units)),)'#010+
'override FPCDIR:=$(BASEDIR)'#010+
'ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)'#010+
'override FPCDIR=c:/pp'#010+
@@ -459,10 +460,10 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'# Cross binaries dir'#010+
'ifndef CROSSBINDIR'#010+
- 'CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))'#010+
+ 'CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX)',')'#010+
'endif'#010+
#010+
- '#',' Default binutils prefix for cross compile when the'#010+
+ '# Default binutils prefix for cross compile when the'#010+
'# crossbindir is not set (except for Darwin)'#010+
'ifneq ($(findstring $(OS_TARGET),darwin iphonesim),)'#010+
'ifeq ($(OS_SOURCE),darwin)'#010+
@@ -471,7 +472,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
'ifndef BINUTILSPREFIX'#010+
- 'ifndef CROSS','BINDIR'#010+
+ 'if','ndef CROSSBINDIR'#010+
'ifdef CROSSCOMPILE'#010+
'ifneq ($(OS_TARGET),msdos)'#010+
'ifndef DARWIN2DARWIN'#010+
@@ -480,8 +481,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'# For Android use standard NDK prefixes'#010+
'ifeq ($(OS_TARGET),android)'#010+
- 'ifeq ($(CPU_TARGET),arm)'#010+
- 'BIN','UTILSPREFIX=arm-linux-androideabi-'#010+
+ 'ifeq ($(CPU_TARGET','),arm)'#010+
+ 'BINUTILSPREFIX=arm-linux-androideabi-'#010+
'else'#010+
'ifeq ($(CPU_TARGET),i386)'#010+
'BINUTILSPREFIX=i686-linux-android-'#010+
@@ -496,7 +497,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
'endif'#010+
'else'#010+
- 'BINUTILSPREFIX=$(OS_TARGET)','-'#010+
+ 'BINUTILSPREFIX=$(','OS_TARGET)-'#010+
'endif'#010+
'endif'#010+
'endif'#010+
@@ -506,7 +507,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'# the OS for backwards compatibility'#010+
'UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))'#010+
'ifeq ($(UNITSDIR),)'#010+
- 'UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET)',')'#010+
+ 'UNITSDIR:=$(wildcard $(FPCDIR)/units/$(','OS_TARGET))'#010+
'endif'#010+
#010+
'# Packages dir'#010+
@@ -517,7 +518,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'[shelltools]'#010+
'#####################################################################'#010+
'# Shell tools'#010+
- '##############','######################################################'+
+ '####','################################################################'+
'#'#010+
#010+
'# Echo that can redir (must be able run in the default OS shell)'#010+
@@ -530,8 +531,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
'# To copy pograms'#010+
- 'ifndef COPY'#010+
- 'COPY:=','$(CPPROG) -fp'#010+
+ 'ifndef C','OPY'#010+
+ 'COPY:=$(CPPROG) -fp'#010+
'endif'#010+
#010+
'# Copy a whole tree'#010+
@@ -549,8 +550,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'MOVE:=$(MVPROG) -f'#010+
'endif'#010+
#010+
- '# Check delete program'#010+
- 'i','fndef DEL'#010+
+ '# Check delete',' program'#010+
+ 'ifndef DEL'#010+
'DEL:=$(RMPROG) -f'#010+
'endif'#010+
#010+
@@ -568,8 +569,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
'endif'#010+
#010+
- '# To install programs'#010+
- 'i','fndef INSTALLEXE'#010+
+ '# To install ','programs'#010+
+ 'ifndef INSTALLEXE'#010+
'ifdef inUnix'#010+
'INSTALLEXE:=$(GINSTALL) -c -m 755'#010+
'else'#010+
@@ -582,7 +583,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'MKDIR:=$(GINSTALL) -m 755 -d'#010+
'endif'#010+
#010+
- 'export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE',' M'+
+ 'export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL ','INSTALLEXE M'+
'KDIR'#010+
#010+
#010+
@@ -593,7 +594,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'# Units dir'#010+
'ifdef REQUIRE_UNITSDIR'#010+
- 'override UNITSDIR+=','$(REQUIRE_UNITSDIR)'#010+
+ 'override ','UNITSDIR+=$(REQUIRE_UNITSDIR)'#010+
'endif'#010+
#010+
'# Units dir'#010+
@@ -603,8 +604,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
#010+
'# Unixes use unix dirs with /usr/bin, /usr/lib'#010+
- '# When zipping use the target os default, when normal install then'#010+
- '# use th','e source os as default'#010+
+ '# When zipping use the target os default, when normal install the','n'#010+
+ '# use the source os as default'#010+
'ifdef ZIPINSTALL'#010+
'# Zipinstall'#010+
'ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)'#010+
@@ -617,7 +618,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
'endif'#010+
#010+
- '# When install prefix is not set t','ry to use prefix'#010+
+ '# When install prefix is',' not set try to use prefix'#010+
'ifndef INSTALL_PREFIX'#010+
'ifdef PREFIX'#010+
'INSTALL_PREFIX=$(PREFIX)'#010+
@@ -629,8 +630,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'ifdef UNIXHier'#010+
'INSTALL_PREFIX=/usr/local'#010+
'else'#010+
- 'ifdef INSTALL_FPCPACKAGE'#010+
- 'IN','STALL_BASEDIR:=/pp'#010+
+ 'ifdef INSTALL_FPC','PACKAGE'#010+
+ 'INSTALL_BASEDIR:=/pp'#010+
'else'#010+
'INSTALL_BASEDIR:=/$(PACKAGE_NAME)'#010+
'endif'#010+
@@ -641,8 +642,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'# Export also INSTALL_SOURCESUBDIR set so it will be'#010+
'# used recursively for all subdirs'#010+
'ifdef INSTALL_FPCSUBDIR'#010+
- 'export INSTALL_FPCSUBDIR'#010+
- 'endi','f'#010+
+ 'export INSTALL_FPCS','UBDIR'#010+
+ 'endif'#010+
#010+
'# Where to place the resulting zip files'#010+
'ifndef DIST_DESTDIR'#010+
@@ -653,7 +654,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'# EXE/PPU Target directories'#010+
'ifndef COMPILER_UNITTARGETDIR'#010+
'ifdef PACKAGEDIR_MAIN'#010+
- 'COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/u','nits/$(TARGETSUFFIX)'#010+
+ 'COMPILER_UNITTARGETDIR=$(PACKAGED','IR_MAIN)/units/$(TARGETSUFFIX)'#010+
'else'#010+
'COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)'#010+
'endif'#010+
@@ -664,16 +665,15 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
#010+
'#####################################################################'#010+
- '# Install Directories'#010+
- '##########','##########################################################'+
- '#'#010+
+ '# Install Directories'#010,
+ '#####################################################################'#010+
#010+
'# set the base directory where to install everything'#010+
'ifndef INSTALL_BASEDIR'#010+
'ifdef UNIXHier'#010+
'ifdef INSTALL_FPCPACKAGE'#010+
- 'INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)'#010+
- 'else'#010,
+ 'INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERS','ION)'#010+
+ 'else'#010+
'INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)'#010+
'endif'#010+
'else'#010+
@@ -684,8 +684,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'# set the directory where to install the binaries'#010+
'ifndef INSTALL_BINDIR'#010+
'ifdef UNIXHier'#010+
- 'INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin'#010+
- 'e','lse'#010+
+ 'INSTALL_BINDIR:=$(INSTALL_PRE','FIX)/bin'#010+
+ 'else'#010+
'INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin'#010+
'# for FPC packages install the binaries under their target subdir'#010+
'ifdef INSTALL_FPCPACKAGE'#010+
@@ -693,7 +693,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'ifdef CROSSINSTALL'#010+
'INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)'#010+
'else'#010+
- 'INSTALL_BINDI','R:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)'#010+
+ 'INS','TALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)'#010+
'endif'#010+
'else'#010+
'INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)'#010+
@@ -704,7 +704,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'# set the directory where to install the units.'#010+
'ifndef INSTALL_UNITDIR'#010+
- 'INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TA','RGETSUFFIX)'#010+
+ 'INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/','units/$(TARGETSUFFIX)'#010+
'ifdef INSTALL_FPCPACKAGE'#010+
'ifdef PACKAGE_NAME'#010+
'INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)'#010+
@@ -715,8 +715,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'# Where to install shared libraries'#010+
'ifndef INSTALL_LIBDIR'#010+
'ifdef UNIXHier'#010+
- 'INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib'#010+
- 'el','se'#010+
+ 'INSTALL_LIBDIR:=$(INSTALL_PREF','IX)/lib'#010+
+ 'else'#010+
'INSTALL_LIBDIR:=$(INSTALL_UNITDIR)'#010+
'endif'#010+
'endif'#010+
@@ -730,16 +730,16 @@ const fpcmakeini : array[0..224,1..240] of char=(
'ifdef linuxHier'#010+
'SRCPREFIXDIR=share/src'#010+
'else'#010+
- 'SRCPREFIXDIR=src'#010+
- 'endif'#010,
+ 'SRCPREFIXDIR=','src'#010+
+ 'endif'#010+
'endif'#010+
'ifdef INSTALL_FPCPACKAGE'#010+
'ifdef INSTALL_FPCSUBDIR'#010+
'INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION'+
')/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)'#010+
'else'#010+
- 'INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION'+
- ')','/$(PACKAGE_NAME)'#010+
+ 'INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FP','C_VERSI'+
+ 'ON)/$(PACKAGE_NAME)'#010+
'endif'#010+
'else'#010+
'INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$'+
@@ -748,7 +748,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'else'#010+
'ifdef INSTALL_FPCPACKAGE'#010+
'ifdef INSTALL_FPCSUBDIR'#010+
- 'INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR',')/$('+
+ 'INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL','_FPCSUBDIR)/$('+
'PACKAGE_NAME)'#010+
'else'#010+
'INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)'#010+
@@ -761,8 +761,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'# Where the doc files will be stored'#010+
'ifndef INSTALL_DOCDIR'#010+
- 'ifdef UNIXHier'#010+
- 'ifdef B','SDhier'#010+
+ 'ifdef UNIXHi','er'#010+
+ 'ifdef BSDhier'#010+
'DOCPREFIXDIR=share/doc'#010+
'else'#010+
'ifdef linuxHier'#010+
@@ -775,7 +775,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$'+
'(PACKAGE_NAME)'#010+
'else'#010+
- 'INSTALL_DOCDIR:=$','(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$('+
+ 'INSTALL','_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$('+
'PACKAGE_VERSION)'#010+
'endif'#010+
'else'#010+
@@ -787,14 +787,14 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
'endif'#010+
#010+
- '# Where to install',' the examples, under linux we use the doc dir'#010+
+ '# Where ','to install the examples, under linux we use the doc dir'#010+
'# because the copytree command will create a subdir itself'#010+
'ifndef INSTALL_EXAMPLEDIR'#010+
'ifdef UNIXHier'#010+
'ifdef INSTALL_FPCPACKAGE'#010+
#010+
'ifdef BSDhier'#010+
- 'INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/f','pc-$(FPC_VERSI'+
+ 'INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/','examples/fpc-$(FPC_VERSI'+
'ON)/$(PACKAGE_NAME)'#010+
'else'#010+
'ifdef linuxHier'#010+
@@ -808,14 +808,14 @@ const fpcmakeini : array[0..224,1..240] of char=(
'else'#010+
#010+
'ifdef BSDhier'#010+
- 'INSTALL_EXAMPL','EDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)'+
+ 'INST','ALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)'+
'-$(PACKAGE_VERSION)'#010+
'else'#010+
'ifdef linuxHier'#010+
'INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKA'+
'GE_VERSION)'#010+
'else'#010+
- 'INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-','$(PACKAGE_'+
+ 'INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACK','AGE_NAME)-$(PACKAGE_'+
'VERSION)'#010+
'endif'#010+
#010+
@@ -830,7 +830,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
'endif'#010+
#010+
- '# Where the some extra (data)files w','ill be stored'#010+
+ '# Where the some extra (da','ta)files will be stored'#010+
'ifndef INSTALL_DATADIR'#010+
'INSTALL_DATADIR=$(INSTALL_BASEDIR)'#010+
'endif'#010+
@@ -840,22 +840,22 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
'#####################################################################'#010+
- '# Cross compile dir','s'#010+
+ '# Cross c','ompile dirs'#010+
'#####################################################################'#010+
#010+
'ifdef CROSSCOMPILE'#010+
'# Directory where the cross compile tools are stored.'#010+
'# First check if they are available in FPCDIR. If no targets/ subdir'#010+
- '# is found use the target','s/ subdir in INSTALL_BASEDIR.'#010+
+ '# is found use ','the targets/ subdir in INSTALL_BASEDIR.'#010+
'ifndef CROSSBINDIR'#010+
'CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))'#010+
'ifeq ($(CROSSBINDIR),)'#010+
'CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$'+
'(FULL_SOURCE))'#010+
'endif'#010+
- 'endif'#010+
+ 'endi','f'#010+
'else'#010+
- 'CRO','SSBINDIR='#010+
+ 'CROSSBINDIR='#010+
'endif'#010+
#010+
#010+
@@ -867,8 +867,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'ifndef GCCLIBDIR'#010+
'ifeq ($(CPU_TARGET),i386)'#010+
'ifneq ($(findstring x86_64,$(shell uname -a)),)'#010+
- 'ifeq ($(BINUTILSPREFIX),)'#010+
- 'GCCLIBDI','R:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)'#010+
+ 'ifeq ($(BINUTILSPREFIX),',')'#010+
+ 'GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)'#010+
'endif'#010+
'endif'#010+
'endif'#010+
@@ -880,7 +880,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
'# Try cross gcc'#010+
- 'ifndef GCCLI','BDIR'#010+
+ 'if','ndef GCCLIBDIR'#010+
'CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEE'+
'XT),$(SEARCHPATH))))'#010+
'ifneq ($(CROSSGCC),)'#010+
@@ -888,8 +888,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
'endif'#010+
#010+
- '# Other libraries from ld.so.conf'#010+
- 'ifndef OTH','ERLIBDIR'#010+
+ '# Other libraries from ld.so.conf'#010,
+ 'ifndef OTHERLIBDIR'#010+
'OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '#039'{ ORS=" '+
'"; print $1 }'#039')'#010+
'endif'#010+
@@ -904,7 +904,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
#010+
'[extensions]'#010+
- '#################','###################################################'+
+ '#######','#############################################################'+
'#'#010+
'# Default extensions'#010+
'#####################################################################'#010+
@@ -913,7 +913,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'BATCHEXT=.bat'#010+
'LOADEREXT=.as'#010+
'EXEEXT=.exe'#010+
- 'PPLEXT=.ppl'#010,
+ 'PP','LEXT=.ppl'#010+
'PPUEXT=.ppu'#010+
'OEXT=.o'#010+
'ASMEXT=.s'#010+
@@ -926,7 +926,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'RSTEXT=.rst'#010+
'# external debug info for executable'#010+
'EXEDBGEXT=.dbg'#010+
- '#DEBUGSYMEXT #for debugger symbol ','files, define only for targets whi'+
+ '#DEBUGSYMEXT #for debugg','er symbol files, define only for targets whi'+
'ch has this'#010+
#010+
'# Go32v1'#010+
@@ -943,7 +943,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
'# watcom'#010+
- 'ifeq ($(OS_TARGE','T),watcom)'#010+
+ 'ifeq (','$(OS_TARGET),watcom)'#010+
'STATICLIBPREFIX='#010+
'OEXT=.obj'#010+
'ASMEXT=.asm'#010+
@@ -958,9 +958,9 @@ const fpcmakeini : array[0..224,1..240] of char=(
'BATCHEXT=.sh'#010+
'EXEEXT='#010+
'HASSHAREDLIB=1'#010+
- 'SHORTSUFFIX=lnx'#010+
+ 'SHORTSUFFIX=lnx',#010+
+ 'endif'#010+
'endif'#010+
- 'end','if'#010+
#010+
'# Linux'#010+
'ifeq ($(OS_TARGET),linux)'#010+
@@ -970,8 +970,16 @@ const fpcmakeini : array[0..224,1..240] of char=(
'SHORTSUFFIX=lnx'#010+
'endif'#010+
#010+
+ '# DragonFly BSD'#010+
+ 'ifeq ($(OS_TARGET),dragonfly)'#010+
+ 'BATCHEXT=.sh'#010+
+ 'EXEEXT='#010+
+ 'HASSHAREDLIB=1'#010+
+ 'SHORTSUFFIX=df'#010+
+ 'endif'#010+
+ #010+
'# FreeBSD'#010+
- 'ifeq ($(OS_TARGET),freebsd)'#010+
+ 'ifeq ($(OS_TARGET),','freebsd)'#010+
'BATCHEXT=.sh'#010+
'EXEEXT='#010+
'HASSHAREDLIB=1'#010+
@@ -980,7 +988,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'# NetBSD'#010+
'ifeq ($(OS_TARGET),netbsd)'#010+
- 'BATCHEXT=.','sh'#010+
+ 'BATCHEXT=.sh'#010+
'EXEEXT='#010+
'HASSHAREDLIB=1'#010+
'SHORTSUFFIX=nbs'#010+
@@ -991,7 +999,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'BATCHEXT=.sh'#010+
'EXEEXT='#010+
'HASSHAREDLIB=1'#010+
- 'SHORTSUFFIX=obs'#010+
+ 'SHO','RTSUFFIX=obs'#010+
'endif'#010+
#010+
'# Win32'#010+
@@ -1001,7 +1009,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
'# OS/2'#010+
- 'ifeq ($(OS_T','ARGET),os2)'#010+
+ 'ifeq ($(OS_TARGET),os2)'#010+
'BATCHEXT=.cmd'#010+
'AOUTEXT=.out'#010+
'STATICLIBPREFIX='#010+
@@ -1011,14 +1019,14 @@ const fpcmakeini : array[0..224,1..240] of char=(
'IMPORTLIBPREFIX='#010+
'endif'#010+
#010+
- '# EMX'#010+
+ '# ','EMX'#010+
'ifeq ($(OS_TARGET),emx)'#010+
'BATCHEXT=.cmd'#010+
'AOUTEXT=.out'#010+
'STATICLIBPREFIX='#010+
'SHAREDLIBEXT=.dll'#010+
'SHORTSUFFIX=emx'#010+
- 'ECHO=ech','o'#010+
+ 'ECHO=echo'#010+
'IMPORTLIBPREFIX='#010+
'endif'#010+
#010+
@@ -1029,6 +1037,13 @@ const fpcmakeini : array[0..224,1..240] of char=(
'SHORTSUFFIX=amg'#010+
'endif'#010+
#010+
+ '# AROS'#010+
+ 'ifeq (','$(OS_TARGET),aros)'#010+
+ 'EXEEXT='#010+
+ 'SHAREDLIBEXT=.library'#010+
+ 'SHORTSUFFIX=aros'#010+
+ 'endif'#010+
+ #010+
'# MorphOS'#010+
'ifeq ($(OS_TARGET),morphos)'#010+
'EXEEXT='#010+
@@ -1038,11 +1053,11 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'# Atari'#010+
'ifeq ($(OS_TARGET),atari)'#010+
- 'EX','EEXT=.ttp'#010+
+ 'EXEEXT=.ttp'#010+
'SHORTSUFFIX=ata'#010+
'endif'#010+
#010+
- '# BeOS'#010+
+ '# BeOS'#010,
'ifeq ($(OS_TARGET),beos)'#010+
'BATCHEXT=.sh'#010+
'EXEEXT='#010+
@@ -1059,12 +1074,12 @@ const fpcmakeini : array[0..224,1..240] of char=(
'# Solaris'#010+
'ifeq ($(OS_TARGET),solaris)'#010+
'BATCHEXT=.sh'#010+
- 'EXE','EXT='#010+
+ 'EXEEXT='#010+
'SHORTSUFFIX=sun'#010+
'endif'#010+
#010+
'# QNX'#010+
- 'ifeq ($(OS_TARGET),qnx)'#010+
+ 'ifeq (','$(OS_TARGET),qnx)'#010+
'BATCHEXT=.sh'#010+
'EXEEXT='#010+
'SHORTSUFFIX=qnx'#010+
@@ -1079,9 +1094,9 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
'# Netware libc'#010+
- 'ifeq ($(O','S_TARGET),netwlibc)'#010+
+ 'ifeq ($(OS_TARGET),netwlibc)'#010+
'EXEEXT=.nlm'#010+
- 'STATICLIBPREFIX='#010+
+ 'STATICLI','BPREFIX='#010+
'SHORTSUFFIX=nwl'#010+
'IMPORTLIBPREFIX=imp'#010+
'endif'#010+
@@ -1096,8 +1111,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
'# Darwin'#010+
- 'ifneq ($(findstring $(OS_','TARGET),darwin iphonesim),)'#010+
- 'BATCHEXT=.sh'#010+
+ 'ifneq ($(findstring $(OS_TARGET),darwin iphonesim),)'#010+
+ 'BATCHEXT=.sh',#010+
'EXEEXT='#010+
'HASSHAREDLIB=1'#010+
'SHORTSUFFIX=dwn'#010+
@@ -1113,11 +1128,11 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'# Symbian OS'#010+
'ifeq ($(OS_TARGET),symbian)'#010+
- 'SHAREDLIBEXT=.','dll'#010+
+ 'SHAREDLIBEXT=.dll'#010+
'SHORTSUFFIX=symbian'#010+
'endif'#010+
#010+
- '# NativeNT'#010+
+ '# NativeN','T'#010+
'ifeq ($(OS_TARGET),NativeNT)'#010+
'SHAREDLIBEXT=.dll'#010+
'SHORTSUFFIX=nativent'#010+
@@ -1132,12 +1147,12 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'# AIX'#010+
'ifeq ($(OS_TARGET),aix)'#010+
- 'BATCHEXT=.s','h'#010+
+ 'BATCHEXT=.sh'#010+
'EXEEXT='#010+
'SHORTSUFFIX=aix'#010+
'endif'#010+
#010+
- '# Java'#010+
+ '# Java'#010,
'ifeq ($(OS_TARGET),java)'#010+
'OEXT=.class'#010+
'ASMEXT=.j'#010+
@@ -1151,12 +1166,12 @@ const fpcmakeini : array[0..224,1..240] of char=(
'OEXT=.class'#010+
'ASMEXT=.j'#010+
'SHAREDLIBEXT=.jar'#010+
- 'SHO','RTSUFFIX=android'#010+
+ 'SHORTSUFFIX=android'#010+
'endif'#010+
'endif'#010+
#010+
'# MS-DOS'#010+
- 'ifeq ($(OS_TARGET),msdos)'#010+
+ 'i','feq ($(OS_TARGET),msdos)'#010+
'STATICLIBPREFIX='#010+
'STATICLIBEXT=.a'#010+
'SHORTSUFFIX=d16'#010+
@@ -1166,8 +1181,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'# For 8.3 limited OS'#039's the short suffixes'#010+
'# Otherwise use the full source/target names'#010+
- 'ifneq ($(findstring $(OS_SOURC','E),$(LIMIT83fs)),)'#010+
- 'FPCMADE=fpcmade.$(SHORTSUFFIX)'#010+
+ 'ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)'#010+
+ 'FPCMADE=fpcmade.$(SHO','RTSUFFIX)'#010+
'ZIPSUFFIX=$(SHORTSUFFIX)'#010+
'ZIPCROSSPREFIX='#010+
'ZIPSOURCESUFFIX=src'#010+
@@ -1177,8 +1192,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'ZIPSOURCESUFFIX=.source'#010+
'ZIPEXAMPLESUFFIX=.examples'#010+
'ifdef CROSSCOMPILE'#010+
- 'Z','IPSUFFIX=.$(SOURCESUFFIX)'#010+
- 'ZIPCROSSPREFIX=$(TARGETSUFFIX)-'#010+
+ 'ZIPSUFFIX=.$(SOURCESUFFIX)'#010+
+ 'ZIPCROSSPREFIX','=$(TARGETSUFFIX)-'#010+
'else'#010+
'ZIPSUFFIX=.$(TARGETSUFFIX)'#010+
'ZIPCROSSPREFIX='#010+
@@ -1188,7 +1203,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'[defaulttools]'#010+
'#####################################################################'#010+
'# Default Tools'#010+
- '####################','################################################'+
+ '############################################################','########'+
'#'#010+
#010+
'# Names of the binutils tools'#010+
@@ -1198,9 +1213,9 @@ const fpcmakeini : array[0..224,1..240] of char=(
'RCNAME=$(BINUTILSPREFIX)rc'#010+
'NASMNAME=$(BINUTILSPREFIX)nasm'#010+
#010+
- '# assembler, redefi','ne it if cross compiling'#010+
+ '# assembler, redefine it if cross compiling'#010+
'ifndef ASPROG'#010+
- 'ifdef CROSSBINDIR'#010+
+ 'i','fdef CROSSBINDIR'#010+
'ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)'#010+
'else'#010+
'ASPROG=$(ASNAME)'#010+
@@ -1210,13 +1225,13 @@ const fpcmakeini : array[0..224,1..240] of char=(
'# linker, but probably not used'#010+
'ifndef LDPROG'#010+
'ifdef CROSSBINDIR'#010+
- 'LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEE','XT)'#010+
+ 'LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)'#010+
'else'#010+
'LDPROG=$(LDNAME)'#010+
'endif'#010+
'endif'#010+
#010+
- '# Resource compiler'#010+
+ '#',' Resource compiler'#010+
'ifndef RCPROG'#010+
'ifdef CROSSBINDIR'#010+
'RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)'#010+
@@ -1228,10 +1243,10 @@ const fpcmakeini : array[0..224,1..240] of char=(
'# Archiver'#010+
'ifndef ARPROG'#010+
'ifdef CROSSBINDIR'#010+
- 'ARPROG=$(CROSSBINDIR)/$(ARN','AME)$(SRCEXEEXT)'#010+
+ 'ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)'#010+
'else'#010+
'ARPROG=$(ARNAME)'#010+
- 'endif'#010+
+ 'e','ndif'#010+
'endif'#010+
#010+
'# NASM assembler, redefine it if cross compiling'#010+
@@ -1243,10 +1258,10 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
'endif'#010+
#010+
- '# Override default','s'#010+
+ '# Override defaults'#010+
'AS=$(ASPROG)'#010+
'LD=$(LDPROG)'#010+
- 'RC=$(RCPROG)'#010+
+ 'RC=$(RCPROG)',#010+
'AR=$(ARPROG)'#010+
'NASM=$(NASMPROG)'#010+
#010+
@@ -1261,11 +1276,11 @@ const fpcmakeini : array[0..224,1..240] of char=(
'ifdef inUnix'#010+
'LDCONFIG=ldconfig'#010+
'else'#010+
- 'LDCO','NFIG='#010+
+ 'LDCONFIG='#010+
'endif'#010+
#010+
'ifdef DATE'#010+
- 'DATESTR:=$(shell $(DATE) +%Y%m%d)'#010+
+ 'DATESTR:=$(shell',' $(DATE) +%Y%m%d)'#010+
'else'#010+
'DATESTR='#010+
'endif'#010+
@@ -1285,15 +1300,15 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
#010+
'[command_begin]'#010+
- '#########','###########################################################'+
+ '#################################################','###################'+
'#'#010+
'# Compiler Command Line'#010+
'#####################################################################'#010+
#010+
'# Load commandline OPTDEF and add FPC_CPU define, for compiling the'#010+
- '# compiler this ','needs to be turned off'#010+
+ '# compiler this needs to be turned off'#010+
'ifndef NOCPUDEF'#010+
- 'override FPCOPTDEF=$(ARCH)'#010+
+ 'o','verride FPCOPTDEF=$(ARCH)'#010+
'endif'#010+
#010+
#010+
@@ -1302,20 +1317,20 @@ const fpcmakeini : array[0..224,1..240] of char=(
'override FPCOPT+=-T$(OS_TARGET)'#010+
'endif'#010+
#010+
- 'ifneq ($(CPU_TARGET),$(CPU_SOUR','CE))'#010+
+ 'ifneq ($(CPU_TARGET),$(CPU_SOURCE))'#010+
'override FPCOPT+=-P$(ARCH)'#010+
'endif'#010+
#010+
- 'ifeq ($(OS_SOURCE),openbsd)'#010+
+ 'i','feq ($(OS_SOURCE),openbsd)'#010+
'override FPCOPT+=-FD$(NEW_BINUTILS_PATH)'#010+
'override FPCMAKEOPT+=-FD$(NEW_BINUTILS_PATH)'#010+
'endif'#010+
#010+
'ifndef CROSSBOOTSTRAP'#010+
'ifneq ($(BINUTILSPREFIX),)'#010+
- 'override FPCOPT+=-XP$(BINUTILSP','REFIX)'#010+
+ 'override FPCOPT+=-XP$(BINUTILSPREFIX)'#010+
'endif'#010+
- 'ifneq ($(BINUTILSPREFIX),)'#010+
+ 'ifneq ($(BINUTILSPREFIX),)'#010,
'override FPCOPT+=-Xr$(RLINKPATH)'#010+
'endif'#010+
'endif'#010+
@@ -1324,9 +1339,9 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'# it while compiling the fpmake file. (For example to build i386-freeb'+
'sd'#010+
- '# with BIN','UTILSPREFIX=i386-)'#010+
+ '# with BINUTILSPREFIX=i386-)'#010+
'ifndef CROSSCOMPILE'#010+
- 'ifneq ($(BINUTILSPREFIX),)'#010+
+ 'i','fneq ($(BINUTILSPREFIX),)'#010+
'override FPCMAKEOPT+=-XP$(BINUTILSPREFIX)'#010+
'endif'#010+
'endif'#010+
@@ -1334,9 +1349,9 @@ const fpcmakeini : array[0..224,1..240] of char=(
'# User dirs should be first, so they are looked at first'#010+
'ifdef UNITDIR'#010+
'override FPCOPT+=$(addprefix -Fu,$(UNITDIR))'#010+
- 'end','if'#010+
+ 'endif'#010+
'ifdef LIBDIR'#010+
- 'override FPCOPT+=$(addprefix -Fl,$(LIBDIR))'#010+
+ 'override FPCOPT+=$(addpr','efix -Fl,$(LIBDIR))'#010+
'endif'#010+
'ifdef OBJDIR'#010+
'override FPCOPT+=$(addprefix -Fo,$(OBJDIR))'#010+
@@ -1347,11 +1362,11 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'# Smartlinking'#010+
'ifdef LINKSMART'#010+
- 'override FPCOPT+','=-XX'#010+
+ 'override FPCOPT+=-XX'#010+
'endif'#010+
#010+
'# Smartlinking creation'#010+
- 'ifdef CREATESMART'#010+
+ 'ifde','f CREATESMART'#010+
'override FPCOPT+=-CX'#010+
'endif'#010+
#010+
@@ -1363,9 +1378,9 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'# Release mode'#010+
'# (strip, optimize and don'#039't load fpc.cfg)'#010+
- '# fpc 2.1 has -O2 for all ','targets'#010+
+ '# fpc 2.1 has -O2 for all targets'#010+
'ifdef RELEASE'#010+
- 'ifneq ($(findstring 2.0.,$(FPC_VERSION)),)'#010+
+ 'ifneq ($(findstrin','g 2.0.,$(FPC_VERSION)),)'#010+
'ifeq ($(CPU_TARGET),i386)'#010+
'FPCCPUOPT:=-OG2p3'#010+
'endif'#010+
@@ -1376,11 +1391,11 @@ const fpcmakeini : array[0..224,1..240] of char=(
'FPCCPUOPT:=-O2'#010+
'endif'#010+
'override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n'#010+
- 'overrid','e FPCOPTDEF+=RELEASE'#010+
+ 'override FPCOPTDEF+=RELEASE'#010+
'endif'#010+
#010+
'# Strip'#010+
- 'ifdef STRIP'#010+
+ 'ifde','f STRIP'#010+
'override FPCOPT+=-Xs'#010+
'endif'#010+
#010+
@@ -1394,9 +1409,9 @@ const fpcmakeini : array[0..224,1..240] of char=(
'override FPCOPT+=-vwni'#010+
'endif'#010+
#010+
- '# Needed compiler options'#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+
@@ -1404,8 +1419,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'ifdef COMPILER_LIBRARYDIR'#010+
'override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))'#010+
'endif'#010+
- 'if','def COMPILER_OBJECTDIR'#010+
- 'override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))'#010+
+ 'ifdef COMPILER_OBJECTDIR'#010+
+ 'override FPCOPT+=','$(addprefix -Fo,$(COMPILER_OBJECTDIR))'#010+
'endif'#010+
'ifdef COMPILER_INCLUDEDIR'#010+
'override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))'#010+
@@ -1413,28 +1428,28 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'# Cross compiler utils'#010+
'ifdef CROSSBINDIR'#010+
- 'override FPCOPT+=-FD$(CR','OSSBINDIR)'#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+
'else'#010+
- 'override TARGETDIRPREFIX=$(COMPILER_TAR','GETDIR)/'#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+
'else'#010+
- 'override UNITTARGETDIRPRE','FIX=$(COMPILER_UNITTARGETDIR)/'#010+
+ 'override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/'#010+
'endif'#010+
- 'else'#010+
+ 'els','e'#010+
'ifdef COMPILER_TARGETDIR'#010+
'override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)'#010+
'override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)'#010+
@@ -1445,20 +1460,21 @@ const fpcmakeini : array[0..224,1..240] of char=(
'override FPCOPT+=-Cg'#010+
'endif'#010+
#010+
- '# create al','ways pic'#039'ed code on x86_64'#010+
- 'ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris)'+
- ',)'#010+
- 'ifeq ($(CPU_TARGET),x86_64)'#010+
+ '# create always pic'#039'ed code on x86_64, mips and mip','sel'#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+
'override FPCOPT+=-Cg'#010+
'endif'#010+
'endif'#010+
#010+
'ifdef LINKSHARED'#010+
- '#!!! deactived for testing override FPCOPT+=-XD'#010+
+ '#!!! deactived for test','ing override FPCOPT+=-XD'#010+
'endif'#010+
#010+
#010+
- '[comm','and_libc]'#010+
+ '[command_libc]'#010+
'# Add GCC lib path if asked'#010+
'ifdef GCCLIBDIR'#010+
'override FPCOPT+=-Fl$(GCCLIBDIR)'#010+
@@ -1469,8 +1485,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
#010+
'[command_end]'#010+
- '# Add commandline options last so they can override'#010+
- 'ifdef ','OPT'#010+
+ '# Add commandline op','tions last so they can override'#010+
+ 'ifdef OPT'#010+
'override FPCOPT+=$(OPT)'#010+
'endif'#010+
#010+
@@ -1481,10 +1497,10 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'# Was a config file specified ?'#010+
'ifdef CFGFILE'#010+
- 'override FPCOPT+=@$(CFGFILE)'#010+
+ 'override FPCO','PT+=@$(CFGFILE)'#010+
'endif'#010+
#010+
- '# Use the envir','onment to pass commandline options?'#010+
+ '# Use the environment to pass commandline options?'#010+
'ifdef USEENV'#010+
'override FPCEXTCMD:=$(FPCOPT)'#010+
'override FPCOPT:=!FPCEXTCMD'#010+
@@ -1492,9 +1508,9 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
'override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)'#010+
- 'override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)'#010+
+ 'override AFULL_SOURCE=','$(CPU_SOURCE)-$(OS_SOURCE)'#010+
#010+
- 'ifneq ($(A','FULL_TARGET),$(AFULL_SOURCE))'#010+
+ 'ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))'#010+
'override ACROSSCOMPILE=1'#010+
'endif'#010+
#010+
@@ -1505,18 +1521,18 @@ const fpcmakeini : array[0..224,1..240] of char=(
'# Compiler commandline'#010+
'override COMPILER:=$(strip $(FPC) $(FPCOPT))'#010+
#010+
- '# also call ppas if with command option -s'#010+
- '# but only',' if the FULL_SOURCE and FULL_TARGET are equal'#010+
+ '# also call ppa','s if with command option -s'#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+
- 'ifeq ($(FULL_SOURCE),$(FULL_TARGET))'#010+
+ 'ifeq ($(FULL_SOURCE),$(FULL_TARGET))'#010,
'UseEXECPPAS=1'#010+
'endif'#010+
'endif'#010+
- 'ifneq ($(Use','EXECPPAS),1)'#010+
+ 'ifneq ($(UseEXECPPAS),1)'#010+
'EXECPPAS='#010+
'else'#010+
'ifdef RUNBATCH'#010+
@@ -1529,9 +1545,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'[loaderrules]'#010+
'#####################################################################'#010+
- '# Loaders'#010+
- '##################################','##################################'+
- '#'#010+
+ '# Load','ers'#010+
+ '#####################################################################'#010+
#010+
'.PHONY: fpc_loaders'#010+
#010+
@@ -1539,8 +1554,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'override ALLTARGET+=fpc_loaders'#010+
'override CLEANTARGET+=fpc_loaders_clean'#010+
'override INSTALLTARGET+=fpc_loaders_install'#010+
- #010+
- 'override LOADEROFILES:=$(addsuffix $(O','EXT),$(TARGET_LOADERS))'#010+
+ #010,
+ 'override LOADEROFILES:=$(addsuffix $(OEXT),$(TARGET_LOADERS))'#010+
'endif'#010+
#010+
'%$(OEXT): %$(LOADEREXT)'#010+
@@ -1550,9 +1565,9 @@ const fpcmakeini : array[0..224,1..240] of char=(
' $(AS) -o $*$(OEXT) $<'#010+
'endif'#010+
#010+
- 'fpc_loaders: $(COMPILER_UNITTARGETDIR) $(LOADEROFILES)'#010+
+ 'fpc_loaders: $(COMPI','LER_UNITTARGETDIR) $(LOADEROFILES)'#010+
#010+
- 'fp','c_loaders_clean:'#010+
+ 'fpc_loaders_clean:'#010+
'ifdef COMPILER_UNITTARGETDIR'#010+
' -$(DEL) $(addprefix $(COMPILER_UNITTARGETDIR)/,$(LOADEROFILES)'+
')'#010+
@@ -1561,8 +1576,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
'fpc_loaders_install:'#010+
- ' $(MKDIR) $(INSTALL_UNITDIR)'#010+
- 'ifdef COMPILER_UNITTA','RGETDIR'#010+
+ ' $(MKDIR) $(','INSTALL_UNITDIR)'#010+
+ 'ifdef COMPILER_UNITTARGETDIR'#010+
' $(INSTALL) $(addprefix $(COMPILER_UNITTARGETDIR)/,$(LOADEROFIL'+
'ES)) $(INSTALL_UNITDIR)'#010+
'else'#010+
@@ -1571,7 +1586,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
#010+
'[unitrules]'#010+
- '###########################################################','#########'+
+ '#####################','###############################################'+
'#'#010+
'# Units'#010+
'#####################################################################'#010+
@@ -1581,14 +1596,14 @@ const fpcmakeini : array[0..224,1..240] of char=(
'ifneq ($(TARGET_UNITS)$(TARGET_IMPLICITUNITS),)'#010+
'override ALLTARGET+=fpc_units'#010+
#010+
- 'override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET','_UNITS))'#010+
+ 'override UNITP','PUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))'#010+
'override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITU'+
'NITS))'#010+
'override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)'#010+
- 'override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)'#010+
+ 'override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICIT','UNITPPUFILES)'#010+
'endif'#010+
#010+
- 'fpc_units: $(COMP','ILER_UNITTARGETDIR) $(UNITPPUFILES)'#010+
+ 'fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)'#010+
#010+
#010+
'[exerules]'#010+
@@ -1596,27 +1611,27 @@ const fpcmakeini : array[0..224,1..240] of char=(
'# Exes'#010+
'#####################################################################'#010+
#010+
- '.PHONY: fpc_exes'#010+
+ '.PHON','Y: fpc_exes'#010+
#010+
- '# Programs are not needed',' for a cross 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)) $(addprefi'+
- 'x $(STATICLIBPREFIX),$(addsuffix $(S','TATICLIBEXT),$(TARGET_PROGRAMS))'+
- ') $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_'+
- 'PROGRAMS)))'#010+
+ 'override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addpre','f'+
+ 'ix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))'+
+ ' $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_P'+
+ 'ROGRAMS)))'#010+
'override EXEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_PROGRAMS))'#010+
#010+
- 'override ALLTARGET+=fpc_exes'#010+
- 'override INSTALLEXEFILES+=$(E','XEFILES)'#010+
+ 'override ALLTARGET+=','fpc_exes'#010+
+ 'override INSTALLEXEFILES+=$(EXEFILES)'#010+
'override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)'#010+
'override CLEANEXEDBGFILES+=$(EXEDBGFILES)'#010+
'ifeq ($(OS_TARGET),os2)'#010+
'override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))'#010+
'endif'#010+
- 'ifeq ($(OS_TARGET),emx)'#010+
- 'override CLEANEXEFI','LES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))'#010+
+ 'ifeq ','($(OS_TARGET),emx)'#010+
+ 'override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))'#010+
'endif'#010+
'endif'#010+
'endif'#010+
@@ -1625,10 +1640,10 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
#010+
'[rstrules]'#010+
- '#####################################################################'#010+
- '# Resource strings'#010+
- '#','###################################################################'+
+ '####################################################','################'+
'#'#010+
+ '# Resource strings'#010+
+ '#####################################################################'#010+
#010+
'ifdef TARGET_RSTS'#010+
'override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))'#010+
@@ -1637,9 +1652,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
#010+
- '[examplerules]'#010+
- '####################################','################################'+
- '#'#010+
+ '[examplerules',']'#010+
+ '#####################################################################'#010+
'# Examples'#010+
'#####################################################################'#010+
#010+
@@ -1647,24 +1661,24 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'ifneq ($(TARGET_EXAMPLES),)'#010+
'HASEXAMPLES=1'#010+
- 'override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TA','RGET_EXA'+
+ 'override EXAMPLESOURCE','FILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXA'+
'MPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET'+
'_EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES)))'#010+
'override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES))'#010+
- 'override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(T','ARGET_EXAMPLES)) $(ad'+
+ 'override ','EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(ad'+
'dprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPL'+
'ES))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TAR'+
'GET_EXAMPLES)))'#010+
- 'override EXAMPLEDBGFILES:=$(addsuffix $(EXEDBGEXT),$(TARGET_EXA','MPLES'+
+ 'override EXAMPLEDBGFILES:','=$(addsuffix $(EXEDBGEXT),$(TARGET_EXAMPLES'+
'))'#010+
#010+
'override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES)'#010+
'override CLEANEXEDBGFILES+=$(EXAMPLEDBGFILES)'#010+
'ifeq ($(OS_TARGET),os2)'#010+
- 'override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))'#010+
+ 'override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))',#010+
'endif'#010+
'ifeq ($(OS_TARGET),emx)'#010+
- 'overrid','e CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))'#010+
+ 'override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))'#010+
'endif'#010+
'endif'#010+
'ifneq ($(TARGET_EXAMPLEDIRS),)'#010+
@@ -1675,15 +1689,14 @@ const fpcmakeini : array[0..224,1..240] of char=(
'S))'#010+
#010+
#010+
- '[compilerules]'#010+
- '#########################','###########################################'+
- '#'#010+
+ '[c','ompilerules]'#010+
+ '#####################################################################'#010+
'# General compile rules'#010+
'#####################################################################'#010+
#010+
'.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared'#010+
#010+
- '$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARG','ET)'#010+
+ '$(','FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)'#010+
' @$(ECHOREDIR) Compiled > $(FPCMADE)'#010+
#010+
'fpc_all: $(FPCMADE)'#010+
@@ -1695,18 +1708,18 @@ const fpcmakeini : array[0..224,1..240] of char=(
' $(MAKE) all DEBUG=1'#010+
#010+
'fpc_release:'#010+
- ' $(MAKE) all RELEASE=1'#010+
+ ' $(MAKE) all R','ELEASE=1'#010+
#010+
- '# General compile rules, ava','ilable for both possible .pp and .pas ex'+
- 'tensions'#010+
+ '# General compile rules, available for both possible .pp and .pas exte'+
+ 'nsions'#010+
#010+
'.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res'#010+
#010+
'$(COMPILER_UNITTARGETDIR):'#010+
' $(MKDIRTREE) $(COMPILER_UNITTARGETDIR)'#010+
#010+
- '$(COMPILER_TARGETDIR):'#010+
- ' $(MKDIRTREE) $(C','OMPILER_TARGETDIR)'#010+
+ '$(COMPILE','R_TARGETDIR):'#010+
+ ' $(MKDIRTREE) $(COMPILER_TARGETDIR)'#010+
#010+
'%$(PPUEXT): %.pp'#010+
' $(COMPILER) $<'#010+
@@ -1718,10 +1731,10 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'%$(EXEEXT): %.pp'#010+
' $(COMPILER) $<'#010+
- ' $(EXECPPAS)'#010+
+ ' $(EXECPPAS)',#010+
#010+
'%$(EXEEXT): %.pas'#010+
- ' $(COMPILER',') $<'#010+
+ ' $(COMPILER) $<'#010+
' $(EXECPPAS)'#010+
#010+
'%$(EXEEXT): %.lpr'#010+
@@ -1735,19 +1748,19 @@ const fpcmakeini : array[0..224,1..240] of char=(
'%.res: %.rc'#010+
' windres -i $< -o $@'#010+
#010+
- '# Search paths for .ppu, .pp, .pas, .lpr, .dpr'#010+
- 'vp','ath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)'#010+
+ '# Search pa','ths for .ppu, .pp, .pas, .lpr, .dpr'#010+
+ 'vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)'#010+
'vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)'#010+
'vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)'#010+
- 'vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)'#010+
- 'vpath %.inc $(C','OMPILER_INCLUDEDIR)'#010+
+ 'vpath %.dpr $(COMPILER_SOURCEDIR) ','$(COMPILER_INCLUDEDIR)'#010+
+ 'vpath %.inc $(COMPILER_INCLUDEDIR)'#010+
'vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)'#010+
'vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)'#010+
#010+
'[sharedrules]'#010+
'#####################################################################'#010+
'# Library'#010+
- '#########################################','###########################'+
+ '###','#################################################################'+
'#'#010+
#010+
'.PHONY: fpc_shared'#010+
@@ -1759,26 +1772,26 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
'ifndef SHARED_LIBNAME'#010+
- 'SHARED_LIBNAME=$(PACKAGE_NAME)'#010+
+ 'SHARED_LIBNAME=$(PACK','AGE_NAME)'#010+
'endif'#010+
#010+
- 'ifndef SHARED_FULLNAM','E'#010+
+ 'ifndef SHARED_FULLNAME'#010+
'SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSIO'+
'N)$(SHAREDLIBEXT)'#010+
'endif'#010+
#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'+
- '_LIBUNITS))'#010+
+ 'SHARED_LIBUNITS:=$(TARGET_UNITS) $(','TARGET_IMPLICITUNITS)'#010+
+ 'override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_L'+
+ 'IBUNITS))'#010+
'endif'#010+
#010+
'fpc_shared:'#010+
'ifdef HASSHAREDLIB'#010+
' $(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1'#010+
'ifneq ($(SHARED_BUILD),n)'#010+
- ' $(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPI','LER_UNITTARGETDIR)'+
+ ' $(PP','UMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR)'+
' -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR)'#010+
'endif'#010+
'else'#010+
@@ -1787,8 +1800,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'fpc_shared_install:'#010+
'ifneq ($(SHARED_BUILD),n)'#010+
- 'ifneq ($(SHARED_LIBUNITS),)'#010+
- 'ifneq ($(wildcard $(COMPILER_UNI','TTARGETDIR)/$(SHARED_FULLNAME)),)'#010+
+ 'ifneq ($(SHARED_LIBUNI','TS),)'#010+
+ 'ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)'#010+
' $(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INST'+
'ALL_SHAREDDIR)'#010+
'endif'#010+
@@ -1796,39 +1809,39 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
'[installrules]'#010+
- '#####################################################################'#010+
- '# Install rules'#010+
- '#','###################################################################'+
+ '#################################################','###################'+
'#'#010+
+ '# Install rules'#010+
+ '#####################################################################'#010+
#010+
'.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall'#010+
#010+
'ifdef INSTALL_UNITS'#010+
- 'override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))'#010+
+ 'override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INST','ALL_UNITS))'#010+
'endif'#010+
#010+
- 'ifdef INSTALL_BUILD','UNIT'#010+
+ 'ifdef INSTALL_BUILDUNIT'#010+
'override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$'+
'(INSTALLPPUFILES))'#010+
'endif'#010+
#010+
'ifdef INSTALLPPUFILES'#010+
'override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFI'+
- 'LES)) $(addprefix $(STATICLIBPREFIX),$(subst $(','PPUEXT),$(STATICLIBEX'+
+ 'LES)) $(a','ddprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEX'+
'T),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEX'+
'T),$(STATICLIBEXT),$(INSTALLPPUFILES)))'#010+
'ifneq ($(UNITTARGETDIRPREFIX),)'#010+
- 'override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir '+
- '$(INSTA','LLPPUFILES)))'#010+
+ 'override INSTALLPPUFILES:=$(addprefix $','(UNITTARGETDIRPREFIX),$(notdi'+
+ 'r $(INSTALLPPUFILES)))'#010+
'override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPR'+
'EFIX),$(notdir $(INSTALLPPULINKFILES))))'#010+
'endif'#010+
'# Implicitly install Package.fpc'#010+
'override INSTALL_CREATEPACKAGEFPC=1'#010+
- 'endif'#010+
+ 'en','dif'#010+
#010+
'ifdef INSTALLEXEFILES'#010+
- 'ifneq ($(TA','RGETDIRPREFIX),)'#010+
+ 'ifneq ($(TARGETDIRPREFIX),)'#010+
'override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(IN'+
'STALLEXEFILES)))'#010+
'endif'#010+
@@ -1836,16 +1849,16 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'fpc_install: all $(INSTALLTARGET)'#010+
'ifdef INSTALLEXEFILES'#010+
- ' $(MKDIR) $(INSTALL_BINDIR)'#010+
- ' $(INSTALLEXE) $(INSTALLE','XEFILES) $(INSTALL_BINDIR)'#010+
+ ' $(MKDIR) $(INSTALL_BI','NDIR)'#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+
- '# a safety check is done if Makefile.fpc is available'#010+
+ '# a safety check is done if Makefile.fpc is availab','le'#010+
'ifdef PACKAGE_VERSION'#010+
- 'ifneq ($(wild','card 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+
@@ -1853,14 +1866,14 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
'endif'#010+
'endif'#010+
- 'ifdef INSTALLPPUFILES'#010+
- ' $(MKDIR) $(INST','ALL_UNITDIR)'#010+
+ 'ifdef I','NSTALLPPUFILES'#010+
+ ' $(MKDIR) $(INSTALL_UNITDIR)'#010+
' $(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)'#010+
'ifneq ($(INSTALLPPULINKFILES),)'#010+
' $(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)'#010+
'endif'#010+
- 'ifneq ($(wildcard $(LIB_FULLNAME)),)'#010+
- ' $(MKDIR) $(INSTALL_LIBDIR)',#010+
+ 'ifneq ($(wildcard $(LIB_FULLNAME)','),)'#010+
+ ' $(MKDIR) $(INSTALL_LIBDIR)'#010+
' $(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)'#010+
'ifdef inUnix'#010+
' ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)'#010+
@@ -1868,54 +1881,54 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
'endif'#010+
'ifdef INSTALL_FILES'#010+
- ' $(MKDIR) $(INSTALL_DATADIR)'#010+
- ' $(INSTALL) $(INSTALL_FILES) $(','INSTALL_DATADIR)'#010+
+ ' $(MKDIR) $(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+
#010+
- 'fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))'#010+
+ 'fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAM','PLEDIRS))'#010+
'ifdef HASEXAMPLES'#010+
- ' $(','MKDIR) $(INSTALL_EXAMPLEDIR)'#010+
+ ' $(MKDIR) $(INSTALL_EXAMPLEDIR)'#010+
'endif'#010+
'ifdef EXAMPLESOURCEFILES'#010+
' $(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)'#010+
'endif'#010+
'ifdef TARGET_EXAMPLEDIRS'#010+
- ' $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EX'+
- 'AMPLEDIR)'#010+
+ ' $(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLE','DIRS)) $(INSTALL_'+
+ 'EXAMPLEDIR)'#010+
'endif'#010+
#010+
- '[d','istinstallrules]'#010+
+ '[distinstallrules]'#010+
'#####################################################################'#010+
'# Dist Install'#010+
'#####################################################################'#010+
#010+
'.PHONY: fpc_distinstall'#010+
#010+
- 'fpc_distinstall: install exampleinstall'#010+
+ 'fpc_','distinstall: install exampleinstall'#010+
+ #010+
#010+
- #010,
'[zipinstallrules]'#010+
'#####################################################################'#010+
'# Zip'#010+
'#####################################################################'#010+
#010+
- '.PHONY: fpc_zipinstall fpc_zipsourceinstall fpc_zipexampleinstall'#010+
+ '.PHONY: fpc_zipinstall fpc_zipsourcei','nstall fpc_zipexampleinstall'#010+
#010+
- '# Tempor','ary path to pack a file, can only use a single deep'#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+
'ifndef PACKDIR'#010+
'ifndef inUnix'#010+
'PACKDIR=$(BASEDIR)/../fpc-pack'#010+
'else'#010+
- 'PACKDIR=/tmp/fpc-pack'#010+
+ 'PACKDIR=/tmp/fpc-pac','k'#010+
'endif'#010+
'endif'#010+
#010+
- '# Maybe create default ','zipname from packagename'#010+
+ '# Maybe create default zipname from packagename'#010+
'ifndef ZIPNAME'#010+
'ifdef DIST_ZIPNAME'#010+
'ZIPNAME=$(DIST_ZIPNAME)'#010+
@@ -1925,11 +1938,11 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
'ifndef FULLZIPNAME'#010+
- 'FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)'#010+
+ 'FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSU','FFIX)'#010+
'endif'#010+
#010+
'# ZipTarget'#010+
- 'ifndef ZIPTAR','GET'#010+
+ 'ifndef ZIPTARGET'#010+
'ifdef DIST_ZIPTARGET'#010+
'ZIPTARGET=DIST_ZIPTARGET'#010+
'else'#010+
@@ -1944,9 +1957,9 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
'endif'#010+
#010+
- '# Use a wrapper script by default for Os/2'#010+
+ '# Use a wrapper script by default ','for Os/2'#010+
'ifndef inUnix'#010+
- 'USEZIPWRAPPER=1',#010+
+ 'USEZIPWRAPPER=1'#010+
'endif'#010+
#010+
'# We need to be able to run in the current OS so fix'#010+
@@ -1955,15 +1968,15 @@ const fpcmakeini : array[0..224,1..240] of char=(
'ZIPPATHSEP=$(PATHSEP)'#010+
'ZIPWRAPPER=$(subst /,$(PATHSEP),$(DIST_DESTDIR)/fpczip$(SRCBATCHEXT))'#010+
'else'#010+
- 'ZIPPATHSEP=/'#010+
+ 'ZIP','PATHSEP=/'#010+
'endif'#010+
#010+
- '# Create commands to ','create the zip/tar file'#010+
+ '# Create commands to create the zip/tar file'#010+
'ZIPCMD_CDPACK:=cd $(subst /,$(ZIPPATHSEP),$(PACKDIR))'#010+
'ZIPCMD_CDBASE:=cd $(subst /,$(ZIPPATHSEP),$(BASEDIR))'#010+
'ifdef USETAR'#010+
'ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(TAREXT)'#010+
- 'ZIPCMD_ZIP:=$(TARPROG) c$(TAROPT)f $(ZIPDE','STFILE) *'#010+
+ 'ZIPC','MD_ZIP:=$(TARPROG) c$(TAROPT)f $(ZIPDESTFILE) *'#010+
'else'#010+
'ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(ZIPEXT)'#010+
'ZIPCMD_ZIP:=$(subst /,$(ZIPPATHSEP),$(ZIPPROG)) -Dr $(ZIPOPT) $(ZIPDES'+
@@ -1971,22 +1984,22 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
'fpc_zipinstall:'#010+
- ' $(MAKE) $(ZIPTARGET) INSTALL_PREFIX=$(PACKDIR) ZIPINSTALL=1'#010+
- ' ',' $(MKDIR) $(DIST_DESTDIR)'#010+
+ ' $(MAKE) $(ZIPTARGET) INS','TALL_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+
'ifneq ($(ECHOREDIR),echo)'#010+
- ' $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDPACK))" > $(ZIPWRAPPE'+
- 'R)'#010+
- ' ',' $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_ZIP))" >> $(ZIPWRAPPE'+
- 'R)'#010+
+ ' $(ECHOREDIR) -e "$(subst \,\\,$(','ZIPCMD_CDPACK))" > $(ZIPWRAP'+
+ 'PER)'#010+
+ ' $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_ZIP))" >> $(ZIPWRAPPER)'+
+ #010+
' $(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDBASE))" >> $(ZIPWRAPP'+
'ER)'#010+
'else'#010+
' echo $(ZIPCMD_CDPACK) > $(ZIPWRAPPER)'#010+
- ' echo $(ZIPCMD_ZIP) >> $(ZIPWRAPPER)'#010+
- ' ',' echo $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER)'#010+
+ ' ech','o $(ZIPCMD_ZIP) >> $(ZIPWRAPPER)'#010+
+ ' echo $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER)'#010+
'endif'#010+
'ifdef inUnix'#010+
' /bin/sh $(ZIPWRAPPER)'#010+
@@ -1997,9 +2010,9 @@ const fpcmakeini : array[0..224,1..240] of char=(
' $(ZIPWRAPPER)'#010+
'endif'#010+
'endif'#010+
- ' $(DEL) $(ZIPWRAPPER)'#010+
+ ' $(DEL) $(Z','IPWRAPPER)'#010+
'else'#010+
- ' $(ZIPCMD_CDPAC','K) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE)'#010+
+ ' $(ZIPCMD_CDPACK) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE)'#010+
'endif'#010+
' $(DELTREE) $(PACKDIR)'#010+
#010+
@@ -2007,10 +2020,10 @@ const fpcmakeini : array[0..224,1..240] of char=(
' $(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall ZIPSUFFIX=$(ZIP'+
'SOURCESUFFIX)'#010+
#010+
- 'fpc_zipexampleinstall:'#010+
+ 'fpc_zipexampleinstal','l:'#010+
'ifdef HASEXAMPLES'#010+
- ' $(MAKE) f','pc_zipinstall ZIPTARGET=exampleinstall ZIPSUFFIX=$('+
- 'ZIPEXAMPLESUFFIX)'#010+
+ ' $(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall ZIPSUFFIX=$(ZI'+
+ 'PEXAMPLESUFFIX)'#010+
'endif'#010+
#010+
'fpc_zipdistinstall:'#010+
@@ -2018,23 +2031,24 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
#010+
'[cleanrules]'#010+
- '#####################################################################'#010+
- '# Clea','n rules'#010+
+ '######################################','##############################'+
+ '#'#010+
+ '# Clean rules'#010+
'#####################################################################'#010+
#010+
'.PHONY: fpc_clean fpc_cleanall fpc_distclean'#010+
#010+
'ifdef EXEFILES'#010+
- 'override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES'+
- '))'#010+
- 'override CLEANEXEDBGFILES:=','$(addprefix $(TARGETDIRPREFIX),$(CLEANEXE'+
- 'DBGFILES))'#010+
+ 'override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEAN','EXEFIL'+
+ 'ES))'#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+=$(addprefix $(TARGETDIRPREFIX),$(ad','dsuffi'+
+ 'override CLEANEXEDBGFILE','S+=$(addprefix $(TARGETDIRPREFIX),$(addsuffi'+
'x $(EXEDBGEXT), $(CLEAN_PROGRAMS)))'#010+
'endif'#010+
#010+
@@ -2043,12 +2057,12 @@ const fpcmakeini : array[0..224,1..240] of char=(
'endif'#010+
#010+
'ifdef CLEANPPUFILES'#010+
- 'override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)'+
- ') $(addprefix ','$(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$'+
+ 'override CLEANPPULINKFILES:=$(subst $(PPUEXT),','$(OEXT),$(CLEANPPUFILE'+
+ 'S)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$'+
'(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(S'+
'TATICLIBEXT),$(CLEANPPUFILES)))'#010+
'ifdef DEBUGSYMEXT'#010+
- 'override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLE','AN'+
+ 'override CLEANPPULINKFILES+=','$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEAN'+
'PPUFILES))'#010+
'endif'#010+
'override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUF'+
@@ -2057,8 +2071,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'IX),$(CLEANPPULINKFILES)))'#010+
'endif'#010+
#010+
- 'fpc_clean: $(CLEANTARGET)'#010+
- 'ifdef CLEANEXE','FILES'#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+
@@ -2066,8 +2080,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
' -$(DELTREE) $(CLEANEXEDBGFILES)'#010+
'endif'#010+
'ifdef CLEANPPUFILES'#010+
- ' -$(DEL) $(CLEANPPUFILES)'#010+
- 'endif'#010,
+ ' ',' -$(DEL) $(CLEANPPUFILES)'#010+
+ 'endif'#010+
'ifneq ($(CLEANPPULINKFILES),)'#010+
' -$(DEL) $(CLEANPPULINKFILES)'#010+
'endif'#010+
@@ -2075,18 +2089,18 @@ const fpcmakeini : array[0..224,1..240] of char=(
' -$(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+
+ ' -$(DEL) $(LIB_NAME) $(LIB_FULLNAME)'#010+
'endif'#010+
' -$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(F'+
'PCEXTFILE) $(REDIRFILE)'#010+
' -$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)'#010+
#010+
- 'fpc_cleanall: $(CLEANTARGET)'#010+
+ 'fpc_cleanall: ','$(CLEANTARGET)'#010+
'ifdef CLEANEXEFILES'#010+
- ' ',' -$(DEL) $(CLEANEXEFILES)'#010+
+ ' -$(DEL) $(CLEANEXEFILES)'#010+
'endif'#010+
'ifdef COMPILER_UNITTARGETDIR'#010+
'ifdef CLEANPPUFILES'#010+
@@ -2095,26 +2109,25 @@ const fpcmakeini : array[0..224,1..240] of char=(
'ifneq ($(CLEANPPULINKFILES),)'#010+
' -$(DEL) $(CLEANPPULINKFILES)'#010+
'endif'#010+
- 'ifdef CLEANRSTFILES'#010+
- ' -$(DEL) $(addpr','efix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))'+
- #010+
+ 'ifdef',' CLEANRSTFILES'#010+
+ ' -$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))'#010+
'endif'#010+
'endif'#010+
'ifdef CLEAN_FILES'#010+
' -$(DEL) $(CLEAN_FILES)'#010+
'endif'#010+
' -$(DELTREE) units'#010+
- ' -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIB'+
- 'EXT) *$(SHAREDLIBEXT) *$(PPLEXT',')'#010+
+ ' -$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(ST','ATICL'+
+ 'IBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)'#010+
'ifneq ($(PPUEXT),.ppu)'#010+
' -$(DEL) *.o *.ppu *.a'#010+
'endif'#010+
' -$(DELTREE) *$(SMARTEXT)'#010+
' -$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FP'+
'CEXTFILE) $(REDIRFILE)'#010+
- ' -$(DEL) *_ppas$(BATCHEXT)'#010+
+ ' -$(DEL)',' *_ppas$(BATCHEXT)'#010+
'ifdef AOUTEXT'#010+
- ' ',' -$(DEL) *$(AOUTEXT)'#010+
+ ' -$(DEL) *$(AOUTEXT)'#010+
'endif'#010+
'ifdef DEBUGSYMEXT'#010+
' -$(DEL) *$(DEBUGSYMEXT)'#010+
@@ -2125,9 +2138,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'[baseinforules]'#010+
'#####################################################################'#010+
- '# Base info rules'#010+
- '########################','############################################'+
- '#'#010+
+ '# Ba','se info rules'#010+
+ '#####################################################################'#010+
#010+
'.PHONY: fpc_baseinfo'#010+
#010+
@@ -2136,96 +2148,95 @@ const fpcmakeini : array[0..224,1..240] of char=(
'fpc_baseinfo:'#010+
' @$(ECHO)'#010+
' @$(ECHO) == Package info =='#010+
- ' @$(ECHO) Package Name..... $(PACKAGE_NAME)'#010+
- ' @$(ECHO) ',' Package Version.. $(PACKAGE_VERSION)'#010+
+ ' @$(ECHO) Package Name.','.... $(PACKAGE_NAME)'#010+
+ ' @$(ECHO) Package Version.. $(PACKAGE_VERSION)'#010+
' @$(ECHO)'#010+
' @$(ECHO) == Configuration info =='#010+
' @$(ECHO)'#010+
' @$(ECHO) FPC.......... $(FPC)'#010+
' @$(ECHO) FPC Version.. $(FPC_VERSION)'#010+
- ' @$(ECHO) Source CPU... $(CPU_S','OURCE)'#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) Full Source.. $(FULL_SOURCE)'#010+
- ' @$(ECHO) Full Target.. $(FULL_TARGET)'#010+
- ' ',' @$(ECHO) SourceSuffix. $(SOURCESUFFIX)'#010+
+ ' @$(E','CHO) Full Target.. $(FULL_TARGET)'#010+
+ ' @$(ECHO) SourceSuffix. $(SOURCESUFFIX)'#010+
' @$(ECHO) TargetSuffix. $(TARGETSUFFIX)'#010+
' @$(ECHO) FPC fpmake... $(FPCFPMAKE)'#010+
' @$(ECHO)'#010+
' @$(ECHO) == Directory info =='#010+
- ' @$(ECHO)'#010+
- ' @$(ECHO) Required pk','gs... $(REQUIRE_PACKAGES)'#010+
+ ' ','@$(ECHO)'#010+
+ ' @$(ECHO) Required pkgs... $(REQUIRE_PACKAGES)'#010+
' @$(ECHO)'#010+
' @$(ECHO) Basedir......... $(BASEDIR)'#010+
' @$(ECHO) FPCDir.......... $(FPCDIR)'#010+
' @$(ECHO) CrossBinDir..... $(CROSSBINDIR)'#010+
- ' @$(ECHO) UnitsDir........ $(UNITSDIR)'#010+
- ' @','$(ECHO) PackagesDir..... $(PACKAGESDIR)'#010+
+ ' @$(ECHO) ','UnitsDir........ $(UNITSDIR)'#010+
+ ' @$(ECHO) PackagesDir..... $(PACKAGESDIR)'#010+
' @$(ECHO)'#010+
' @$(ECHO) GCC library..... $(GCCLIBDIR)'#010+
' @$(ECHO) Other library... $(OTHERLIBDIR)'#010+
' @$(ECHO)'#010+
- ' @$(ECHO) == Tools info =='#010+
+ ' @$(ECHO) == Tools in','fo =='#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) Mv........ $(MVPROG)'#010+
- ' @$(ECHO) Cp........ $(CPPROG)'#010+
- ' @$(ECHO) Rm','........ $(RMPROG)'#010+
+ ' @$(ECHO) Cp.','....... $(CPPROG)'#010+
+ ' @$(ECHO) Rm........ $(RMPROG)'#010+
' @$(ECHO) GInstall.. $(GINSTALL)'#010+
' @$(ECHO) Echo...... $(ECHO)'#010+
' @$(ECHO) Shell..... $(SHELL)'#010+
' @$(ECHO) Date...... $(DATE)'#010+
- ' @$(ECHO) FPCMake... $(FPCMAKE)'#010+
- ' @$(ECHO) PPUMove...',' $(PPUMOVE)'#010+
+ ' @$(ECHO) FPCMake... $','(FPCMAKE)'#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_UNITS)'#010+
- ' ',' @$(ECHO) Target Implicit Units. $(TARGET_IMPLICITUNITS)'#010+
+ ' @$(ECHO) Tar','get 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_EXAMPLES)'#010+
- ' ',' @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)'#010+
+ ' @$(ECHO) Targe','t Examples....... $(TARGET_EXAMPLES)'#010+
+ ' @$(ECHO) Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)'#010+
' @$(ECHO)'#010+
' @$(ECHO) Clean Units......... $(CLEAN_UNITS)'#010+
' @$(ECHO) Clean Files......... $(CLEAN_FILES)'#010+
- ' @$(ECHO)'#010+
- ' @$(ECHO) Install Units.....','.. $(INSTALL_UNITS)'#010+
+ ' @$(ECHO',')'#010+
+ ' @$(ECHO) Install Units....... $(INSTALL_UNITS)'#010+
' @$(ECHO) Install Files....... $(INSTALL_FILES)'#010+
' @$(ECHO)'#010+
' @$(ECHO) == Install info =='#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+
- ' @$(ECHO) FullZipName.......... $(FULLZIPNAME)'#010+
- ' @$(E','CHO) Install FPC Package.. $(INSTALL_FPCPACKAGE)'#010+
+ ' @$(ECHO) FullZipName','.......... $(FULLZIPNAME)'#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_LIBDIR',')'#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_EXAMPLEDIR',')'#010+
+ ' @$(ECHO) Inst','all example dir.. $(INSTALL_EXAMPLEDIR)'#010+
' @$(ECHO) Install data dir..... $(INSTALL_DATADIR)'#010+
' @$(ECHO)'#010+
' @$(ECHO) Dist destination dir. $(DIST_DESTDIR)'#010+
' @$(ECHO) Dist zip name........ $(DIST_ZIPNAME)'#010+
- ' @$(ECHO)'#010+
+ ' @$(E','CHO)'#010+
#010+
'[inforules]'#010+
- '####################','################################################'+
- '#'#010+
+ '#####################################################################'#010+
'# Info rules'#010+
'#####################################################################'#010+
#010+
@@ -2234,17 +2245,17 @@ const fpcmakeini : array[0..224,1..240] of char=(
'fpc_info: $(INFORULES)'#010+
#010+
'[makefilerules]'#010+
- '################################################','####################'+
+ '##########','##########################################################'+
'#'#010+
'# Rebuild Makefile'#010+
'#####################################################################'#010+
#010+
'.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2'+
' \'#010+
- ' fpc_makefile_dirs'#010+
+ ' fpc_makef','ile_dirs'#010+
#010+
'fpc_makefile:'#010+
- ' $(FPCM','AKE) -w -T$(OS_TARGET) Makefile.fpc'#010+
+ ' $(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc'#010+
#010+
'fpc_makefile_sub1:'#010+
'ifdef TARGET_DIRS'#010+
@@ -2252,7 +2263,7 @@ const fpcmakeini : array[0..224,1..240] of char=(
'T_DIRS))'#010+
'endif'#010+
'ifdef TARGET_EXAMPLEDIRS'#010+
- ' $(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefi','le.fpc,$(TAR'+
+ ' $(FPCMAKE)',' -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TAR'+
'GET_EXAMPLEDIRS))'#010+
'endif'#010+
#010+
@@ -2261,27 +2272,27 @@ const fpcmakeini : array[0..224,1..240] of char=(
#010+
'fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2'#010+
#010+
- 'fpc_makefiles: fpc_makefile fpc_makefile_dirs'#010+
+ 'fpc_makefiles: fpc_makef','ile fpc_makefile_dirs'#010+
#010+
- '[localmakefile]',#010+
+ '[localmakefile]'#010+
'#####################################################################'#010+
'# Local Makefile'#010+
'#####################################################################'#010+
#010+
'ifneq ($(wildcard fpcmake.loc),)'#010+
- 'include fpcmake.loc'#010+
+ 'include fp','cmake.loc'#010+
'endif'#010+
#010+
#010+
'[userrules]'#010+
- '########','############################################################'+
- '#'#010+
+ '#####################################################################'#010+
'# Users rules'#010+
'#####################################################################'#010+
#010+
'[lclrules]'#010+
- '#####################################################################'#010+
- '# LCL Rules'#010,
+ '############################################','########################'+
+ '#'#010+
+ '# LCL Rules'#010+
'#####################################################################'#010+
#010+
'# LCL Platform'#010+
@@ -2291,10 +2302,10 @@ const fpcmakeini : array[0..224,1..240] of char=(
'else'#010+
'LCL_PLATFORM=gtk'#010+
'endif'#010+
- 'endif'#010+
+ 'e','ndif'#010+
'export LCL_PLATFORM'#010+
#010+
- '# Check if t','he 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+
@@ -2304,8 +2315,8 @@ const fpcmakeini : array[0..224,1..240] of char=(
'override LCLDIR=wrong'#010+
'endif'#010+
#010+
- '# Check if the default LCLDIR is correct'#010+
- 'i','fdef DEFAULT_LCLDIR'#010+
+ '# Ch','eck 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+
@@ -2313,48 +2324,49 @@ const fpcmakeini : array[0..224,1..240] of char=(
'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+
+ 'ifeq ($(LCLDIR)',',wrong)'#010+
+ 'override LCLDIR=$(subst /units/$(LCL_PLATFORM),,$(firstword $(wildcard'+
+ ' $(addsuffix /units/$(LCL_PLATFORM),$(BASEDIR)/lcl $(BASEDIR)))))'#010+
'ifeq ($(LCLDIR),)'#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+
+ 'ifeq ($(LCLDIR)',',wrong)'#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+
'endif'#010+
'endif'#010+
#010+
'# Generate dirs'#010+
- 'override LCLUNITDIR:=$(wildcard $(LCLDIR)/units/$(LCL_PLATFORM)',' $(LC'+
+ 'override LCLUNITDIR:=$(wi','ldcard $(LCLDIR)/units/$(LCL_PLATFORM) $(LC'+
'LDIR)/units)'#010+
'override LCLCOMPONENTDIR:=$(wildcard $(LCLDIR)/.. $(LCLDIR)/../compone'+
'nts $(LCLDIR)/components)'#010+
'export LCLDIR LCLUNITDIR LCLCOMPONENTDIR'#010+
#010+
'# Add LCL dirs to paths'#010+
- 'override REQUIRE_PACKAGESDIR+=$(LCLCOMPONENTDIR)'#010+
- 'override CO','MPILER_UNITDIR+=$(LCLUNITDIR)'#010+
+ 'override REQUIRE_PACKA','GESDIR+=$(LCLCOMPONENTDIR)'#010+
+ 'override COMPILER_UNITDIR+=$(LCLUNITDIR)'#010+
#010+
'[lclinforules]'#010+
'#####################################################################'#010+
'# LCL Info rules'#010+
- '#####################################################################'#010+
+ '#####################################################################',
+ #010+
'override INFORULES+=lclinfo'#010+
#010+
- '.PHONY: ','lclinfo'#010+
+ '.PHONY: lclinfo'#010+
#010+
'lclinfo:'#010+
' @$(ECHO) == LCL info =='#010+
' @$(ECHO)'#010+
' @$(ECHO) Platform............. $(LCL_PLATFORM)'#010+
' @$(ECHO) LCLDIR............... $(LCLDIR)'#010+
- ' @$(ECHO) LCL Unit dir......... $(LCLUNITDIR)'#010+
- ' @$(E','CHO) LCL Component dir.... $(LCLCOMPONENTDIR)'#010+
+ ' @$(ECHO) LCL Unit d','ir......... $(LCLUNITDIR)'#010+
+ ' @$(ECHO) LCL Component dir.... $(LCLCOMPONENTDIR)'#010+
' @$(ECHO)'#010
);
diff --git a/utils/fpcm/fpcmake.ini b/utils/fpcm/fpcmake.ini
index d60b6d7fb1..313b280730 100644
--- a/utils/fpcm/fpcmake.ini
+++ b/utils/fpcm/fpcmake.ini
@@ -8,7 +8,7 @@
#####################################################################
# OS categories
-BSDs = freebsd netbsd openbsd darwin
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -917,6 +917,14 @@ HASSHAREDLIB=1
SHORTSUFFIX=lnx
endif
+# DragonFly BSD
+ifeq ($(OS_TARGET),dragonfly)
+BATCHEXT=.sh
+EXEEXT=
+HASSHAREDLIB=1
+SHORTSUFFIX=df
+endif
+
# FreeBSD
ifeq ($(OS_TARGET),freebsd)
BATCHEXT=.sh
@@ -976,6 +984,13 @@ SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+# AROS
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
+
# MorphOS
ifeq ($(OS_TARGET),morphos)
EXEEXT=
@@ -1388,9 +1403,10 @@ ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-# create always pic'ed code on x86_64
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
-ifeq ($(CPU_TARGET),x86_64)
+# create always pic'ed code on x86_64, mips and mipsel
+# on unix-like systems
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(CPU_TARGET),x86_64 mips mipsel),)
override FPCOPT+=-Cg
endif
endif
diff --git a/utils/fpcm/fpcmmain.pp b/utils/fpcm/fpcmmain.pp
index 3f333acb46..901fddecc6 100644
--- a/utils/fpcm/fpcmmain.pp
+++ b/utils/fpcm/fpcmmain.pp
@@ -75,7 +75,7 @@ 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_wii,o_aix,o_java,o_android,o_msdos,o_aros,o_dragonfly
);
TTargetSet=array[tcpu,tos] of boolean;
@@ -98,7 +98,8 @@ interface
'amiga','atari','solaris', 'qnx', 'netware','openbsd','wdosx',
'palmos','macos','darwin','emx','watcom','morphos','netwlibc',
'win64','wince','gba','nds','embedded','symbian','nativent',
- 'iphonesim', 'wii', 'aix', 'java', 'android', 'msdos'
+ 'iphonesim', 'wii', 'aix', 'java', 'android', 'msdos', 'aros',
+ 'dragonfly'
);
OSSuffix : array[TOS] of string=(
@@ -106,7 +107,8 @@ interface
'_amiga','_atari','_solaris', '_qnx', '_netware','_openbsd','_wdosx',
'_palmos','_macos','_darwin','_emx','_watcom','_morphos','_netwlibc',
'_win64','_wince','_gba','_nds','_embedded','_symbian','_nativent',
- '_iphonesim','_wii','_aix','_java','_android','_msdos'
+ '_iphonesim','_wii','_aix','_java','_android','_msdos','_aros',
+ '_dragonfly'
);
{ This table is kept OS,Cpu because it is easier to maintain (PFV) }
@@ -146,7 +148,9 @@ interface
{ aix } ( false, false, true, false, false, false, true, 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),
{ android } ( true, false, false, false, false, true, false, false, false, false, false, true, false, false, true, false),
- { msdos } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true)
+ { msdos } ( false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true),
+ { aros } ( true, 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)
);
type
diff --git a/utils/fpcm/fpmake.pp b/utils/fpcm/fpmake.pp
index 1413e076cc..dc1d28277a 100644
--- a/utils/fpcm/fpmake.pp
+++ b/utils/fpcm/fpmake.pp
@@ -3,6 +3,16 @@
{$DEFINE NO_THREADING}
{$ENDIF}
+{$IFDEF AROS}
+ {$DEFINE NO_UNIT_PROCESS}
+ {$DEFINE NO_THREADING}
+{$ENDIF}
+
+{$IFDEF AMIGA}
+ {$DEFINE NO_UNIT_PROCESS}
+ {$DEFINE NO_THREADING}
+{$ENDIF}
+
{$IFDEF OS2}
{$DEFINE NO_UNIT_PROCESS}
{$ENDIF OS2}
@@ -198,7 +208,8 @@ Var
begin
With Installer do
begin
- P:=AddPackage('fpcm');
+ P:=AddPackage('utils-fpcm');
+ P.ShortName:='fpcm';
P.Author := '<various>';
P.License := 'LGPL with modification';
@@ -210,7 +221,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('fcl-base');
@@ -223,7 +234,7 @@ begin
{$endif HAS_UNIT_PROCESS}
Data2IncBin := AddProgramExtension('data2inc',Defaults.BuildOS);
- p.Commands.AddCommand(caBeforeCompile, Data2IncBin, '-b -s fpcmake.ini fpcmake.inc fpcmakeini','fpcmake.inc','fpcmake.ini');
+ p.Commands.AddCommand(caBeforeCompile, Data2IncBin, '-b -s ' + P.Directory + 'fpcmake.ini ' + P.Directory + 'fpcmake.inc fpcmakeini','fpcmake.inc','fpcmake.ini');
T:=P.Targets.AddUnit('fpcmmain.pp');
T.install:=false;
T.ResourceStrings:=true;
diff --git a/utils/fpcm/revision.inc b/utils/fpcm/revision.inc
index aa95fc06b6..573c4003b4 100644
--- a/utils/fpcm/revision.inc
+++ b/utils/fpcm/revision.inc
@@ -1 +1 @@
-'2014-04-01 rev 27428'
+'2015-01-04 rev 29399'
diff --git a/utils/fpcmkcfg/Makefile b/utils/fpcmkcfg/Makefile
index a07c5c333b..b6f198e1b2 100644
--- a/utils/fpcmkcfg/Makefile
+++ b/utils/fpcmkcfg/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fpcmkcfg
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/fpcmkcfg/Makefile.fpc b/utils/fpcmkcfg/Makefile.fpc
index 6e54b2bdb1..cd6f4e3d27 100644
--- a/utils/fpcmkcfg/Makefile.fpc
+++ b/utils/fpcmkcfg/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fpcmkcfg
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/fpcmkcfg/fpc.cft b/utils/fpcmkcfg/fpc.cft
index 6e92a46019..857f39c658 100644
--- a/utils/fpcmkcfg/fpc.cft
+++ b/utils/fpcmkcfg/fpc.cft
@@ -148,6 +148,12 @@
-Fu%basepath%/units/$fpctarget/*
-Fu%basepath%/units/$fpctarget/rtl
+#ifdef cpui8086
+-Fu%basepath%/units/$fpctarget/$fpcsubarch-$fpcmemorymodel
+-Fu%basepath%/units/$fpctarget/$fpcsubarch-$fpcmemorymodel/*
+-Fu%basepath%/units/$fpctarget/$fpcsubarch-$fpcmemorymodel/rtl
+#endif
+
#IFDEF FPCAPACHE_1_3
-Fu%basepath%/units/$fpctarget/httpd13/
#ELSE
@@ -185,6 +191,12 @@
#undef NEEDCROSSBINUTILS
#endif
+# never need cross-prefix when targeting the i8086
+# (no native compiler, always cross-compiling)
+#ifdef cpui8086
+#undef NEEDCROSSBINUTILS
+#endif
+
# binutils prefix for cross compiling
#IFDEF FPC_CROSSCOMPILING
#IFDEF NEEDCROSSBINUTILS
@@ -216,6 +228,13 @@
# Always strip debuginfo from the executable
-Xs
+# Always use smartlinking on i8086, because the system unit exceeds the 64kb
+# code limit
+#ifdef cpui8086
+-CX
+-XX
+#endif
+
# -------------
# Miscellaneous
diff --git a/utils/fpcmkcfg/fpccfg.inc b/utils/fpcmkcfg/fpccfg.inc
index 690db01baf..35e73dfcf8 100644
--- a/utils/fpcmkcfg/fpccfg.inc
+++ b/utils/fpcmkcfg/fpccfg.inc
@@ -1,7 +1,7 @@
{$ifdef Delphi}
-const DefaultConfig : array[0..28] of string[240]=(
+const DefaultConfig : array[0..30] of string[240]=(
{$else Delphi}
-const DefaultConfig : array[0..28,1..240] of char=(
+const DefaultConfig : array[0..30,1..240] of char=(
{$endif Delphi}
'#'#013#010+
'# Config file generated by fpcmkcfg on %BUILDDATE% - %BUILDTIME%'#013#010+
@@ -169,12 +169,18 @@ const DefaultConfig : array[0..28,1..240] of char=(
'-Fu%basepath%/units/$fpctarget/*'#013#010+
'-Fu%basepath%/units/$fpctarget/rtl'#013#010+
#013#010+
+ '#ifdef cpui8086'#013#010+
+ '-Fu%basepath%/units/$fpctarget/$fpcsubarch-$fpcmemorymodel'#013#010+
+ '-Fu%basepath%/units/$fpctarget/$fpc','subarch-$fpcmemorymodel/*'#013#010+
+ '-Fu%basepath%/units/$fpctarget/$fpcsubarch-$fpcmemorymodel/rtl'#013#010+
+ '#endif'#013#010+
+ #013#010+
'#IFDEF FPCAPACHE_1_3'#013#010+
'-Fu%basepath%/units/$fpctarget/httpd13/'#013#010+
'#ELSE'#013#010+
'#IFDEF FPCAPACHE_2_0'#013#010+
- '-Fu%basepath%/units/','$fpctarget/httpd20'#013#010+
- '#ELSE'#013#010+
+ '-Fu%basepath%/units/$fpctarget/httpd20'#013#010+
+ '#ELSE'#013#010,
'-Fu%basepath%/units/$fpctarget/httpd22'#013#010+
'#ENDIF'#013#010+
'#ENDIF'#013#010+
@@ -186,8 +192,8 @@ const DefaultConfig : array[0..28,1..240] of char=(
'%gcclibpath%'#013#010+
#013#010+
'# searchpath for libraries'#013#010+
- '#','-Fl%basepath%/lib'#013#010+
- '#-Fl/lib;/usr/lib'#013#010+
+ '#-Fl%basepath%/lib'#013#010+
+ '#-Fl/lib',';/usr/lib'#013#010+
'-Fl%basepath%/lib/$FPCTARGET'#013#010+
#013#010+
'# searchpath for tools'#013#010+
@@ -196,8 +202,8 @@ const DefaultConfig : array[0..28,1..240] of char=(
'%NEEDCROSSBINUTILSIFDEF%'#013#010+
#013#010+
'# never need cross-prefix when targeting the JVM'#013#010+
- '# (no native compiler, always cross-','compiling)'#013#010+
- '#ifdef cpujvm'#013#010+
+ '# (no native compiler, always cross-compiling)'#013#010+
+ '#ifdef cpujvm'#013#010,
'#undef NEEDCROSSBINUTILS'#013#010+
'#endif'#013#010+
#013#010+
@@ -206,9 +212,15 @@ const DefaultConfig : array[0..28,1..240] of char=(
'#undef NEEDCROSSBINUTILS'#013#010+
'#endif'#013#010+
#013#010+
+ '# never need cross-prefix when targeting the i8086'#013#010+
+ '# (no native compiler, always cross-compiling)'#013#010+
+ '#ifde','f cpui8086'#013#010+
+ '#undef NEEDCROSSBINUTILS'#013#010+
+ '#endif'#013#010+
+ #013#010+
'# binutils prefix for cross compiling'#013#010+
'#IFDEF FPC_CROSSCOMPILING'#013#010+
- '#IFDEF NEEDC','ROSSBINUTILS'#013#010+
+ '#IFDEF NEEDCROSSBINUTILS'#013#010+
' -XP$FPCTARGET-'#013#010+
'#ENDIF'#013#010+
'#ENDIF'#013#010+
@@ -218,19 +230,19 @@ const DefaultConfig : array[0..28,1..240] of char=(
'# Linking'#013#010+
'# -------------'#013#010+
#013#010+
- '# generate always debugging information for GDB (slows down the compil'+
- 'ing'#013#010+
+ '# generate alwa','ys debugging information for GDB (slows down the comp'+
+ 'iling'#013#010+
'# process)'#013#010+
'# -gc generate checks for pointers'#013#010+
- '# ',' -gd use dbx'#013#010+
+ '# -gd use dbx'#013#010+
'# -gg use gsym'#013#010+
- '# -gh use heap trace unit (for memory leak debugging)'#013#010+
+ '# -gh use heap trace unit (for memory leak debugging)',#013#010+
'# -gl use line info unit to show more info for backtraces'#013+
#010+
- '# -gv generates programs tracable with va','lgrind'#013#010+
+ '# -gv generates programs tracable with valgrind'#013#010+
'# -gw generate dwarf debugging info'#013#010+
'#'#013#010+
- '# Enable debuginfo and use the line info unit by default'#013#010+
+ '# Enable debuginfo and use the line info unit by defau','lt'#013#010+
'#-gl'#013#010+
#013#010+
'# always pass an option to the linker'#013#010+
@@ -239,8 +251,16 @@ const DefaultConfig : array[0..28,1..240] of char=(
'# Always strip debuginfo from the executable'#013#010+
'-Xs'#013#010+
#013#010+
+ '# Always use smartlinking on i8086, because the system unit exceeds th'+
+ 'e 64kb'#013#010+
+ '# code limit'#013#010+
+ '#ifdef cpui8086'#013#010+
+ '-CX'#013#010+
+ '-XX'#013#010+
+ '#endif'#013#010,
+ #013#010+
#013#010+
- '# ---------','----'#013#010+
+ '# -------------'#013#010+
'# Miscellaneous'#013#010+
'# -------------'#013#010+
#013#010+
@@ -250,18 +270,18 @@ const DefaultConfig : array[0..28,1..240] of char=(
'# Verbosity'#013#010+
'# e : Show errors (default) d : Show debug info'#013#010+
'# w : Show warnings u : Show unit info'#013#010+
- '# n : Show notes ',' t : Show tried/used files'#013+
+ '# n :',' Show notes t : Show tried/used files'#013+
#010+
'# h : Show hints s : Show time stamps'#013#010+
'# i : Show general info q : Show message numbers'#013#010+
- '# l : Show linenumbers c : Show conditionals'#013#010+
- '# a : ','Show everything 0 : Show nothing (except erro'+
- 'rs)'#013#010+
+ '# l : Show linenumbers c : Show conditiona','ls'#013#010+
+ '# a : Show everything 0 : Show nothing (except errors'+
+ ')'#013#010+
'# b : Write file names messages r : Rhide/GCC compatibility mod'+
'e'#013#010+
'# with full path x : Executable info (Win32 only'+
')'#013#010+
- '# v : write fpcdebug.txt wi','th p : Write tree.log with parse'+
+ '# v : write ','fpcdebug.txt with p : Write tree.log with parse'+
' tree'#013#010+
'# lots of debugging info'#013#010+
'#'#013#010+
diff --git a/utils/fpcmkcfg/fpmake.pp b/utils/fpcmkcfg/fpmake.pp
index a0a9265dc2..bb970cc629 100644
--- a/utils/fpcmkcfg/fpmake.pp
+++ b/utils/fpcmkcfg/fpmake.pp
@@ -15,17 +15,18 @@ Var
begin
With Installer do
begin
- P:=AddPackage('fpcmkcfg');
+ P:=AddPackage('utils-fpcmkcfg');
+ P.ShortName:='fcmk';
P.Author := '<various>';
P.License := 'LGPL with modification';
P.HomepageURL := 'www.freepascal.org';
P.Email := '';
- P.Description := 'An utility to creaty the Free Pascal configuration files.';
+ P.Description := 'A utility to create the Free Pascal configuration files.';
P.NeedLibC:= false;
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('fcl-base');
P.Dependencies.Add('fpmkunit');
@@ -38,7 +39,6 @@ begin
p.Commands.AddCommand(caBeforeCompile, Data2IncBin, '-b -s default.cft default.inc fppkg_default','default.inc','default.cft');
T:=P.Targets.AddProgram('fpcmkcfg.pp');
- T.ResourceStrings:=true;
T.Dependencies.AddInclude('fpccfg.inc');
T.Dependencies.AddInclude('fpcfg.inc');
T.Dependencies.AddInclude('fpini.inc');
diff --git a/utils/fpcres/Makefile b/utils/fpcres/Makefile
index 8f7666bc0e..9c4a019c8a 100644
--- a/utils/fpcres/Makefile
+++ b/utils/fpcres/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fpcres
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/fpcres/Makefile.fpc b/utils/fpcres/Makefile.fpc
index 0d804abd8f..a2ce885b53 100644
--- a/utils/fpcres/Makefile.fpc
+++ b/utils/fpcres/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fpcres
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/fpcres/fpcres.pas b/utils/fpcres/fpcres.pas
index eaf345eff9..bdaddc81f2 100644
--- a/utils/fpcres/fpcres.pas
+++ b/utils/fpcres/fpcres.pas
@@ -272,6 +272,7 @@ begin
case CurrentTarget.machine of
// mtnone :
mtppc : Result.MachineType:=cmtppc32aix;
+// mtppc64 : Result.MachineType:=cmtppc64aix;
end;
end;
diff --git a/utils/fpcres/fpmake.pp b/utils/fpcres/fpmake.pp
index 1e50e69d13..bfd0be7305 100644
--- a/utils/fpcres/fpmake.pp
+++ b/utils/fpcres/fpmake.pp
@@ -14,7 +14,8 @@ Var
begin
With Installer do
begin
- P:=AddPackage('fpcres');
+ P:=AddPackage('utils-fpcres');
+ P.ShortName:='fpres';
P.Author := 'Giulio Bernardi';
P.License := 'LGPL with modification';
@@ -24,9 +25,9 @@ begin
P.NeedLibC:= false;
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
- P.OSes:=[win32,win64,wince,haiku,linux,freebsd,openbsd,netbsd,darwin,iphonesim,solaris,os2,emx,aix];
+ P.OSes:=[win32,win64,wince,haiku,linux,freebsd,openbsd,netbsd,darwin,iphonesim,solaris,os2,emx,aix,aros];
P.Dependencies.Add('fcl-res');
P.Dependencies.Add('paszlib');
diff --git a/utils/fpcres/target.pas b/utils/fpcres/target.pas
index ac165f5788..7d5340c154 100644
--- a/utils/fpcres/target.pas
+++ b/utils/fpcres/target.pas
@@ -74,7 +74,7 @@ var
(name : 'i386'; formats : [ofElf, ofCoff, ofMachO]), //mti386
(name : 'x86_64'; formats : [ofElf, ofCoff, ofMachO]), //mtx86_64
(name : 'powerpc'; formats : [ofElf, ofXCoff, ofMachO]), //mtppc
- (name : 'powerpc64'; formats : [ofElf, ofMachO]), //mtppc64
+ (name : 'powerpc64'; formats : [ofElf, {ofXCoff,} ofMachO]), //mtppc64
(name : 'arm'; formats : [ofElf, ofCoff, ofMachO]), //mtarm
(name : 'armeb'; formats : [ofElf]), //mtarmeb
(name : 'm68k'; formats : [ofElf]), //mtm68k
diff --git a/utils/fpcreslipo/Makefile b/utils/fpcreslipo/Makefile
index 4b98117f07..2d1b1604d7 100644
--- a/utils/fpcreslipo/Makefile
+++ b/utils/fpcreslipo/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fpcreslipo
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/fpcreslipo/Makefile.fpc b/utils/fpcreslipo/Makefile.fpc
index 160ea96250..c964b7cae9 100644
--- a/utils/fpcreslipo/Makefile.fpc
+++ b/utils/fpcreslipo/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fpcreslipo
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/fpcreslipo/fpmake.pp b/utils/fpcreslipo/fpmake.pp
index 19f498124f..1df9964dbe 100644
--- a/utils/fpcreslipo/fpmake.pp
+++ b/utils/fpcreslipo/fpmake.pp
@@ -14,7 +14,8 @@ Var
begin
With Installer do
begin
- P:=AddPackage('fpcreslipo');
+ P:=AddPackage('utils-fpcreslipo');
+ P.ShortName:='fpcreslipo';
P.Author := 'Giulio Bernardi';
P.License := 'LGPL with modification';
@@ -22,7 +23,7 @@ begin
P.Email := '';
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('fcl-res');
P.OSes:=[darwin, iphonesim];
diff --git a/utils/fpdoc/Makefile b/utils/fpdoc/Makefile
index fe84b28e4d..8c6ff879f3 100644
--- a/utils/fpdoc/Makefile
+++ b/utils/fpdoc/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fpdoc
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/fpdoc/Makefile.fpc b/utils/fpdoc/Makefile.fpc
index 1e3d94a23b..971b3e9a0e 100644
--- a/utils/fpdoc/Makefile.fpc
+++ b/utils/fpdoc/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fpdoc
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/fpdoc/Makefile.fpc.fpcmake b/utils/fpdoc/Makefile.fpc.fpcmake
index 6acf0e123f..d7ad4ab11a 100644
--- a/utils/fpdoc/Makefile.fpc.fpcmake
+++ b/utils/fpdoc/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fpdoc
-version=2.7.1
+version=3.1.1
[require]
packages=fcl-base fcl-xml fcl-passrc chm
diff --git a/utils/fpdoc/dwlinear.pp b/utils/fpdoc/dwlinear.pp
index 988fe82a0b..fa8b7eeff6 100644
--- a/utils/fpdoc/dwlinear.pp
+++ b/utils/fpdoc/dwlinear.pp
@@ -728,6 +728,8 @@ var
begin
DocNode:=Engine.FindDocNode(Package);
+ if not Assigned(DocNode) then
+ exit;
if Assigned(DocNode) and not IsDescrNodeEmpty(DocNode.Descr) then
begin
StartSection(SDocOverview);
diff --git a/utils/fpdoc/fpde/Makefile b/utils/fpdoc/fpde/Makefile
index 1a2fc9759e..6f2a183b20 100644
--- a/utils/fpdoc/fpde/Makefile
+++ b/utils/fpdoc/fpde/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fpde
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
ifeq ($(FULL_TARGET),i386-linux)
override TARGET_PROGRAMS+=fpde
endif
@@ -390,6 +396,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override TARGET_PROGRAMS+=fpde
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override TARGET_PROGRAMS+=fpde
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_PROGRAMS+=fpde
endif
@@ -477,6 +486,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_PROGRAMS+=fpde
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override TARGET_PROGRAMS+=fpde
+endif
ifeq ($(FULL_TARGET),arm-linux)
override TARGET_PROGRAMS+=fpde
endif
@@ -531,6 +543,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_PROGRAMS+=fpde
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override TARGET_PROGRAMS+=fpde
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override TARGET_PROGRAMS+=fpde
endif
@@ -612,6 +627,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_UNITS+=fpdeopts frmlink frmmakeskel frmoptions pgeditor fpdemsg frmabout frmmain frmnewnode frmtable xpms
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_UNITS+=fpdeopts frmlink frmmakeskel frmoptions pgeditor fpdemsg frmabout frmmain frmnewnode frmtable xpms
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_UNITS+=fpdeopts frmlink frmmakeskel frmoptions pgeditor fpdemsg frmabout frmmain frmnewnode frmtable xpms
endif
@@ -699,6 +717,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_UNITS+=fpdeopts frmlink frmmakeskel frmoptions pgeditor fpdemsg frmabout frmmain frmnewnode frmtable xpms
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_UNITS+=fpdeopts frmlink frmmakeskel frmoptions pgeditor fpdemsg frmabout frmmain frmnewnode frmtable xpms
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_UNITS+=fpdeopts frmlink frmmakeskel frmoptions pgeditor fpdemsg frmabout frmmain frmnewnode frmtable xpms
endif
@@ -753,6 +774,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_UNITS+=fpdeopts frmlink frmmakeskel frmoptions pgeditor fpdemsg frmabout frmmain frmnewnode frmtable xpms
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_UNITS+=fpdeopts frmlink frmmakeskel frmoptions pgeditor fpdemsg frmabout frmmain frmnewnode frmtable xpms
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_UNITS+=fpdeopts frmlink frmmakeskel frmoptions pgeditor fpdemsg frmabout frmmain frmnewnode frmtable xpms
endif
@@ -834,6 +858,9 @@ endif
ifeq ($(FULL_TARGET),i386-android)
override CLEAN_FILES+=fpdemsg.rst frmmakeskel.rst
endif
+ifeq ($(FULL_TARGET),i386-aros)
+override CLEAN_FILES+=fpdemsg.rst frmmakeskel.rst
+endif
ifeq ($(FULL_TARGET),m68k-linux)
override CLEAN_FILES+=fpdemsg.rst frmmakeskel.rst
endif
@@ -921,6 +948,9 @@ endif
ifeq ($(FULL_TARGET),x86_64-embedded)
override CLEAN_FILES+=fpdemsg.rst frmmakeskel.rst
endif
+ifeq ($(FULL_TARGET),x86_64-dragonfly)
+override CLEAN_FILES+=fpdemsg.rst frmmakeskel.rst
+endif
ifeq ($(FULL_TARGET),arm-linux)
override CLEAN_FILES+=fpdemsg.rst frmmakeskel.rst
endif
@@ -975,6 +1005,9 @@ endif
ifeq ($(FULL_TARGET),mipsel-linux)
override CLEAN_FILES+=fpdemsg.rst frmmakeskel.rst
endif
+ifeq ($(FULL_TARGET),mipsel-embedded)
+override CLEAN_FILES+=fpdemsg.rst frmmakeskel.rst
+endif
ifeq ($(FULL_TARGET),mipsel-android)
override CLEAN_FILES+=fpdemsg.rst frmmakeskel.rst
endif
@@ -1230,6 +1263,12 @@ 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=
@@ -1275,6 +1314,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1903,6 +1947,18 @@ REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-PASSRC=1
REQUIRE_PACKAGES_FPGTK=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_FPGTK=1
+endif
ifeq ($(FULL_TARGET),m68k-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2251,6 +2307,18 @@ REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-PASSRC=1
REQUIRE_PACKAGES_FPGTK=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_FPGTK=1
+endif
ifeq ($(FULL_TARGET),arm-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -2467,6 +2535,18 @@ REQUIRE_PACKAGES_FCL-XML=1
REQUIRE_PACKAGES_FCL-PASSRC=1
REQUIRE_PACKAGES_FPGTK=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
+REQUIRE_PACKAGES_FCL-BASE=1
+REQUIRE_PACKAGES_FCL-XML=1
+REQUIRE_PACKAGES_FCL-PASSRC=1
+REQUIRE_PACKAGES_FPGTK=1
+endif
ifeq ($(FULL_TARGET),mipsel-android)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -3008,7 +3088,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -3038,17 +3118,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
.PHONY: fpc_exes
ifndef CROSSINSTALL
ifneq ($(TARGET_PROGRAMS),)
diff --git a/utils/fpdoc/fpde/Makefile.fpc b/utils/fpdoc/fpde/Makefile.fpc
index e1ac7e8ad7..22fb826278 100644
--- a/utils/fpdoc/fpde/Makefile.fpc
+++ b/utils/fpdoc/fpde/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fpde
-version=2.7.1
+version=3.1.1
[require]
packages=fcl-base fcl-xml fcl-passrc fpgtk
diff --git a/utils/fpdoc/fpmake.pp b/utils/fpdoc/fpmake.pp
index fc4d7b9d81..f2217b253a 100644
--- a/utils/fpdoc/fpmake.pp
+++ b/utils/fpdoc/fpmake.pp
@@ -16,7 +16,8 @@ begin
AddCustomFpmakeCommandlineOption('bin2obj', 'Use indicated bin2obj executable.');
With Installer do
begin
- P:=AddPackage('fpdoc');
+ P:=AddPackage('utils-fpdoc');
+ P.ShortName:='fpdoc';
P.Author := '<various>';
P.License := 'LGPL with modification';
@@ -32,9 +33,8 @@ begin
P.Dependencies.Add('chm');
P.Dependencies.Add('univint',[darwin,iphonesim]);
-
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Options.Add('-S2h');
@@ -56,9 +56,7 @@ begin
T.Dependencies.AddUnit('dglobals');
T:=P.Targets.AddProgram('unitdiff.pp');
- T.ResourceStrings:=true;
T:=P.Targets.AddProgram('fpclasschart.pp');
- T.ResourceStrings:=true;
T := P.Targets.AddUnit('dglobals.pp');
T.install:=false;
diff --git a/utils/fpmake.pp b/utils/fpmake.pp
index d0115cae8a..4a3848da45 100644
--- a/utils/fpmake.pp
+++ b/utils/fpmake.pp
@@ -47,8 +47,6 @@ Var
T : TTarget;
begin
-{$include fpmake_add.inc}
-
With Installer do
begin
P:=AddPackage('utils');
@@ -67,8 +65,9 @@ begin
P.Dependencies.Add('paszlib');
P.Dependencies.Add('hash');
P.Dependencies.Add('univint',[darwin,iphonesim]);
-
- P.Version:='2.7.1';
+ P.Dependencies.Add('rtl-extra');
+
+ P.Version:='3.1.1';
T:=P.Targets.AddProgram('ptop.pp');
T.Dependencies.AddUnit('ptopu');
@@ -79,6 +78,7 @@ begin
P.Targets.AddProgram('data2inc.pp');
P.Targets.AddProgram('delp.pp');
P.Targets.AddProgram('bin2obj.pp');
+ P.Targets.AddProgram('mkinsadd.pp');
P.Targets.AddProgram('postw32.pp');
P.Targets.AddProgram('rmcvsdir.pp');
P.Targets.AddProgram('grab_vcsa.pp',[linux]);
@@ -87,6 +87,8 @@ begin
P.Targets.AddUnit('usubst.pp').install:=false;
P.Targets.AddUnit('ptopu.pp').install:=false;
end;
+
+ {$include fpmake_add.inc}
end;
{$ifdef NO_PARENT}
diff --git a/utils/fpmc/Makefile b/utils/fpmc/Makefile
index 8d31eaf0a6..8affc534d3 100644
--- a/utils/fpmc/Makefile
+++ b/utils/fpmc/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fpmc
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/fpmc/Makefile.fpc b/utils/fpmc/Makefile.fpc
index f5242c01bc..efddc4d2cf 100644
--- a/utils/fpmc/Makefile.fpc
+++ b/utils/fpmc/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fpmc
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/fpmc/fpmake.pp b/utils/fpmc/fpmake.pp
index ad48f8a607..9bec6d4367 100644
--- a/utils/fpmc/fpmake.pp
+++ b/utils/fpmc/fpmake.pp
@@ -16,7 +16,8 @@ Var
begin
With Installer do
begin
- P:=AddPackage('fpmc');
+ P:=AddPackage('utils-fpmc');
+ P.ShortName:='fpmc';
P.Author := '<various>';
P.License := 'LGPL with modification';
@@ -26,7 +27,7 @@ begin
P.NeedLibC:= false;
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes := [win32, win64, os2, emx];
diff --git a/utils/fppkg/Makefile b/utils/fppkg/Makefile
index c13c67be13..70f76f8098 100644
--- a/utils/fppkg/Makefile
+++ b/utils/fppkg/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fppkg-util
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/fppkg/Makefile.fpc b/utils/fppkg/Makefile.fpc
index 50b83c059a..55bad8124f 100644
--- a/utils/fppkg/Makefile.fpc
+++ b/utils/fppkg/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fppkg-util
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/fppkg/Makefile.fpc.fpcmake b/utils/fppkg/Makefile.fpc.fpcmake
index 00ef0b2fdd..e95376e6c1 100644
--- a/utils/fppkg/Makefile.fpc.fpcmake
+++ b/utils/fppkg/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=fppkg
-version=2.7.1
+version=3.1.1
[target]
programs=fppkg
diff --git a/utils/fppkg/fpmake.pp b/utils/fppkg/fpmake.pp
index 568e5cd2a6..52998edacd 100644
--- a/utils/fppkg/fpmake.pp
+++ b/utils/fppkg/fpmake.pp
@@ -17,7 +17,8 @@ Var
begin
With Installer do
begin
- P:=AddPackage('fppkg-util');
+ P:=AddPackage('utils-fppkg');
+ P.ShortName:='fppkg';
P.Author := '<various>';
P.License := 'LGPL with modification';
@@ -27,7 +28,7 @@ begin
P.NeedLibC:= false;
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.SourcePath.Add('lnet',lnetOSes);
P.IncludePath.Add('lnet/sys',lnetOSes);
diff --git a/utils/fppkg/fppkg.pp b/utils/fppkg/fppkg.pp
index 7c9b0ea236..34c77d4d59 100644
--- a/utils/fppkg/fppkg.pp
+++ b/utils/fppkg/fppkg.pp
@@ -104,6 +104,7 @@ begin
Writeln(' build Build package');
Writeln(' compile Compile package');
Writeln(' install Install package');
+ Writeln(' uninstall Uninstall package');
Writeln(' clean Clean package');
Writeln(' archive Create archive of package');
Writeln(' download Download package');
diff --git a/utils/fppkg/lnet/lcommon.pp b/utils/fppkg/lnet/lcommon.pp
index d4f35cc63e..5c758ad61e 100644
--- a/utils/fppkg/lnet/lcommon.pp
+++ b/utils/fppkg/lnet/lcommon.pp
@@ -512,15 +512,15 @@ end;
procedure FillAddressInfo(var aAddrInfo: TLSocketAddress; const aFamily: sa_family_t;
const Address: string; const aPort: Word);
begin
- aAddrInfo.IPv4.family := aFamily;
- aAddrInfo.IPv4.Port := htons(aPort);
+ aAddrInfo.IPv4.sin_family := aFamily;
+ aAddrInfo.IPv4.sin_Port := htons(aPort);
case aFamily of
LAF_INET :
begin
- aAddrInfo.IPv4.Addr := StrToNetAddr(Address);
- if (Address <> LADDR_ANY) and (aAddrInfo.IPv4.Addr = 0) then
- aAddrInfo.IPv4.Addr := StrToNetAddr(GetHostIP(Address));
+ aAddrInfo.IPv4.sin_Addr.s_addr := StrToNetAddr(Address);
+ if (Address <> LADDR_ANY) and (aAddrInfo.IPv4.sin_Addr.s_addr = 0) then
+ aAddrInfo.IPv4.sin_Addr.s_addr := StrToNetAddr(GetHostIP(Address));
end;
LAF_INET6 :
begin
diff --git a/utils/fppkg/lnet/lcontrolstack.pp b/utils/fppkg/lnet/lcontrolstack.pp
index 7c9bf4aa72..eef0ac8630 100644
--- a/utils/fppkg/lnet/lcontrolstack.pp
+++ b/utils/fppkg/lnet/lcontrolstack.pp
@@ -37,15 +37,18 @@ type
private
FItems: array of Char;
FIndex: Byte;
+ FAllowInflation: Boolean;
FOnFull: TLOnFull;
function GetFull: Boolean;
function GetItem(const i: Byte): Char;
procedure SetItem(const i: Byte; const Value: Char);
+ procedure SetAllowInflation(const b: boolean);
public
constructor Create;
procedure Clear;
procedure Push(const Value: Char);
property ItemIndex: Byte read FIndex;
+ property AllowInflation: Boolean read FAllowInflation write SetAllowInflation;
property Items[i: Byte]: Char read GetItem write SetItem; default;
property Full: Boolean read GetFull;
property OnFull: TLOnFull read FOnFull write FOnFull;
@@ -55,47 +58,80 @@ implementation
uses
lTelnet;
+
+(* The normal situation is that there are up to TL_CSLENGTH items on the stack. *)
+(* However this may be relaxed in cases (assumed to be rare) where subcommand *)
+(* parameters are being accumulated. *)
constructor TLControlStack.Create;
begin
FOnFull:=nil;
- FIndex:=0;
+ FIndex:=0; (* Next insertion point, [0] when empty *)
+ FAllowInflation := false;
SetLength(FItems, TL_CSLENGTH);
end;
function TLControlStack.GetFull: Boolean;
begin
- Result:=False;
- if FIndex >= TL_CSLENGTH then
- Result:=True;
+ Result:=False; (* It's full when it has a complete *)
+ if FIndex >= TL_CSLENGTH then (* command, irrespective of whether the *)
+ Result:=True; (* stack's inflated by a subcommand. *)
end;
function TLControlStack.GetItem(const i: Byte): Char;
begin
Result:=TS_NOP;
- if i < TL_CSLENGTH then
- Result:=FItems[i];
+ if not FAllowInflation then begin
+ if i < TL_CSLENGTH then
+ Result:=FItems[i]
+ end else
+ if i < Length(FItems) then
+ Result:=FItems[i]
end;
procedure TLControlStack.SetItem(const i: Byte; const Value: Char);
begin
- if i < TL_CSLENGTH then
- FItems[i]:=Value;
+ if not FAllowInflation then begin
+ if i < TL_CSLENGTH then
+ FItems[i]:=Value
+ end else begin
+ while i >= Length(FItems) do begin
+ SetLength(FItems, Length(FItems) + 1);
+ FItems[Length(FItems) - 1] := TS_NOP
+ end;
+ FItems[i] := Value
+ end
+end;
+
+procedure TLControlStack.SetAllowInflation(const b: boolean);
+
+begin
+ FAllowInflation := b;
+ if not b then (* No more funny stuff please *)
+ Clear
end;
procedure TLControlStack.Clear;
begin
FIndex:=0;
+ FAllowInflation := false;
+ SetLength(FItems, TL_CSLENGTH) (* In case inflation was allowed *)
end;
procedure TLControlStack.Push(const Value: Char);
begin
- if FIndex < TL_CSLENGTH then begin
- FItems[FIndex]:=Value;
- Inc(FIndex);
- if Full and Assigned(FOnFull) then
- FOnFull;
+ if not FAllowInflation then
+ if FIndex < TL_CSLENGTH then begin
+ FItems[FIndex]:=Value;
+ Inc(FIndex)
+ end else begin end
+ else begin
+ SetLength(FItems, Length(FItems) + 1);
+ FItems[Length(FItems) - 1] := Value;
+ FIndex := Length(FItems)
end;
+ if Full and Assigned(FOnFull) then
+ FOnFull;
end;
end.
diff --git a/utils/fppkg/lnet/lftp.pp b/utils/fppkg/lnet/lftp.pp
index bdd5c05c82..82a04fbdf8 100644
--- a/utils/fppkg/lnet/lftp.pp
+++ b/utils/fppkg/lnet/lftp.pp
@@ -106,7 +106,7 @@ type
TLFTPTelnetClient = class(TLTelnetClient)
protected
- procedure React(const Operation, Command: Char); override;
+ function React(const Operation, Command: Char):boolean; override;
end;
{ TLFTPClient }
@@ -368,8 +368,9 @@ end;
{ TLFTPTelnetClient }
-procedure TLFTPTelnetClient.React(const Operation, Command: Char);
+function TLFTPTelnetClient.React(const Operation, Command: Char):boolean;
begin
+ result:=false;
// don't do a FUCK since they broke Telnet in FTP as per-usual
end;
diff --git a/utils/fppkg/lnet/ltelnet.pp b/utils/fppkg/lnet/ltelnet.pp
index 190995d7b8..6ab7881d3a 100644
--- a/utils/fppkg/lnet/ltelnet.pp
+++ b/utils/fppkg/lnet/ltelnet.pp
@@ -27,7 +27,7 @@ unit lTelnet;
interface
uses
- Classes, lNet, lControlStack;
+ Classes, SysUtils, lNet, lControlStack;
const
// Telnet printer signals
@@ -72,9 +72,11 @@ type
TLSubcommandCallback= function(command: char; const parameters, defaultResponse: string): string;
TLSubcommandEntry= record
callback: TLSubcommandCallback;
- defaultResponse: string
+ defaultResponse: string;
+ requiredParams: integer
end;
TLSubcommandArray= array[#$00..#$ff] of TLSubcommandEntry;
+ EInsufficientSubcommandParameters= class(Exception);
{ TLTelnet }
@@ -117,7 +119,7 @@ type
procedure StackFull;
procedure DoubleIAC(var s: string);
function TelnetParse(const msg: string): Integer;
- procedure React(const Operation, Command: Char); virtual; abstract;
+ function React(const Operation, Command: Char): boolean; virtual; abstract;
procedure SendCommand(const Command: Char; const Value: Boolean); virtual; abstract;
procedure OnCs(aSocket: TLSocket);
@@ -136,7 +138,8 @@ type
procedure SetOption(const Option: Char);
procedure UnSetOption(const Option: Char);
- function RegisterSubcommand(aOption: char; callback: TLSubcommandCallback; const defaultResponse: string= ''): boolean;
+ function RegisterSubcommand(aOption: char; callback: TLSubcommandCallback;
+ const defaultResponse: string= ''; requiredParams: integer= 0): boolean;
procedure Disconnect(const Forced: Boolean = True); override;
@@ -164,7 +167,7 @@ type
procedure OnRe(aSocket: TLSocket);
procedure OnCo(aSocket: TLSocket);
- procedure React(const Operation, Command: Char); override;
+ function React(const Operation, Command: Char): boolean; override;
procedure SendCommand(const Command: Char; const Value: Boolean); override;
public
@@ -190,7 +193,9 @@ function LTelnetSubcommandCallback(command: char; const parameters, defaultRespo
implementation
uses
- SysUtils, Math;
+ Math;
+
+const subcommandEndLength= 2;
var
zz: Char;
@@ -306,8 +311,10 @@ begin
begin
FOutput.WriteByte(Byte(FStack[1]));
FOutput.WriteByte(Byte(FStack[2]));
- end else React(FStack[1], FStack[2]);
- FStack.Clear;
+ FStack.Clear
+ end else
+ if React(FStack[1], FStack[2]) then
+ FStack.Clear
end;
procedure TLTelnet.DoubleIAC(var s: string);
@@ -394,15 +401,22 @@ end;
(* If already set, the callback can be reverted to nil but it can't be changed *)
(* in a single step. The default response, if specified, is used by the *)
-(* LTelnetSubcommandCallback() function and is available to others. *)
+(* LTelnetSubcommandCallback() function and is available to others; the *)
+(* callback will not be invoked until there is at least the indicated number of *)
+(* parameter bytes available. *)
//
-function TLTelnet.RegisterSubcommand(aOption: char; callback: TLSubcommandCallback; const defaultResponse: string= ''): boolean;
+function TLTelnet.RegisterSubcommand(aOption: char; callback: TLSubcommandCallback;
+ const defaultResponse: string= ''; requiredParams: integer= 0): boolean;
begin
result := (not Assigned(FSubcommandCallbacks[aOption].callback)) or (@callback = nil);
if result then begin
FSubcommandCallbacks[aOption].callback := callback;
- FSubcommandCallbacks[aOption].defaultResponse := defaultResponse
+ FSubcommandCallbacks[aOption].defaultResponse := defaultResponse;
+ Inc(requiredParams, subcommandEndLength);
+ if requiredParams < 0 then (* Assume -subcommandEndLength is a *)
+ requiredParams := 0; (* valid parameter. *)
+ FSubcommandCallbacks[aOption].requiredParams := requiredParams;
end
end { TLTelnet.RegisterSubcommand } ;
@@ -464,7 +478,7 @@ begin
FOnConnect(aSocket);
end;
-procedure TLTelnetClient.React(const Operation, Command: Char);
+function TLTelnetClient.React(const Operation, Command: Char): boolean;
procedure Accept(const Operation, Command: Char);
begin
@@ -487,17 +501,28 @@ procedure TLTelnetClient.React(const Operation, Command: Char);
end;
(* Retrieve the parameters from the current instance, and pass them explicitly *)
-(* to the callback. *)
+(* to the callback. Return false if there are insufficient parameters on the *)
+(* stack. *)
//
- procedure subcommand(command: char);
+ function subcommand(command: char): boolean;
var parameters, response: string;
i: integer;
begin
- if FStack.ItemIndex > 5 then begin
- SetLength(parameters, FStack.ItemIndex - 5);
- Move(FStack[3], parameters[1], FStack.ItemIndex - 5);
+ FStack.AllowInflation := true; (* We might need more than the standard *)
+ if FStack.ItemIndex > 65536 then (* command, but protect against parse *)
+ {%H- 6018 } exit(true); (* failure which could be a DoS attack. *)
+ i := FStack.ItemIndex - TL_CSLENGTH; (* Number of parameter bytes available.*)
+ if i < FSubcommandCallbacks[command].requiredParams then
+ exit(false); (* Early insufficient-parameters decision *)
+ result := true;
+ if FStack.ItemIndex > TL_CSLENGTH then begin
+ SetLength(parameters, FStack.ItemIndex - TL_CSLENGTH );
+ Move(FStack[3], parameters[1], FStack.ItemIndex - TL_CSLENGTH );
+ if (Length(parameters) >= 2) and (parameters[Length(parameters)] = TS_IAC) and
+ (parameters[Length(parameters) - 1] <> TS_IAC) then
+ exit(false); (* Special case: need at least one more *)
i := 1;
while i <= Length(parameters) - 1 do (* Undouble IACs *)
if (parameters[i] = TS_IAC) and (parameters[i + 1] = TS_IAC) then
@@ -506,13 +531,27 @@ procedure TLTelnetClient.React(const Operation, Command: Char);
Inc(i)
end else
parameters := '';
- response := FSubcommandCallbacks[command].callback(command, parameters, FSubcommandCallbacks[command].defaultResponse);
+ if Length(parameters) < FSubcommandCallbacks[command].requiredParams then
+ exit(false); (* Insufficient params after IAC undouble *)
+ if (FSubcommandCallbacks[command].requiredParams >= subcommandEndLength) and
+ (Length(parameters) >= subcommandEndLength) then
+ SetLength(parameters, Length(parameters) - subcommandEndLength);
+ try
+ response := FSubcommandCallbacks[command].callback(command, parameters,
+ FSubcommandCallbacks[command].defaultResponse)
+ except
+ on e: EInsufficientSubcommandParameters do
+ Exit(false) (* Late insufficient-parameters decision *)
+ else
+ Raise (* Application-specific error *)
+ end;
DoubleIAC(response);
AddToBuffer(TS_IAC + TS_SB + command + response + TS_IAC + TS_SE);
OnCs(nil)
end { subcommand } ;
begin
+ result := true; (* Stack will normally be cleared *)
{$ifdef debug}
Writeln('**GOT** ', TNames[Operation], ' ', TNames[Command]);
{$endif}
@@ -529,7 +568,12 @@ begin
TS_SB : if not Assigned(FSubcommandCallbacks[command].callback) then
refuse(TS_WONT, command)
else
- subcommand(command)
+ result := subcommand(command)
+
+(* In the final case above, the stack will not be cleared if sufficient *)
+(* parameters to keep the subcommand happy have not yet been parsed out of the *)
+(* message. *)
+
end;
end;
@@ -559,7 +603,7 @@ end;
function TLTelnetClient.Get(out aData; const aSize: Integer; aSocket: TLSocket): Integer;
begin
- Result := FOutput.Read(aData, aSize);
+ Result := FOutput.Read(aData {%H- 5058 } , aSize);
if FOutput.Position = FOutput.Size then
FOutput.Clear;
end;
diff --git a/utils/fprcp/Makefile b/utils/fprcp/Makefile
index 94ec719f9d..c70bbf3e90 100644
--- a/utils/fprcp/Makefile
+++ b/utils/fprcp/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=fprcp
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/fprcp/Makefile.fpc b/utils/fprcp/Makefile.fpc
index 3413f8b1ca..63a68653f6 100644
--- a/utils/fprcp/Makefile.fpc
+++ b/utils/fprcp/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=fprcp
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/fprcp/fpmake.pp b/utils/fprcp/fpmake.pp
index eec968c89e..4c9caf456c 100644
--- a/utils/fprcp/fpmake.pp
+++ b/utils/fprcp/fpmake.pp
@@ -14,7 +14,8 @@ Var
begin
With Installer do
begin
- P:=AddPackage('fprcp');
+ P:=AddPackage('utils-fprcp');
+ P.ShortName:='fprcp';
P.Author := '<various>';
P.License := 'LGPL with modification';
@@ -26,7 +27,7 @@ begin
P.NeedLibC:= false;
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
T:=P.Targets.AddProgram('fprcp.pp');
T.Dependencies.AddUnit('comments');
diff --git a/utils/h2pas/Makefile b/utils/h2pas/Makefile
index 4f580a62f0..f4fd6aae61 100644
--- a/utils/h2pas/Makefile
+++ b/utils/h2pas/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=h2pas
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/h2pas/Makefile.fpc b/utils/h2pas/Makefile.fpc
index ac8ae40375..305dd95bf3 100644
--- a/utils/h2pas/Makefile.fpc
+++ b/utils/h2pas/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=h2pas
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/h2pas/fpmake.pp b/utils/h2pas/fpmake.pp
index 31db2b38a9..58dc11fc02 100644
--- a/utils/h2pas/fpmake.pp
+++ b/utils/h2pas/fpmake.pp
@@ -14,17 +14,18 @@ Var
begin
With Installer do
begin
- P:=AddPackage('h2pas');
+ P:=AddPackage('utils-h2pas');
+ P.ShortName:='h2pas';
P.Author := '<various>';
P.License := 'LGPL with modification';
P.HomepageURL := 'www.freepascal.org';
P.Email := '';
- P.Description := 'An utility to create Pascal header files from c header files.';
+ P.Description := 'A utility to create Pascal header files from c header files.';
P.NeedLibC:= false;
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Options.Add('-Sg');
diff --git a/utils/h2pas/h2pas.pas b/utils/h2pas/h2pas.pas
index 88a7ed4720..326c73be7c 100644
--- a/utils/h2pas/h2pas.pas
+++ b/utils/h2pas/h2pas.pas
@@ -4,7 +4,7 @@
(* global definitions: *)
program h2pas;
-
+{$H+}
(*
Copyright (c) 1998-2000 by Florian Klaempfl
@@ -9392,4 +9392,4 @@ begin
PTypeList.Free;
freedynlibproc.free;
loaddynlibproc.free;
-end. \ No newline at end of file
+end.
diff --git a/utils/h2pas/h2pas.y b/utils/h2pas/h2pas.y
index c9da9fdedd..d92329f621 100644
--- a/utils/h2pas/h2pas.y
+++ b/utils/h2pas/h2pas.y
@@ -1,6 +1,6 @@
%{
program h2pas;
-
+{$H+}
(*
Copyright (c) 1998-2000 by Florian Klaempfl
diff --git a/utils/h2pas/h2plexlib.pas b/utils/h2pas/h2plexlib.pas
index c104349bbd..f5977a199e 100644
--- a/utils/h2pas/h2plexlib.pas
+++ b/utils/h2pas/h2plexlib.pas
@@ -1,6 +1,5 @@
-
unit h2pLexLib;
-
+{$H+}
(* Standard Lex library unit for TP Lex Version 3.0.
2-11-91 AG *)
@@ -25,7 +24,8 @@ interface
(* Variables:
- The variable yytext contains the current match, yyleng its length.
+ The variable yytext contains the current match, yyleng(was removed because of
+ $H+) its length.
The variable yyline contains the current input line, and yylineno and
yycolno denote the current input position (line, column). These values
are often used in giving error diagnostics (however, they will only be
@@ -43,8 +43,6 @@ yyinput, yyoutput : Text; (* input and output file *)
yyline,yyprevline : String; (* current and previous input line *)
yylineno, yycolno : Integer; (* current input position *)
yytext : String; (* matched text (should be considered r/o) *)
-yyleng : Byte (* length of matched text *)
- absolute yytext;
(* I/O routines:
@@ -256,14 +254,14 @@ yysstate, yylstate : Integer;
yymatches : Integer;
yystack : array [1..max_matches] of Integer;
yypos : array [1..max_rules] of Integer;
-yysleng : Byte;
+yysleng : Longint;
(* Utilities: *)
procedure echo;
var i : Integer;
begin
- for i := 1 to yyleng do
+ for i := 1 to Length(yytext) do
put_char(yytext[i])
end(*echo*);
@@ -275,16 +273,16 @@ procedure yymore;
procedure yyless ( n : Integer );
var i : Integer;
begin
- for i := yyleng downto n+1 do
+ for i := Length(yytext) downto n+1 do
unget_char(yytext[i]);
- yyleng := n;
+ SetLength(yytext,n);
end(*yyless*);
procedure reject;
var i : Integer;
begin
yyreject := true;
- for i := yyleng+1 to yysleng do
+ for i := Length(yytext)+1 to yysleng do
yytext := yytext+get_char;
dec(yymatches);
end(*reject*);
@@ -333,16 +331,14 @@ procedure yynew;
procedure yyscan;
begin
- if yyleng=255 then fatal('yytext overflow');
yyactchar := get_char;
- inc(yyleng);
- yytext[yyleng] := yyactchar;
+ yytext:=yytext+yyactchar;
end(*yyscan*);
procedure yymark ( n : Integer );
begin
if n>max_rules then fatal('too many rules');
- yypos[n] := yyleng;
+ yypos[n] := Length(yytext);
end(*yymark*);
procedure yymatch ( n : Integer );
@@ -359,12 +355,12 @@ function yyfind ( var n : Integer ) : Boolean;
dec(yymatches);
if yymatches>0 then
begin
- yysleng := yyleng;
+ yysleng := Length(yytext);
n := yystack[yymatches];
yyless(yypos[n]);
yypos[n] := 0;
- if yyleng>0 then
- yylastchar := yytext[yyleng]
+ if Length(yytext)>0 then
+ yylastchar := yytext[Length(yytext)]
else
yylastchar := #0;
yyfind := true;
diff --git a/utils/h2pas/h2poptions.pas b/utils/h2pas/h2poptions.pas
index 3d8cda2121..3f78e2c064 100644
--- a/utils/h2pas/h2poptions.pas
+++ b/utils/h2pas/h2poptions.pas
@@ -16,7 +16,9 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
****************************************************************************}
+
unit h2poptions;
+{$H+}
interface
const
@@ -138,7 +140,7 @@ end;
Procedure ProcessOptions;
Var
- cp : string;
+ cp : string[255]; {because of cp[3] indexing}
I : longint;
Function GetNextParam (const Opt,Name : String) : string;
diff --git a/utils/h2pas/h2pyacclib.pas b/utils/h2pas/h2pyacclib.pas
index a9340a6214..eeb3cb398c 100644
--- a/utils/h2pas/h2pyacclib.pas
+++ b/utils/h2pas/h2pyacclib.pas
@@ -34,7 +34,7 @@ $History: YACCLIB.PAS $
{$I-}
-
+{$H+}
unit h2pYaccLib;
(* Yacc Library Unit for TP Yacc Version 3.0, 6-17-91 AG *)
diff --git a/utils/h2pas/scan.l b/utils/h2pas/scan.l
index 2b6ece4574..a6615b6005 100644
--- a/utils/h2pas/scan.l
+++ b/utils/h2pas/scan.l
@@ -20,6 +20,7 @@
unit scan;
+{$H+}
interface
diff --git a/utils/h2pas/scan.pas b/utils/h2pas/scan.pas
index d7105e449d..39a937640c 100644
--- a/utils/h2pas/scan.pas
+++ b/utils/h2pas/scan.pas
@@ -23,6 +23,7 @@
unit scan;
+{$H+}
interface
diff --git a/utils/importtl/Makefile b/utils/importtl/Makefile
index 637e44e445..1fe7fbf215 100644
--- a/utils/importtl/Makefile
+++ b/utils/importtl/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=importtl
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/importtl/Makefile.fpc b/utils/importtl/Makefile.fpc
index 6c404e4ba6..11620ad2ce 100644
--- a/utils/importtl/Makefile.fpc
+++ b/utils/importtl/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=importtl
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/importtl/fpmake.pp b/utils/importtl/fpmake.pp
index 2172ce1de7..320aa5afbd 100644
--- a/utils/importtl/fpmake.pp
+++ b/utils/importtl/fpmake.pp
@@ -14,7 +14,8 @@ Var
begin
With Installer do
begin
- P:=AddPackage('importtl');
+ P:=AddPackage('utils-importtl');
+ P.ShortName:='importttl';
P.Author := '<various>';
P.License := 'LGPL with modification';
@@ -27,7 +28,7 @@ begin
P.Dependencies.Add('fcl-registry');
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes:=[win32,win64];
diff --git a/utils/instantfpc/Makefile b/utils/instantfpc/Makefile
index b869ec1811..508543a3ae 100644
--- a/utils/instantfpc/Makefile
+++ b/utils/instantfpc/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=instantfpc
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/instantfpc/Makefile.fpc b/utils/instantfpc/Makefile.fpc
index 53abc062d2..f5ba3ef658 100644
--- a/utils/instantfpc/Makefile.fpc
+++ b/utils/instantfpc/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=instantfpc
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/instantfpc/Makefile.fpc.fpcmake b/utils/instantfpc/Makefile.fpc.fpcmake
index 98694f10ed..0a98328915 100644
--- a/utils/instantfpc/Makefile.fpc.fpcmake
+++ b/utils/instantfpc/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=instantfpc
-version=2.7.1
+version=3.1.1
[install]
fpcpackage=y
diff --git a/utils/instantfpc/fpmake.pp b/utils/instantfpc/fpmake.pp
index f4fd7fb334..5975eb5535 100644
--- a/utils/instantfpc/fpmake.pp
+++ b/utils/instantfpc/fpmake.pp
@@ -14,7 +14,8 @@ Var
begin
With Installer do
begin
- P:=AddPackage('instantfpc');
+ P:=AddPackage('utils-instantfpc');
+ P.ShortName:='instantfpc';
P.Author := '<various>';
P.License := 'LGPL with modification';
@@ -24,7 +25,7 @@ begin
P.NeedLibC:= false;
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('fcl-process');
P.Options.Add('-S2h');
diff --git a/utils/instantfpc/instantfptools.pas b/utils/instantfpc/instantfptools.pas
index 8cc17e0024..8852688c58 100644
--- a/utils/instantfpc/instantfptools.pas
+++ b/utils/instantfpc/instantfptools.pas
@@ -264,6 +264,7 @@ begin
Halt(1);
end;
until FindNext(FileInfo)<>0;
+ Findclose(FileInfo);
end;
if not RemoveDir(Directory) then begin
writeln('unable to delete directory "'+Directory+'"');
@@ -281,7 +282,7 @@ var
buf : Array[1..4096] of byte;
pid: SizeUInt;
BuildDir: String;
- BuildOutputFilename: String;
+ OutputFilenameExe, BuildOutputFilename: String;
procedure CleanUp;
begin
@@ -295,14 +296,15 @@ begin
Compiler:=GetCompiler;
pid:=GetProcessID;
BuildDir:='';
- BuildOutputFilename:=OutputFilename;
+ OutputFilenameExe:=OutputFilename {$IFDEF HASEXEEXT} + '.exe' {$ENDIF};
+ BuildOutputFilename:=OutputFilenameExe;
if pid>0 then begin
- BuildDir:=ExtractFilePath(OutputFilename)+'__tmp'+IntToStr(pid)+PathDelim;
- BuildOutputFilename:=BuildDir+ExtractFileName(OutputFilename);
+ BuildDir:=ExtractFilePath(OutputFilenameExe)+'__tmp'+IntToStr(pid)+PathDelim;
+ BuildOutputFilename:=BuildDir+ExtractFileName(OutputFilenameExe);
end;
//writeln('Compiler=',Compiler,' Params=',CompParams);
- if FileExists(OutputFilename) and not DeleteFile(OutputFilename) then begin
- writeln('unable to delete ',OutputFilename);
+ if FileExists(OutputFilenameExe) and not DeleteFile(OutputFilenameExe) then begin
+ writeln('unable to delete ',OutputFilenameExe);
Halt(1);
end;
if BuildDir<>'' then begin
@@ -337,8 +339,8 @@ begin
end;
if BuildDir<>'' then begin
// move from build directory to cache
- if not RenameFile(BuildOutputFilename,OutputFilename) then begin
- writeln('unable to move "',BuildOutputFilename,'" to "',OutputFilename,'"');
+ if not RenameFile(BuildOutputFilename,OutputFilenameExe) then begin
+ writeln('unable to move "',BuildOutputFilename,'" to "',OutputFilenameExe,'"');
Halt(1);
end;
end;
@@ -370,7 +372,7 @@ begin
end;
if OutputDirectory<>'' then
AddParam('-FU'+OutputDirectory,Result);
- AddParam('-o'+OutputFilename {$IFDEF HASEXEEXT} + '.exe' {$ENDIF},Result);
+ AddParam('-o'+OutputFilename,Result);
AddParam(SrcFilename,Result);
end;
diff --git a/utils/mkinsadd.pp b/utils/mkinsadd.pp
new file mode 100644
index 0000000000..4bec50ce71
--- /dev/null
+++ b/utils/mkinsadd.pp
@@ -0,0 +1,479 @@
+{$MODE FPC}
+{
+ This file is part of Free Pascal build tools
+ Copyright (c) 2014-2015 by Tomas Hajny, member of the FPC core team.
+
+ This program takes processes one or more listing files created with
+ fpmake (e.g. using 'fpmake pkglist --target=<FPC_target> -zp units-'
+ for unit packages or without the '-zp <prefix>' for utils), compares
+ them to the text-mode installer configuration file install.dat and
+ creates file install.add which provides information about packages
+ missing in install.dat in a form allowing copy&paste of individual
+ lines into install.dat.
+
+ If the original description of a certain package as found in fpmake.pp
+ is too long for install.dat, the maximum length is marked
+ in the respective line in install.add using a pipe character ('|').
+
+ 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 mkinsadd;
+
+uses
+ dos, objects;
+
+
+const
+ MaxTarget = 5;
+ TargetListShort: array [1..MaxTarget] of string [3] = ('dos', 'emx', 'os2', 'w32', 'src');
+ TargetListLong: array [1..MaxTarget] of string = ('dos', 'emx', 'os2', '.i386-win32', '.source');
+ DefDiffFN = 'install.add';
+ PackageStr = 'package=';
+ UnitsStr = 'units-';
+ ZipExt = '.zip';
+
+
+type
+ PPackageRec = ^TPackageRec;
+ TPackageRec = object (TObject)
+ Name, ShortName, Desc: PString;
+ Target: byte;
+ constructor Init (ALine: string);
+ function GetKeyStr: string;
+ function GetLine: string;
+ function GetSrcLine: string;
+ destructor Done; virtual;
+ end;
+
+ PPackageCollection = ^TPackageCollection;
+ TPackageCollection = object (TSortedCollection)
+ constructor Load (FN: string);
+ function LoadFile (FN: string; DupSrc: PPackageCollection): boolean;
+ function WriteFile (FN: string): boolean;
+ function Compare (Key1, Key2: pointer): sw_integer; virtual;
+ end;
+
+ PDatFile = ^TDatFile;
+ TDatFile = object (TObject)
+ DatCollection, LstCollection: PPackageCollection;
+ constructor LoadDat (FN: string);
+ function ReadLstFile (FN: string): boolean;
+ function WriteNew (FN: string): boolean;
+ destructor Done; virtual;
+ end;
+
+
+function LoCase (S: string): string;
+var
+ I: longint;
+begin
+ for I := 1 to Length (S) do
+ if S [I] in ['A'..'Z'] then
+ S [I] := char (Ord (S [I]) + 32);
+ LoCase := S;
+end;
+
+
+constructor TPackageRec.Init (ALine: string);
+var
+ I: longint;
+ J: byte;
+ N, SN, D, TS: string;
+ ALine2: string;
+begin
+ inherited Init;
+ N := '';
+ SN := '';
+ D := '';
+ TS := '';
+ ALine2 := LoCase (ALine);
+ if Copy (ALine2, 1, Length (PackageStr)) = PackageStr then
+ begin
+ Delete (ALine, 1, Length (PackageStr));
+ I := Pos ('[', ALine);
+ if I = 0 then
+ begin
+ I := Pos (',', ALine);
+ if I = 0 then
+ I := Succ (Length (ALine));
+ end
+ else
+ begin
+ SN := Copy (ALine, Succ (I), Pos (',', ALine) - I - 2);
+ Delete (ALine, I, Length (SN) + 2);
+ end;
+ N := Copy (ALine, 1, Pred (I));
+ if Length (N) <= 12 then
+ SN := N
+ else if (Copy (N, 1, Length (UnitsStr)) = UnitsStr) and
+ (Length (N) - Length (UnitsStr) <= 11) then
+ SN := 'u' + Copy (N, Succ (Length (UnitsStr)),
+ Length (N) - Length (UnitsStr));
+ D := Copy (ALine, Succ (I), Length (ALine) - I);
+ end;
+
+ Name := NewStr (N);
+ if SN <> '' then
+ ShortName := NewStr (SN)
+ else
+ ShortName := nil;
+ Desc := NewStr (D);
+ Target := 0;
+
+ if SN <> '' then
+ begin
+ TS := LoCase (Copy (SN, Length (SN) - Length (ZipExt) - 2, 3));
+ if Length (TS) <> 3 then
+ TS := ''
+ else
+ for J := 1 to MaxTarget do
+ if TS = TargetListShort [J] then
+ begin
+ Target := J;
+ Break;
+ end;
+ end
+ else
+ begin
+ I := Length (N) - Length (ZipExt);
+ while (I > 0) and (N [I] <> '.') do
+ Dec (I);
+ if I = 0 then
+ TS := LoCase (Copy (N, Length (SN) - Length (ZipExt) - 2, 3))
+ else
+ TS := LoCase (Copy (N, I, Length (N) - Length (ZipExt) - I + 1));
+ for J := 1 to MaxTarget do
+ if TS = TargetListLong [J] then
+ begin
+ Target := J;
+ Break;
+ end;
+ end;
+ if N = '' then
+ begin
+ WriteLn ('Err: Init failed (', ALine, ')!');
+ Fail;
+ end;
+end;
+
+
+destructor TPackageRec.Done;
+begin
+ DisposeStr (Name);
+ if ShortName <> nil then
+ DisposeStr (ShortName);
+ DisposeStr (Desc);
+ inherited Done;
+end;
+
+
+function TPackageRec.GetKeyStr: string;
+var
+ G: string;
+begin
+ if ShortName <> nil then
+ begin
+ if Target = 0 then
+ G := LoCase (Copy (ShortName^, 1, Length (ShortName^) - Length (ZipExt)))
+ else
+ G := LoCase (Copy (ShortName^, 1, Length (ShortName^) - Length (ZipExt) - 3));
+ end
+ else
+ begin
+ if Name = nil then
+ begin
+ GetKeyStr := '';
+ WriteLn ('Err - GetKeyStr (nil)!');
+ Exit;
+ end;
+ if Target = 0 then
+ G := LoCase (Copy (Name^, 1, Length (Name^) - Length (ZipExt)))
+ else
+ begin
+ if Copy (LoCase (Name^), 1, Length (UnitsStr)) = UnitsStr then
+ G := 'u' + LoCase (Copy (Name^, Succ (Length (UnitsStr)),
+ Length (Name^) - Length (UnitsStr) - Length (TargetListLong [Target])
+ - Length (ZipExt)))
+ else
+ G := LoCase (Copy (Name^, 1,
+ Length (Name^) - Length (TargetListLong [Target]) - Length (ZipExt)));
+ end;
+ end;
+
+ G := G + '.';
+ if Target <> 0 then
+ G := G + TargetListShort [Target];
+ GetKeyStr := G;
+end;
+
+
+function TPackageRec.GetLine: string;
+var
+ G: string;
+begin
+ G := PackageStr + Name^;
+ if ShortName <> nil then
+ G := G + '[' + ShortName^ + ']';
+ if Length (Desc^) <= 45 then
+ G := G + ',' + Desc^
+ else
+ G := G + ',' + Copy (Desc^, 1, 45) + '|' +
+ Copy (Desc^, 46, Length (Desc^) - 45);
+ GetLine := G;
+end;
+
+
+function TPackageRec.GetSrcLine: string;
+var
+ GS: string;
+begin
+ if Target = 0 then
+ GS := ''
+ else
+ begin
+ GS := PackageStr + Copy (Name^, 1,
+ Length (Name^) - Length (TargetListLong [Target]) - Length (ZipExt)) +
+ TargetListLong [MaxTarget] + ZipExt;
+ if ShortName <> nil then
+ GS := GS + '[' + Copy (ShortName^, 1, Length (ShortName^)
+ - Length (TargetListShort [Target]) - Length (ZipExt)) +
+ TargetListShort [MaxTarget] + ZipExt + ']';
+ GS := GS + ',' + Desc^;
+ end;
+ GetSrcLine := GS;
+end;
+
+
+constructor TDatFile.LoadDat (FN: string);
+begin
+ Init;
+ New (DatCollection, Load (FN));
+ New (LstCollection, Init (100, 50)); (* false? *)
+end;
+
+
+function TDatFile.ReadLstFile (FN: string): boolean;
+begin
+ ReadLstFile := LstCollection^.LoadFile (FN, DatCollection);
+end;
+
+
+function TDatFile.WriteNew (FN: string): boolean;
+begin
+ WriteNew := LstCollection^.WriteFile (FN);
+end;
+
+
+destructor TDatFile.Done;
+begin
+ Dispose (DatCollection, Done);
+ Dispose (LstCollection, Done);
+ inherited Done;
+end;
+
+
+constructor TPackageCollection.Load (FN: string);
+begin
+ Init (100, 50);
+ if not (LoadFile (FN, nil)) then
+ Fail;
+end;
+
+
+function TPackageCollection.LoadFile (FN: string; DupSrc: PPackageCollection): boolean;
+var
+ F: text;
+ S: ansistring;
+ S2: string;
+ P, Q: PPackageRec;
+ I: SW_Integer;
+begin
+{$I-}
+ Assign (F, FN);
+ Reset (F);
+ while not (Eof (F)) {and (LastErr = 0)} do
+ begin
+ S := '';
+ ReadLn (F, S);
+ if (Length (S) > 255) then
+ begin
+ WriteLn ('Error: Line too long!');
+ WriteLn (S);
+ Halt (255); (* Change error handling *)
+ end;
+ if Copy (LoCase (S), 1, Length (PackageStr)) = PackageStr then
+ begin
+ New (P, Init (S));
+ if DupSrc = nil then
+ S2 := ''
+ else
+ S2 := P^.GetSrcLine;
+ if (DupSrc = nil) or not (DupSrc^.Search (P, I)) then
+ Insert (P)
+ else
+ Dispose (P, Done);
+ if S2 <> '' then
+ begin
+ New (Q, Init (S2));
+ if (Q <> nil) and not (Search (Q, I)) and
+ ((DupSrc = nil) or not (DupSrc^.Search (Q, I))) then
+ Insert (Q)
+ else
+ Dispose (Q, Done);
+ end;
+ end;
+ end;
+ Close (F);
+ LoadFile := IOResult = 0;
+{
+ if P = nil then Fail else
+ begin
+ if P^.LastErr <> 0 then
+ begin
+ Dispose (P, Done);
+ Fail;
+ end else
+ begin
+ P^.ReadIni (@Self);
+ Dispose (P, Done);
+ end;
+ end;
+}
+end;
+
+
+function TPackageCollection.WriteFile (FN: string): boolean;
+var
+ F: text;
+ S: string;
+ P: PPackageRec;
+ I: SW_Integer;
+ J: byte;
+begin
+ Assign (F, FN);
+ Rewrite (F);
+ for J := 0 to MaxTarget do
+ for I := 0 to Count - 1 do
+ begin
+ P := At (I);
+ if (P <> nil) and (P^.Target = J) then
+ begin
+{ Write (P^.Name^, '|');
+ if P^.ShortName <> nil then
+ Write (P^.ShortName^, '|')
+ else
+ Write ('x|');
+ WriteLn (P^.Desc^, '|', P^.Target);
+ WriteLn (P^.GetKeyStr);
+}
+ S := P^.GetLine;
+(* Signalize too long description *)
+ WriteLn (F, S);
+ end;
+ end;
+ Close (F);
+ WriteFile := IOResult = 0;
+end;
+
+
+function TPackageCollection.Compare (Key1, Key2: pointer): SW_Integer;
+var
+ S1, S2: string;
+begin
+ S1 := LoCase (PPackageRec (Key1)^.GetKeyStr);
+ S2 := LoCase (PPackageRec (Key2)^.GetKeyStr);
+ if S1 < S2 then
+ Compare := -1
+ else if S1 > S2 then
+ Compare := 1
+ else
+ Compare := 0;
+end;
+
+
+function Base (const S: string): string;
+var
+ D: DirStr;
+ N: NameStr;
+ E: ExtStr;
+begin
+ FSplit (S, D, N, E);
+ Base := N;
+end;
+
+
+procedure Error (const S: string; B: byte);
+begin
+ WriteLn;
+ WriteLn ('Error: ', S, '!!');
+ Halt (B);
+end;
+
+
+procedure Syntax;
+begin
+ WriteLn;
+ WriteLn ('Syntax: ', Base (ParamStr (0)),
+ ' <path_to_install.dat> <LstFile1> [<LstFile2>...]');
+ WriteLn;
+ WriteLn ('<LstFileN> files are expected to be in the format produced by fpmake');
+ WriteLn ('(e.g. using ''fpmake pkglist --target=<FPC_target> -zp units-''');
+ WriteLn ('for unit packages or without the ''-zp <prefix>'' parameter for utils).');
+ WriteLn;
+ WriteLn ('Program compares their content to the list of packages in the text-mode');
+ WriteLn ('installer configuration file install.dat and creates file install.add');
+ WriteLn ('with information about packages missing in install.dat in a form allowing');
+ WriteLn ('copy&paste of individual lines into install.dat.');
+ WriteLn;
+ WriteLn ('If the original description of a certain package as found in fpmake.pp is');
+ WriteLn ('too long for install.dat, the maximum length is marked in the respective line');
+ WriteLn ('in install.add using a pipe character (''|'') to give hint for manual editing.');
+ Halt;
+end;
+
+var
+ I, J: byte;
+ DAT: TDatFile;
+ PrevCount: SW_Integer;
+
+begin
+ J := ParamCount;
+ if J < 2 then
+ begin
+ WriteLn;
+ WriteLn ('Error: Too few parameters!!');
+ Syntax;
+ end;
+ DAT.LoadDat (ParamStr (1));
+ if DAT.DatCollection <> nil then
+ WriteLn (LineEnding +
+ 'Source install.dat file (', ParamStr (1), ') loaded correctly: ',
+ DAT.DatCollection^.Count, ' records')
+ else
+ Error ('Failure while loading source install.dat file (' + ParamStr (1) +
+ ')', 1);
+ for I := 2 to J do
+ begin
+ PrevCount := DAT.LstCollection^.Count;
+ if DAT.ReadLstFile (ParamStr (I)) then
+ WriteLn ('Package listing #', Pred (I), ' (', ParamStr (I),
+ ') loaded correctly: ', DAT.LstCollection^.Count - PrevCount,
+ ' new records')
+ else
+ Error ('Failure while loading package listing (' + ParamStr (I) + ')', I);
+ end;
+ WriteLn ('Total: ', DAT.LstCollection^.Count, ' new records');
+ if DAT.WriteNew (DefDiffFN) then
+ WriteLn ('Output file (' + DefDiffFN + ') created successfully.')
+ else
+ Error ('Failure while trying to write records to the output file (' +
+ DefDiffFN + ')', Succ (J));
+ DAT.Done;
+end.
diff --git a/utils/mksymbian/Makefile b/utils/mksymbian/Makefile
index a2909fb0e5..91c60bc721 100644
--- a/utils/mksymbian/Makefile
+++ b/utils/mksymbian/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=mksymbian
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/mksymbian/Makefile.fpc b/utils/mksymbian/Makefile.fpc
index ab19f0a6f1..9600aabe5c 100644
--- a/utils/mksymbian/Makefile.fpc
+++ b/utils/mksymbian/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=mksymbian
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/pas2fpm/Makefile b/utils/pas2fpm/Makefile
index 00b260b227..1428b476b7 100644
--- a/utils/pas2fpm/Makefile
+++ b/utils/pas2fpm/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=pas2fpm
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/pas2fpm/Makefile.fpc b/utils/pas2fpm/Makefile.fpc
index b1b45a9d63..dbda41cbd5 100644
--- a/utils/pas2fpm/Makefile.fpc
+++ b/utils/pas2fpm/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=pas2fpm
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/pas2fpm/Makefile.fpc.fpcmake b/utils/pas2fpm/Makefile.fpc.fpcmake
index fa0aeb39c2..5a1a7ae3dd 100644
--- a/utils/pas2fpm/Makefile.fpc.fpcmake
+++ b/utils/pas2fpm/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=pas2fpm
-version=2.7.1
+version=3.1.1
[require]
packages=fcl-passrc fcl-base
diff --git a/utils/pas2fpm/fpmake.pp b/utils/pas2fpm/fpmake.pp
index b9b82605dc..b3dd62759f 100644
--- a/utils/pas2fpm/fpmake.pp
+++ b/utils/pas2fpm/fpmake.pp
@@ -14,7 +14,8 @@ Var
begin
With Installer do
begin
- P:=AddPackage('pas2fpm');
+ P:=AddPackage('utils-pas2fpm');
+ p.ShortName:='p2fm';
P.Author := 'Free Pascal Team';
P.License := 'LGPL with modification';
@@ -24,7 +25,7 @@ begin
P.NeedLibC:= false;
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('fcl-base');
P.Dependencies.Add('fcl-passrc');
diff --git a/utils/pas2jni/Makefile b/utils/pas2jni/Makefile
index 7643b60d4a..b0aa647f03 100644
--- a/utils/pas2jni/Makefile
+++ b/utils/pas2jni/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=pas2jni
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/pas2jni/Makefile.fpc b/utils/pas2jni/Makefile.fpc
index 53bf5aba50..8759deb19d 100644
--- a/utils/pas2jni/Makefile.fpc
+++ b/utils/pas2jni/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=pas2jni
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/pas2jni/def.pas b/utils/pas2jni/def.pas
index bf1997cca0..8edde31b3b 100644
--- a/utils/pas2jni/def.pas
+++ b/utils/pas2jni/def.pas
@@ -138,7 +138,6 @@ type
public
VarOpt: TVarOptions;
VarType: TDef;
- IndexType: TDef;
constructor Create; override;
procedure ResolveDefs; override;
function IsReplacedBy(d: TReplDef): boolean; override;
diff --git a/utils/pas2jni/fpmake.pp b/utils/pas2jni/fpmake.pp
index fab14a32c1..d602495395 100644
--- a/utils/pas2jni/fpmake.pp
+++ b/utils/pas2jni/fpmake.pp
@@ -14,7 +14,8 @@ Var
begin
With Installer do
begin
- P:=AddPackage('pas2jni');
+ P:=AddPackage('utils-pas2jni');
+ P.ShortName:='p2jn';
P.Author := 'Yury Sidorov';
P.License := 'LGPL with modification';
@@ -24,7 +25,7 @@ begin
P.NeedLibC:= false;
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('fcl-base');
P.Dependencies.Add('fcl-process');
P.Dependencies.Add('fcl-json');
diff --git a/utils/pas2jni/ppuparser.pas b/utils/pas2jni/ppuparser.pas
index 73af9334fc..a8922d63f7 100644
--- a/utils/pas2jni/ppuparser.pas
+++ b/utils/pas2jni/ppuparser.pas
@@ -42,6 +42,7 @@ type
public
SearchPath: TStringList;
Units: TDef;
+ OnExceptionProc: TProcDef;
constructor Create(const ASearchPath: string);
destructor Destroy; override;
@@ -56,6 +57,9 @@ implementation
uses process, pipes, fpjson, jsonparser;
+const
+ OnExceptionProcName = 'JNI_OnException';
+
type
TCharSet = set of char;
@@ -424,7 +428,7 @@ var
else
continue;
- if CurObjName = '' then begin
+ if (CurObjName = '') and (d.DefType <> dtEnum) then begin
d.Free;
continue;
end;
@@ -481,9 +485,6 @@ var
if s = 'overload' then
ProcOpt:=ProcOpt + [poOverload]
else
- if s = 'overload' then
- ProcOpt:=ProcOpt + [poMethodPtr]
- else
if s = 'abstract' then
TClassDef(Parent).HasAbstractMethods:=True;
end;
@@ -498,6 +499,9 @@ var
Name:='Int';
_ReadDefs(d, it, 'Params');
+ // Check for user exception handler proc
+ if AMainUnit and (Parent = CurUnit) and (OnExceptionProc = nil) and (AnsiCompareText(Name, OnExceptionProcName) = 0) then
+ OnExceptionProc:=TProcDef(d);
end;
dtVar, dtField, dtParam:
with TVarDef(d) do begin
@@ -520,9 +524,7 @@ var
if it.Get('Setter', TJSONObject(nil)) <> nil then
VarOpt:=VarOpt + [voWrite];
- arr:=it.Get('Params', TJSONArray(nil));
- if (arr <> nil) and (arr.Count = 1) then
- IndexType:=_GetRef(arr.Objects[0].Objects['VarType']);
+ _ReadDefs(d, it, 'Params');
end;
dtEnum:
_ReadDefs(d, it, 'Elements');
@@ -532,6 +534,8 @@ var
Base:=it.Integers['Base'];
ElMax:=it.Integers['Max'];
ElType:=TTypeDef(_GetRef(it.Objects['ElType'], TTypeDef));
+ if (ElType <> nil) and (ElType.Name = '') then
+ ElType.Name:=CurObjName + 'El';
end;
dtConst:
with TConstDef(d) do begin
diff --git a/utils/pas2jni/readme.txt b/utils/pas2jni/readme.txt
index c12ca399ef..4aee73ba19 100644
--- a/utils/pas2jni/readme.txt
+++ b/utils/pas2jni/readme.txt
@@ -1,9 +1,11 @@
pas2jni - JNI bridge generator for Pascal.
-Copyright (c) 2013 by Yury Sidorov.
+Copyright (c) 2013-2015 by Yury Sidorov.
The pas2jni utility generates a JNI (Java Native Interface) bridge for a Pascal code. Then the Pascal code (including classes and other advanced features) can be easily used in Java programs.
+The pas2jni wiki page is available here: http://wiki.freepascal.org/pas2jni
+
For example you can do the following in Java:
import pas.classes.*;
@@ -26,10 +28,16 @@ The following Pascal features are supported by pas2jni:
- property;
- constant;
- enum;
+- set;
- TGuid type;
- pointer type;
- string types;
- all numeric types;
+- method pointer.
+
+USUPPORTED features:
+- array;
+- procedure pointer.
Shared libraries, generated by pas2jni were tested with Java on Windows and Android. It should work on other systems as well.
@@ -45,12 +53,66 @@ pas2jni myunit -U/path/to/my/units;/path/to/FPC/units/*
Here you specify myunit as the main unit and provide path to your compiled units and FPC compiled units.
-After successfull run of pas2jni you will get the following output files:
+After successful run of pas2jni you will get the following output files:
- file "myunitjni.pas" - a generated library unit to be compiled to a shared library. It will contain all your Pascal code to be used from Java.
- folder "pas" - generated Java package "pas" to be used in your Java program. Interface to each Pascal unit is placed to a separate Java public class.
Note: You need to use ppudump of the same version as the FPC compiler. Use the -D switch to specify correct ppudump if it is not in PATH.
+CUSTOM HANDLERS
+
+It is possible to define the following custom handlers in your Pascal code.
+
+procedure JNI_OnException;
+ - is called when an unhandled Pascal exception occurs. For example, you can log a stack back trace in this handler.
+
+Custom handlers must be public and defined in one of the main units specified when calling pas2jni.
+
+CODING TIPS
+
+* Setting handlers (method pointers) in a Java code.
+
+For example there is the following event handler in your Pascal code:
+
+TMyClass = class
+...
+ property OnChange: TNotifyEvent;
+...
+end;
+
+In a Java code you get the following TMyClass instance:
+
+TMyClass myclass = TMyClass.Create();
+
+It is possible set a Java handler in 2 ways:
+
+1) Place the handler inline.
+
+...
+ myclass.setOnChange(
+ new TNotifyEvent() {
+ protected void Execute(TObject Sender) {
+ // The handler code
+ }
+ }
+ );
+...
+
+2) Define the handler as a method in a class.
+
+public class MyJavaClass {
+ private void DoOnChange(TObject Sender) {
+ // The handler code
+ }
+
+ public void main() {
+ ...
+ // Set the handler to the method with the "DoOnChange" name in the current class (this).
+ myclass.setOnChange( new TNotifyEvent(this, "DoOnChange") );
+ ...
+ }
+}
+
COMMAND LINE OPTIONS
Usage: pas2jni [options] <unit> [<unit2> <unit3> ...]
diff --git a/utils/pas2jni/writer.pas b/utils/pas2jni/writer.pas
index 326e2810c3..c3e1e1f97b 100644
--- a/utils/pas2jni/writer.pas
+++ b/utils/pas2jni/writer.pas
@@ -793,10 +793,16 @@ begin
s:='__objvar.';
end;
s:=s + Variable.Name;
- if Variable.IndexType <> nil then begin
+ if Variable.Count > 0 then begin
ASSERT(Count >= 1);
- i:=1;
- s:=Format('%s[%s]', [s, JniToPasType(TVarDef(Items[0]).VarType, Items[0].Name, False)]);
+ i:=Variable.Count;
+ ss:='';
+ for j:=0 to Variable.Count - 1 do begin
+ if ss <> '' then
+ ss:=ss + ', ';
+ ss:=ss + JniToPasType(TVarDef(Items[j]).VarType, Items[j].Name, False);
+ end;
+ s:=Format('%s[%s]', [s, ss]);
end
else
i:=0;
@@ -899,8 +905,10 @@ end;
procedure TWriter.WriteVar(d: TVarDef; AParent: TDef);
var
pd: TProcDef;
+ vd: TVarDef;
t: TTypeDef;
s: string;
+ i: integer;
begin
if not d.IsUsed then
exit;
@@ -914,7 +922,7 @@ begin
s:='';
end;
s:=Trim(s + ' ' + d.Name);
- if d.IndexType <> nil then
+ if d.Count > 0 then
s:=s + '[]';
Fjs.WriteLn(Format('// %s: %s', [s, d.VarType.Name]));
end;
@@ -927,13 +935,16 @@ begin
pd.ProcType:=ptFunction;
pd.Name:='get' + d.Name;
pd.ReturnType:=d.VarType;
- if d.IndexType <> nil then
- with TVarDef.Create(pd, dtParam) do begin
- Name:='_Index';
- AliasName:='Index';
- VarType:=d.IndexType;
- VarOpt:=[voRead];
+ if d.DefType = dtProp then begin
+ for i:=0 to d.Count - 1 do begin
+ vd:=TVarDef(d.Items[i]);
+ with TVarDef.Create(pd, dtParam) do begin
+ Name:=vd.Name;
+ VarType:=vd.VarType;
+ VarOpt:=[voRead];
+ end;
end;
+ end;
WriteProc(pd, d, AParent);
finally
pd.Free;
@@ -947,16 +958,33 @@ begin
pd.Parent:=d.Parent;
pd.ProcType:=ptProcedure;
pd.Name:='set' + d.Name;
- if d.IndexType <> nil then
- with TVarDef.Create(pd, dtParam) do begin
- Name:='_Index';
- AliasName:='Index';
- VarType:=d.IndexType;
- VarOpt:=[voRead];
+
+ s:='Value';
+ if d.DefType = dtProp then begin
+ for i:=0 to d.Count - 1 do begin
+ vd:=TVarDef(d.Items[i]);
+ with TVarDef.Create(pd, dtParam) do begin
+ Name:=vd.Name;
+ VarType:=vd.VarType;
+ VarOpt:=[voRead];
+ end;
+ end;
+
+ // Check if the name of value parameter is unique
+ i:=0;
+ while i < d.Count do begin
+ if AnsiCompareText(s, d.Items[i].Name) = 0 then begin
+ i:=0;
+ s:='_' + s;
+ continue;
+ end;
+ Inc(i);
end;
+ end;
+
with TVarDef.Create(pd, dtParam) do begin
- Name:='_Value';
- AliasName:='Value';
+ Name:='_' + s;
+ AliasName:=s;
VarType:=d.VarType;
VarOpt:=[voRead];
end;
@@ -1046,7 +1074,7 @@ procedure TWriter.WriteProcType(d: TProcDef; PreInfo: boolean);
var
vd: TVarDef;
i: integer;
- s, ss: string;
+ s, ss, hclass: string;
err: boolean;
begin
if not d.IsUsed or not (poMethodPtr in d.ProcOpt) then
@@ -1056,21 +1084,14 @@ begin
WriteClassInfoVar(d);
// Handler proc
+ hclass:=GetClassPrefix(d) + 'Class';
Fps.WriteLn;
- vd:=TVarDef.Create(nil, dtParam);
- try
- vd.Name:='_data';
- vd.VarType:=TTypeDef.Create(nil, dtType);
- with TTypeDef(vd.VarType) do begin
- Name:='pointer';
- BasicType:=btPointer;
- end;
- d.Insert(0, vd);
- Fps.WriteLn(GetProcDeclaration(d, Format('%sHandler', [GetClassPrefix(d)]), True) + ';');
- finally
- vd.VarType.Free;
- vd.Free;
- end;
+ Fps.WriteLn(Format('type %s = class', [hclass]));
+ Fps.WriteLn(Format('private %s;', [ GetProcDeclaration(d, 'Handler', True)]), 1);
+ Fps.WriteLn('end;');
+ Fps.WriteLn;
+ Fps.WriteLn(GetProcDeclaration(d, Format('%s.Handler', [hclass]), True) + ';');
+
Fps.WriteLn('var');
Fps.IncI;
Fps.WriteLn('_env: PJNIEnv;');
@@ -1090,7 +1111,7 @@ begin
Fps.WriteLn('CurJavaVM^^.GetEnv(CurJavaVM, @_env, JNI_VERSION_1_6);');
Fps.WriteLn('_MethodPointersCS.Enter;');
Fps.WriteLn('try');
- Fps.WriteLn('_mpi:=_TMethodPtrInfo(_MethodPointers[-integer(ptruint(_data)) - 1]);', 1);
+ Fps.WriteLn('_mpi:=_TMethodPtrInfo(_MethodPointers[-integer(ptruint(Self)) - 1]);', 1);
Fps.WriteLn('finally');
Fps.WriteLn('_MethodPointersCS.Leave;', 1);
Fps.WriteLn('end;');
@@ -1162,7 +1183,7 @@ begin
Fps.WriteLn('else');
Fps.WriteLn('with TMethod(Result) do begin', 1);
Fps.WriteLn('Data:=pointer(ptruint(-integer(mpi.Index)));', 2);
- Fps.WriteLn(Format('Code:=@%sHandler;', [GetClassPrefix(d)]), 2);
+ Fps.WriteLn(Format('Code:=@%s.Handler;', [hclass]), 2);
Fps.WriteLn('end;', 1);
Fps.DecI;
Fps.WriteLn('end;');
@@ -1222,6 +1243,36 @@ begin
end;
procedure TWriter.WriteUnit(u: TUnitDef);
+
+ procedure _ExcludeClasses(AAncestorClass: TClassDef);
+ var
+ i: integer;
+ d: TDef;
+ s: string;
+ excl: boolean;
+ begin
+ for i:=0 to u.Count - 1 do begin
+ d:=u[i];
+ if d.DefType = dtClass then begin
+ s:=u.Name + '.' + d.Name;
+ if AAncestorClass = nil then begin
+ excl:=DoCheckItem(s) = crExclude;
+ if not excl then
+ with TClassDef(d).AncestorClass do
+ excl:=DoCheckItem(Parent.Name + '.' + Name) = crExclude;
+ end
+ else
+ excl:=TClassDef(d).AncestorClass = AAncestorClass;
+
+ if excl then begin
+ d.SetNotUsed;
+ ExcludeList.Add(s);
+ _ExcludeClasses(TClassDef(d));
+ end;
+ end;
+ end;
+ end;
+
var
d: TDef;
i: integer;
@@ -1234,6 +1285,9 @@ begin
if not u.IsUsed then
exit;
+ if AnsiCompareText(u.Name, 'system') <> 0 then
+ _ExcludeClasses(nil);
+
for i:=0 to High(u.UsedUnits) do
WriteUnit(u.UsedUnits[i]);
@@ -2067,6 +2121,10 @@ begin
Fps.WriteLn;
Fps.WriteLn('procedure _HandleJNIException(env: PJNIEnv);');
Fps.WriteLn('begin');
+ if p.OnExceptionProc <> nil then begin
+ Fps.WriteLn(Format('%s.%s;', [p.OnExceptionProc.Parent.Name, p.OnExceptionProc.Name]), 1);
+ p.OnExceptionProc.SetNotUsed;
+ end;
Fps.WriteLn('env^^.ThrowNew(env, env^^.FindClass(env, ''java/lang/Exception''), PAnsiChar(Utf8Encode(Exception(ExceptObject).Message)));', 1);
Fps.WriteLn('end;');
diff --git a/utils/pas2js/Makefile b/utils/pas2js/Makefile
index bda117fb94..6a6f87e340 100644
--- a/utils/pas2js/Makefile
+++ b/utils/pas2js/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=pas2js
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -968,7 +985,7 @@ else
TAROPT=vz
TAREXT=.tar.gz
endif
-override REQUIRE_PACKAGES=rtl pastojs fcl-js fcl-passrc
+override REQUIRE_PACKAGES=rtl fpmkunit
ifeq ($(FULL_TARGET),i386-linux)
REQUIRE_PACKAGES_RTL=1
REQUIRE_PACKAGES_PASZLIB=1
@@ -976,9 +993,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-go32v2)
REQUIRE_PACKAGES_RTL=1
@@ -987,9 +1001,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-win32)
REQUIRE_PACKAGES_RTL=1
@@ -998,9 +1009,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-os2)
REQUIRE_PACKAGES_RTL=1
@@ -1009,9 +1017,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-freebsd)
REQUIRE_PACKAGES_RTL=1
@@ -1020,9 +1025,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-beos)
REQUIRE_PACKAGES_RTL=1
@@ -1031,9 +1033,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-haiku)
REQUIRE_PACKAGES_RTL=1
@@ -1042,9 +1041,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-netbsd)
REQUIRE_PACKAGES_RTL=1
@@ -1053,9 +1049,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-solaris)
REQUIRE_PACKAGES_RTL=1
@@ -1064,9 +1057,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-qnx)
REQUIRE_PACKAGES_RTL=1
@@ -1075,9 +1065,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-netware)
REQUIRE_PACKAGES_RTL=1
@@ -1086,9 +1073,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-openbsd)
REQUIRE_PACKAGES_RTL=1
@@ -1097,9 +1081,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-wdosx)
REQUIRE_PACKAGES_RTL=1
@@ -1108,9 +1089,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-darwin)
REQUIRE_PACKAGES_RTL=1
@@ -1119,9 +1097,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-emx)
REQUIRE_PACKAGES_RTL=1
@@ -1130,9 +1105,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-watcom)
REQUIRE_PACKAGES_RTL=1
@@ -1141,9 +1113,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-netwlibc)
REQUIRE_PACKAGES_RTL=1
@@ -1152,9 +1121,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-wince)
REQUIRE_PACKAGES_RTL=1
@@ -1163,9 +1129,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1174,9 +1137,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-symbian)
REQUIRE_PACKAGES_RTL=1
@@ -1185,9 +1145,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-nativent)
REQUIRE_PACKAGES_RTL=1
@@ -1196,9 +1153,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-iphonesim)
REQUIRE_PACKAGES_RTL=1
@@ -1207,9 +1161,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i386-android)
REQUIRE_PACKAGES_RTL=1
@@ -1218,9 +1169,14 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=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
@@ -1229,9 +1185,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),m68k-freebsd)
REQUIRE_PACKAGES_RTL=1
@@ -1240,9 +1193,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),m68k-netbsd)
REQUIRE_PACKAGES_RTL=1
@@ -1251,9 +1201,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),m68k-amiga)
REQUIRE_PACKAGES_RTL=1
@@ -1262,9 +1209,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),m68k-atari)
REQUIRE_PACKAGES_RTL=1
@@ -1273,9 +1217,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),m68k-openbsd)
REQUIRE_PACKAGES_RTL=1
@@ -1284,9 +1225,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),m68k-palmos)
REQUIRE_PACKAGES_RTL=1
@@ -1295,9 +1233,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),m68k-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1306,9 +1241,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),powerpc-linux)
REQUIRE_PACKAGES_RTL=1
@@ -1317,9 +1249,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),powerpc-netbsd)
REQUIRE_PACKAGES_RTL=1
@@ -1328,9 +1257,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),powerpc-amiga)
REQUIRE_PACKAGES_RTL=1
@@ -1339,9 +1265,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),powerpc-macos)
REQUIRE_PACKAGES_RTL=1
@@ -1350,9 +1273,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),powerpc-darwin)
REQUIRE_PACKAGES_RTL=1
@@ -1361,9 +1281,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),powerpc-morphos)
REQUIRE_PACKAGES_RTL=1
@@ -1372,9 +1289,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),powerpc-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1383,9 +1297,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),powerpc-wii)
REQUIRE_PACKAGES_RTL=1
@@ -1394,9 +1305,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),powerpc-aix)
REQUIRE_PACKAGES_RTL=1
@@ -1405,9 +1313,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),sparc-linux)
REQUIRE_PACKAGES_RTL=1
@@ -1416,9 +1321,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),sparc-netbsd)
REQUIRE_PACKAGES_RTL=1
@@ -1427,9 +1329,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),sparc-solaris)
REQUIRE_PACKAGES_RTL=1
@@ -1438,9 +1337,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),sparc-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1449,9 +1345,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),x86_64-linux)
REQUIRE_PACKAGES_RTL=1
@@ -1460,9 +1353,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),x86_64-freebsd)
REQUIRE_PACKAGES_RTL=1
@@ -1471,9 +1361,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),x86_64-netbsd)
REQUIRE_PACKAGES_RTL=1
@@ -1482,9 +1369,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),x86_64-solaris)
REQUIRE_PACKAGES_RTL=1
@@ -1493,9 +1377,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),x86_64-openbsd)
REQUIRE_PACKAGES_RTL=1
@@ -1504,9 +1385,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),x86_64-darwin)
REQUIRE_PACKAGES_RTL=1
@@ -1515,9 +1393,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),x86_64-win64)
REQUIRE_PACKAGES_RTL=1
@@ -1526,9 +1401,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),x86_64-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1537,9 +1409,14 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=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
@@ -1548,9 +1425,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),arm-palmos)
REQUIRE_PACKAGES_RTL=1
@@ -1559,9 +1433,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),arm-darwin)
REQUIRE_PACKAGES_RTL=1
@@ -1570,9 +1441,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),arm-wince)
REQUIRE_PACKAGES_RTL=1
@@ -1581,9 +1449,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),arm-gba)
REQUIRE_PACKAGES_RTL=1
@@ -1592,9 +1457,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),arm-nds)
REQUIRE_PACKAGES_RTL=1
@@ -1603,9 +1465,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),arm-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1614,9 +1473,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),arm-symbian)
REQUIRE_PACKAGES_RTL=1
@@ -1625,9 +1481,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),arm-android)
REQUIRE_PACKAGES_RTL=1
@@ -1636,9 +1489,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),powerpc64-linux)
REQUIRE_PACKAGES_RTL=1
@@ -1647,9 +1497,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),powerpc64-darwin)
REQUIRE_PACKAGES_RTL=1
@@ -1658,9 +1505,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),powerpc64-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1669,9 +1513,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),powerpc64-aix)
REQUIRE_PACKAGES_RTL=1
@@ -1680,9 +1521,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),avr-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1691,9 +1529,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),armeb-linux)
REQUIRE_PACKAGES_RTL=1
@@ -1702,9 +1537,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),armeb-embedded)
REQUIRE_PACKAGES_RTL=1
@@ -1713,9 +1545,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),mips-linux)
REQUIRE_PACKAGES_RTL=1
@@ -1724,9 +1553,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),mipsel-linux)
REQUIRE_PACKAGES_RTL=1
@@ -1735,9 +1561,14 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=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
@@ -1746,9 +1577,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),jvm-java)
REQUIRE_PACKAGES_RTL=1
@@ -1757,9 +1585,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),jvm-android)
REQUIRE_PACKAGES_RTL=1
@@ -1768,9 +1593,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifeq ($(FULL_TARGET),i8086-msdos)
REQUIRE_PACKAGES_RTL=1
@@ -1779,9 +1601,6 @@ REQUIRE_PACKAGES_FCL-PROCESS=1
REQUIRE_PACKAGES_HASH=1
REQUIRE_PACKAGES_LIBTAR=1
REQUIRE_PACKAGES_FPMKUNIT=1
-REQUIRE_PACKAGES_FCL-JS=1
-REQUIRE_PACKAGES_FCL-PASSRC=1
-REQUIRE_PACKAGES_PASTOJS=1
endif
ifdef REQUIRE_PACKAGES_RTL
PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
@@ -2011,120 +1830,6 @@ ifdef UNITDIR_FPMAKE_FPMKUNIT
override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FPMKUNIT)
endif
endif
-ifdef REQUIRE_PACKAGES_FCL-JS
-PACKAGEDIR_FCL-JS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-js/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_FCL-JS),)
-ifneq ($(wildcard $(PACKAGEDIR_FCL-JS)/units/$(TARGETSUFFIX)),)
-UNITDIR_FCL-JS=$(PACKAGEDIR_FCL-JS)/units/$(TARGETSUFFIX)
-else
-UNITDIR_FCL-JS=$(PACKAGEDIR_FCL-JS)
-endif
-ifneq ($(wildcard $(PACKAGEDIR_FCL-JS)/units/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_FCL-JS=$(PACKAGEDIR_FCL-JS)/units/$(SOURCESUFFIX)
-else
-ifneq ($(wildcard $(PACKAGEDIR_FCL-JS)/units_bs/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_FCL-JS=$(PACKAGEDIR_FCL-JS)/units_bs/$(SOURCESUFFIX)
-else
-UNITDIR_FPMAKE_FCL-JS=$(PACKAGEDIR_FCL-JS)
-endif
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_FCL-JS)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_FCL-JS) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-JS)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_FCL-JS=
-UNITDIR_FCL-JS:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-js/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_FCL-JS),)
-UNITDIR_FCL-JS:=$(firstword $(UNITDIR_FCL-JS))
-else
-UNITDIR_FCL-JS=
-endif
-endif
-ifdef UNITDIR_FCL-JS
-override COMPILER_UNITDIR+=$(UNITDIR_FCL-JS)
-endif
-ifdef UNITDIR_FPMAKE_FCL-JS
-override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-JS)
-endif
-endif
-ifdef REQUIRE_PACKAGES_FCL-PASSRC
-PACKAGEDIR_FCL-PASSRC:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /fcl-passrc/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_FCL-PASSRC),)
-ifneq ($(wildcard $(PACKAGEDIR_FCL-PASSRC)/units/$(TARGETSUFFIX)),)
-UNITDIR_FCL-PASSRC=$(PACKAGEDIR_FCL-PASSRC)/units/$(TARGETSUFFIX)
-else
-UNITDIR_FCL-PASSRC=$(PACKAGEDIR_FCL-PASSRC)
-endif
-ifneq ($(wildcard $(PACKAGEDIR_FCL-PASSRC)/units/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_FCL-PASSRC=$(PACKAGEDIR_FCL-PASSRC)/units/$(SOURCESUFFIX)
-else
-ifneq ($(wildcard $(PACKAGEDIR_FCL-PASSRC)/units_bs/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_FCL-PASSRC=$(PACKAGEDIR_FCL-PASSRC)/units_bs/$(SOURCESUFFIX)
-else
-UNITDIR_FPMAKE_FCL-PASSRC=$(PACKAGEDIR_FCL-PASSRC)
-endif
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_FCL-PASSRC)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_FCL-PASSRC) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_FCL-PASSRC)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_FCL-PASSRC=
-UNITDIR_FCL-PASSRC:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /fcl-passrc/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_FCL-PASSRC),)
-UNITDIR_FCL-PASSRC:=$(firstword $(UNITDIR_FCL-PASSRC))
-else
-UNITDIR_FCL-PASSRC=
-endif
-endif
-ifdef UNITDIR_FCL-PASSRC
-override COMPILER_UNITDIR+=$(UNITDIR_FCL-PASSRC)
-endif
-ifdef UNITDIR_FPMAKE_FCL-PASSRC
-override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_FCL-PASSRC)
-endif
-endif
-ifdef REQUIRE_PACKAGES_PASTOJS
-PACKAGEDIR_PASTOJS:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /pastojs/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_PASTOJS),)
-ifneq ($(wildcard $(PACKAGEDIR_PASTOJS)/units/$(TARGETSUFFIX)),)
-UNITDIR_PASTOJS=$(PACKAGEDIR_PASTOJS)/units/$(TARGETSUFFIX)
-else
-UNITDIR_PASTOJS=$(PACKAGEDIR_PASTOJS)
-endif
-ifneq ($(wildcard $(PACKAGEDIR_PASTOJS)/units/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_PASTOJS=$(PACKAGEDIR_PASTOJS)/units/$(SOURCESUFFIX)
-else
-ifneq ($(wildcard $(PACKAGEDIR_PASTOJS)/units_bs/$(SOURCESUFFIX)),)
-UNITDIR_FPMAKE_PASTOJS=$(PACKAGEDIR_PASTOJS)/units_bs/$(SOURCESUFFIX)
-else
-UNITDIR_FPMAKE_PASTOJS=$(PACKAGEDIR_PASTOJS)
-endif
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_PASTOJS)/$(FPCMADE):
- $(MAKE) -C $(PACKAGEDIR_PASTOJS) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_PASTOJS)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_PASTOJS=
-UNITDIR_PASTOJS:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /pastojs/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_PASTOJS),)
-UNITDIR_PASTOJS:=$(firstword $(UNITDIR_PASTOJS))
-else
-UNITDIR_PASTOJS=
-endif
-endif
-ifdef UNITDIR_PASTOJS
-override COMPILER_UNITDIR+=$(UNITDIR_PASTOJS)
-endif
-ifdef UNITDIR_FPMAKE_PASTOJS
-override COMPILER_FPMAKE_UNITDIR+=$(UNITDIR_FPMAKE_PASTOJS)
-endif
-endif
ifndef NOCPUDEF
override FPCOPTDEF=$(ARCH)
endif
@@ -2238,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -2268,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2625,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2645,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2673,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/pas2js/Makefile.fpc b/utils/pas2js/Makefile.fpc
index a497343d9a..86f9d994cd 100644
--- a/utils/pas2js/Makefile.fpc
+++ b/utils/pas2js/Makefile.fpc
@@ -4,10 +4,10 @@
[package]
name=pas2js
-version=2.7.1
+version=3.1.1
[require]
-packages=rtl pastojs fcl-js fcl-passrc
+packages=rtl fpmkunit
[install]
fpcpackage=y
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/pas2js/fpmake.pp b/utils/pas2js/fpmake.pp
index 95596e7413..5ee6f4f21e 100644
--- a/utils/pas2js/fpmake.pp
+++ b/utils/pas2js/fpmake.pp
@@ -14,7 +14,7 @@ Var
begin
With Installer do
begin
- P:=AddPackage('pas2js');
+ P:=AddPackage('utils-pas2js');
P.Author := 'Free Pascal Team';
P.License := 'LGPL with modification';
@@ -24,7 +24,7 @@ begin
P.NeedLibC:= false;
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('fcl-js');
P.Dependencies.Add('fcl-passrc');
P.Dependencies.Add('pastojs');
diff --git a/utils/pas2ut/Makefile b/utils/pas2ut/Makefile
index 32a780ba7f..b7d475f387 100644
--- a/utils/pas2ut/Makefile
+++ b/utils/pas2ut/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=pas2ut
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/pas2ut/Makefile.fpc b/utils/pas2ut/Makefile.fpc
index 092d71c7a3..512c9b70df 100644
--- a/utils/pas2ut/Makefile.fpc
+++ b/utils/pas2ut/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=pas2ut
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/pas2ut/Makefile.fpc.fpcmake b/utils/pas2ut/Makefile.fpc.fpcmake
index 73df532693..907e98007b 100644
--- a/utils/pas2ut/Makefile.fpc.fpcmake
+++ b/utils/pas2ut/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=pas2ut
-version=2.7.1
+version=3.1.1
[require]
packages=fcl-passrc fcl-base
diff --git a/utils/pas2ut/fpmake.pp b/utils/pas2ut/fpmake.pp
index a98e0950da..3da56cc525 100644
--- a/utils/pas2ut/fpmake.pp
+++ b/utils/pas2ut/fpmake.pp
@@ -14,7 +14,8 @@ Var
begin
With Installer do
begin
- P:=AddPackage('pas2ut');
+ P:=AddPackage('utils-pas2ut');
+ P.ShortName:='p2ut';
P.Author := 'Free Pascal Team';
P.License := 'LGPL with modification';
@@ -24,7 +25,7 @@ begin
P.NeedLibC:= false;
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('fcl-passrc');
T:=P.Targets.AddProgram('pas2ut.pp');
diff --git a/utils/rmwait/Makefile b/utils/rmwait/Makefile
index 781899f14d..456281f471 100644
--- a/utils/rmwait/Makefile
+++ b/utils/rmwait/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=rmwait
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/rmwait/Makefile.fpc b/utils/rmwait/Makefile.fpc
index 88544eebb2..d5b1e8209f 100644
--- a/utils/rmwait/Makefile.fpc
+++ b/utils/rmwait/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=rmwait
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/rmwait/fpmake.pp b/utils/rmwait/fpmake.pp
index aa8e8fd706..92d3d4b8f5 100644
--- a/utils/rmwait/fpmake.pp
+++ b/utils/rmwait/fpmake.pp
@@ -14,7 +14,8 @@ Var
begin
With Installer do
begin
- P:=AddPackage('rmwait');
+ P:=AddPackage('utils-rmwait');
+ p.ShortName:='rmw';
P.Author := 'Tomas Hajny';
P.License := 'LGPL with modification';
@@ -24,7 +25,7 @@ begin
P.NeedLibC:= false;
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.OSes:=[win32,win64,wince,os2,emx,go32v2];
diff --git a/utils/tply/Makefile b/utils/tply/Makefile
index 48e31f3563..d54e640703 100644
--- a/utils/tply/Makefile
+++ b/utils/tply/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=tply
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/tply/Makefile.fpc b/utils/tply/Makefile.fpc
index 17f574bd56..75037980dc 100644
--- a/utils/tply/Makefile.fpc
+++ b/utils/tply/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=tply
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/tply/Makefile.fpc.fpcmake b/utils/tply/Makefile.fpc.fpcmake
index b410c8864f..80def70c8e 100644
--- a/utils/tply/Makefile.fpc.fpcmake
+++ b/utils/tply/Makefile.fpc.fpcmake
@@ -4,7 +4,7 @@
[package]
name=lexyacc
-version=2.7.1
+version=3.1.1
[target]
programs=plex pyacc
diff --git a/utils/tply/fpmake.pp b/utils/tply/fpmake.pp
index 539118dfa4..0b6e6454d7 100644
--- a/utils/tply/fpmake.pp
+++ b/utils/tply/fpmake.pp
@@ -15,7 +15,8 @@ Var
begin
With Installer do
begin
- P:=AddPackage('lexyacc');
+ P:=AddPackage('utils-lexyacc');
+ P.ShortName:='tply';
P.Author := '<various>';
P.License := 'LGPL with modification';
@@ -25,7 +26,7 @@ begin
P.NeedLibC:= false;
P.Directory:=ADirectory;
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Options.Add('-Sg');
@@ -71,9 +72,6 @@ begin
P.Targets.AddUnit('yacclr0.pas').install:=false;
P.Targets.AddUnit('yacctabl.pas').install:=false;
- P.Sources.AddSrc('fpcmake.ini');
- P.Sources.AddSrc('fpcmake.inc');
-
if (OSToString(defaults.OS)=lowercase({$I %FPCTARGETOS%})) and
(CPUToString(defaults.CPU)=lowercase({$I %FPCTARGETCPU%})) then
begin
diff --git a/utils/tply/lexbase.pas b/utils/tply/lexbase.pas
index 12191562f3..f6b329203c 100644
--- a/utils/tply/lexbase.pas
+++ b/utils/tply/lexbase.pas
@@ -65,7 +65,8 @@ lfilename : String;
pasfilename : String;
lstfilename : String;
codfilename : String;
-codfilepath : String; { Under linux, binary and conf file
+codfilepath1,
+codfilepath2 : String; { Under linux, binary and conf file
are not in the same path}
(* Lex input, output, list and code template file: *)
diff --git a/utils/tply/plex.pas b/utils/tply/plex.pas
index 58a61125c1..88939a1db9 100644
--- a/utils/tply/plex.pas
+++ b/utils/tply/plex.pas
@@ -62,7 +62,7 @@ $History: LEX.PAS $
program Lex;
uses
- LexBase, LexTable, LexPos, LexDFA, LexOpt, LexList, LexRules, LexMsgs;
+ LexBase, LexTable, LexPos, LexDFA, LexOpt, LexList, LexRules, LexMsgs, SysUtils;
procedure get_line;
@@ -597,15 +597,14 @@ var i : Integer;
begin
{$ifdef Unix}
- {$ifdef BSD}
- codfilepath:='/usr/local/lib/fpc/lexyacc/';
- {$else}
- codfilepath:='/usr/lib/fpc/lexyacc/';
- {$endif}
+ codfilepath1:='/usr/local/lib/fpc/lexyacc/';
+ codfilepath2:='/usr/lib/fpc/lexyacc/';
{$else}
- codfilepath:=path(paramstr(0));
+ codfilepath1:=path(paramstr(0));
+ codfilepath2:='';
{$endif}
+
(* sign-on: *)
writeln(sign_on);
@@ -662,17 +661,29 @@ begin
rewrite(yyout); if ioresult<>0 then fatal(cannot_open_file+pasfilename);
rewrite(yylst); if ioresult<>0 then fatal(cannot_open_file+lstfilename);
- (* search code template in current directory, then on path where Lex
- was executed from: *)
+ (* search code template *)
codfilename := 'yylex.cod';
assign(yycod, codfilename);
reset(yycod);
if ioresult<>0 then
begin
- codfilename := codfilepath+'yylex.cod';
+ codfilename := IncludeTrailingPathDelimiter(GetEnvironmentVariable('FPCDIR'))+'lexyacc'+DirectorySeparator+'yylex.cod';
assign(yycod, codfilename);
reset(yycod);
- if ioresult<>0 then fatal(cannot_open_file+codfilename);
+ if ioresult<>0 then
+ begin
+ codfilename := codfilepath1+'yylex.cod';
+ assign(yycod, codfilename);
+ reset(yycod);
+ if (codfilepath2<>'') and (ioresult<>0) then
+ begin
+ codfilename := codfilepath2+'yylex.cod';
+ assign(yycod, codfilename);
+ reset(yycod);
+ if ioresult<>0 then
+ fatal(cannot_open_file+codfilename);
+ end;
+ end;
end;
(* parse source grammar: *)
diff --git a/utils/tply/pyacc.pas b/utils/tply/pyacc.pas
index 38d118e081..7964476f6e 100644
--- a/utils/tply/pyacc.pas
+++ b/utils/tply/pyacc.pas
@@ -36,7 +36,7 @@ Last changes:
updates)
$History: YACC.PAS $
- *
+ *
* ***************** Version 2 *****************
* User: Berend Date: 96-10-10 Time: 21:16
* Updated in $/Lex and Yacc/tply
@@ -110,7 +110,7 @@ uses
YaccChk source not available anymore PM }
{$ENDIF}
{$ENDIF}
- YaccLib, YaccBase, YaccMsgs, YaccSem, YaccTabl, YaccPars;
+ YaccLib, YaccBase, YaccMsgs, YaccSem, YaccTabl, YaccPars, SysUtils;
const ID = 257;
const C_ID = 258;
@@ -161,28 +161,28 @@ begin
yyval := yyv[yysp-0];
end;
6 : begin
- yyerrok;
+ yyerrok;
end;
7 : begin
- yyerrok;
+ yyerrok;
end;
8 : begin
- yyerrok;
+ yyerrok;
end;
9 : begin
- yyerrok;
+ yyerrok;
end;
10 : begin
- yyerrok;
+ yyerrok;
end;
11 : begin
- yyerrok;
+ yyerrok;
end;
12 : begin
yyval := yyv[yysp-0];
end;
13 : begin
- yyerrok;
+ yyerrok;
end;
14 : begin
yyval := yyv[yysp-0];
@@ -191,19 +191,19 @@ begin
yyval := yyv[yysp-0];
end;
16 : begin
- error(rcurl_expected);
+ error(rcurl_expected);
end;
17 : begin
yyval := yyv[yysp-0];
end;
18 : begin
- yyerrok;
+ yyerrok;
end;
19 : begin
- yyerrok;
+ yyerrok;
end;
20 : begin
- yyerrok;
+ yyerrok;
end;
21 : begin
yyval := yyv[yysp-0];
@@ -212,7 +212,7 @@ begin
yyval := yyv[yysp-0];
end;
23 : begin
- error(rbrace_expected);
+ error(rbrace_expected);
end;
24 : begin
yyval := yyv[yysp-0];
@@ -221,7 +221,7 @@ begin
yyval := yyv[yysp-0];
end;
26 : begin
- error(rangle_expected);
+ error(rangle_expected);
end;
27 : begin
yyval := yyv[yysp-0];
@@ -229,12 +229,12 @@ begin
28 : begin
sort_types;
definitions;
- next_section;
+ next_section;
end;
29 : begin
next_section;
generate_parser;
- next_section;
+ next_section;
end;
30 : begin
yyval := yyv[yysp-5];
@@ -242,48 +242,48 @@ begin
31 : begin
end;
32 : begin
- copy_rest_of_file;
+ copy_rest_of_file;
end;
33 : begin
end;
34 : begin
- yyerrok;
+ yyerrok;
end;
35 : begin
- error(error_in_def);
+ error(error_in_def);
end;
36 : begin
- startnt := ntsym(yyv[yysp-0]);
+ startnt := ntsym(yyv[yysp-0]);
end;
37 : begin
- error(ident_expected);
+ error(ident_expected);
end;
38 : begin
- copy_code;
+ copy_code;
end;
39 : begin
yyval := yyv[yysp-2];
end;
40 : begin
- act_prec := 0;
+ act_prec := 0;
end;
41 : begin
yyval := yyv[yysp-3];
end;
42 : begin
- act_prec := new_prec_level(left);
+ act_prec := new_prec_level(left);
end;
43 : begin
yyval := yyv[yysp-3];
end;
44 : begin
- act_prec := new_prec_level(right);
+ act_prec := new_prec_level(right);
end;
45 : begin
yyval := yyv[yysp-3];
end;
46 : begin
- act_prec := new_prec_level(nonassoc);
+ act_prec := new_prec_level(nonassoc);
end;
47 : begin
yyval := yyv[yysp-3];
@@ -295,169 +295,169 @@ begin
yyval := yyv[yysp-1];
end;
50 : begin
- act_type := 0;
+ act_type := 0;
end;
51 : begin
- act_type := yyv[yysp-1]; add_type(yyv[yysp-1]);
+ act_type := yyv[yysp-1]; add_type(yyv[yysp-1]);
end;
52 : begin
yyval := yyv[yysp-0];
end;
53 : begin
- yyerrok;
+ yyerrok;
end;
54 : begin
- yyerrok;
+ yyerrok;
end;
55 : begin
- error(ident_expected);
+ error(ident_expected);
end;
56 : begin
- error(error_in_def);
+ error(error_in_def);
end;
57 : begin
- error(ident_expected);
+ error(ident_expected);
end;
58 : begin
if act_type<>0 then
sym_type^[yyv[yysp-0]] := act_type;
if act_prec<>0 then
- sym_prec^[yyv[yysp-0]] := act_prec;
+ sym_prec^[yyv[yysp-0]] := act_prec;
end;
59 : begin
litsym(yyv[yysp-0], 0);
if act_type<>0 then
sym_type^[litsym(yyv[yysp-0], 0)] := act_type;
if act_prec<>0 then
- sym_prec^[litsym(yyv[yysp-0], 0)] := act_prec;
+ sym_prec^[litsym(yyv[yysp-0], 0)] := act_prec;
end;
60 : begin
litsym(yyv[yysp-0], 0);
if act_type<>0 then
sym_type^[litsym(yyv[yysp-0], 0)] := act_type;
if act_prec<>0 then
- sym_prec^[litsym(yyv[yysp-0], 0)] := act_prec;
+ sym_prec^[litsym(yyv[yysp-0], 0)] := act_prec;
end;
61 : begin
litsym(yyv[yysp-1], 0);
if act_type<>0 then
sym_type^[litsym(yyv[yysp-1], yyv[yysp-0])] := act_type;
if act_prec<>0 then
- sym_prec^[litsym(yyv[yysp-1], 0)] := act_prec;
+ sym_prec^[litsym(yyv[yysp-1], 0)] := act_prec;
end;
62 : begin
litsym(yyv[yysp-1], 0);
if act_type<>0 then
sym_type^[litsym(yyv[yysp-1], yyv[yysp-0])] := act_type;
if act_prec<>0 then
- sym_prec^[litsym(yyv[yysp-1], 0)] := act_prec;
+ sym_prec^[litsym(yyv[yysp-1], 0)] := act_prec;
end;
63 : begin
yyval := yyv[yysp-0];
end;
64 : begin
- yyerrok;
+ yyerrok;
end;
65 : begin
- yyerrok;
+ yyerrok;
end;
66 : begin
- error(ident_expected);
+ error(ident_expected);
end;
67 : begin
- error(error_in_def);
+ error(error_in_def);
end;
68 : begin
- error(ident_expected);
+ error(ident_expected);
end;
69 : begin
if act_type<>0 then
- sym_type^[ntsym(yyv[yysp-0])] := act_type;
+ sym_type^[ntsym(yyv[yysp-0])] := act_type;
end;
70 : begin
- next_section;
+ next_section;
end;
71 : begin
yyval := yyv[yysp-1];
end;
72 : begin
- copy_code;
+ copy_code;
end;
73 : begin
- next_section;
+ next_section;
end;
74 : begin
yyval := yyv[yysp-4];
end;
75 : begin
- yyerrok;
+ yyerrok;
end;
76 : begin
- error(error_in_rule);
+ error(error_in_rule);
end;
77 : begin
- error(error_in_rule);
+ error(error_in_rule);
end;
78 : begin
- start_rule(ntsym(yyv[yysp-0]));
+ start_rule(ntsym(yyv[yysp-0]));
end;
79 : begin
- start_body;
+ start_body;
end;
80 : begin
- end_body;
+ end_body;
end;
81 : begin
yyval := yyv[yysp-0];
end;
82 : begin
- start_body;
+ start_body;
end;
83 : begin
- end_body;
+ end_body;
end;
84 : begin
end;
85 : begin
- add_symbol(yyv[yysp-0]); yyerrok;
+ add_symbol(yyv[yysp-0]); yyerrok;
end;
86 : begin
- add_symbol(sym(yyv[yysp-0])); yyerrok;
+ add_symbol(sym(yyv[yysp-0])); yyerrok;
end;
87 : begin
- add_symbol(sym(yyv[yysp-0])); yyerrok;
+ add_symbol(sym(yyv[yysp-0])); yyerrok;
end;
88 : begin
- add_action; yyerrok;
+ add_action; yyerrok;
end;
89 : begin
- error(error_in_rule);
+ error(error_in_rule);
end;
90 : begin
- copy_action;
+ copy_action;
end;
91 : begin
yyval := yyv[yysp-2];
end;
92 : begin
- copy_single_action;
+ copy_single_action;
end;
93 : begin
end;
94 : begin
- add_rule_prec(yyv[yysp-0]);
+ add_rule_prec(yyv[yysp-0]);
end;
95 : begin
yyval := yyv[yysp-3];
end;
96 : begin
- add_rule_prec(litsym(yyv[yysp-0], 0));
+ add_rule_prec(litsym(yyv[yysp-0], 0));
end;
97 : begin
yyval := yyv[yysp-3];
end;
98 : begin
- add_rule_prec(litsym(yyv[yysp-0], 0));
+ add_rule_prec(litsym(yyv[yysp-0], 0));
end;
99 : begin
yyval := yyv[yysp-3];
@@ -468,7 +468,7 @@ begin
101 : begin
end;
102 : begin
- add_action;
+ add_action;
end;
end;
end(*yyaction*);
@@ -2131,10 +2131,10 @@ function yylex : integer;
('0'<=line[cno]) and (line[cno]<='9') or
(line[cno]='_') or
(line[cno]='.') ) do
- begin
- idstr := idstr+line[cno];
- inc(cno)
- end;
+ begin
+ idstr := idstr+line[cno];
+ inc(cno)
+ end;
yylval := get_key(idstr);
scan;
if not end_of_input and (line[cno]=':') then
@@ -2352,9 +2352,9 @@ function yylex : integer;
else
case line[cno] of
'A'..'Z', 'a'..'z', '_' : yylex := scan_ident;
- '''', '"' : yylex := scan_literal;
- '0'..'9' : yylex := scan_num;
- '%', '\' : yylex := scan_keyword;
+ '''', '"' : yylex := scan_literal;
+ '0'..'9' : yylex := scan_num;
+ '%', '\' : yylex := scan_keyword;
'=' :
if (cno<length(line)) and (line[succ(cno)]='{') then
begin
@@ -2363,7 +2363,7 @@ function yylex : integer;
end
else
yylex := scan_char;
- else yylex := scan_char;
+ else yylex := scan_char;
end;
if lno=lno0 then
tokleng := cno-cno0
@@ -2375,13 +2375,11 @@ var i : Integer;
begin
{$ifdef Unix}
- {$ifdef BSD}
- codfilepath:='/usr/local/lib/fpc/lexyacc/';
- {$else}
- codfilepath:='/usr/lib/fpc/lexyacc/';
- {$endif}
+ codfilepath1:='/usr/local/lib/fpc/lexyacc/';
+ codfilepath2:='/usr/lib/fpc/lexyacc/';
{$else}
- codfilepath:=path(paramstr(0));
+ codfilepath1:=path(paramstr(0));
+ codfilepath2:='';
{$endif}
(* sign-on: *)
@@ -2440,17 +2438,29 @@ begin
rewrite(yyout); if ioresult<>0 then fatal(cannot_open_file+pasfilename);
rewrite(yylst); if ioresult<>0 then fatal(cannot_open_file+lstfilename);
- (* search code template in current directory, then on path where Yacc
- was executed from: *)
+ (* search code template *)
codfilename := 'yyparse.cod';
assign(yycod, codfilename);
reset(yycod);
if ioresult<>0 then
begin
- codfilename := codfilepath+'yyparse.cod';
+ codfilename := IncludeTrailingPathDelimiter(GetEnvironmentVariable('FPCDIR'))+'lexyacc'+DirectorySeparator+'yyparse.cod';
assign(yycod, codfilename);
reset(yycod);
- if ioresult<>0 then fatal(cannot_open_file+codfilename);
+ if ioresult<>0 then
+ begin
+ codfilename := codfilepath1+'yyparse.cod';
+ assign(yycod, codfilename);
+ reset(yycod);
+ if (codfilepath2<>'') and (ioresult<>0) then
+ begin
+ codfilename := codfilepath2+'yyparse.cod';
+ assign(yycod, codfilename);
+ reset(yycod);
+ if ioresult<>0 then
+ fatal(cannot_open_file+codfilename);
+ end;
+ end;
end;
(* parse source grammar: *)
@@ -2513,4 +2523,4 @@ begin
halt(errors);
-end(*Yacc*).
+end(*Yacc*). \ No newline at end of file
diff --git a/utils/tply/pyacc.y b/utils/tply/pyacc.y
index ff36d4f099..ddf614e1ce 100644
--- a/utils/tply/pyacc.y
+++ b/utils/tply/pyacc.y
@@ -55,7 +55,7 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-$Revision: 1.3 $
+$Revision: 1.5 $
$Modtime: 96-08-01 11:24 $
@@ -129,16 +129,6 @@ $History: YACC.PAS $
*)
-{$IFDEF MsDos}
-{$M 16384,0,655360}
-{$ENDIF}
-{$IFDEF DPMI}
-{$M 32768}
-{$ENDIF}
-{$IFDEF Windows}
-{$M 32768,0}
-{$ENDIF}
-
{$X+}
{$I-}
program Yacc;
@@ -146,15 +136,11 @@ program Yacc;
uses
{$IFDEF Debug}
{$IFDEF DPMI}
- YaccChk,
-{$ENDIF}
+ { YaccChk, removed as obsolete,
+ YaccChk source not available anymore PM }
{$ENDIF}
-{$IFDEF Windows}
-{$IFNDEF Console}
- WinCrt,
{$ENDIF}
-{$ENDIF}
- YaccLib, YaccBase, YaccMsgs, YaccSem, YaccTabl, YaccPars;
+ YaccLib, YaccBase, YaccMsgs, YaccSem, YaccTabl, YaccPars, SysUtils;
%}
@@ -725,13 +711,11 @@ var i : Integer;
begin
{$ifdef Unix}
- {$ifdef BSD}
- codfilepath:='/usr/local/lib/fpc/lexyacc/';
- {$else}
- codfilepath:='/usr/lib/fpc/lexyacc/';
- {$endif}
+ codfilepath1:='/usr/local/lib/fpc/lexyacc/';
+ codfilepath2:='/usr/lib/fpc/lexyacc/';
{$else}
- codfilepath:=path(paramstr(0));
+ codfilepath1:=path(paramstr(0));
+ codfilepath2:='';
{$endif}
(* sign-on: *)
@@ -790,17 +774,29 @@ begin
rewrite(yyout); if ioresult<>0 then fatal(cannot_open_file+pasfilename);
rewrite(yylst); if ioresult<>0 then fatal(cannot_open_file+lstfilename);
- (* search code template in current directory, then on path where Yacc
- was executed from: *)
+ (* search code template *)
codfilename := 'yyparse.cod';
assign(yycod, codfilename);
reset(yycod);
if ioresult<>0 then
begin
- codfilename := codfilepath+'yyparse.cod';
+ codfilename := IncludeTrailingPathDelimiter(GetEnvironmentVariable('FPCDIR'))+'lexyacc'+DirectorySeparator+'yyparse.cod';
assign(yycod, codfilename);
reset(yycod);
- if ioresult<>0 then fatal(cannot_open_file+codfilename);
+ if ioresult<>0 then
+ begin
+ codfilename := codfilepath1+'yyparse.cod';
+ assign(yycod, codfilename);
+ reset(yycod);
+ if (codfilepath2<>'') and (ioresult<>0) then
+ begin
+ codfilename := codfilepath2+'yyparse.cod';
+ assign(yycod, codfilename);
+ reset(yycod);
+ if ioresult<>0 then
+ fatal(cannot_open_file+codfilename);
+ end;
+ end;
end;
(* parse source grammar: *)
diff --git a/utils/tply/yaccbase.pas b/utils/tply/yaccbase.pas
index 7608bc3612..0f821ebf01 100644
--- a/utils/tply/yaccbase.pas
+++ b/utils/tply/yaccbase.pas
@@ -66,7 +66,8 @@ yfilename : String;
pasfilename : String;
lstfilename : String;
codfilename : String;
-codfilepath : String; { Under Linux,
+codfilepath1,
+codfilepath2 : String; { Under Linux,
binary and conf file are never in 1 directory.}
(* Yacc input, output, list and code template file: *)
diff --git a/utils/unicode/Makefile b/utils/unicode/Makefile
index a57de6702c..0e979b8da7 100644
--- a/utils/unicode/Makefile
+++ b/utils/unicode/Makefile
@@ -1,9 +1,9 @@
#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-02-06 rev 26692]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2014-12-07 rev 29213]
#
default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-android jvm-java jvm-android i8086-msdos
-BSDs = freebsd netbsd openbsd darwin
+MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim i386-android i386-aros m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded x86_64-dragonfly arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian arm-android powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux mipsel-embedded mipsel-android jvm-java jvm-android i8086-msdos
+BSDs = freebsd netbsd openbsd darwin dragonfly
UNIXs = linux $(BSDs) solaris qnx haiku aix
LIMIT83fs = go32v2 os2 emx watcom msdos
OSNeedsComspecToRunBatch = go32v2 watcom
@@ -184,6 +184,12 @@ $(error When compiling for arm-embedded, a sub-architecture (e.g. SUBARCH=armv4t
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
ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
TARGETSUFFIX=$(OS_TARGET)
SOURCESUFFIX=$(OS_SOURCE)
@@ -320,7 +326,7 @@ FPCFPMAKE=$(FPC)
endif
endif
override PACKAGE_NAME=unicode
-override PACKAGE_VERSION=2.7.1
+override PACKAGE_VERSION=3.1.1
FPMAKE_BIN_CLEAN=$(wildcard ./fpmake$(SRCEXEEXT))
ifdef OS_TARGET
FPC_TARGETOPT+=--os=$(OS_TARGET)
@@ -572,6 +578,12 @@ 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=
@@ -617,6 +629,11 @@ EXEEXT=
SHAREDLIBEXT=.library
SHORTSUFFIX=amg
endif
+ifeq ($(OS_TARGET),aros)
+EXEEXT=
+SHAREDLIBEXT=.library
+SHORTSUFFIX=aros
+endif
ifeq ($(OS_TARGET),morphos)
EXEEXT=
SHAREDLIBEXT=.library
@@ -1153,6 +1170,14 @@ 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
@@ -1385,6 +1410,14 @@ 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
@@ -1529,6 +1562,14 @@ 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
@@ -1902,7 +1943,7 @@ endif
ifdef CREATESHARED
override FPCOPT+=-Cg
endif
-ifneq ($(findstring $(OS_TARGET),freebsd openbsd netbsd linux solaris),)
+ifneq ($(findstring $(OS_TARGET),dragonfly freebsd openbsd netbsd linux solaris),)
ifeq ($(CPU_TARGET),x86_64)
override FPCOPT+=-Cg
endif
@@ -1932,17 +1973,23 @@ ifdef ACROSSCOMPILE
override FPCOPT+=$(CROSSOPT)
endif
override COMPILER:=$(strip $(FPC) $(FPCOPT))
-ifeq (,$(findstring -s ,$(COMPILER)))
+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
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
ifdef RUNBATCH
EXECPPAS:=@$(RUNBATCH) $(PPAS)
else
EXECPPAS:=@$(PPAS)
endif
endif
-endif
ifdef TARGET_RSTS
override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
override CLEANRSTFILES+=$(RSTFILES)
@@ -2289,11 +2336,10 @@ examples:
shared:
sourceinstall: fpc_sourceinstall
exampleinstall: fpc_exampleinstall
-zipsourceinstall: fpc_zipsourceinstall
zipexampleinstall: fpc_zipexampleinstall
info: fpc_info
makefiles: fpc_makefiles
-.PHONY: units examples shared sourceinstall exampleinstall zipsourceinstall zipexampleinstall info makefiles
+.PHONY: units examples shared sourceinstall exampleinstall zipexampleinstall info makefiles
ifneq ($(wildcard fpcmake.loc),)
include fpcmake.loc
endif
@@ -2309,15 +2355,15 @@ FPMAKE_OPT+=$(addprefix -o ,$(FPCOPT))
FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+debug: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dDEBUG
ifeq ($(FPMAKE_BIN_CLEAN),)
clean:
@@ -2337,19 +2383,25 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-distinstall: fpmake
+distinstall: fpmake$(SRCEXEEXT)
ifdef UNIXHier
- $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_PREFIX) --baseinstalldir=$(INSTALL_LIBDIR)/fpc/$(FPC_VERSION) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/unicode/Makefile.fpc b/utils/unicode/Makefile.fpc
index db46b02f2a..a62ae3c151 100644
--- a/utils/unicode/Makefile.fpc
+++ b/utils/unicode/Makefile.fpc
@@ -4,7 +4,7 @@
[package]
name=unicode
-version=2.7.1
+version=3.1.1
[require]
packages=rtl fpmkunit
@@ -41,15 +41,15 @@ FPMAKE_OPT+=--compiler=$(FPC)
FPMAKE_OPT+=-bu
.NOTPARALLEL:
-fpmake: fpmake.pp
+fpmake$(SRCEXEEXT): fpmake.pp
$(FPCFPMAKE) fpmake.pp $(FPMAKE_SKIP_CONFIG) $(addprefix -Fu,$(COMPILER_FPMAKE_UNITDIR)) $(FPCMAKEOPT) $(OPT)
-all: fpmake
+all: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT)
-smart: fpmake
+smart: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -XX -o -CX
-release: fpmake
+release: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) compile $(FPMAKE_OPT) -o -dRELEASE
-debug: fpmake
+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.
@@ -74,20 +74,27 @@ endif
-$(DEL) $(LOCALFPMAKE)
endif
cleanall: distclean
-install: fpmake
+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) --unitinstalldir=$(INSTALL_UNITDIR)
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR)
endif
-# distinstall also installs the example-sources
-distinstall: fpmake
+# 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
+ $(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) --unitinstalldir=$(INSTALL_UNITDIR) -ie
+ $(LOCALFPMAKE) install $(FPMAKE_OPT) --prefix=$(INSTALL_BASEDIR) --baseinstalldir=$(INSTALL_BASEDIR) --unitinstalldir=$(INSTALL_UNITDIR) -ie -fsp 0
endif
-zipinstall: fpmake
+zipinstall: fpmake$(SRCEXEEXT)
$(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX)
-zipdistinstall: fpmake
- $(LOCALFPMAKE) zipinstall $(FPMAKE_OPT) --zipprefix=$(DIST_DESTDIR)/$(ZIPPREFIX) -ie
+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/unicode/fpmake.pp b/utils/unicode/fpmake.pp
index 4cfc84fcbb..cbe201fe09 100644
--- a/utils/unicode/fpmake.pp
+++ b/utils/unicode/fpmake.pp
@@ -14,7 +14,8 @@ Var
begin
With Installer do
begin
- P:=AddPackage('unicode');
+ P:=AddPackage('utils-unicode');
+ P.ShortName:='unicode';
P.Author := 'Inoussa OUEDRAOGO';
P.License := 'LGPL with modification';
@@ -24,7 +25,7 @@ begin
{$ifdef ALLPACKAGES}
P.Directory:=ADirectory;
{$endif ALLPACKAGES}
- P.Version:='2.7.1';
+ P.Version:='3.1.1';
P.Dependencies.Add('rtl');
P.Dependencies.Add('fcl-base');
P.Dependencies.Add('fcl-xml');